From 95f5e0dfbc7820402b6c2ecdad3cd565f2abc386 Mon Sep 17 00:00:00 2001 From: Lan Date: Mon, 1 Dec 2025 15:35:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B02024=E4=B8=BB?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ut-RFCv5MG9.js => AdminLayout-CoImnOQO.js} | 2 +- ...-Wzfzsof2.js => DashboardView-BQRsJrnN.js} | 2 +- ...D_aFzaTt.js => FileManageView-CZQWWk0t.js} | 2 +- ...View-Dl9p7s8x.js => LoginView-B4xHkhLy.js} | 2 +- ...der-B7RfkNXn.js => PageHeader-BDzp_ji4.js} | 2 +- ...L-RDl.js => RetrievewFileView-DWBfGPUc.js} | 2 +- themes/2024/assets/SendFileView-BOsMUoIt.js | 26 ------------------- themes/2024/assets/SendFileView-BqULfUDl.js | 26 +++++++++++++++++++ themes/2024/assets/SendFileView-CEwL3Upl.css | 1 - themes/2024/assets/SendFileView-D1bkFasE.css | 1 + .../assets/SystemSettingsView-CE4x9hEg.js | 1 + .../assets/SystemSettingsView-D-yv3wtL.js | 1 - .../{box-m5X2L2BC.js => box-CiSQlKtb.js} | 2 +- .../{file-DGAdxgYw.js => file-CN_5aebv.js} | 2 +- ...ive-BToulIQT.js => hard-drive-DvXIDK_-.js} | 2 +- .../{index-C9gpBPbG.js => index-14Tp7zPK.js} | 6 ++--- .../{trash-Cw4_1PxO.js => trash-BTMfj7si.js} | 2 +- themes/2024/index.html | 2 +- 18 files changed, 42 insertions(+), 42 deletions(-) rename themes/2024/assets/{AdminLayout-RFCv5MG9.js => AdminLayout-CoImnOQO.js} (98%) rename themes/2024/assets/{DashboardView-Wzfzsof2.js => DashboardView-BQRsJrnN.js} (97%) rename themes/2024/assets/{FileManageView-D_aFzaTt.js => FileManageView-CZQWWk0t.js} (99%) rename themes/2024/assets/{LoginView-Dl9p7s8x.js => LoginView-B4xHkhLy.js} (97%) rename themes/2024/assets/{PageHeader-B7RfkNXn.js => PageHeader-BDzp_ji4.js} (99%) rename themes/2024/assets/{RetrievewFileView-B44L-RDl.js => RetrievewFileView-DWBfGPUc.js} (99%) delete mode 100644 themes/2024/assets/SendFileView-BOsMUoIt.js create mode 100644 themes/2024/assets/SendFileView-BqULfUDl.js delete mode 100644 themes/2024/assets/SendFileView-CEwL3Upl.css create mode 100644 themes/2024/assets/SendFileView-D1bkFasE.css create mode 100644 themes/2024/assets/SystemSettingsView-CE4x9hEg.js delete mode 100644 themes/2024/assets/SystemSettingsView-D-yv3wtL.js rename themes/2024/assets/{box-m5X2L2BC.js => box-CiSQlKtb.js} (90%) rename themes/2024/assets/{file-DGAdxgYw.js => file-CN_5aebv.js} (88%) rename themes/2024/assets/{hard-drive-BToulIQT.js => hard-drive-DvXIDK_-.js} (92%) rename themes/2024/assets/{index-C9gpBPbG.js => index-14Tp7zPK.js} (83%) rename themes/2024/assets/{trash-Cw4_1PxO.js => trash-BTMfj7si.js} (89%) diff --git a/themes/2024/assets/AdminLayout-RFCv5MG9.js b/themes/2024/assets/AdminLayout-CoImnOQO.js similarity index 98% rename from themes/2024/assets/AdminLayout-RFCv5MG9.js rename to themes/2024/assets/AdminLayout-CoImnOQO.js index 217cc84..137ebe7 100644 --- a/themes/2024/assets/AdminLayout-RFCv5MG9.js +++ b/themes/2024/assets/AdminLayout-CoImnOQO.js @@ -1,4 +1,4 @@ -import{c as l,d as _,u as M,r as p,f as m,L as C,a as b,o as h,b as t,n as o,e,i as z,k as i,B as L,t as x,X as B,F as D,x as j,z as F,D as N,y as S,M as V}from"./index-C9gpBPbG.js";import{B as E}from"./box-m5X2L2BC.js";/** +import{c as l,d as _,u as M,r as p,f as m,L as C,a as b,o as h,b as t,n as o,e,i as z,k as i,B as L,t as x,X as B,F as D,x as j,z as F,D as N,y as S,M as V}from"./index-14Tp7zPK.js";import{B as E}from"./box-CiSQlKtb.js";/** * @license lucide-vue-next v0.535.0 - ISC * * This source code is licensed under the ISC license. diff --git a/themes/2024/assets/DashboardView-Wzfzsof2.js b/themes/2024/assets/DashboardView-BQRsJrnN.js similarity index 97% rename from themes/2024/assets/DashboardView-Wzfzsof2.js rename to themes/2024/assets/DashboardView-BQRsJrnN.js index 15c172c..ada2b0b 100644 --- a/themes/2024/assets/DashboardView-Wzfzsof2.js +++ b/themes/2024/assets/DashboardView-BQRsJrnN.js @@ -1,4 +1,4 @@ -import{c as _,d as S,g as x,a as M,o as v,n as d,e as t,i as k,b as s,t as r,D,M as w,E as F,u as U,N as B,f as z,k as g,m,y as C,S as $}from"./index-C9gpBPbG.js";import{F as N}from"./file-DGAdxgYw.js";import{H as T}from"./hard-drive-BToulIQT.js";/** +import{c as _,d as S,g as x,a as M,o as v,n as d,e as t,i as k,b as s,t as r,D,M as w,E as F,u as U,N as B,f as z,k as g,m,y as C,S as $}from"./index-14Tp7zPK.js";import{F as N}from"./file-CN_5aebv.js";import{H as T}from"./hard-drive-DvXIDK_-.js";/** * @license lucide-vue-next v0.535.0 - ISC * * This source code is licensed under the ISC license. diff --git a/themes/2024/assets/FileManageView-D_aFzaTt.js b/themes/2024/assets/FileManageView-CZQWWk0t.js similarity index 99% rename from themes/2024/assets/FileManageView-D_aFzaTt.js rename to themes/2024/assets/FileManageView-CZQWWk0t.js index 84dc11c..e3c71f0 100644 --- a/themes/2024/assets/FileManageView-D_aFzaTt.js +++ b/themes/2024/assets/FileManageView-CZQWWk0t.js @@ -1,4 +1,4 @@ -import{c as P,d as V,a as x,o as h,n as o,e as t,i as L,b as e,E as B,t as l,F as S,x as T,g as F,k as u,y as k,u as N,r as $,l as Q,j as W,p as v,v as w,O as X,m as E,P as D}from"./index-C9gpBPbG.js";import{F as Z}from"./file-DGAdxgYw.js";import{T as ee}from"./trash-Cw4_1PxO.js";/** +import{c as P,d as V,a as x,o as h,n as o,e as t,i as L,b as e,E as B,t as l,F as S,x as T,g as F,k as u,y as k,u as N,r as $,l as Q,j as W,p as v,v as w,O as X,m as E,P as D}from"./index-14Tp7zPK.js";import{F as Z}from"./file-CN_5aebv.js";import{T as ee}from"./trash-BTMfj7si.js";/** * @license lucide-vue-next v0.535.0 - ISC * * This source code is licensed under the ISC license. diff --git a/themes/2024/assets/LoginView-Dl9p7s8x.js b/themes/2024/assets/LoginView-B4xHkhLy.js similarity index 97% rename from themes/2024/assets/LoginView-Dl9p7s8x.js rename to themes/2024/assets/LoginView-B4xHkhLy.js index 9862978..7b56e14 100644 --- a/themes/2024/assets/LoginView-Dl9p7s8x.js +++ b/themes/2024/assets/LoginView-B4xHkhLy.js @@ -1 +1 @@ -import{K as y,r as c,V as u,g as b,d as w,l as x,a as h,o as S,b as e,n as d,e as i,i as A,k,h as I,p as D,v as N,y as T,t as _,W as M,B as O,_ as V}from"./index-C9gpBPbG.js";import{B as E}from"./box-m5X2L2BC.js";const B=y("admin",()=>{const p=c(localStorage.getItem(u.ADMIN_PASSWORD)||""),a=c(localStorage.getItem(u.TOKEN)||""),s=c(!1),l=c(null),n=b(()=>s.value&&!!a.value),f=o=>{p.value=o,localStorage.setItem(u.ADMIN_PASSWORD,o)},g=o=>{a.value=o,localStorage.setItem(u.TOKEN,o)},m=o=>{l.value=o,s.value=!0,g(o.token)};return{adminPassword:p,token:a,isLoggedIn:s,userInfo:l,isAuthenticated:n,updateAdminPassword:f,setToken:g,setUserInfo:m,login:o=>{m(o)},logout:()=>{p.value="",a.value="",s.value=!1,l.value=null,localStorage.removeItem(u.ADMIN_PASSWORD),localStorage.removeItem(u.TOKEN)},initAuth:()=>{const o=localStorage.getItem(u.TOKEN);o&&(a.value=o,s.value=!0)}}}),K=B,j={class:"mx-auto h-16 w-16 relative"},P={class:"rounded-md shadow-sm -space-y-px"},R=["disabled"],L=w({__name:"LoginView",setup(p){const a=x(),s=c(""),l=c(!1),n=A("isDarkMode"),f=K(),g=()=>{let r=!0;return s.value?s.value.length<6&&(a.showAlert("密码长度至少为6位","error"),r=!1):(a.showAlert("无效的密码","error"),r=!1),r},m=O(),v=async()=>{if(g()){l.value=!0;try{const r=await M.login(s.value);r.detail?.token?(f.setToken(r.detail.token),m.push("/admin")):a.showAlert("登录失败:未获取到有效令牌","error")}catch(r){const t=r&&typeof r=="object"&&"response"in r&&r.response?.data?.detail||"登录失败";a.showAlert(t,"error")}finally{l.value=!1}}};return(r,t)=>(S(),h("div",{class:d(["min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 transition-colors duration-200 relative overflow-hidden",i(n)?"bg-gray-900":"bg-gray-50"])},[t[6]||(t[6]=e("div",{class:"absolute inset-0 z-0"},[e("div",{class:"cyber-grid"}),e("div",{class:"floating-particles"})],-1)),e("div",{class:d(["max-w-md w-full space-y-8 backdrop-blur-lg bg-opacity-20 p-8 rounded-xl border border-opacity-20",[i(n)?"bg-gray-800 border-gray-600":"bg-white/70 border-gray-200"]])},[e("div",null,[e("div",j,[t[1]||(t[1]=e("div",{class:"absolute inset-0 bg-gradient-to-r from-cyan-500 via-purple-500 to-pink-500 rounded-full animate-spin-slow"},null,-1)),t[2]||(t[2]=e("div",{class:"absolute -inset-2 bg-gradient-to-r from-cyan-500 via-purple-500 to-pink-500 rounded-full opacity-50 blur-md animate-pulse"},null,-1)),e("div",{class:d(["absolute inset-1 rounded-full flex items-center justify-center",i(n)?"bg-gray-800":"bg-white"])},[k(i(E),{class:d(["h-8 w-8",i(n)?"text-cyan-400":"text-cyan-600"])},null,8,["class"])],2)]),e("h2",{class:d(["mt-6 text-center text-3xl font-extrabold",i(n)?"text-white":"text-gray-900"])}," 登录 ",2)]),e("form",{class:"mt-8 space-y-6",onSubmit:I(v,["prevent"])},[t[5]||(t[5]=e("input",{type:"hidden",name:"remember",value:"true"},null,-1)),e("div",P,[e("div",null,[t[3]||(t[3]=e("label",{for:"password",class:"sr-only"},"密码",-1)),D(e("input",{id:"password",name:"password",type:"password",autocomplete:"current-password",required:"","onUpdate:modelValue":t[0]||(t[0]=o=>s.value=o),class:d(["appearance-none rounded-t-md relative block w-full px-4 py-3 border transition-all duration-200 placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-cyan-500 focus:z-10 sm:text-sm backdrop-blur-sm",i(n)?"bg-gray-800/50 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"bg-white/50 border-gray-300 text-gray-900 hover:border-gray-400"]),placeholder:"密码"},null,2),[[N,s.value]])])]),e("div",null,[e("button",{type:"submit",class:d(["group relative w-full flex justify-center py-3 px-4 border border-transparent text-sm font-medium rounded-md text-white transition-all duration-300 transform hover:scale-[1.02] focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-cyan-500 shadow-lg hover:shadow-cyan-500/50",i(n)?"bg-gradient-to-r from-cyan-500 to-purple-500 hover:from-cyan-600 hover:to-purple-600":"bg-gradient-to-r from-cyan-600 to-purple-600 hover:from-cyan-700 hover:to-purple-700",l.value?"opacity-75 cursor-not-allowed":""]),disabled:l.value},[t[4]||(t[4]=e("span",{class:"absolute left-0 inset-y-0 flex items-center pl-3"},null,-1)),T(" "+_(l.value?"登录中...":"登录"),1)],10,R)])],32)],2)],2))}}),C=V(L,[["__scopeId","data-v-894571a2"]]);export{C as default}; +import{K as y,r as c,V as u,g as b,d as w,l as x,a as h,o as S,b as e,n as d,e as i,i as A,k,h as I,p as D,v as N,y as T,t as _,W as M,B as O,_ as V}from"./index-14Tp7zPK.js";import{B as E}from"./box-CiSQlKtb.js";const B=y("admin",()=>{const p=c(localStorage.getItem(u.ADMIN_PASSWORD)||""),a=c(localStorage.getItem(u.TOKEN)||""),s=c(!1),l=c(null),n=b(()=>s.value&&!!a.value),f=o=>{p.value=o,localStorage.setItem(u.ADMIN_PASSWORD,o)},g=o=>{a.value=o,localStorage.setItem(u.TOKEN,o)},m=o=>{l.value=o,s.value=!0,g(o.token)};return{adminPassword:p,token:a,isLoggedIn:s,userInfo:l,isAuthenticated:n,updateAdminPassword:f,setToken:g,setUserInfo:m,login:o=>{m(o)},logout:()=>{p.value="",a.value="",s.value=!1,l.value=null,localStorage.removeItem(u.ADMIN_PASSWORD),localStorage.removeItem(u.TOKEN)},initAuth:()=>{const o=localStorage.getItem(u.TOKEN);o&&(a.value=o,s.value=!0)}}}),K=B,j={class:"mx-auto h-16 w-16 relative"},P={class:"rounded-md shadow-sm -space-y-px"},R=["disabled"],L=w({__name:"LoginView",setup(p){const a=x(),s=c(""),l=c(!1),n=A("isDarkMode"),f=K(),g=()=>{let r=!0;return s.value?s.value.length<6&&(a.showAlert("密码长度至少为6位","error"),r=!1):(a.showAlert("无效的密码","error"),r=!1),r},m=O(),v=async()=>{if(g()){l.value=!0;try{const r=await M.login(s.value);r.detail?.token?(f.setToken(r.detail.token),m.push("/admin")):a.showAlert("登录失败:未获取到有效令牌","error")}catch(r){const t=r&&typeof r=="object"&&"response"in r&&r.response?.data?.detail||"登录失败";a.showAlert(t,"error")}finally{l.value=!1}}};return(r,t)=>(S(),h("div",{class:d(["min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 transition-colors duration-200 relative overflow-hidden",i(n)?"bg-gray-900":"bg-gray-50"])},[t[6]||(t[6]=e("div",{class:"absolute inset-0 z-0"},[e("div",{class:"cyber-grid"}),e("div",{class:"floating-particles"})],-1)),e("div",{class:d(["max-w-md w-full space-y-8 backdrop-blur-lg bg-opacity-20 p-8 rounded-xl border border-opacity-20",[i(n)?"bg-gray-800 border-gray-600":"bg-white/70 border-gray-200"]])},[e("div",null,[e("div",j,[t[1]||(t[1]=e("div",{class:"absolute inset-0 bg-gradient-to-r from-cyan-500 via-purple-500 to-pink-500 rounded-full animate-spin-slow"},null,-1)),t[2]||(t[2]=e("div",{class:"absolute -inset-2 bg-gradient-to-r from-cyan-500 via-purple-500 to-pink-500 rounded-full opacity-50 blur-md animate-pulse"},null,-1)),e("div",{class:d(["absolute inset-1 rounded-full flex items-center justify-center",i(n)?"bg-gray-800":"bg-white"])},[k(i(E),{class:d(["h-8 w-8",i(n)?"text-cyan-400":"text-cyan-600"])},null,8,["class"])],2)]),e("h2",{class:d(["mt-6 text-center text-3xl font-extrabold",i(n)?"text-white":"text-gray-900"])}," 登录 ",2)]),e("form",{class:"mt-8 space-y-6",onSubmit:I(v,["prevent"])},[t[5]||(t[5]=e("input",{type:"hidden",name:"remember",value:"true"},null,-1)),e("div",P,[e("div",null,[t[3]||(t[3]=e("label",{for:"password",class:"sr-only"},"密码",-1)),D(e("input",{id:"password",name:"password",type:"password",autocomplete:"current-password",required:"","onUpdate:modelValue":t[0]||(t[0]=o=>s.value=o),class:d(["appearance-none rounded-t-md relative block w-full px-4 py-3 border transition-all duration-200 placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-cyan-500 focus:z-10 sm:text-sm backdrop-blur-sm",i(n)?"bg-gray-800/50 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"bg-white/50 border-gray-300 text-gray-900 hover:border-gray-400"]),placeholder:"密码"},null,2),[[N,s.value]])])]),e("div",null,[e("button",{type:"submit",class:d(["group relative w-full flex justify-center py-3 px-4 border border-transparent text-sm font-medium rounded-md text-white transition-all duration-300 transform hover:scale-[1.02] focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-cyan-500 shadow-lg hover:shadow-cyan-500/50",i(n)?"bg-gradient-to-r from-cyan-500 to-purple-500 hover:from-cyan-600 hover:to-purple-600":"bg-gradient-to-r from-cyan-600 to-purple-600 hover:from-cyan-700 hover:to-purple-700",l.value?"opacity-75 cursor-not-allowed":""]),disabled:l.value},[t[4]||(t[4]=e("span",{class:"absolute left-0 inset-y-0 flex items-center pl-3"},null,-1)),T(" "+_(l.value?"登录中...":"登录"),1)],10,R)])],32)],2)],2))}}),C=V(L,[["__scopeId","data-v-894571a2"]]);export{C as default}; diff --git a/themes/2024/assets/PageHeader-B7RfkNXn.js b/themes/2024/assets/PageHeader-BDzp_ji4.js similarity index 99% rename from themes/2024/assets/PageHeader-B7RfkNXn.js rename to themes/2024/assets/PageHeader-BDzp_ji4.js index 4a2dbd9..4f24c65 100644 --- a/themes/2024/assets/PageHeader-B7RfkNXn.js +++ b/themes/2024/assets/PageHeader-BDzp_ji4.js @@ -1,4 +1,4 @@ -import{c as Y,d as G,I as N,r as y,J as Z,f as ne,F as oe,K as ie,g as B,U as x,l as se,a as le,o as ue,b as H,k as ce,e as J,n as de,i as fe,t as he,_ as ve}from"./index-C9gpBPbG.js";import{B as ge}from"./box-m5X2L2BC.js";/** +import{c as Y,d as G,I as N,r as y,J as Z,f as ne,F as oe,K as ie,g as B,U as x,l as se,a as le,o as ue,b as H,k as ce,e as J,n as de,i as fe,t as he,_ as ve}from"./index-14Tp7zPK.js";import{B as ge}from"./box-CiSQlKtb.js";/** * @license lucide-vue-next v0.535.0 - ISC * * This source code is licensed under the ISC license. diff --git a/themes/2024/assets/RetrievewFileView-B44L-RDl.js b/themes/2024/assets/RetrievewFileView-DWBfGPUc.js similarity index 99% rename from themes/2024/assets/RetrievewFileView-B44L-RDl.js rename to themes/2024/assets/RetrievewFileView-DWBfGPUc.js index 690d1bc..b1bfdcd 100644 --- a/themes/2024/assets/RetrievewFileView-B44L-RDl.js +++ b/themes/2024/assets/RetrievewFileView-DWBfGPUc.js @@ -1,4 +1,4 @@ -import{c as ct,d as be,u as We,r as K,w as It,a as W,o as P,h as zt,b,n as T,e as d,i as xe,t as R,p as cr,j as ge,v as ur,k as L,_ as Re,z as pr,m as Le,y as me,D as Ut,T as Ft,E as hr,X as Nn,A as dr,F as fr,x as gr,l as mr,G as kr,f as br,H as xr,B as wr,C as yr}from"./index-C9gpBPbG.js";import{S as _r,C as Tr,Q as vr,E as Ar,u as Er,P as Sr,d as Rr}from"./PageHeader-B7RfkNXn.js";import{F as Pn}from"./file-DGAdxgYw.js";import{H as Lr}from"./hard-drive-BToulIQT.js";import{T as Cr}from"./trash-Cw4_1PxO.js";import"./box-m5X2L2BC.js";/** +import{c as ct,d as be,u as We,r as K,w as It,a as W,o as P,h as zt,b,n as T,e as d,i as xe,t as R,p as cr,j as ge,v as ur,k as L,_ as Re,z as pr,m as Le,y as me,D as Ut,T as Ft,E as hr,X as Nn,A as dr,F as fr,x as gr,l as mr,G as kr,f as br,H as xr,B as wr,C as yr}from"./index-14Tp7zPK.js";import{S as _r,C as Tr,Q as vr,E as Ar,u as Er,P as Sr,d as Rr}from"./PageHeader-BDzp_ji4.js";import{F as Pn}from"./file-CN_5aebv.js";import{H as Lr}from"./hard-drive-DvXIDK_-.js";import{T as Cr}from"./trash-BTMfj7si.js";import"./box-CiSQlKtb.js";/** * @license lucide-vue-next v0.535.0 - ISC * * This source code is licensed under the ISC license. diff --git a/themes/2024/assets/SendFileView-BOsMUoIt.js b/themes/2024/assets/SendFileView-BOsMUoIt.js deleted file mode 100644 index 0519dbb..0000000 --- a/themes/2024/assets/SendFileView-BOsMUoIt.js +++ /dev/null @@ -1,26 +0,0 @@ -import{c as L,d as N,u as Q,a as T,o as F,b as s,n,e,i as J,t as k,r as $,f as me,w as ze,_ as te,g as G,h as O,j as q,k as m,l as Ae,m as E,T as K,p as de,F as X,v as $e,q as Ie,s as ce,x as ue,y as Y,z as Pe,X as pe,A as Ve,B as Re,C as H}from"./index-C9gpBPbG.js";import{u as Ue,P as je,S as ge,C as Be,c as Ee,a as He,Q as Le,b as Z,E as Ne}from"./PageHeader-B7RfkNXn.js";import{F as he}from"./file-DGAdxgYw.js";import{T as We}from"./trash-Cw4_1PxO.js";import"./box-m5X2L2BC.js";/** - * @license lucide-vue-next v0.535.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ee=L("clipboard-copy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]);/** - * @license lucide-vue-next v0.535.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const qe=L("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** - * @license lucide-vue-next v0.535.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ge=L("cloud-upload",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"m8 17 4-4 4 4",key:"1quai1"}]]);/** - * @license lucide-vue-next v0.535.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Oe=L("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** - * @license lucide-vue-next v0.535.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Qe=L("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]),fe=A=>A>=1024*1024*1024?Math.round(A/(1024*1024*1024))+"GB":A>=1024*1024?Math.round(A/(1024*1024))+"MB":Math.round(A/1024)+"KB",Je={class:"flex justify-center space-x-4 mb-6"},Ke=N({__name:"SendTypeSelector",props:{selectedType:{}},emits:["update:selectedType"],setup(A,{emit:_}){const{t:z}=Q(),o=_,f=J("isDarkMode"),b=y=>{o("update:selectedType",y)};return(y,u)=>(F(),T("div",Je,[s("button",{type:"button",onClick:u[0]||(u[0]=l=>b("file")),class:n(["px-4 py-2 rounded-lg transition-colors duration-300",y.selectedType==="file"?"bg-indigo-600 text-white":e(f)?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"])},k(e(z)("nav.sendFile")),3),s("button",{type:"button",onClick:u[1]||(u[1]=l=>b("text")),class:n(["px-4 py-2 rounded-lg transition-colors duration-300",y.selectedType==="text"?"bg-indigo-600 text-white":e(f)?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"])},k(e(z)("send.sendText")),3)]))}}),Xe=N({__name:"BorderProgressBar",props:{progress:{}},setup(A){const _=A,z=$(null),o=$(null);let f=null;const b=()=>{if(!f||!o.value||!z.value)return;const u=z.value.clientWidth,l=z.value.clientHeight;o.value.width=u,o.value.height=l;const g=4,i=8;f.lineWidth=g;const C=f.createLinearGradient(0,0,u,l);C.addColorStop(0,"#4f46e5"),C.addColorStop(.5,"#7c3aed"),C.addColorStop(1,"#db2777"),f.strokeStyle="rgba(229, 231, 235, 0.2)",y(f,g/2,g/2,u-g,l-g,i),f.stroke();const d=((u+l)*2-8*i+2*Math.PI*i)*_.progress/100;f.strokeStyle=C,f.lineCap="round",f.lineJoin="round",f.beginPath();let p=d;const w=g/2,P=u-g,R=l-g;if(p>0){const x=Math.min(P-2*i,p);f.moveTo(i+w,w),f.lineTo(x+i+w,w),p-=x}if(p>0){const x=Math.min(Math.PI/2,p/i);f.arc(P-i+w,i+w,i,-Math.PI/2,x-Math.PI/2,!1),p-=x*i}if(p>0){const x=Math.min(R-2*i,p);f.lineTo(P+w,x+i+w),p-=x}if(p>0){const x=Math.min(Math.PI/2,p/i);f.arc(P-i+w,R-i+w,i,0,x,!1),p-=x*i}if(p>0){const x=Math.min(P-2*i,p);f.lineTo(P-x-i+w,R+w),p-=x}if(p>0){const x=Math.min(Math.PI/2,p/i);f.arc(i+w,R-i+w,i,Math.PI/2,Math.PI/2+x,!1),p-=x*i}if(p>0){const x=Math.min(R-2*i,p);f.lineTo(w,R-x-i+w),p-=x}if(p>0){const x=Math.min(Math.PI/2,p/i);f.arc(i+w,i+w,i,Math.PI,Math.PI+x,!1)}f.stroke()};function y(u,l,g,i,C,h){u.beginPath(),u.moveTo(l+h,g),u.lineTo(l+i-h,g),u.arcTo(l+i,g,l+i,g+h,h),u.lineTo(l+i,g+C-h),u.arcTo(l+i,g+C,l+i-h,g+C,h),u.lineTo(l+h,g+C),u.arcTo(l,g+C,l,g+C-h,h),u.lineTo(l,g+h),u.arcTo(l,g,l+h,g,h),u.closePath()}return me(()=>{o.value&&(f=o.value.getContext("2d"),b())}),ze(()=>_.progress,b),(u,l)=>(F(),T("div",{class:"border-progress-container",ref_key:"container",ref:z},[s("canvas",{ref_key:"canvas",ref:o,class:"border-progress-canvas"},null,512)],512))}}),Ye=te(Xe,[["__scopeId","data-v-2fbf5085"]]),Ze=["accept"],et={key:0,class:"absolute inset-0 w-full h-full"},tt={class:"block truncate"},st=N({__name:"FileUploadArea",props:{selectedFile:{default:null},progress:{default:0},placeholder:{default:""},description:{default:""},acceptedTypes:{default:"*"}},emits:["fileSelected","fileDrop"],setup(A,{emit:_}){const{t:z}=Q(),o=A,f=_,b=J("isDarkMode"),y=G(()=>o.placeholder||z("send.uploadArea.placeholder")),u=G(()=>o.description||z("send.uploadArea.description")),l=$(null),g=()=>{l.value?.click()},i=h=>{const p=h.target.files?.[0];p&&f("fileSelected",p)},C=h=>{f("fileDrop",h)};return(h,d)=>(F(),T("div",{class:n(["rounded-xl p-8 flex flex-col items-center justify-center border-2 border-dashed transition-all duration-300 group cursor-pointer relative",[e(b)?"bg-gray-800 bg-opacity-50 border-gray-600 hover:border-indigo-500":"bg-gray-100 border-gray-300 hover:border-indigo-500"]]),onClick:g,onDragover:d[0]||(d[0]=O(()=>{},["prevent"])),onDrop:O(C,["prevent"])},[s("input",{ref_key:"fileInput",ref:l,type:"file",class:"hidden",onChange:i,accept:h.acceptedTypes},null,40,Ze),h.progress>0?(F(),T("div",et,[m(Ye,{progress:h.progress},null,8,["progress"])])):q("",!0),m(e(Ge),{class:n(["w-16 h-16 transition-colors duration-300",e(b)?"text-gray-400 group-hover:text-indigo-400":"text-gray-600 group-hover:text-indigo-600"])},null,8,["class"]),s("p",{class:n(["mt-4 text-sm transition-colors duration-300 w-full text-center",e(b)?"text-gray-400 group-hover:text-indigo-400":"text-gray-600 group-hover:text-indigo-600"])},[s("span",tt,k(h.selectedFile?h.selectedFile.name:y.value),1)],2),s("p",{class:n(["mt-2 text-xs",e(b)?"text-gray-500":"text-gray-400"])},k(u.value),3)],34))}}),rt={class:"flex flex-col"},ot=["value","rows","placeholder"],at=N({__name:"TextInputArea",props:{modelValue:{},rows:{default:7},placeholder:{default:"在此输入要发送的文本..."}},emits:["update:modelValue"],setup(A,{emit:_}){const{t:z}=Q(),o=A,f=_,b=J("isDarkMode"),y=G(()=>o.placeholder||z("send.uploadArea.textInput")),u=l=>{const g=l.target;f("update:modelValue",g.value)};return(l,g)=>(F(),T("div",rt,[s("textarea",{value:l.modelValue,onInput:u,rows:l.rows,placeholder:y.value,class:n(["flex-grow px-4 py-3 rounded-xl placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 transition duration-300 resize-none custom-scrollbar",e(b)?"bg-gray-800 bg-opacity-50 text-white":"bg-white text-gray-900 border border-gray-300"])},null,42,ot)]))}}),nt=te(at,[["__scopeId","data-v-bebdfe92"]]),lt={class:"p-8"},it={key:"file",class:"grid grid-cols-1 gap-8"},dt={key:"text",class:"grid grid-cols-1 gap-8"},ct={class:"flex flex-col space-y-3"},ut={class:"relative flex-grow group"},pt=["placeholder"],gt=["value"],ht={type:"submit",class:"w-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 text-white font-bold py-4 px-6 rounded-lg focus:outline-none focus:ring-2 focus:ring-purple-500 focus:ring-opacity-50 transition-all duration-300 transform hover:scale-105 hover:shadow-lg relative overflow-hidden group"},ft={class:"relative z-10 flex items-center justify-center text-lg"},mt={class:"mt-6 text-center"},xt={class:"flex-grow overflow-y-auto p-6"},vt={class:"flex-shrink-0 mr-4"},yt={class:"flex-grow min-w-0 mr-4"},bt={class:"flex-shrink-0 flex space-x-2"},wt=["onClick"],kt=["onClick"],_t=["onClick"],St={key:0,class:"fixed inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-50 p-3 sm:p-4 overflow-y-auto"},Ct={class:"flex items-center justify-between"},Mt={class:"p-4 sm:p-6"},Tt={class:"flex items-center mb-3 sm:mb-4"},Ft={class:"ml-3 sm:ml-4 min-w-0 flex-1"},Dt={class:"grid grid-cols-2 gap-3 sm:gap-4"},zt={class:"flex items-center min-w-0"},At={class:"flex items-center min-w-0"},$t={class:"grid grid-cols-1 md:grid-cols-2 gap-4 sm:gap-6"},It={class:"space-y-3 sm:space-y-4"},Pt={class:"bg-gradient-to-br from-indigo-500 to-purple-600 rounded-xl p-4 sm:p-5 text-white"},Vt={class:"flex items-center justify-between mb-3 sm:mb-4"},Rt={class:"text-2xl sm:text-3xl font-bold tracking-wider text-center break-all"},Ut={class:"flex items-center justify-between mb-2 sm:mb-3"},jt={class:"bg-white p-3 sm:p-4 rounded-lg shadow-sm mb-3 sm:mb-4"},Bt=N({__name:"SendFileView",setup(A){const _=JSON.parse(localStorage.getItem("config")||"{}"),z=Re(),o=J("isDarkMode"),f=Ue(),b=$("file"),y=$(null),u=$(""),l=$(_.expireStyle?.[0]||"day"),g=$("1"),i=$(0),C=$(!1),h=$(null),{t:d}=Q(),p=Ae(),w=G(()=>f.shareData),P=$(""),R=r=>{y.value=r},x=async r=>{if(r.dataTransfer?.files&&r.dataTransfer.files.length>0){const t=r.dataTransfer.files[0];if(y.value=t,!ne())return;P.value=await se(t)}},xe=async r=>{const t=r.clipboardData?.items;if(t)for(let c=0;c{const M=v.trim();if(!M)return;const S=document.getElementById("text-content");if(!S){u.value+=M;return}const D=S.selectionStart,V=S.selectionEnd;if(D!==V){const I=u.value.substring(0,D),B=u.value.substring(V);u.value=I+M+B,setTimeout(()=>{const j=D+M.length;S.setSelectionRange(j,j),S.focus()},0)}else{const I=D,B=u.value.substring(0,I),j=u.value.substring(I);u.value=B+M+j,setTimeout(()=>{const W=I+M.length;S.setSelectionRange(W,W),S.focus()},0)}})}},se=async r=>new Promise(t=>{const a=new FileReader;let v=0;const M=Math.ceil(r.size/2097152);a.onload=async D=>{const V=new Uint8Array(D.target.result);try{if(window.isSecureContext){const U=await crypto.subtle.digest("SHA-256",V),B=Array.from(new Uint8Array(U)).map(j=>j.toString(16).padStart(2,"0")).join("");v++,v{const D=v*2097152,V=D+2097152>=r.size?r.size:D+2097152;a.readAsArrayBuffer(r.slice(D,V))};S()}),re=r=>{const t=`${r.name}-${r.size}-${r.lastModified}`;let c=0;for(let a=0;a{switch(r){case"day":return d("send.expiration.placeholders.days");case"hour":return d("send.expiration.placeholders.hours");case"minute":return d("send.expiration.placeholders.minutes");case"count":return d("send.expiration.placeholders.count");case"forever":return d("send.expiration.placeholders.forever");default:return d("send.expiration.placeholders.default")}},oe=(r=l.value)=>{switch(r){case"day":return d("send.expiration.units.days");case"hour":return d("send.expiration.units.hours");case"minute":return d("send.expiration.units.minutes");case"count":return d("send.expiration.units.times");case"forever":return d("send.expiration.units.forever");default:return""}},ye=(r,t)=>{if(r==="forever")return d("send.expiration.units.forever");if(r==="count")return d("send.messages.expiresAfterCount",{count:t});const c=new Date,a=parseInt(t);switch(r){case"minute":c.setMinutes(c.getMinutes()+a);break;case"hour":c.setHours(c.getHours()+a);break;case"day":c.setDate(c.getDate()+a);break;default:return d("send.messages.expiresAfter",{value:t,unit:oe(r)})}const v=c.getFullYear(),M=(c.getMonth()+1).toString().padStart(2,"0"),S=c.getDate().toString().padStart(2,"0"),D=c.getHours().toString().padStart(2,"0"),V=c.getMinutes().toString().padStart(2,"0");return d("send.messages.expiresAt",{date:`${v}-${M}-${S} ${D}:${V}`})},be=async r=>{try{const c=Math.ceil(r.size/5242880),a=await H.post("chunk/upload/init/",{file_name:r.name,file_size:r.size,chunk_size:5242880,file_hash:P.value});if(a.code!==200)throw new Error(d("send.messages.initChunkUploadFailed"));if(a.detail?.existed)return a;const v=a.detail?.upload_id;for(let S=0;S{const W=Math.round((S*5242880+j.loaded)*100/r.size);i.value=W}})).code!==200)throw new Error(d("send.messages.chunkUploadFailed",{index:S}))}const M=await H.post(`chunk/upload/complete/${v}`,{expire_value:g.value?parseInt(g.value):1,expire_style:l.value});if(M.code!==200)throw new Error(d("send.messages.completeUploadFailed"));return M}catch(t){if(console.error("切片上传失败:",t),t&&typeof t=="object"&&"response"in t){const c=t;c.response?.data?.detail&&p.showAlert(c.response.data.detail,"error")}else p.showAlert(d("send.messages.uploadFailed"),"error");throw t}},we=async r=>{const t=new FormData,c={headers:{"Content-Type":"multipart/form-data"},onUploadProgress:v=>{const M=Math.round(v.loaded*100/(v.total||1));i.value=M}};return t.append("file",r),t.append("expire_value",g.value),t.append("expire_style",l.value),await H.post("share/file/",t,c)},ke=()=>_.openUpload===0&&localStorage.getItem("token")===null?(p.showAlert(d("send.messages.guestUploadDisabled"),"error"),!1):!0,_e=r=>r.size>_.uploadSize?(p.showAlert(d("send.messages.fileSizeExceeded",{size:fe(_.uploadSize)}),"error"),y.value=null,!1):!0,ae=(r,t)=>{if(r==="forever"||r==="count")return!0;const c=_.max_save_seconds||0;if(c===0)return!0;let a=0;switch(r){case"minute":a=parseInt(t)*60;break;case"hour":a=parseInt(t)*3600;break;case"day":a=parseInt(t)*86400;break;default:return!1}return a<=c},ne=()=>!(!ke()||!_e(y.value)||!ae(l.value,g.value)),Se=async()=>{if(b.value==="file"&&!y.value){p.showAlert(d("send.messages.selectFile"),"error");return}if(b.value==="text"&&!u.value.trim()){p.showAlert(d("send.messages.enterText"),"error");return}if(l.value!=="forever"&&!g.value){p.showAlert(d("send.messages.enterExpirationValue"),"error");return}if(!ae(l.value,g.value)){const r=Math.floor(_.max_save_seconds/86400);p.showAlert(d("send.messages.expirationTooLong",{days:r}),"error");return}try{let r;if(b.value==="file")_.enableChunk?r=await be(y.value):r=await we(y.value);else{const t=new FormData;t.append("text",u.value),t.append("expire_value",g.value),t.append("expire_style",l.value),r=await H.post("share/text/",t,{headers:{"Content-Type":"multipart/form-data"}})}if(r&&r.code===200){const t=r.detail?.code||"",c=r.detail?.name||"",a={id:Date.now(),filename:c,date:new Date().toISOString().split("T")[0],size:b.value==="text"?`${(u.value.length/1024).toFixed(2)} KB`:`${(y.value.size/(1024*1024)).toFixed(1)} MB`,expiration:l.value==="forever"?d("send.expiration.forever"):ye(l.value,g.value),retrieveCode:t};f.addShareDataRecord(a),p.showAlert(d("send.messages.sendSuccess",{code:t}),"success"),y.value=null,u.value="",i.value=0,h.value=a,await Z(t)}else throw new Error(d("send.messages.serverError"))}catch(r){if(r&&typeof r=="object"&&"response"in r){const t=r;t.response?.data?.detail&&p.showAlert(t.response.data.detail,"error")}else p.showAlert(d("send.messages.sendFailed"),"error")}finally{i.value=0}},Ce=()=>{z.push("/")},le=()=>{C.value=!C.value},Me=r=>{h.value=r},Te=r=>{const t=f.shareData.findIndex(c=>c.id===r);t!==-1&&f.deleteShareData(t)},Fe=window.location.origin+"/#/",De=r=>`${Fe}?code=${r.retrieveCode}`,ie=r=>{const c=(parseInt(g.value)||0)+r;c>=1&&(g.value=c.toString())};return me(()=>{console.log("SendFileView mounted")}),(r,t)=>{const c=Pe("router-link");return F(),T("div",{class:"min-h-screen flex items-center justify-center p-4 overflow-hidden transition-colors duration-300",onPaste:O(xe,["prevent"])},[s("div",{class:n(["rounded-3xl shadow-2xl overflow-hidden border w-full max-w-md transition-colors duration-300",[e(o)?"bg-white bg-opacity-10 backdrop-filter backdrop-blur-xl border-gray-700":"bg-white border-gray-200"]])},[s("div",lt,[m(je,{title:e(_).name,onTitleClick:Ce},null,8,["title"]),s("form",{onSubmit:O(Se,["prevent"]),class:"space-y-8"},[m(Ke,{"selected-type":b.value,"onUpdate:selectedType":t[0]||(t[0]=a=>b.value=a)},null,8,["selected-type"]),m(K,{name:"fade",mode:"out-in"},{default:E(()=>[b.value==="file"?(F(),T("div",it,[m(st,{"selected-file":y.value,progress:i.value,description:`支持各种常见格式,最大${e(fe)(e(_).uploadSize)}`,onFileSelected:R,onFileDrop:x},null,8,["selected-file","progress","description"])])):(F(),T("div",dt,[m(nt,{modelValue:u.value,"onUpdate:modelValue":t[1]||(t[1]=a=>u.value=a),placeholder:e(d)("send.uploadArea.textInput")},null,8,["modelValue","placeholder"])]))]),_:1}),s("div",ct,[s("label",{class:n(["text-sm font-medium",e(o)?"text-gray-300":"text-gray-700"])},k(e(d)("send.expiration.label")),3),s("div",ut,[s("div",{class:n(["relative h-12 rounded-2xl border transition-all duration-300 shadow-sm",e(o)?"bg-gray-800/60 border-gray-700/60 group-hover:border-gray-600/80 group-hover:shadow-lg group-hover:shadow-gray-900/20":"bg-white border-gray-200 group-hover:border-gray-300 group-hover:shadow-md group-hover:shadow-gray-200/50"])},[l.value!=="forever"?(F(),T(X,{key:0},[de(s("input",{"onUpdate:modelValue":t[2]||(t[2]=a=>g.value=a),type:"number",placeholder:ve(),min:"1",class:n(["w-full h-full px-5 pr-32 rounded-2xl placeholder-gray-400 transition-all duration-300","focus:outline-none focus:ring-2 focus:ring-offset-0","[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none","bg-transparent",e(o)?"text-gray-100 focus:ring-indigo-500/80 placeholder-gray-500":"text-gray-900 focus:ring-indigo-500/60 placeholder-gray-400"])},null,10,pt),[[$e,g.value]]),s("div",{class:n(["absolute right-28 top-0 h-full flex flex-col border-l",[e(o)?"border-gray-700/60":"border-gray-200"]])},[s("button",{type:"button",onClick:t[3]||(t[3]=a=>ie(1)),class:n(["flex-1 px-2 flex items-center justify-center transition-all duration-200",[e(o)?"hover:bg-gray-700/60 text-gray-400 hover:text-gray-200":"hover:bg-gray-50 text-gray-500 hover:text-gray-700"]])},[...t[10]||(t[10]=[s("svg",{class:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[s("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 15l7-7 7 7"})],-1)])],2),s("button",{type:"button",onClick:t[4]||(t[4]=a=>ie(-1)),class:n(["flex-1 px-2 flex items-center justify-center transition-all duration-200",[e(o)?"hover:bg-gray-700/60 text-gray-400 hover:text-gray-200":"hover:bg-gray-50 text-gray-500 hover:text-gray-700"]])},[...t[11]||(t[11]=[s("svg",{class:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[s("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"})],-1)])],2)],2)],64)):q("",!0),de(s("select",{"onUpdate:modelValue":t[5]||(t[5]=a=>l.value=a),class:n(["absolute right-0 top-0 h-full appearance-none cursor-pointer transition-all duration-300","focus:outline-none focus:ring-2 focus:ring-offset-0",l.value==="forever"?"w-full px-5 rounded-2xl":"w-28 pl-4 pr-9 border-l rounded-r-2xl",e(o)?"text-gray-100 border-gray-700/60 focus:ring-indigo-500/80 bg-gray-800/60":"text-gray-900 border-gray-200 focus:ring-indigo-500/60 bg-white"]),style:ce({color:e(o)?"#f3f4f6":"#111827",backgroundColor:e(o)?"rgba(31, 41, 55, 0.5)":"#ffffff"})},[(F(!0),T(X,null,ue(e(_).expireStyle,a=>(F(),T("option",{value:a,key:a,class:n([e(o)?"bg-gray-800 text-gray-100":"bg-white text-gray-900"]),style:ce({color:e(o)?"#f3f4f6":"#111827",backgroundColor:e(o)?"#1f2937":"#ffffff"})},k(oe(a)),15,gt))),128))],6),[[Ie,l.value]]),s("div",{class:n(["absolute pointer-events-none",[l.value==="forever"?"right-3":"right-2","top-1/2 -translate-y-1/2"]])},[(F(),T("svg",{class:n(["w-4 h-4 transition-colors duration-300",[e(o)?"text-gray-400":"text-gray-500"]]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[12]||(t[12]=[s("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])],2))],2)],2)])]),s("button",ht,[t[13]||(t[13]=s("span",{class:"absolute top-0 left-0 w-full h-full bg-white opacity-0 group-hover:opacity-20 transition-opacity duration-300"},null,-1)),s("span",ft,[m(e(Oe),{class:"w-6 h-6 mr-2"}),s("span",null,k(e(d)("send.submit")),1)])])],32),s("div",mt,[m(c,{to:"/",class:"text-indigo-400 hover:text-indigo-300 transition duration-300"},{default:E(()=>[Y(k(e(d)("send.needRetrieveFile")),1)]),_:1})])]),s("div",{class:n(["px-8 py-4 bg-opacity-50 flex justify-between items-center",[e(o)?"bg-gray-800":"bg-gray-100"]])},[s("span",{class:n(["text-sm flex items-center",[e(o)?"text-gray-300":"text-gray-800"]])},[m(e(ge),{class:"w-4 h-4 mr-1 text-green-400"}),Y(" "+k(e(d)("send.secureEncryption")),1)],2),s("button",{onClick:le,class:n(["text-sm hover:text-indigo-300 transition duration-300 flex items-center",[e(o)?"text-indigo-400":"text-indigo-600"]])},[Y(k(e(d)("send.sendRecords"))+" ",1),m(e(Be),{class:"w-4 h-4 ml-1"})],2)],2)],2),m(K,{name:"drawer"},{default:E(()=>[C.value?(F(),T("div",{key:0,class:n(["fixed inset-y-0 right-0 w-full sm:w-120 bg-opacity-70 backdrop-filter backdrop-blur-xl shadow-2xl z-50 overflow-hidden flex flex-col",[e(o)?"bg-gray-900":"bg-white"]])},[s("div",{class:n(["flex justify-between items-center p-6 border-b",[e(o)?"border-gray-700":"border-gray-200"]])},[s("h3",{class:n(["text-2xl font-bold",[e(o)?"text-white":"text-gray-800"]])},k(e(d)("send.sendRecords")),3),s("button",{onClick:le,class:n(["hover:text-white transition duration-300",[e(o)?"text-gray-400":"text-gray-800"]])},[m(e(pe),{class:"w-6 h-6"})],2)],2),s("div",xt,[m(Ve,{name:"list",tag:"div",class:"space-y-4"},{default:E(()=>[(F(!0),T(X,null,ue(w.value,a=>(F(),T("div",{key:a.id,class:n(["bg-opacity-50 rounded-lg p-4 flex items-center shadow-md hover:shadow-lg transition duration-300 transform hover:scale-102",[e(o)?"bg-gray-800 hover:bg-gray-700":"bg-gray-100 hover:bg-white"]])},[s("div",vt,[m(e(he),{class:n(["w-10 h-10",[e(o)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])]),s("div",yt,[s("p",{class:n(["font-medium text-lg truncate",[e(o)?"text-white":"text-gray-800"]])},k(a.filename?a.filename:"Text"),3),s("p",{class:n(["text-sm truncate",[e(o)?"text-gray-400":"text-gray-600"]])},k(a.date)+" · "+k(a.size),3)]),s("div",bt,[s("button",{onClick:v=>e(Z)(a.retrieveCode),class:n(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[e(o)?"hover:bg-blue-400 text-blue-400":"hover:bg-blue-100 text-blue-600"]])},[m(e(ee),{class:"w-5 h-5"})],10,wt),s("button",{onClick:v=>Me(a),class:n(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[e(o)?"hover:bg-green-400 text-green-400":"hover:bg-green-100 text-green-600"]])},[m(e(Ne),{class:"w-5 h-5"})],10,kt),s("button",{onClick:v=>Te(a.id),class:n(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[e(o)?"hover:bg-red-400 text-red-400":"hover:bg-red-100 text-red-600"]])},[m(e(We),{class:"w-5 h-5"})],10,_t)])],2))),128))]),_:1})])],2)):q("",!0)]),_:1}),m(K,{name:"fade"},{default:E(()=>[h.value?(F(),T("div",St,[s("div",{class:n(["w-full max-w-2xl rounded-2xl shadow-2xl transform transition-all duration-300 ease-out overflow-hidden",[e(o)?"bg-gray-900 bg-opacity-70":"bg-white bg-opacity-95"]])},[s("div",{class:n(["px-4 sm:px-6 py-3 sm:py-4 border-b",[e(o)?"border-gray-800":"border-gray-100"]])},[s("div",Ct,[s("h3",{class:n(["text-lg sm:text-xl font-semibold",[e(o)?"text-white":"text-gray-900"]])},k(e(d)("send.fileDetails")),3),s("button",{onClick:t[6]||(t[6]=a=>h.value=null),class:"p-1.5 sm:p-2 rounded-full hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"},[m(e(pe),{class:n(["w-4 h-4 sm:w-5 sm:h-5",[e(o)?"text-gray-400":"text-gray-500"]])},null,8,["class"])])])],2),s("div",Mt,[s("div",{class:n(["rounded-xl p-3 sm:p-4 mb-4 sm:mb-6",[e(o)?"bg-gray-800 bg-opacity-50":"bg-gray-50 bg-opacity-95"]])},[s("div",Tt,[s("div",{class:n(["p-2 sm:p-3 rounded-lg",[e(o)?"bg-gray-800":"bg-white"]])},[m(e(he),{class:n(["w-5 h-5 sm:w-6 sm:h-6",[e(o)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])],2),s("div",Ft,[s("h4",{class:n(["font-medium text-sm sm:text-base truncate",[e(o)?"text-white":"text-gray-900"]])},k(h.value.filename),3),s("p",{class:n(["text-xs sm:text-sm truncate",[e(o)?"text-gray-400":"text-gray-500"]])},k(h.value.size)+" · "+k(h.value.date),3)])]),s("div",Dt,[s("div",zt,[m(e(qe),{class:n(["w-3.5 h-3.5 sm:w-4 sm:h-4 mr-1.5 sm:mr-2 flex-shrink-0",[e(o)?"text-gray-400":"text-gray-500"]])},null,8,["class"]),s("span",{class:n(["text-xs sm:text-sm truncate",[e(o)?"text-gray-300":"text-gray-600"]])},k(h.value.expiration),3)]),s("div",At,[m(e(ge),{class:n(["w-3.5 h-3.5 sm:w-4 sm:h-4 mr-1.5 sm:mr-2 flex-shrink-0",[e(o)?"text-gray-400":"text-gray-500"]])},null,8,["class"]),s("span",{class:n(["text-xs sm:text-sm truncate",[e(o)?"text-gray-300":"text-gray-600"]])}," 安全加密 ",2)])])],2),s("div",$t,[s("div",It,[s("div",Pt,[s("div",Vt,[t[14]||(t[14]=s("h4",{class:"font-medium text-sm sm:text-base"},"取件码",-1)),s("button",{onClick:t[7]||(t[7]=a=>e(Ee)(h.value.retrieveCode)),class:"p-1.5 sm:p-2 rounded-full hover:bg-white/10 transition-colors"},[m(e(ee),{class:"w-4 h-4 sm:w-5 sm:h-5"})])]),s("p",Rt,k(h.value.retrieveCode),1)]),s("div",{class:n(["rounded-xl p-3 sm:p-4",[e(o)?"bg-gray-800 bg-opacity-50":"bg-gray-50 bg-opacity-95"]])},[s("div",Ut,[s("h4",{class:n(["font-medium text-sm sm:text-base flex items-center min-w-0",[e(o)?"text-white":"text-gray-900"]])},[m(e(Qe),{class:"w-4 h-4 sm:w-5 sm:h-5 mr-1.5 sm:mr-2 text-indigo-500 flex-shrink-0"}),t[15]||(t[15]=s("span",{class:"truncate"},"wget下载",-1))],2),s("button",{onClick:t[8]||(t[8]=a=>e(He)(h.value.retrieveCode,h.value.filename)),class:"p-1.5 sm:p-2 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors flex-shrink-0"},[m(e(ee),{class:n(["w-4 h-4 sm:w-5 sm:h-5",[e(o)?"text-gray-400":"text-gray-500"]])},null,8,["class"])])]),s("p",{class:n(["text-xs sm:text-sm font-mono break-all line-clamp-2",[e(o)?"text-gray-300":"text-gray-600"]])}," 点击复制wget命令 ",2)],2)]),s("div",{class:n(["rounded-xl p-4 sm:p-5 flex flex-col items-center",[e(o)?"bg-gray-800 bg-opacity-50":"bg-gray-50 bg-opacity-95"]])},[s("div",jt,[m(Le,{value:De(h.value),size:140,level:"M",class:"sm:w-[160px] sm:h-[160px]"},null,8,["value"])]),s("p",{class:n(["text-xs sm:text-sm truncate max-w-full",[e(o)?"text-gray-400":"text-gray-500"]])}," 扫描二维码快速取件 ",2)],2)])]),s("div",{class:n(["px-4 sm:px-6 py-3 sm:py-4 border-t",[e(o)?"border-gray-800":"border-gray-100"]])},[s("button",{onClick:t[9]||(t[9]=a=>e(Z)(h.value.retrieveCode)),class:"w-full bg-indigo-600 hover:bg-indigo-700 text-white px-4 sm:px-6 py-2 sm:py-3 rounded-lg text-sm sm:text-base font-medium transition-colors"}," 复制取件链接 ")],2)],2)])):q("",!0)]),_:1})],32)}}}),qt=te(Bt,[["__scopeId","data-v-a7f6997f"]]);export{qt as default}; diff --git a/themes/2024/assets/SendFileView-BqULfUDl.js b/themes/2024/assets/SendFileView-BqULfUDl.js new file mode 100644 index 0000000..4ef032f --- /dev/null +++ b/themes/2024/assets/SendFileView-BqULfUDl.js @@ -0,0 +1,26 @@ +import{c as H,d as N,u as Q,a as A,o as F,b as s,n as a,e,i as J,t as k,r as z,f as ve,w as Ve,_ as re,g as G,h as O,j as q,k as y,l as je,m as E,T as Y,p as pe,F as Z,v as Re,q as Ee,s as ge,x as he,y as ee,z as Le,X as fe,A as He,B as Ne,C as L}from"./index-14Tp7zPK.js";import{u as We,P as qe,S as me,C as Ge,c as Oe,a as Qe,Q as Je,b as te,E as Ke}from"./PageHeader-BDzp_ji4.js";import{F as ye}from"./file-CN_5aebv.js";import{T as Xe}from"./trash-BTMfj7si.js";import"./box-CiSQlKtb.js";/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const se=H("clipboard-copy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ye=H("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ze=H("cloud-upload",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"m8 17 4-4 4 4",key:"1quai1"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const et=H("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const tt=H("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]),xe=$=>$>=1024*1024*1024?Math.round($/(1024*1024*1024))+"GB":$>=1024*1024?Math.round($/(1024*1024))+"MB":Math.round($/1024)+"KB",st={class:"flex justify-center space-x-4 mb-6"},rt=N({__name:"SendTypeSelector",props:{selectedType:{}},emits:["update:selectedType"],setup($,{emit:_}){const{t:D}=Q(),o=_,f=J("isDarkMode"),b=v=>{o("update:selectedType",v)};return(v,u)=>(F(),A("div",st,[s("button",{type:"button",onClick:u[0]||(u[0]=i=>b("file")),class:a(["px-4 py-2 rounded-lg transition-colors duration-300",v.selectedType==="file"?"bg-indigo-600 text-white":e(f)?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"])},k(e(D)("nav.sendFile")),3),s("button",{type:"button",onClick:u[1]||(u[1]=i=>b("text")),class:a(["px-4 py-2 rounded-lg transition-colors duration-300",v.selectedType==="text"?"bg-indigo-600 text-white":e(f)?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"])},k(e(D)("send.sendText")),3)]))}}),ot=N({__name:"BorderProgressBar",props:{progress:{}},setup($){const _=$,D=z(null),o=z(null);let f=null;const b=()=>{if(!f||!o.value||!D.value)return;const u=D.value.clientWidth,i=D.value.clientHeight;o.value.width=u,o.value.height=i;const g=4,d=8;f.lineWidth=g;const C=f.createLinearGradient(0,0,u,i);C.addColorStop(0,"#4f46e5"),C.addColorStop(.5,"#7c3aed"),C.addColorStop(1,"#db2777"),f.strokeStyle="rgba(229, 231, 235, 0.2)",v(f,g/2,g/2,u-g,i-g,d),f.stroke();const c=((u+i)*2-8*d+2*Math.PI*d)*_.progress/100;f.strokeStyle=C,f.lineCap="round",f.lineJoin="round",f.beginPath();let p=c;const w=g/2,I=u-g,U=i-g;if(p>0){const x=Math.min(I-2*d,p);f.moveTo(d+w,w),f.lineTo(x+d+w,w),p-=x}if(p>0){const x=Math.min(Math.PI/2,p/d);f.arc(I-d+w,d+w,d,-Math.PI/2,x-Math.PI/2,!1),p-=x*d}if(p>0){const x=Math.min(U-2*d,p);f.lineTo(I+w,x+d+w),p-=x}if(p>0){const x=Math.min(Math.PI/2,p/d);f.arc(I-d+w,U-d+w,d,0,x,!1),p-=x*d}if(p>0){const x=Math.min(I-2*d,p);f.lineTo(I-x-d+w,U+w),p-=x}if(p>0){const x=Math.min(Math.PI/2,p/d);f.arc(d+w,U-d+w,d,Math.PI/2,Math.PI/2+x,!1),p-=x*d}if(p>0){const x=Math.min(U-2*d,p);f.lineTo(w,U-x-d+w),p-=x}if(p>0){const x=Math.min(Math.PI/2,p/d);f.arc(d+w,d+w,d,Math.PI,Math.PI+x,!1)}f.stroke()};function v(u,i,g,d,C,h){u.beginPath(),u.moveTo(i+h,g),u.lineTo(i+d-h,g),u.arcTo(i+d,g,i+d,g+h,h),u.lineTo(i+d,g+C-h),u.arcTo(i+d,g+C,i+d-h,g+C,h),u.lineTo(i+h,g+C),u.arcTo(i,g+C,i,g+C-h,h),u.lineTo(i,g+h),u.arcTo(i,g,i+h,g,h),u.closePath()}return ve(()=>{o.value&&(f=o.value.getContext("2d"),b())}),Ve(()=>_.progress,b),(u,i)=>(F(),A("div",{class:"border-progress-container",ref_key:"container",ref:D},[s("canvas",{ref_key:"canvas",ref:o,class:"border-progress-canvas"},null,512)],512))}}),at=re(ot,[["__scopeId","data-v-2fbf5085"]]),nt=["accept"],lt={key:0,class:"absolute inset-0 w-full h-full"},it={class:"block truncate"},dt=N({__name:"FileUploadArea",props:{selectedFile:{default:null},progress:{default:0},placeholder:{default:""},description:{default:""},acceptedTypes:{default:"*"}},emits:["fileSelected","fileDrop"],setup($,{emit:_}){const{t:D}=Q(),o=$,f=_,b=J("isDarkMode"),v=G(()=>o.placeholder||D("send.uploadArea.placeholder")),u=G(()=>o.description||D("send.uploadArea.description")),i=z(null),g=()=>{i.value?.click()},d=h=>{const p=h.target.files?.[0];p&&f("fileSelected",p)},C=h=>{f("fileDrop",h)};return(h,c)=>(F(),A("div",{class:a(["rounded-xl p-8 flex flex-col items-center justify-center border-2 border-dashed transition-all duration-300 group cursor-pointer relative",[e(b)?"bg-gray-800 bg-opacity-50 border-gray-600 hover:border-indigo-500":"bg-gray-100 border-gray-300 hover:border-indigo-500"]]),onClick:g,onDragover:c[0]||(c[0]=O(()=>{},["prevent"])),onDrop:O(C,["prevent"])},[s("input",{ref_key:"fileInput",ref:i,type:"file",class:"hidden",onChange:d,accept:h.acceptedTypes},null,40,nt),h.progress>0?(F(),A("div",lt,[y(at,{progress:h.progress},null,8,["progress"])])):q("",!0),y(e(Ze),{class:a(["w-16 h-16 transition-colors duration-300",e(b)?"text-gray-400 group-hover:text-indigo-400":"text-gray-600 group-hover:text-indigo-600"])},null,8,["class"]),s("p",{class:a(["mt-4 text-sm transition-colors duration-300 w-full text-center",e(b)?"text-gray-400 group-hover:text-indigo-400":"text-gray-600 group-hover:text-indigo-600"])},[s("span",it,k(h.selectedFile?h.selectedFile.name:v.value),1)],2),s("p",{class:a(["mt-2 text-xs",e(b)?"text-gray-500":"text-gray-400"])},k(u.value),3)],34))}}),ct={class:"flex flex-col"},ut=["value","rows","placeholder"],pt=N({__name:"TextInputArea",props:{modelValue:{},rows:{default:7},placeholder:{default:"在此输入要发送的文本..."}},emits:["update:modelValue"],setup($,{emit:_}){const{t:D}=Q(),o=$,f=_,b=J("isDarkMode"),v=G(()=>o.placeholder||D("send.uploadArea.textInput")),u=i=>{const g=i.target;f("update:modelValue",g.value)};return(i,g)=>(F(),A("div",ct,[s("textarea",{value:i.modelValue,onInput:u,rows:i.rows,placeholder:v.value,class:a(["flex-grow px-4 py-3 rounded-xl placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 transition duration-300 resize-none custom-scrollbar",e(b)?"bg-gray-800 bg-opacity-50 text-white":"bg-white text-gray-900 border border-gray-300"])},null,42,ut)]))}}),gt=re(pt,[["__scopeId","data-v-bebdfe92"]]),ht={class:"p-8"},ft={key:"file",class:"grid grid-cols-1 gap-8"},mt={key:"text",class:"grid grid-cols-1 gap-8"},yt={class:"flex flex-col space-y-3"},xt={class:"relative flex-grow group"},vt=["placeholder"],bt=["value"],wt={type:"submit",class:"w-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 text-white font-bold py-4 px-6 rounded-lg focus:outline-none focus:ring-2 focus:ring-purple-500 focus:ring-opacity-50 transition-all duration-300 transform hover:scale-105 hover:shadow-lg relative overflow-hidden group"},kt={class:"relative z-10 flex items-center justify-center text-lg"},_t={class:"mt-6 text-center"},St={class:"flex-grow overflow-y-auto p-6"},Ct={class:"flex-shrink-0 mr-4"},Mt={class:"flex-grow min-w-0 mr-4"},Tt={class:"flex-shrink-0 flex space-x-2"},At=["onClick"],Ft=["onClick"],Dt=["onClick"],$t={key:0,class:"fixed inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-50 p-3 sm:p-4 overflow-y-auto"},It={class:"flex items-center justify-between"},zt={class:"p-4 sm:p-6"},Pt={class:"flex items-center mb-3 sm:mb-4"},Bt={class:"ml-3 sm:ml-4 min-w-0 flex-1"},Ut={class:"grid grid-cols-2 gap-3 sm:gap-4"},Vt={class:"flex items-center min-w-0"},jt={class:"flex items-center min-w-0"},Rt={class:"grid grid-cols-1 md:grid-cols-2 gap-4 sm:gap-6"},Et={class:"space-y-3 sm:space-y-4"},Lt={class:"bg-gradient-to-br from-indigo-500 to-purple-600 rounded-xl p-4 sm:p-5 text-white"},Ht={class:"flex items-center justify-between mb-3 sm:mb-4"},Nt={class:"text-2xl sm:text-3xl font-bold tracking-wider text-center break-all"},Wt={class:"flex items-center justify-between mb-2 sm:mb-3"},qt={class:"bg-white p-3 sm:p-4 rounded-lg shadow-sm mb-3 sm:mb-4"},Gt=N({__name:"SendFileView",setup($){const _=JSON.parse(localStorage.getItem("config")||"{}"),D=Ne(),o=J("isDarkMode"),f=We(),b=z("file"),v=z(null),u=z(""),i=z(_.expireStyle?.[0]||"day"),g=z("1"),d=z(0),C=z(!1),h=z(null),{t:c}=Q(),p=je(),w=G(()=>f.shareData),I=z(""),U=async r=>{v.value=r,ae()&&ne(r)&&(I.value=await W(r))},x=async r=>{if(r.dataTransfer?.files&&r.dataTransfer.files.length>0){const t=r.dataTransfer.files[0];if(v.value=t,!ie())return;I.value=await W(t)}},be=async r=>{const t=r.clipboardData?.items;if(t)for(let n=0;n{const S=m.trim();if(!S)return;const M=document.getElementById("text-content");if(!M){u.value+=S;return}const P=M.selectionStart,T=M.selectionEnd;if(P!==T){const B=u.value.substring(0,P),V=u.value.substring(T);u.value=B+S+V,setTimeout(()=>{const j=P+S.length;M.setSelectionRange(j,j),M.focus()},0)}else{const B=P,V=u.value.substring(0,B),j=u.value.substring(B);u.value=V+S+j,setTimeout(()=>{const X=B+S.length;M.setSelectionRange(X,X),M.focus()},0)}})}},W=async r=>{try{if(r.size<=10*1024*1024){const T=await r.arrayBuffer();if(window.isSecureContext){const R=await crypto.subtle.digest("SHA-256",T);return Array.from(new Uint8Array(R)).map(V=>V.toString(16).padStart(2,"0")).join("")}return K(r)}const t=5*1024*1024,n=r.slice(0,t),l=r.slice(-t),[m,S]=await Promise.all([n.arrayBuffer(),l.arrayBuffer()]),M=new Uint8Array(m.byteLength+S.byteLength+16);M.set(new Uint8Array(m),0),M.set(new Uint8Array(S),m.byteLength);const P=new TextEncoder().encode(r.size.toString());if(M.set(P,m.byteLength+S.byteLength),window.isSecureContext){const T=await crypto.subtle.digest("SHA-256",M);return Array.from(new Uint8Array(T)).map(B=>B.toString(16).padStart(2,"0")).join("")}return K(r)}catch(t){return console.error("File hash calculation failed:",t),K(r)}},K=r=>{const t=`${r.name}-${r.size}-${r.lastModified}`;let n=0;for(let l=0;l{switch(r){case"day":return c("send.expiration.placeholders.days");case"hour":return c("send.expiration.placeholders.hours");case"minute":return c("send.expiration.placeholders.minutes");case"count":return c("send.expiration.placeholders.count");case"forever":return c("send.expiration.placeholders.forever");default:return c("send.expiration.placeholders.default")}},oe=(r=i.value)=>{switch(r){case"day":return c("send.expiration.units.days");case"hour":return c("send.expiration.units.hours");case"minute":return c("send.expiration.units.minutes");case"count":return c("send.expiration.units.times");case"forever":return c("send.expiration.units.forever");default:return""}},ke=(r,t)=>{if(r==="forever")return c("send.expiration.units.forever");if(r==="count")return c("send.messages.expiresAfterCount",{count:t});const n=new Date,l=parseInt(t);switch(r){case"minute":n.setMinutes(n.getMinutes()+l);break;case"hour":n.setHours(n.getHours()+l);break;case"day":n.setDate(n.getDate()+l);break;default:return c("send.messages.expiresAfter",{value:t,unit:oe(r)})}const m=n.getFullYear(),S=(n.getMonth()+1).toString().padStart(2,"0"),M=n.getDate().toString().padStart(2,"0"),P=n.getHours().toString().padStart(2,"0"),T=n.getMinutes().toString().padStart(2,"0");return c("send.messages.expiresAt",{date:`${m}-${S}-${M} ${P}:${T}`})},_e=async r=>{try{const t=await W(r);I.value=t,console.log("Calculated file hash:",t);const n=5*1024*1024,l=Math.ceil(r.size/n),m=await L.post("chunk/upload/init/",{file_name:r.name,file_size:r.size,chunk_size:n,file_hash:I.value});if(m.code!==200)throw new Error(c("send.messages.initChunkUploadFailed"));if(m.detail?.existed)return m;const S=m.detail?.upload_id,M=new Set(m.detail?.uploaded_chunks||[]);for(let T=0;T{const Ie=Array.from(M).reduce((Pe,ue)=>{const Be=Math.min((ue+1)*n,r.size),Ue=ue*n;return Pe+(Be-Ue)},0),ze=Math.round((Ie+T*n+$e.loaded)*100/r.size);d.value=Math.min(ze,99)}})).code!==200)throw new Error(c("send.messages.chunkUploadFailed",{index:T}))}const P=await L.post(`chunk/upload/complete/${S}`,{expire_value:g.value?parseInt(g.value):1,expire_style:i.value});if(P.code!==200)throw new Error(c("send.messages.completeUploadFailed"));return P}catch(t){if(console.error("切片上传失败:",t),t&&typeof t=="object"&&"response"in t){const n=t;n.response?.data?.detail&&p.showAlert(n.response.data.detail,"error")}else p.showAlert(c("send.messages.uploadFailed"),"error");throw t}},Se=async r=>{const t=new FormData,n={headers:{"Content-Type":"multipart/form-data"},onUploadProgress:m=>{const S=Math.round(m.loaded*100/(m.total||1));d.value=S}};return t.append("file",r),t.append("expire_value",g.value),t.append("expire_style",i.value),await L.post("share/file/",t,n)},ae=()=>_.openUpload===0&&localStorage.getItem("token")===null?(p.showAlert(c("send.messages.guestUploadDisabled"),"error"),!1):!0,ne=r=>r.size>_.uploadSize?(p.showAlert(c("send.messages.fileSizeExceeded",{size:xe(_.uploadSize)}),"error"),v.value=null,!1):!0,le=(r,t)=>{if(r==="forever"||r==="count")return!0;const n=_.max_save_seconds||0;if(n===0)return!0;let l=0;switch(r){case"minute":l=parseInt(t)*60;break;case"hour":l=parseInt(t)*3600;break;case"day":l=parseInt(t)*86400;break;default:return!1}return l<=n},ie=()=>!(!ae()||!ne(v.value)||!le(i.value,g.value)),Ce=async()=>{if(b.value==="file"&&!v.value){p.showAlert(c("send.messages.selectFile"),"error");return}if(b.value==="text"&&!u.value.trim()){p.showAlert(c("send.messages.enterText"),"error");return}if(i.value!=="forever"&&!g.value){p.showAlert(c("send.messages.enterExpirationValue"),"error");return}if(!le(i.value,g.value)){const r=Math.floor(_.max_save_seconds/86400);p.showAlert(c("send.messages.expirationTooLong",{days:r}),"error");return}try{let r;if(b.value==="file")_.enableChunk?r=await _e(v.value):r=await Se(v.value);else{const t=new FormData;t.append("text",u.value),t.append("expire_value",g.value),t.append("expire_style",i.value),r=await L.post("share/text/",t,{headers:{"Content-Type":"multipart/form-data"}})}if(r&&r.code===200){const t=r.detail?.code||"",n=r.detail?.name||"",l={id:Date.now(),filename:n,date:new Date().toISOString().split("T")[0],size:b.value==="text"?`${(u.value.length/1024).toFixed(2)} KB`:`${(v.value.size/(1024*1024)).toFixed(1)} MB`,expiration:i.value==="forever"?c("send.expiration.forever"):ke(i.value,g.value),retrieveCode:t};f.addShareDataRecord(l),p.showAlert(c("send.messages.sendSuccess",{code:t}),"success"),v.value=null,u.value="",d.value=0,h.value=l,await te(t)}else throw new Error(c("send.messages.serverError"))}catch(r){if(r&&typeof r=="object"&&"response"in r){const t=r;t.response?.data?.detail&&p.showAlert(t.response.data.detail,"error")}else p.showAlert(c("send.messages.sendFailed"),"error")}finally{d.value=0}},Me=()=>{D.push("/")},de=()=>{C.value=!C.value},Te=r=>{h.value=r},Ae=r=>{const t=f.shareData.findIndex(n=>n.id===r);t!==-1&&f.deleteShareData(t)},Fe=window.location.origin+"/#/",De=r=>`${Fe}?code=${r.retrieveCode}`,ce=r=>{const n=(parseInt(g.value)||0)+r;n>=1&&(g.value=n.toString())};return ve(()=>{console.log("SendFileView mounted")}),(r,t)=>{const n=Le("router-link");return F(),A("div",{class:"min-h-screen flex items-center justify-center p-4 overflow-hidden transition-colors duration-300",onPaste:O(be,["prevent"])},[s("div",{class:a(["rounded-3xl shadow-2xl overflow-hidden border w-full max-w-md transition-colors duration-300",[e(o)?"bg-white bg-opacity-10 backdrop-filter backdrop-blur-xl border-gray-700":"bg-white border-gray-200"]])},[s("div",ht,[y(qe,{title:e(_).name,onTitleClick:Me},null,8,["title"]),s("form",{onSubmit:O(Ce,["prevent"]),class:"space-y-8"},[y(rt,{"selected-type":b.value,"onUpdate:selectedType":t[0]||(t[0]=l=>b.value=l)},null,8,["selected-type"]),y(Y,{name:"fade",mode:"out-in"},{default:E(()=>[b.value==="file"?(F(),A("div",ft,[y(dt,{"selected-file":v.value,progress:d.value,description:`支持各种常见格式,最大${e(xe)(e(_).uploadSize)}`,onFileSelected:U,onFileDrop:x},null,8,["selected-file","progress","description"])])):(F(),A("div",mt,[y(gt,{modelValue:u.value,"onUpdate:modelValue":t[1]||(t[1]=l=>u.value=l),placeholder:e(c)("send.uploadArea.textInput")},null,8,["modelValue","placeholder"])]))]),_:1}),s("div",yt,[s("label",{class:a(["text-sm font-medium",e(o)?"text-gray-300":"text-gray-700"])},k(e(c)("send.expiration.label")),3),s("div",xt,[s("div",{class:a(["relative h-12 rounded-2xl border transition-all duration-300 shadow-sm",e(o)?"bg-gray-800/60 border-gray-700/60 group-hover:border-gray-600/80 group-hover:shadow-lg group-hover:shadow-gray-900/20":"bg-white border-gray-200 group-hover:border-gray-300 group-hover:shadow-md group-hover:shadow-gray-200/50"])},[i.value!=="forever"?(F(),A(Z,{key:0},[pe(s("input",{"onUpdate:modelValue":t[2]||(t[2]=l=>g.value=l),type:"number",placeholder:we(),min:"1",class:a(["w-full h-full px-5 pr-32 rounded-2xl placeholder-gray-400 transition-all duration-300","focus:outline-none focus:ring-2 focus:ring-offset-0","[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none","bg-transparent",e(o)?"text-gray-100 focus:ring-indigo-500/80 placeholder-gray-500":"text-gray-900 focus:ring-indigo-500/60 placeholder-gray-400"])},null,10,vt),[[Re,g.value]]),s("div",{class:a(["absolute right-28 top-0 h-full flex flex-col border-l",[e(o)?"border-gray-700/60":"border-gray-200"]])},[s("button",{type:"button",onClick:t[3]||(t[3]=l=>ce(1)),class:a(["flex-1 px-2 flex items-center justify-center transition-all duration-200",[e(o)?"hover:bg-gray-700/60 text-gray-400 hover:text-gray-200":"hover:bg-gray-50 text-gray-500 hover:text-gray-700"]])},[...t[10]||(t[10]=[s("svg",{class:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[s("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 15l7-7 7 7"})],-1)])],2),s("button",{type:"button",onClick:t[4]||(t[4]=l=>ce(-1)),class:a(["flex-1 px-2 flex items-center justify-center transition-all duration-200",[e(o)?"hover:bg-gray-700/60 text-gray-400 hover:text-gray-200":"hover:bg-gray-50 text-gray-500 hover:text-gray-700"]])},[...t[11]||(t[11]=[s("svg",{class:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[s("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"})],-1)])],2)],2)],64)):q("",!0),pe(s("select",{"onUpdate:modelValue":t[5]||(t[5]=l=>i.value=l),class:a(["absolute right-0 top-0 h-full appearance-none cursor-pointer transition-all duration-300","focus:outline-none focus:ring-2 focus:ring-offset-0",i.value==="forever"?"w-full px-5 rounded-2xl":"w-28 pl-4 pr-9 border-l rounded-r-2xl",e(o)?"text-gray-100 border-gray-700/60 focus:ring-indigo-500/80 bg-gray-800/60":"text-gray-900 border-gray-200 focus:ring-indigo-500/60 bg-white"]),style:ge({color:e(o)?"#f3f4f6":"#111827",backgroundColor:e(o)?"rgba(31, 41, 55, 0.5)":"#ffffff"})},[(F(!0),A(Z,null,he(e(_).expireStyle,l=>(F(),A("option",{value:l,key:l,class:a([e(o)?"bg-gray-800 text-gray-100":"bg-white text-gray-900"]),style:ge({color:e(o)?"#f3f4f6":"#111827",backgroundColor:e(o)?"#1f2937":"#ffffff"})},k(oe(l)),15,bt))),128))],6),[[Ee,i.value]]),s("div",{class:a(["absolute pointer-events-none",[i.value==="forever"?"right-3":"right-2","top-1/2 -translate-y-1/2"]])},[(F(),A("svg",{class:a(["w-4 h-4 transition-colors duration-300",[e(o)?"text-gray-400":"text-gray-500"]]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[12]||(t[12]=[s("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])],2))],2)],2)])]),s("button",wt,[t[13]||(t[13]=s("span",{class:"absolute top-0 left-0 w-full h-full bg-white opacity-0 group-hover:opacity-20 transition-opacity duration-300"},null,-1)),s("span",kt,[y(e(et),{class:"w-6 h-6 mr-2"}),s("span",null,k(e(c)("send.submit")),1)])])],32),s("div",_t,[y(n,{to:"/",class:"text-indigo-400 hover:text-indigo-300 transition duration-300"},{default:E(()=>[ee(k(e(c)("send.needRetrieveFile")),1)]),_:1})])]),s("div",{class:a(["px-8 py-4 bg-opacity-50 flex justify-between items-center",[e(o)?"bg-gray-800":"bg-gray-100"]])},[s("span",{class:a(["text-sm flex items-center",[e(o)?"text-gray-300":"text-gray-800"]])},[y(e(me),{class:"w-4 h-4 mr-1 text-green-400"}),ee(" "+k(e(c)("send.secureEncryption")),1)],2),s("button",{onClick:de,class:a(["text-sm hover:text-indigo-300 transition duration-300 flex items-center",[e(o)?"text-indigo-400":"text-indigo-600"]])},[ee(k(e(c)("send.sendRecords"))+" ",1),y(e(Ge),{class:"w-4 h-4 ml-1"})],2)],2)],2),y(Y,{name:"drawer"},{default:E(()=>[C.value?(F(),A("div",{key:0,class:a(["fixed inset-y-0 right-0 w-full sm:w-120 bg-opacity-70 backdrop-filter backdrop-blur-xl shadow-2xl z-50 overflow-hidden flex flex-col",[e(o)?"bg-gray-900":"bg-white"]])},[s("div",{class:a(["flex justify-between items-center p-6 border-b",[e(o)?"border-gray-700":"border-gray-200"]])},[s("h3",{class:a(["text-2xl font-bold",[e(o)?"text-white":"text-gray-800"]])},k(e(c)("send.sendRecords")),3),s("button",{onClick:de,class:a(["hover:text-white transition duration-300",[e(o)?"text-gray-400":"text-gray-800"]])},[y(e(fe),{class:"w-6 h-6"})],2)],2),s("div",St,[y(He,{name:"list",tag:"div",class:"space-y-4"},{default:E(()=>[(F(!0),A(Z,null,he(w.value,l=>(F(),A("div",{key:l.id,class:a(["bg-opacity-50 rounded-lg p-4 flex items-center shadow-md hover:shadow-lg transition duration-300 transform hover:scale-102",[e(o)?"bg-gray-800 hover:bg-gray-700":"bg-gray-100 hover:bg-white"]])},[s("div",Ct,[y(e(ye),{class:a(["w-10 h-10",[e(o)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])]),s("div",Mt,[s("p",{class:a(["font-medium text-lg truncate",[e(o)?"text-white":"text-gray-800"]])},k(l.filename?l.filename:"Text"),3),s("p",{class:a(["text-sm truncate",[e(o)?"text-gray-400":"text-gray-600"]])},k(l.date)+" · "+k(l.size),3)]),s("div",Tt,[s("button",{onClick:m=>e(te)(l.retrieveCode),class:a(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[e(o)?"hover:bg-blue-400 text-blue-400":"hover:bg-blue-100 text-blue-600"]])},[y(e(se),{class:"w-5 h-5"})],10,At),s("button",{onClick:m=>Te(l),class:a(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[e(o)?"hover:bg-green-400 text-green-400":"hover:bg-green-100 text-green-600"]])},[y(e(Ke),{class:"w-5 h-5"})],10,Ft),s("button",{onClick:m=>Ae(l.id),class:a(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[e(o)?"hover:bg-red-400 text-red-400":"hover:bg-red-100 text-red-600"]])},[y(e(Xe),{class:"w-5 h-5"})],10,Dt)])],2))),128))]),_:1})])],2)):q("",!0)]),_:1}),y(Y,{name:"fade"},{default:E(()=>[h.value?(F(),A("div",$t,[s("div",{class:a(["w-full max-w-2xl rounded-2xl shadow-2xl transform transition-all duration-300 ease-out overflow-hidden",[e(o)?"bg-gray-900 bg-opacity-70":"bg-white bg-opacity-95"]])},[s("div",{class:a(["px-4 sm:px-6 py-3 sm:py-4 border-b",[e(o)?"border-gray-800":"border-gray-100"]])},[s("div",It,[s("h3",{class:a(["text-lg sm:text-xl font-semibold",[e(o)?"text-white":"text-gray-900"]])},k(e(c)("send.fileDetails")),3),s("button",{onClick:t[6]||(t[6]=l=>h.value=null),class:"p-1.5 sm:p-2 rounded-full hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"},[y(e(fe),{class:a(["w-4 h-4 sm:w-5 sm:h-5",[e(o)?"text-gray-400":"text-gray-500"]])},null,8,["class"])])])],2),s("div",zt,[s("div",{class:a(["rounded-xl p-3 sm:p-4 mb-4 sm:mb-6",[e(o)?"bg-gray-800 bg-opacity-50":"bg-gray-50 bg-opacity-95"]])},[s("div",Pt,[s("div",{class:a(["p-2 sm:p-3 rounded-lg",[e(o)?"bg-gray-800":"bg-white"]])},[y(e(ye),{class:a(["w-5 h-5 sm:w-6 sm:h-6",[e(o)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])],2),s("div",Bt,[s("h4",{class:a(["font-medium text-sm sm:text-base truncate",[e(o)?"text-white":"text-gray-900"]])},k(h.value.filename),3),s("p",{class:a(["text-xs sm:text-sm truncate",[e(o)?"text-gray-400":"text-gray-500"]])},k(h.value.size)+" · "+k(h.value.date),3)])]),s("div",Ut,[s("div",Vt,[y(e(Ye),{class:a(["w-3.5 h-3.5 sm:w-4 sm:h-4 mr-1.5 sm:mr-2 flex-shrink-0",[e(o)?"text-gray-400":"text-gray-500"]])},null,8,["class"]),s("span",{class:a(["text-xs sm:text-sm truncate",[e(o)?"text-gray-300":"text-gray-600"]])},k(h.value.expiration),3)]),s("div",jt,[y(e(me),{class:a(["w-3.5 h-3.5 sm:w-4 sm:h-4 mr-1.5 sm:mr-2 flex-shrink-0",[e(o)?"text-gray-400":"text-gray-500"]])},null,8,["class"]),s("span",{class:a(["text-xs sm:text-sm truncate",[e(o)?"text-gray-300":"text-gray-600"]])}," 安全加密 ",2)])])],2),s("div",Rt,[s("div",Et,[s("div",Lt,[s("div",Ht,[t[14]||(t[14]=s("h4",{class:"font-medium text-sm sm:text-base"},"取件码",-1)),s("button",{onClick:t[7]||(t[7]=l=>e(Oe)(h.value.retrieveCode)),class:"p-1.5 sm:p-2 rounded-full hover:bg-white/10 transition-colors"},[y(e(se),{class:"w-4 h-4 sm:w-5 sm:h-5"})])]),s("p",Nt,k(h.value.retrieveCode),1)]),s("div",{class:a(["rounded-xl p-3 sm:p-4",[e(o)?"bg-gray-800 bg-opacity-50":"bg-gray-50 bg-opacity-95"]])},[s("div",Wt,[s("h4",{class:a(["font-medium text-sm sm:text-base flex items-center min-w-0",[e(o)?"text-white":"text-gray-900"]])},[y(e(tt),{class:"w-4 h-4 sm:w-5 sm:h-5 mr-1.5 sm:mr-2 text-indigo-500 flex-shrink-0"}),t[15]||(t[15]=s("span",{class:"truncate"},"wget下载",-1))],2),s("button",{onClick:t[8]||(t[8]=l=>e(Qe)(h.value.retrieveCode,h.value.filename)),class:"p-1.5 sm:p-2 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors flex-shrink-0"},[y(e(se),{class:a(["w-4 h-4 sm:w-5 sm:h-5",[e(o)?"text-gray-400":"text-gray-500"]])},null,8,["class"])])]),s("p",{class:a(["text-xs sm:text-sm font-mono break-all line-clamp-2",[e(o)?"text-gray-300":"text-gray-600"]])}," 点击复制wget命令 ",2)],2)]),s("div",{class:a(["rounded-xl p-4 sm:p-5 flex flex-col items-center",[e(o)?"bg-gray-800 bg-opacity-50":"bg-gray-50 bg-opacity-95"]])},[s("div",qt,[y(Je,{value:De(h.value),size:140,level:"M",class:"sm:w-[160px] sm:h-[160px]"},null,8,["value"])]),s("p",{class:a(["text-xs sm:text-sm truncate max-w-full",[e(o)?"text-gray-400":"text-gray-500"]])}," 扫描二维码快速取件 ",2)],2)])]),s("div",{class:a(["px-4 sm:px-6 py-3 sm:py-4 border-t",[e(o)?"border-gray-800":"border-gray-100"]])},[s("button",{onClick:t[9]||(t[9]=l=>e(te)(h.value.retrieveCode)),class:"w-full bg-indigo-600 hover:bg-indigo-700 text-white px-4 sm:px-6 py-2 sm:py-3 rounded-lg text-sm sm:text-base font-medium transition-colors"}," 复制取件链接 ")],2)],2)])):q("",!0)]),_:1})],32)}}}),Yt=re(Gt,[["__scopeId","data-v-ebff2eb6"]]);export{Yt as default}; diff --git a/themes/2024/assets/SendFileView-CEwL3Upl.css b/themes/2024/assets/SendFileView-CEwL3Upl.css deleted file mode 100644 index 6a1a271..0000000 --- a/themes/2024/assets/SendFileView-CEwL3Upl.css +++ /dev/null @@ -1 +0,0 @@ -.border-progress-container[data-v-2fbf5085]{position:relative;width:100%;height:100%}.border-progress-canvas[data-v-2fbf5085]{position:absolute;top:0;left:0;width:100%;height:100%;transition:all .3s ease}.custom-scrollbar[data-v-bebdfe92]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.3) rgba(243,244,246,.5)}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar-track{background:#f3f4f680;border-radius:3px}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:3px;-webkit-transition:background-color .3s;transition:background-color .3s}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar-thumb:hover{background-color:#9ca3afb3}[data-v-bebdfe92] [class*=dark] .custom-scrollbar{scrollbar-color:rgba(75,85,99,.5) rgba(31,41,55,.5)}[data-v-bebdfe92] [class*=dark] .custom-scrollbar::-webkit-scrollbar-track{background:#1f293780}[data-v-bebdfe92] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb{background-color:#4b556380}[data-v-bebdfe92] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#4b5563b3}.fade-enter-active[data-v-a7f6997f],.fade-leave-active[data-v-a7f6997f]{transition:opacity .3s ease,transform .3s ease}.fade-enter-from[data-v-a7f6997f],.fade-leave-to[data-v-a7f6997f]{opacity:0;transform:translateY(10px)}@media (min-width: 640px){.sm\:w-120[data-v-a7f6997f]{width:30rem}}.fade-enter-to[data-v-a7f6997f],.fade-leave-from[data-v-a7f6997f]{opacity:1;transform:translateY(0)}.drawer-enter-active[data-v-a7f6997f],.drawer-leave-active[data-v-a7f6997f]{transition:transform .3s ease}.drawer-enter-from[data-v-a7f6997f],.drawer-leave-to[data-v-a7f6997f]{transform:translate(100%)}.list-enter-active[data-v-a7f6997f],.list-leave-active[data-v-a7f6997f]{transition:all .5s ease}.list-enter-from[data-v-a7f6997f],.list-leave-to[data-v-a7f6997f]{opacity:0;transform:translate(30px)}select option[data-v-a7f6997f]{padding:8px;margin:4px;border-radius:6px}select option[data-v-a7f6997f]:checked{background:linear-gradient(to right,#6366f180,#a855f780)!important;color:#fff!important}.dark select option[data-v-a7f6997f]:checked{background:linear-gradient(to right,#6366f1b3,#a855f7b3)!important}select option[data-v-a7f6997f]:hover{background-color:#6366f11a}.dark select option[data-v-a7f6997f]:hover{background-color:#6366f133}.custom-scrollbar[data-v-a7f6997f]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.4) rgba(243,244,246,.3)}.custom-scrollbar[data-v-a7f6997f]::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar[data-v-a7f6997f]::-webkit-scrollbar-track{background:#f3f4f64d;border-radius:6px;margin:4px}.custom-scrollbar[data-v-a7f6997f]::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#6366f199,#a855f799);border-radius:6px;border:1px solid rgba(255,255,255,.2);-webkit-transition:all .3s ease;transition:all .3s ease}.custom-scrollbar[data-v-a7f6997f]::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#6366f1cc,#a855f7cc);transform:scale(1.1)}.custom-scrollbar[data-v-a7f6997f]::-webkit-scrollbar-corner{background:transparent}.dark .custom-scrollbar[data-v-a7f6997f]{scrollbar-color:rgba(75,85,99,.6) rgba(31,41,55,.4)}.dark .custom-scrollbar[data-v-a7f6997f]::-webkit-scrollbar-track{background:#1f293766}.dark .custom-scrollbar[data-v-a7f6997f]::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#6366f1b3,#a855f7b3);border:1px solid rgba(255,255,255,.1)}.dark .custom-scrollbar[data-v-a7f6997f]::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#6366f1e6,#a855f7e6)} diff --git a/themes/2024/assets/SendFileView-D1bkFasE.css b/themes/2024/assets/SendFileView-D1bkFasE.css new file mode 100644 index 0000000..bff3374 --- /dev/null +++ b/themes/2024/assets/SendFileView-D1bkFasE.css @@ -0,0 +1 @@ +.border-progress-container[data-v-2fbf5085]{position:relative;width:100%;height:100%}.border-progress-canvas[data-v-2fbf5085]{position:absolute;top:0;left:0;width:100%;height:100%;transition:all .3s ease}.custom-scrollbar[data-v-bebdfe92]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.3) rgba(243,244,246,.5)}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar-track{background:#f3f4f680;border-radius:3px}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:3px;-webkit-transition:background-color .3s;transition:background-color .3s}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar-thumb:hover{background-color:#9ca3afb3}[data-v-bebdfe92] [class*=dark] .custom-scrollbar{scrollbar-color:rgba(75,85,99,.5) rgba(31,41,55,.5)}[data-v-bebdfe92] [class*=dark] .custom-scrollbar::-webkit-scrollbar-track{background:#1f293780}[data-v-bebdfe92] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb{background-color:#4b556380}[data-v-bebdfe92] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#4b5563b3}.fade-enter-active[data-v-ebff2eb6],.fade-leave-active[data-v-ebff2eb6]{transition:opacity .3s ease,transform .3s ease}.fade-enter-from[data-v-ebff2eb6],.fade-leave-to[data-v-ebff2eb6]{opacity:0;transform:translateY(10px)}@media (min-width: 640px){.sm\:w-120[data-v-ebff2eb6]{width:30rem}}.fade-enter-to[data-v-ebff2eb6],.fade-leave-from[data-v-ebff2eb6]{opacity:1;transform:translateY(0)}.drawer-enter-active[data-v-ebff2eb6],.drawer-leave-active[data-v-ebff2eb6]{transition:transform .3s ease}.drawer-enter-from[data-v-ebff2eb6],.drawer-leave-to[data-v-ebff2eb6]{transform:translate(100%)}.list-enter-active[data-v-ebff2eb6],.list-leave-active[data-v-ebff2eb6]{transition:all .5s ease}.list-enter-from[data-v-ebff2eb6],.list-leave-to[data-v-ebff2eb6]{opacity:0;transform:translate(30px)}select option[data-v-ebff2eb6]{padding:8px;margin:4px;border-radius:6px}select option[data-v-ebff2eb6]:checked{background:linear-gradient(to right,#6366f180,#a855f780)!important;color:#fff!important}.dark select option[data-v-ebff2eb6]:checked{background:linear-gradient(to right,#6366f1b3,#a855f7b3)!important}select option[data-v-ebff2eb6]:hover{background-color:#6366f11a}.dark select option[data-v-ebff2eb6]:hover{background-color:#6366f133}.custom-scrollbar[data-v-ebff2eb6]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.4) rgba(243,244,246,.3)}.custom-scrollbar[data-v-ebff2eb6]::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar[data-v-ebff2eb6]::-webkit-scrollbar-track{background:#f3f4f64d;border-radius:6px;margin:4px}.custom-scrollbar[data-v-ebff2eb6]::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#6366f199,#a855f799);border-radius:6px;border:1px solid rgba(255,255,255,.2);-webkit-transition:all .3s ease;transition:all .3s ease}.custom-scrollbar[data-v-ebff2eb6]::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#6366f1cc,#a855f7cc);transform:scale(1.1)}.custom-scrollbar[data-v-ebff2eb6]::-webkit-scrollbar-corner{background:transparent}.dark .custom-scrollbar[data-v-ebff2eb6]{scrollbar-color:rgba(75,85,99,.6) rgba(31,41,55,.4)}.dark .custom-scrollbar[data-v-ebff2eb6]::-webkit-scrollbar-track{background:#1f293766}.dark .custom-scrollbar[data-v-ebff2eb6]::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#6366f1b3,#a855f7b3);border:1px solid rgba(255,255,255,.1)}.dark .custom-scrollbar[data-v-ebff2eb6]::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#6366f1e6,#a855f7e6)} diff --git a/themes/2024/assets/SystemSettingsView-CE4x9hEg.js b/themes/2024/assets/SystemSettingsView-CE4x9hEg.js new file mode 100644 index 0000000..181e445 --- /dev/null +++ b/themes/2024/assets/SystemSettingsView-CE4x9hEg.js @@ -0,0 +1 @@ +import{d as B,u as F,r as h,l as P,a as m,o as b,b as e,t as l,e as o,n as s,i as z,p as d,v as g,q as x,F as w,x as k,j as _,Q as U,R as A}from"./index-14Tp7zPK.js";const T={class:"p-6 h-screen overflow-y-auto custom-scrollbar"},E={class:"space-y-4"},N={class:"grid grid-cols-1 gap-6"},L={class:"space-y-2"},I={class:"space-y-2"},j={class:"space-y-2"},K={class:"relative"},$=["placeholder"],G={class:"text-xs"},R={class:"space-y-2"},W={class:"space-y-2"},q=["value"],H={class:"space-y-2"},Q={class:"grid grid-cols-1 gap-6 mt-8"},J={class:"space-y-2"},O={class:"space-y-2"},X={class:"space-y-4"},Y={class:"space-y-2"},Z=["placeholder"],ee={class:"space-y-4"},oe={class:"space-y-2"},te={value:"local"},re={value:"s3"},ae={value:"webdav"},se={key:0,class:"space-y-2"},ne={class:"flex items-center"},ie=["aria-checked"],le={key:1,class:"space-y-4"},de={class:"space-y-2"},ge=["placeholder"],ue={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},ce={class:"space-y-2"},ye=["placeholder"],me={class:"space-y-2"},be=["placeholder"],pe={key:2,class:"space-y-4"},ve={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},he={class:"space-y-2"},xe={class:"space-y-2"},fe={class:"space-y-2"},_e={class:"space-y-2"},we={class:"space-y-2"},ke=["placeholder"],Ue={class:"space-y-2"},Ce={value:"s3v2"},Se={value:"s3v4"},Ve={class:"space-y-2"},De={class:"space-y-2"},Me={class:"flex items-center"},Be=["aria-checked"],Fe={class:"space-y-2"},Pe={class:"flex items-center"},ze=["aria-checked"],Ae={class:"mt-8"},Te={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},Ee={class:"space-y-2"},Ne={class:"flex items-center space-x-2"},Le={class:"space-y-2"},Ie={class:"flex items-center space-x-2"},je={class:"space-y-2"},Ke={class:"flex items-center space-x-2"},$e={value:"KB"},Ge={value:"MB"},Re={value:"GB"},We={class:"space-y-2"},qe={class:"flex flex-wrap gap-3"},He=["value"],Qe={class:"space-y-2"},Je={class:"flex items-center space-x-2"},Oe={value:"秒"},Xe={value:"分"},Ye={value:"时"},Ze={value:"天"},eo={class:"space-y-2"},oo={class:"flex items-center"},to=["aria-checked"],ro={class:"mt-8"},ao={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},so={class:"space-y-2"},no={class:"flex items-center space-x-2"},io={class:"space-y-2"},lo={class:"flex items-center space-x-2"},go={class:"flex justify-end mt-8"},yo=B({__name:"SystemSettingsView",setup(uo){const n=z("isDarkMode"),{t:i}=F(),t=h({name:"",description:"",file_storage:"",webdav_url:"",webdav_username:"",webdav_password:"",themesChoices:[],expireStyle:[],admin_token:"",robotsText:"",keywords:"",notify_title:"",storage_path:"",notify_content:"",openUpload:1,uploadSize:1,enableChunk:0,uploadMinute:1,max_save_seconds:0,opacity:.9,s3_access_key_id:"",background:"",showAdminAddr:0,page_explain:"",s3_secret_access_key:"",aws_session_token:"",s3_signature_version:"",s3_region_name:"",s3_bucket_name:"",s3_endpoint_url:"",s3_hostname:"",uploadCount:1,errorMinute:1,errorCount:1,s3_proxy:0,themesSelect:""}),p=h(1),v=h("MB"),c=h(1),y=h("天"),C=(u,a)=>u*{秒:1,分:60,时:3600,天:86400}[a],f=P(),S=async()=>{try{const u=await U.getConfig();if(u.code===200&&u.detail){t.value=u.detail;const a=t.value.uploadSize;a>=1024*1024*1024?(p.value=Math.round(a/(1024*1024*1024)),v.value="GB"):a>=1024*1024?(p.value=Math.round(a/(1024*1024)),v.value="MB"):(p.value=Math.round(a/1024),v.value="KB");const r=t.value.max_save_seconds;r===0?(c.value=7,y.value="天"):r%86400===0&&r>=86400?(c.value=r/86400,y.value="天"):r%3600===0&&r>=3600?(c.value=r/3600,y.value="时"):r%60===0&&r>=60?(c.value=r/60,y.value="分"):(c.value=r,y.value="秒")}}catch(u){const a=u instanceof Error?u.message:i("manage.systemSettings.getConfigFailed");f.showAlert(a,"error"),console.error("Failed to get system config:",u)}},V=(u,a)=>u*{KB:1024,MB:1048576,GB:1073741824}[a],D=()=>{const u={...t.value};u.uploadSize=V(p.value,v.value),c.value===0?u.max_save_seconds=7*86400:u.max_save_seconds=C(c.value,y.value),U.updateConfig(u).then(a=>{a.code==200?f.showAlert(i("manage.systemSettings.saveSuccess"),"success"):f.showAlert(a.message||i("manage.systemSettings.saveFailed"),"error")}).catch(a=>{const r=a instanceof Error?a.message:i("manage.systemSettings.saveFailed");f.showAlert(r,"error")})};return S(),(u,a)=>(b(),m("div",T,[e("h2",{class:s(["text-2xl font-bold mb-6",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("admin.settings.title")),3),e("div",{class:s(["space-y-6 rounded-lg shadow-md p-6",[o(n)?"bg-gray-800 bg-opacity-70":"bg-white"]])},[e("section",E,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("admin.settings.basicSettings")),3),e("div",N,[e("div",L,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.siteName")),3),d(e("input",{type:"text","onUpdate:modelValue":a[0]||(a[0]=r=>t.value.name=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.name]])]),e("div",I,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.websiteDescription")),3),d(e("input",{type:"text","onUpdate:modelValue":a[1]||(a[1]=r=>t.value.description=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.description]])]),e("div",j,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.adminPassword")),3),e("div",K,[d(e("input",{type:"password",minlength:"6","onUpdate:modelValue":a[2]||(a[2]=r=>t.value.admin_token=r),placeholder:o(i)("admin.settings.passwordPlaceholder"),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,$),[[g,t.value.admin_token]]),e("div",{class:s(["absolute inset-y-0 right-0 flex items-center pr-3 text-sm text-gray-400",[o(n)?"text-gray-500":"text-gray-400"]])},[e("span",G,l(o(i)("admin.settings.passwordNote")),1)],2)])]),e("div",R,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.keywords")),3),d(e("input",{type:"text","onUpdate:modelValue":a[3]||(a[3]=r=>t.value.keywords=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.keywords]])]),e("div",W,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.themeSelection")),3),d(e("select",{"onUpdate:modelValue":a[4]||(a[4]=r=>t.value.themesSelect=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border appearance-none bg-no-repeat bg-right focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none cursor-pointer",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]]),style:{"background-image":"url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M7%208l3%203%203-3%22%20stroke%3D%22%236B7280%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E')"}},[(b(!0),m(w,null,k(t.value.themesChoices,r=>(b(),m("option",{value:r.key,key:r.key},l(r.name)+" (by "+l(r.author)+" V"+l(r.version)+") ",9,q))),128))],2),[[x,t.value.themesSelect]])]),e("div",H,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.robotsFile")),3),d(e("textarea",{"onUpdate:modelValue":a[5]||(a[5]=r=>t.value.robotsText=r),rows:"3",class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border resize-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.robotsText]])])]),e("div",Q,[e("div",J,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.notificationTitle")),3),d(e("input",{type:"text","onUpdate:modelValue":a[6]||(a[6]=r=>t.value.notify_title=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.notify_title]])]),e("div",O,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.notificationContent")),3),d(e("textarea",{"onUpdate:modelValue":a[7]||(a[7]=r=>t.value.notify_content=r),rows:"3",class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border resize-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.notify_content]])])]),e("div",X,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("manage.settings.storageSettings")),3),e("div",Y,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.storagePath")),3),d(e("input",{type:"text",placeholder:o(i)("manage.settings.storagePathPlaceholder"),"onUpdate:modelValue":a[8]||(a[8]=r=>t.value.storage_path=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,Z),[[g,t.value.storage_path]])]),e("div",ee,[e("div",oe,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.storageMethod")),3),d(e("select",{"onUpdate:modelValue":a[9]||(a[9]=r=>t.value.file_storage=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border appearance-none bg-no-repeat bg-right focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none cursor-pointer",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]]),style:{"background-image":"url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M7%208l3%203%203-3%22%20stroke%3D%22%236B7280%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E')"}},[e("option",te,l(o(i)("manage.settings.localStorage")),1),e("option",re,l(o(i)("manage.settings.s3Storage")),1),e("option",ae,l(o(i)("manage.settings.webdavStorage")),1)],2),[[x,t.value.file_storage]])]),t.value.file_storage==="local"?(b(),m("div",se,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.chunkUploadNote")),3),e("div",ne,[e("button",{type:"button",onClick:a[10]||(a[10]=r=>t.value.enableChunk=t.value.enableChunk===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[t.value.enableChunk===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":t.value.enableChunk===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[t.value.enableChunk===1?"translate-x-5":"translate-x-0",o(n)&&t.value.enableChunk!==1?"bg-gray-100":"bg-white"]])},null,2)],10,ie),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(t.value.enableChunk===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])])):_("",!0),t.value.file_storage==="webdav"?(b(),m("div",le,[e("div",de,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])}," Webdav URL ",2),d(e("input",{type:"text",placeholder:o(i)("manage.settings.webdavUrlPlaceholder"),"onUpdate:modelValue":a[11]||(a[11]=r=>t.value.webdav_url=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,ge),[[g,t.value.webdav_url]])]),e("div",ue,[e("div",ce,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])}," Webdav Username ",2),d(e("input",{type:"text",placeholder:o(i)("manage.settings.webdavUsernamePlaceholder"),"onUpdate:modelValue":a[12]||(a[12]=r=>t.value.webdav_username=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,ye),[[g,t.value.webdav_username]])]),e("div",me,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])}," Webdav Password ",2),d(e("input",{type:"password",placeholder:o(i)("manage.settings.webdavPasswordPlaceholder"),"onUpdate:modelValue":a[13]||(a[13]=r=>t.value.webdav_password=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,be),[[g,t.value.webdav_password]])])])])):_("",!0),t.value.file_storage==="s3"?(b(),m("div",pe,[e("div",ve,[e("div",he,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3AccessKeyId")),3),d(e("input",{type:"text","onUpdate:modelValue":a[14]||(a[14]=r=>t.value.s3_access_key_id=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_access_key_id]])]),e("div",xe,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3SecretAccessKey")),3),d(e("input",{type:"password","onUpdate:modelValue":a[15]||(a[15]=r=>t.value.s3_secret_access_key=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_secret_access_key]])]),e("div",fe,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3BucketName")),3),d(e("input",{type:"text","onUpdate:modelValue":a[16]||(a[16]=r=>t.value.s3_bucket_name=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_bucket_name]])]),e("div",_e,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3EndpointUrl")),3),d(e("input",{type:"text","onUpdate:modelValue":a[17]||(a[17]=r=>t.value.s3_endpoint_url=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_endpoint_url]])]),e("div",we,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3RegionName")),3),d(e("input",{type:"text","onUpdate:modelValue":a[18]||(a[18]=r=>t.value.s3_region_name=r),placeholder:o(i)("manage.settings.autoPlaceholder"),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,ke),[[g,t.value.s3_region_name]])]),e("div",Ue,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3SignatureVersion")),3),d(e("select",{"onUpdate:modelValue":a[19]||(a[19]=r=>t.value.s3_signature_version=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]])},[e("option",Ce,l(o(i)("manage.settings.s3v2")),1),e("option",Se,l(o(i)("manage.settings.s3v4")),1)],2),[[x,t.value.s3_signature_version]])]),e("div",Ve,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3Hostname")),3),d(e("input",{type:"text","onUpdate:modelValue":a[20]||(a[20]=r=>t.value.s3_hostname=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_hostname]])]),e("div",De,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.enableProxy")),3),e("div",Me,[e("button",{type:"button",onClick:a[21]||(a[21]=r=>t.value.s3_proxy=t.value.s3_proxy===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[t.value.s3_proxy===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":t.value.s3_proxy===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[t.value.s3_proxy===1?"translate-x-5":"translate-x-0",o(n)&&t.value.s3_proxy!==1?"bg-gray-100":"bg-white"]])},null,2)],10,Be),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(t.value.s3_proxy===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])]),e("div",Fe,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.chunkUploadNote")),3),e("div",Pe,[e("button",{type:"button",onClick:a[22]||(a[22]=r=>t.value.enableChunk=t.value.enableChunk===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[t.value.enableChunk===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":t.value.enableChunk===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[t.value.enableChunk===1?"translate-x-5":"translate-x-0",o(n)&&t.value.enableChunk!==1?"bg-gray-100":"bg-white"]])},null,2)],10,ze),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(t.value.enableChunk===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])])])])):_("",!0)])]),e("div",Ae,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("manage.settings.uploadLimits")),3),e("div",Te,[e("div",Ee,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.uploadPerMinute")),3),e("div",Ne,[d(e("input",{type:"number","onUpdate:modelValue":a[23]||(a[23]=r=>t.value.uploadMinute=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.uploadMinute]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.minute")),3)])]),e("div",Le,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.uploadCountLimit")),3),e("div",Ie,[d(e("input",{type:"number","onUpdate:modelValue":a[24]||(a[24]=r=>t.value.uploadCount=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.uploadCount]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.files")),3)])]),e("div",je,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.fileSizeLimit")),3),e("div",Ke,[d(e("input",{type:"number","onUpdate:modelValue":a[25]||(a[25]=r=>p.value=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,p.value]]),d(e("select",{"onUpdate:modelValue":a[26]||(a[26]=r=>v.value=r),class:s(["rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]])},[e("option",$e,l(o(i)("manage.settings.fileSizeUnits.kb")),1),e("option",Ge,l(o(i)("manage.settings.fileSizeUnits.mb")),1),e("option",Re,l(o(i)("manage.settings.fileSizeUnits.gb")),1)],2),[[x,v.value]])])]),e("div",We,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.expirationType")),3),e("div",qe,[(b(),m(w,null,k(["day","hour","minute","forever","count"],r=>e("label",{key:r,class:"relative inline-flex items-center group cursor-pointer"},[d(e("input",{type:"checkbox",value:r,"onUpdate:modelValue":a[27]||(a[27]=M=>t.value.expireStyle=M),class:"peer sr-only"},null,8,He),[[A,t.value.expireStyle]]),e("div",{class:s(["px-4 py-2 rounded-full border-2 transition-all duration-200 select-none",[t.value.expireStyle.includes(r)?(o(n),"bg-indigo-600 border-indigo-600 text-white"):o(n)?"bg-gray-700 border-gray-600 text-gray-300 hover:border-indigo-500":"bg-white border-gray-300 text-gray-700 hover:border-indigo-500"]])},l(o(i)(`manage.settings.expiration.${r}`)),3)])),64))])]),e("div",Qe,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.maxSaveTime")),3),e("div",Je,[d(e("input",{type:"number","onUpdate:modelValue":a[28]||(a[28]=r=>c.value=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,c.value]]),d(e("select",{"onUpdate:modelValue":a[29]||(a[29]=r=>y.value=r),class:s(["rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]])},[e("option",Oe,l(o(i)("common.second")),1),e("option",Xe,l(o(i)("common.minute")),1),e("option",Ye,l(o(i)("common.hour")),1),e("option",Ze,l(o(i)("common.day")),1)],2),[[x,y.value]])])]),e("div",eo,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.guestUpload")),3),e("div",oo,[e("button",{type:"button",onClick:a[30]||(a[30]=r=>t.value.openUpload=t.value.openUpload===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[t.value.openUpload===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":t.value.openUpload===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[t.value.openUpload===1?"translate-x-5":"translate-x-0",o(n)&&t.value.openUpload!==1?"bg-gray-100":"bg-white"]])},null,2)],10,to),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(t.value.openUpload===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])])])]),e("div",ro,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("manage.settings.errorLimits")),3),e("div",ao,[e("div",so,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.errorPerMinute")),3),e("div",no,[d(e("input",{type:"number","onUpdate:modelValue":a[31]||(a[31]=r=>t.value.errorMinute=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.errorMinute]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.minute")),3)])]),e("div",io,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.errorCountLimit")),3),e("div",lo,[d(e("input",{type:"number","onUpdate:modelValue":a[32]||(a[32]=r=>t.value.errorCount=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.errorCount]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.times")),3)])])])]),e("div",go,[e("button",{onClick:D,class:"px-4 py-2 bg-indigo-600 text-white rounded-md hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 transition-colors duration-200"},l(o(i)("manage.settings.saveChanges")),1)])])],2)]))}});export{yo as default}; diff --git a/themes/2024/assets/SystemSettingsView-D-yv3wtL.js b/themes/2024/assets/SystemSettingsView-D-yv3wtL.js deleted file mode 100644 index c3717d9..0000000 --- a/themes/2024/assets/SystemSettingsView-D-yv3wtL.js +++ /dev/null @@ -1 +0,0 @@ -import{d as B,u as F,r as h,l as P,a as m,o as b,b as e,t as l,e as o,n as s,i as z,p as d,v as g,q as x,F as w,x as k,j as _,Q as U,R as A}from"./index-C9gpBPbG.js";const T={class:"p-6 h-screen overflow-y-auto custom-scrollbar"},E={class:"space-y-4"},L={class:"grid grid-cols-1 gap-6"},N={class:"space-y-2"},I={class:"space-y-2"},j={class:"space-y-2"},K={class:"relative"},$=["placeholder"],G={class:"text-xs"},R={class:"space-y-2"},W={class:"space-y-2"},q=["value"],H={class:"space-y-2"},Q={class:"grid grid-cols-1 gap-6 mt-8"},J={class:"space-y-2"},O={class:"space-y-2"},X={class:"space-y-4"},Y={class:"space-y-2"},Z=["placeholder"],ee={class:"space-y-4"},oe={class:"space-y-2"},te={value:"local"},re={value:"s3"},ae={value:"webdav"},se={key:0,class:"space-y-2"},ne={class:"flex items-center"},ie=["aria-checked"],le={key:1,class:"space-y-4"},de={class:"space-y-2"},ge=["placeholder"],ue={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},ce={class:"space-y-2"},ye=["placeholder"],me={class:"space-y-2"},be=["placeholder"],pe={key:2,class:"space-y-4"},ve={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},he={class:"space-y-2"},xe={class:"space-y-2"},fe={class:"space-y-2"},_e={class:"space-y-2"},we={class:"space-y-2"},ke=["placeholder"],Ue={class:"space-y-2"},Ce={value:"s3v2"},Se={value:"s3v4"},Ve={class:"space-y-2"},De={class:"space-y-2"},Me={class:"flex items-center"},Be=["aria-checked"],Fe={class:"mt-8"},Pe={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},ze={class:"space-y-2"},Ae={class:"flex items-center space-x-2"},Te={class:"space-y-2"},Ee={class:"flex items-center space-x-2"},Le={class:"space-y-2"},Ne={class:"flex items-center space-x-2"},Ie={value:"KB"},je={value:"MB"},Ke={value:"GB"},$e={class:"space-y-2"},Ge={class:"flex flex-wrap gap-3"},Re=["value"],We={class:"space-y-2"},qe={class:"flex items-center space-x-2"},He={value:"秒"},Qe={value:"分"},Je={value:"时"},Oe={value:"天"},Xe={class:"space-y-2"},Ye={class:"flex items-center"},Ze=["aria-checked"],eo={class:"mt-8"},oo={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},to={class:"space-y-2"},ro={class:"flex items-center space-x-2"},ao={class:"space-y-2"},so={class:"flex items-center space-x-2"},no={class:"flex justify-end mt-8"},go=B({__name:"SystemSettingsView",setup(io){const n=z("isDarkMode"),{t:i}=F(),a=h({name:"",description:"",file_storage:"",webdav_url:"",webdav_username:"",webdav_password:"",themesChoices:[],expireStyle:[],admin_token:"",robotsText:"",keywords:"",notify_title:"",storage_path:"",notify_content:"",openUpload:1,uploadSize:1,enableChunk:0,uploadMinute:1,max_save_seconds:0,opacity:.9,s3_access_key_id:"",background:"",showAdminAddr:0,page_explain:"",s3_secret_access_key:"",aws_session_token:"",s3_signature_version:"",s3_region_name:"",s3_bucket_name:"",s3_endpoint_url:"",s3_hostname:"",uploadCount:1,errorMinute:1,errorCount:1,s3_proxy:0,themesSelect:""}),p=h(1),v=h("MB"),c=h(1),y=h("天"),C=(u,r)=>u*{秒:1,分:60,时:3600,天:86400}[r],f=P(),S=async()=>{try{const u=await U.getConfig();if(u.code===200&&u.detail){a.value=u.detail;const r=a.value.uploadSize;r>=1024*1024*1024?(p.value=Math.round(r/(1024*1024*1024)),v.value="GB"):r>=1024*1024?(p.value=Math.round(r/(1024*1024)),v.value="MB"):(p.value=Math.round(r/1024),v.value="KB");const t=a.value.max_save_seconds;t===0?(c.value=7,y.value="天"):t%86400===0&&t>=86400?(c.value=t/86400,y.value="天"):t%3600===0&&t>=3600?(c.value=t/3600,y.value="时"):t%60===0&&t>=60?(c.value=t/60,y.value="分"):(c.value=t,y.value="秒")}}catch(u){const r=u instanceof Error?u.message:"获取配置失败";f.showAlert(r,"error"),console.error("获取系统配置失败:",u)}},V=(u,r)=>u*{KB:1024,MB:1048576,GB:1073741824}[r],D=()=>{const u={...a.value};u.uploadSize=V(p.value,v.value),c.value===0?u.max_save_seconds=7*86400:u.max_save_seconds=C(c.value,y.value),U.updateConfig(u).then(r=>{r.code==200?f.showAlert("保存成功","success"):f.showAlert(r.message||"保存失败","error")}).catch(r=>{const t=r instanceof Error?r.message:"保存失败";f.showAlert(t,"error")})};return S(),(u,r)=>(b(),m("div",T,[e("h2",{class:s(["text-2xl font-bold mb-6",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("admin.settings.title")),3),e("div",{class:s(["space-y-6 rounded-lg shadow-md p-6",[o(n)?"bg-gray-800 bg-opacity-70":"bg-white"]])},[e("section",E,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("admin.settings.basicSettings")),3),e("div",L,[e("div",N,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.siteName")),3),d(e("input",{type:"text","onUpdate:modelValue":r[0]||(r[0]=t=>a.value.name=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.name]])]),e("div",I,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.websiteDescription")),3),d(e("input",{type:"text","onUpdate:modelValue":r[1]||(r[1]=t=>a.value.description=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.description]])]),e("div",j,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.adminPassword")),3),e("div",K,[d(e("input",{type:"password",minlength:"6","onUpdate:modelValue":r[2]||(r[2]=t=>a.value.admin_token=t),placeholder:o(i)("admin.settings.passwordPlaceholder"),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,$),[[g,a.value.admin_token]]),e("div",{class:s(["absolute inset-y-0 right-0 flex items-center pr-3 text-sm text-gray-400",[o(n)?"text-gray-500":"text-gray-400"]])},[e("span",G,l(o(i)("admin.settings.passwordNote")),1)],2)])]),e("div",R,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.keywords")),3),d(e("input",{type:"text","onUpdate:modelValue":r[3]||(r[3]=t=>a.value.keywords=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.keywords]])]),e("div",W,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.themeSelection")),3),d(e("select",{"onUpdate:modelValue":r[4]||(r[4]=t=>a.value.themesSelect=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border appearance-none bg-no-repeat bg-right focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none cursor-pointer",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]]),style:{"background-image":"url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M7%208l3%203%203-3%22%20stroke%3D%22%236B7280%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E')"}},[(b(!0),m(w,null,k(a.value.themesChoices,t=>(b(),m("option",{value:t.key,key:t.key},l(t.name)+" (by "+l(t.author)+" V"+l(t.version)+") ",9,q))),128))],2),[[x,a.value.themesSelect]])]),e("div",H,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.robotsFile")),3),d(e("textarea",{"onUpdate:modelValue":r[5]||(r[5]=t=>a.value.robotsText=t),rows:"3",class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border resize-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.robotsText]])])]),e("div",Q,[e("div",J,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.notificationTitle")),3),d(e("input",{type:"text","onUpdate:modelValue":r[6]||(r[6]=t=>a.value.notify_title=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.notify_title]])]),e("div",O,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.notificationContent")),3),d(e("textarea",{"onUpdate:modelValue":r[7]||(r[7]=t=>a.value.notify_content=t),rows:"3",class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border resize-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.notify_content]])])]),e("div",X,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("manage.settings.storageSettings")),3),e("div",Y,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.storagePath")),3),d(e("input",{type:"text",placeholder:o(i)("manage.settings.storagePathPlaceholder"),"onUpdate:modelValue":r[8]||(r[8]=t=>a.value.storage_path=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,Z),[[g,a.value.storage_path]])]),e("div",ee,[e("div",oe,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.storageMethod")),3),d(e("select",{"onUpdate:modelValue":r[9]||(r[9]=t=>a.value.file_storage=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border appearance-none bg-no-repeat bg-right focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none cursor-pointer",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]]),style:{"background-image":"url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M7%208l3%203%203-3%22%20stroke%3D%22%236B7280%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E')"}},[e("option",te,l(o(i)("manage.settings.localStorage")),1),e("option",re,l(o(i)("manage.settings.s3Storage")),1),e("option",ae,l(o(i)("manage.settings.webdavStorage")),1)],2),[[x,a.value.file_storage]])]),a.value.file_storage==="local"?(b(),m("div",se,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.chunkUploadNote")),3),e("div",ne,[e("button",{type:"button",onClick:r[10]||(r[10]=t=>a.value.enableChunk=a.value.enableChunk===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[a.value.enableChunk===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":a.value.enableChunk===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[a.value.enableChunk===1?"translate-x-5":"translate-x-0",o(n)&&a.value.enableChunk!==1?"bg-gray-100":"bg-white"]])},null,2)],10,ie),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(a.value.enableChunk===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])])):_("",!0),a.value.file_storage==="webdav"?(b(),m("div",le,[e("div",de,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])}," Webdav URL ",2),d(e("input",{type:"text",placeholder:o(i)("manage.settings.webdavUrlPlaceholder"),"onUpdate:modelValue":r[11]||(r[11]=t=>a.value.webdav_url=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,ge),[[g,a.value.webdav_url]])]),e("div",ue,[e("div",ce,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])}," Webdav Username ",2),d(e("input",{type:"text",placeholder:o(i)("manage.settings.webdavUsernamePlaceholder"),"onUpdate:modelValue":r[12]||(r[12]=t=>a.value.webdav_username=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,ye),[[g,a.value.webdav_username]])]),e("div",me,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])}," Webdav Password ",2),d(e("input",{type:"password",placeholder:o(i)("manage.settings.webdavPasswordPlaceholder"),"onUpdate:modelValue":r[13]||(r[13]=t=>a.value.webdav_password=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,be),[[g,a.value.webdav_password]])])])])):_("",!0),a.value.file_storage==="s3"?(b(),m("div",pe,[e("div",ve,[e("div",he,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3AccessKeyId")),3),d(e("input",{type:"text","onUpdate:modelValue":r[14]||(r[14]=t=>a.value.s3_access_key_id=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.s3_access_key_id]])]),e("div",xe,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3SecretAccessKey")),3),d(e("input",{type:"password","onUpdate:modelValue":r[15]||(r[15]=t=>a.value.s3_secret_access_key=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.s3_secret_access_key]])]),e("div",fe,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3BucketName")),3),d(e("input",{type:"text","onUpdate:modelValue":r[16]||(r[16]=t=>a.value.s3_bucket_name=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.s3_bucket_name]])]),e("div",_e,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3EndpointUrl")),3),d(e("input",{type:"text","onUpdate:modelValue":r[17]||(r[17]=t=>a.value.s3_endpoint_url=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.s3_endpoint_url]])]),e("div",we,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3RegionName")),3),d(e("input",{type:"text","onUpdate:modelValue":r[18]||(r[18]=t=>a.value.s3_region_name=t),placeholder:o(i)("manage.settings.autoPlaceholder"),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,ke),[[g,a.value.s3_region_name]])]),e("div",Ue,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3SignatureVersion")),3),d(e("select",{"onUpdate:modelValue":r[19]||(r[19]=t=>a.value.s3_signature_version=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]])},[e("option",Ce,l(o(i)("manage.settings.s3v2")),1),e("option",Se,l(o(i)("manage.settings.s3v4")),1)],2),[[x,a.value.s3_signature_version]])]),e("div",Ve,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3Hostname")),3),d(e("input",{type:"text","onUpdate:modelValue":r[20]||(r[20]=t=>a.value.s3_hostname=t),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.s3_hostname]])]),e("div",De,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.enableProxy")),3),e("div",Me,[e("button",{type:"button",onClick:r[21]||(r[21]=t=>a.value.s3_proxy=a.value.s3_proxy===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[a.value.s3_proxy===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":a.value.s3_proxy===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[a.value.s3_proxy===1?"translate-x-5":"translate-x-0",o(n)&&a.value.s3_proxy!==1?"bg-gray-100":"bg-white"]])},null,2)],10,Be),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(a.value.s3_proxy===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])])])])):_("",!0)])]),e("div",Fe,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("manage.settings.uploadLimits")),3),e("div",Pe,[e("div",ze,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.uploadPerMinute")),3),e("div",Ae,[d(e("input",{type:"number","onUpdate:modelValue":r[22]||(r[22]=t=>a.value.uploadMinute=t),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.uploadMinute]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.minute")),3)])]),e("div",Te,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.uploadCountLimit")),3),e("div",Ee,[d(e("input",{type:"number","onUpdate:modelValue":r[23]||(r[23]=t=>a.value.uploadCount=t),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.uploadCount]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.files")),3)])]),e("div",Le,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.fileSizeLimit")),3),e("div",Ne,[d(e("input",{type:"number","onUpdate:modelValue":r[24]||(r[24]=t=>p.value=t),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,p.value]]),d(e("select",{"onUpdate:modelValue":r[25]||(r[25]=t=>v.value=t),class:s(["rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]])},[e("option",Ie,l(o(i)("manage.settings.fileSizeUnits.kb")),1),e("option",je,l(o(i)("manage.settings.fileSizeUnits.mb")),1),e("option",Ke,l(o(i)("manage.settings.fileSizeUnits.gb")),1)],2),[[x,v.value]])])]),e("div",$e,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.expirationType")),3),e("div",Ge,[(b(),m(w,null,k(["day","hour","minute","forever","count"],t=>e("label",{key:t,class:"relative inline-flex items-center group cursor-pointer"},[d(e("input",{type:"checkbox",value:t,"onUpdate:modelValue":r[26]||(r[26]=M=>a.value.expireStyle=M),class:"peer sr-only"},null,8,Re),[[A,a.value.expireStyle]]),e("div",{class:s(["px-4 py-2 rounded-full border-2 transition-all duration-200 select-none",[a.value.expireStyle.includes(t)?(o(n),"bg-indigo-600 border-indigo-600 text-white"):o(n)?"bg-gray-700 border-gray-600 text-gray-300 hover:border-indigo-500":"bg-white border-gray-300 text-gray-700 hover:border-indigo-500"]])},l(o(i)(`manage.settings.expiration.${t}`)),3)])),64))])]),e("div",We,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.maxSaveTime")),3),e("div",qe,[d(e("input",{type:"number","onUpdate:modelValue":r[27]||(r[27]=t=>c.value=t),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,c.value]]),d(e("select",{"onUpdate:modelValue":r[28]||(r[28]=t=>y.value=t),class:s(["rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]])},[e("option",He,l(o(i)("common.second")),1),e("option",Qe,l(o(i)("common.minute")),1),e("option",Je,l(o(i)("common.hour")),1),e("option",Oe,l(o(i)("common.day")),1)],2),[[x,y.value]])])]),e("div",Xe,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.guestUpload")),3),e("div",Ye,[e("button",{type:"button",onClick:r[29]||(r[29]=t=>a.value.openUpload=a.value.openUpload===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[a.value.openUpload===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":a.value.openUpload===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[a.value.openUpload===1?"translate-x-5":"translate-x-0",o(n)&&a.value.openUpload!==1?"bg-gray-100":"bg-white"]])},null,2)],10,Ze),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(a.value.openUpload===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])])])]),e("div",eo,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("manage.settings.errorLimits")),3),e("div",oo,[e("div",to,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.errorPerMinute")),3),e("div",ro,[d(e("input",{type:"number","onUpdate:modelValue":r[30]||(r[30]=t=>a.value.errorMinute=t),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.errorMinute]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.minute")),3)])]),e("div",ao,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.errorCountLimit")),3),e("div",so,[d(e("input",{type:"number","onUpdate:modelValue":r[31]||(r[31]=t=>a.value.errorCount=t),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,a.value.errorCount]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.times")),3)])])])]),e("div",no,[e("button",{onClick:D,class:"px-4 py-2 bg-indigo-600 text-white rounded-md hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 transition-colors duration-200"},l(o(i)("manage.settings.saveChanges")),1)])])],2)]))}});export{go as default}; diff --git a/themes/2024/assets/box-m5X2L2BC.js b/themes/2024/assets/box-CiSQlKtb.js similarity index 90% rename from themes/2024/assets/box-m5X2L2BC.js rename to themes/2024/assets/box-CiSQlKtb.js index 534777a..e061b55 100644 --- a/themes/2024/assets/box-m5X2L2BC.js +++ b/themes/2024/assets/box-CiSQlKtb.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-C9gpBPbG.js";/** +import{c as a}from"./index-14Tp7zPK.js";/** * @license lucide-vue-next v0.535.0 - ISC * * This source code is licensed under the ISC license. diff --git a/themes/2024/assets/file-DGAdxgYw.js b/themes/2024/assets/file-CN_5aebv.js similarity index 88% rename from themes/2024/assets/file-DGAdxgYw.js rename to themes/2024/assets/file-CN_5aebv.js index 8ebc96c..406cef8 100644 --- a/themes/2024/assets/file-DGAdxgYw.js +++ b/themes/2024/assets/file-CN_5aebv.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-C9gpBPbG.js";/** +import{c as a}from"./index-14Tp7zPK.js";/** * @license lucide-vue-next v0.535.0 - ISC * * This source code is licensed under the ISC license. diff --git a/themes/2024/assets/hard-drive-BToulIQT.js b/themes/2024/assets/hard-drive-DvXIDK_-.js similarity index 92% rename from themes/2024/assets/hard-drive-BToulIQT.js rename to themes/2024/assets/hard-drive-DvXIDK_-.js index 132306d..2e64039 100644 --- a/themes/2024/assets/hard-drive-BToulIQT.js +++ b/themes/2024/assets/hard-drive-DvXIDK_-.js @@ -1,4 +1,4 @@ -import{c as e}from"./index-C9gpBPbG.js";/** +import{c as e}from"./index-14Tp7zPK.js";/** * @license lucide-vue-next v0.535.0 - ISC * * This source code is licensed under the ISC license. diff --git a/themes/2024/assets/index-C9gpBPbG.js b/themes/2024/assets/index-14Tp7zPK.js similarity index 83% rename from themes/2024/assets/index-C9gpBPbG.js rename to themes/2024/assets/index-14Tp7zPK.js index 242dfad..8b2ee82 100644 --- a/themes/2024/assets/index-C9gpBPbG.js +++ b/themes/2024/assets/index-14Tp7zPK.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SendFileView-BOsMUoIt.js","assets/PageHeader-B7RfkNXn.js","assets/box-m5X2L2BC.js","assets/PageHeader-DV4PCTwD.css","assets/file-DGAdxgYw.js","assets/trash-Cw4_1PxO.js","assets/SendFileView-CEwL3Upl.css","assets/RetrievewFileView-B44L-RDl.js","assets/hard-drive-BToulIQT.js","assets/RetrievewFileView-pLqL6j5e.css","assets/AdminLayout-RFCv5MG9.js","assets/AdminLayout-nlp_lohe.css","assets/DashboardView-Wzfzsof2.js","assets/FileManageView-D_aFzaTt.js","assets/FileManageView-DrjnVkAt.css","assets/LoginView-Dl9p7s8x.js","assets/LoginView-CbGDZtny.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SendFileView-BqULfUDl.js","assets/PageHeader-BDzp_ji4.js","assets/box-CiSQlKtb.js","assets/PageHeader-DV4PCTwD.css","assets/file-CN_5aebv.js","assets/trash-BTMfj7si.js","assets/SendFileView-D1bkFasE.css","assets/RetrievewFileView-DWBfGPUc.js","assets/hard-drive-DvXIDK_-.js","assets/RetrievewFileView-pLqL6j5e.css","assets/AdminLayout-CoImnOQO.js","assets/AdminLayout-nlp_lohe.css","assets/DashboardView-BQRsJrnN.js","assets/FileManageView-CZQWWk0t.js","assets/FileManageView-DrjnVkAt.css","assets/LoginView-B4xHkhLy.js","assets/LoginView-CbGDZtny.css"])))=>i.map(i=>d[i]); (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();/** * @vue/shared v3.5.21 * (c) 2018-present Yuxi (Evan) You and Vue contributors @@ -106,9 +106,9 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SendFileView-BO * vue-i18n v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const h_="9.14.5";function p_(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Vt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Vt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Vt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Vt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Vt().__INTLIFY_PROD_DEVTOOLS__=!1)}const g_=qg.__EXTEND_POINT__,Ut=Ds(g_);Ut(),Ut(),Ut(),Ut(),Ut(),Ut(),Ut(),Ut(),Ut();const qu=yt.__EXTEND_POINT__,rt=Ds(qu),ke={UNEXPECTED_RETURN_TYPE:qu,INVALID_ARGUMENT:rt(),MUST_BE_CALL_SETUP_TOP:rt(),NOT_INSTALLED:rt(),NOT_AVAILABLE_IN_LEGACY_MODE:rt(),REQUIRED_VALUE:rt(),INVALID_VALUE:rt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:rt(),NOT_INSTALLED_WITH_PROVIDE:rt(),UNEXPECTED_ERROR:rt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:rt(),BRIDGE_SUPPORT_VUE_2_ONLY:rt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:rt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:rt(),__EXTEND_POINT__:rt()};function De(e,...t){return tr(e,null,void 0)}const Do=_n("__translateVNode"),Uo=_n("__datetimeParts"),$o=_n("__numberParts"),Yu=_n("__setPluralRules"),zu=_n("__injectWithOption"),Bo=_n("__dispose");function kr(e){if(!fe(e)||xt(e))return e;for(const t in e)if(_t(e,t))if(!t.includes("."))fe(e[t])&&kr(e[t]);else{const n=t.split("."),r=n.length-1;let s=e,o=!1;for(let i=0;i{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(i[l]=i[l]||he(),ns(c,i[l])):ns(c,i)}else G(a)&&ns(JSON.parse(a),i)}),s==null&&o)for(const a in i)_t(i,a)&&kr(i[a]);return i}function Xu(e){return e.type}function Ju(e,t,n){let r=fe(t.messages)?t.messages:he();"__i18nGlobal"in n&&(r=$s(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const s=Object.keys(r);s.length&&s.forEach(o=>{e.mergeLocaleMessage(o,r[o])});{if(fe(t.datetimeFormats)){const o=Object.keys(t.datetimeFormats);o.length&&o.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(fe(t.numberFormats)){const o=Object.keys(t.numberFormats);o.length&&o.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function nl(e){return Pe($r,null,e,0)}const rl="__INTLIFY_META__",sl=()=>[],__=()=>!1;let ol=0;function il(e){return((t,n,r,s)=>e(n,r,zt()||void 0,s))}const y_=()=>{const e=zt();let t=null;return e&&(t=Xu(e)[rl])?{[rl]:t}:null};function vi(e={},t){const{__root:n,__injectWithOption:r}=e,s=n===void 0,o=e.flatJson,i=_s?st:li,a=!!e.translateExistCompatible;let l=ie(e.inheritLocale)?e.inheritLocale:!0;const c=i(n&&l?n.locale.value:G(e.locale)?e.locale:Jn),u=i(n&&l?n.fallbackLocale.value:G(e.fallbackLocale)||Se(e.fallbackLocale)||re(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),f=i($s(c.value,e)),d=i(re(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),p=i(re(e.numberFormats)?e.numberFormats:{[c.value]:{}});let E=n?n.missingWarn:ie(e.missingWarn)||pn(e.missingWarn)?e.missingWarn:!0,S=n?n.fallbackWarn:ie(e.fallbackWarn)||pn(e.fallbackWarn)?e.fallbackWarn:!0,w=n?n.fallbackRoot:ie(e.fallbackRoot)?e.fallbackRoot:!0,O=!!e.fallbackFormat,k=Ee(e.missing)?e.missing:null,b=Ee(e.missing)?il(e.missing):null,v=Ee(e.postTranslation)?e.postTranslation:null,L=n?n.warnHtmlMessage:ie(e.warnHtmlMessage)?e.warnHtmlMessage:!0,N=!!e.escapeParameter;const M=n?n.modifiers:re(e.modifiers)?e.modifiers:{};let $=e.pluralRules||n&&n.pluralRules,R;R=(()=>{s&&qa(null);const T={version:h_,locale:c.value,fallbackLocale:u.value,messages:f.value,modifiers:M,pluralRules:$,missing:b===null?void 0:b,missingWarn:E,fallbackWarn:S,fallbackFormat:O,unresolving:!0,postTranslation:v===null?void 0:v,warnHtmlMessage:L,escapeParameter:N,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=d.value,T.numberFormats=p.value,T.__datetimeFormatters=re(R)?R.__datetimeFormatters:void 0,T.__numberFormatters=re(R)?R.__numberFormatters:void 0;const x=s_(T);return s&&qa(x),x})(),ar(R,c.value,u.value);function ee(){return[c.value,u.value,f.value,d.value,p.value]}const B=_e({get:()=>c.value,set:T=>{c.value=T,R.locale=c.value}}),Q=_e({get:()=>u.value,set:T=>{u.value=T,R.fallbackLocale=u.value,ar(R,c.value,T)}}),ye=_e(()=>f.value),Oe=_e(()=>d.value),oe=_e(()=>p.value);function te(){return Ee(v)?v:null}function ae(T){v=T,R.postTranslation=T}function Je(){return k}function nt(T){T!==null&&(b=il(T)),k=T,R.missing=b}const Ce=(T,x,X,le,Te,Qe)=>{ee();let Ue;try{__INTLIFY_PROD_DEVTOOLS__,s||(R.fallbackContext=n?r_():void 0),Ue=T(R)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(R.fallbackContext=void 0)}if(X!=="translate exists"&&Ne(Ue)&&Ue===Us||X==="translate exists"&&!Ue){const[En,qs]=x();return n&&w?le(n):Te(En)}else{if(Qe(Ue))return Ue;throw De(ke.UNEXPECTED_RETURN_TYPE)}};function Le(...T){return Ce(x=>Reflect.apply(Ja,null,[x,...T]),()=>xo(...T),"translate",x=>Reflect.apply(x.t,x,[...T]),x=>x,x=>G(x))}function ft(...T){const[x,X,le]=T;if(le&&!fe(le))throw De(ke.INVALID_ARGUMENT);return Le(x,X,je({resolvedMessage:!0},le||{}))}function at(...T){return Ce(x=>Reflect.apply(Qa,null,[x,...T]),()=>Fo(...T),"datetime format",x=>Reflect.apply(x.d,x,[...T]),()=>ja,x=>G(x))}function Tt(...T){return Ce(x=>Reflect.apply(el,null,[x,...T]),()=>Mo(...T),"number format",x=>Reflect.apply(x.n,x,[...T]),()=>ja,x=>G(x))}function Fe(T){return T.map(x=>G(x)||Ne(x)||ie(x)?nl(String(x)):x)}const q={normalize:Fe,interpolate:T=>T,type:"vnode"};function j(...T){return Ce(x=>{let X;const le=x;try{le.processor=q,X=Reflect.apply(Ja,null,[le,...T])}finally{le.processor=null}return X},()=>xo(...T),"translate",x=>x[Do](...T),x=>[nl(x)],x=>Se(x))}function z(...T){return Ce(x=>Reflect.apply(el,null,[x,...T]),()=>Mo(...T),"number format",x=>x[$o](...T),sl,x=>G(x)||Se(x))}function ue(...T){return Ce(x=>Reflect.apply(Qa,null,[x,...T]),()=>Fo(...T),"datetime format",x=>x[Uo](...T),sl,x=>G(x)||Se(x))}function g(T){$=T,R.pluralRules=$}function y(T,x){return Ce(()=>{if(!T)return!1;const X=G(x)?x:c.value,le=U(X),Te=R.messageResolver(le,T);return a?Te!=null:xt(Te)||mt(Te)||G(Te)},()=>[T],"translate exists",X=>Reflect.apply(X.te,X,[T,x]),__,X=>ie(X))}function _(T){let x=null;const X=Fu(R,u.value,c.value);for(let le=0;le{l&&(c.value=T,R.locale=T,ar(R,c.value,u.value))}),un(n.fallbackLocale,T=>{l&&(u.value=T,R.fallbackLocale=T,ar(R,c.value,u.value))}));const H={id:ol,locale:B,fallbackLocale:Q,get inheritLocale(){return l},set inheritLocale(T){l=T,T&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,ar(R,c.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:ye,get modifiers(){return M},get pluralRules(){return $||{}},get isGlobal(){return s},get missingWarn(){return E},set missingWarn(T){E=T,R.missingWarn=E},get fallbackWarn(){return S},set fallbackWarn(T){S=T,R.fallbackWarn=S},get fallbackRoot(){return w},set fallbackRoot(T){w=T},get fallbackFormat(){return O},set fallbackFormat(T){O=T,R.fallbackFormat=O},get warnHtmlMessage(){return L},set warnHtmlMessage(T){L=T,R.warnHtmlMessage=T},get escapeParameter(){return N},set escapeParameter(T){N=T,R.escapeParameter=T},t:Le,getLocaleMessage:U,setLocaleMessage:F,mergeLocaleMessage:V,getPostTranslationHandler:te,setPostTranslationHandler:ae,getMissingHandler:Je,setMissingHandler:nt,[Yu]:g};return H.datetimeFormats=Oe,H.numberFormats=oe,H.rt=ft,H.te=y,H.tm=P,H.d=at,H.n=Tt,H.getDateTimeFormat=W,H.setDateTimeFormat=m,H.mergeDateTimeFormat=h,H.getNumberFormat=C,H.setNumberFormat=I,H.mergeNumberFormat=K,H[zu]=r,H[Do]=j,H[Uo]=ue,H[$o]=z,H}function b_(e){const t=G(e.locale)?e.locale:Jn,n=G(e.fallbackLocale)||Se(e.fallbackLocale)||re(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,r=Ee(e.missing)?e.missing:void 0,s=ie(e.silentTranslationWarn)||pn(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,o=ie(e.silentFallbackWarn)||pn(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,i=ie(e.fallbackRoot)?e.fallbackRoot:!0,a=!!e.formatFallbackMessages,l=re(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=Ee(e.postTranslation)?e.postTranslation:void 0,f=G(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,d=!!e.escapeParameterHtml,p=ie(e.sync)?e.sync:!0;let E=e.messages;if(re(e.sharedMessages)){const N=e.sharedMessages;E=Object.keys(N).reduce(($,R)=>{const Y=$[R]||($[R]={});return je(Y,N[R]),$},E||{})}const{__i18n:S,__root:w,__injectWithOption:O}=e,k=e.datetimeFormats,b=e.numberFormats,v=e.flatJson,L=e.translateExistCompatible;return{locale:t,fallbackLocale:n,messages:E,flatJson:v,datetimeFormats:k,numberFormats:b,missing:r,missingWarn:s,fallbackWarn:o,fallbackRoot:i,fallbackFormat:a,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:d,messageResolver:e.messageResolver,inheritLocale:p,translateExistCompatible:L,__i18n:S,__root:w,__injectWithOption:O}}function Ho(e={},t){{const n=vi(b_(e)),{__extender:r}=e,s={id:n.id,get locale(){return n.locale.value},set locale(o){n.locale.value=o},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(o){n.fallbackLocale.value=o},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(o){},get missing(){return n.getMissingHandler()},set missing(o){n.setMissingHandler(o)},get silentTranslationWarn(){return ie(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(o){n.missingWarn=ie(o)?!o:o},get silentFallbackWarn(){return ie(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(o){n.fallbackWarn=ie(o)?!o:o},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(o){n.fallbackFormat=o},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(o){n.setPostTranslationHandler(o)},get sync(){return n.inheritLocale},set sync(o){n.inheritLocale=o},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(o){n.warnHtmlMessage=o!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(o){n.escapeParameter=o},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(o){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...o){const[i,a,l]=o,c={};let u=null,f=null;if(!G(i))throw De(ke.INVALID_ARGUMENT);const d=i;return G(a)?c.locale=a:Se(a)?u=a:re(a)&&(f=a),Se(l)?u=l:re(l)&&(f=l),Reflect.apply(n.t,n,[d,u||f||{},c])},rt(...o){return Reflect.apply(n.rt,n,[...o])},tc(...o){const[i,a,l]=o,c={plural:1};let u=null,f=null;if(!G(i))throw De(ke.INVALID_ARGUMENT);const d=i;return G(a)?c.locale=a:Ne(a)?c.plural=a:Se(a)?u=a:re(a)&&(f=a),G(l)?c.locale=l:Se(l)?u=l:re(l)&&(f=l),Reflect.apply(n.t,n,[d,u||f||{},c])},te(o,i){return n.te(o,i)},tm(o){return n.tm(o)},getLocaleMessage(o){return n.getLocaleMessage(o)},setLocaleMessage(o,i){n.setLocaleMessage(o,i)},mergeLocaleMessage(o,i){n.mergeLocaleMessage(o,i)},d(...o){return Reflect.apply(n.d,n,[...o])},getDateTimeFormat(o){return n.getDateTimeFormat(o)},setDateTimeFormat(o,i){n.setDateTimeFormat(o,i)},mergeDateTimeFormat(o,i){n.mergeDateTimeFormat(o,i)},n(...o){return Reflect.apply(n.n,n,[...o])},getNumberFormat(o){return n.getNumberFormat(o)},setNumberFormat(o,i){n.setNumberFormat(o,i)},mergeNumberFormat(o,i){n.mergeNumberFormat(o,i)},getChoiceIndex(o,i){return-1}};return s.__extender=r,s}}const Si={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function E_({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((r,s)=>[...r,...s.type===Me?s.children:[s]],[]):t.reduce((n,r)=>{const s=e[r];return s&&(n[r]=s()),n},he())}function Qu(e){return Me}const v_=Xt({name:"i18n-t",props:je({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ne(e)||!isNaN(e)}},Si),setup(e,t){const{slots:n,attrs:r}=t,s=e.i18n||Hr({useScope:e.scope,__useComponent:!0});return()=>{const o=Object.keys(n).filter(f=>f!=="_"),i=he();e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=G(e.plural)?+e.plural:e.plural);const a=E_(t,o),l=s[Do](e.keypath,a,i),c=je(he(),r),u=G(e.tag)||fe(e.tag)?e.tag:Qu();return hn(u,c,l)}}}),al=v_;function S_(e){return Se(e)&&!G(e[0])}function Zu(e,t,n,r){const{slots:s,attrs:o}=t;return()=>{const i={part:!0};let a=he();e.locale&&(i.locale=e.locale),G(e.format)?i.key=e.format:fe(e.format)&&(G(e.format.key)&&(i.key=e.format.key),a=Object.keys(e.format).reduce((d,p)=>n.includes(p)?je(he(),d,{[p]:e.format[p]}):d,he()));const l=r(e.value,i,a);let c=[i.key];Se(l)?c=l.map((d,p)=>{const E=s[d.type],S=E?E({[d.type]:d.value,index:p,parts:l}):[d.value];return S_(S)&&(S[0].key=`${d.type}-${p}`),S}):G(l)&&(c=[l]);const u=je(he(),o),f=G(e.tag)||fe(e.tag)?e.tag:Qu();return hn(f,u,c)}}const w_=Xt({name:"i18n-n",props:je({value:{type:Number,required:!0},format:{type:[String,Object]}},Si),setup(e,t){const n=e.i18n||Hr({useScope:e.scope,__useComponent:!0});return Zu(e,t,Gu,(...r)=>n[$o](...r))}}),ll=w_,T_=Xt({name:"i18n-d",props:je({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Si),setup(e,t){const n=e.i18n||Hr({useScope:e.scope,__useComponent:!0});return Zu(e,t,Ku,(...r)=>n[Uo](...r))}}),cl=T_;function C_(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return r!=null?r.__composer:e.global.__composer}}function L_(e){const t=i=>{const{instance:a,modifiers:l,value:c}=i;if(!a||!a.$)throw De(ke.UNEXPECTED_ERROR);const u=C_(e,a.$),f=ul(c);return[Reflect.apply(u.t,u,[...fl(f)]),u]};return{created:(i,a)=>{const[l,c]=t(a);_s&&e.global===c&&(i.__i18nWatcher=un(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),i.__composer=c,i.textContent=l},unmounted:i=>{_s&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:a})=>{if(i.__composer){const l=i.__composer,c=ul(a);i.textContent=Reflect.apply(l.t,l,[...fl(c)])}},getSSRProps:i=>{const[a]=t(i);return{textContent:a}}}}function ul(e){if(G(e))return{path:e};if(re(e)){if(!("path"in e))throw De(ke.REQUIRED_VALUE,"path");return e}else throw De(ke.INVALID_VALUE)}function fl(e){const{path:t,locale:n,args:r,choice:s,plural:o}=e,i={},a=r||{};return G(n)&&(i.locale=n),Ne(s)&&(i.plural=s),Ne(o)&&(i.plural=o),[t,a,i]}function P_(e,t,...n){const r=re(n[0])?n[0]:{},s=!!r.useI18nComponentName;(ie(r.globalInstall)?r.globalInstall:!0)&&([s?"i18n":al.name,"I18nT"].forEach(i=>e.component(i,al)),[ll.name,"I18nN"].forEach(i=>e.component(i,ll)),[cl.name,"I18nD"].forEach(i=>e.component(i,cl))),e.directive("t",L_(t))}function R_(e,t,n){return{beforeCreate(){const r=zt();if(!r)throw De(ke.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const o=s.i18n;if(s.__i18n&&(o.__i18n=s.__i18n),o.__root=t,this===this.$root)this.$i18n=dl(e,o);else{o.__injectWithOption=!0,o.__extender=n.__vueI18nExtend,this.$i18n=Ho(o);const i=this.$i18n;i.__extender&&(i.__disposer=i.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=dl(e,s);else{this.$i18n=Ho({__i18n:s.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const o=this.$i18n;o.__extender&&(o.__disposer=o.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&Ju(t,s,s),this.$t=(...o)=>this.$i18n.t(...o),this.$rt=(...o)=>this.$i18n.rt(...o),this.$tc=(...o)=>this.$i18n.tc(...o),this.$te=(o,i)=>this.$i18n.te(o,i),this.$d=(...o)=>this.$i18n.d(...o),this.$n=(...o)=>this.$i18n.n(...o),this.$tm=o=>this.$i18n.tm(o),n.__setInstance(r,this.$i18n)},mounted(){},unmounted(){const r=zt();if(!r)throw De(ke.UNEXPECTED_ERROR);const s=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),n.__deleteInstance(r),delete this.$i18n}}}function dl(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Yu](t.pluralizationRules||e.pluralizationRules);const n=$s(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(r=>e.mergeLocaleMessage(r,n[r])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(r=>e.mergeDateTimeFormat(r,t.datetimeFormats[r])),t.numberFormats&&Object.keys(t.numberFormats).forEach(r=>e.mergeNumberFormat(r,t.numberFormats[r])),e}const O_=_n("global-vue-i18n");function N_(e={},t){const n=__VUE_I18N_LEGACY_API__&&ie(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,r=ie(e.globalInjection)?e.globalInjection:!0,s=__VUE_I18N_LEGACY_API__&&n?!!e.allowComposition:!0,o=new Map,[i,a]=A_(e,n),l=_n("");function c(d){return o.get(d)||null}function u(d,p){o.set(d,p)}function f(d){o.delete(d)}{const d={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return s},async install(p,...E){if(p.__VUE_I18N_SYMBOL__=l,p.provide(p.__VUE_I18N_SYMBOL__,d),re(E[0])){const O=E[0];d.__composerExtend=O.__composerExtend,d.__vueI18nExtend=O.__vueI18nExtend}let S=null;!n&&r&&(S=B_(p,d.global)),__VUE_I18N_FULL_INSTALL__&&P_(p,d,...E),__VUE_I18N_LEGACY_API__&&n&&p.mixin(R_(a,a.__composer,d));const w=p.unmount;p.unmount=()=>{S&&S(),d.dispose(),w()}},get global(){return a},dispose(){i.stop()},__instances:o,__getInstance:c,__setInstance:u,__deleteInstance:f};return d}}function Hr(e={}){const t=zt();if(t==null)throw De(ke.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw De(ke.NOT_INSTALLED);const n=I_(t),r=x_(n),s=Xu(t),o=k_(e,s);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!e.__useComponent){if(!n.allowComposition)throw De(ke.NOT_AVAILABLE_IN_LEGACY_MODE);return U_(t,o,r,e)}if(o==="global")return Ju(r,e,s),r;if(o==="parent"){let l=F_(n,t,e.__useComponent);return l==null&&(l=r),l}const i=n;let a=i.__getInstance(t);if(a==null){const l=je({},e);"__i18n"in s&&(l.__i18n=s.__i18n),r&&(l.__root=r),a=vi(l),i.__composerExtend&&(a[Bo]=i.__composerExtend(a)),D_(i,t,a),i.__setInstance(t,a)}return a}function A_(e,t,n){const r=Zo();{const s=__VUE_I18N_LEGACY_API__&&t?r.run(()=>Ho(e)):r.run(()=>vi(e));if(s==null)throw De(ke.UNEXPECTED_ERROR);return[r,s]}}function I_(e){{const t=Xe(e.isCE?O_:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw De(e.isCE?ke.NOT_INSTALLED_WITH_PROVIDE:ke.UNEXPECTED_ERROR);return t}}function k_(e,t){return Ms(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function x_(e){return e.mode==="composition"?e.global:e.global.__composer}function F_(e,t,n=!1){let r=null;const s=t.root;let o=M_(t,n);for(;o!=null;){const i=e;if(e.mode==="composition")r=i.__getInstance(o);else if(__VUE_I18N_LEGACY_API__){const a=i.__getInstance(o);a!=null&&(r=a.__composer,n&&r&&!r[zu]&&(r=null))}if(r!=null||s===o)break;o=o.parent}return r}function M_(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function D_(e,t,n){Zn(()=>{},t),er(()=>{const r=n;e.__deleteInstance(t);const s=r[Bo];s&&(s(),delete r[Bo])},t)}function U_(e,t,n,r={}){const s=t==="local",o=li(null);if(s&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw De(ke.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=ie(r.inheritLocale)?r.inheritLocale:!G(r.locale),a=st(!s||i?n.locale.value:G(r.locale)?r.locale:Jn),l=st(!s||i?n.fallbackLocale.value:G(r.fallbackLocale)||Se(r.fallbackLocale)||re(r.fallbackLocale)||r.fallbackLocale===!1?r.fallbackLocale:a.value),c=st($s(a.value,r)),u=st(re(r.datetimeFormats)?r.datetimeFormats:{[a.value]:{}}),f=st(re(r.numberFormats)?r.numberFormats:{[a.value]:{}}),d=s?n.missingWarn:ie(r.missingWarn)||pn(r.missingWarn)?r.missingWarn:!0,p=s?n.fallbackWarn:ie(r.fallbackWarn)||pn(r.fallbackWarn)?r.fallbackWarn:!0,E=s?n.fallbackRoot:ie(r.fallbackRoot)?r.fallbackRoot:!0,S=!!r.fallbackFormat,w=Ee(r.missing)?r.missing:null,O=Ee(r.postTranslation)?r.postTranslation:null,k=s?n.warnHtmlMessage:ie(r.warnHtmlMessage)?r.warnHtmlMessage:!0,b=!!r.escapeParameter,v=s?n.modifiers:re(r.modifiers)?r.modifiers:{},L=r.pluralRules||s&&n.pluralRules;function N(){return[a.value,l.value,c.value,u.value,f.value]}const M=_e({get:()=>o.value?o.value.locale.value:a.value,set:_=>{o.value&&(o.value.locale.value=_),a.value=_}}),$=_e({get:()=>o.value?o.value.fallbackLocale.value:l.value,set:_=>{o.value&&(o.value.fallbackLocale.value=_),l.value=_}}),R=_e(()=>o.value?o.value.messages.value:c.value),Y=_e(()=>u.value),ee=_e(()=>f.value);function B(){return o.value?o.value.getPostTranslationHandler():O}function Q(_){o.value&&o.value.setPostTranslationHandler(_)}function ye(){return o.value?o.value.getMissingHandler():w}function Oe(_){o.value&&o.value.setMissingHandler(_)}function oe(_){return N(),_()}function te(..._){return o.value?oe(()=>Reflect.apply(o.value.t,null,[..._])):oe(()=>"")}function ae(..._){return o.value?Reflect.apply(o.value.rt,null,[..._]):""}function Je(..._){return o.value?oe(()=>Reflect.apply(o.value.d,null,[..._])):oe(()=>"")}function nt(..._){return o.value?oe(()=>Reflect.apply(o.value.n,null,[..._])):oe(()=>"")}function Ce(_){return o.value?o.value.tm(_):{}}function Le(_,P){return o.value?o.value.te(_,P):!1}function ft(_){return o.value?o.value.getLocaleMessage(_):{}}function at(_,P){o.value&&(o.value.setLocaleMessage(_,P),c.value[_]=P)}function Tt(_,P){o.value&&o.value.mergeLocaleMessage(_,P)}function Fe(_){return o.value?o.value.getDateTimeFormat(_):{}}function D(_,P){o.value&&(o.value.setDateTimeFormat(_,P),u.value[_]=P)}function q(_,P){o.value&&o.value.mergeDateTimeFormat(_,P)}function j(_){return o.value?o.value.getNumberFormat(_):{}}function z(_,P){o.value&&(o.value.setNumberFormat(_,P),f.value[_]=P)}function ue(_,P){o.value&&o.value.mergeNumberFormat(_,P)}const g={get id(){return o.value?o.value.id:-1},locale:M,fallbackLocale:$,messages:R,datetimeFormats:Y,numberFormats:ee,get inheritLocale(){return o.value?o.value.inheritLocale:i},set inheritLocale(_){o.value&&(o.value.inheritLocale=_)},get availableLocales(){return o.value?o.value.availableLocales:Object.keys(c.value)},get modifiers(){return o.value?o.value.modifiers:v},get pluralRules(){return o.value?o.value.pluralRules:L},get isGlobal(){return o.value?o.value.isGlobal:!1},get missingWarn(){return o.value?o.value.missingWarn:d},set missingWarn(_){o.value&&(o.value.missingWarn=_)},get fallbackWarn(){return o.value?o.value.fallbackWarn:p},set fallbackWarn(_){o.value&&(o.value.missingWarn=_)},get fallbackRoot(){return o.value?o.value.fallbackRoot:E},set fallbackRoot(_){o.value&&(o.value.fallbackRoot=_)},get fallbackFormat(){return o.value?o.value.fallbackFormat:S},set fallbackFormat(_){o.value&&(o.value.fallbackFormat=_)},get warnHtmlMessage(){return o.value?o.value.warnHtmlMessage:k},set warnHtmlMessage(_){o.value&&(o.value.warnHtmlMessage=_)},get escapeParameter(){return o.value?o.value.escapeParameter:b},set escapeParameter(_){o.value&&(o.value.escapeParameter=_)},t:te,getPostTranslationHandler:B,setPostTranslationHandler:Q,getMissingHandler:ye,setMissingHandler:Oe,rt:ae,d:Je,n:nt,tm:Ce,te:Le,getLocaleMessage:ft,setLocaleMessage:at,mergeLocaleMessage:Tt,getDateTimeFormat:Fe,setDateTimeFormat:D,mergeDateTimeFormat:q,getNumberFormat:j,setNumberFormat:z,mergeNumberFormat:ue};function y(_){_.locale.value=a.value,_.fallbackLocale.value=l.value,Object.keys(c.value).forEach(P=>{_.mergeLocaleMessage(P,c.value[P])}),Object.keys(u.value).forEach(P=>{_.mergeDateTimeFormat(P,u.value[P])}),Object.keys(f.value).forEach(P=>{_.mergeNumberFormat(P,f.value[P])}),_.escapeParameter=b,_.fallbackFormat=S,_.fallbackRoot=E,_.fallbackWarn=p,_.missingWarn=d,_.warnHtmlMessage=k}return _c(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw De(ke.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const _=o.value=e.proxy.$i18n.__composer;t==="global"?(a.value=_.locale.value,l.value=_.fallbackLocale.value,c.value=_.messages.value,u.value=_.datetimeFormats.value,f.value=_.numberFormats.value):s&&y(_)}),g}const $_=["locale","fallbackLocale","availableLocales"],ml=["t","rt","d","n","tm","te"];function B_(e,t){const n=Object.create(null);return $_.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o)throw De(ke.UNEXPECTED_ERROR);const i=we(o.value)?{get(){return o.value.value},set(a){o.value.value=a}}:{get(){return o.get&&o.get()}};Object.defineProperty(n,s,i)}),e.config.globalProperties.$i18n=n,ml.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o||!o.value)throw De(ke.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,o)}),()=>{delete e.config.globalProperties.$i18n,ml.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}p_();__INTLIFY_JIT_COMPILATION__?Ga(c_):Ga(l_);Zg(kg);e_(Fu);if(__INTLIFY_PROD_DEVTOOLS__){const e=Vt();e.__INTLIFY__=!0,Wg(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const H_={common:{confirm:"确认",cancel:"取消",close:"关闭",delete:"删除",edit:"编辑",save:"保存",add:"添加",back:"返回",next:"下一页",previous:"上一页",loading:"加载中...",success:"成功",error:"错误",warning:"警告",info:"信息",search:"搜索",copy:"复制",uploadSuccess:"上传成功",uploadFailed:"上传失败",copySuccess:"复制成功",copyFailed:"复制失败",deleteSuccess:"删除成功",deleteFailed:"删除失败",downloadSuccess:"下载成功",downloadFailed:"下载失败",shareSuccess:"分享成功",shareFailed:"分享失败",expiredFile:"文件已过期",fileNotFound:"文件不存在",networkError:"网络错误",unknownError:"未知错误",invalidFileType:"不支持的文件类型",fileTooLarge:"文件过大",uploadCanceled:"上传已取消",processing:"处理中...",pleaseWait:"请稍候...",fileDetails:"文件详情",enabled:"已开启",disabled:"已关闭",minute:"分钟",files:"个文件",second:"秒",hour:"小时",day:"天",times:"次",appName:"文件快递柜 - FileCodeBox",appDescription:"开箱即用的文件快传系统"},admin:{dashboard:{title:"仪表盘",totalFiles:"总文件数",storageSpace:"存储空间",activeUsers:"活跃用户",systemStatus:"系统状态",yesterday:"昨天:",today:"今天:",weeklyChange:"↓ 5% 较上周",normal:"正常",serverUptime:"服务器运行时间:",version:"版本 v2.2.1 更新时间:2025-09-04"},fileManage:{title:"文件管理"},settings:{title:"系统设置",basicSettings:"基本设置",websiteInfo:"网站基本信息",websiteName:"网站名称",websiteDescription:"网站描述",siteName:"网站名称",adminPassword:"管理员密码",passwordPlaceholder:"留空则不修改密码",passwordNote:"留空则不修改",keywords:"关键词",themeSelection:"主题选择",robotsFile:"Robots.txt",notificationSettings:"通知设置",notificationTitle:"通知标题",notificationContent:"通知内容",storageSettings:"存储设置",storagePath:"存储路径",storagePathPlaceholder:"留空则使用默认路径,可不填写",storageMethod:"存储方式",localStorage:"本地存储",s3Storage:"S3 存储",webdavStorage:"Webdav 存储",chunkUploadNote:"开启切片上传(实验性功能,还在开发中,目前仅本地存储可用,可能会出现未知问题)",s3AccessKeyId:"S3 AccessKeyId",s3SecretAccessKey:"S3 SecretAccessKey",s3BucketName:"S3 BucketName",s3EndpointUrl:"S3 EndpointUrl",s3RegionName:"S3 Region Name",s3SignatureVersion:"S3 Signature Version",s3Hostname:"S3 Hostname",s3v2:"S3v2",s3v4:"S3v4",autoPlaceholder:"auto",enabled:"已开启",disabled:"已关闭",webdavUrl:"请输入 Webdav URL",webdavUsername:"请输入 Webdav Username",webdavPassword:"请输入 Webdav Password",webdavUrlPlaceholder:"请输入 Webdav URL",webdavUsernamePlaceholder:"请输入 Webdav Username",webdavPasswordPlaceholder:"请输入 Webdav Password",enableProxy:"启用代理",uploadLimits:"上传限制",uploadRateLimit:"每分钟上传限制",uploadPerMinute:"每分钟上传限制",minute:"分钟",uploadCountLimit:"上传数量限制",files:"个文件",fileSizeLimit:"文件大小限制",expirationMethod:"过期方式",expirationType:"过期类型",expiration:{day:"按天",hour:"按小时",minute:"按分钟",forever:"永久",count:"按次数"},maxSaveTime:"最长保存时间",timeUnits:{second:"秒",minute:"分",hour:"时",day:"天"},guestUpload:"游客上传",errorLimits:"错误限制",errorRateLimit:"每分钟错误限制",errorPerMinute:"每分钟错误限制",errorCountLimit:"错误次数限制",times:"次",saveChanges:"保存更改",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"}}},nav:{sendFile:"发送文件",retrieveFile:"取件",fileRecords:"取件记录"},retrieve:{title:"文件取件",codeInput:{placeholder:"请输入5位取件码",label:"取件码"},submit:"取件",needSendFile:"需要发送文件?点击这里",recordsDrawer:"取件记录",messages:{invalidCode:"请输入5位取件码",retrieveSuccess:"文件获取成功",invalidCodeError:"无效的取件码",retrieveFailure:"获取文件失败:",networkError:"取件失败,请稍后重试:",unknownError:"未知错误"}},send:{title:"文件发送",sendText:"发送文本",fileDetails:"文件详情",expirationMethod:"过期方式",uploadArea:{dragText:"拖拽文件到此处或",clickText:"点击选择文件",textInput:"在此输入要发送的文本...",placeholder:"点击或拖放文件到此处上传",description:"支持各种常见格式"},submit:"安全寄送",needRetrieveFile:"需要取件?点击这里",sendRecords:"发件记录",secureEncryption:"安全加密",fileDetail:{title:"文件详情",content:"文件内容",previewContent:"预览内容",download:"点击下载",qrCode:"取件二维码",scanQrCode:"扫描二维码快速取件"},contentPreview:{title:"内容预览"},fileManage:{title:"文件管理",searchPlaceholder:"搜索文件名称、描述...",allFiles:"所有文件",editFileInfo:"编辑文件信息",saveChanges:"保存更改",headers:{code:"取件码",name:"名称",size:"大小",description:"描述",expiration:"过期时间",actions:"操作"},form:{code:"取件码",codePlaceholder:"输入取件码",filename:"文件名称",filenamePlaceholder:"输入文件名称",suffix:"文件后缀",suffixPlaceholder:"输入文件后缀",downloadLimit:"下载次数限制",downloadLimitPlaceholder:"输入下载次数限制"}},expiration:{label:"过期时间",placeholders:{days:"输入天数",hours:"输入小时数",minutes:"输入分钟数",count:"输入查看次数",forever:"永久",default:"输入值"},units:{days:"天",hours:"小时",minutes:"分钟",times:"次",forever:"永久"}},time:{day:"按天",hour:"按小时",minute:"按分钟",forever:"永久",count:"按次数"},messages:{selectFile:"请选择要上传的文件",enterText:"请输入要发送的文本",enterExpirationValue:"请输入过期值",expirationTooLong:"过期时间不能超过{days}天",sendSuccess:"文件发送成功!取件码:{code}",initChunkUploadFailed:"初始化切片上传失败",chunkUploadFailed:"切片 {index} 上传失败",completeUploadFailed:"完成上传失败",uploadFailed:"上传失败,请稍后重试",guestUploadDisabled:"游客上传功能已关闭",fileSizeExceeded:"文件大小超过限制 ({size})",serverError:"服务器响应异常",sendFailed:"发送失败,请稍后重试",expiresAfterCount:"{count}次后过期",expiresAt:"{date}过期",emptyFileError:"无法读取空文件",fileAddedFromClipboard:"已从剪贴板添加文件:{filename}",fileProcessingFailed:"文件处理失败",expiresAfter:"{value}{unit}后过期"}},fileManage:{title:"文件管理",searchPlaceholder:"搜索文件名称、描述...",allFiles:"所有文件",editFileInfo:"编辑文件信息",saveChanges:"保存更改",headers:{code:"取件码",name:"名称",size:"大小",description:"描述",expiration:"过期时间",actions:"操作"},form:{code:"取件码",codePlaceholder:"输入取件码",filename:"文件名称",filenamePlaceholder:"输入文件名称",suffix:"文件后缀",suffixPlaceholder:"输入文件后缀",downloadLimit:"下载次数限制",downloadLimitPlaceholder:"输入下载次数限制"}},fileRecord:{filename:"文件名",size:"文件大小",date:"取件日期",code:"取件码",actions:"操作",download:"下载",viewDetails:"查看详情",deleteRecord:"删除记录",preview:"预览",copyContent:"复制内容",contentCopied:"内容已复制到剪贴板",copyFailed:"复制失败,请重试"},fileDetail:{title:"文件详情",content:"文件内容",previewContent:"预览内容",download:"点击下载",qrCode:"取件二维码",scanQrCode:"扫描二维码快速取件"},contentPreview:{title:"内容预览"},drawer:{noRecords:"暂无记录"},fileSize:{bytes:"Bytes",kb:"KB",mb:"MB",gb:"GB",tb:"TB"},manage:{settings:{title:"系统设置",basicSettings:"基本设置",siteName:"网站名称",adminPassword:"管理员密码",passwordPlaceholder:"留空则不修改密码",passwordNote:"留空则不修改",keywords:"关键词",themeSelection:"主题选择",robotsFile:"Robots.txt",notificationSettings:"通知设置",notificationTitle:"通知标题",notificationContent:"通知内容",storageSettings:"存储设置",storagePath:"存储路径",storagePathPlaceholder:"留空则使用默认路径,可不填写",storageMethod:"存储方式",localStorage:"本地存储",chunkUploadNote:"开启切片上传(实验性功能,还在开发中,目前仅本地存储可用,可能会出现未知问题)",uploadLimits:"上传限制",uploadPerMinute:"每分钟上传限制",uploadCountLimit:"上传数量限制",fileSizeLimit:"文件大小限制",expiration:{day:"按天",hour:"按小时",minute:"按分钟",forever:"永久",count:"按次数"},maxSaveTime:"最长保存时间",s3SecretAccessKey:"S3 SecretAccessKey",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"},expirationType:"过期类型",guestUpload:"游客上传",errorLimits:"错误限制",errorPerMinute:"每分钟错误限制",errorCountLimit:"错误次数限制",saveChanges:"保存更改"},dashboard:{title:"仪表盘",totalFiles:"总文件数",storageSpace:"存储空间",activeUsers:"活跃用户",systemStatus:"系统状态",yesterday:"昨天:",today:"今天:",weeklyChange:"↓ 5% 较上周",normal:"正常",serverUptime:"服务器运行时间:",version:"版本 v2.2.1 更新时间:2025-09-04"},fileManage:{title:"文件管理",searchPlaceholder:"搜索文件名称、描述...",allFiles:"所有文件",editFileInfo:"编辑文件信息",saveChanges:"保存更改",headers:{code:"取件码",name:"名称",size:"大小",description:"描述",expiration:"过期时间",actions:"操作"},form:{code:"取件码",codePlaceholder:"输入取件码",filename:"文件名称",filenamePlaceholder:"输入文件名称",suffix:"文件后缀",suffixPlaceholder:"输入文件后缀",downloadLimit:"下载次数限制",downloadLimitPlaceholder:"输入下载次数限制"},updateFailed:"更新失败",deleteFailed:"删除失败",loadFileListFailed:"加载文件列表失败"},systemSettings:{title:"系统设置",basicSettings:"基本设置",websiteInfo:"网站基本信息",websiteName:"网站名称",websiteDescription:"网站描述",adminPassword:"管理员密码",passwordPlaceholder:"留空则不修改密码",passwordNote:"留空则不修改",keywords:"关键词",themeSelection:"主题选择",notificationSettings:"通知设置",notificationTitle:"通知标题",notificationContent:"通知内容",storageSettings:"存储设置",storagePath:"存储路径",storagePathPlaceholder:"留空则使用默认路径,可不填写",storageMethod:"存储方式",localStorage:"本地存储",s3Storage:"S3 存储",webdavStorage:"Webdav 存储",chunkUploadNote:"开启切片上传(实验性功能,还在开发中,目前仅本地存储可用,可能会出现未知问题)",enabled:"已开启",disabled:"已关闭",webdavUrl:"请输入 Webdav URL",webdavUsername:"请输入 Webdav Username",webdavPassword:"请输入 Webdav Password",enableProxy:"启用代理",uploadLimits:"上传限制",uploadRateLimit:"每分钟上传限制",minute:"分钟",uploadCountLimit:"上传数量限制",files:"个文件",fileSizeLimit:"文件大小限制",expirationMethod:"过期方式",expirationMethods:{day:"按天",hour:"按小时",minute:"按分钟",forever:"永久",count:"按次数"},expiration:{day:"按天",hour:"按小时",minute:"按分钟",forever:"永久",count:"按次数"},maxSaveTime:"最长保存时间",timeUnits:{second:"秒",minute:"分",hour:"时",day:"天"},guestUpload:"游客上传",errorLimits:"错误限制",errorRateLimit:"每分钟错误限制",errorCountLimit:"错误次数限制",times:"次",saveSettings:"保存设置",saveSuccess:"保存成功",saveFailed:"保存失败",getConfigFailed:"获取配置失败"},login:{title:"登录",password:"密码",passwordPlaceholder:"密码",loginButton:"登录",loggingIn:"登录中...",invalidPassword:"无效的密码",passwordTooShort:"密码长度至少为6位",loginFailed:"登录失败",noValidToken:"登录失败:未获取到有效令牌"}},utils:{common:{formatTime:"格式化时间戳为可读格式",formatFileSize:"格式化文件大小",formatDuration:"格式化持续时间",time:{forever:"永久",day:"天",hour:"小时",minute:"分钟",second:"秒"},copyToClipboard:"复制文本到剪贴板",copyFailed:"复制失败:",debounce:"防抖函数",throttle:"节流函数",validateEmail:"验证邮箱格式",validateUrl:"验证URL格式",generateRandomString:"生成随机字符串",deepClone:"深度克隆对象",getFileExtension:"获取文件扩展名",isMobileDevice:"检查是否为移动设备",formatNumber:"格式化数字,添加千分位分隔符"},clipboard:{title:"剪贴板工具函数",copyText:"复制文本到剪贴板",copySuccess:"复制成功",copyFailed:"复制失败,请手动复制"}},components:{pagination:{showing:"显示第",to:"到",of:"条,共",total:"条",previous:"上一页",next:"下一页"},languageSwitcher:{clickOutsideToClose:"点击外部关闭下拉菜单"},borderProgressBar:{borderWidth:"边框宽度",cornerRadius:"拐角半径",createGradient:"创建渐变",drawBackground:"绘制背景",calculateProgress:"计算进度",drawProgress:"绘制进度"}},misc:{emptyFileError:"无法读取空文件",fileAddedFromClipboard:"已从剪贴板添加文件:",fileProcessFailed:"文件处理失败",chunkSize:"保持 2MB 的切片大小用于计算哈希",secureContext:"如果不是安全上下文(HTTP),则返回一个基于文件信息的替代哈希",cryptoFallback:"如果 crypto.subtle.digest 失败,使用替代方案",generateAlternativeHash:"生成替代哈希的函数",fileInfoHash:"使用文件名、大小和最后修改时间生成一个简单的哈希",convertToHex:"转换为16进制字符串并填充到64位",defaultChunkSize:"默认切片大小为5MB",initChunkUpload:"1. 初始化切片上传",uploadChunk:"2. 上传切片",completeUpload:"3. 完成上传",chunkUploadFailed:"切片上传失败:",uploadProgressListener:"添加上传进度监听",noLimitCheck:"如果没有限制,直接返回true",expirationValidation:"添加过期时间验证",chunkUploadReplacement:"使用切片上传替代原来的直接上传",textUploadUnchanged:"文本上传保持不变",addSendRecord:"添加新的发送记录",permanent:"永久",sendSuccessMessage:"显示发送成功消息",resetForm:"重置表单 - 只重置文件和文本内容,保留过期信息",showDetails:"显示详情",autoCopyLink:"自动复制取件码链接",delayedLoading:"使用 onMounted 钩子延迟加载一些非关键资源或初始化",nonCriticalInit:"这里可以放置一些非立即需要的初始化代码"}},W_={common:{confirm:"Confirm",cancel:"Cancel",close:"Close",delete:"Delete",edit:"Edit",save:"Save",add:"Add",back:"Back",next:"Next",previous:"Previous",loading:"Loading...",noData:"No Data",success:"Success",error:"Error",warning:"Warning",info:"Information",search:"Search",copy:"Copy",uploadSuccess:"Upload successful",uploadFailed:"Upload failed",copySuccess:"Copy successful",copyFailed:"Copy failed",deleteSuccess:"Delete successful",deleteFailed:"Delete failed",downloadSuccess:"Download successful",downloadFailed:"Download failed",shareSuccess:"Share successful",shareFailed:"Share failed",expiredFile:"File has expired",fileNotFound:"File not found",networkError:"Network error",unknownError:"Unknown error",invalidFileType:"Invalid file type",fileTooLarge:"File too large",uploadCanceled:"Upload canceled",processing:"Processing",pleaseWait:"Please wait",fileDetails:"File Details",enabled:"Enabled",disabled:"Disabled",minute:"minute",files:"files",second:"second",hour:"hour",day:"day",times:"times",appName:"FileCodeBox - File Transfer",appDescription:"Ready-to-use file transfer system"},admin:{dashboard:{title:"Dashboard",totalFiles:"Total Files",storageSpace:"Storage Space",activeUsers:"Active Users",systemStatus:"System Status",yesterday:"Yesterday:",today:"Today:",weeklyChange:"↓ 5% from last week",normal:"Normal",serverUptime:"Server Uptime:",version:"Version v2.2.1 Updated: 2025-09-04"},fileManage:{title:"File Management"},settings:{title:"System Settings",basicSettings:"Basic Settings",websiteInfo:"Website Basic Information",websiteName:"Website Name",websiteDescription:"Website Description",siteName:"Site Name",adminPassword:"Admin Password",passwordPlaceholder:"Leave blank to keep current password",passwordNote:"Leave blank to keep unchanged",keywords:"Keywords",themeSelection:"Theme Selection",robotsFile:"Robots.txt",notificationSettings:"Notification Settings",notificationTitle:"Notification Title",notificationContent:"Notification Content",storageSettings:"Storage Settings",storagePath:"Storage Path",storagePathPlaceholder:"Leave blank to use default path, optional",storageMethod:"Storage Method",localStorage:"Local Storage",s3Storage:"S3 Storage",webdavStorage:"Webdav Storage",chunkUploadNote:"Enable chunk upload (experimental feature, still in development, currently only available for local storage, may have unknown issues)",s3AccessKeyId:"S3 AccessKeyId",s3SecretAccessKey:"S3 SecretAccessKey",s3BucketName:"S3 BucketName",s3EndpointUrl:"S3 EndpointUrl",s3RegionName:"S3 Region Name",s3SignatureVersion:"S3 Signature Version",s3Hostname:"S3 Hostname",s3v2:"S3v2",s3v4:"S3v4",autoPlaceholder:"auto",enabled:"Enabled",disabled:"Disabled",webdavUrl:"Please enter Webdav URL",webdavUsername:"Please enter Webdav Username",webdavPassword:"Please enter Webdav Password",webdavUrlPlaceholder:"Please enter Webdav URL",webdavUsernamePlaceholder:"Please enter Webdav Username",webdavPasswordPlaceholder:"Please enter Webdav Password",enableProxy:"Enable Proxy",uploadLimits:"Upload Limits",uploadRateLimit:"Upload Rate Limit",uploadPerMinute:"Upload Per Minute",minute:"minute",uploadCountLimit:"Upload Count Limit",files:"files",fileSizeLimit:"File Size Limit",expirationMethod:"Expiration Method",expirationType:"Expiration Type",expiration:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count"},maxSaveTime:"Maximum Save Time",timeUnits:{second:"second",minute:"minute",hour:"hour",day:"day"},guestUpload:"Guest Upload",errorLimits:"Error Limits",errorRateLimit:"Error Rate Limit",errorPerMinute:"Error Per Minute",errorCountLimit:"Error Count Limit",times:"times",saveChanges:"Save Changes",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"}}},nav:{sendFile:"Send File",retrieveFile:"Retrieve",fileRecords:"File Records"},retrieve:{title:"File Retrieval",codeInput:{placeholder:"Enter 5-digit retrieval code",label:"Retrieval Code"},submit:"Retrieve",needSendFile:"Need to send a file? Click here",recordsDrawer:"Retrieval Records",messages:{invalidCode:"Please enter a 5-digit retrieval code",retrieveSuccess:"File retrieved successfully",invalidCodeError:"Invalid retrieval code",retrieveFailure:"Failed to retrieve file: ",networkError:"Retrieval failed, please try again later: ",unknownError:"Unknown error"}},send:{title:"File Send",sendText:"Send Text",uploadArea:{dragText:"Drag files here or",clickText:"click to select files",textInput:"Enter text to send here...",placeholder:"Click or drag files here to upload",description:"Supports various common formats"},submit:"Secure Send",needRetrieveFile:"Need to retrieve? Click here",sendRecords:"Send Records",secureEncryption:"Secure Encryption",fileDetails:"File Details",expirationMethod:"Expiration Method",expiration:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count",label:"Expiration Time",placeholders:{days:"Enter days",hours:"Enter hours",minutes:"Enter minutes",count:"Enter view count",forever:"Forever",default:"Enter value"},units:{days:"days",hours:"hours",minutes:"minutes",times:"times",forever:"Forever"}},time:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count"},messages:{selectFile:"Please select a file to upload",enterText:"Please enter text to send",enterExpirationValue:"Please enter expiration value",expirationTooLong:"Expiration time cannot exceed {days} days",sendSuccess:"File sent successfully! Retrieve code: {code}",initChunkUploadFailed:"Failed to initialize chunk upload",chunkUploadFailed:"Chunk {index} upload failed",completeUploadFailed:"Failed to complete upload",uploadFailed:"Upload failed, please try again later",guestUploadDisabled:"Guest upload feature is disabled",fileSizeExceeded:"File size exceeds limit ({size})",serverError:"Server response error",sendFailed:"Send failed, please try again later",expiresAfterCount:"Expires after {count} times",expiresAt:"Expires at {date}",emptyFileError:"Cannot read empty file",fileAddedFromClipboard:"File added from clipboard: {filename}",fileProcessingFailed:"File processing failed",expiresAfter:"Expires after {value} {unit}"}},fileRecord:{filename:"Filename",size:"Size",date:"Date",code:"Code",actions:"Actions",download:"Download",viewDetails:"View Details",deleteRecord:"Delete Record",preview:"Preview",copyContent:"Copy Content",contentCopied:"Content copied to clipboard",copyFailed:"Copy failed, please try again"},fileDetail:{title:"File Details",content:"File Content",previewContent:"Preview Content",download:"Click to Download",qrCode:"Retrieve QR Code",scanQrCode:"Scan QR code for quick retrieval"},contentPreview:{title:"Content Preview"},fileManage:{title:"File Management",searchPlaceholder:"Search file name, description...",allFiles:"All Files",editFileInfo:"Edit File Information",saveChanges:"Save Changes",headers:{code:"Retrieve Code",name:"Name",size:"Size",description:"Description",expiration:"Expiration",actions:"Actions"},form:{code:"Retrieve Code",codePlaceholder:"Enter retrieve code",filename:"File Name",filenamePlaceholder:"Enter file name",suffix:"File Extension",suffixPlaceholder:"Enter file extension",downloadLimit:"Download Limit",downloadLimitPlaceholder:"Enter download limit"}},drawer:{noRecords:"No records"},manage:{settings:{title:"System Settings",basicSettings:"Basic Settings",websiteInfo:"Website Basic Information",websiteName:"Website Name",websiteDescription:"Website Description",siteName:"Site Name",adminPassword:"Admin Password",passwordPlaceholder:"Leave blank to keep current password",passwordNote:"Leave blank to keep unchanged",keywords:"Keywords",themeSelection:"Theme Selection",notificationSettings:"Notification Settings",notificationTitle:"Notification Title",notificationContent:"Notification Content",storageSettings:"Storage Settings",storagePath:"Storage Path",storagePathPlaceholder:"Leave blank to use default path, optional",storageMethod:"Storage Method",localStorage:"Local Storage",s3Storage:"S3 Storage",webdavStorage:"Webdav Storage",chunkUploadNote:"Enable chunk upload (experimental feature, still in development, currently only available for local storage, may have unknown issues)",enabled:"Enabled",disabled:"Disabled",webdavUrl:"Please enter Webdav URL",webdavUsername:"Please enter Webdav Username",webdavPassword:"Please enter Webdav Password",webdavUrlPlaceholder:"Please enter Webdav URL",webdavUsernamePlaceholder:"Please enter Webdav Username",webdavPasswordPlaceholder:"Please enter Webdav Password",enableProxy:"Enable Proxy",uploadLimits:"Upload Limits",uploadRateLimit:"Upload Rate Limit",uploadPerMinute:"Upload Per Minute",minute:"minute",uploadCountLimit:"Upload Count Limit",files:"files",fileSizeLimit:"File Size Limit",expirationMethod:"Expiration Method",expirationType:"Expiration Type",expiration:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count"},maxSaveTime:"Maximum Save Time",timeUnits:{second:"second",minute:"minute",hour:"hour",day:"day"},guestUpload:"Guest Upload",errorLimits:"Error Limits",errorRateLimit:"Error Rate Limit",errorPerMinute:"Error Per Minute",errorCountLimit:"Error Count Limit",times:"times",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"},saveChanges:"Save Changes"},systemSettings:{title:"System Settings",basicSettings:"Basic Settings",websiteInfo:"Website Basic Information",websiteName:"Website Name",websiteDescription:"Website Description",adminPassword:"Admin Password",passwordPlaceholder:"Leave blank to keep current password",passwordNote:"Leave blank to keep unchanged",keywords:"Keywords",themeSelection:"Theme Selection",notificationSettings:"Notification Settings",notificationTitle:"Notification Title",notificationContent:"Notification Content",storageSettings:"Storage Settings",storagePath:"Storage Path",storagePathPlaceholder:"Leave blank to use default path, optional",storageMethod:"Storage Method",localStorage:"Local Storage",s3Storage:"S3 Storage",webdavStorage:"Webdav Storage",chunkUploadNote:"Enable chunk upload (experimental feature, still in development, currently only available for local storage, may have unknown issues)",enabled:"Enabled",disabled:"Disabled",webdavUrl:"Please enter Webdav URL",webdavUsername:"Please enter Webdav Username",webdavPassword:"Please enter Webdav Password",enableProxy:"Enable Proxy",uploadLimits:"Upload Limits",uploadRateLimit:"Upload Rate Limit",minute:"minute",uploadCountLimit:"Upload Count Limit",files:"files",fileSizeLimit:"File Size Limit",expirationMethod:"Expiration Method",expirationMethods:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count"},expiration:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count"},maxSaveTime:"Maximum Save Time",timeUnits:{second:"second",minute:"minute",hour:"hour",day:"day"},guestUpload:"Guest Upload",errorLimits:"Error Limits",errorRateLimit:"Error Rate Limit",errorCountLimit:"Error Count Limit",times:"times",saveSettings:"Save Settings",saveSuccess:"Save successful",saveFailed:"Save failed",getConfigFailed:"Failed to get configuration"},dashboard:{title:"Dashboard",totalFiles:"Total Files",storageSpace:"Storage Space",activeUsers:"Active Users",systemStatus:"System Status",yesterday:"Yesterday:",today:"Today:",weeklyChange:"↓ 5% from last week",normal:"Normal",serverUptime:"Server Uptime:",version:"Version v2.2.1 Updated: 2025-09-04"},fileManage:{title:"File Management",searchPlaceholder:"Search file name, description...",allFiles:"All Files",editFileInfo:"Edit File Info",saveChanges:"Save Changes",headers:{code:"Code",name:"Name",size:"Size",description:"Description",expiration:"Expiration",actions:"Actions"},form:{code:"Code",codePlaceholder:"Enter code",filename:"File Name",filenamePlaceholder:"Enter file name",suffix:"File Suffix",suffixPlaceholder:"Enter file suffix",downloadLimit:"Download Limit",downloadLimitPlaceholder:"Enter download limit"},updateFailed:"Update failed",deleteFailed:"Delete failed",loadFileListFailed:"Failed to load file list"},login:{title:"Login",password:"Password",passwordPlaceholder:"Password",loginButton:"Login",loggingIn:"Logging in...",invalidPassword:"Invalid password",passwordTooShort:"Password must be at least 6 characters",loginFailed:"Login failed",noValidToken:"Login failed: No valid token received"}},fileSize:{bytes:"Bytes",kb:"KB",mb:"MB",gb:"GB",tb:"TB"},utils:{formatTime:"Format timestamp to readable format",formatFileSize:"Format file size",formatDuration:"Format duration",time:{forever:"Forever",day:"day",hour:"hour",minute:"minute",second:"second"},copyToClipboard:"Copy text to clipboard",copyFailed:"Copy failed:",debounce:"Debounce function",throttle:"Throttle function",validateEmail:"Validate email format",validateUrl:"Validate URL format",generateRandomString:"Generate random string",deepClone:"Deep clone object",getFileExtension:"Get file extension",isMobileDevice:"Check if mobile device",formatNumber:"Format number with thousand separators",clipboard:{title:"Clipboard utility functions",copyText:"Copy text to clipboard",copySuccess:"Copy successful",copyFailed:"Copy failed, please copy manually"}},components:{pagination:{showing:"Showing",to:"to",of:"of",total:"total",previous:"Previous",next:"Next"},languageSwitcher:{clickOutsideToClose:"Click outside to close dropdown menu"},borderProgressBar:{borderWidth:"Border width",cornerRadius:"Corner radius",createGradient:"Create gradient",drawBackground:"Draw background",calculateProgress:"Calculate progress",drawProgress:"Draw progress"}},misc:{emptyFileError:"Cannot read empty file",fileAddedFromClipboard:"File added from clipboard: ",fileProcessFailed:"File processing failed",chunkSize:"Keep 2MB chunk size for hash calculation",secureContext:"If not in secure context (HTTP), return an alternative hash based on file info",cryptoFallback:"If crypto.subtle.digest fails, use fallback method",generateAlternativeHash:"Function to generate alternative hash",fileInfoHash:"Generate simple hash using filename, size and last modified time",convertToHex:"Convert to hex string and pad to 64 bits",defaultChunkSize:"Default chunk size is 5MB",initChunkUpload:"1. Initialize chunk upload",uploadChunk:"2. Upload chunk",completeUpload:"3. Complete upload",chunkUploadFailed:"Chunk upload failed: ",uploadProgressListener:"Add upload progress listener",noLimitCheck:"If no limit, return true directly",expirationValidation:"Add expiration time validation",chunkUploadReplacement:"Use chunk upload to replace direct upload",textUploadUnchanged:"Text upload remains unchanged",addSendRecord:"Add new send record",permanent:"Permanent",sendSuccessMessage:"Show send success message",resetForm:"Reset form - only reset file and text content, keep expiration info",showDetails:"Show details",autoCopyLink:"Auto copy retrieve code link",delayedLoading:"Use onMounted hook to delay load non-critical resources or initialization",nonCriticalInit:"Place non-immediately needed initialization code here"}},V_=()=>{const e=localStorage.getItem("locale");return e||(navigator.language.toLowerCase().startsWith("zh")?"zh-CN":"en-US")},j_={"zh-CN":H_,"en-US":W_},ef=N_({legacy:!1,locale:V_(),fallbackLocale:"zh-CN",messages:j_,globalInjection:!0}),K_=e=>{ef.global.locale.value=e,localStorage.setItem("locale",e),document.documentElement.lang=e},ho=[{code:"zh-CN",name:"中文"},{code:"en-US",name:"English"}],G_={class:"relative"},q_={class:"text-sm font-medium"},Y_={class:"py-1"},z_=["onClick"],X_=Xt({__name:"LanguageSwitcher",setup(e){const{locale:t}=Hr(),n=Xe("isDarkMode"),r=st(!1),s=_e(()=>t.value),o=_e(()=>ho.find(c=>c.code===s.value)||ho[0]),i=()=>{r.value=!r.value},a=c=>{K_(c),r.value=!1},l=c=>{c.target.closest(".relative")||(r.value=!1)};return Zn(()=>{document.addEventListener("click",l)}),er(()=>{document.removeEventListener("click",l)}),(c,u)=>(Ve(),jt("div",G_,[Be("button",{onClick:i,class:At(["flex items-center space-x-2 px-3 py-2 rounded-lg transition-all duration-200",ve(n)?"bg-gray-800/60 hover:bg-gray-700/80 text-gray-300 hover:text-white":"bg-gray-100 hover:bg-gray-200 text-gray-700 hover:text-gray-900"])},[Pe(ve(Lp),{class:"w-4 h-4"}),Be("span",q_,br(o.value.name),1),Pe(ve(wp),{class:At(["w-4 h-4 transition-transform duration-200",{"rotate-180":r.value}])},null,8,["class"])],2),Pe(Jc,{"enter-active-class":"transition ease-out duration-200","enter-from-class":"opacity-0 scale-95","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition ease-in duration-150","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-95"},{default:wr(()=>[r.value?(Ve(),jt("div",{key:0,class:At(["absolute right-0 mt-2 w-32 rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 z-50",ve(n)?"bg-gray-800 border border-gray-700":"bg-white border border-gray-200"])},[Be("div",Y_,[(Ve(!0),jt(Me,null,Tc(ve(ho),f=>(Ve(),jt("button",{key:f.code,onClick:d=>a(f.code),class:At(["w-full text-left px-4 py-2 text-sm transition-colors duration-150",s.value===f.code?ve(n)?"bg-indigo-600 text-white":"bg-indigo-50 text-indigo-600":ve(n)?"text-gray-300 hover:bg-gray-700 hover:text-white":"text-gray-700 hover:bg-gray-100"])},br(f.name),11,z_))),128))])],2)):Kc("",!0)]),_:1})]))}}),hl={COLOR_MODE:"colorMode",ADMIN_PASSWORD:"adminPassword",TOKEN:"token"},$e={LIGHT:"light",DARK:"dark",SYSTEM:"system"},rE={IDLE:"idle",UPLOADING:"uploading",SUCCESS:"success",ERROR:"error"},tf={ALERT_DURATION:5e3,REQUEST_TIMEOUT:3e8},nf=dh("alert",{state:()=>({alerts:[]}),actions:{showAlert(e,t="info",n=tf.ALERT_DURATION){const r=Date.now(),s=Date.now();this.alerts.push({id:r,message:e,type:t,progress:100,duration:n,startTime:s}),setTimeout(()=>this.removeAlert(r),n)},removeAlert(e){const t=this.alerts.findIndex(n=>n.id===e);t>-1&&this.alerts.splice(t,1)},updateAlertProgress(e){const t=this.alerts.find(n=>n.id===e);if(t){const r=100-(Date.now()-t.startTime)/t.duration*100;t.progress=Math.max(0,r),t.progress<=0&&this.removeAlert(e)}}}}),J_={class:"p-4"},Q_={class:"flex items-start"},Z_={class:"flex-shrink-0"},ey={class:"ml-3 flex-1 pt-0.5"},ty={class:"text-sm font-medium text-white"},ny={class:"ml-4 flex-shrink-0 flex"},ry=["onClick"],sy={class:"sr-only"},oy={class:"h-1 bg-white bg-opacity-25"},iy=Xt({__name:"AlertComponent",setup(e){const{t}=Hr(),n=nf(),{alerts:r}=mh(n),{removeAlert:s,updateAlertProgress:o}=n,i={success:"from-green-500 to-green-600",error:"from-red-500 to-red-600",warning:"from-yellow-500 to-yellow-600",info:"from-blue-500 to-blue-600"},a={success:Cp,error:Np,warning:Tp,info:Pp};let l;return Zn(()=>{l=setInterval(()=>{r.value.forEach(c=>{o(c.id)})},100)}),er(()=>{clearInterval(l)}),(c,u)=>(Ve(),dn(Gm,{name:"alert-fade",tag:"div",class:"fixed top-4 left-4 z-50 w-full sm:max-w-sm md:max-w-md space-y-4 px-4 sm:px-0"},{default:wr(()=>[(Ve(!0),jt(Me,null,Tc(ve(r),f=>(Ve(),jt("div",{key:f.id,class:At(["w-full rounded-lg shadow-xl overflow-hidden","bg-gradient-to-r",i[f.type]])},[Be("div",J_,[Be("div",Q_,[Be("div",Z_,[(Ve(),dn(Sc(a[f.type]),{class:"h-6 w-6 text-white"}))]),Be("div",ey,[Be("p",ty,br(f.message),1)]),Be("div",ny,[Be("button",{onClick:d=>ve(s)(f.id),class:"inline-flex text-white hover:text-gray-200 focus:outline-none transition-colors duration-200"},[Be("span",sy,br(ve(t)("common.close")),1),Pe(ve(Ap),{class:"h-5 w-5"})],8,ry)])])]),Be("div",oy,[Be("div",{class:"h-full bg-white transition-all duration-100 ease-out",style:Cs({width:`${f.progress}%`})},null,4)])],2))),128))]),_:1}))}}),ay=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},ly=ay(iy,[["__scopeId","data-v-59f86e5f"]]);function rf(e,t){return function(){return e.apply(t,arguments)}}const{toString:cy}=Object.prototype,{getPrototypeOf:wi}=Object,{iterator:Bs,toStringTag:sf}=Symbol,Hs=(e=>t=>{const n=cy.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),wt=e=>(e=e.toLowerCase(),t=>Hs(t)===e),Ws=e=>t=>typeof t===e,{isArray:nr}=Array,xr=Ws("undefined");function Wr(e){return e!==null&&!xr(e)&&e.constructor!==null&&!xr(e.constructor)&&ot(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const of=wt("ArrayBuffer");function uy(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&of(e.buffer),t}const fy=Ws("string"),ot=Ws("function"),af=Ws("number"),Vr=e=>e!==null&&typeof e=="object",dy=e=>e===!0||e===!1,rs=e=>{if(Hs(e)!=="object")return!1;const t=wi(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(sf in e)&&!(Bs in e)},my=e=>{if(!Vr(e)||Wr(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},hy=wt("Date"),py=wt("File"),gy=wt("Blob"),_y=wt("FileList"),yy=e=>Vr(e)&&ot(e.pipe),by=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||ot(e.append)&&((t=Hs(e))==="formdata"||t==="object"&&ot(e.toString)&&e.toString()==="[object FormData]"))},Ey=wt("URLSearchParams"),[vy,Sy,wy,Ty]=["ReadableStream","Request","Response","Headers"].map(wt),Cy=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function jr(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),nr(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const On=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,cf=e=>!xr(e)&&e!==On;function Wo(){const{caseless:e}=cf(this)&&this||{},t={},n=(r,s)=>{const o=e&&lf(t,s)||s;rs(t[o])&&rs(r)?t[o]=Wo(t[o],r):rs(r)?t[o]=Wo({},r):nr(r)?t[o]=r.slice():t[o]=r};for(let r=0,s=arguments.length;r(jr(t,(s,o)=>{n&&ot(s)?e[o]=rf(s,n):e[o]=s},{allOwnKeys:r}),e),Py=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Ry=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},Oy=(e,t,n,r)=>{let s,o,i;const a={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!a[i]&&(t[i]=e[i],a[i]=!0);e=n!==!1&&wi(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Ny=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},Ay=e=>{if(!e)return null;if(nr(e))return e;let t=e.length;if(!af(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},Iy=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&wi(Uint8Array)),ky=(e,t)=>{const r=(e&&e[Bs]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},xy=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Fy=wt("HTMLFormElement"),My=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),pl=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Dy=wt("RegExp"),uf=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};jr(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},Uy=e=>{uf(e,(t,n)=>{if(ot(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(ot(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},$y=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return nr(e)?r(e):r(String(e).split(t)),n},By=()=>{},Hy=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Wy(e){return!!(e&&ot(e.append)&&e[sf]==="FormData"&&e[Bs])}const Vy=e=>{const t=new Array(10),n=(r,s)=>{if(Vr(r)){if(t.indexOf(r)>=0)return;if(Wr(r))return r;if(!("toJSON"in r)){t[s]=r;const o=nr(r)?[]:{};return jr(r,(i,a)=>{const l=n(i,s+1);!xr(l)&&(o[a]=l)}),t[s]=void 0,o}}return r};return n(e,0)},jy=wt("AsyncFunction"),Ky=e=>e&&(Vr(e)||ot(e))&&ot(e.then)&&ot(e.catch),ff=((e,t)=>e?setImmediate:t?((n,r)=>(On.addEventListener("message",({source:s,data:o})=>{s===On&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),On.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",ot(On.postMessage)),Gy=typeof queueMicrotask<"u"?queueMicrotask.bind(On):typeof process<"u"&&process.nextTick||ff,qy=e=>e!=null&&ot(e[Bs]),A={isArray:nr,isArrayBuffer:of,isBuffer:Wr,isFormData:by,isArrayBufferView:uy,isString:fy,isNumber:af,isBoolean:dy,isObject:Vr,isPlainObject:rs,isEmptyObject:my,isReadableStream:vy,isRequest:Sy,isResponse:wy,isHeaders:Ty,isUndefined:xr,isDate:hy,isFile:py,isBlob:gy,isRegExp:Dy,isFunction:ot,isStream:yy,isURLSearchParams:Ey,isTypedArray:Iy,isFileList:_y,forEach:jr,merge:Wo,extend:Ly,trim:Cy,stripBOM:Py,inherits:Ry,toFlatObject:Oy,kindOf:Hs,kindOfTest:wt,endsWith:Ny,toArray:Ay,forEachEntry:ky,matchAll:xy,isHTMLForm:Fy,hasOwnProperty:pl,hasOwnProp:pl,reduceDescriptors:uf,freezeMethods:Uy,toObjectSet:$y,toCamelCase:My,noop:By,toFiniteNumber:Hy,findKey:lf,global:On,isContextDefined:cf,isSpecCompliantForm:Wy,toJSONObject:Vy,isAsyncFn:jy,isThenable:Ky,setImmediate:ff,asap:Gy,isIterable:qy};function se(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}A.inherits(se,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:A.toJSONObject(this.config),code:this.code,status:this.status}}});const df=se.prototype,mf={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{mf[e]={value:e}});Object.defineProperties(se,mf);Object.defineProperty(df,"isAxiosError",{value:!0});se.from=(e,t,n,r,s,o)=>{const i=Object.create(df);return A.toFlatObject(e,i,function(l){return l!==Error.prototype},a=>a!=="isAxiosError"),se.call(i,e.message,t,n,r,s),i.cause=e,i.name=e.name,o&&Object.assign(i,o),i};const Yy=null;function Vo(e){return A.isPlainObject(e)||A.isArray(e)}function hf(e){return A.endsWith(e,"[]")?e.slice(0,-2):e}function gl(e,t,n){return e?e.concat(t).map(function(s,o){return s=hf(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function zy(e){return A.isArray(e)&&!e.some(Vo)}const Xy=A.toFlatObject(A,{},null,function(t){return/^is[A-Z]/.test(t)});function Vs(e,t,n){if(!A.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=A.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(S,w){return!A.isUndefined(w[S])});const r=n.metaTokens,s=n.visitor||u,o=n.dots,i=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&A.isSpecCompliantForm(t);if(!A.isFunction(s))throw new TypeError("visitor must be a function");function c(E){if(E===null)return"";if(A.isDate(E))return E.toISOString();if(A.isBoolean(E))return E.toString();if(!l&&A.isBlob(E))throw new se("Blob is not supported. Use a Buffer instead.");return A.isArrayBuffer(E)||A.isTypedArray(E)?l&&typeof Blob=="function"?new Blob([E]):Buffer.from(E):E}function u(E,S,w){let O=E;if(E&&!w&&typeof E=="object"){if(A.endsWith(S,"{}"))S=r?S:S.slice(0,-2),E=JSON.stringify(E);else if(A.isArray(E)&&zy(E)||(A.isFileList(E)||A.endsWith(S,"[]"))&&(O=A.toArray(E)))return S=hf(S),O.forEach(function(b,v){!(A.isUndefined(b)||b===null)&&t.append(i===!0?gl([S],v,o):i===null?S:S+"[]",c(b))}),!1}return Vo(E)?!0:(t.append(gl(w,S,o),c(E)),!1)}const f=[],d=Object.assign(Xy,{defaultVisitor:u,convertValue:c,isVisitable:Vo});function p(E,S){if(!A.isUndefined(E)){if(f.indexOf(E)!==-1)throw Error("Circular reference detected in "+S.join("."));f.push(E),A.forEach(E,function(O,k){(!(A.isUndefined(O)||O===null)&&s.call(t,O,A.isString(k)?k.trim():k,S,d))===!0&&p(O,S?S.concat(k):[k])}),f.pop()}}if(!A.isObject(e))throw new TypeError("data must be an object");return p(e),t}function _l(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ti(e,t){this._pairs=[],e&&Vs(e,this,t)}const pf=Ti.prototype;pf.append=function(t,n){this._pairs.push([t,n])};pf.toString=function(t){const n=t?function(r){return t.call(this,r,_l)}:_l;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Jy(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function gf(e,t,n){if(!t)return e;const r=n&&n.encode||Jy;A.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=A.isURLSearchParams(t)?t.toString():new Ti(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class yl{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){A.forEach(this.handlers,function(r){r!==null&&t(r)})}}const _f={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Qy=typeof URLSearchParams<"u"?URLSearchParams:Ti,Zy=typeof FormData<"u"?FormData:null,eb=typeof Blob<"u"?Blob:null,tb={isBrowser:!0,classes:{URLSearchParams:Qy,FormData:Zy,Blob:eb},protocols:["http","https","file","blob","url","data"]},Ci=typeof window<"u"&&typeof document<"u",jo=typeof navigator=="object"&&navigator||void 0,nb=Ci&&(!jo||["ReactNative","NativeScript","NS"].indexOf(jo.product)<0),rb=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",sb=Ci&&window.location.href||"http://localhost",ob=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ci,hasStandardBrowserEnv:nb,hasStandardBrowserWebWorkerEnv:rb,navigator:jo,origin:sb},Symbol.toStringTag,{value:"Module"})),ze={...ob,...tb};function ib(e,t){return Vs(e,new ze.classes.URLSearchParams,{visitor:function(n,r,s,o){return ze.isNode&&A.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function ab(e){return A.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function lb(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&A.isArray(s)?s.length:i,l?(A.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!a):((!s[i]||!A.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&A.isArray(s[i])&&(s[i]=lb(s[i])),!a)}if(A.isFormData(e)&&A.isFunction(e.entries)){const n={};return A.forEachEntry(e,(r,s)=>{t(ab(r),s,n,0)}),n}return null}function cb(e,t,n){if(A.isString(e))try{return(t||JSON.parse)(e),A.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Kr={transitional:_f,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=A.isObject(t);if(o&&A.isHTMLForm(t)&&(t=new FormData(t)),A.isFormData(t))return s?JSON.stringify(yf(t)):t;if(A.isArrayBuffer(t)||A.isBuffer(t)||A.isStream(t)||A.isFile(t)||A.isBlob(t)||A.isReadableStream(t))return t;if(A.isArrayBufferView(t))return t.buffer;if(A.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return ib(t,this.formSerializer).toString();if((a=A.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Vs(a?{"files[]":t}:t,l&&new l,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),cb(t)):t}],transformResponse:[function(t){const n=this.transitional||Kr.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(A.isResponse(t)||A.isReadableStream(t))return t;if(t&&A.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t)}catch(a){if(i)throw a.name==="SyntaxError"?se.from(a,se.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ze.classes.FormData,Blob:ze.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};A.forEach(["delete","get","head","post","put","patch"],e=>{Kr.headers[e]={}});const ub=A.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),fb=e=>{const t={};let n,r,s;return e&&e.split(` + */const h_="9.14.5";function p_(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Vt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Vt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Vt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Vt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Vt().__INTLIFY_PROD_DEVTOOLS__=!1)}const g_=qg.__EXTEND_POINT__,Ut=Ds(g_);Ut(),Ut(),Ut(),Ut(),Ut(),Ut(),Ut(),Ut(),Ut();const qu=yt.__EXTEND_POINT__,rt=Ds(qu),ke={UNEXPECTED_RETURN_TYPE:qu,INVALID_ARGUMENT:rt(),MUST_BE_CALL_SETUP_TOP:rt(),NOT_INSTALLED:rt(),NOT_AVAILABLE_IN_LEGACY_MODE:rt(),REQUIRED_VALUE:rt(),INVALID_VALUE:rt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:rt(),NOT_INSTALLED_WITH_PROVIDE:rt(),UNEXPECTED_ERROR:rt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:rt(),BRIDGE_SUPPORT_VUE_2_ONLY:rt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:rt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:rt(),__EXTEND_POINT__:rt()};function De(e,...t){return tr(e,null,void 0)}const Do=_n("__translateVNode"),Uo=_n("__datetimeParts"),$o=_n("__numberParts"),Yu=_n("__setPluralRules"),zu=_n("__injectWithOption"),Bo=_n("__dispose");function kr(e){if(!fe(e)||xt(e))return e;for(const t in e)if(_t(e,t))if(!t.includes("."))fe(e[t])&&kr(e[t]);else{const n=t.split("."),r=n.length-1;let s=e,o=!1;for(let i=0;i{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(i[l]=i[l]||he(),ns(c,i[l])):ns(c,i)}else G(a)&&ns(JSON.parse(a),i)}),s==null&&o)for(const a in i)_t(i,a)&&kr(i[a]);return i}function Xu(e){return e.type}function Ju(e,t,n){let r=fe(t.messages)?t.messages:he();"__i18nGlobal"in n&&(r=$s(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const s=Object.keys(r);s.length&&s.forEach(o=>{e.mergeLocaleMessage(o,r[o])});{if(fe(t.datetimeFormats)){const o=Object.keys(t.datetimeFormats);o.length&&o.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(fe(t.numberFormats)){const o=Object.keys(t.numberFormats);o.length&&o.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function nl(e){return Pe($r,null,e,0)}const rl="__INTLIFY_META__",sl=()=>[],__=()=>!1;let ol=0;function il(e){return((t,n,r,s)=>e(n,r,zt()||void 0,s))}const y_=()=>{const e=zt();let t=null;return e&&(t=Xu(e)[rl])?{[rl]:t}:null};function vi(e={},t){const{__root:n,__injectWithOption:r}=e,s=n===void 0,o=e.flatJson,i=_s?st:li,a=!!e.translateExistCompatible;let l=ie(e.inheritLocale)?e.inheritLocale:!0;const c=i(n&&l?n.locale.value:G(e.locale)?e.locale:Jn),u=i(n&&l?n.fallbackLocale.value:G(e.fallbackLocale)||Se(e.fallbackLocale)||re(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),f=i($s(c.value,e)),d=i(re(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),p=i(re(e.numberFormats)?e.numberFormats:{[c.value]:{}});let E=n?n.missingWarn:ie(e.missingWarn)||pn(e.missingWarn)?e.missingWarn:!0,S=n?n.fallbackWarn:ie(e.fallbackWarn)||pn(e.fallbackWarn)?e.fallbackWarn:!0,w=n?n.fallbackRoot:ie(e.fallbackRoot)?e.fallbackRoot:!0,O=!!e.fallbackFormat,k=Ee(e.missing)?e.missing:null,b=Ee(e.missing)?il(e.missing):null,v=Ee(e.postTranslation)?e.postTranslation:null,L=n?n.warnHtmlMessage:ie(e.warnHtmlMessage)?e.warnHtmlMessage:!0,N=!!e.escapeParameter;const M=n?n.modifiers:re(e.modifiers)?e.modifiers:{};let $=e.pluralRules||n&&n.pluralRules,R;R=(()=>{s&&qa(null);const T={version:h_,locale:c.value,fallbackLocale:u.value,messages:f.value,modifiers:M,pluralRules:$,missing:b===null?void 0:b,missingWarn:E,fallbackWarn:S,fallbackFormat:O,unresolving:!0,postTranslation:v===null?void 0:v,warnHtmlMessage:L,escapeParameter:N,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=d.value,T.numberFormats=p.value,T.__datetimeFormatters=re(R)?R.__datetimeFormatters:void 0,T.__numberFormatters=re(R)?R.__numberFormatters:void 0;const x=s_(T);return s&&qa(x),x})(),ar(R,c.value,u.value);function ee(){return[c.value,u.value,f.value,d.value,p.value]}const B=_e({get:()=>c.value,set:T=>{c.value=T,R.locale=c.value}}),Q=_e({get:()=>u.value,set:T=>{u.value=T,R.fallbackLocale=u.value,ar(R,c.value,T)}}),ye=_e(()=>f.value),Oe=_e(()=>d.value),oe=_e(()=>p.value);function te(){return Ee(v)?v:null}function ae(T){v=T,R.postTranslation=T}function Je(){return k}function nt(T){T!==null&&(b=il(T)),k=T,R.missing=b}const Ce=(T,x,X,le,Te,Qe)=>{ee();let Ue;try{__INTLIFY_PROD_DEVTOOLS__,s||(R.fallbackContext=n?r_():void 0),Ue=T(R)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(R.fallbackContext=void 0)}if(X!=="translate exists"&&Ne(Ue)&&Ue===Us||X==="translate exists"&&!Ue){const[En,qs]=x();return n&&w?le(n):Te(En)}else{if(Qe(Ue))return Ue;throw De(ke.UNEXPECTED_RETURN_TYPE)}};function Le(...T){return Ce(x=>Reflect.apply(Ja,null,[x,...T]),()=>xo(...T),"translate",x=>Reflect.apply(x.t,x,[...T]),x=>x,x=>G(x))}function ft(...T){const[x,X,le]=T;if(le&&!fe(le))throw De(ke.INVALID_ARGUMENT);return Le(x,X,je({resolvedMessage:!0},le||{}))}function at(...T){return Ce(x=>Reflect.apply(Qa,null,[x,...T]),()=>Fo(...T),"datetime format",x=>Reflect.apply(x.d,x,[...T]),()=>ja,x=>G(x))}function Tt(...T){return Ce(x=>Reflect.apply(el,null,[x,...T]),()=>Mo(...T),"number format",x=>Reflect.apply(x.n,x,[...T]),()=>ja,x=>G(x))}function Fe(T){return T.map(x=>G(x)||Ne(x)||ie(x)?nl(String(x)):x)}const q={normalize:Fe,interpolate:T=>T,type:"vnode"};function j(...T){return Ce(x=>{let X;const le=x;try{le.processor=q,X=Reflect.apply(Ja,null,[le,...T])}finally{le.processor=null}return X},()=>xo(...T),"translate",x=>x[Do](...T),x=>[nl(x)],x=>Se(x))}function z(...T){return Ce(x=>Reflect.apply(el,null,[x,...T]),()=>Mo(...T),"number format",x=>x[$o](...T),sl,x=>G(x)||Se(x))}function ue(...T){return Ce(x=>Reflect.apply(Qa,null,[x,...T]),()=>Fo(...T),"datetime format",x=>x[Uo](...T),sl,x=>G(x)||Se(x))}function g(T){$=T,R.pluralRules=$}function y(T,x){return Ce(()=>{if(!T)return!1;const X=G(x)?x:c.value,le=U(X),Te=R.messageResolver(le,T);return a?Te!=null:xt(Te)||mt(Te)||G(Te)},()=>[T],"translate exists",X=>Reflect.apply(X.te,X,[T,x]),__,X=>ie(X))}function _(T){let x=null;const X=Fu(R,u.value,c.value);for(let le=0;le{l&&(c.value=T,R.locale=T,ar(R,c.value,u.value))}),un(n.fallbackLocale,T=>{l&&(u.value=T,R.fallbackLocale=T,ar(R,c.value,u.value))}));const H={id:ol,locale:B,fallbackLocale:Q,get inheritLocale(){return l},set inheritLocale(T){l=T,T&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,ar(R,c.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:ye,get modifiers(){return M},get pluralRules(){return $||{}},get isGlobal(){return s},get missingWarn(){return E},set missingWarn(T){E=T,R.missingWarn=E},get fallbackWarn(){return S},set fallbackWarn(T){S=T,R.fallbackWarn=S},get fallbackRoot(){return w},set fallbackRoot(T){w=T},get fallbackFormat(){return O},set fallbackFormat(T){O=T,R.fallbackFormat=O},get warnHtmlMessage(){return L},set warnHtmlMessage(T){L=T,R.warnHtmlMessage=T},get escapeParameter(){return N},set escapeParameter(T){N=T,R.escapeParameter=T},t:Le,getLocaleMessage:U,setLocaleMessage:F,mergeLocaleMessage:V,getPostTranslationHandler:te,setPostTranslationHandler:ae,getMissingHandler:Je,setMissingHandler:nt,[Yu]:g};return H.datetimeFormats=Oe,H.numberFormats=oe,H.rt=ft,H.te=y,H.tm=P,H.d=at,H.n=Tt,H.getDateTimeFormat=W,H.setDateTimeFormat=m,H.mergeDateTimeFormat=h,H.getNumberFormat=C,H.setNumberFormat=I,H.mergeNumberFormat=K,H[zu]=r,H[Do]=j,H[Uo]=ue,H[$o]=z,H}function b_(e){const t=G(e.locale)?e.locale:Jn,n=G(e.fallbackLocale)||Se(e.fallbackLocale)||re(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,r=Ee(e.missing)?e.missing:void 0,s=ie(e.silentTranslationWarn)||pn(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,o=ie(e.silentFallbackWarn)||pn(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,i=ie(e.fallbackRoot)?e.fallbackRoot:!0,a=!!e.formatFallbackMessages,l=re(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=Ee(e.postTranslation)?e.postTranslation:void 0,f=G(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,d=!!e.escapeParameterHtml,p=ie(e.sync)?e.sync:!0;let E=e.messages;if(re(e.sharedMessages)){const N=e.sharedMessages;E=Object.keys(N).reduce(($,R)=>{const Y=$[R]||($[R]={});return je(Y,N[R]),$},E||{})}const{__i18n:S,__root:w,__injectWithOption:O}=e,k=e.datetimeFormats,b=e.numberFormats,v=e.flatJson,L=e.translateExistCompatible;return{locale:t,fallbackLocale:n,messages:E,flatJson:v,datetimeFormats:k,numberFormats:b,missing:r,missingWarn:s,fallbackWarn:o,fallbackRoot:i,fallbackFormat:a,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:d,messageResolver:e.messageResolver,inheritLocale:p,translateExistCompatible:L,__i18n:S,__root:w,__injectWithOption:O}}function Ho(e={},t){{const n=vi(b_(e)),{__extender:r}=e,s={id:n.id,get locale(){return n.locale.value},set locale(o){n.locale.value=o},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(o){n.fallbackLocale.value=o},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(o){},get missing(){return n.getMissingHandler()},set missing(o){n.setMissingHandler(o)},get silentTranslationWarn(){return ie(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(o){n.missingWarn=ie(o)?!o:o},get silentFallbackWarn(){return ie(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(o){n.fallbackWarn=ie(o)?!o:o},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(o){n.fallbackFormat=o},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(o){n.setPostTranslationHandler(o)},get sync(){return n.inheritLocale},set sync(o){n.inheritLocale=o},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(o){n.warnHtmlMessage=o!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(o){n.escapeParameter=o},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(o){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...o){const[i,a,l]=o,c={};let u=null,f=null;if(!G(i))throw De(ke.INVALID_ARGUMENT);const d=i;return G(a)?c.locale=a:Se(a)?u=a:re(a)&&(f=a),Se(l)?u=l:re(l)&&(f=l),Reflect.apply(n.t,n,[d,u||f||{},c])},rt(...o){return Reflect.apply(n.rt,n,[...o])},tc(...o){const[i,a,l]=o,c={plural:1};let u=null,f=null;if(!G(i))throw De(ke.INVALID_ARGUMENT);const d=i;return G(a)?c.locale=a:Ne(a)?c.plural=a:Se(a)?u=a:re(a)&&(f=a),G(l)?c.locale=l:Se(l)?u=l:re(l)&&(f=l),Reflect.apply(n.t,n,[d,u||f||{},c])},te(o,i){return n.te(o,i)},tm(o){return n.tm(o)},getLocaleMessage(o){return n.getLocaleMessage(o)},setLocaleMessage(o,i){n.setLocaleMessage(o,i)},mergeLocaleMessage(o,i){n.mergeLocaleMessage(o,i)},d(...o){return Reflect.apply(n.d,n,[...o])},getDateTimeFormat(o){return n.getDateTimeFormat(o)},setDateTimeFormat(o,i){n.setDateTimeFormat(o,i)},mergeDateTimeFormat(o,i){n.mergeDateTimeFormat(o,i)},n(...o){return Reflect.apply(n.n,n,[...o])},getNumberFormat(o){return n.getNumberFormat(o)},setNumberFormat(o,i){n.setNumberFormat(o,i)},mergeNumberFormat(o,i){n.mergeNumberFormat(o,i)},getChoiceIndex(o,i){return-1}};return s.__extender=r,s}}const Si={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function E_({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((r,s)=>[...r,...s.type===Me?s.children:[s]],[]):t.reduce((n,r)=>{const s=e[r];return s&&(n[r]=s()),n},he())}function Qu(e){return Me}const v_=Xt({name:"i18n-t",props:je({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ne(e)||!isNaN(e)}},Si),setup(e,t){const{slots:n,attrs:r}=t,s=e.i18n||Hr({useScope:e.scope,__useComponent:!0});return()=>{const o=Object.keys(n).filter(f=>f!=="_"),i=he();e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=G(e.plural)?+e.plural:e.plural);const a=E_(t,o),l=s[Do](e.keypath,a,i),c=je(he(),r),u=G(e.tag)||fe(e.tag)?e.tag:Qu();return hn(u,c,l)}}}),al=v_;function S_(e){return Se(e)&&!G(e[0])}function Zu(e,t,n,r){const{slots:s,attrs:o}=t;return()=>{const i={part:!0};let a=he();e.locale&&(i.locale=e.locale),G(e.format)?i.key=e.format:fe(e.format)&&(G(e.format.key)&&(i.key=e.format.key),a=Object.keys(e.format).reduce((d,p)=>n.includes(p)?je(he(),d,{[p]:e.format[p]}):d,he()));const l=r(e.value,i,a);let c=[i.key];Se(l)?c=l.map((d,p)=>{const E=s[d.type],S=E?E({[d.type]:d.value,index:p,parts:l}):[d.value];return S_(S)&&(S[0].key=`${d.type}-${p}`),S}):G(l)&&(c=[l]);const u=je(he(),o),f=G(e.tag)||fe(e.tag)?e.tag:Qu();return hn(f,u,c)}}const w_=Xt({name:"i18n-n",props:je({value:{type:Number,required:!0},format:{type:[String,Object]}},Si),setup(e,t){const n=e.i18n||Hr({useScope:e.scope,__useComponent:!0});return Zu(e,t,Gu,(...r)=>n[$o](...r))}}),ll=w_,T_=Xt({name:"i18n-d",props:je({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Si),setup(e,t){const n=e.i18n||Hr({useScope:e.scope,__useComponent:!0});return Zu(e,t,Ku,(...r)=>n[Uo](...r))}}),cl=T_;function C_(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return r!=null?r.__composer:e.global.__composer}}function L_(e){const t=i=>{const{instance:a,modifiers:l,value:c}=i;if(!a||!a.$)throw De(ke.UNEXPECTED_ERROR);const u=C_(e,a.$),f=ul(c);return[Reflect.apply(u.t,u,[...fl(f)]),u]};return{created:(i,a)=>{const[l,c]=t(a);_s&&e.global===c&&(i.__i18nWatcher=un(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),i.__composer=c,i.textContent=l},unmounted:i=>{_s&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:a})=>{if(i.__composer){const l=i.__composer,c=ul(a);i.textContent=Reflect.apply(l.t,l,[...fl(c)])}},getSSRProps:i=>{const[a]=t(i);return{textContent:a}}}}function ul(e){if(G(e))return{path:e};if(re(e)){if(!("path"in e))throw De(ke.REQUIRED_VALUE,"path");return e}else throw De(ke.INVALID_VALUE)}function fl(e){const{path:t,locale:n,args:r,choice:s,plural:o}=e,i={},a=r||{};return G(n)&&(i.locale=n),Ne(s)&&(i.plural=s),Ne(o)&&(i.plural=o),[t,a,i]}function P_(e,t,...n){const r=re(n[0])?n[0]:{},s=!!r.useI18nComponentName;(ie(r.globalInstall)?r.globalInstall:!0)&&([s?"i18n":al.name,"I18nT"].forEach(i=>e.component(i,al)),[ll.name,"I18nN"].forEach(i=>e.component(i,ll)),[cl.name,"I18nD"].forEach(i=>e.component(i,cl))),e.directive("t",L_(t))}function R_(e,t,n){return{beforeCreate(){const r=zt();if(!r)throw De(ke.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const o=s.i18n;if(s.__i18n&&(o.__i18n=s.__i18n),o.__root=t,this===this.$root)this.$i18n=dl(e,o);else{o.__injectWithOption=!0,o.__extender=n.__vueI18nExtend,this.$i18n=Ho(o);const i=this.$i18n;i.__extender&&(i.__disposer=i.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=dl(e,s);else{this.$i18n=Ho({__i18n:s.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const o=this.$i18n;o.__extender&&(o.__disposer=o.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&Ju(t,s,s),this.$t=(...o)=>this.$i18n.t(...o),this.$rt=(...o)=>this.$i18n.rt(...o),this.$tc=(...o)=>this.$i18n.tc(...o),this.$te=(o,i)=>this.$i18n.te(o,i),this.$d=(...o)=>this.$i18n.d(...o),this.$n=(...o)=>this.$i18n.n(...o),this.$tm=o=>this.$i18n.tm(o),n.__setInstance(r,this.$i18n)},mounted(){},unmounted(){const r=zt();if(!r)throw De(ke.UNEXPECTED_ERROR);const s=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),n.__deleteInstance(r),delete this.$i18n}}}function dl(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Yu](t.pluralizationRules||e.pluralizationRules);const n=$s(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(r=>e.mergeLocaleMessage(r,n[r])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(r=>e.mergeDateTimeFormat(r,t.datetimeFormats[r])),t.numberFormats&&Object.keys(t.numberFormats).forEach(r=>e.mergeNumberFormat(r,t.numberFormats[r])),e}const O_=_n("global-vue-i18n");function N_(e={},t){const n=__VUE_I18N_LEGACY_API__&&ie(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,r=ie(e.globalInjection)?e.globalInjection:!0,s=__VUE_I18N_LEGACY_API__&&n?!!e.allowComposition:!0,o=new Map,[i,a]=A_(e,n),l=_n("");function c(d){return o.get(d)||null}function u(d,p){o.set(d,p)}function f(d){o.delete(d)}{const d={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return s},async install(p,...E){if(p.__VUE_I18N_SYMBOL__=l,p.provide(p.__VUE_I18N_SYMBOL__,d),re(E[0])){const O=E[0];d.__composerExtend=O.__composerExtend,d.__vueI18nExtend=O.__vueI18nExtend}let S=null;!n&&r&&(S=B_(p,d.global)),__VUE_I18N_FULL_INSTALL__&&P_(p,d,...E),__VUE_I18N_LEGACY_API__&&n&&p.mixin(R_(a,a.__composer,d));const w=p.unmount;p.unmount=()=>{S&&S(),d.dispose(),w()}},get global(){return a},dispose(){i.stop()},__instances:o,__getInstance:c,__setInstance:u,__deleteInstance:f};return d}}function Hr(e={}){const t=zt();if(t==null)throw De(ke.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw De(ke.NOT_INSTALLED);const n=I_(t),r=x_(n),s=Xu(t),o=k_(e,s);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!e.__useComponent){if(!n.allowComposition)throw De(ke.NOT_AVAILABLE_IN_LEGACY_MODE);return U_(t,o,r,e)}if(o==="global")return Ju(r,e,s),r;if(o==="parent"){let l=F_(n,t,e.__useComponent);return l==null&&(l=r),l}const i=n;let a=i.__getInstance(t);if(a==null){const l=je({},e);"__i18n"in s&&(l.__i18n=s.__i18n),r&&(l.__root=r),a=vi(l),i.__composerExtend&&(a[Bo]=i.__composerExtend(a)),D_(i,t,a),i.__setInstance(t,a)}return a}function A_(e,t,n){const r=Zo();{const s=__VUE_I18N_LEGACY_API__&&t?r.run(()=>Ho(e)):r.run(()=>vi(e));if(s==null)throw De(ke.UNEXPECTED_ERROR);return[r,s]}}function I_(e){{const t=Xe(e.isCE?O_:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw De(e.isCE?ke.NOT_INSTALLED_WITH_PROVIDE:ke.UNEXPECTED_ERROR);return t}}function k_(e,t){return Ms(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function x_(e){return e.mode==="composition"?e.global:e.global.__composer}function F_(e,t,n=!1){let r=null;const s=t.root;let o=M_(t,n);for(;o!=null;){const i=e;if(e.mode==="composition")r=i.__getInstance(o);else if(__VUE_I18N_LEGACY_API__){const a=i.__getInstance(o);a!=null&&(r=a.__composer,n&&r&&!r[zu]&&(r=null))}if(r!=null||s===o)break;o=o.parent}return r}function M_(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function D_(e,t,n){Zn(()=>{},t),er(()=>{const r=n;e.__deleteInstance(t);const s=r[Bo];s&&(s(),delete r[Bo])},t)}function U_(e,t,n,r={}){const s=t==="local",o=li(null);if(s&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw De(ke.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=ie(r.inheritLocale)?r.inheritLocale:!G(r.locale),a=st(!s||i?n.locale.value:G(r.locale)?r.locale:Jn),l=st(!s||i?n.fallbackLocale.value:G(r.fallbackLocale)||Se(r.fallbackLocale)||re(r.fallbackLocale)||r.fallbackLocale===!1?r.fallbackLocale:a.value),c=st($s(a.value,r)),u=st(re(r.datetimeFormats)?r.datetimeFormats:{[a.value]:{}}),f=st(re(r.numberFormats)?r.numberFormats:{[a.value]:{}}),d=s?n.missingWarn:ie(r.missingWarn)||pn(r.missingWarn)?r.missingWarn:!0,p=s?n.fallbackWarn:ie(r.fallbackWarn)||pn(r.fallbackWarn)?r.fallbackWarn:!0,E=s?n.fallbackRoot:ie(r.fallbackRoot)?r.fallbackRoot:!0,S=!!r.fallbackFormat,w=Ee(r.missing)?r.missing:null,O=Ee(r.postTranslation)?r.postTranslation:null,k=s?n.warnHtmlMessage:ie(r.warnHtmlMessage)?r.warnHtmlMessage:!0,b=!!r.escapeParameter,v=s?n.modifiers:re(r.modifiers)?r.modifiers:{},L=r.pluralRules||s&&n.pluralRules;function N(){return[a.value,l.value,c.value,u.value,f.value]}const M=_e({get:()=>o.value?o.value.locale.value:a.value,set:_=>{o.value&&(o.value.locale.value=_),a.value=_}}),$=_e({get:()=>o.value?o.value.fallbackLocale.value:l.value,set:_=>{o.value&&(o.value.fallbackLocale.value=_),l.value=_}}),R=_e(()=>o.value?o.value.messages.value:c.value),Y=_e(()=>u.value),ee=_e(()=>f.value);function B(){return o.value?o.value.getPostTranslationHandler():O}function Q(_){o.value&&o.value.setPostTranslationHandler(_)}function ye(){return o.value?o.value.getMissingHandler():w}function Oe(_){o.value&&o.value.setMissingHandler(_)}function oe(_){return N(),_()}function te(..._){return o.value?oe(()=>Reflect.apply(o.value.t,null,[..._])):oe(()=>"")}function ae(..._){return o.value?Reflect.apply(o.value.rt,null,[..._]):""}function Je(..._){return o.value?oe(()=>Reflect.apply(o.value.d,null,[..._])):oe(()=>"")}function nt(..._){return o.value?oe(()=>Reflect.apply(o.value.n,null,[..._])):oe(()=>"")}function Ce(_){return o.value?o.value.tm(_):{}}function Le(_,P){return o.value?o.value.te(_,P):!1}function ft(_){return o.value?o.value.getLocaleMessage(_):{}}function at(_,P){o.value&&(o.value.setLocaleMessage(_,P),c.value[_]=P)}function Tt(_,P){o.value&&o.value.mergeLocaleMessage(_,P)}function Fe(_){return o.value?o.value.getDateTimeFormat(_):{}}function D(_,P){o.value&&(o.value.setDateTimeFormat(_,P),u.value[_]=P)}function q(_,P){o.value&&o.value.mergeDateTimeFormat(_,P)}function j(_){return o.value?o.value.getNumberFormat(_):{}}function z(_,P){o.value&&(o.value.setNumberFormat(_,P),f.value[_]=P)}function ue(_,P){o.value&&o.value.mergeNumberFormat(_,P)}const g={get id(){return o.value?o.value.id:-1},locale:M,fallbackLocale:$,messages:R,datetimeFormats:Y,numberFormats:ee,get inheritLocale(){return o.value?o.value.inheritLocale:i},set inheritLocale(_){o.value&&(o.value.inheritLocale=_)},get availableLocales(){return o.value?o.value.availableLocales:Object.keys(c.value)},get modifiers(){return o.value?o.value.modifiers:v},get pluralRules(){return o.value?o.value.pluralRules:L},get isGlobal(){return o.value?o.value.isGlobal:!1},get missingWarn(){return o.value?o.value.missingWarn:d},set missingWarn(_){o.value&&(o.value.missingWarn=_)},get fallbackWarn(){return o.value?o.value.fallbackWarn:p},set fallbackWarn(_){o.value&&(o.value.missingWarn=_)},get fallbackRoot(){return o.value?o.value.fallbackRoot:E},set fallbackRoot(_){o.value&&(o.value.fallbackRoot=_)},get fallbackFormat(){return o.value?o.value.fallbackFormat:S},set fallbackFormat(_){o.value&&(o.value.fallbackFormat=_)},get warnHtmlMessage(){return o.value?o.value.warnHtmlMessage:k},set warnHtmlMessage(_){o.value&&(o.value.warnHtmlMessage=_)},get escapeParameter(){return o.value?o.value.escapeParameter:b},set escapeParameter(_){o.value&&(o.value.escapeParameter=_)},t:te,getPostTranslationHandler:B,setPostTranslationHandler:Q,getMissingHandler:ye,setMissingHandler:Oe,rt:ae,d:Je,n:nt,tm:Ce,te:Le,getLocaleMessage:ft,setLocaleMessage:at,mergeLocaleMessage:Tt,getDateTimeFormat:Fe,setDateTimeFormat:D,mergeDateTimeFormat:q,getNumberFormat:j,setNumberFormat:z,mergeNumberFormat:ue};function y(_){_.locale.value=a.value,_.fallbackLocale.value=l.value,Object.keys(c.value).forEach(P=>{_.mergeLocaleMessage(P,c.value[P])}),Object.keys(u.value).forEach(P=>{_.mergeDateTimeFormat(P,u.value[P])}),Object.keys(f.value).forEach(P=>{_.mergeNumberFormat(P,f.value[P])}),_.escapeParameter=b,_.fallbackFormat=S,_.fallbackRoot=E,_.fallbackWarn=p,_.missingWarn=d,_.warnHtmlMessage=k}return _c(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw De(ke.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const _=o.value=e.proxy.$i18n.__composer;t==="global"?(a.value=_.locale.value,l.value=_.fallbackLocale.value,c.value=_.messages.value,u.value=_.datetimeFormats.value,f.value=_.numberFormats.value):s&&y(_)}),g}const $_=["locale","fallbackLocale","availableLocales"],ml=["t","rt","d","n","tm","te"];function B_(e,t){const n=Object.create(null);return $_.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o)throw De(ke.UNEXPECTED_ERROR);const i=we(o.value)?{get(){return o.value.value},set(a){o.value.value=a}}:{get(){return o.get&&o.get()}};Object.defineProperty(n,s,i)}),e.config.globalProperties.$i18n=n,ml.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o||!o.value)throw De(ke.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,o)}),()=>{delete e.config.globalProperties.$i18n,ml.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}p_();__INTLIFY_JIT_COMPILATION__?Ga(c_):Ga(l_);Zg(kg);e_(Fu);if(__INTLIFY_PROD_DEVTOOLS__){const e=Vt();e.__INTLIFY__=!0,Wg(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const H_={common:{confirm:"确认",cancel:"取消",close:"关闭",delete:"删除",edit:"编辑",save:"保存",add:"添加",back:"返回",next:"下一页",previous:"上一页",loading:"加载中...",success:"成功",error:"错误",warning:"警告",info:"信息",search:"搜索",copy:"复制",uploadSuccess:"上传成功",uploadFailed:"上传失败",copySuccess:"复制成功",copyFailed:"复制失败",deleteSuccess:"删除成功",deleteFailed:"删除失败",downloadSuccess:"下载成功",downloadFailed:"下载失败",shareSuccess:"分享成功",shareFailed:"分享失败",expiredFile:"文件已过期",fileNotFound:"文件不存在",networkError:"网络错误",unknownError:"未知错误",invalidFileType:"不支持的文件类型",fileTooLarge:"文件过大",uploadCanceled:"上传已取消",processing:"处理中...",pleaseWait:"请稍候...",fileDetails:"文件详情",enabled:"已开启",disabled:"已关闭",minute:"分钟",files:"个文件",second:"秒",hour:"小时",day:"天",times:"次",appName:"文件快递柜 - FileCodeBox",appDescription:"开箱即用的文件快传系统"},admin:{dashboard:{title:"仪表盘",totalFiles:"总文件数",storageSpace:"存储空间",activeUsers:"活跃用户",systemStatus:"系统状态",yesterday:"昨天:",today:"今天:",weeklyChange:"↓ 5% 较上周",normal:"正常",serverUptime:"服务器运行时间:",version:"版本 v2.2.1 更新时间:2025-09-04"},fileManage:{title:"文件管理"},settings:{title:"系统设置",basicSettings:"基本设置",websiteInfo:"网站基本信息",websiteName:"网站名称",websiteDescription:"网站描述",siteName:"网站名称",adminPassword:"管理员密码",passwordPlaceholder:"留空则不修改密码",passwordNote:"留空则不修改",keywords:"关键词",themeSelection:"主题选择",robotsFile:"Robots.txt",notificationSettings:"通知设置",notificationTitle:"通知标题",notificationContent:"通知内容",storageSettings:"存储设置",storagePath:"存储路径",storagePathPlaceholder:"留空则使用默认路径,可不填写",storageMethod:"存储方式",localStorage:"本地存储",s3Storage:"S3 存储",webdavStorage:"Webdav 存储",chunkUploadNote:"开启切片上传(实验性功能,可能会出现未知问题)",s3AccessKeyId:"S3 AccessKeyId",s3SecretAccessKey:"S3 SecretAccessKey",s3BucketName:"S3 BucketName",s3EndpointUrl:"S3 EndpointUrl",s3RegionName:"S3 Region Name",s3SignatureVersion:"S3 Signature Version",s3Hostname:"S3 Hostname",s3v2:"S3v2",s3v4:"S3v4",autoPlaceholder:"auto",enabled:"已开启",disabled:"已关闭",webdavUrl:"请输入 Webdav URL",webdavUsername:"请输入 Webdav Username",webdavPassword:"请输入 Webdav Password",webdavUrlPlaceholder:"请输入 Webdav URL",webdavUsernamePlaceholder:"请输入 Webdav Username",webdavPasswordPlaceholder:"请输入 Webdav Password",enableProxy:"启用代理",uploadLimits:"上传限制",uploadRateLimit:"每分钟上传限制",uploadPerMinute:"每分钟上传限制",minute:"分钟",uploadCountLimit:"上传数量限制",files:"个文件",fileSizeLimit:"文件大小限制",expirationMethod:"过期方式",expirationType:"过期类型",expiration:{day:"按天",hour:"按小时",minute:"按分钟",forever:"永久",count:"按次数"},maxSaveTime:"最长保存时间",timeUnits:{second:"秒",minute:"分",hour:"时",day:"天"},guestUpload:"游客上传",errorLimits:"错误限制",errorRateLimit:"每分钟错误限制",errorPerMinute:"每分钟错误限制",errorCountLimit:"错误次数限制",times:"次",saveChanges:"保存更改",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"}}},nav:{sendFile:"发送文件",retrieveFile:"取件",fileRecords:"取件记录"},retrieve:{title:"文件取件",codeInput:{placeholder:"请输入5位取件码",label:"取件码"},submit:"取件",needSendFile:"需要发送文件?点击这里",recordsDrawer:"取件记录",messages:{invalidCode:"请输入5位取件码",retrieveSuccess:"文件获取成功",invalidCodeError:"无效的取件码",retrieveFailure:"获取文件失败:",networkError:"取件失败,请稍后重试:",unknownError:"未知错误"}},send:{title:"文件发送",sendText:"发送文本",fileDetails:"文件详情",expirationMethod:"过期方式",uploadArea:{dragText:"拖拽文件到此处或",clickText:"点击选择文件",textInput:"在此输入要发送的文本...",placeholder:"点击或拖放文件到此处上传",description:"支持各种常见格式"},submit:"安全寄送",needRetrieveFile:"需要取件?点击这里",sendRecords:"发件记录",secureEncryption:"安全加密",fileDetail:{title:"文件详情",content:"文件内容",previewContent:"预览内容",download:"点击下载",qrCode:"取件二维码",scanQrCode:"扫描二维码快速取件"},contentPreview:{title:"内容预览"},fileManage:{title:"文件管理",searchPlaceholder:"搜索文件名称、描述...",allFiles:"所有文件",editFileInfo:"编辑文件信息",saveChanges:"保存更改",headers:{code:"取件码",name:"名称",size:"大小",description:"描述",expiration:"过期时间",actions:"操作"},form:{code:"取件码",codePlaceholder:"输入取件码",filename:"文件名称",filenamePlaceholder:"输入文件名称",suffix:"文件后缀",suffixPlaceholder:"输入文件后缀",downloadLimit:"下载次数限制",downloadLimitPlaceholder:"输入下载次数限制"}},expiration:{label:"过期时间",placeholders:{days:"输入天数",hours:"输入小时数",minutes:"输入分钟数",count:"输入查看次数",forever:"永久",default:"输入值"},units:{days:"天",hours:"小时",minutes:"分钟",times:"次",forever:"永久"}},time:{day:"按天",hour:"按小时",minute:"按分钟",forever:"永久",count:"按次数"},messages:{selectFile:"请选择要上传的文件",enterText:"请输入要发送的文本",enterExpirationValue:"请输入过期值",expirationTooLong:"过期时间不能超过{days}天",sendSuccess:"文件发送成功!取件码:{code}",initChunkUploadFailed:"初始化切片上传失败",chunkUploadFailed:"切片 {index} 上传失败",completeUploadFailed:"完成上传失败",uploadFailed:"上传失败,请稍后重试",guestUploadDisabled:"游客上传功能已关闭",fileSizeExceeded:"文件大小超过限制 ({size})",serverError:"服务器响应异常",sendFailed:"发送失败,请稍后重试",expiresAfterCount:"{count}次后过期",expiresAt:"{date}过期",emptyFileError:"无法读取空文件",fileAddedFromClipboard:"已从剪贴板添加文件:{filename}",fileProcessingFailed:"文件处理失败",expiresAfter:"{value}{unit}后过期"}},fileManage:{title:"文件管理",searchPlaceholder:"搜索文件名称、描述...",allFiles:"所有文件",editFileInfo:"编辑文件信息",saveChanges:"保存更改",headers:{code:"取件码",name:"名称",size:"大小",description:"描述",expiration:"过期时间",actions:"操作"},form:{code:"取件码",codePlaceholder:"输入取件码",filename:"文件名称",filenamePlaceholder:"输入文件名称",suffix:"文件后缀",suffixPlaceholder:"输入文件后缀",downloadLimit:"下载次数限制",downloadLimitPlaceholder:"输入下载次数限制"}},fileRecord:{filename:"文件名",size:"文件大小",date:"取件日期",code:"取件码",actions:"操作",download:"下载",viewDetails:"查看详情",deleteRecord:"删除记录",preview:"预览",copyContent:"复制内容",contentCopied:"内容已复制到剪贴板",copyFailed:"复制失败,请重试"},fileDetail:{title:"文件详情",content:"文件内容",previewContent:"预览内容",download:"点击下载",qrCode:"取件二维码",scanQrCode:"扫描二维码快速取件"},contentPreview:{title:"内容预览"},drawer:{noRecords:"暂无记录"},fileSize:{bytes:"Bytes",kb:"KB",mb:"MB",gb:"GB",tb:"TB"},manage:{settings:{title:"系统设置",basicSettings:"基本设置",siteName:"网站名称",adminPassword:"管理员密码",passwordPlaceholder:"留空则不修改密码",passwordNote:"留空则不修改",keywords:"关键词",themeSelection:"主题选择",robotsFile:"Robots.txt",notificationSettings:"通知设置",notificationTitle:"通知标题",notificationContent:"通知内容",storageSettings:"存储设置",storagePath:"存储路径",storagePathPlaceholder:"留空则使用默认路径,可不填写",storageMethod:"存储方式",localStorage:"本地存储",s3Storage:"S3 存储",webdavStorage:"Webdav 存储",chunkUploadNote:"开启切片上传(实验性功能,可能会出现未知问题)",uploadLimits:"上传限制",uploadPerMinute:"每分钟上传限制",uploadCountLimit:"上传数量限制",fileSizeLimit:"文件大小限制",expiration:{day:"按天",hour:"按小时",minute:"按分钟",forever:"永久",count:"按次数"},maxSaveTime:"最长保存时间",s3AccessKeyId:"S3 AccessKeyId",s3SecretAccessKey:"S3 SecretAccessKey",s3BucketName:"S3 BucketName",s3EndpointUrl:"S3 EndpointUrl",s3RegionName:"S3 Region Name",s3SignatureVersion:"S3 Signature Version",s3Hostname:"S3 Hostname",s3v2:"S3v2",s3v4:"S3v4",autoPlaceholder:"auto",enableProxy:"启用代理",webdavUrlPlaceholder:"请输入 Webdav URL",webdavUsernamePlaceholder:"请输入 Webdav Username",webdavPasswordPlaceholder:"请输入 Webdav Password",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"},expirationType:"过期类型",guestUpload:"游客上传",errorLimits:"错误限制",errorPerMinute:"每分钟错误限制",errorCountLimit:"错误次数限制",saveChanges:"保存更改"},dashboard:{title:"仪表盘",totalFiles:"总文件数",storageSpace:"存储空间",activeUsers:"活跃用户",systemStatus:"系统状态",yesterday:"昨天:",today:"今天:",weeklyChange:"↓ 5% 较上周",normal:"正常",serverUptime:"服务器运行时间:",version:"版本 v2.2.1 更新时间:2025-09-04"},fileManage:{title:"文件管理",searchPlaceholder:"搜索文件名称、描述...",allFiles:"所有文件",editFileInfo:"编辑文件信息",saveChanges:"保存更改",headers:{code:"取件码",name:"名称",size:"大小",description:"描述",expiration:"过期时间",actions:"操作"},form:{code:"取件码",codePlaceholder:"输入取件码",filename:"文件名称",filenamePlaceholder:"输入文件名称",suffix:"文件后缀",suffixPlaceholder:"输入文件后缀",downloadLimit:"下载次数限制",downloadLimitPlaceholder:"输入下载次数限制"},updateFailed:"更新失败",deleteFailed:"删除失败",loadFileListFailed:"加载文件列表失败"},systemSettings:{title:"系统设置",basicSettings:"基本设置",websiteInfo:"网站基本信息",websiteName:"网站名称",websiteDescription:"网站描述",adminPassword:"管理员密码",passwordPlaceholder:"留空则不修改密码",passwordNote:"留空则不修改",keywords:"关键词",themeSelection:"主题选择",notificationSettings:"通知设置",notificationTitle:"通知标题",notificationContent:"通知内容",storageSettings:"存储设置",storagePath:"存储路径",storagePathPlaceholder:"留空则使用默认路径,可不填写",storageMethod:"存储方式",localStorage:"本地存储",s3Storage:"S3 存储",webdavStorage:"Webdav 存储",chunkUploadNote:"开启切片上传(实验性功能,可能会出现未知问题)",enabled:"已开启",disabled:"已关闭",webdavUrl:"请输入 Webdav URL",webdavUsername:"请输入 Webdav Username",webdavPassword:"请输入 Webdav Password",enableProxy:"启用代理",uploadLimits:"上传限制",uploadRateLimit:"每分钟上传限制",minute:"分钟",uploadCountLimit:"上传数量限制",files:"个文件",fileSizeLimit:"文件大小限制",expirationMethod:"过期方式",expirationMethods:{day:"按天",hour:"按小时",minute:"按分钟",forever:"永久",count:"按次数"},expiration:{day:"按天",hour:"按小时",minute:"按分钟",forever:"永久",count:"按次数"},maxSaveTime:"最长保存时间",timeUnits:{second:"秒",minute:"分",hour:"时",day:"天"},guestUpload:"游客上传",errorLimits:"错误限制",errorRateLimit:"每分钟错误限制",errorCountLimit:"错误次数限制",times:"次",saveSettings:"保存设置",saveSuccess:"保存成功",saveFailed:"保存失败",getConfigFailed:"获取配置失败"},login:{title:"登录",password:"密码",passwordPlaceholder:"密码",loginButton:"登录",loggingIn:"登录中...",invalidPassword:"无效的密码",passwordTooShort:"密码长度至少为6位",loginFailed:"登录失败",noValidToken:"登录失败:未获取到有效令牌"}},utils:{common:{formatTime:"格式化时间戳为可读格式",formatFileSize:"格式化文件大小",formatDuration:"格式化持续时间",time:{forever:"永久",day:"天",hour:"小时",minute:"分钟",second:"秒"},copyToClipboard:"复制文本到剪贴板",copyFailed:"复制失败:",debounce:"防抖函数",throttle:"节流函数",validateEmail:"验证邮箱格式",validateUrl:"验证URL格式",generateRandomString:"生成随机字符串",deepClone:"深度克隆对象",getFileExtension:"获取文件扩展名",isMobileDevice:"检查是否为移动设备",formatNumber:"格式化数字,添加千分位分隔符"},clipboard:{title:"剪贴板工具函数",copyText:"复制文本到剪贴板",copySuccess:"复制成功",copyFailed:"复制失败,请手动复制"}},components:{pagination:{showing:"显示第",to:"到",of:"条,共",total:"条",previous:"上一页",next:"下一页"},languageSwitcher:{clickOutsideToClose:"点击外部关闭下拉菜单"},borderProgressBar:{borderWidth:"边框宽度",cornerRadius:"拐角半径",createGradient:"创建渐变",drawBackground:"绘制背景",calculateProgress:"计算进度",drawProgress:"绘制进度"}},misc:{emptyFileError:"无法读取空文件",fileAddedFromClipboard:"已从剪贴板添加文件:",fileProcessFailed:"文件处理失败",chunkSize:"保持 2MB 的切片大小用于计算哈希",secureContext:"如果不是安全上下文(HTTP),则返回一个基于文件信息的替代哈希",cryptoFallback:"如果 crypto.subtle.digest 失败,使用替代方案",generateAlternativeHash:"生成替代哈希的函数",fileInfoHash:"使用文件名、大小和最后修改时间生成一个简单的哈希",convertToHex:"转换为16进制字符串并填充到64位",defaultChunkSize:"默认切片大小为5MB",initChunkUpload:"1. 初始化切片上传",uploadChunk:"2. 上传切片",completeUpload:"3. 完成上传",chunkUploadFailed:"切片上传失败:",uploadProgressListener:"添加上传进度监听",noLimitCheck:"如果没有限制,直接返回true",expirationValidation:"添加过期时间验证",chunkUploadReplacement:"使用切片上传替代原来的直接上传",textUploadUnchanged:"文本上传保持不变",addSendRecord:"添加新的发送记录",permanent:"永久",sendSuccessMessage:"显示发送成功消息",resetForm:"重置表单 - 只重置文件和文本内容,保留过期信息",showDetails:"显示详情",autoCopyLink:"自动复制取件码链接",delayedLoading:"使用 onMounted 钩子延迟加载一些非关键资源或初始化",nonCriticalInit:"这里可以放置一些非立即需要的初始化代码"}},W_={common:{confirm:"Confirm",cancel:"Cancel",close:"Close",delete:"Delete",edit:"Edit",save:"Save",add:"Add",back:"Back",next:"Next",previous:"Previous",loading:"Loading...",noData:"No Data",success:"Success",error:"Error",warning:"Warning",info:"Information",search:"Search",copy:"Copy",uploadSuccess:"Upload successful",uploadFailed:"Upload failed",copySuccess:"Copy successful",copyFailed:"Copy failed",deleteSuccess:"Delete successful",deleteFailed:"Delete failed",downloadSuccess:"Download successful",downloadFailed:"Download failed",shareSuccess:"Share successful",shareFailed:"Share failed",expiredFile:"File has expired",fileNotFound:"File not found",networkError:"Network error",unknownError:"Unknown error",invalidFileType:"Invalid file type",fileTooLarge:"File too large",uploadCanceled:"Upload canceled",processing:"Processing",pleaseWait:"Please wait",fileDetails:"File Details",enabled:"Enabled",disabled:"Disabled",minute:"minute",files:"files",second:"second",hour:"hour",day:"day",times:"times",appName:"FileCodeBox - File Transfer",appDescription:"Ready-to-use file transfer system"},admin:{dashboard:{title:"Dashboard",totalFiles:"Total Files",storageSpace:"Storage Space",activeUsers:"Active Users",systemStatus:"System Status",yesterday:"Yesterday:",today:"Today:",weeklyChange:"↓ 5% from last week",normal:"Normal",serverUptime:"Server Uptime:",version:"Version v2.2.1 Updated: 2025-09-04"},fileManage:{title:"File Management"},settings:{title:"System Settings",basicSettings:"Basic Settings",websiteInfo:"Website Basic Information",websiteName:"Website Name",websiteDescription:"Website Description",siteName:"Site Name",adminPassword:"Admin Password",passwordPlaceholder:"Leave blank to keep current password",passwordNote:"Leave blank to keep unchanged",keywords:"Keywords",themeSelection:"Theme Selection",robotsFile:"Robots.txt",notificationSettings:"Notification Settings",notificationTitle:"Notification Title",notificationContent:"Notification Content",storageSettings:"Storage Settings",storagePath:"Storage Path",storagePathPlaceholder:"Leave blank to use default path, optional",storageMethod:"Storage Method",localStorage:"Local Storage",s3Storage:"S3 Storage",webdavStorage:"Webdav Storage",chunkUploadNote:"Enable chunk upload (experimental feature, may have unknown issues)",s3AccessKeyId:"S3 AccessKeyId",s3SecretAccessKey:"S3 SecretAccessKey",s3BucketName:"S3 BucketName",s3EndpointUrl:"S3 EndpointUrl",s3RegionName:"S3 Region Name",s3SignatureVersion:"S3 Signature Version",s3Hostname:"S3 Hostname",s3v2:"S3v2",s3v4:"S3v4",autoPlaceholder:"auto",enabled:"Enabled",disabled:"Disabled",webdavUrl:"Please enter Webdav URL",webdavUsername:"Please enter Webdav Username",webdavPassword:"Please enter Webdav Password",webdavUrlPlaceholder:"Please enter Webdav URL",webdavUsernamePlaceholder:"Please enter Webdav Username",webdavPasswordPlaceholder:"Please enter Webdav Password",enableProxy:"Enable Proxy",uploadLimits:"Upload Limits",uploadRateLimit:"Upload Rate Limit",uploadPerMinute:"Upload Per Minute",minute:"minute",uploadCountLimit:"Upload Count Limit",files:"files",fileSizeLimit:"File Size Limit",expirationMethod:"Expiration Method",expirationType:"Expiration Type",expiration:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count"},maxSaveTime:"Maximum Save Time",timeUnits:{second:"second",minute:"minute",hour:"hour",day:"day"},guestUpload:"Guest Upload",errorLimits:"Error Limits",errorRateLimit:"Error Rate Limit",errorPerMinute:"Error Per Minute",errorCountLimit:"Error Count Limit",times:"times",saveChanges:"Save Changes",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"}}},nav:{sendFile:"Send File",retrieveFile:"Retrieve",fileRecords:"File Records"},retrieve:{title:"File Retrieval",codeInput:{placeholder:"Enter 5-digit retrieval code",label:"Retrieval Code"},submit:"Retrieve",needSendFile:"Need to send a file? Click here",recordsDrawer:"Retrieval Records",messages:{invalidCode:"Please enter a 5-digit retrieval code",retrieveSuccess:"File retrieved successfully",invalidCodeError:"Invalid retrieval code",retrieveFailure:"Failed to retrieve file: ",networkError:"Retrieval failed, please try again later: ",unknownError:"Unknown error"}},send:{title:"File Send",sendText:"Send Text",uploadArea:{dragText:"Drag files here or",clickText:"click to select files",textInput:"Enter text to send here...",placeholder:"Click or drag files here to upload",description:"Supports various common formats"},submit:"Secure Send",needRetrieveFile:"Need to retrieve? Click here",sendRecords:"Send Records",secureEncryption:"Secure Encryption",fileDetails:"File Details",expirationMethod:"Expiration Method",expiration:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count",label:"Expiration Time",placeholders:{days:"Enter days",hours:"Enter hours",minutes:"Enter minutes",count:"Enter view count",forever:"Forever",default:"Enter value"},units:{days:"days",hours:"hours",minutes:"minutes",times:"times",forever:"Forever"}},time:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count"},messages:{selectFile:"Please select a file to upload",enterText:"Please enter text to send",enterExpirationValue:"Please enter expiration value",expirationTooLong:"Expiration time cannot exceed {days} days",sendSuccess:"File sent successfully! Retrieve code: {code}",initChunkUploadFailed:"Failed to initialize chunk upload",chunkUploadFailed:"Chunk {index} upload failed",completeUploadFailed:"Failed to complete upload",uploadFailed:"Upload failed, please try again later",guestUploadDisabled:"Guest upload feature is disabled",fileSizeExceeded:"File size exceeds limit ({size})",serverError:"Server response error",sendFailed:"Send failed, please try again later",expiresAfterCount:"Expires after {count} times",expiresAt:"Expires at {date}",emptyFileError:"Cannot read empty file",fileAddedFromClipboard:"File added from clipboard: {filename}",fileProcessingFailed:"File processing failed",expiresAfter:"Expires after {value} {unit}"}},fileRecord:{filename:"Filename",size:"Size",date:"Date",code:"Code",actions:"Actions",download:"Download",viewDetails:"View Details",deleteRecord:"Delete Record",preview:"Preview",copyContent:"Copy Content",contentCopied:"Content copied to clipboard",copyFailed:"Copy failed, please try again"},fileDetail:{title:"File Details",content:"File Content",previewContent:"Preview Content",download:"Click to Download",qrCode:"Retrieve QR Code",scanQrCode:"Scan QR code for quick retrieval"},contentPreview:{title:"Content Preview"},fileManage:{title:"File Management",searchPlaceholder:"Search file name, description...",allFiles:"All Files",editFileInfo:"Edit File Information",saveChanges:"Save Changes",headers:{code:"Retrieve Code",name:"Name",size:"Size",description:"Description",expiration:"Expiration",actions:"Actions"},form:{code:"Retrieve Code",codePlaceholder:"Enter retrieve code",filename:"File Name",filenamePlaceholder:"Enter file name",suffix:"File Extension",suffixPlaceholder:"Enter file extension",downloadLimit:"Download Limit",downloadLimitPlaceholder:"Enter download limit"}},drawer:{noRecords:"No records"},manage:{settings:{title:"System Settings",basicSettings:"Basic Settings",websiteInfo:"Website Basic Information",websiteName:"Website Name",websiteDescription:"Website Description",siteName:"Site Name",adminPassword:"Admin Password",passwordPlaceholder:"Leave blank to keep current password",passwordNote:"Leave blank to keep unchanged",keywords:"Keywords",themeSelection:"Theme Selection",notificationSettings:"Notification Settings",notificationTitle:"Notification Title",notificationContent:"Notification Content",storageSettings:"Storage Settings",storagePath:"Storage Path",storagePathPlaceholder:"Leave blank to use default path, optional",storageMethod:"Storage Method",localStorage:"Local Storage",s3Storage:"S3 Storage",webdavStorage:"Webdav Storage",chunkUploadNote:"Enable chunk upload (experimental feature, may have unknown issues)",enabled:"Enabled",disabled:"Disabled",webdavUrl:"Please enter Webdav URL",webdavUsername:"Please enter Webdav Username",webdavPassword:"Please enter Webdav Password",webdavUrlPlaceholder:"Please enter Webdav URL",webdavUsernamePlaceholder:"Please enter Webdav Username",webdavPasswordPlaceholder:"Please enter Webdav Password",enableProxy:"Enable Proxy",uploadLimits:"Upload Limits",uploadRateLimit:"Upload Rate Limit",uploadPerMinute:"Upload Per Minute",minute:"minute",uploadCountLimit:"Upload Count Limit",files:"files",fileSizeLimit:"File Size Limit",expirationMethod:"Expiration Method",expirationType:"Expiration Type",expiration:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count"},maxSaveTime:"Maximum Save Time",timeUnits:{second:"second",minute:"minute",hour:"hour",day:"day"},guestUpload:"Guest Upload",errorLimits:"Error Limits",errorRateLimit:"Error Rate Limit",errorPerMinute:"Error Per Minute",errorCountLimit:"Error Count Limit",times:"times",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"},saveChanges:"Save Changes"},systemSettings:{title:"System Settings",basicSettings:"Basic Settings",websiteInfo:"Website Basic Information",websiteName:"Website Name",websiteDescription:"Website Description",adminPassword:"Admin Password",passwordPlaceholder:"Leave blank to keep current password",passwordNote:"Leave blank to keep unchanged",keywords:"Keywords",themeSelection:"Theme Selection",notificationSettings:"Notification Settings",notificationTitle:"Notification Title",notificationContent:"Notification Content",storageSettings:"Storage Settings",storagePath:"Storage Path",storagePathPlaceholder:"Leave blank to use default path, optional",storageMethod:"Storage Method",localStorage:"Local Storage",s3Storage:"S3 Storage",webdavStorage:"Webdav Storage",chunkUploadNote:"Enable chunk upload (experimental feature, may have unknown issues)",enabled:"Enabled",disabled:"Disabled",webdavUrl:"Please enter Webdav URL",webdavUsername:"Please enter Webdav Username",webdavPassword:"Please enter Webdav Password",enableProxy:"Enable Proxy",uploadLimits:"Upload Limits",uploadRateLimit:"Upload Rate Limit",minute:"minute",uploadCountLimit:"Upload Count Limit",files:"files",fileSizeLimit:"File Size Limit",expirationMethod:"Expiration Method",expirationMethods:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count"},expiration:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count"},maxSaveTime:"Maximum Save Time",timeUnits:{second:"second",minute:"minute",hour:"hour",day:"day"},guestUpload:"Guest Upload",errorLimits:"Error Limits",errorRateLimit:"Error Rate Limit",errorCountLimit:"Error Count Limit",times:"times",saveSettings:"Save Settings",saveSuccess:"Save successful",saveFailed:"Save failed",getConfigFailed:"Failed to get configuration"},dashboard:{title:"Dashboard",totalFiles:"Total Files",storageSpace:"Storage Space",activeUsers:"Active Users",systemStatus:"System Status",yesterday:"Yesterday:",today:"Today:",weeklyChange:"↓ 5% from last week",normal:"Normal",serverUptime:"Server Uptime:",version:"Version v2.2.1 Updated: 2025-09-04"},fileManage:{title:"File Management",searchPlaceholder:"Search file name, description...",allFiles:"All Files",editFileInfo:"Edit File Info",saveChanges:"Save Changes",headers:{code:"Code",name:"Name",size:"Size",description:"Description",expiration:"Expiration",actions:"Actions"},form:{code:"Code",codePlaceholder:"Enter code",filename:"File Name",filenamePlaceholder:"Enter file name",suffix:"File Suffix",suffixPlaceholder:"Enter file suffix",downloadLimit:"Download Limit",downloadLimitPlaceholder:"Enter download limit"},updateFailed:"Update failed",deleteFailed:"Delete failed",loadFileListFailed:"Failed to load file list"},login:{title:"Login",password:"Password",passwordPlaceholder:"Password",loginButton:"Login",loggingIn:"Logging in...",invalidPassword:"Invalid password",passwordTooShort:"Password must be at least 6 characters",loginFailed:"Login failed",noValidToken:"Login failed: No valid token received"}},fileSize:{bytes:"Bytes",kb:"KB",mb:"MB",gb:"GB",tb:"TB"},utils:{formatTime:"Format timestamp to readable format",formatFileSize:"Format file size",formatDuration:"Format duration",time:{forever:"Forever",day:"day",hour:"hour",minute:"minute",second:"second"},copyToClipboard:"Copy text to clipboard",copyFailed:"Copy failed:",debounce:"Debounce function",throttle:"Throttle function",validateEmail:"Validate email format",validateUrl:"Validate URL format",generateRandomString:"Generate random string",deepClone:"Deep clone object",getFileExtension:"Get file extension",isMobileDevice:"Check if mobile device",formatNumber:"Format number with thousand separators",clipboard:{title:"Clipboard utility functions",copyText:"Copy text to clipboard",copySuccess:"Copy successful",copyFailed:"Copy failed, please copy manually"}},components:{pagination:{showing:"Showing",to:"to",of:"of",total:"total",previous:"Previous",next:"Next"},languageSwitcher:{clickOutsideToClose:"Click outside to close dropdown menu"},borderProgressBar:{borderWidth:"Border width",cornerRadius:"Corner radius",createGradient:"Create gradient",drawBackground:"Draw background",calculateProgress:"Calculate progress",drawProgress:"Draw progress"}},misc:{emptyFileError:"Cannot read empty file",fileAddedFromClipboard:"File added from clipboard: ",fileProcessFailed:"File processing failed",chunkSize:"Keep 2MB chunk size for hash calculation",secureContext:"If not in secure context (HTTP), return an alternative hash based on file info",cryptoFallback:"If crypto.subtle.digest fails, use fallback method",generateAlternativeHash:"Function to generate alternative hash",fileInfoHash:"Generate simple hash using filename, size and last modified time",convertToHex:"Convert to hex string and pad to 64 bits",defaultChunkSize:"Default chunk size is 5MB",initChunkUpload:"1. Initialize chunk upload",uploadChunk:"2. Upload chunk",completeUpload:"3. Complete upload",chunkUploadFailed:"Chunk upload failed: ",uploadProgressListener:"Add upload progress listener",noLimitCheck:"If no limit, return true directly",expirationValidation:"Add expiration time validation",chunkUploadReplacement:"Use chunk upload to replace direct upload",textUploadUnchanged:"Text upload remains unchanged",addSendRecord:"Add new send record",permanent:"Permanent",sendSuccessMessage:"Show send success message",resetForm:"Reset form - only reset file and text content, keep expiration info",showDetails:"Show details",autoCopyLink:"Auto copy retrieve code link",delayedLoading:"Use onMounted hook to delay load non-critical resources or initialization",nonCriticalInit:"Place non-immediately needed initialization code here"}},V_=()=>{const e=localStorage.getItem("locale");return e||(navigator.language.toLowerCase().startsWith("zh")?"zh-CN":"en-US")},j_={"zh-CN":H_,"en-US":W_},ef=N_({legacy:!1,locale:V_(),fallbackLocale:"zh-CN",messages:j_,globalInjection:!0}),K_=e=>{ef.global.locale.value=e,localStorage.setItem("locale",e),document.documentElement.lang=e},ho=[{code:"zh-CN",name:"中文"},{code:"en-US",name:"English"}],G_={class:"relative"},q_={class:"text-sm font-medium"},Y_={class:"py-1"},z_=["onClick"],X_=Xt({__name:"LanguageSwitcher",setup(e){const{locale:t}=Hr(),n=Xe("isDarkMode"),r=st(!1),s=_e(()=>t.value),o=_e(()=>ho.find(c=>c.code===s.value)||ho[0]),i=()=>{r.value=!r.value},a=c=>{K_(c),r.value=!1},l=c=>{c.target.closest(".relative")||(r.value=!1)};return Zn(()=>{document.addEventListener("click",l)}),er(()=>{document.removeEventListener("click",l)}),(c,u)=>(Ve(),jt("div",G_,[Be("button",{onClick:i,class:At(["flex items-center space-x-2 px-3 py-2 rounded-lg transition-all duration-200",ve(n)?"bg-gray-800/60 hover:bg-gray-700/80 text-gray-300 hover:text-white":"bg-gray-100 hover:bg-gray-200 text-gray-700 hover:text-gray-900"])},[Pe(ve(Lp),{class:"w-4 h-4"}),Be("span",q_,br(o.value.name),1),Pe(ve(wp),{class:At(["w-4 h-4 transition-transform duration-200",{"rotate-180":r.value}])},null,8,["class"])],2),Pe(Jc,{"enter-active-class":"transition ease-out duration-200","enter-from-class":"opacity-0 scale-95","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition ease-in duration-150","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-95"},{default:wr(()=>[r.value?(Ve(),jt("div",{key:0,class:At(["absolute right-0 mt-2 w-32 rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 z-50",ve(n)?"bg-gray-800 border border-gray-700":"bg-white border border-gray-200"])},[Be("div",Y_,[(Ve(!0),jt(Me,null,Tc(ve(ho),f=>(Ve(),jt("button",{key:f.code,onClick:d=>a(f.code),class:At(["w-full text-left px-4 py-2 text-sm transition-colors duration-150",s.value===f.code?ve(n)?"bg-indigo-600 text-white":"bg-indigo-50 text-indigo-600":ve(n)?"text-gray-300 hover:bg-gray-700 hover:text-white":"text-gray-700 hover:bg-gray-100"])},br(f.name),11,z_))),128))])],2)):Kc("",!0)]),_:1})]))}}),hl={COLOR_MODE:"colorMode",ADMIN_PASSWORD:"adminPassword",TOKEN:"token"},$e={LIGHT:"light",DARK:"dark",SYSTEM:"system"},rE={IDLE:"idle",UPLOADING:"uploading",SUCCESS:"success",ERROR:"error"},tf={ALERT_DURATION:5e3,REQUEST_TIMEOUT:3e8},nf=dh("alert",{state:()=>({alerts:[]}),actions:{showAlert(e,t="info",n=tf.ALERT_DURATION){const r=Date.now(),s=Date.now();this.alerts.push({id:r,message:e,type:t,progress:100,duration:n,startTime:s}),setTimeout(()=>this.removeAlert(r),n)},removeAlert(e){const t=this.alerts.findIndex(n=>n.id===e);t>-1&&this.alerts.splice(t,1)},updateAlertProgress(e){const t=this.alerts.find(n=>n.id===e);if(t){const r=100-(Date.now()-t.startTime)/t.duration*100;t.progress=Math.max(0,r),t.progress<=0&&this.removeAlert(e)}}}}),J_={class:"p-4"},Q_={class:"flex items-start"},Z_={class:"flex-shrink-0"},ey={class:"ml-3 flex-1 pt-0.5"},ty={class:"text-sm font-medium text-white"},ny={class:"ml-4 flex-shrink-0 flex"},ry=["onClick"],sy={class:"sr-only"},oy={class:"h-1 bg-white bg-opacity-25"},iy=Xt({__name:"AlertComponent",setup(e){const{t}=Hr(),n=nf(),{alerts:r}=mh(n),{removeAlert:s,updateAlertProgress:o}=n,i={success:"from-green-500 to-green-600",error:"from-red-500 to-red-600",warning:"from-yellow-500 to-yellow-600",info:"from-blue-500 to-blue-600"},a={success:Cp,error:Np,warning:Tp,info:Pp};let l;return Zn(()=>{l=setInterval(()=>{r.value.forEach(c=>{o(c.id)})},100)}),er(()=>{clearInterval(l)}),(c,u)=>(Ve(),dn(Gm,{name:"alert-fade",tag:"div",class:"fixed top-4 left-4 z-50 w-full sm:max-w-sm md:max-w-md space-y-4 px-4 sm:px-0"},{default:wr(()=>[(Ve(!0),jt(Me,null,Tc(ve(r),f=>(Ve(),jt("div",{key:f.id,class:At(["w-full rounded-lg shadow-xl overflow-hidden","bg-gradient-to-r",i[f.type]])},[Be("div",J_,[Be("div",Q_,[Be("div",Z_,[(Ve(),dn(Sc(a[f.type]),{class:"h-6 w-6 text-white"}))]),Be("div",ey,[Be("p",ty,br(f.message),1)]),Be("div",ny,[Be("button",{onClick:d=>ve(s)(f.id),class:"inline-flex text-white hover:text-gray-200 focus:outline-none transition-colors duration-200"},[Be("span",sy,br(ve(t)("common.close")),1),Pe(ve(Ap),{class:"h-5 w-5"})],8,ry)])])]),Be("div",oy,[Be("div",{class:"h-full bg-white transition-all duration-100 ease-out",style:Cs({width:`${f.progress}%`})},null,4)])],2))),128))]),_:1}))}}),ay=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},ly=ay(iy,[["__scopeId","data-v-59f86e5f"]]);function rf(e,t){return function(){return e.apply(t,arguments)}}const{toString:cy}=Object.prototype,{getPrototypeOf:wi}=Object,{iterator:Bs,toStringTag:sf}=Symbol,Hs=(e=>t=>{const n=cy.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),wt=e=>(e=e.toLowerCase(),t=>Hs(t)===e),Ws=e=>t=>typeof t===e,{isArray:nr}=Array,xr=Ws("undefined");function Wr(e){return e!==null&&!xr(e)&&e.constructor!==null&&!xr(e.constructor)&&ot(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const of=wt("ArrayBuffer");function uy(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&of(e.buffer),t}const fy=Ws("string"),ot=Ws("function"),af=Ws("number"),Vr=e=>e!==null&&typeof e=="object",dy=e=>e===!0||e===!1,rs=e=>{if(Hs(e)!=="object")return!1;const t=wi(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(sf in e)&&!(Bs in e)},my=e=>{if(!Vr(e)||Wr(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},hy=wt("Date"),py=wt("File"),gy=wt("Blob"),_y=wt("FileList"),yy=e=>Vr(e)&&ot(e.pipe),by=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||ot(e.append)&&((t=Hs(e))==="formdata"||t==="object"&&ot(e.toString)&&e.toString()==="[object FormData]"))},Ey=wt("URLSearchParams"),[vy,Sy,wy,Ty]=["ReadableStream","Request","Response","Headers"].map(wt),Cy=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function jr(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),nr(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const On=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,cf=e=>!xr(e)&&e!==On;function Wo(){const{caseless:e}=cf(this)&&this||{},t={},n=(r,s)=>{const o=e&&lf(t,s)||s;rs(t[o])&&rs(r)?t[o]=Wo(t[o],r):rs(r)?t[o]=Wo({},r):nr(r)?t[o]=r.slice():t[o]=r};for(let r=0,s=arguments.length;r(jr(t,(s,o)=>{n&&ot(s)?e[o]=rf(s,n):e[o]=s},{allOwnKeys:r}),e),Py=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Ry=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},Oy=(e,t,n,r)=>{let s,o,i;const a={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!a[i]&&(t[i]=e[i],a[i]=!0);e=n!==!1&&wi(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Ny=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},Ay=e=>{if(!e)return null;if(nr(e))return e;let t=e.length;if(!af(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},Iy=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&wi(Uint8Array)),ky=(e,t)=>{const r=(e&&e[Bs]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},xy=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Fy=wt("HTMLFormElement"),My=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),pl=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Dy=wt("RegExp"),uf=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};jr(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},Uy=e=>{uf(e,(t,n)=>{if(ot(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(ot(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},$y=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return nr(e)?r(e):r(String(e).split(t)),n},By=()=>{},Hy=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Wy(e){return!!(e&&ot(e.append)&&e[sf]==="FormData"&&e[Bs])}const Vy=e=>{const t=new Array(10),n=(r,s)=>{if(Vr(r)){if(t.indexOf(r)>=0)return;if(Wr(r))return r;if(!("toJSON"in r)){t[s]=r;const o=nr(r)?[]:{};return jr(r,(i,a)=>{const l=n(i,s+1);!xr(l)&&(o[a]=l)}),t[s]=void 0,o}}return r};return n(e,0)},jy=wt("AsyncFunction"),Ky=e=>e&&(Vr(e)||ot(e))&&ot(e.then)&&ot(e.catch),ff=((e,t)=>e?setImmediate:t?((n,r)=>(On.addEventListener("message",({source:s,data:o})=>{s===On&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),On.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",ot(On.postMessage)),Gy=typeof queueMicrotask<"u"?queueMicrotask.bind(On):typeof process<"u"&&process.nextTick||ff,qy=e=>e!=null&&ot(e[Bs]),A={isArray:nr,isArrayBuffer:of,isBuffer:Wr,isFormData:by,isArrayBufferView:uy,isString:fy,isNumber:af,isBoolean:dy,isObject:Vr,isPlainObject:rs,isEmptyObject:my,isReadableStream:vy,isRequest:Sy,isResponse:wy,isHeaders:Ty,isUndefined:xr,isDate:hy,isFile:py,isBlob:gy,isRegExp:Dy,isFunction:ot,isStream:yy,isURLSearchParams:Ey,isTypedArray:Iy,isFileList:_y,forEach:jr,merge:Wo,extend:Ly,trim:Cy,stripBOM:Py,inherits:Ry,toFlatObject:Oy,kindOf:Hs,kindOfTest:wt,endsWith:Ny,toArray:Ay,forEachEntry:ky,matchAll:xy,isHTMLForm:Fy,hasOwnProperty:pl,hasOwnProp:pl,reduceDescriptors:uf,freezeMethods:Uy,toObjectSet:$y,toCamelCase:My,noop:By,toFiniteNumber:Hy,findKey:lf,global:On,isContextDefined:cf,isSpecCompliantForm:Wy,toJSONObject:Vy,isAsyncFn:jy,isThenable:Ky,setImmediate:ff,asap:Gy,isIterable:qy};function se(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}A.inherits(se,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:A.toJSONObject(this.config),code:this.code,status:this.status}}});const df=se.prototype,mf={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{mf[e]={value:e}});Object.defineProperties(se,mf);Object.defineProperty(df,"isAxiosError",{value:!0});se.from=(e,t,n,r,s,o)=>{const i=Object.create(df);return A.toFlatObject(e,i,function(l){return l!==Error.prototype},a=>a!=="isAxiosError"),se.call(i,e.message,t,n,r,s),i.cause=e,i.name=e.name,o&&Object.assign(i,o),i};const Yy=null;function Vo(e){return A.isPlainObject(e)||A.isArray(e)}function hf(e){return A.endsWith(e,"[]")?e.slice(0,-2):e}function gl(e,t,n){return e?e.concat(t).map(function(s,o){return s=hf(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function zy(e){return A.isArray(e)&&!e.some(Vo)}const Xy=A.toFlatObject(A,{},null,function(t){return/^is[A-Z]/.test(t)});function Vs(e,t,n){if(!A.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=A.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(S,w){return!A.isUndefined(w[S])});const r=n.metaTokens,s=n.visitor||u,o=n.dots,i=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&A.isSpecCompliantForm(t);if(!A.isFunction(s))throw new TypeError("visitor must be a function");function c(E){if(E===null)return"";if(A.isDate(E))return E.toISOString();if(A.isBoolean(E))return E.toString();if(!l&&A.isBlob(E))throw new se("Blob is not supported. Use a Buffer instead.");return A.isArrayBuffer(E)||A.isTypedArray(E)?l&&typeof Blob=="function"?new Blob([E]):Buffer.from(E):E}function u(E,S,w){let O=E;if(E&&!w&&typeof E=="object"){if(A.endsWith(S,"{}"))S=r?S:S.slice(0,-2),E=JSON.stringify(E);else if(A.isArray(E)&&zy(E)||(A.isFileList(E)||A.endsWith(S,"[]"))&&(O=A.toArray(E)))return S=hf(S),O.forEach(function(b,v){!(A.isUndefined(b)||b===null)&&t.append(i===!0?gl([S],v,o):i===null?S:S+"[]",c(b))}),!1}return Vo(E)?!0:(t.append(gl(w,S,o),c(E)),!1)}const f=[],d=Object.assign(Xy,{defaultVisitor:u,convertValue:c,isVisitable:Vo});function p(E,S){if(!A.isUndefined(E)){if(f.indexOf(E)!==-1)throw Error("Circular reference detected in "+S.join("."));f.push(E),A.forEach(E,function(O,k){(!(A.isUndefined(O)||O===null)&&s.call(t,O,A.isString(k)?k.trim():k,S,d))===!0&&p(O,S?S.concat(k):[k])}),f.pop()}}if(!A.isObject(e))throw new TypeError("data must be an object");return p(e),t}function _l(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ti(e,t){this._pairs=[],e&&Vs(e,this,t)}const pf=Ti.prototype;pf.append=function(t,n){this._pairs.push([t,n])};pf.toString=function(t){const n=t?function(r){return t.call(this,r,_l)}:_l;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Jy(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function gf(e,t,n){if(!t)return e;const r=n&&n.encode||Jy;A.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=A.isURLSearchParams(t)?t.toString():new Ti(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class yl{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){A.forEach(this.handlers,function(r){r!==null&&t(r)})}}const _f={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Qy=typeof URLSearchParams<"u"?URLSearchParams:Ti,Zy=typeof FormData<"u"?FormData:null,eb=typeof Blob<"u"?Blob:null,tb={isBrowser:!0,classes:{URLSearchParams:Qy,FormData:Zy,Blob:eb},protocols:["http","https","file","blob","url","data"]},Ci=typeof window<"u"&&typeof document<"u",jo=typeof navigator=="object"&&navigator||void 0,nb=Ci&&(!jo||["ReactNative","NativeScript","NS"].indexOf(jo.product)<0),rb=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",sb=Ci&&window.location.href||"http://localhost",ob=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ci,hasStandardBrowserEnv:nb,hasStandardBrowserWebWorkerEnv:rb,navigator:jo,origin:sb},Symbol.toStringTag,{value:"Module"})),ze={...ob,...tb};function ib(e,t){return Vs(e,new ze.classes.URLSearchParams,{visitor:function(n,r,s,o){return ze.isNode&&A.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function ab(e){return A.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function lb(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&A.isArray(s)?s.length:i,l?(A.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!a):((!s[i]||!A.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&A.isArray(s[i])&&(s[i]=lb(s[i])),!a)}if(A.isFormData(e)&&A.isFunction(e.entries)){const n={};return A.forEachEntry(e,(r,s)=>{t(ab(r),s,n,0)}),n}return null}function cb(e,t,n){if(A.isString(e))try{return(t||JSON.parse)(e),A.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Kr={transitional:_f,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=A.isObject(t);if(o&&A.isHTMLForm(t)&&(t=new FormData(t)),A.isFormData(t))return s?JSON.stringify(yf(t)):t;if(A.isArrayBuffer(t)||A.isBuffer(t)||A.isStream(t)||A.isFile(t)||A.isBlob(t)||A.isReadableStream(t))return t;if(A.isArrayBufferView(t))return t.buffer;if(A.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return ib(t,this.formSerializer).toString();if((a=A.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Vs(a?{"files[]":t}:t,l&&new l,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),cb(t)):t}],transformResponse:[function(t){const n=this.transitional||Kr.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(A.isResponse(t)||A.isReadableStream(t))return t;if(t&&A.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t)}catch(a){if(i)throw a.name==="SyntaxError"?se.from(a,se.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ze.classes.FormData,Blob:ze.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};A.forEach(["delete","get","head","post","put","patch"],e=>{Kr.headers[e]={}});const ub=A.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),fb=e=>{const t={};let n,r,s;return e&&e.split(` `).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&ub[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},bl=Symbol("internals");function lr(e){return e&&String(e).trim().toLowerCase()}function ss(e){return e===!1||e==null?e:A.isArray(e)?e.map(ss):String(e)}function db(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const mb=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function po(e,t,n,r,s){if(A.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!A.isString(t)){if(A.isString(r))return t.indexOf(r)!==-1;if(A.isRegExp(r))return r.test(t)}}function hb(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function pb(e,t){const n=A.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let it=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(a,l,c){const u=lr(l);if(!u)throw new Error("header name must be a non-empty string");const f=A.findKey(s,u);(!f||s[f]===void 0||c===!0||c===void 0&&s[f]!==!1)&&(s[f||l]=ss(a))}const i=(a,l)=>A.forEach(a,(c,u)=>o(c,u,l));if(A.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(A.isString(t)&&(t=t.trim())&&!mb(t))i(fb(t),n);else if(A.isObject(t)&&A.isIterable(t)){let a={},l,c;for(const u of t){if(!A.isArray(u))throw TypeError("Object iterator must return a key-value pair");a[c=u[0]]=(l=a[c])?A.isArray(l)?[...l,u[1]]:[l,u[1]]:u[1]}i(a,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=lr(t),t){const r=A.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return db(s);if(A.isFunction(n))return n.call(this,s,r);if(A.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=lr(t),t){const r=A.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||po(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=lr(i),i){const a=A.findKey(r,i);a&&(!n||po(r,r[a],a,n))&&(delete r[a],s=!0)}}return A.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||po(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return A.forEach(this,(s,o)=>{const i=A.findKey(r,o);if(i){n[i]=ss(s),delete n[o];return}const a=t?hb(o):String(o).trim();a!==o&&delete n[o],n[a]=ss(s),r[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return A.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&A.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` `)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[bl]=this[bl]={accessors:{}}).accessors,s=this.prototype;function o(i){const a=lr(i);r[a]||(pb(s,i),r[a]=!0)}return A.isArray(t)?t.forEach(o):o(t),this}};it.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);A.reduceDescriptors(it.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});A.freezeMethods(it);function go(e,t){const n=this||Kr,r=t||n,s=it.from(r.headers);let o=r.data;return A.forEach(e,function(a){o=a.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function bf(e){return!!(e&&e.__CANCEL__)}function rr(e,t,n){se.call(this,e??"canceled",se.ERR_CANCELED,t,n),this.name="CanceledError"}A.inherits(rr,se,{__CANCEL__:!0});function Ef(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new se("Request failed with status code "+n.status,[se.ERR_BAD_REQUEST,se.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function gb(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function _b(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(l){const c=Date.now(),u=r[o];i||(i=c),n[s]=l,r[s]=c;let f=o,d=0;for(;f!==s;)d+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),c-i{n=u,s=null,o&&(clearTimeout(o),o=null),e(...c)};return[(...c)=>{const u=Date.now(),f=u-n;f>=r?i(c,u):(s=c,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const bs=(e,t,n=3)=>{let r=0;const s=_b(50,250);return yb(o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,l=i-r,c=s(l),u=i<=a;r=i;const f={loaded:i,total:a,progress:a?i/a:void 0,bytes:l,rate:c||void 0,estimated:c&&a&&u?(a-i)/c:void 0,event:o,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(f)},n)},El=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},vl=e=>(...t)=>A.asap(()=>e(...t)),bb=ze.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,ze.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(ze.origin),ze.navigator&&/(msie|trident)/i.test(ze.navigator.userAgent)):()=>!0,Eb=ze.hasStandardBrowserEnv?{write(e,t,n,r,s,o){const i=[e+"="+encodeURIComponent(t)];A.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),A.isString(r)&&i.push("path="+r),A.isString(s)&&i.push("domain="+s),o===!0&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function vb(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Sb(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function vf(e,t,n){let r=!vb(t);return e&&(r||n==!1)?Sb(e,t):t}const Sl=e=>e instanceof it?{...e}:e;function Fn(e,t){t=t||{};const n={};function r(c,u,f,d){return A.isPlainObject(c)&&A.isPlainObject(u)?A.merge.call({caseless:d},c,u):A.isPlainObject(u)?A.merge({},u):A.isArray(u)?u.slice():u}function s(c,u,f,d){if(A.isUndefined(u)){if(!A.isUndefined(c))return r(void 0,c,f,d)}else return r(c,u,f,d)}function o(c,u){if(!A.isUndefined(u))return r(void 0,u)}function i(c,u){if(A.isUndefined(u)){if(!A.isUndefined(c))return r(void 0,c)}else return r(void 0,u)}function a(c,u,f){if(f in t)return r(c,u);if(f in e)return r(void 0,c)}const l={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(c,u,f)=>s(Sl(c),Sl(u),f,!0)};return A.forEach(Object.keys({...e,...t}),function(u){const f=l[u]||s,d=f(e[u],t[u],u);A.isUndefined(d)&&f!==a||(n[u]=d)}),n}const Sf=e=>{const t=Fn({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:a}=t;t.headers=i=it.from(i),t.url=gf(vf(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),a&&i.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):"")));let l;if(A.isFormData(n)){if(ze.hasStandardBrowserEnv||ze.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if((l=i.getContentType())!==!1){const[c,...u]=l?l.split(";").map(f=>f.trim()).filter(Boolean):[];i.setContentType([c||"multipart/form-data",...u].join("; "))}}if(ze.hasStandardBrowserEnv&&(r&&A.isFunction(r)&&(r=r(t)),r||r!==!1&&bb(t.url))){const c=s&&o&&Eb.read(o);c&&i.set(s,c)}return t},wb=typeof XMLHttpRequest<"u",Tb=wb&&function(e){return new Promise(function(n,r){const s=Sf(e);let o=s.data;const i=it.from(s.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:c}=s,u,f,d,p,E;function S(){p&&p(),E&&E(),s.cancelToken&&s.cancelToken.unsubscribe(u),s.signal&&s.signal.removeEventListener("abort",u)}let w=new XMLHttpRequest;w.open(s.method.toUpperCase(),s.url,!0),w.timeout=s.timeout;function O(){if(!w)return;const b=it.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),L={data:!a||a==="text"||a==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:b,config:e,request:w};Ef(function(M){n(M),S()},function(M){r(M),S()},L),w=null}"onloadend"in w?w.onloadend=O:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)||setTimeout(O)},w.onabort=function(){w&&(r(new se("Request aborted",se.ECONNABORTED,e,w)),w=null)},w.onerror=function(){r(new se("Network Error",se.ERR_NETWORK,e,w)),w=null},w.ontimeout=function(){let v=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const L=s.transitional||_f;s.timeoutErrorMessage&&(v=s.timeoutErrorMessage),r(new se(v,L.clarifyTimeoutError?se.ETIMEDOUT:se.ECONNABORTED,e,w)),w=null},o===void 0&&i.setContentType(null),"setRequestHeader"in w&&A.forEach(i.toJSON(),function(v,L){w.setRequestHeader(L,v)}),A.isUndefined(s.withCredentials)||(w.withCredentials=!!s.withCredentials),a&&a!=="json"&&(w.responseType=s.responseType),c&&([d,E]=bs(c,!0),w.addEventListener("progress",d)),l&&w.upload&&([f,p]=bs(l),w.upload.addEventListener("progress",f),w.upload.addEventListener("loadend",p)),(s.cancelToken||s.signal)&&(u=b=>{w&&(r(!b||b.type?new rr(null,e,w):b),w.abort(),w=null)},s.cancelToken&&s.cancelToken.subscribe(u),s.signal&&(s.signal.aborted?u():s.signal.addEventListener("abort",u)));const k=gb(s.url);if(k&&ze.protocols.indexOf(k)===-1){r(new se("Unsupported protocol "+k+":",se.ERR_BAD_REQUEST,e));return}w.send(o||null)})},Cb=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(c){if(!s){s=!0,a();const u=c instanceof Error?c:this.reason;r.abort(u instanceof se?u:new rr(u instanceof Error?u.message:u))}};let i=t&&setTimeout(()=>{i=null,o(new se(`timeout ${t} of ms exceeded`,se.ETIMEDOUT))},t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(c=>{c.unsubscribe?c.unsubscribe(o):c.removeEventListener("abort",o)}),e=null)};e.forEach(c=>c.addEventListener("abort",o));const{signal:l}=r;return l.unsubscribe=()=>A.asap(a),l}},Lb=function*(e,t){let n=e.byteLength;if(n{const s=Pb(e,t);let o=0,i,a=l=>{i||(i=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await s.next();if(c){a(),l.close();return}let f=u.byteLength;if(n){let d=o+=f;n(d)}l.enqueue(new Uint8Array(u))}catch(c){throw a(c),c}},cancel(l){return a(l),s.return()}},{highWaterMark:2})},js=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",wf=js&&typeof ReadableStream=="function",Ob=js&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),Tf=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Nb=wf&&Tf(()=>{let e=!1;const t=new Request(ze.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),Tl=64*1024,Ko=wf&&Tf(()=>A.isReadableStream(new Response("").body)),Es={stream:Ko&&(e=>e.body)};js&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!Es[t]&&(Es[t]=A.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new se(`Response type '${t}' is not supported`,se.ERR_NOT_SUPPORT,r)})})})(new Response);const Ab=async e=>{if(e==null)return 0;if(A.isBlob(e))return e.size;if(A.isSpecCompliantForm(e))return(await new Request(ze.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(A.isArrayBufferView(e)||A.isArrayBuffer(e))return e.byteLength;if(A.isURLSearchParams(e)&&(e=e+""),A.isString(e))return(await Ob(e)).byteLength},Ib=async(e,t)=>{const n=A.toFiniteNumber(e.getContentLength());return n??Ab(t)},kb=js&&(async e=>{let{url:t,method:n,data:r,signal:s,cancelToken:o,timeout:i,onDownloadProgress:a,onUploadProgress:l,responseType:c,headers:u,withCredentials:f="same-origin",fetchOptions:d}=Sf(e);c=c?(c+"").toLowerCase():"text";let p=Cb([s,o&&o.toAbortSignal()],i),E;const S=p&&p.unsubscribe&&(()=>{p.unsubscribe()});let w;try{if(l&&Nb&&n!=="get"&&n!=="head"&&(w=await Ib(u,r))!==0){let L=new Request(t,{method:"POST",body:r,duplex:"half"}),N;if(A.isFormData(r)&&(N=L.headers.get("content-type"))&&u.setContentType(N),L.body){const[M,$]=El(w,bs(vl(l)));r=wl(L.body,Tl,M,$)}}A.isString(f)||(f=f?"include":"omit");const O="credentials"in Request.prototype;E=new Request(t,{...d,signal:p,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:O?f:void 0});let k=await fetch(E,d);const b=Ko&&(c==="stream"||c==="response");if(Ko&&(a||b&&S)){const L={};["status","statusText","headers"].forEach(R=>{L[R]=k[R]});const N=A.toFiniteNumber(k.headers.get("content-length")),[M,$]=a&&El(N,bs(vl(a),!0))||[];k=new Response(wl(k.body,Tl,M,()=>{$&&$(),S&&S()}),L)}c=c||"text";let v=await Es[A.findKey(Es,c)||"text"](k,e);return!b&&S&&S(),await new Promise((L,N)=>{Ef(L,N,{data:v,headers:it.from(k.headers),status:k.status,statusText:k.statusText,config:e,request:E})})}catch(O){throw S&&S(),O&&O.name==="TypeError"&&/Load failed|fetch/i.test(O.message)?Object.assign(new se("Network Error",se.ERR_NETWORK,e,E),{cause:O.cause||O}):se.from(O,O&&O.code,e,E)}}),Go={http:Yy,xhr:Tb,fetch:kb};A.forEach(Go,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Cl=e=>`- ${e}`,xb=e=>A.isFunction(e)||e===null||e===!1,Cf={getAdapter:e=>{e=A.isArray(e)?e:[e];const{length:t}=e;let n,r;const s={};for(let o=0;o`adapter ${a} `+(l===!1?"is not supported by the environment":"is not available in the build"));let i=t?o.length>1?`since : `+o.map(Cl).join(` `):" "+Cl(o[0]):"as no adapter specified";throw new se("There is no suitable adapter to dispatch the request "+i,"ERR_NOT_SUPPORT")}return r},adapters:Go};function _o(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new rr(null,e)}function Ll(e){return _o(e),e.headers=it.from(e.headers),e.data=go.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Cf.getAdapter(e.adapter||Kr.adapter)(e).then(function(r){return _o(e),r.data=go.call(e,e.transformResponse,r),r.headers=it.from(r.headers),r},function(r){return bf(r)||(_o(e),r&&r.response&&(r.response.data=go.call(e,e.transformResponse,r.response),r.response.headers=it.from(r.response.headers))),Promise.reject(r)})}const Lf="1.11.0",Ks={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ks[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Pl={};Ks.transitional=function(t,n,r){function s(o,i){return"[Axios v"+Lf+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,a)=>{if(t===!1)throw new se(s(i," has been removed"+(n?" in "+n:"")),se.ERR_DEPRECATED);return n&&!Pl[i]&&(Pl[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,a):!0}};Ks.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Fb(e,t,n){if(typeof e!="object")throw new se("options must be an object",se.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const a=e[o],l=a===void 0||i(a,o,e);if(l!==!0)throw new se("option "+o+" must be "+l,se.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new se("Unknown option "+o,se.ERR_BAD_OPTION)}}const os={assertOptions:Fb,validators:Ks},Pt=os.validators;let kn=class{constructor(t){this.defaults=t||{},this.interceptors={request:new yl,response:new yl}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Fn(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&os.assertOptions(r,{silentJSONParsing:Pt.transitional(Pt.boolean),forcedJSONParsing:Pt.transitional(Pt.boolean),clarifyTimeoutError:Pt.transitional(Pt.boolean)},!1),s!=null&&(A.isFunction(s)?n.paramsSerializer={serialize:s}:os.assertOptions(s,{encode:Pt.function,serialize:Pt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),os.assertOptions(n,{baseUrl:Pt.spelling("baseURL"),withXsrfToken:Pt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&A.merge(o.common,o[n.method]);o&&A.forEach(["delete","get","head","post","put","patch","common"],E=>{delete o[E]}),n.headers=it.concat(i,o);const a=[];let l=!0;this.interceptors.request.forEach(function(S){typeof S.runWhen=="function"&&S.runWhen(n)===!1||(l=l&&S.synchronous,a.unshift(S.fulfilled,S.rejected))});const c=[];this.interceptors.response.forEach(function(S){c.push(S.fulfilled,S.rejected)});let u,f=0,d;if(!l){const E=[Ll.bind(this),void 0];for(E.unshift(...a),E.push(...c),d=E.length,u=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(a=>{r.subscribe(a),o=a}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,a){r.reason||(r.reason=new rr(o,i,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Pf(function(s){t=s}),cancel:t}}};function Db(e){return function(n){return e.apply(null,n)}}function Ub(e){return A.isObject(e)&&e.isAxiosError===!0}const qo={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(qo).forEach(([e,t])=>{qo[t]=e});function Rf(e){const t=new kn(e),n=rf(kn.prototype.request,t);return A.extend(n,kn.prototype,t,{allOwnKeys:!0}),A.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Rf(Fn(e,s))},n}const Ae=Rf(Kr);Ae.Axios=kn;Ae.CanceledError=rr;Ae.CancelToken=Mb;Ae.isCancel=bf;Ae.VERSION=Lf;Ae.toFormData=Vs;Ae.AxiosError=se;Ae.Cancel=Ae.CanceledError;Ae.all=function(t){return Promise.all(t)};Ae.spread=Db;Ae.isAxiosError=Ub;Ae.mergeConfig=Fn;Ae.AxiosHeaders=it;Ae.formToJSON=e=>yf(A.isHTMLForm(e)?new FormData(e):e);Ae.getAdapter=Cf.getAdapter;Ae.HttpStatusCode=qo;Ae.default=Ae;const{Axios:iE,AxiosError:aE,CanceledError:lE,isCancel:cE,CancelToken:uE,VERSION:fE,all:dE,Cancel:mE,isAxiosError:hE,spread:pE,toFormData:gE,AxiosHeaders:_E,HttpStatusCode:yE,formToJSON:bE,getAdapter:EE,mergeConfig:vE}=Ae,$b="",Of=$b,Ie=Ae.create({baseURL:Of,timeout:tf.REQUEST_TIMEOUT,headers:{"Content-Type":"application/json"}});Ie.interceptors.request.use(e=>{const t=localStorage.getItem("token");return t&&(e.headers.Authorization=`Bearer ${t}`),e.url&&!e.url.startsWith("http")&&(e.url=`${Of}/${e.url.replace(/^\//,"")}`),e},e=>Promise.reject(e));Ie.interceptors.response.use(e=>e.data,e=>{if(e.response){const{status:t}=e.response;switch(t){case 401:localStorage.removeItem("token"),window.location.hash!=="#/login"&&(window.location.href="/#/login");break}}else e.request;return Promise.reject(e)});class Bb{static async getConfig(){return Ie.get("/admin/config/get")}static async getUserConfig(){return Ie.post("/")}static async updateConfig(t){return Ie.patch("/admin/config/update",t)}}class SE{static async uploadFile(t,n){const r=new FormData;return r.append("file",t),Ie.post("/share/file/",r,{headers:{"Content-Type":"multipart/form-data"},onUploadProgress:s=>{if(n&&s.total){const o={loaded:s.loaded,total:s.total,percentage:Math.round(s.loaded*100/s.total)};n(o)}}})}static async uploadText(t){return Ie.post("/share/text/",{content:t})}static async getFile(t){return Ie.get(`/file/${t}`)}static async downloadFile(t){return(await Ie.get(`/download/${t}`,{responseType:"blob"})).data}static async deleteFile(t){return Ie.post("/admin/file/delete",{id:t})}static async getFileList(t=1,n=10){return Ie.get("/admin/file/list",{params:{page:t,size:n}})}static async getAdminFileList(t){return Ie.get("/admin/file/list",{params:t})}static async updateFile(t){return Ie.patch("/admin/file/update",t)}static async deleteAdminFile(t){return Ie.delete("/admin/file/delete",{data:{id:t}})}static async downloadAdminFile(t){return Ie.get("/admin/file/download",{params:{id:t},responseType:"blob"})}}class wE{static async login(t){return Ie.post("/admin/login",{password:t})}static async logout(){return Ie.post("/admin/logout")}static async verifyToken(){return Ie.get("/admin/verify")}}class TE{static async getDashboardStats(){return Ie.get("/admin/dashboard")}static async getDashboard(){return Ie.get("/admin/dashboard")}}function Hb(){const e=st(!1),t=st($e.SYSTEM),n=()=>window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches,r=()=>{const f=localStorage.getItem(hl.COLOR_MODE);return f&&Object.values($e).includes(f)?f:null},s=f=>{t.value=f,localStorage.setItem(hl.COLOR_MODE,f),f===$e.SYSTEM?e.value=n():e.value=f===$e.DARK,o()},o=()=>{const f=document.documentElement;e.value?f.classList.add("dark"):f.classList.remove("dark")},i=()=>{t.value===$e.LIGHT?s($e.DARK):t.value===$e.DARK?s($e.SYSTEM):s($e.LIGHT)},a=()=>{if(window.matchMedia){const f=window.matchMedia("(prefers-color-scheme: dark)"),d=p=>{t.value===$e.SYSTEM&&(e.value=p.matches,o())};return f.addEventListener("change",d),()=>{f.removeEventListener("change",d)}}return()=>{}},l=()=>{const f=r();return s(f||$e.SYSTEM),a()},c=_e(()=>{switch(t.value){case $e.LIGHT:return"sun";case $e.DARK:return"moon";case $e.SYSTEM:return"monitor";default:return"monitor"}}),u=_e(()=>{switch(t.value){case $e.LIGHT:return"浅色模式";case $e.DARK:return"深色模式";case $e.SYSTEM:return"跟随系统";default:return"跟随系统"}});return{isDarkMode:e,themeMode:t,themeIcon:c,themeLabel:u,setThemeMode:s,toggleTheme:i,initTheme:l,checkSystemColorScheme:n}}const Wb={class:"fixed top-4 right-4 z-50 flex items-center space-x-3"},Vb={key:0,class:"loading-overlay"},jb=Xt({__name:"App",setup(e){const t=st(!1),n=_p(),r=yp(),s=nf(),{isDarkMode:o,toggleTheme:i,initTheme:a}=Hb();let l=null;return Zn(()=>{l=a(),Bb.getUserConfig().then(c=>{c.code===200&&c.detail&&(localStorage.setItem("config",JSON.stringify(c.detail)),c.detail.notify_title&&c.detail.notify_content&&localStorage.getItem("notify")!==c.detail.notify_title+c.detail.notify_content&&(localStorage.setItem("notify",c.detail.notify_title+c.detail.notify_content),s.showAlert(c.detail.notify_title+": "+c.detail.notify_content,"success")))})}),er(()=>{l&&l()}),n.beforeEach((c,u,f)=>{t.value=!0,f()}),n.afterEach(()=>{setTimeout(()=>{t.value=!1},200)}),In("isDarkMode",o),In("toggleTheme",i),In("isLoading",t),(c,u)=>(Ve(),jt("div",{class:At(["app-container",ve(o)?"dark":"light"])},[Be("div",Wb,[Pe(X_),Pe(Ip,{modelValue:ve(o),"onUpdate:modelValue":u[0]||(u[0]=f=>we(o)?o.value=f:null)},null,8,["modelValue"])]),t.value?(Ve(),jt("div",Vb,[...u[1]||(u[1]=[Be("div",{class:"loading-spinner"},null,-1)])])):Kc("",!0),Pe(ve(bu),null,{default:wr(({Component:f})=>[Pe(Jc,{name:"fade",mode:"out-in"},{default:wr(()=>[(Ve(),dn(Sc(f),{key:ve(r).fullPath}))]),_:2},1024)]),_:1}),Pe(ly)],2))}}),Kb="modulepreload",Gb=function(e){return"/"+e},Rl={},Pn=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let l=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),a=i?.nonce||i?.getAttribute("nonce");s=l(n.map(c=>{if(c=Gb(c),c in Rl)return;Rl[c]=!0;const u=c.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":Kb,u||(d.as="script"),d.crossOrigin="",d.href=c,a&&d.setAttribute("nonce",a),document.head.appendChild(d),u)return new Promise((p,E)=>{d.addEventListener("load",p),d.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return s.then(i=>{for(const a of i||[])a.status==="rejected"&&o(a.reason);return t().catch(o)})},qb=()=>Pn(()=>import("./SendFileView-BOsMUoIt.js"),__vite__mapDeps([0,1,2,3,4,5,6])),Yb=pp({history:Kh("/"),routes:[{path:"/",name:"Retrieve",component:()=>Pn(()=>import("./RetrievewFileView-B44L-RDl.js"),__vite__mapDeps([7,1,2,3,4,8,5,9]))},{path:"/send",name:"Send",component:qb},{path:"/admin",name:"Manage",component:()=>Pn(()=>import("./AdminLayout-RFCv5MG9.js"),__vite__mapDeps([10,2,11])),redirect:"/admin/dashboard",children:[{path:"/admin/dashboard",name:"Dashboard",component:()=>Pn(()=>import("./DashboardView-Wzfzsof2.js"),__vite__mapDeps([12,4,8]))},{path:"/admin/files",name:"FileManage",component:()=>Pn(()=>import("./FileManageView-D_aFzaTt.js"),__vite__mapDeps([13,4,5,14]))},{path:"/admin/settings",name:"Settings",component:()=>Pn(()=>import("./SystemSettingsView-D-yv3wtL.js"),[])}]},{path:"/login",name:"Login",component:()=>Pn(()=>import("./LoginView-Dl9p7s8x.js"),__vite__mapDeps([15,2,16]))}]}),Gs=rh(jb);Gs.use(ih());Gs.use(Yb);Gs.use(ef);Gs.mount("#app");export{Gm as A,_p as B,Ie as C,dn as D,Jb as E,Me as F,mh as G,yp as H,hn as I,yc as J,dh as K,er as L,Sc as M,Dr as N,nE as O,SE as P,Bb as Q,Zb as R,TE as S,Jc as T,rE as U,hl as V,wE as W,Ap as X,ay as _,jt as a,Be as b,Qt as c,Xt as d,ve as e,Zn as f,_e as g,tE as h,Xe as i,Kc as j,Pe as k,nf as l,wr as m,At as n,Ve as o,zb as p,eE as q,st as r,Cs as s,br as t,Hr as u,Qb as v,un as w,Tc as x,fm as y,Xb as z}; +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Fn(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&os.assertOptions(r,{silentJSONParsing:Pt.transitional(Pt.boolean),forcedJSONParsing:Pt.transitional(Pt.boolean),clarifyTimeoutError:Pt.transitional(Pt.boolean)},!1),s!=null&&(A.isFunction(s)?n.paramsSerializer={serialize:s}:os.assertOptions(s,{encode:Pt.function,serialize:Pt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),os.assertOptions(n,{baseUrl:Pt.spelling("baseURL"),withXsrfToken:Pt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&A.merge(o.common,o[n.method]);o&&A.forEach(["delete","get","head","post","put","patch","common"],E=>{delete o[E]}),n.headers=it.concat(i,o);const a=[];let l=!0;this.interceptors.request.forEach(function(S){typeof S.runWhen=="function"&&S.runWhen(n)===!1||(l=l&&S.synchronous,a.unshift(S.fulfilled,S.rejected))});const c=[];this.interceptors.response.forEach(function(S){c.push(S.fulfilled,S.rejected)});let u,f=0,d;if(!l){const E=[Ll.bind(this),void 0];for(E.unshift(...a),E.push(...c),d=E.length,u=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(a=>{r.subscribe(a),o=a}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,a){r.reason||(r.reason=new rr(o,i,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Pf(function(s){t=s}),cancel:t}}};function Db(e){return function(n){return e.apply(null,n)}}function Ub(e){return A.isObject(e)&&e.isAxiosError===!0}const qo={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(qo).forEach(([e,t])=>{qo[t]=e});function Rf(e){const t=new kn(e),n=rf(kn.prototype.request,t);return A.extend(n,kn.prototype,t,{allOwnKeys:!0}),A.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Rf(Fn(e,s))},n}const Ae=Rf(Kr);Ae.Axios=kn;Ae.CanceledError=rr;Ae.CancelToken=Mb;Ae.isCancel=bf;Ae.VERSION=Lf;Ae.toFormData=Vs;Ae.AxiosError=se;Ae.Cancel=Ae.CanceledError;Ae.all=function(t){return Promise.all(t)};Ae.spread=Db;Ae.isAxiosError=Ub;Ae.mergeConfig=Fn;Ae.AxiosHeaders=it;Ae.formToJSON=e=>yf(A.isHTMLForm(e)?new FormData(e):e);Ae.getAdapter=Cf.getAdapter;Ae.HttpStatusCode=qo;Ae.default=Ae;const{Axios:iE,AxiosError:aE,CanceledError:lE,isCancel:cE,CancelToken:uE,VERSION:fE,all:dE,Cancel:mE,isAxiosError:hE,spread:pE,toFormData:gE,AxiosHeaders:_E,HttpStatusCode:yE,formToJSON:bE,getAdapter:EE,mergeConfig:vE}=Ae,$b="",Of=$b,Ie=Ae.create({baseURL:Of,timeout:tf.REQUEST_TIMEOUT,headers:{"Content-Type":"application/json"}});Ie.interceptors.request.use(e=>{const t=localStorage.getItem("token");return t&&(e.headers.Authorization=`Bearer ${t}`),e.url&&!e.url.startsWith("http")&&(e.url=`${Of}/${e.url.replace(/^\//,"")}`),e},e=>Promise.reject(e));Ie.interceptors.response.use(e=>e.data,e=>{if(e.response){const{status:t}=e.response;switch(t){case 401:localStorage.removeItem("token"),window.location.hash!=="#/login"&&(window.location.href="/#/login");break}}else e.request;return Promise.reject(e)});class Bb{static async getConfig(){return Ie.get("/admin/config/get")}static async getUserConfig(){return Ie.post("/")}static async updateConfig(t){return Ie.patch("/admin/config/update",t)}}class SE{static async uploadFile(t,n){const r=new FormData;return r.append("file",t),Ie.post("/share/file/",r,{headers:{"Content-Type":"multipart/form-data"},onUploadProgress:s=>{if(n&&s.total){const o={loaded:s.loaded,total:s.total,percentage:Math.round(s.loaded*100/s.total)};n(o)}}})}static async uploadText(t){return Ie.post("/share/text/",{content:t})}static async getFile(t){return Ie.get(`/file/${t}`)}static async downloadFile(t){return(await Ie.get(`/download/${t}`,{responseType:"blob"})).data}static async deleteFile(t){return Ie.post("/admin/file/delete",{id:t})}static async getFileList(t=1,n=10){return Ie.get("/admin/file/list",{params:{page:t,size:n}})}static async getAdminFileList(t){return Ie.get("/admin/file/list",{params:t})}static async updateFile(t){return Ie.patch("/admin/file/update",t)}static async deleteAdminFile(t){return Ie.delete("/admin/file/delete",{data:{id:t}})}static async downloadAdminFile(t){return Ie.get("/admin/file/download",{params:{id:t},responseType:"blob"})}}class wE{static async login(t){return Ie.post("/admin/login",{password:t})}static async logout(){return Ie.post("/admin/logout")}static async verifyToken(){return Ie.get("/admin/verify")}}class TE{static async getDashboardStats(){return Ie.get("/admin/dashboard")}static async getDashboard(){return Ie.get("/admin/dashboard")}}function Hb(){const e=st(!1),t=st($e.SYSTEM),n=()=>window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches,r=()=>{const f=localStorage.getItem(hl.COLOR_MODE);return f&&Object.values($e).includes(f)?f:null},s=f=>{t.value=f,localStorage.setItem(hl.COLOR_MODE,f),f===$e.SYSTEM?e.value=n():e.value=f===$e.DARK,o()},o=()=>{const f=document.documentElement;e.value?f.classList.add("dark"):f.classList.remove("dark")},i=()=>{t.value===$e.LIGHT?s($e.DARK):t.value===$e.DARK?s($e.SYSTEM):s($e.LIGHT)},a=()=>{if(window.matchMedia){const f=window.matchMedia("(prefers-color-scheme: dark)"),d=p=>{t.value===$e.SYSTEM&&(e.value=p.matches,o())};return f.addEventListener("change",d),()=>{f.removeEventListener("change",d)}}return()=>{}},l=()=>{const f=r();return s(f||$e.SYSTEM),a()},c=_e(()=>{switch(t.value){case $e.LIGHT:return"sun";case $e.DARK:return"moon";case $e.SYSTEM:return"monitor";default:return"monitor"}}),u=_e(()=>{switch(t.value){case $e.LIGHT:return"浅色模式";case $e.DARK:return"深色模式";case $e.SYSTEM:return"跟随系统";default:return"跟随系统"}});return{isDarkMode:e,themeMode:t,themeIcon:c,themeLabel:u,setThemeMode:s,toggleTheme:i,initTheme:l,checkSystemColorScheme:n}}const Wb={class:"fixed top-4 right-4 z-50 flex items-center space-x-3"},Vb={key:0,class:"loading-overlay"},jb=Xt({__name:"App",setup(e){const t=st(!1),n=_p(),r=yp(),s=nf(),{isDarkMode:o,toggleTheme:i,initTheme:a}=Hb();let l=null;return Zn(()=>{l=a(),Bb.getUserConfig().then(c=>{c.code===200&&c.detail&&(localStorage.setItem("config",JSON.stringify(c.detail)),c.detail.notify_title&&c.detail.notify_content&&localStorage.getItem("notify")!==c.detail.notify_title+c.detail.notify_content&&(localStorage.setItem("notify",c.detail.notify_title+c.detail.notify_content),s.showAlert(c.detail.notify_title+": "+c.detail.notify_content,"success")))})}),er(()=>{l&&l()}),n.beforeEach((c,u,f)=>{t.value=!0,f()}),n.afterEach(()=>{setTimeout(()=>{t.value=!1},200)}),In("isDarkMode",o),In("toggleTheme",i),In("isLoading",t),(c,u)=>(Ve(),jt("div",{class:At(["app-container",ve(o)?"dark":"light"])},[Be("div",Wb,[Pe(X_),Pe(Ip,{modelValue:ve(o),"onUpdate:modelValue":u[0]||(u[0]=f=>we(o)?o.value=f:null)},null,8,["modelValue"])]),t.value?(Ve(),jt("div",Vb,[...u[1]||(u[1]=[Be("div",{class:"loading-spinner"},null,-1)])])):Kc("",!0),Pe(ve(bu),null,{default:wr(({Component:f})=>[Pe(Jc,{name:"fade",mode:"out-in"},{default:wr(()=>[(Ve(),dn(Sc(f),{key:ve(r).fullPath}))]),_:2},1024)]),_:1}),Pe(ly)],2))}}),Kb="modulepreload",Gb=function(e){return"/"+e},Rl={},Pn=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let l=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),a=i?.nonce||i?.getAttribute("nonce");s=l(n.map(c=>{if(c=Gb(c),c in Rl)return;Rl[c]=!0;const u=c.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":Kb,u||(d.as="script"),d.crossOrigin="",d.href=c,a&&d.setAttribute("nonce",a),document.head.appendChild(d),u)return new Promise((p,E)=>{d.addEventListener("load",p),d.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return s.then(i=>{for(const a of i||[])a.status==="rejected"&&o(a.reason);return t().catch(o)})},qb=()=>Pn(()=>import("./SendFileView-BqULfUDl.js"),__vite__mapDeps([0,1,2,3,4,5,6])),Yb=pp({history:Kh("/"),routes:[{path:"/",name:"Retrieve",component:()=>Pn(()=>import("./RetrievewFileView-DWBfGPUc.js"),__vite__mapDeps([7,1,2,3,4,8,5,9]))},{path:"/send",name:"Send",component:qb},{path:"/admin",name:"Manage",component:()=>Pn(()=>import("./AdminLayout-CoImnOQO.js"),__vite__mapDeps([10,2,11])),redirect:"/admin/dashboard",children:[{path:"/admin/dashboard",name:"Dashboard",component:()=>Pn(()=>import("./DashboardView-BQRsJrnN.js"),__vite__mapDeps([12,4,8]))},{path:"/admin/files",name:"FileManage",component:()=>Pn(()=>import("./FileManageView-CZQWWk0t.js"),__vite__mapDeps([13,4,5,14]))},{path:"/admin/settings",name:"Settings",component:()=>Pn(()=>import("./SystemSettingsView-CE4x9hEg.js"),[])}]},{path:"/login",name:"Login",component:()=>Pn(()=>import("./LoginView-B4xHkhLy.js"),__vite__mapDeps([15,2,16]))}]}),Gs=rh(jb);Gs.use(ih());Gs.use(Yb);Gs.use(ef);Gs.mount("#app");export{Gm as A,_p as B,Ie as C,dn as D,Jb as E,Me as F,mh as G,yp as H,hn as I,yc as J,dh as K,er as L,Sc as M,Dr as N,nE as O,SE as P,Bb as Q,Zb as R,TE as S,Jc as T,rE as U,hl as V,wE as W,Ap as X,ay as _,jt as a,Be as b,Qt as c,Xt as d,ve as e,Zn as f,_e as g,tE as h,Xe as i,Kc as j,Pe as k,nf as l,wr as m,At as n,Ve as o,zb as p,eE as q,st as r,Cs as s,br as t,Hr as u,Qb as v,un as w,Tc as x,fm as y,Xb as z}; diff --git a/themes/2024/assets/trash-Cw4_1PxO.js b/themes/2024/assets/trash-BTMfj7si.js similarity index 89% rename from themes/2024/assets/trash-Cw4_1PxO.js rename to themes/2024/assets/trash-BTMfj7si.js index add0a0c..60ba694 100644 --- a/themes/2024/assets/trash-Cw4_1PxO.js +++ b/themes/2024/assets/trash-BTMfj7si.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-C9gpBPbG.js";/** +import{c as a}from"./index-14Tp7zPK.js";/** * @license lucide-vue-next v0.535.0 - ISC * * This source code is licensed under the ISC license. diff --git a/themes/2024/index.html b/themes/2024/index.html index ad962fd..605b289 100644 --- a/themes/2024/index.html +++ b/themes/2024/index.html @@ -13,7 +13,7 @@ {{title}} - +