Files
FileShare/server/web/dist/assets/SettingsView-CjSvbH8z.js
T
SKYMirror 7f060dd0e4 26.9(安全审计修复版)
Go 1.27.1 (Gin+GORM) + Vue 3 文件快传服务:

- 安全审计全部修复(docs/security-audit-2026-09-05.md):
  bcrypt 密码哈希与自动升级、presign 直传服务端大小/内容校验、
  全局请求体上限、依赖升级(govulncheck 0 命中)、janitor 后台清理、
  管理端审计动作落库、/admin CORS 收紧、通知内容白名单净化、
  会话默认 7 天、限流缓存故障降级、robots.txt 端点等
- 前端:取件链接复制修复(不再重复拼接提取码)、markdown 净化器加固
- Redis 支持库号(FCB_REDIS_DB / redis://…/db URL)
- 文档:docs/api/* 与 openapi.yaml 同步最新行为(robots.txt、
  提码 5 位起、chunk 32MiB 上限、admin 审计动作等)

验证:gofmt/go vet/go test 全绿;二进制端到端冒烟通过
2026-09-05 04:22:41 +08:00

130 lines
40 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{a0 as ge,h as F,a1 as Ze,a2 as Me,a3 as Xe,a4 as Qe,a5 as Pe,a6 as et,o as w,a7 as ze,z as ce,c as y,F as G,b as e,a8 as We,a9 as tt,e as st,aa as nt,G as Fe,A as it,ab as ot,ac as at,j as V,ad as Ae,ae as K,J as lt,I as Ye,af as rt,P as dt,ag as ct,ah as ut,d as ve,ai as _t,aj as mt,ak as Ue,al as b,n as Re,am as Ge,an as ft,ao as ht,ap as pt,aq as I,ar as Ee,as as qe,at as Q,au as gt,u as vt,i as bt,a as wt,t as l,f as o,q as M,w as He,C as f,D as v,g as L,Z as _e,s as Oe,R as ke,S as p,H as re,B as yt,_ as xt}from"./index-DYsKpclu.js";import{f as kt,g as St,h as De,i as Ct}from"./admin-DEOkRyTC.js";import{u as Bt}from"./auth-B7MDTgxJ.js";function Vt(s={},t={defaultBordered:!0}){const d=ge(Me,null);return{inlineThemeDisabled:d?.inlineThemeDisabled,mergedRtlRef:d?.mergedRtlRef,mergedComponentPropsRef:d?.mergedComponentPropsRef,mergedBreakpointsRef:d?.mergedBreakpointsRef,mergedBorderedRef:F(()=>{const{bordered:u}=s;return u!==void 0?u:d?.mergedBorderedRef.value??t.defaultBordered??!0}),mergedClsPrefixRef:d?d.mergedClsPrefixRef:Ze("n"),namespaceRef:F(()=>d?.mergedNamespaceRef.value)}}function $t(s,t,d){if(!t)return;const u=Xe(),_=ge(Me,null),h=()=>{const x=d.value;t.mount({id:x===void 0?s:x+s,head:!0,anchorMetaName:Pe,props:{bPrefix:x?`.${x}-`:void 0},ssr:u,parent:_?.styleMountTarget}),_?.preflightStyleDisabled||et.mount({id:"n-global",head:!0,anchorMetaName:Pe,ssr:u,parent:_?.styleMountTarget})};u?h():Qe(h)}function z(s,t=1){let d=Fe,u=!1;return typeof s=="function"&&(u=!0,w(),d=ce,s=s()),ze(s)?u?ce(Ie(s)):Ie(s):Array.isArray(s)?u?y(G,null,s.map(_=>z(()=>_)),-2):e(G,null,s.slice()):s==null||typeof s=="boolean"?d(We):d(tt,null,String(s),t)}function Ie(s){return s.el===null&&s.patchFlag!==-1||s.memo?s:nt(s)}const Tt=s=>typeof s=="function"||Object.prototype.toString.call(s)==="[object Object]"&&!ze(s)?s:{default:it(()=>[z(()=>s)])},C=s=>st(s)||null;function j(s){return typeof s=="string"?s.endsWith("px")?Number(s.slice(0,s.length-2)):Number(s):s}function Se(s){if(s!=null)return typeof s=="number"?`${s}px`:s.endsWith("px")?s:`${s}px`}function Ut(s,t,d,u){d||ot("useThemeClass","cssVarsRef is not passed");const _=ge(Me,null),h=_?.mergedThemeHashRef,x=_?.styleMountTarget,B=V(""),a=Xe();let k;const $=`__${s}`,R=()=>{let m=$;const T=t?t.value:void 0,N=h?.value;N&&(m+=`-${N}`),T&&(m+=`-${T}`);const{themeOverrides:E,builtinThemeOverrides:q}=u;E&&(m+=`-${Ae(JSON.stringify(E))}`),q&&(m+=`-${Ae(JSON.stringify(q))}`),B.value=m,k=()=>{const te=d.value;let se="";for(const ne in te)se+=`${ne}: ${te[ne]};`;K(`.${m}`,se).mount({id:m,ssr:a,parent:x}),k=void 0}};return at(()=>{R()}),{themeClass:B,onRender:()=>{k?.()}}}function Rt(s,t){return lt(s,d=>{d!==void 0&&(t.value=d)}),F(()=>s.value===void 0?t.value:s.value)}function Mt(){const s=V(!1);return Ye(()=>{s.value=!0}),rt(s)}function he(s,...t){if(Array.isArray(s))s.forEach(d=>he(d,...t));else return s(...t)}function Ne(s){return s.some(t=>ze(t)?!(t.type===We||t.type===G&&!Ne(t.children)):!0)?s:null}function ee(s,t){return t(s&&Ne(s())||null)}function Ce(s){return!(s&&Ne(s()))}const Le=ct("n-form-item");function zt(s,{defaultSize:t="medium",mergedSize:d,mergedDisabled:u}={}){const _=ge(Le,null);ut(Le,null);const h=F(d?()=>d(_):()=>{const{size:a}=s;if(a)return a;if(_){const{mergedSize:k}=_;if(k.value!==void 0)return k.value}return t}),x=F(u?()=>u(_):()=>{const{disabled:a}=s;return a!==void 0?a:_?_.disabled.value:!1}),B=F(()=>{const{status:a}=s;return a||_?.mergedValidationStatus.value});return dt(()=>{_&&_.restoreValidation()}),{mergedSizeRef:h,mergedDisabledRef:x,mergedStatusRef:B,nTriggerFormBlur(){_&&_.handleContentBlur()},nTriggerFormChange(){_&&_.handleContentChange()},nTriggerFormFocus(){_&&_.handleContentFocus()},nTriggerFormInput(){_&&_.handleContentInput()}}}var Je=ve({name:"BaseIconSwitchTransition",setup(s,{slots:t}){const d=Mt();return()=>(w(),ce(_t,{name:"icon-switch-transition",appear:d.value},Tt(t),1032,["appear"]))}});const{cubicBezierEaseInOut:Ft}=mt;function pe({originalTransform:s="",left:t=0,top:d=0,transition:u=`all .3s ${Ft} !important`}={}){return[K("&.icon-switch-transition-enter-from, &.icon-switch-transition-leave-to",{transform:`${s} scale(0.75)`,left:t,top:d,opacity:0}),K("&.icon-switch-transition-enter-to, &.icon-switch-transition-leave-from",{transform:`scale(1) ${s}`,left:t,top:d,opacity:1}),K("&.icon-switch-transition-enter-active, &.icon-switch-transition-leave-active",{transformOrigin:"center",position:"absolute",left:t,top:d,transition:u})]}var Nt=K([K("@keyframes rotator",`
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}`),Ue("base-loading",`
position: relative;
line-height: 0;
width: 1em;
height: 1em;
`,[b("transition-wrapper",`
position: absolute;
width: 100%;
height: 100%;
`,[pe()]),b("placeholder",`
position: absolute;
left: 50%;
top: 50%;
transform: translateX(-50%) translateY(-50%);
`,[pe({left:"50%",top:"50%",originalTransform:"translateX(-50%) translateY(-50%)"})]),b("container",`
animation: rotator 3s linear infinite both;
`,[b("icon",`
height: 1em;
width: 1em;
`)])])]);const Pt=["viewBox"],At=["values","dur"],Et=["stroke-width","cx","cy","r","stroke-dasharray","stroke-dashoffset"],Ht=["values","dur"],Ot=["values","dur"],Be="1.6s",Dt={strokeWidth:{type:Number,default:28},stroke:{type:String,default:void 0},scale:{type:Number,default:1},radius:{type:Number,default:100}};var It=ve({name:"BaseLoading",props:{clsPrefix:{type:String,required:!0},show:{type:Boolean,default:!0},...Dt},setup(s){$t("-base-loading",Nt,Ge(s,"clsPrefix"))},render(){const{clsPrefix:s,radius:t,strokeWidth:d,stroke:u,scale:_}=this,h=t/_;return w(),y("div",{class:C(`${s}-base-loading`),role:"img","aria-label":"loading"},[Fe(Je,null,{default:()=>this.show?(w(),y("div",{key:"icon",class:C(`${s}-base-loading__transition-wrapper`)},[e("div",{class:C(`${s}-base-loading__container`)},[(w(),y("svg",{class:C(`${s}-base-loading__icon`),viewBox:`0 0 ${2*h} ${2*h}`,xmlns:"http://www.w3.org/2000/svg",style:Re({color:u})},[e("g",null,[e("animateTransform",{attributeName:"transform",type:"rotate",values:`0 ${h} ${h};270 ${h} ${h}`,begin:"0s",dur:Be,fill:"freeze",repeatCount:"indefinite"},null,8,At),e("circle",{class:C(`${s}-base-loading__icon`),fill:"none",stroke:"currentColor","stroke-width":d,"stroke-linecap":"round",cx:h,cy:h,r:t-d/2,"stroke-dasharray":5.67*t,"stroke-dashoffset":18.48*t},[e("animateTransform",{attributeName:"transform",type:"rotate",values:`0 ${h} ${h};135 ${h} ${h};450 ${h} ${h}`,begin:"0s",dur:Be,fill:"freeze",repeatCount:"indefinite"},null,8,Ht),e("animate",{attributeName:"stroke-dashoffset",values:`${5.67*t};${1.42*t};${5.67*t}`,begin:"0s",dur:Be,fill:"freeze",repeatCount:"indefinite"},null,8,Ot)],10,Et)])],14,Pt))],2)],2)):(w(),y("div",{key:"placeholder",class:C(`${s}-base-loading__placeholder`)},[z(()=>this.$slots.default?.())],2))},1024)],2)}});function Lt(s){const{primaryColor:t,opacityDisabled:d,borderRadius:u,textColor3:_}=s;return{...ht,iconColor:_,textColor:"white",loadingColor:t,opacityDisabled:d,railColor:"rgba(0, 0, 0, .14)",railColorActive:t,buttonBoxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",buttonColor:"#FFF",railBorderRadiusSmall:u,railBorderRadiusMedium:u,railBorderRadiusLarge:u,buttonBorderRadiusSmall:u,buttonBorderRadiusMedium:u,buttonBorderRadiusLarge:u,boxShadowFocus:`0 0 0 2px ${pt(t,{alpha:.2})}`}}const jt={common:ft,self:Lt};var Kt=Ue("switch",`
height: var(--n-height);
min-width: var(--n-width);
vertical-align: middle;
user-select: none;
-webkit-user-select: none;
display: inline-flex;
outline: none;
justify-content: center;
align-items: center;
`,[b("children-placeholder",`
height: var(--n-rail-height);
display: flex;
flex-direction: column;
overflow: hidden;
pointer-events: none;
visibility: hidden;
`),b("rail-placeholder",`
display: flex;
flex-wrap: none;
`),b("button-placeholder",`
width: calc(1.75 * var(--n-rail-height));
height: var(--n-rail-height);
`),Ue("base-loading",`
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
font-size: calc(var(--n-button-width) - 4px);
color: var(--n-loading-color);
transition: color .3s var(--n-bezier);
`,[pe({left:"50%",top:"50%",originalTransform:"translateX(-50%) translateY(-50%)"})]),b("checked, unchecked",`
transition: color .3s var(--n-bezier);
color: var(--n-text-color);
box-sizing: border-box;
position: absolute;
white-space: nowrap;
top: 0;
bottom: 0;
display: flex;
align-items: center;
line-height: 1;
`),b("checked",`
right: 0;
padding-right: calc(1.25 * var(--n-rail-height) - var(--n-offset));
`),b("unchecked",`
left: 0;
justify-content: flex-end;
padding-left: calc(1.25 * var(--n-rail-height) - var(--n-offset));
`),K("&:focus",[b("rail",`
box-shadow: var(--n-box-shadow-focus);
`)]),I("round",[b("rail","border-radius: calc(var(--n-rail-height) / 2);",[b("button","border-radius: calc(var(--n-button-height) / 2);")])]),Ee("disabled",[Ee("icon",[I("rubber-band",[I("pressed",[b("rail",[b("button","max-width: var(--n-button-width-pressed);")])]),b("rail",[K("&:active",[b("button","max-width: var(--n-button-width-pressed);")])]),I("active",[I("pressed",[b("rail",[b("button","left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])]),b("rail",[K("&:active",[b("button","left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])])])])])]),I("active",[b("rail",[b("button","left: calc(100% - var(--n-button-width) - var(--n-offset))")])]),b("rail",`
overflow: hidden;
height: var(--n-rail-height);
min-width: var(--n-rail-width);
border-radius: var(--n-rail-border-radius);
cursor: pointer;
position: relative;
transition:
opacity .3s var(--n-bezier),
background .3s var(--n-bezier),
box-shadow .3s var(--n-bezier);
background-color: var(--n-rail-color);
`,[b("button-icon",`
color: var(--n-icon-color);
transition: color .3s var(--n-bezier);
font-size: calc(var(--n-button-height) - 4px);
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
line-height: 1;
`,[pe()]),b("button",`
align-items: center;
top: var(--n-offset);
left: var(--n-offset);
height: var(--n-button-height);
width: var(--n-button-width-pressed);
max-width: var(--n-button-width);
border-radius: var(--n-button-border-radius);
background-color: var(--n-button-color);
box-shadow: var(--n-button-box-shadow);
box-sizing: border-box;
cursor: inherit;
content: "";
position: absolute;
transition:
background-color .3s var(--n-bezier),
left .3s var(--n-bezier),
opacity .3s var(--n-bezier),
max-width .3s var(--n-bezier),
box-shadow .3s var(--n-bezier);
`)]),I("active",[b("rail","background-color: var(--n-rail-color-active);")]),I("loading",[b("rail",`
cursor: wait;
`)]),I("disabled",[b("rail",`
cursor: not-allowed;
opacity: .5;
`)])]);const Xt=["aria-checked","tabindex","onClick","onFocus","onBlur","onKeyup","onKeydown"],Wt={...qe.props,size:String,value:{type:[String,Number,Boolean],default:void 0},loading:Boolean,defaultValue:{type:[String,Number,Boolean],default:!1},disabled:{type:Boolean,default:void 0},round:{type:Boolean,default:!0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],checkedValue:{type:[String,Number,Boolean],default:!0},uncheckedValue:{type:[String,Number,Boolean],default:!1},railStyle:Function,rubberBand:{type:Boolean,default:!0},spinProps:Object,onChange:[Function,Array]};let de;var Yt=ve({name:"Switch",props:Wt,slots:Object,setup(s){de===void 0&&(typeof CSS<"u"?typeof CSS.supports<"u"?de=CSS.supports("width","max(1px)"):de=!1:de=!0);const{mergedClsPrefixRef:t,inlineThemeDisabled:d,mergedComponentPropsRef:u}=Vt(s),_=qe("Switch","-switch",Kt,jt,s,t),h=zt(s,{mergedSize(g){if(s.size!==void 0)return s.size;if(g)return g.mergedSize.value;const H=u?.value?.Switch?.size;return H||"medium"}}),{mergedSizeRef:x,mergedDisabledRef:B}=h,a=V(s.defaultValue),k=Ge(s,"value"),$=Rt(k,a),R=F(()=>$.value===s.checkedValue),m=V(!1),T=V(!1),N=F(()=>{const{railStyle:g}=s;if(g)return g({focused:T.value,checked:R.value})});function E(g){const{"onUpdate:value":H,onChange:O,onUpdateValue:U}=s,{nTriggerFormInput:X,nTriggerFormChange:W}=h;H&&he(H,g),U&&he(U,g),O&&he(O,g),a.value=g,X(),W()}function q(){const{nTriggerFormFocus:g}=h;g()}function te(){const{nTriggerFormBlur:g}=h;g()}function se(){s.loading||B.value||($.value!==s.checkedValue?E(s.checkedValue):E(s.uncheckedValue))}function ne(){T.value=!0,q()}function J(){T.value=!1,te(),m.value=!1}function be(g){s.loading||B.value||g.key===" "&&($.value!==s.checkedValue?E(s.checkedValue):E(s.uncheckedValue),m.value=!1)}function Z(g){s.loading||B.value||g.key===" "&&(g.preventDefault(),m.value=!0)}const ue=F(()=>{const{value:g}=x,{self:{opacityDisabled:H,railColor:O,railColorActive:U,buttonBoxShadow:X,buttonColor:W,boxShadowFocus:c,loadingColor:we,textColor:ae,iconColor:ye,[Q("buttonHeight",g)]:P,[Q("buttonWidth",g)]:S,[Q("buttonWidthPressed",g)]:ie,[Q("railHeight",g)]:A,[Q("railWidth",g)]:i,[Q("railBorderRadius",g)]:n,[Q("buttonBorderRadius",g)]:r},common:{cubicBezierEaseInOut:Y}}=_.value;let D,le,xe;return de?(D=`calc((${A} - ${P}) / 2)`,le=`max(${A}, ${P})`,xe=`max(${i}, calc(${i} + ${P} - ${A}))`):(D=Se((j(A)-j(P))/2),le=Se(Math.max(j(A),j(P))),xe=j(A)>j(P)?i:Se(j(i)+j(P)-j(A))),{"--n-bezier":Y,"--n-button-border-radius":r,"--n-button-box-shadow":X,"--n-button-color":W,"--n-button-width":S,"--n-button-width-pressed":ie,"--n-button-height":P,"--n-height":le,"--n-offset":D,"--n-opacity-disabled":H,"--n-rail-border-radius":n,"--n-rail-color":O,"--n-rail-color-active":U,"--n-rail-height":A,"--n-rail-width":i,"--n-width":xe,"--n-box-shadow-focus":c,"--n-loading-color":we,"--n-text-color":ae,"--n-icon-color":ye}}),oe=d?Ut("switch",F(()=>x.value[0]),ue,s):void 0;return{handleClick:se,handleBlur:J,handleFocus:ne,handleKeyup:be,handleKeydown:Z,mergedRailStyle:N,pressed:m,mergedClsPrefix:t,mergedValue:$,checked:R,mergedDisabled:B,cssVars:d?void 0:ue,themeClass:oe?.themeClass,onRender:oe?.onRender}},render(){const{mergedClsPrefix:s,mergedDisabled:t,checked:d,mergedRailStyle:u,onRender:_,$slots:h}=this;_?.();const{checked:x,unchecked:B,icon:a,"checked-icon":k,"unchecked-icon":$}=h,R=!(Ce(a)&&Ce(k)&&Ce($));return w(),y("div",{role:"switch","aria-checked":d,class:C([`${s}-switch`,this.themeClass,R&&`${s}-switch--icon`,d&&`${s}-switch--active`,t&&`${s}-switch--disabled`,this.round&&`${s}-switch--round`,this.loading&&`${s}-switch--loading`,this.pressed&&`${s}-switch--pressed`,this.rubberBand&&`${s}-switch--rubber-band`]),tabindex:this.mergedDisabled?void 0:0,style:Re(this.cssVars),onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyup:this.handleKeyup,onKeydown:this.handleKeydown},[e("div",{class:C(`${s}-switch__rail`),"aria-hidden":"true",style:Re(u)},[z(()=>ee(x,m=>ee(B,T=>m||T?(w(),y("div",{key:4,"aria-hidden":!0,class:C(`${s}-switch__children-placeholder`)},[e("div",{class:C(`${s}-switch__rail-placeholder`)},[e("div",{class:C(`${s}-switch__button-placeholder`)},null,2),z(()=>m)],2),e("div",{class:C(`${s}-switch__rail-placeholder`)},[e("div",{class:C(`${s}-switch__button-placeholder`)},null,2),z(()=>T)],2)],2)):null))),e("div",{class:C(`${s}-switch__button`)},[z(()=>ee(a,m=>ee(k,T=>ee($,N=>(w(),ce(Je,null,{default:()=>this.loading?(w(),ce(It,gt({key:"loading",clsPrefix:s,strokeWidth:20},this.spinProps),null,16,["clsPrefix"])):this.checked&&(T||m)?(w(),y("div",{class:C(`${s}-switch__button-icon`),key:T?"checked-icon":"icon"},[z(()=>T||m)],2)):!this.checked&&(N||m)?(w(),y("div",{class:C(`${s}-switch__button-icon`),key:N?"unchecked-icon":"icon"},[z(()=>N||m)],2)):null},1024)))))),z(()=>ee(x,m=>m&&(w(),y("div",{key:"checked",class:C(`${s}-switch__checked`)},[z(()=>m)],2)))),z(()=>ee(B,m=>m&&(w(),y("div",{key:"unchecked",class:C(`${s}-switch__unchecked`)},[z(()=>m)],2))))],2)],6)],46,Xt)}});const Gt={class:"toolbar"},qt={class:"page-title"},Jt={class:"page-sub"},Zt={key:0,class:"loading-block"},Qt={class:"card"},es={class:"card-title"},ts={class:"field"},ss={for:"set-site-name"},ns={class:"hint"},is={class:"field"},os={for:"set-site-domain"},as={class:"hint"},ls={class:"card"},rs={class:"card-title"},ds={class:"field"},cs={for:"set-logo-url"},us={class:"logo-input-row"},_s={class:"hint"},ms={class:"logo-preview-row"},fs={class:"logo-box"},hs=["src"],ps={style:{"font-size":"13px",color:"var(--c-text-2)"}},gs={style:{display:"inline-flex","align-items":"center",gap:"8px","font-weight":"700",color:"var(--c-text)"}},vs=["src"],bs={class:"card"},ws={class:"card-title"},ys={class:"field"},xs={for:"set-favicon-url"},ks={class:"logo-input-row"},Ss={class:"hint"},Cs={class:"logo-preview-row"},Bs={class:"logo-box",style:{width:"44px",height:"44px"}},Vs=["src"],$s={style:{"font-size":"13px",color:"var(--c-text-2)"}},Ts={class:"card"},Us={class:"card-title"},Rs={class:"field"},Ms={for:"set-bg-url"},zs={class:"hint"},Fs={key:0,class:"logo-box",style:{width:"120px"}},Ns=["src"],Ps={class:"card"},As={class:"card-title"},Es={class:"field"},Hs={for:"set-footer-text"},Os={class:"hint"},Ds={class:"field"},Is={for:"set-footer-beian"},Ls={class:"hint"},js={class:"card"},Ks={class:"card-title"},Xs={class:"field notify-switch-row"},Ws={for:"set-notify-enabled"},Ys={class:"field"},Gs={for:"set-notify-title"},qs={class:"hint"},Js={class:"field"},Zs={for:"set-notify-content"},Qs={class:"hint"},en={class:"card"},tn={class:"card-title"},sn={class:"field"},nn={for:"set-max-save-time"},on={class:"unit-row"},an=["placeholder"],ln={value:"hour"},rn={value:"day"},dn={class:"hint"},cn={class:"field"},un={for:"set-max-save-count"},_n={class:"hint"},mn={class:"card"},fn={class:"card-title"},hn={class:"field"},pn={for:"set-max-file-size"},gn={class:"unit-row"},vn=["placeholder"],bn={value:"MB"},wn={value:"GB"},yn={class:"hint"},xn={class:"field"},kn={for:"set-allowed-types"},Sn={class:"hint"},Cn={class:"card"},Bn={class:"card-title"},Vn={class:"field"},$n={class:"field"},Tn={for:"set-engine-type"},Un={class:"unit-row"},Rn={value:"local"},Mn={value:"webdav"},zn={value:"s3"},Fn=["disabled"],Nn={key:0,class:"spin","aria-hidden":"true"},Pn={class:"hint"},An={class:"card-sub",style:{"margin-top":"8px"}},En={key:0,class:"field"},Hn={for:"set-local-root"},On={class:"hint"},Dn={class:"field"},In={for:"set-webdav-url"},Ln={class:"hint"},jn={class:"field"},Kn={for:"set-webdav-root"},Xn={class:"hint"},Wn={class:"field-row"},Yn={class:"field"},Gn={for:"set-webdav-user"},qn={class:"field"},Jn={for:"set-webdav-pass"},Zn={class:"hint"},Qn={class:"field-row"},ei={class:"field"},ti={for:"set-s3-endpoint"},si={class:"hint"},ni={class:"field"},ii={for:"set-s3-bucket"},oi={class:"field-row"},ai={class:"field"},li={for:"set-s3-region"},ri={class:"field"},di={for:"set-s3-style"},ci={value:"auto"},ui={value:"path"},_i={value:"virtual"},mi={class:"field-row"},fi={class:"field"},hi={for:"set-s3-ak"},pi={class:"field"},gi={for:"set-s3-sk"},vi={class:"hint"},bi={class:"field"},wi={for:"set-s3-token"},yi={class:"hint"},xi={class:"save-row"},ki=["disabled"],Si={key:0,class:"spin","aria-hidden":"true"},Ci={class:"card"},Bi={class:"card-title"},Vi={class:"field-row"},$i={class:"field"},Ti={for:"set-upload-count"},Ui={class:"hint"},Ri={class:"field"},Mi={for:"set-upload-minute"},zi={class:"hint"},Fi={class:"save-row"},Ni=["disabled"],Pi={key:0,class:"spin","aria-hidden":"true"},Ai={class:"card"},Ei={class:"card-title"},Hi={class:"card-sub"},Oi={class:"field"},Di={for:"pwd-old"},Ii={class:"field"},Li={for:"pwd-new"},ji={class:"field"},Ki={for:"pwd-confirm"},Xi={class:"save-row"},Wi=["disabled"],Yi={key:0,class:"spin","aria-hidden":"true"},Gi=365*24*60*60,Ve=1e5,qi=10*1024*1024*1024,Ji=128,Zi=2e3,Qi=2e3,eo=128,to=2048,$e=1e4,Te=1440,je=3600,me=86400,Ke=1024*1024,fe=1024*1024*1024,so=256*1024,no="******",io=ve({__name:"SettingsView",setup(s){const{t}=vt(),d=bt(),u=wt(),_=Bt(),h=yt(),x=V(!1),B=V(!1),a=ke({site_name:"",site_domain:"",logo_url:"",favicon_url:"",background_url:"",footer_text:"",footer_beian:"",notify_enabled:!0,notify_title:"",notify_content:"",max_save_seconds:0,max_save_count:0,max_file_size:0,allowed_file_types:"",uploadCount:0,uploadMinute:0}),k=V(0),$=V("day"),R=V(0),m=V("MB");function T(i){if(i<=0)return{value:0,unit:"day"};if(i%me===0||i>=me){const n=i/me;if(Number.isInteger(n))return{value:n,unit:"day"}}return{value:Math.round(i/je*100)/100,unit:"hour"}}function N(i){if(i<=0)return{value:0,unit:"MB"};if(i%fe===0||i>=fe){const n=i/fe;if(Number.isInteger(n))return{value:n,unit:"GB"}}return{value:Math.round(i/Ke*100)/100,unit:"MB"}}function E(i,n){const r=n==="day"?i*me:i*je;return Z(r,0,Gi)}function q(i,n){const r=n==="GB"?i*fe:i*Ke;return Z(r,0,qi)}const te=F(()=>k.value<=0),se=F(()=>R.value<=0);function ne(i,n){return i==null?n:typeof i=="boolean"?i:typeof i=="number"?i!==0:String(i)!=="0"&&String(i)!=="false"&&String(i)!==""}function J(i,n){const r=Number(i);return Number.isFinite(r)?r:n}function be(i){return Array.isArray(i)?i.map(n=>String(n).trim()).filter(Boolean):typeof i=="string"?i.split(",").map(n=>n.trim()).filter(Boolean):[]}function Z(i,n,r){return Math.min(Math.max(Math.round(i)||0,n),r)}async function ue(){x.value=!0;try{const i=await kt();a.site_name=String(p(i,["site_name","name"])??""),a.site_domain=String(p(i,["site_domain","siteDomain"])??""),a.logo_url=String(p(i,["logo_url"])??""),a.favicon_url=String(p(i,["favicon_url"])??""),a.background_url=String(p(i,["background_url","backgroundUrl"])??""),a.footer_text=String(p(i,["footer_text","footerText"])??""),a.footer_beian=String(p(i,["footer_beian","footerBeian"])??""),a.notify_enabled=ne(p(i,["notify_enabled","notifyEnabled"]),!0),a.notify_title=String(p(i,["notify_title","notifyTitle"])??""),a.notify_content=String(p(i,["notify_content","notifyContent"])??""),a.max_save_seconds=J(p(i,["max_save_seconds","maxSaveSeconds"]),0),a.max_save_count=J(p(i,["max_save_count","maxSaveCount"]),0),a.max_file_size=J(p(i,["max_file_size","maxFileSize"]),0);const n=T(a.max_save_seconds);k.value=n.value,$.value=n.unit;const r=N(a.max_file_size);R.value=r.value,m.value=r.unit;const Y=be(p(i,["allowed_file_types","allowedFileTypes"]));a.allowed_file_types=Y.join(","),a.uploadCount=J(p(i,["uploadCount","upload_count"]),0),a.uploadMinute=J(p(i,["uploadMinute","upload_minute"]),0);const D=p(i,["_engine_hint"]),le=D?String(p(D,["storage_backend"])??""):"";O.value=le||String(p(i,["storage_engine"])??"local"),U.value=O.value,we(i)}catch(i){d.error(i instanceof re?i.msg:t("admin.settings.loadFailed"))}finally{x.value=!1}}function oe(i){const n=document.createElement("input");n.type="file",n.accept="image/*",n.onchange=()=>{const r=n.files?.[0];if(!r)return;if(r.size>so){d.error(t("admin.settings.imageTooLarge"));return}const Y=new FileReader;Y.onload=()=>{const D=String(Y.result??"");i==="logo"?a.logo_url=D:a.favicon_url=D,d.success(t("admin.settings.imageLoaded"))},Y.onerror=()=>d.error(t("admin.settings.imageReadFailed")),Y.readAsDataURL(r)},n.click()}async function g(){B.value=!0;try{const i=a.allowed_file_types.split(",").map(n=>n.trim()).filter(Boolean);await De({site_name:a.site_name.trim(),site_domain:a.site_domain.trim(),logo_url:a.logo_url.trim(),favicon_url:a.favicon_url.trim(),background_url:a.background_url.trim(),footer_text:a.footer_text.trim(),footer_beian:a.footer_beian.trim(),notify_enabled:a.notify_enabled?1:0,notify_title:a.notify_title.trim(),notify_content:a.notify_content.trim(),max_save_seconds:E(k.value,$.value),max_save_count:Z(a.max_save_count,0,Ve),max_file_size:q(R.value,m.value),allowed_file_types:i.length?i:["*"],uploadCount:Z(a.uploadCount||0,1,$e),uploadMinute:Z(a.uploadMinute||0,1,Te)}),d.success(t("admin.settings.saved")),await u.load()}catch(i){d.error(i instanceof re?i.msg:t("admin.settings.saveFailed"))}finally{B.value=!1}}function H(){a.site_name="文件快传",a.site_domain="",a.logo_url="",a.favicon_url="",a.background_url="",a.footer_text="",a.footer_beian="",a.notify_enabled=!0,a.notify_title="",a.notify_content="",a.max_save_seconds=0,a.max_save_count=0,a.max_file_size=0,a.allowed_file_types="*",a.uploadCount=10,a.uploadMinute=1,k.value=0,$.value="day",R.value=0,m.value="MB",d.info(t("admin.settings.restoreDefaultsDone"))}const O=V("local"),U=V("local"),X=V(!1),W=V(!1),c=ke({local_storage_path:"",webdav_url:"",webdav_root_path:"filebox_storage",webdav_username:"",webdav_password:"",s3_endpoint_url:"",s3_bucket_name:"",s3_region_name:"auto",s3_access_key_id:"",s3_secret_access_key:"",aws_session_token:"",s3_addressing_style:"auto"});function we(i){c.local_storage_path=String(p(i,["local_storage_path","localStoragePath"])??""),c.webdav_url=String(p(i,["webdav_url","webdavUrl"])??""),c.webdav_root_path=String(p(i,["webdav_root_path","webdavRootPath"])??"filebox_storage"),c.webdav_username=String(p(i,["webdav_username","webdavUsername"])??""),c.webdav_password=String(p(i,["webdav_password","webdavPassword"])??""),c.s3_endpoint_url=String(p(i,["s3_endpoint_url","s3EndpointUrl"])??""),c.s3_bucket_name=String(p(i,["s3_bucket_name","s3BucketName"])??""),c.s3_region_name=String(p(i,["s3_region_name","s3RegionName"])??"auto"),c.s3_access_key_id=String(p(i,["s3_access_key_id","s3AccessKeyId"])??""),c.s3_secret_access_key=String(p(i,["s3_secret_access_key","s3SecretAccessKey"])??""),c.aws_session_token=String(p(i,["aws_session_token","awsSessionToken"])??""),c.s3_addressing_style=String(p(i,["s3_addressing_style","s3AddressingStyle"])??"auto")}function ae(i){const n=i.trim();if(!(n===""||n===no))return n}async function ye(){X.value=!0;try{const i=await St(U.value);O.value=String(i)||U.value,d.success(t("admin.settings.engineSwitchOk",{engine:i})),await u.load()}catch(i){d.error(i instanceof re?i.msg:t("admin.settings.engineSwitchFail"))}finally{X.value=!1}}async function P(){W.value=!0;try{const i={};if(U.value==="local")i.local_storage_path=c.local_storage_path.trim();else if(U.value==="webdav"){i.webdav_url=c.webdav_url.trim(),i.webdav_root_path=c.webdav_root_path.trim(),i.webdav_username=c.webdav_username.trim();const n=ae(c.webdav_password);n!==void 0&&(i.webdav_password=n)}else{i.s3_endpoint_url=c.s3_endpoint_url.trim(),i.s3_bucket_name=c.s3_bucket_name.trim(),i.s3_region_name=c.s3_region_name.trim()||"auto",i.s3_access_key_id=c.s3_access_key_id.trim();const n=ae(c.s3_secret_access_key);n!==void 0&&(i.s3_secret_access_key=n);const r=ae(c.aws_session_token);r!==void 0&&(i.aws_session_token=r),i.s3_addressing_style=c.s3_addressing_style}await De(i),d.success(t("admin.settings.engineParamsSaved"))}catch(i){d.error(i instanceof re?i.msg:t("admin.settings.saveFailed"))}finally{W.value=!1}}const S=ke({old:"",next:"",confirm:""}),ie=V(!1);async function A(){if(!S.old||!S.next){d.error(t("admin.settings.pwdRequired"));return}if(S.next.length<6){d.error(t("admin.settings.pwdTooShort"));return}if(S.next!==S.confirm){d.error(t("admin.settings.pwdMismatch"));return}ie.value=!0;try{await Ct(S.old,S.next),d.success(t("admin.settings.pwdChanged")),S.old=S.next=S.confirm="",await _.logout(),h.replace({name:"admin-login"})}catch(i){d.error(i instanceof re?i.code===401?t("admin.settings.pwdWrong"):i.msg:t("admin.settings.pwdChangeFailed"))}finally{ie.value=!1}}return Ye(ue),(i,n)=>(w(),y("div",null,[e("div",Gt,[e("div",null,[e("h2",qt,l(o(t)("admin.settings.title")),1),e("p",Jt,l(o(t)("admin.settings.subtitle")),1)]),e("button",{class:"btn btn-ghost",type:"button",onClick:H},l(o(t)("admin.settings.restoreDefaults")),1)]),x.value?(w(),y("div",Zt,[n[36]||(n[36]=e("span",{class:"spin","aria-hidden":"true"},null,-1)),M(" "+l(o(t)("admin.settings.loading")),1)])):(w(),y("form",{key:1,class:"settings-grid",onSubmit:He(g,["prevent"])},[e("section",Qt,[e("h3",es,l(o(t)("admin.settings.sectionBasic")),1),e("div",ts,[e("label",ss,l(o(t)("admin.settings.siteName")),1),f(e("input",{id:"set-site-name","onUpdate:modelValue":n[0]||(n[0]=r=>a.site_name=r),class:"input",placeholder:"文件快传",maxlength:"64"},null,512),[[v,a.site_name]]),e("p",ns,l(o(t)("admin.settings.siteNameHint")),1)]),e("div",is,[e("label",os,l(o(t)("admin.settings.siteDomain")),1),f(e("input",{id:"set-site-domain","onUpdate:modelValue":n[1]||(n[1]=r=>a.site_domain=r),class:"input",placeholder:"https://share.example.com",maxlength:"256"},null,512),[[v,a.site_domain]]),e("p",as,l(o(t)("admin.settings.siteDomainHint")),1)])]),e("section",ls,[e("h3",rs,l(o(t)("admin.settings.sectionLogo")),1),e("div",ds,[e("label",cs,l(o(t)("admin.settings.logoUrl")),1),e("div",us,[f(e("input",{id:"set-logo-url","onUpdate:modelValue":n[2]||(n[2]=r=>a.logo_url=r),class:"input",placeholder:"https://…/logo.svg"},null,512),[[v,a.logo_url]]),e("button",{class:"btn btn-ghost",type:"button",onClick:n[3]||(n[3]=r=>oe("logo"))},l(o(t)("admin.settings.uploadImage")),1)]),e("p",_s,l(o(t)("admin.settings.logoHint")),1)]),e("div",ms,[e("div",fs,[e("img",{src:a.logo_url||o(u).displayLogoUrl,alt:"Logo preview"},null,8,hs)]),e("div",ps,[M(l(o(t)("admin.settings.navPreview"))+" ",1),e("span",gs,[e("img",{src:a.logo_url||o(u).displayLogoUrl,alt:"",style:{width:"22px",height:"22px","object-fit":"contain"}},null,8,vs),M(" "+l(a.site_name||o(u).displayName),1)])])])]),e("section",bs,[e("h3",ws,l(o(t)("admin.settings.sectionFavicon")),1),e("div",ys,[e("label",xs,l(o(t)("admin.settings.faviconUrl")),1),e("div",ks,[f(e("input",{id:"set-favicon-url","onUpdate:modelValue":n[4]||(n[4]=r=>a.favicon_url=r),class:"input",placeholder:"https://…/favicon.png"},null,512),[[v,a.favicon_url]]),e("button",{class:"btn btn-ghost",type:"button",onClick:n[5]||(n[5]=r=>oe("favicon"))},l(o(t)("admin.settings.uploadImage")),1)]),e("p",Ss,l(o(t)("admin.settings.faviconHint")),1)]),e("div",Cs,[e("div",Bs,[e("img",{src:a.favicon_url||o(u).displayFaviconUrl,alt:"Favicon preview"},null,8,Vs)]),e("span",$s,l(o(t)("admin.settings.faviconPreviewHint")),1)])]),e("section",Ts,[e("h3",Us,l(o(t)("admin.settings.sectionBackground")),1),e("div",Rs,[e("label",Ms,l(o(t)("admin.settings.backgroundUrl")),1),f(e("input",{id:"set-bg-url","onUpdate:modelValue":n[6]||(n[6]=r=>a.background_url=r),class:"input",placeholder:"https://…/bg.jpg",maxlength:to},null,512),[[v,a.background_url]]),e("p",zs,l(o(t)("admin.settings.backgroundHint")),1)]),a.background_url.trim()?(w(),y("div",Fs,[e("img",{src:a.background_url,alt:"Background preview",style:{width:"100%",height:"100%","object-fit":"cover"}},null,8,Ns)])):L("",!0)]),e("section",Ps,[e("h3",As,l(o(t)("admin.settings.sectionFooter")),1),e("div",Es,[e("label",Hs,l(o(t)("admin.settings.footerText")),1),f(e("textarea",{id:"set-footer-text","onUpdate:modelValue":n[7]||(n[7]=r=>a.footer_text=r),class:"textarea",style:{"min-height":"72px"},maxlength:Qi},null,512),[[v,a.footer_text]]),e("p",Os,l(o(t)("admin.settings.footerTextHint")),1)]),e("div",Ds,[e("label",Is,l(o(t)("admin.settings.footerBeian")),1),f(e("input",{id:"set-footer-beian","onUpdate:modelValue":n[8]||(n[8]=r=>a.footer_beian=r),class:"input",maxlength:eo},null,512),[[v,a.footer_beian]]),e("p",Ls,l(o(t)("admin.settings.footerBeianHint")),1)])]),e("section",js,[e("h3",Ks,l(o(t)("admin.settings.sectionNotify")),1),e("div",Xs,[e("label",Ws,l(o(t)("admin.settings.notifyEnabled")),1),Fe(o(Yt),{id:"set-notify-enabled",value:a.notify_enabled,"onUpdate:value":n[9]||(n[9]=r=>a.notify_enabled=r),size:"small"},null,8,["value"])]),e("div",Ys,[e("label",Gs,l(o(t)("admin.settings.notifyTitle")),1),f(e("input",{id:"set-notify-title","onUpdate:modelValue":n[10]||(n[10]=r=>a.notify_title=r),class:"input",maxlength:Ji},null,512),[[v,a.notify_title]]),e("p",qs,l(o(t)("admin.settings.notifyTitleHint")),1)]),e("div",Js,[e("label",Zs,l(o(t)("admin.settings.notifyContent")),1),f(e("textarea",{id:"set-notify-content","onUpdate:modelValue":n[11]||(n[11]=r=>a.notify_content=r),class:"textarea",style:{"min-height":"72px"},maxlength:Zi},null,512),[[v,a.notify_content]]),e("p",Qs,l(o(t)("admin.settings.notifyContentHint")),1)])]),e("section",en,[e("h3",tn,l(o(t)("admin.settings.sectionSavePolicy")),1),e("div",sn,[e("label",nn,l(o(t)("admin.settings.maxSaveTime")),1),e("div",on,[f(e("input",{id:"set-max-save-time","onUpdate:modelValue":n[12]||(n[12]=r=>k.value=r),class:"input",type:"number",min:0,step:"1",placeholder:o(t)("admin.settings.saveTimeUnlimited")},null,8,an),[[v,k.value,void 0,{number:!0}]]),f(e("select",{"onUpdate:modelValue":n[13]||(n[13]=r=>$.value=r),class:"input unit-select","aria-label":"unit"},[e("option",ln,l(o(t)("admin.settings.unitHour")),1),e("option",rn,l(o(t)("admin.settings.unitDay")),1)],512),[[_e,$.value]])]),e("p",dn,[M(l(o(t)("admin.settings.maxSaveTimeHint"))+" ",1),te.value?(w(),y(G,{key:0},[M(""+l(o(t)("admin.settings.saveTimeUnlimited"))+"",1)],64)):L("",!0)])]),e("div",cn,[e("label",un,l(o(t)("admin.settings.maxSaveCount")),1),f(e("input",{id:"set-max-save-count","onUpdate:modelValue":n[14]||(n[14]=r=>a.max_save_count=r),class:"input",type:"number",min:0,max:Ve,step:"1"},null,512),[[v,a.max_save_count,void 0,{number:!0}]]),e("p",_n,l(o(t)("admin.settings.maxSaveCountHint",{max:Ve})),1)])]),e("section",mn,[e("h3",fn,l(o(t)("admin.settings.sectionStorage")),1),e("div",hn,[e("label",pn,l(o(t)("admin.settings.maxFileSizeFriendly")),1),e("div",gn,[f(e("input",{id:"set-max-file-size","onUpdate:modelValue":n[15]||(n[15]=r=>R.value=r),class:"input",type:"number",min:0,step:"1",placeholder:o(t)("admin.settings.sizeUnlimited")},null,8,vn),[[v,R.value,void 0,{number:!0}]]),f(e("select",{"onUpdate:modelValue":n[16]||(n[16]=r=>m.value=r),class:"input unit-select","aria-label":"unit"},[e("option",bn,l(o(t)("admin.settings.unitMB")),1),e("option",wn,l(o(t)("admin.settings.unitGB")),1)],512),[[_e,m.value]])]),e("p",yn,[M(l(o(t)("admin.settings.maxFileSizeHintV3",{fallback:o(Oe)(o(u).uploadSize)}))+" ",1),se.value?(w(),y(G,{key:0},[M(""+l(o(t)("admin.settings.sizeUnlimited"))+"",1)],64)):(w(),y(G,{key:1},[M(""+l(o(t)("admin.settings.approxSize",{size:o(Oe)(q(R.value,m.value))}))+"",1)],64))])]),e("div",xn,[e("label",kn,l(o(t)("admin.settings.allowedFileTypes")),1),f(e("input",{id:"set-allowed-types","onUpdate:modelValue":n[17]||(n[17]=r=>a.allowed_file_types=r),class:"input",placeholder:"jpg, png, pdf / image/*, *"},null,512),[[v,a.allowed_file_types]]),e("p",Sn,l(o(t)("admin.settings.allowedFileTypesHint")),1)])]),e("section",Cn,[e("h3",Bn,l(o(t)("admin.settings.sectionEngine")),1),e("div",Vn,[e("label",null,[M(l(o(t)("admin.settings.engineCurrent"))+": ",1),e("strong",null,l(O.value),1)])]),e("div",$n,[e("label",Tn,l(o(t)("admin.settings.sectionEngine")),1),e("div",Un,[f(e("select",{id:"set-engine-type","onUpdate:modelValue":n[18]||(n[18]=r=>U.value=r),class:"input",style:{flex:"1"}},[e("option",Rn,l(o(t)("admin.settings.engineLocal")),1),e("option",Mn,l(o(t)("admin.settings.engineWebdav")),1),e("option",zn,l(o(t)("admin.settings.engineS3")),1)],512),[[_e,U.value]]),e("button",{class:"btn",type:"button",disabled:X.value,onClick:ye},[X.value?(w(),y("span",Nn)):L("",!0),M(" "+l(o(t)("admin.settings.engineSwitch")),1)],8,Fn)]),e("p",Pn,l(o(t)("admin.settings.engineSwitchFail")),1)]),e("h4",An,l(o(t)("admin.settings.engineParamsTitle")),1),U.value==="local"?(w(),y("div",En,[e("label",Hn,l(o(t)("admin.settings.localRoot")),1),f(e("input",{id:"set-local-root","onUpdate:modelValue":n[19]||(n[19]=r=>c.local_storage_path=r),class:"input",placeholder:"/app/data/storage"},null,512),[[v,c.local_storage_path]]),e("p",On,l(o(t)("admin.settings.localRootHint")),1)])):L("",!0),U.value==="webdav"?(w(),y(G,{key:1},[e("div",Dn,[e("label",In,l(o(t)("admin.settings.webdavUrl")),1),f(e("input",{id:"set-webdav-url","onUpdate:modelValue":n[20]||(n[20]=r=>c.webdav_url=r),class:"input",placeholder:"https://dav.example.com/dav/"},null,512),[[v,c.webdav_url]]),e("p",Ln,l(o(t)("admin.settings.webdavUrlHint")),1)]),e("div",jn,[e("label",Kn,l(o(t)("admin.settings.webdavRoot")),1),f(e("input",{id:"set-webdav-root","onUpdate:modelValue":n[21]||(n[21]=r=>c.webdav_root_path=r),class:"input",placeholder:"filebox_storage"},null,512),[[v,c.webdav_root_path]]),e("p",Xn,l(o(t)("admin.settings.webdavRootHint")),1)]),e("div",Wn,[e("div",Yn,[e("label",Gn,l(o(t)("admin.settings.webdavUser")),1),f(e("input",{id:"set-webdav-user","onUpdate:modelValue":n[22]||(n[22]=r=>c.webdav_username=r),class:"input",autocomplete:"off"},null,512),[[v,c.webdav_username]])]),e("div",qn,[e("label",Jn,l(o(t)("admin.settings.webdavPass")),1),f(e("input",{id:"set-webdav-pass","onUpdate:modelValue":n[23]||(n[23]=r=>c.webdav_password=r),class:"input",type:"password",autocomplete:"new-password"},null,512),[[v,c.webdav_password]]),e("p",Zn,l(o(t)("admin.settings.secretKeepHint")),1)])])],64)):L("",!0),U.value==="s3"?(w(),y(G,{key:2},[e("div",Qn,[e("div",ei,[e("label",ti,l(o(t)("admin.settings.s3Endpoint")),1),f(e("input",{id:"set-s3-endpoint","onUpdate:modelValue":n[24]||(n[24]=r=>c.s3_endpoint_url=r),class:"input",placeholder:"https://s3.example.com:9000"},null,512),[[v,c.s3_endpoint_url]]),e("p",si,l(o(t)("admin.settings.s3EndpointHint")),1)]),e("div",ni,[e("label",ii,l(o(t)("admin.settings.s3Bucket")),1),f(e("input",{id:"set-s3-bucket","onUpdate:modelValue":n[25]||(n[25]=r=>c.s3_bucket_name=r),class:"input",placeholder:"filecodebox"},null,512),[[v,c.s3_bucket_name]])])]),e("div",oi,[e("div",ai,[e("label",li,l(o(t)("admin.settings.s3Region")),1),f(e("input",{id:"set-s3-region","onUpdate:modelValue":n[26]||(n[26]=r=>c.s3_region_name=r),class:"input",placeholder:"auto"},null,512),[[v,c.s3_region_name]])]),e("div",ri,[e("label",di,l(o(t)("admin.settings.s3Style")),1),f(e("select",{id:"set-s3-style","onUpdate:modelValue":n[27]||(n[27]=r=>c.s3_addressing_style=r),class:"input"},[e("option",ci,l(o(t)("admin.settings.styleAuto")),1),e("option",ui,l(o(t)("admin.settings.stylePath")),1),e("option",_i,l(o(t)("admin.settings.styleVirtual")),1)],512),[[_e,c.s3_addressing_style]])])]),e("div",mi,[e("div",fi,[e("label",hi,l(o(t)("admin.settings.s3Ak")),1),f(e("input",{id:"set-s3-ak","onUpdate:modelValue":n[28]||(n[28]=r=>c.s3_access_key_id=r),class:"input",autocomplete:"off"},null,512),[[v,c.s3_access_key_id]])]),e("div",pi,[e("label",gi,l(o(t)("admin.settings.s3Sk")),1),f(e("input",{id:"set-s3-sk","onUpdate:modelValue":n[29]||(n[29]=r=>c.s3_secret_access_key=r),class:"input",type:"password",autocomplete:"new-password"},null,512),[[v,c.s3_secret_access_key]]),e("p",vi,l(o(t)("admin.settings.secretKeepHint")),1)])]),e("div",bi,[e("label",wi,l(o(t)("admin.settings.s3Token")),1),f(e("input",{id:"set-s3-token","onUpdate:modelValue":n[30]||(n[30]=r=>c.aws_session_token=r),class:"input",type:"password",autocomplete:"new-password"},null,512),[[v,c.aws_session_token]]),e("p",yi,l(o(t)("admin.settings.secretKeepHint")),1)])],64)):L("",!0),e("div",xi,[e("button",{class:"btn",type:"button",disabled:W.value,onClick:P},[W.value?(w(),y("span",Si)):L("",!0),M(" "+l(o(t)("admin.settings.engineParamsSave")),1)],8,ki)])]),e("section",Ci,[e("h3",Bi,l(o(t)("admin.settings.sectionUploadRate")),1),e("div",Vi,[e("div",$i,[e("label",Ti,l(o(t)("admin.settings.uploadCount")),1),f(e("input",{id:"set-upload-count","onUpdate:modelValue":n[31]||(n[31]=r=>a.uploadCount=r),class:"input",type:"number",min:1,max:$e,step:"1"},null,512),[[v,a.uploadCount,void 0,{number:!0}]]),e("p",Ui,l(o(t)("admin.settings.uploadCountHint",{max:$e})),1)]),e("div",Ri,[e("label",Mi,l(o(t)("admin.settings.uploadMinute")),1),f(e("input",{id:"set-upload-minute","onUpdate:modelValue":n[32]||(n[32]=r=>a.uploadMinute=r),class:"input",type:"number",min:1,max:Te,step:"1"},null,512),[[v,a.uploadMinute,void 0,{number:!0}]]),e("p",zi,l(o(t)("admin.settings.uploadMinuteHint",{max:Te})),1)])])]),e("div",Fi,[e("button",{class:"btn",type:"submit",disabled:B.value},[B.value?(w(),y("span",Pi)):L("",!0),M(" "+l(o(t)("admin.settings.saveAll")),1)],8,Ni)]),e("section",Ai,[e("h3",Ei,l(o(t)("admin.settings.sectionPassword")),1),e("p",Hi,l(o(t)("admin.settings.passwordHint")),1),e("form",{onSubmit:He(A,["prevent"])},[e("div",Oi,[e("label",Di,l(o(t)("admin.settings.oldPassword")),1),f(e("input",{id:"pwd-old","onUpdate:modelValue":n[33]||(n[33]=r=>S.old=r),class:"input",type:"password",autocomplete:"current-password"},null,512),[[v,S.old]])]),e("div",Ii,[e("label",Li,l(o(t)("admin.settings.newPassword")),1),f(e("input",{id:"pwd-new","onUpdate:modelValue":n[34]||(n[34]=r=>S.next=r),class:"input",type:"password",autocomplete:"new-password"},null,512),[[v,S.next]])]),e("div",ji,[e("label",Ki,l(o(t)("admin.settings.confirmPassword")),1),f(e("input",{id:"pwd-confirm","onUpdate:modelValue":n[35]||(n[35]=r=>S.confirm=r),class:"input",type:"password",autocomplete:"new-password"},null,512),[[v,S.confirm]])]),e("div",Xi,[e("button",{class:"btn",type:"submit",disabled:ie.value},[ie.value?(w(),y("span",Yi)):L("",!0),M(" "+l(o(t)("common.save")),1)],8,Wi)])],32)])],32))]))}}),ro=xt(io,[["__scopeId","data-v-03aa64c9"]]);export{ro as default};