PageSourceSearch

https://opentk.ai/assets/SettingsView-BgSqZBAQ.js

js opentk.ai collected 2026-10-05 12:23:46 UTC 497,432 bytes, 12 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/GroupBadge.vue_vue_type_script_setup_true_lang-xgjYBrct.js","assets/index-B0-mRxwY.js","assets/vendor-vue-BUKKVBnS.js","assets/vendor-i18n-CEzKrPUe.js","assets/vendor-misc-BMg1mc9a.js","assets/vendor-misc-DB0Q8XAf.css","assets/index-CPblPAYZ.css","assets/AppLayout.vue_vue_type_script_setup_true_lang-Dxag50KQ.js","assets/payment-DKQW2DpX.js","assets/useClipboard-DfWtOnxk.js","assets/LocaleSwitcher-CrTiLyrs.js","assets/LocaleSwitcher-BT83JRlq.css","assets/apiError-BL_sRCM7.js","assets/AppHeader-CPaPHR7f.css","assets/peak-rate-qZGUWdry.js","assets/PlatformIcon.vue_vue_type_script_setup_true_lang-BtQvaLV9.js"])))=>i.map(i=>d[i]);
2import{d as qe,z as d,A as e,C as n,I as X,K as r,u as a,L as h,k as g,c as B,F as R,M as N,E as Xe,w as pt,r as U,B as $e,U as Me,O as c,G as I,P as u,p as ye,a3 as on,a4 as Se,Q as qa,o as ct,S as dt,n as No,Z as ze,R as qs,a0 as Ns,a as Ko,D as ln,$ as Ie,a5 as Ks,W as Wo}from"./vendor-vue-BUKKVBnS.js";import{_ as de,B as Go,q as Qo,a as Vt,c as O,w as rn,f as Ws,b as Ht,a5 as Yo,aL as Fa,aM as La,aN as Ha,aO as Gs,aP as Jo,aQ as Ia,aR as Ra,aS as Nt,aT as Kt,ab as Mt,aU as Xo,aV as Zo,aW as el,aX as tl,aY as Qs,aZ as al,a_ as sl}from"./index-B0-mRxwY.js";import{m as nl,o as il,d as wt,r as ol,_ as ll}from"./AppLayout.vue_vue_type_script_setup_true_lang-Dxag50KQ.js";import{S as ke}from"./Select-Bg5qXyfo.js";import{l as rl}from"./vendor-misc-BMg1mc9a.js";import{P as Lt,b as Oa,c as za,d as dn,S as dl,e as Wt,f as Gt,p as cl,h as Ba,j as Ys,s as ul,W as _l}from"./providerConfig-BiMVXo-X.js";import{u as Ge}from"./vendor-i18n-CEzKrPUe.js";import{_ as Js}from"./GroupBadge.vue_vue_type_script_setup_true_lang-xgjYBrct.js";import{G as Xs}from"./GroupOptionItem-BbAjn3pc.js";import{_ as T}from"./Toggle.vue_vue_type_script_setup_true_lang-BKlACmDs.js";import{P as ml}from"./ProxySelector-rznS3G7R.js";import{_ as cn,u as un,a as vt,i as _n,s as mn}from"./TotpStepUpDialog.vue_vue_type_script_setup_true_lang-DXFeSBMj.js";import{O as pl,g as gl,a as yl,b as bl,e as xl,f as hl}from"./oidcClients-BU7S0uvG.js";import{b as pe,e as kt}from"./apiError-BL_sRCM7.js";import{u as fl}from"./useClipboard-DfWtOnxk.js";import{n as ja}from"./paymentFlow-3Bkabr7L.js";import{a as Zs,p as kl,b as en,c as vl}from"./registrationEmailPolicy-BIuq-4e8.js";/* empty css                                                                  */import"./payment-DKQW2DpX.js";import"./LocaleSwitcher-CrTiLyrs.js";/* empty css                                                                       */import"./peak-rate-qZGUWdry.js";import"./PlatformIcon.vue_vue_type_script_setup_true_lang-BtQvaLV9.js";import"./totp-DzqInKCL.js";const ue={bodyMiB:1024,minBudgetMiB:512,budgetMiB:65536,requests:4096,imageMiB:512,totalMiB:512,images:65536,storageMiB:262144,storageEntries:1048576,ttlMinutes:10080},wl={class:"flex flex-col items-center gap-0.5 cursor-pointer"},Cl={class:"text-xs text-gray-500 dark:text-gray-400 whitespace-nowrap"},Vl=["aria-checked"],Ct=qe({__name:"ToggleSwitch",props:{label:{},checked:{type:Boolean}},emits:["toggle"],setup(M,{emit:t}){const E=t;return(k,L)=>(r(),d("label",wl,[e("span",Cl,n(M.label),1),e("button",{type:"button",role:"switch","aria-checked":M.checked,onClick:L[0]||(L[0]=P=>E("toggle")),class:X(["relative inline-flex h-5 w-9 shrink-0 rounded-full border-2 border-transparent transition-colors duration-200",M.checked?"bg-primary-500":"bg-gray-300 dark:bg-dark-600"])},[e("span",{class:X(["pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow-sm transition-transform duration-200",M.checked?"translate-x-4":"translate-x-0"])},null,2)],10,Vl)]))}}),Ul=["title"],Sl={class:"flex items-center gap-3"},$l={class:"text-sm font-medium text-gray-900 dark:text-white"},Pl={class:"text-xs text-gray-400 dark:text-gray-500"},El={key:0,class:"text-xs text-gray-400 dark:text-gray-500"},Tl={key:1,class:"text-xs text-gray-300 dark:text-gray-600"},Al={key:2,class:"flex items-center gap-1"},Ml=["onClick"],Fl={class:"flex items-center gap-4"},Ll={class:"flex items-center gap-2 border-l border-gray-200 pl-3 dark:border-dark-600"},Hl={class:"text-xs"},Il={class:"text-xs"}
2,Rl=qe({__name:"ProviderCard",props:{provider:{},enabled:{type:Boolean},availableTypes:{}},emits:["toggleField","toggleType","edit","delete"],setup(M,{emit:t}){const E={easypay:"admin.settings.payment.providerEasypay",alipay:"admin.settings.payment.providerAlipay",wxpay:"admin.settings.payment.providerWxpay",stripe:"admin.settings.payment.providerStripe",airwallex:"admin.settings.payment.providerAirwallex"},k=M,L=t,{t:P}=Ge(),H=B(()=>P(E[k.provider.provider_key]||k.provider.provider_key)),x=B(()=>k.provider.payment_mode===Lt?P("admin.settings.payment.modeQRCode"):k.provider.payment_mode===Oa?P("admin.settings.payment.modePopup"):k.provider.payment_mode===za?P("admin.settings.payment.modeRedirect"):"");function w(f){return Array.isArray(k.provider.supported_types)&&k.provider.supported_types.includes(f)}return(f,S)=>(r(),d("div",{class:X(["group relative rounded-lg border transition-all",M.enabled?"border-gray-200 dark:border-dark-600":"border-gray-200 bg-gray-50 opacity-50 dark:border-dark-700 dark:bg-dark-800/50"]),title:M.enabled?void 0:a(P)("admin.settings.payment.typeDisabled")+" — "+a(P)("admin.settings.payment.enableTypesFirst")},[e("div",{class:X(["flex items-center justify-between px-4 py-2.5",!M.enabled&&"pointer-events-none"])},[e("div",Sl,[e("div",{class:X(["rounded-md p-1.5",M.provider.enabled&&M.enabled?"bg-green-100 dark:bg-green-900/30":"bg-gray-100 dark:bg-dark-700"])},[g(de,{name:"server",size:"sm",class:X(M.provider.enabled&&M.enabled?"text-green-600 dark:text-green-400":"text-gray-400")},null,8,["class"])],2),e("span",$l,n(M.provider.name),1),e("span",Pl,n(H.value),1),M.provider.payment_mode?(r(),d("span",El,"· "+n(x.value),1)):h("",!0),M.enabled&&M.availableTypes.length?(r(),d("span",Tl,"|")):h("",!0),M.enabled?(r(),d("div",Al,[(r(!0),d(R,null,N(M.availableTypes,A=>(r(),d("button",{key:A.value,type:"button",onClick:ee=>L("toggleType",A.value),class:X(["rounded px-2 py-0.5 text-xs font-medium transition-all",w(A.value)?"bg-primary-500 text-white":"bg-gray-100 text-gray-400 dark:bg-dark-700 dark:text-gray-500"])},n(A.label),11,Ml))),128))])):h("",!0)]),e("div",Fl,[g(Ct,{label:a(P)("common.enabled"),checked:M.provider.enabled,onToggle:S[0]||(S[0]=A=>L("toggleField","enabled"))},null,8,["label","checked"]),g(Ct,{label:a(P)("admin.settings.payment.refundEnabled"),checked:M.provider.refund_enabled,onToggle:S[1]||(S[1]=A=>L("toggleField","refund_enabled"))},null,8,["label","checked"]),M.provider.refund_enabled?(r(),Xe(Ct,{key:0,label:a(P)("admin.settings.payment.allowUserRefund"),checked:M.provider.allow_user_refund,onToggle:S[2]||(S[2]=A=>L("toggleField","allow_user_refund"))},null,8,["label","checked"])):h("",!0),e("div",Ll,[e("button",{type:"button",onClick:S[3]||(S[3]=A=>L("edit")),class:"flex flex-col items-center gap-0.5 rounded-lg p-1.5 text-gray-500 transition-colors hover:bg-blue-50 hover:text-blue-600 dark:hover:bg-blue-900/20 dark:hover:text-blue-400"},[g(de,{name:"edit",size:"sm"}),e("span",Hl,n(a(P)("common.edit")),1)]),e("button",{type:"button",onClick:S[4]||(S[4]=A=>L("delete")),class:"flex flex-col items-center gap-0.5 rounded-lg p-1.5 text-gray-500 transition-colors hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-900/20 dark:hover:text-red-400"},[g(de,{name:"trash",size:"sm"}),e("span",Il,n(a(P)("common.delete")),1)])])])],2)],10,Ul))}}),Bl={class:"card"},jl={class:"border-b border-gray-100 px-4 py-3 dark:border-dark-700"},Dl={class:"flex items-center justify-between"},Ol={class:"text-base font-semibold text-gray-900 dark:text-white"},zl={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},ql={class:"flex items-center gap-2"},Nl=["disabled","title"],Kl=["disabled"],Wl={class:"p-4"},Gl={key:0,class:"flex items-center justify-center py-6"},Ql={class:"min-w-0 flex-1"},Yl={key:2,class:"py-6 text-center"},Jl={class:"text-sm text-gray-500 dark:text-gray-400"},Xl=qe({__name:"PaymentProviderList",props:{providers:{},loading:{type:Boolean},canCreate:{type:Boolean},enabledPaymentTypes:{},allPaymentTypes:{},redirectLabel:{}},emits:["refresh","create","edit","delete","toggleField","toggleType","reorder"],setup(M,{emit:t}){const E=M,k=t,{t:L}=Ge(),P=U([]);pt(()=>E.providers,f=>{P.value=[...f]},{immediate:!0});function H(){const f=P.value.map((S,A)=>({id:S.id,sort_order:A}));k("reorder",f)}function x(f){return E.enabledPaymentTypes.includes(f)}function w(f){return dn(f,E.allPaymentTypes,E.redirectLabel).map(S=>S.label===S.value?{...S,label:L(`payment.methods.${S.value}`,S.value)}:S)}return(f,S)=>
2(r(),d("div",Bl,[e("div",jl,[e("div",Dl,[e("div",null,[e("h2",Ol,n(a(L)("admin.settings.payment.providerManagement")),1),e("p",zl,n(a(L)("admin.settings.payment.providerManagementDesc")),1)]),e("div",ql,[e("button",{type:"button",onClick:S[0]||(S[0]=A=>k("refresh")),disabled:M.loading,class:"btn btn-secondary btn-sm",title:a(L)("common.refresh")},[g(de,{name:"refresh",size:"sm",class:X(M.loading?"animate-spin":"")},null,8,["class"])],8,Nl),e("button",{type:"button",onClick:S[1]||(S[1]=A=>k("create")),disabled:!M.canCreate,class:X(M.canCreate?"btn btn-primary btn-sm":"btn btn-secondary btn-sm cursor-not-allowed opacity-50")},n(a(L)("admin.settings.payment.createProvider")),11,Kl)])])]),e("div",Wl,[M.loading&&!M.providers.length?(r(),d("div",Gl,[...S[4]||(S[4]=[e("div",{class:"h-5 w-5 animate-spin rounded-full border-2 border-primary-500 border-t-transparent"},null,-1)])])):h("",!0),M.providers.length?(r(),Xe(a(rl),{key:1,modelValue:P.value,"onUpdate:modelValue":S[2]||(S[2]=A=>P.value=A),animation:200,handle:".drag-handle",class:"space-y-3",onEnd:H},{default:$e(()=>[(r(!0),d(R,null,N(P.value,A=>(r(),d("div",{key:A.id,class:"flex items-start gap-2"},[S[5]||(S[5]=e("div",{class:"drag-handle mt-3 flex cursor-grab items-center text-gray-300 hover:text-gray-500 active:cursor-grabbing dark:text-dark-600 dark:hover:text-dark-400"},[e("svg",{class:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor"},[e("path",{d:"M7 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM13 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM7 8a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM13 8a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM7 14a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM13 14a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"})])],-1)),e("div",Ql,[g(Rl,{provider:A,enabled:x(A.provider_key),"available-types":w(A.provider_key),onToggleField:ee=>k("toggleField",A,ee),onToggleType:ee=>k("toggleType",A,ee),onEdit:ee=>k("edit",A),onDelete:ee=>k("delete",A)},null,8,["provider","enabled","available-types","onToggleField","onToggleType","onEdit","onDelete"])])]))),128))]),_:1},8,["modelValue"])):M.loading?h("",!0):(r(),d("div",Yl,[e("p",Jl,n(M.canCreate?a(L)("admin.settings.payment.noProviders"):a(L)("admin.settings.payment.enableTypesFirst")),1),M.canCreate?(r(),d("button",{key:0,type:"button",onClick:S[3]||(S[3]=A=>k("create")),class:"btn btn-primary btn-sm mt-2"},n(a(L)("admin.settings.payment.createProvider")),1)):h("",!0)]))])]))}}),Zl={class:"grid grid-cols-2 gap-4"},er={class:"input-label"},tr={class:"input-label"},ar={class:"flex flex-wrap items-center gap-x-5 gap-y-2"},sr={key:1,class:"flex items-center gap-2"},nr={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},ir={class:"flex gap-1.5"},or=["onClick"],lr={key:2,class:"flex items-center gap-2"},rr={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},dr={class:"flex flex-wrap gap-1.5"},cr=["onClick"],ur={key:0,class:"space-y-3 rounded-lg border border-gray-100 p-3 dark:border-dark-700"},_r={class:"flex items-center justify-between gap-3"},mr={class:"text-sm font-medium text-gray-900 dark:text-white"},pr={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},gr={key:0,class:"space-y-2"},yr={class:"text-xs text-gray-500 dark:text-gray-400"},br=["onUpdate:modelValue"],xr={class:"text-xs text-gray-500 dark:text-gray-400"},hr=["onUpdate:modelValue"],fr={class:"text-xs text-gray-500 dark:text-gray-400"},kr=["onUpdate:modelValue","placeholder"],vr=["onClick"],wr={class:"border-t border-gray-200 pt-4 dark:border-dark-700"},Cr={class:"mb-3 flex items-center gap-2"},Vr={class:"text-sm font-semibold text-gray-900 dark:text-white"},Ur=["aria-label","title"],Sr={class:"space-y-3"},$r={class:"font-medium text-white"},Pr={class:"font-medium text-white"},Er={class:"text-gray-300"},Tr={class:"text-gray-300"},Ar={class:"text-gray-300"},Mr={key:0,class:"border-t border-white/10 pt-2 text-[11px] text-gray-300"},Fr={key:0,class:"mb-3 text-xs text-gray-500 dark:text-gray-400"},Lr={class:"space-y-3"},Hr={class:"input-label"},Ir={key:0,class:"text-xs text-gray-400"},Rr={key:1,class:"text-red-500"},Br=["onUpdate:modelValue","placeholder"],jr={key:1,class:"relative"},Dr=["type","onUpdate:modelValue","placeholder"],Or=["onClick"],zr={key:0,class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},qr={key:1,class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Nr=["onUpdate:modelValue","placeholder"],Kr={key:4,class:"mt-1 text-xs leading-relaxed text-gray-500 dark:text-gray-400"},Wr={key:1,class:"mt-4 space-y-3"},Gr={key:0},Qr={class:"input-label"},Yr={class:"flex"},Jr=["placeholder"],Xr={class:"inline-flex items-center whitespace-nowrap rounded-r-lg border border-gray-300 bg-gray-50 px-3 text-xs text-gray-500 dark:border-dark-600 dark:bg-dark-700 dark:text-gray-400"},Zr={key:1},ed={class:"input-label"},td={class:"flex"},ad=["placeholder"],sd={class:"inline-flex items-center whitespace-nowrap rounded-r-lg border border-gray-300 bg-gray-50 px-3 text-xs text-gray-500 dark:border-dark-600 dark:bg-dark-700 dark:text-gray-400"},nd={key:2,class:"mt-3 rounded-lg border border-blue-200 bg-blue-50 p-3 dark:border-blue-800/50 dark:bg-blue-900/20"},id={class:"text-xs text-blue-700 dark:text-blue-300"},od={class:"mt-1 block break-all rounded bg-blue-100 px-2 py-1 text-xs text-blue-800 dark:bg-blue-900/40 dark:text-blue-200"},ld={key:0,class:"mt-2 text-xs leading-relaxed text-blue-700 dark:text-blue-300"}
2,rd={key:1,class:"border-t border-gray-200 pt-4 dark:border-dark-700"},dd={class:"text-sm font-semibold text-gray-900 dark:text-white"},cd={class:"mt-3 space-y-3"},ud={class:"mb-2 text-xs font-medium text-gray-700 dark:text-gray-300"},_d={class:"grid grid-cols-3 gap-3"},md={class:"text-xs text-gray-500 dark:text-gray-400"},pd=["value","onInput","placeholder"],gd={class:"text-xs text-gray-500 dark:text-gray-400"},yd=["value","onInput","placeholder"],bd={class:"text-xs text-gray-500 dark:text-gray-400"},xd=["value","onInput","placeholder"],hd={class:"text-xs text-gray-400 dark:text-gray-500"},fd={class:"flex justify-end gap-3"},kd=["disabled"],vd=qe({__name:"PaymentProviderDialog",props:{show:{type:Boolean},saving:{type:Boolean},editing:{},allKeyOptions:{},enabledKeyOptions:{},allPaymentTypes:{},redirectLabel:{}},emits:["close","save"],setup(M,{expose:t,emit:E}){function k(b){return b==="easypay"?Lt:""}function L(b){return b==="easypay"||b==="alipay"}function P(b,y){return b==="easypay"?y===Lt||y===Oa:b==="alipay"?y===""||y===za:y===""}const H=M,x=E,{t:w}=Ge(),f=ye({name:"",provider_key:"easypay",supported_types:[],enabled:!0,payment_mode:Lt,refund_enabled:!1,allow_user_refund:!1}),S=ye({}),A=ye({}),ee=U(""),J=U(""),me=U(!1),te=ye({}),le=ye([]),ce=typeof window<"u"?window.location.origin:"",oe={stripe:"admin.settings.payment.stripeWebhookHint",airwallex:"admin.settings.payment.airwallexWebhookHint"},D=B(()=>{const b=_l[f.provider_key];return oe[f.provider_key]&&b?ce+b:""}),Q=B(()=>oe[f.provider_key]||"admin.settings.payment.stripeWebhookHint"),z=B(()=>Ba[f.provider_key]||null),K=B(()=>L(f.provider_key)),Z=B(()=>f.provider_key==="alipay"?[{value:"",label:w("admin.settings.payment.modeQRCode")},{value:za,label:w("admin.settings.payment.modeRedirect")}]:[{value:Lt,label:w("admin.settings.payment.modeQRCode")},{value:Oa,label:w("admin.settings.payment.modePopup")}]),Y=B(()=>{const b=dn(f.provider_key,H.allPaymentTypes,H.redirectLabel);if(f.provider_key==="easypay")for(const y of ve())b.some(V=>V.value===y.type)||b.push({value:y.type,label:y.displayName||y.type});return b.map(y=>y.label===y.value?{...y,label:w(`payment.methods.${y.value}`,y.value)}:y)}),ge=B(()=>(Gt[f.provider_key]||[]).map(y=>({...y,label:y.label||w(`admin.settings.payment.field_${y.key}`)}))),j=B(()=>f.provider_key==="alipay"?{summary:w("admin.settings.payment.alipayGuideSummary"),items:[{title:w("admin.settings.payment.alipayGuideFaceToFaceTitle"),open:w("admin.settings.payment.alipayGuideFaceToFaceOpen"),call:w("admin.settings.payment.alipayGuideFaceToFaceCall"),fallback:w("admin.settings.payment.alipayGuideFaceToFaceFallback")},{title:w("admin.settings.payment.alipayGuidePagePayTitle"),open:w("admin.settings.payment.alipayGuidePagePayOpen"),call:w("admin.settings.payment.alipayGuidePagePayCall"),fallback:w("admin.settings.payment.alipayGuidePagePayFallback")},{title:w("admin.settings.payment.alipayGuideWapTitle"),open:w("admin.settings.payment.alipayGuideWapOpen"),call:w("admin.settings.payment.alipayGuideWapCall"),fallback:w("admin.settings.payment.alipayGuideWapFallback")}]}:f.provider_key==="wxpay"?{summary:w("admin.settings.payment.wxpayGuideSummary"),note:w("admin.settings.payment.wxpayGuideNote"),items:[{title:w("admin.settings.payment.wxpayGuideNativeTitle"),open:w("admin.settings.payment.wxpayGuideNativeOpen"),call:w("admin.settings.payment.wxpayGuideNativeCall"),fallback:w("admin.settings.payment.wxpayGuideNativeFallback")},{title:w("admin.settings.payment.wxpayGuideJsapiTitle"),open:w("admin.settings.payment.wxpayGuideJsapiOpen"),call:w("admin.settings.payment.wxpayGuideJsapiCall"),fallback:w("admin.settings.payment.wxpayGuideJsapiFallback")},{title:w("admin.settings.payment.wxpayGuideH5Title"),open:w("admin.settings.payment.wxpayGuideH5Open"),call:w("admin.settings.payment.wxpayGuideH5Call"),fallback:w("admin.settings.payment.wxpayGuideH5Fallback")}]}:f.provider_key==="airwallex"?{summary:w("admin.settings.payment.airwallexGuideSummary"),note:w("admin.settings.payment.airwallexGuideNote"),items:[]}:null),se=B(()=>
2f.provider_key==="stripe"?[{value:"stripe",label:"Stripe"}]:f.supported_types.filter(y=>y!=="easypay").map(y=>H.allPaymentTypes.find(F=>F.value===y)||{value:y,label:y}));function ne(b){return f.supported_types.includes(b)}function Fe(b){f.supported_types.includes(b)?f.supported_types=f.supported_types.filter(y=>y!==b):f.supported_types=[...f.supported_types,b]}function ve(){return le.map(b=>({type:he(b.type),upstreamType:he(b.upstreamType),displayName:b.displayName.trim()})).filter(b=>b.type||b.upstreamType||b.displayName)}function he(b){return b.trim().toLowerCase()}function Le(){le.push({type:"",upstreamType:"",displayName:""})}function Pe(b){le.splice(b,1)}function He(){f.supported_types=[...Wt[f.provider_key]||[]],f.payment_mode=k(f.provider_key),Ne(),Re()}function Ne(){Object.keys(S).forEach(b=>delete S[b]),Object.keys(A).forEach(b=>delete A[b]),Object.keys(te).forEach(b=>delete te[b]),ee.value="",J.value="",me.value=!1,le.splice(0,le.length)}function Re(){for(const b of Gt[f.provider_key]||[])b.defaultValue&&!S[b.key]&&(S[b.key]=b.defaultValue)}function Ze(b,y){var F;const V=(F=A[b])==null?void 0:F[y];return V&&V>0?String(V):""}function et(b){const y=A[b];return y?y.singleMin>0||y.singleMax>0||y.dailyLimit>0:!1}function Ee(b){return et(b)?w("admin.settings.payment.limitsNoLimit"):w("admin.settings.payment.limitsUseGlobal")}function Be(b,y,V){A[b]||(A[b]={});const F=Number(V);if(V===""||isNaN(F)){delete A[b][y];return}F<=0||(A[b][y]=F)}function tt(){const b={};for(const[y,V]of Object.entries(A)){const F={};for(const[ie,Ve]of Object.entries(V))Ve>0&&(F[ie]=Ve);Object.keys(F).length>0&&(b[y]=F)}return Object.keys(b).length>0?JSON.stringify(b):""}function Te(){if(!f.name.trim()){we(w("admin.settings.payment.validationNameRequired"));return}if(f.provider_key==="easypay"){const F=Ke();if(F){we(F);return}ot()}for(const F of Gt[f.provider_key]||[]){if(F.optional||H.editing&&F.sensitive)continue;if(!(S[F.key]||"").trim()){const Ve=F.label||w(`admin.settings.payment.field_${F.key}`);we(w("admin.settings.payment.validationFieldRequired",{field:Ve}));return}}const b=new Set((Gt[f.provider_key]||[]).filter(F=>F.clearable).map(F=>F.key)),y={};for(const[F,ie]of Object.entries(S)){if(!ie||!ie.trim()){b.has(F)&&(y[F]="");continue}y[F]=ie}f.provider_key==="easypay"&&(y.customMethods=ul(ve()));const V=Ba[f.provider_key];if(V){const F=(ee.value.trim()||ce).replace(/\/+$/,""),ie=(J.value.trim()||ce).replace(/\/+$/,"");ee.value=F,J.value=ie,V.notifyUrl&&(y.notifyUrl=F+V.notifyUrl),V.returnUrl&&(y.returnUrl=ie+V.returnUrl)}x("save",{provider_key:f.provider_key,name:f.name,supported_types:f.supported_types,enabled:f.enabled,payment_mode:K.value?f.payment_mode:"",refund_enabled:f.refund_enabled,allow_user_refund:f.refund_enabled?f.allow_user_refund:!1,config:y,limits:tt()})}function ot(){if(f.provider_key!=="easypay")return[];const b=new Set(Wt.easypay||[]),y=[],V=new Set;for(const F of ve())!F.type||!F.upstreamType||V.has(F.type)||(V.add(F.type),y.push(F.type));f.supported_types=f.supported_types.map(F=>he(F)).filter(F=>b.has(F)||y.includes(F));for(const F of y)f.supported_types.includes(F)||f.supported_types.push(F);return y}function Ke(){const b=new Set;for(const y of ve())if(y.type||y.upstreamType||y.displayName){if(!y.type||!y.upstreamType)return w("admin.settings.payment.validationEasyPayCustomMethodRequired");if(!/^[a-z0-9_-]+$/.test(y.type))return w("admin.settings.payment.validationEasyPayCustomMethodTypeInvalid");if(!/^[a-z0-9_.-]+$/.test(y.upstreamType))return w("admin.settings.payment.validationEasyPayCustomMethodUpstreamTypeInvalid");if((Wt.easypay||[]).includes(y.type))return w("admin.settings.payment.validationEasyPayCustomMethodReserved");if(y.type.startsWith("alipay")||y.type.startsWith("wxpay"))return w("admin.settings.payment.validationEasyPayCustomMethodPrefixReserved");if(b.has(y.type))return w("admin.settings.payment.validationEasyPayCustomMethodDuplicate");b.add(y.type)}return null}function we(b){Qo(()=>import("./GroupBadge.vue_vue_type_script_setup_true_lang-xgjYBrct.js").then(y=>y.i),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])).then(y=>y.useAppStore().showError(b))}function je(b){f.name="",f.provider_key=b,f.supported_types=[...Wt[b]||[]],f.enabled=!0,f.payment_mode=k(b),f.refund_enabled=!1,f.allow_user_refund=!1,Ne(),Re()}
2function at(b){if(f.name=b.name,f.provider_key=b.provider_key,f.supported_types=Array.isArray(b.supported_types)?[...b.supported_types]:[],f.enabled=b.enabled,f.payment_mode=P(b.provider_key,b.payment_mode||"")?b.payment_mode||"":k(b.provider_key),f.refund_enabled=b.refund_enabled,f.allow_user_refund=b.allow_user_refund,Ne(),b.config){for(const[V,F]of Object.entries(b.config))if(!(V==="notifyUrl"||V==="returnUrl")){if(V==="customMethods"&&b.provider_key==="easypay"){le.push(...cl(F));continue}S[V]=F}const y=Ba[b.provider_key];y!=null&&y.notifyUrl&&b.config.notifyUrl&&(ee.value=Ys(b.config.notifyUrl,y.notifyUrl)),y!=null&&y.returnUrl&&b.config.returnUrl&&(J.value=Ys(b.config.returnUrl,y.returnUrl))}if(Re(),b.limits)try{const y=JSON.parse(b.limits);for(const[V,F]of Object.entries(y))A[V]={...F};me.value=Object.keys(A).length>0}catch{}}return t({reset:je,loadProvider:at}),(b,y)=>(r(),Xe(Go,{show:M.show,title:M.editing?a(w)("admin.settings.payment.editProvider"):a(w)("admin.settings.payment.createProvider"),width:"wide",onClose:y[9]||(y[9]=V=>x("close"))},{footer:$e(()=>[e("div",fd,[e("button",{type:"button",onClick:y[8]||(y[8]=V=>x("close")),class:"btn btn-secondary"},n(a(w)("common.cancel")),1),e("button",{type:"submit",form:"provider-form",disabled:M.saving,class:"btn btn-primary"},n(M.saving?a(w)("common.saving"):a(w)("common.save")),9,kd)])]),default:$e(()=>[e("form",{id:"provider-form",onSubmit:Me(Te,["prevent"]),class:"space-y-4"},[e("div",Zl,[e("div",null,[e("label",er,[I(n(a(w)("admin.settings.payment.providerName"))+" ",1),y[10]||(y[10]=e("span",{class:"text-red-500"},"*",-1))]),c(e("input",{"onUpdate:modelValue":y[0]||(y[0]=V=>f.name=V),type:"text",class:"input",required:""},null,512),[[u,f.name]])]),e("div",null,[e("label",tr,[I(n(a(w)("admin.settings.payment.providerKey"))+" ",1),y[11]||(y[11]=e("span",{class:"text-red-500"},"*",-1))]),g(ke,{modelValue:f.provider_key,"onUpdate:modelValue":y[1]||(y[1]=V=>f.provider_key=V),options:M.editing?M.allKeyOptions:M.enabledKeyOptions,disabled:!!M.editing,onChange:He},null,8,["modelValue","options","disabled"])])]),e("div",ar,[g(Ct,{label:a(w)("common.enabled"),checked:f.enabled,onToggle:y[2]||(y[2]=V=>f.enabled=!f.enabled)},null,8,["label","checked"]),g(Ct,{label:a(w)("admin.settings.payment.refundEnabled"),checked:f.refund_enabled,onToggle:y[3]||(y[3]=V=>{f.refund_enabled=!f.refund_enabled,f.refund_enabled||(f.allow_user_refund=!1)})},null,8,["label","checked"]),f.refund_enabled?(r(),Xe(Ct,{key:0,label:a(w)("admin.settings.payment.allowUserRefund"),checked:f.allow_user_refund,onToggle:y[4]||(y[4]=V=>f.allow_user_refund=!f.allow_user_refund)},null,8,["label","checked"])):h("",!0),K.value?(r(),d("div",sr,[e("span",nr,n(a(w)("admin.settings.payment.paymentMode")),1),e("div",ir,[(r(!0),d(R,null,N(Z.value,V=>(r(),d("button",{key:V.value,type:"button",onClick:F=>f.payment_mode=V.value,class:X(["rounded-lg border px-2.5 py-1 text-xs font-medium transition-all",f.payment_mode===V.value?"border-primary-500 bg-primary-500 text-white shadow-sm":"border-gray-300 bg-white text-gray-600 hover:border-gray-400 hover:bg-gray-50 dark:border-dark-600 dark:bg-dark-800 dark:text-gray-300 dark:hover:border-dark-500"])},n(V.label),11,or))),128))])])):h("",!0),Y.value.length>1?(r(),d("div",lr,[e("span",rr,n(a(w)("admin.settings.payment.supportedTypes")),1),e("div",dr,[(r(!0),d(R,null,N(Y.value,V=>(r(),d("button",{key:V.value,type:"button",onClick:F=>Fe(V.value),class:X(["rounded-lg border px-2.5 py-1 text-xs font-medium transition-all",ne(V.value)?"border-primary-500 bg-primary-500 text-white shadow-sm":"border-gray-300 bg-white text-gray-600 hover:border-gray-400 hover:bg-gray-50 dark:border-dark-600 dark:bg-dark-800 dark:text-gray-300 dark:hover:border-dark-500"])},n(V.label),11,cr))),128))])])):h("",!0)]),f.provider_key==="easypay"?(r(),d("div",ur,[e("div",_r,[e("div",null,[e("h5",mr,n(a(w)("admin.settings.payment.easypayCustomMethods")),1),e("p",pr,n(a(w)("admin.settings.payment.easypayCustomMethodsHint")),1)]),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:Le},n(a(w)("admin.settings.payment.addCustomMethod")),1)]),le.length?(r(),d("div",gr,[(r(!0),d(R,null,N(le,(V,F)=>(r(),d("div",{key:F,class:"grid grid-cols-[1fr_1fr_1fr_auto] items-end gap-2"},[e("div",null,[e("label",yr,n(a(w)("admin.settings.payment.customMethodT
2ype")),1),c(e("input",{"onUpdate:modelValue":ie=>V.type=ie,type:"text",class:"input mt-0.5",placeholder:"credit_card"},null,8,br),[[u,V.type]])]),e("div",null,[e("label",xr,n(a(w)("admin.settings.payment.customMethodUpstreamType")),1),c(e("input",{"onUpdate:modelValue":ie=>V.upstreamType=ie,type:"text",class:"input mt-0.5",placeholder:"credit_card"},null,8,hr),[[u,V.upstreamType]])]),e("div",null,[e("label",fr,n(a(w)("admin.settings.payment.customMethodDisplayName")),1),c(e("input",{"onUpdate:modelValue":ie=>V.displayName=ie,type:"text",class:"input mt-0.5",placeholder:a(w)("admin.settings.payment.customMethodDisplayNamePlaceholder")},null,8,kr),[[u,V.displayName]])]),e("button",{type:"button",class:"rounded-lg border border-red-200 px-2.5 py-2 text-xs font-medium text-red-600 transition-colors hover:bg-red-50 dark:border-red-800/60 dark:text-red-300 dark:hover:bg-red-900/20",onClick:ie=>Pe(F)},n(a(w)("common.delete")),9,vr)]))),128))])):h("",!0)])):h("",!0),e("div",wr,[e("div",Cr,[e("h4",Vr,n(a(w)("admin.settings.payment.providerConfig")),1),j.value?(r(),Xe(nl,{key:0,trigger:"click","width-class":"w-80"},{trigger:$e(()=>[e("button",{type:"button",class:"inline-flex h-5 w-5 items-center justify-center rounded-full border border-gray-300 text-[11px] font-semibold text-gray-400 transition-colors hover:border-primary-500 hover:text-primary-600 dark:border-dark-500 dark:text-gray-500 dark:hover:border-primary-400 dark:hover:text-primary-400","aria-label":a(w)("admin.settings.payment.paymentGuideTrigger"),title:a(w)("admin.settings.payment.paymentGuideTrigger")}," ? ",8,Ur)]),default:$e(()=>[e("div",Sr,[e("p",$r,n(j.value.summary),1),(r(!0),d(R,null,N(j.value.items,V=>(r(),d("div",{key:V.title,class:"space-y-1.5 border-t border-white/10 pt-2 first:border-t-0 first:pt-0"},[e("p",Pr,n(V.title),1),e("p",null,[e("span",Er,n(a(w)("admin.settings.payment.guideOpenLabel")),1),I(n(V.open),1)]),e("p",null,[e("span",Tr,n(a(w)("admin.settings.payment.guideCallLabel")),1),I(n(V.call),1)]),e("p",null,[e("span",Ar,n(a(w)("admin.settings.payment.guideFallbackLabel")),1),I(n(V.fallback),1)])]))),128)),j.value.note?(r(),d("p",Mr,n(j.value.note),1)):h("",!0)])]),_:1})):h("",!0)]),j.value?(r(),d("p",Fr,n(j.value.summary),1)):h("",!0),e("div",Lr,[(r(!0),d(R,null,N(ge.value,V=>{var F;return r(),d("div",{key:V.key},[e("label",Hr,[I(n(V.label)+" ",1),V.optional?(r(),d("span",Ir,"("+n(a(w)("common.optional"))+")",1)):(r(),d("span",Rr," *"))]),V.sensitive&&V.key.toLowerCase().includes("key")&&V.key!=="pkey"?c((r(),d("textarea",{key:0,"onUpdate:modelValue":ie=>S[V.key]=ie,rows:"3",class:"input font-mono text-xs",autocomplete:"new-password","data-1p-ignore":"","data-lpignore":"true","data-bwignore":"true",spellcheck:"false",placeholder:M.editing?a(w)("admin.accounts.leaveEmptyToKeep"):""},null,8,Br)),[[u,S[V.key]]]):V.sensitive?(r(),d("div",jr,[c(e("input",{type:te[V.key]?"text":"password","onUpdate:modelValue":ie=>S[V.key]=ie,class:"input pr-10",autocomplete:"new-password","data-1p-ignore":"","data-lpignore":"true","data-bwignore":"true",spellcheck:"false",placeholder:M.editing?a(w)("admin.accounts.leaveEmptyToKeep"):V.defaultValue||""},null,8,Dr),[[on,S[V.key]]]),e("button",{type:"button",onClick:ie=>te[V.key]=!te[V.key],class:"absolute inset-y-0 right-0 flex items-center pr-3 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300"},[te[V.key]?(r(),d("svg",zr,[...y[12]||(y[12]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.878 9.878L3 3m6.878 6.878L21 21"},null,-1)])])):(r(),d("svg",qr,[...y[13]||(y[13]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"},null,-1),e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"},null,-1)])]))],8,Or)])):(F=V.options)!=null&&F.length?(r(),Xe(ke,{key:2,modelValue:S[V.key],"onUpdate:modelValue":ie=>S[V.key]=ie,options:V.options,searchable:V.options.length>5},null,8,["modelValue","onUpdate:modelValue","options","searchable"])):c((r(),d("input",{key:3,type:"text","onUpdate:modelValue":ie=>S[V.key]=ie,class:"input",placeholder:V.defaultValue||""},null,8,Nr)),[[u,S[V.key]]]),V.hintKey?(r(),d("p",Kr,n(a(w)(V.hintKey)),1)):h("",!0)])}),128))]),z.value?(r(),d("div",Wr,[z.value.notifyUrl?(r(),d("div",Gr,[e("label",Qr,[I(n(a(w)("admin.settings.payment.field_notifyUrl"))+" ",1),y[14]||(y[14]=e("span",{class:"text-red-500"},"*",-1))]),e("div",Yr,[c(e("input",{"onUpdate:modelValue":y[5]||(y[5]=V=>ee.value=V),type:"text",class:"input min-w-0 flex-1 !rounded-r-none !border-r-0",placeholder:a(ce)},null,8,Jr),[[u,ee.value]]),e("span",Xr,n(z.value.notifyUrl),1)])])):h("",!0),z.value.returnUrl?(r(),d("div",Zr,[e("label",ed,[I(n(a(w)("admin.settings.payment.field_returnUrl"))+" ",1),y[15]||(y[15]=e("span",{class:"text-red-500"},"*",-1))]),e("div",td,[c(e("input",{"onUpdate:modelValue":y[6]||(y[6]=V=>J.value=V),type:"text",class:"input min-w-0 flex-1 !rounded-r-none !border-r-0",placeholder:a(ce)},null,8,ad),[[u,J.value]]),e("span",sd,n(z.value.returnUrl),1)])])):h("",!0)])):h("",!0),D.value?(r(),d("div",nd,[e("p",id,n(a(w)(Q.value)),1),e("code",od,n(D.value),1),f.provider_key==="str
2ipe"?(r(),d("p",ld,n(a(w)("admin.settings.payment.stripeWebhookApiVersionHint",{version:a(dl)})),1)):h("",!0)])):h("",!0)]),se.value.length?(r(),d("div",rd,[e("button",{type:"button",onClick:y[7]||(y[7]=V=>me.value=!me.value),class:"flex w-full items-center justify-between"},[e("h4",dd,n(a(w)("admin.settings.payment.limitsTitle")),1),(r(),d("svg",{class:X(["h-4 w-4 text-gray-400 transition-transform",me.value&&"rotate-180"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...y[16]||(y[16]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])],2))]),c(e("div",cd,[(r(!0),d(R,null,N(se.value,V=>(r(),d("div",{key:V.value,class:"rounded-lg border border-gray-100 p-3 dark:border-dark-700"},[e("p",ud,n(V.label),1),e("div",_d,[e("div",null,[e("label",md,n(a(w)("admin.settings.payment.limitSingleMin")),1),e("input",{type:"number",value:Ze(V.value,"singleMin"),onInput:F=>Be(V.value,"singleMin",F.target.value),class:"input mt-0.5",min:"1",step:"0.01",placeholder:Ee(V.value)},null,40,pd)]),e("div",null,[e("label",gd,n(a(w)("admin.settings.payment.limitSingleMax")),1),e("input",{type:"number",value:Ze(V.value,"singleMax"),onInput:F=>Be(V.value,"singleMax",F.target.value),class:"input mt-0.5",min:"1",step:"0.01",placeholder:Ee(V.value)},null,40,yd)]),e("div",null,[e("label",bd,n(a(w)("admin.settings.payment.limitDaily")),1),e("input",{type:"number",value:Ze(V.value,"dailyLimit"),onInput:F=>Be(V.value,"dailyLimit",F.target.value),class:"input mt-0.5",min:"1",step:"0.01",placeholder:Ee(V.value)},null,40,xd)])])]))),128)),e("p",hd,n(a(w)("admin.settings.payment.limitsHint")),1)],512),[[Se,me.value]])])):h("",!0)],32)]),_:1},8,["show","title"]))}}),wd={class:"flex items-start gap-4"},Cd={class:"flex-shrink-0"},Vd=["innerHTML"],Ud=["src"],Sd={class:"flex-1 space-y-2"},$d={class:"flex items-center gap-2"},Pd={class:"btn btn-secondary btn-sm cursor-pointer"},Ed=["accept"],Td={key:0,class:"text-xs text-gray-500 dark:text-gray-400"},Ad={key:1,class:"text-xs text-red-500"},Qt=qe({__name:"ImageUpload",props:{modelValue:{},mode:{default:"image"},size:{default:"md"},uploadLabel:{default:""},removeLabel:{default:""},hint:{default:""},maxSize:{default:300*1024}},emits:["update:modelValue"],setup(M,{emit:t}){const{t:E}=Ge(),k=M,L=t,P=U("");let H=null;qa(()=>H==null?void 0:H.abort());function x(){H==null||H.abort(),L("update:modelValue","")}const w=B(()=>k.uploadLabel||E("common.upload")),f=B(()=>k.removeLabel||E("common.remove")),S=B(()=>k.mode==="svg"?".svg":"image/*"),A=B(()=>k.mode==="svg"?il(k.modelValue??""):""),ee=B(()=>k.size==="sm"?"h-14 w-14":"h-20 w-20"),J=B(()=>k.size==="sm"?"h-7 w-7":"h-12 w-12"),me=B(()=>k.size==="sm"?"h-5 w-5":"h-8 w-8");function te(le){var D;const ce=le.target,oe=(D=ce.files)==null?void 0:D[0];if(P.value="",!!oe){if(H==null||H.abort(),k.maxSize&&oe.size>k.maxSize){P.value=E("common.fileTooLargeKb",{size:(oe.size/1024).toFixed(1),max:(k.maxSize/1024).toFixed(0)}),ce.value="";return}if(H=new FileReader,k.mode==="svg")H.onload=Q=>{var K;const z=(K=Q.target)==null?void 0:K.result;z&&L("update:modelValue",z.trim())},H.readAsText(oe);else{if(!oe.type.startsWith("image/")){P.value=E("common.selectImageFile"),ce.value="";return}H.onload=Q=>{var z;L("update:modelValue",(z=Q.target)==null?void 0:z.result)},H.readAsDataURL(oe)}H.onerror=()=>{P.value=E("common.fileReadFailed")},ce.value=""}}return(le,ce)=>(r(),d("div",wd,[e("div",Cd,[e("div",{class:X(["flex items-center justify-center overflow-hidden rounded-xl border-2 border-dashed border-gray-300 bg-gray-50 dark:border-dark-600 dark:bg-dark-800",[ee.value,{"border-solid":!!M.modelValue}]])},[M.mode==="svg"&&M.modelValue?(r(),d("span",{key:0,class:X(["text-gray-600 dark:text-gray-300 [&>svg]:h-full [&>svg]:w-full",J.value]),innerHTML:A.value},null,10,Vd)):M.mode==="image"&&M.modelValue?(r(),d("img",{key:1,src:M.modelValue,alt:"",class:"h-full w-full object-contain"},null,8,Ud)):(r(),d("svg",{key:2,class:X(["text-gray-400 dark:text-dark-500",me.value]),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[...ce[0]||(ce[0]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"},null,-1)])],2))],2)]),e("div",Sd,[e("div",$d,[e("label",Pd,[e("input",{type:"file",accept:S.value,class:"hidden",onChange:te},null,40,Ed),g(de,{name:"upload",size:"sm",class:"mr-1.5","stroke-width":2}
2),I(" "+n(w.value),1)]),M.modelValue?(r(),d("button",{key:0,type:"button",class:"btn btn-secondary btn-sm text-red-600 hover:text-red-700 dark:text-red-400",onClick:x},[g(de,{name:"trash",size:"sm",class:"mr-1.5","stroke-width":2}),I(" "+n(f.value),1)])):h("",!0)]),M.hint?(r(),d("p",Td,n(M.hint),1)):h("",!0),P.value?(r(),d("p",Ad,n(P.value),1)):h("",!0)])]))}}),Md={class:"mt-5 border-t border-gray-200 pt-5 dark:border-dark-600","aria-labelledby":"backup-archive-title"},Fd={class:"mb-3 flex items-center justify-between gap-3"},Ld={id:"backup-archive-title",class:"text-sm font-medium text-gray-900 dark:text-white"},Hd={class:"inline-flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300"},Id=["checked"],Rd={key:0},Bd={class:"grid grid-cols-1 items-start gap-3 md:grid-cols-2"},jd={for:"backup-archive-dates",class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Dd=["aria-expanded","onKeydown"],Od={class:"flex min-w-0 flex-wrap items-center gap-1"},zd={key:0,class:"text-gray-400"},qd={key:1,class:"text-xs"},Nd={key:0,id:"backup-archive-options",class:"absolute left-0 top-full z-30 mt-1 w-full rounded-xl border border-gray-200 bg-white p-2 shadow-lg dark:border-dark-600 dark:bg-dark-800"},Kd={class:"mb-1 flex items-center justify-between gap-2 px-1 text-xs text-gray-500 dark:text-gray-400"},Wd=["aria-label"],Gd=["value","checked","aria-label","onChange"],Qd={class:"flex min-h-10 cursor-pointer items-center gap-1.5 rounded px-1 text-xs hover:bg-gray-100 dark:hover:bg-dark-700"},Yd=["checked","aria-label"],Jd={id:"backup-archive-dates-hint",class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Xd={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Zd={class:"flex min-h-10 flex-wrap items-center gap-3"},ec={key:0,class:"flex min-w-0 flex-1 items-center gap-2"},tc=["value","aria-label"],ac={class:"shrink-0 text-sm"},sc={class:"inline-flex min-h-10 shrink-0 items-center gap-2 text-sm text-gray-700 dark:text-gray-300"},nc=["checked"],ic={id:"backup-archive-retention-hint",class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},oc={class:"mt-3 text-xs text-gray-500 dark:text-gray-400"},lc={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},rc={key:1,class:"text-xs text-gray-500 dark:text-gray-400"},dc=qe({__name:"BackupArchiveSettings",props:{modelValue:{}},emits:["update:modelValue"],setup(M,{emit:t}){const E=M,k=t,{t:L}=Ge(),P=U(!1),H=U(null),x=U(null),w=U(12),f=B(()=>E.modelValue.retain_count===0),S=B(()=>[...[...E.modelValue.days].sort((D,Q)=>D-Q).map(D=>L("admin.backup.archive.day",{day:D})),...E.modelValue.include_month_end?[L("admin.backup.archive.monthEnd")]:[]]);pt(()=>E.modelValue.retain_count,D=>{Number.isInteger(D)&&D>0&&(w.value=D)},{immediate:!0}),pt(()=>E.modelValue.enabled,D=>{D||(P.value=!1)});function A(D){k("update:modelValue",{...E.modelValue,...D})}function ee(D){const Q=E.modelValue.days.includes(D)?E.modelValue.days.filter(z=>z!==D):[...E.modelValue.days,D];A({days:Q.sort((z,K)=>z-K)})}function J(D){const Q=D.target.valueAsNumber;A({retain_count:Q===0?Number.NaN:Q})}function me(D){A({retain_count:D.target.checked?0:w.value})}function te(D=!1){var Q;P.value=!1,D&&((Q=x.value)==null||Q.focus())}async function le(){var D,Q;P.value=!0,await No(),(Q=(D=H.value)==null?void 0:D.querySelector("input"))==null||Q.focus()}function ce(D){var Q;D.relatedTarget instanceof Node&&!((Q=H.value)!=null&&Q.contains(D.relatedTarget))&&te()}function oe(D){var Q;D.target instanceof Node&&!((Q=H.value)!=null&&Q.contains(D.target))&&te()}return ct(()=>document.addEventListener("click",oe)),qa(()=>document.removeEventListener("click",oe)),(D,Q)=>(r(),d("section",Md,[e("div",Fd,[e("h4",Ld,n(a(L)("admin.backup.archive.title")),1),e("label",Hd,[e("input",{"data-testid":"archive-enabled",type:"checkbox",checked:M.modelValue.enabled,onChange:Q[0]||(Q[0]=z=>A({enabled:z.target.checked}))},null,40,Id),I(" "+n(a(L)("admin.backup.archive.enabled")),1)])]),M.modelValue.enabled?(r(),d("div",Rd,[e("div",Bd,[e("div",null,[e("label",jd,n(a(L)("admin.backup.archive.dates")),1),e("div",{ref_key:"datePicker",ref:H,class:"relative",onKeydown:Q[4]||(Q[4]=dt(Me(z=>te(!0),["stop","prevent"]),["esc"])),onFocusout:ce},[e("button",{id:"backup-archive-dates",ref_key:"dateTrigger",ref:x,type:"button",class:"input flex w-full items-center justify-between gap-2 text-left","aria-expanded":P.value,"aria-controls":"backup-archive-options","aria-describedby":"backup-archive-dates-hint",onClick:Q[1]||(Q[1]=z=>P.value=!P.value),onKeydown:dt(Me(le,["prevent"]),["down"])},[e("span",Od,[S.value.length?h("",!0):(r(),d("span",zd,n(a(L)("admin.backup.archive.
2selectDates")),1)),(r(!0),d(R,null,N(S.value.slice(0,3),z=>(r(),d("span",{key:z,class:"rounded bg-primary-50 px-1.5 py-0.5 text-xs text-primary-700 dark:bg-primary-900/30 dark:text-primary-300"},n(z),1))),128)),S.value.length>3?(r(),d("span",qd,"+"+n(S.value.length-3),1)):h("",!0)]),g(de,{name:"chevronDown",size:"sm",class:"shrink-0"})],40,Dd),P.value?(r(),d("div",Nd,[e("div",Kd,[e("span",null,n(a(L)("admin.backup.archive.selectedDates",{count:S.value.length})),1),e("button",{type:"button",class:"min-h-9 px-2 text-primary-600 dark:text-primary-400",onClick:Q[2]||(Q[2]=z=>te(!0))},n(a(L)("admin.backup.archive.done")),1)]),e("div",{class:"grid grid-cols-4 gap-1",role:"group","aria-label":a(L)("admin.backup.archive.dates")},[(r(),d(R,null,N(31,z=>e("label",{key:z,class:"flex min-h-10 cursor-pointer items-center gap-1.5 rounded px-1 text-xs hover:bg-gray-100 dark:hover:bg-dark-700"},[e("input",{type:"checkbox",value:z,checked:M.modelValue.days.includes(z),"aria-label":a(L)("admin.backup.archive.day",{day:z}),onChange:K=>ee(z)},null,40,Gd),I(" "+n(z),1)])),64)),e("label",Qd,[e("input",{type:"checkbox",value:"last",checked:M.modelValue.include_month_end,"aria-label":a(L)("admin.backup.archive.monthEnd"),onChange:Q[3]||(Q[3]=z=>A({include_month_end:z.target.checked}))},null,40,Yd),I(" "+n(a(L)("admin.backup.archive.monthEnd")),1)])],8,Wd)])):h("",!0)],544),e("p",Jd,n(a(L)("admin.backup.archive.datesHint")),1)]),e("div",null,[e("span",Xd,n(a(L)("admin.backup.archive.retention")),1),e("div",Zd,[f.value?h("",!0):(r(),d("label",ec,[e("input",{"data-testid":"archive-count",value:M.modelValue.retain_count,type:"number",min:"1",step:"1",class:"input w-full min-w-0","aria-label":a(L)("admin.backup.archive.count"),"aria-describedby":"backup-archive-retention-hint",onInput:J},null,40,tc),e("span",ac,n(a(L)("admin.backup.archive.copies")),1)])),e("label",sc,[e("input",{"data-testid":"archive-forever",type:"checkbox",checked:f.value,onChange:me},null,40,nc),I(" "+n(a(L)("admin.backup.archive.forever")),1)])]),e("p",ic,n(a(L)(f.value?"admin.backup.archive.foreverHint":"admin.backup.archive.countHint")),1)])]),e("p",oc,n(a(L)("admin.backup.archive.fallbackHint")),1),e("p",lc,n(a(L)("admin.backup.archive.independentHint")),1)])):(r(),d("p",rc,n(a(L)("admin.backup.archive.disabledHint")),1))]))}}),cc={class:"space-y-6"},uc={class:"card p-6"},_c={class:"mb-4 flex flex-wrap items-center justify-between gap-3"},mc={class:"text-base font-semibold text-gray-900 dark:text-white"},pc={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},gc={class:"grid grid-cols-1 gap-3 md:grid-cols-2"},yc={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},bc={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},xc={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},hc={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},fc={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},kc={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},vc=["placeholder"],wc={class:"inline-flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300 md:col-span-2"},Cc={class:"mt-4 flex flex-wrap gap-2"},Vc=["disabled"],Uc=["disabled"],Sc={class:"card p-6"},$c={class:"mb-4 flex flex-wrap items-center justify-between gap-3"},Pc={class:"text-base font-semibold text-gray-900 dark:text-white"},Ec={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Tc={class:"inline-flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300"},Ac={class:"inline-flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300"},Mc={class:"mt-3 grid grid-cols-1 gap-3 md:grid-cols-2"},Fc={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Lc=["placeholder"],Hc={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Ic={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Rc={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Bc={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},jc={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Dc=["placeholder"],Oc={class:"inline-flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300 md:col-span-2"},zc={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},qc=["placeholder"],Nc={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Kc={class:"mt-4 flex flex-wrap gap-2"},Wc=["disabled"],Gc=["disabled"],Qc={class:"card p-6","data-testid":"backup-schedule"},Yc={class:"mb-4"},Jc={class:"text-base font-semibold text-gray-900 dark:text-white"},Xc={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Zc={class:"grid grid-cols-1 gap-3 md:grid-cols-2"},eu={class:"inline-flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300 md:col-span-2"},tu={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},au={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},su={class:"mt-2 text-sm font-medium text-gray-900 dark:text-white md:col-span-2"},nu={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},iu={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},ou={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},lu={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},ru={class:"mt-2 text-xs text-gray-500 dark:text-gray-400"},du={key:0,class:"mt-3 text-sm text-red-600 dark:text-red-400",role:"alert"}
2,cu={class:"mt-4 rounded-lg bg-gray-50 p-3 text-sm text-gray-700 dark:bg-dark-800 dark:text-gray-300","aria-live":"polite"},uu={class:"font-medium"},_u={class:"mt-4"},mu=["disabled"],pu={class:"card p-6"},gu={class:"mb-4 flex flex-wrap items-center justify-between gap-3"},yu={class:"text-base font-semibold text-gray-900 dark:text-white"},bu={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},xu={class:"flex flex-wrap items-center gap-2"},hu={class:"flex items-center gap-1"},fu={class:"text-xs text-gray-600 dark:text-gray-400"},ku=["disabled"],vu=["disabled"],wu={class:"overflow-x-auto"},Cu={class:"w-full min-w-[800px] text-sm"},Vu={class:"border-b border-gray-200 text-left text-xs uppercase tracking-wide text-gray-500 dark:border-dark-700 dark:text-gray-400"},Uu={class:"py-2 pr-4"},Su={class:"py-2 pr-4"},$u={class:"py-2 pr-4"},Pu={class:"py-2 pr-4"},Eu={class:"py-2 pr-4"},Tu={class:"py-2 pr-4"},Au={class:"py-2 pr-4"},Mu={class:"py-2"},Fu={class:"py-3 pr-4 font-mono text-xs"},Lu={class:"py-3 pr-4"},Hu={class:"py-3 pr-4 text-xs"},Iu={key:0,class:"ml-1 inline-block rounded bg-primary-50 px-1.5 py-0.5 text-primary-700 dark:bg-primary-900/30 dark:text-primary-300"},Ru={key:1,class:"mt-1 text-gray-500 dark:text-gray-400"},Bu={class:"py-3 pr-4 text-xs"},ju={class:"py-3 pr-4 text-xs"},Du={class:"py-3 pr-4 text-xs"},Ou={class:"py-3 pr-4 text-xs"},zu={class:"py-3 pr-4 text-xs"},qu={class:"py-3 text-xs"},Nu={class:"flex flex-wrap gap-1"},Ku=["onClick"],Wu=["disabled","onClick"],Gu=["onClick"],Qu={key:0},Yu={colspan:"9",class:"py-6 text-center text-sm text-gray-500 dark:text-gray-400"},Ju={class:"relative max-h-[85vh] w-full max-w-2xl overflow-y-auto rounded-xl bg-white p-6 shadow-2xl dark:bg-dark-800"},Xu={class:"mb-4 text-lg font-bold text-gray-900 dark:text-white"},Zu={class:"mb-4 text-sm text-gray-500 dark:text-gray-400"},e_={class:"mb-5"},t_={class:"mb-2 flex items-center gap-2 text-sm font-semibold text-gray-900 dark:text-white"},a_={class:"ml-8 list-decimal space-y-1 text-sm text-gray-600 dark:text-gray-300"},s_={class:"mb-5"},n_={class:"mb-2 flex items-center gap-2 text-sm font-semibold text-gray-900 dark:text-white"},i_={class:"ml-8 list-decimal space-y-1 text-sm text-gray-600 dark:text-gray-300"},o_={class:"mt-2 rounded-lg bg-amber-50 p-3 text-xs text-amber-700 dark:bg-amber-900/20 dark:text-amber-300"},l_={class:"mb-5"},r_={class:"mb-2 flex items-center gap-2 text-sm font-semibold text-gray-900 dark:text-white"},d_={class:"ml-8 text-sm text-gray-600 dark:text-gray-300"},c_={class:"ml-8 mt-1 block rounded bg-gray-100 px-3 py-2 text-xs text-gray-800 dark:bg-dark-700 dark:text-gray-200"},u_={class:"mb-5"},__={class:"mb-2 flex items-center gap-2 text-sm font-semibold text-gray-900 dark:text-white"},m_={class:"ml-8 overflow-hidden rounded-lg border border-gray-200 dark:border-dark-600"},p_={class:"w-full text-sm"},g_={class:"whitespace-nowrap bg-gray-50 px-3 py-2 font-medium text-gray-700 dark:bg-dark-700 dark:text-gray-300"},y_={class:"px-3 py-2 text-gray-600 dark:text-gray-400"},b_={class:"text-xs"},x_={class:"rounded-lg bg-green-50 p-3 text-xs text-green-700 dark:bg-green-900/20 dark:text-green-300"},h_={class:"mt-4 text-right"},f_={class:"relative max-h-[85vh] w-full max-w-lg overflow-y-auto rounded-xl bg-white p-6 shadow-2xl dark:bg-dark-800"},k_=["aria-label"],v_={class:"mb-1 text-lg font-bold text-gray-900 dark:text-white"},w_={class:"mb-4 text-sm text-gray-500 dark:text-gray-400"},C_={class:"space-y-2"},V_={class:"text-sm text-gray-700 dark:text-gray-300"},U_={class:"ml-2 text-xs text-gray-500 dark:text-gray-400"},S_=["href"],$_={class:"mt-4 text-right"},tn=900,P_=qe({__name:"BackupView",setup(M){const{t}=Ge(),E=Vt(),k=un();function L($){return _n($)?(E.showError(mn($)==="STEP_UP_ADMIN_API_KEY_FORBIDDEN"?t("stepUp.adminApiKeyForbidden"):t("stepUp.notEnabled")),!0):!1}const P=U({endpoint:"",region:"auto",bucket:"",access_key_id:"",secret_access_key:"",prefix:"backups/",force_path_style:!1}),H=U(!1),x=U(!1),w=U(!1),f=U({enabled:!1,reuse_backup_s3:!0,bucket:"",prefix:"images/",public_base_url:"",presign_expiry_hours:24,max_download_bytes:33554432,endpoint:"",region:"auto",access_key_id:"",secret_access_key:"",force_path_style:!1}),S=U(!1),A=U(!1),ee=U(!1),J=U({enabled:!1,cron_expr:"0 2 * * *",retain_days:14,retain_count:10}),me=U(!1),te=U({enabled:!1,days:[1],include_month_end:!1,retain_count:0}),le=U(oe(te.value)),ce=B(()=>te.value.enabled?oe(te.value):{...oe(le.value),enabled:!1});function oe($){return{...$,days:[...$.days]}}const D=B(()=>{const $=[J.value.retain_days,J.value.retain_count];return te.value.enabled&&$.push(te.value.retain_count),$.every(C=>Number.isSafeInteger(C)&&C>=0)?te.value.enabled&&!te.value.days.length&&!te.value.include_month_end?t("admin.backup.archive.
2selectDates"):"":t("admin.backup.archive.invalidRetention")}),Q=B(()=>{if(D.value)return D.value;const{retain_days:$,retain_count:C}=J.value,v=$>0&&C>0?t("admin.backup.schedule.previewBoth",{days:$,count:C}):$>0?t("admin.backup.schedule.previewDays",{days:$}):C>0?t("admin.backup.schedule.previewCount",{count:C}):t("admin.backup.schedule.previewUnlimited");if(!te.value.enabled)return v;const re=[...[...te.value.days].sort((_e,Ut)=>_e-Ut).map(_e=>t("admin.backup.archive.day",{day:_e})),...te.value.include_month_end?[t("admin.backup.archive.monthEnd")]:[]].join(", "),xe=te.value.retain_count===0?t("admin.backup.archive.forever"):t("admin.backup.archive.retainLatest",{count:te.value.retain_count});return`${v} ${t("admin.backup.archive.preview",{dates:re,retention:xe})}`}),z=U([]),K=U(!1),Z=U(!1),Y=U(""),ge=U(14),j=U([]),se=U(!1),ne=U(null),Fe=U(null);function ve($){const C=z.value.findIndex(v=>v.id===$.id);C>=0&&(z.value[C]=$)}function he($){Le();let C=0;ne.value=setInterval(async()=>{if(C++>=tn){Le(),Z.value=!1,E.showWarning(t("admin.backup.operations.backupRunning"));return}try{const v=await O.backup.getBackup($);ve(v),(v.status==="completed"||v.status==="failed")&&(Le(),Z.value=!1,v.status==="completed"?E.showSuccess(t("admin.backup.operations.backupCreated")):E.showError(v.error_message||t("admin.backup.operations.backupFailed")),await je())}catch{}},2e3)}function Le(){ne.value&&(clearInterval(ne.value),ne.value=null)}function Pe($){He();let C=0;Fe.value=setInterval(async()=>{if(C++>=tn){He(),Y.value="",E.showWarning(t("admin.backup.operations.restoreRunning"));return}try{const v=await O.backup.getBackup($);ve(v),(v.restore_status==="completed"||v.restore_status==="failed")&&(He(),Y.value="",v.restore_status==="completed"?E.showSuccess(t("admin.backup.actions.restoreSuccess")):E.showError(v.restore_error||t("admin.backup.operations.restoreFailed")),await je())}catch{}},2e3)}function He(){Fe.value&&(clearInterval(Fe.value),Fe.value=null)}function Ne(){document.hidden?(Le(),He()):je().then(()=>{const $=z.value.find(v=>v.status==="running");$&&(Z.value=!0,he($.id));const C=z.value.find(v=>v.restore_status==="running");C&&(Y.value=C.id,Pe(C.id))})}const Re=U(!1),Ze=B(()=>[{field:t("admin.backup.s3.endpoint"),value:"https://<account_id>.r2.cloudflarestorage.com"},{field:t("admin.backup.s3.region"),value:"auto"},{field:t("admin.backup.s3.bucket"),value:t("admin.backup.r2Guide.step4.bucketValue")},{field:t("admin.backup.s3.prefix"),value:"backups/"},{field:"Access Key ID",value:t("admin.backup.r2Guide.step4.fromStep2")},{field:"Secret Access Key",value:t("admin.backup.r2Guide.step4.fromStep2")},{field:t("admin.backup.s3.forcePathStyle"),value:t("admin.backup.r2Guide.step4.unchecked")}]);async function et(){try{const $=await O.backup.getS3Config();P.value={endpoint:$.endpoint||"",region:$.region||"auto",bucket:$.bucket||"",access_key_id:$.access_key_id||"",secret_access_key:"",prefix:$.prefix||"backups/",force_path_style:$.force_path_style},H.value=!!$.access_key_id}catch($){E.showError(($==null?void 0:$.message)||t("errors.networkError"))}}async function Ee(){x.value=!0;try{await k.run(()=>O.backup.updateS3Config(P.value)),E.showSuccess(t("admin.backup.s3.saved")),await et()}catch($){if(vt($)){x.value=!1;return}E.showError(($==null?void 0:$.message)||t("errors.networkError"))}finally{x.value=!1}}async function Be(){try{const{config:$,secret_configured:C}=await O.backup.getImageStorageConfig();f.value={...$,prefix:$.prefix||"images/",region:$.region||"auto",secret_access_key:""},S.value=C}catch($){E.showError(($==null?void 0:$.message)||t("errors.networkError"))}}async function tt(){A.value=!0;try{await k.run(()=>O.backup.updateImageStorageConfig(f.value)),E.showSuccess(t("admin.backup.imageStorage.saved")),await Be()}catch($){if(vt($)){A.value=!1;return}E.showError(($==null?void 0:$.message)||t("errors.networkError"))}finally{A.value=!1}}async function Te(){ee.value=!0;try{const $=await O.backup.testImageStorageConnection(f.value);$.ok?E.showSuccess($.message||t("admin.backup.s3.testSuccess")):E.showError($.message||t("admin.backup.s3.testFailed"))}catch($){E.showError(($==null?void 0:$.message)||t("errors.networkError"))}finally{ee.value=!1}}async function ot(){w.value=!0;try{const $=await O.backup.testS3Connection(P.value);$.ok?E.showSuccess($.message||t("admin.backup.s3.testSuccess")):E.showError($.message||t("admin.backup.s3.testFailed"))}catch($){E.showError(($==null?void 0:$.message)||t("errors.networkError"))}finally{w.value=!1}}async function Ke(){var $,C,v,re;try{const xe=await O.backup.getSchedule();J.value={enabled:xe.enabled,cron_expr:xe.cron_expr||"0 2 * * *",retain_days:xe.retain_days??14,retain_count:xe.retain_count??10},te.value={enabled:(($=xe.monthly_archive)==null?void 0:$.enabled)??!1,days:((C=xe.monthly_archive)==null?void 0:C.days)??[1],include_month_end:((v=xe.monthly_archive)==null?void 0:v.include_month_end
2)??!1,retain_count:((re=xe.monthly_archive)==null?void 0:re.retain_count)??0},le.value=oe(te.value)}catch(xe){E.showError((xe==null?void 0:xe.message)||t("errors.networkError"))}}async function we(){if(!D.value){me.value=!0;try{const $=ce.value;await O.backup.updateSchedule({...J.value,monthly_archive:$}),le.value=oe($),E.showSuccess(t("admin.backup.schedule.saved"))}catch($){E.showError(($==null?void 0:$.message)||t("errors.networkError"))}finally{me.value=!1}}}async function je(){K.value=!0;try{const $=await O.backup.listBackups();z.value=$.items||[]}catch($){E.showError(($==null?void 0:$.message)||t("errors.networkError"))}finally{K.value=!1}}async function at(){var $;Z.value=!0;try{const C=await k.run(()=>O.backup.createBackup({expire_days:ge.value}));z.value.unshift(C),he(C.id)}catch(C){if(vt(C)){Z.value=!1;return}if(L(C)){Z.value=!1;return}(($=C==null?void 0:C.response)==null?void 0:$.status)===409?E.showWarning(t("admin.backup.operations.alreadyInProgress")):E.showError((C==null?void 0:C.message)||t("errors.networkError")),Z.value=!1}}async function b($){try{const C=await k.run(()=>O.backup.getDownloadURL($));if(C.parts&&C.parts.length>0){j.value=C.parts,se.value=!0;return}if(!C.url)throw new Error(t("admin.backup.actions.downloadFailed"));const v=document.createElement("a");v.href=C.url,v.rel="noopener",v.click()}catch(C){if(vt(C)||L(C))return;E.showError((C==null?void 0:C.message)||t("errors.networkError"))}}function y(){se.value=!1,j.value=[]}async function V($){var v;if(!window.confirm(t("admin.backup.actions.restoreConfirm")))return;const C=window.prompt(t("admin.backup.actions.restorePasswordPrompt"));if(C){Y.value=$;try{const re=await k.run(()=>O.backup.restoreBackup($,C));ve(re),Pe($)}catch(re){if(Y.value="",vt(re)||L(re))return;(re==null?void 0:re.status)===409||((v=re==null?void 0:re.response)==null?void 0:v.status)===409?E.showWarning(t("admin.backup.operations.restoreRunning")):E.showError((re==null?void 0:re.message)||t("errors.networkError"))}}}async function F($){var v;const C=!!((v=z.value.find(re=>re.id===$))!=null&&v.monthly_archive);if(window.confirm(t(C?"admin.backup.archive.deleteConfirm":"admin.backup.actions.deleteConfirm")))try{await O.backup.deleteBackup($,C),E.showSuccess(t("admin.backup.actions.deleted")),await je()}catch(re){E.showError((re==null?void 0:re.message)||t("errors.networkError"))}}function ie($){switch($){case"completed":return"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-300";case"running":return"bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-300";case"failed":return"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-300";default:return"bg-gray-100 text-gray-700 dark:bg-dark-800 dark:text-gray-300"}}function Ve($){return!$||$<=0?"-":$<1024?`${$} B`:$<1024*1024?`${($/1024).toFixed(1)} KB`:`${($/(1024*1024)).toFixed(1)} MB`}function fe($){if(!$)return"-";const C=new Date($);return Number.isNaN(C.getTime())?$:C.toLocaleString()}return ct(async()=>{document.addEventListener("visibilitychange",Ne),await Promise.all([et(),Be(),Ke(),je()]);const $=z.value.find(v=>v.status==="running");$&&(Z.value=!0,he($.id));const C=z.value.find(v=>v.restore_status==="running");C&&(Y.value=C.id,Pe(C.id))}),qa(()=>{Le(),He(),document.removeEventListener("visibilitychange",Ne)}),($,C)=>(r(),d(R,null,[e("div",cc,[e("div",uc,[e("div",_c,[e("div",null,[e("h3",mc,n(a(t)("admin.backup.s3.title")),1),e("p",pc,[I(n(a(t)("admin.backup.s3.descriptionPrefix"))+" ",1),e("button",{type:"button",class:"text-primary-600 underline hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300",onClick:C[0]||(C[0]=v=>Re.value=!0)},"Cloudflare R2"),I(" "+n(a(t)("admin.backup.s3.descriptionSuffix")),1)])])]),e("div",gc,[e("div",null,[e("label",yc,n(a(t)("admin.backup.s3.endpoint")),1),c(e("input",{"onUpdate:modelValue":C[1]||(C[1]=v=>P.value.endpoint=v),class:"input w-full",placeholder:"https://<account_id>.r2.cloudflarestorage.com"},null,512),[[u,P.value.endpoint]])]),e("div",null,[e("label",bc,n(a(t)("admin.backup.s3.region")),1),c(e("input",{"onUpdate:modelValue":C[2]||(C[2]=v=>P.value.region=v),class:"input w-full",placeholder:"auto"},null,512),[[u,P.value.region]])]),e("div",null,[e("label",xc,n(a(t)("admin.backup.s3.bucket")),1),c(e("input",{"onUpdate:modelValue":C[3]||(C[3]=v=>P.value.bucket=v),class:"input w-full"},null,512),[[u,P.value.bucket]])]),e("div",null,[e("label",hc,n(a(t)("admin.backup.s3.prefix")),1),c(e("input",{"onUpdate:modelValue":C[4]||(C[4]=v=>P.value.prefix=v),class:"input w-full",placeholder:"backups/"},null,512),[[u,P.value.prefix]])]),e("div",null,[e("label",fc,n(a(t)("admin.backup.s3.accessKeyId")),1),c(e("input",{"onUpdate:modelValue":C[5]||(C[5]=v=>P.value.access_key_id=v),class:"input w-full"},null,512),[[u,P.value.access_key_id]])]),e("div",null,[e("label",kc,n(a(t)("admin.backup.s3.secretAccessKey")),1),c(e("input",{"onUpdate:modelValue":C[6]||(C[6]=v=>P.value.secret_access_key=v),type:"password",class:"input w-full",placeholder:H.value?a(t)("admin.backup.s3.secretConfigured"):""},null,8,vc),[[u,P.value.secret_access_key]])]),e("label",wc,[c(e("input",{"onUpdate:modelValue":C[7]||(C[7]=v=>P.value.force_path_style=v),type:"checkbox"},null,512),[[ze,P.value.force_path_style]]),e("span",null,n(a(t)("admin.backup.s3.forcePathStyle")),1)])]),e("div",Cc,[e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:w.value,onClick:ot},n(w.value?a(t)("common.loading"):a(t)("admin.backup.s3.testConnection")),9,Vc),e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:x.value,onClick:Ee},n(x.value?a(t)("common.loading"):a(t)("common.save")),9,Uc)])]),e("div",Sc,[e("div",$c,[e("div",null,[e("h3",Pc,n(a(t)("admin.backup.imageStorage.title")),1),e("p",Ec,n(a(t)("admin.backup.imageStorage.description")),1)]),e("label",Tc,[c(e("input",{"onUpdate:modelValue":C[8]||(C[8]=v=>f.value.enabled=v),type:"checkbox"},null,512),[[ze,f.value.enabled]]),e("span",null,n(a(t)("admin.backup.imageStorage.enabled")),1)])]),e("label",Ac,[c(e("input",{"onUpdate:modelValue":C[9]||(C[9]=v=>f.value.reuse_backup_s3=v),type:"checkbox"},null,512),[[ze,f.value.reuse_backup_s3]]),e("span",null,n(a(t)("admin.backup.imageStorage.reuseBackupS3")),1)]),e("div",Mc,[e("div",null,[e("label",Fc,n(a(t)("admin.backup.imageStorage.bucket")),1),c(e("input",{"onUpdate:modelValue":C[10]||(C[10]=v=>f.value.bucket=v),class:"input w-full",placeholder:f.value.reuse_backup_s3?a(t)("admin.backup.imageStorage.bucketInherited"):""},null,8,Lc),[[u,f.value.bucket]])]),e("div",null,[e("label",Hc,n(a(t)("admin.backup.imageStorage.prefix")),1),c(e("input",{"onUpdate:modelValue":C[11]||(C[11]=v=>f.value.prefix=v),class:"input w-full",placeholder:"images/"},null,512),[[u,f.value.prefix]])]),f.value.reuse_backup_s3?h("",!0):(r(),d(R,{key:0},[e("div",null,[e("label",Ic,n(a(t)("admin.backup.s3.endpoint")),1),c(e("input",{"onUpdate:modelValue":C[12]||(C[12]=v=>f.value.endpoint=v),class:"input w-full",placeholder:"https://<account_id>.r2.cloudflarestorage.com"},null,512),[[u,f.value.endpoint]])]),e("div",null,[e("label",Rc,n(a(t)("admin.backup.s3.region")),1),c(e("input",{"onUpdate:modelValue":C[13]||(C[13]=v=>f.value.region=v),class:"input w-full",placeholder:"auto"},null,512),[[u,f.value.region]])]),e("div",null,[e("label",Bc,n(a(t)("admin.backup.s3.accessKeyId")),1),c(e("input",{"onUpdate:modelValue":C[14]||(C[14]=v=>f.value.access_key_id=v),class:"input w-full"},null,512),[[u,f.value.access_key_id]])]),e("div",null,[e("label",jc,n(a(t)("admin.backup.s3.secretAccessKey")),1),c(e("input",{"onUpdate:modelValue":C[15]||(C[15]=v=>f.value.secret_access_key=v),type:"password",class:"input w-full",placeholder:S.value?a(t)("admin.backup.s3.secretConfigured"):""},null,8,Dc),[[u,f.value.secret_access_key]])]),e("label",Oc,[c(e("input",{"onUpdate:modelValue":C[16]||(C[16]=v=>f.value.force_path_style=v),type:"checkbox"},null,512),[[ze,f.value.force_path_style]]),e("span",null,n(a(t)("admin.backup.s3.forcePathStyle")),1)])],64)),e("div",null,[e("label",zc,n(a(t)("admin.backup.imageStorage.publicBaseUrl")),1),c(e("input",{"onUpdate:modelValue":C[17]||(C[17]=v=>f.value.public_base_url=v),class:"input w-full",placeholder:a(t)("admin.backup.imageStorage.publicBaseUrlPlaceholder")},null,8,qc),[[u,f.value.public_base_url]])]),e("div",null,[e("label",Nc,n(a(t)("admin.backup.imageStorage.presignExpiryHours")),1),c(e("input",{"onUpdate:modelValue":C[18]||(C[18]=v=>f.value.presign_expiry_hours=v),type:"number",min:"1",class:"input w-full"},null,512),[[u,f.value.presign_expiry_hours,void 0,{number:!0}]])])]),e("div",Kc,[e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:ee.value,onClick:Te},n(ee.value?a(t)("common.loading"):a(t)("admin.backup.s3.testConnection")),9,Wc),e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:A.value,onClick:tt},n(A.value?a(t)("common.loading"):a(t)("common.save")),9,Gc)])]),e("div",Qc,[e("div",Yc,[e("h3",Jc,n(a(t)("admin.backup.schedule.title")),1),e("p",Xc,n(a(t)("admin.backup.schedule.description")),1)]),e("div",Zc,[e("label",eu,[c(e("input",{"onUpdate:modelValue":C[19]||(C[19]=v=>J.value.enabled=v),type:"checkbox"},null,512),[[ze,J.value.enabled]]),e("span",null,n(a(t)("admin.backup.schedule.enabled")),1)]),e("div",null,[e("label",tu,n(a(t)("admin.backup.schedule.cronExpr")),1),c(e("input",{"onUpdate:modelValue":C[20]||(C[20]=v=>J.value.cron_expr=v),class:"input w-full",placeholder:"0 2 * * *"},null,512),[[u,J.value.cron_expr]]),e("p",au,n(a(t)("admin.backup.schedule.cronHint")),1)]),e("h4",su,n(a(t)("admin.backup.schedule.ordinaryRetention")),1),e("div",null,[e("label",nu,n(a(t)("admin.backup.schedule.retainDays")),1),c(e("input",{"onUpdate:modelValue":C[21]||(C[21]=v=>J.value.retain_days=v),"data-testid":"backup-retain-days",type:"number",min:"0",step:"1",class:"input w-full"},null,512),[[u,J.value.retain_days,void 0,{number:!0}]]),e("p",iu,n(a(t)("admin.backup.schedule.retainDaysHint")),1)]),e("div",null,[e("label",ou,n(a(t)("admin.backup.schedule.retainCount")),1),c(e("input",{"onUpdate:modelValue":C[22]||(C[22]=v=>J.value.retain_count=v),"data-testid":"backup-retain-count",type:"number",min:"0",step:"1",class:"input w-full"},null,512),[[u,J.value.retain_count,void 0,{number:!0}]]),e("p",lu,n(a(t)("admin.backup.schedule.retainCountHint")),1)])]),e("p",ru,n(a(t)("admin.backup.schedule.ordinaryHint")),1),g(dc,{modelValue:te.value,"onUpdate:modelValue":C[23]||(C[23]=v=>te.value=v)},null,8,["modelValue"]),D.value?(r(),d("p",du,n(D.value),1)):h("",!0),e("div",cu,[e("p",uu,n(a(t)("admin.backup.schedule.preview")),1),e("p",null,n(Q.value),1)]),e("div",_u,[e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:me.value||!!D.value,onClick:we}
2,n(me.value?a(t)("common.loading"):a(t)("common.save")),9,mu)])]),e("div",pu,[e("div",gu,[e("div",null,[e("h3",yu,n(a(t)("admin.backup.operations.title")),1),e("p",bu,n(a(t)("admin.backup.operations.description")),1)]),e("div",xu,[e("div",hu,[e("label",fu,n(a(t)("admin.backup.operations.expireDays")),1),c(e("input",{"onUpdate:modelValue":C[24]||(C[24]=v=>ge.value=v),type:"number",min:"0",class:"input w-20 text-xs"},null,512),[[u,ge.value,void 0,{number:!0}]])]),e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:Z.value,onClick:at},n(Z.value?a(t)("admin.backup.operations.backing"):a(t)("admin.backup.operations.createBackup")),9,ku),e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:K.value,onClick:je},n(K.value?a(t)("common.loading"):a(t)("common.refresh")),9,vu)])]),e("div",wu,[e("table",Cu,[e("thead",null,[e("tr",Vu,[C[29]||(C[29]=e("th",{class:"py-2 pr-4"},"ID",-1)),e("th",Uu,n(a(t)("admin.backup.columns.status")),1),e("th",Su,n(a(t)("admin.backup.columns.fileName")),1),e("th",$u,n(a(t)("admin.backup.columns.size")),1),e("th",Pu,n(a(t)("admin.backup.columns.parts")),1),e("th",Eu,n(a(t)("admin.backup.columns.expiresAt")),1),e("th",Tu,n(a(t)("admin.backup.columns.triggeredBy")),1),e("th",Au,n(a(t)("admin.backup.columns.startedAt")),1),e("th",Mu,n(a(t)("admin.backup.columns.actions")),1)])]),e("tbody",null,[(r(!0),d(R,null,N(z.value,v=>{var re;return r(),d("tr",{key:v.id,class:"border-b border-gray-100 align-top dark:border-dark-800"},[e("td",Fu,n(v.id),1),e("td",Lu,[e("span",{class:X(["rounded px-2 py-0.5 text-xs",ie(v.status)])},n(v.status==="running"&&v.progress?a(t)(`admin.backup.progress.${v.progress}`):a(t)(`admin.backup.status.${v.status}`)),3)]),e("td",Hu,[I(n(v.file_name)+" ",1),v.monthly_archive?(r(),d("span",Iu,n(a(t)("admin.backup.archive.badge")),1)):h("",!0),v.monthly_archive?(r(),d("div",Ru,n(v.monthly_archive.dates.join(" / ")),1)):h("",!0)]),e("td",Bu,n(Ve(v.size_bytes)),1),e("td",ju,n(((re=v.parts)==null?void 0:re.length)||(v.status==="running"?"-":1)),1),e("td",Du,n(v.monthly_archive?v.monthly_archive.retain_count===0?a(t)("admin.backup.archive.forever"):a(t)("admin.backup.archive.retainLatest",{count:v.monthly_archive.retain_count}):v.expires_at?fe(v.expires_at):a(t)("admin.backup.neverExpire")),1),e("td",Ou,n(v.triggered_by==="scheduled"?a(t)("admin.backup.trigger.scheduled"):a(t)("admin.backup.trigger.manual")),1),e("td",zu,n(fe(v.started_at)),1),e("td",qu,[e("div",Nu,[v.status==="completed"?(r(),d("button",{key:0,type:"button",class:"btn btn-secondary btn-xs",onClick:xe=>b(v.id)},n(a(t)("admin.backup.actions.download")),9,Ku)):h("",!0),v.status==="completed"?(r(),d("button",{key:1,type:"button",class:"btn btn-secondary btn-xs",disabled:Y.value===v.id,onClick:xe=>V(v.id)},n(Y.value===v.id?a(t)("common.loading"):a(t)("admin.backup.actions.restore")),9,Wu)):h("",!0),v.status!=="running"?(r(),d("button",{key:2,type:"button",class:"btn btn-danger btn-xs",onClick:xe=>F(v.id)},n(a(t)("common.delete")),9,Gu)):h("",!0)])])])}),128)),z.value.length===0?(r(),d("tr",Qu,[e("td",Yu,n(a(t)("admin.backup.empty")),1)])):h("",!0)])])])])]),(r(),Xe(qs,{to:"body"},[g(Ns,{name:"modal"},{default:$e(()=>[Re.value?(r(),d("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center p-4",onMousedown:C[28]||(C[28]=Me(v=>Re.value=!1,["self"]))},[e("div",{class:"fixed inset-0 bg-black/50",onClick:C[25]||(C[25]=v=>Re.value=!1)}),e("div",Ju,[e("button",{type:"button",class:"absolute right-4 top-4 text-gray-400 hover:text-gray-600 dark:hover:text-gray-200",onClick:C[26]||(C[26]=v=>Re.value=!1)},[...C[30]||(C[30]=[e("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])]),e("h2",Xu,n(a(t)("admin.backup.r2Guide.title")),1),e("p",Zu,n(a(t)("admin.backup.r2Guide.intro")),1),e("div",e_,[e("h3",t_,[C[31]||(C[31]=e("span",{class:"flex h-6 w-6 items-center justify-center rounded-full bg-primary-100 text-xs font-bold text-primary-700 dark:bg-primary-900/40 dark:text-primary-300"},"1",-1)),I(" "+n(a(t)("admin.backup.r2Guide.step1.title")),1)]),e("ol",a_,[e("li",null,n(a(t)("admin.backup.r2Guide.step1.line1")),1),e("li",null,n(a(t)("admin.backup.r2Guide.step1.line2")),1),e("li",null,n(a(t)("admin.backup.r2Guide.step1.line3")),1)])]),e("div",s_,[e("h3",n_,[C[32]||(C[32]=e("span",{class:"flex h-6 w-6 items-center justify-center rounded-full bg-primary-100 text-xs font-bold text-primary-700 dark:bg-primary-900/40 dark:text-primary-300"},"2",-1)),I(" "+n(a(t)("admin.backup.r2Guide.step2.title")),1)]),e("ol",i_,[e("li",null,n(a(t)("admin.backup.r2Guide.step2.line1")),1),e("li",null,n(a(t)("admin.backup.r2Guide.step2.line2")),1),e("li",null,n(a(t)("admin.backup.r2Guide.step2.line3")),1),e("li",null,n(a(t)("admin.backup.r2Guide.step2.line4")),1)]),e("div",o_,n(a(t)("admin.backup.r2Guide.step2.warning")),1)]),e("div",l_,[e("h3",r_,[C[33]||(C[33]=e("span",{class:"flex h-6 w-6 items-center justify-center rounded-full bg-primary-100 text-xs font-bold text-primary-700 dark:bg-primary-900/40 dark:text-primary-300"},"3",-1)),I(" "+n(a(t)("admin.backup.r2Guide.step3.title")),1)]),e("p",d_,n(a(t)("admin.backup.r2Guide.step3.desc")),1
2),e("code",c_,"https://<"+n(a(t)("admin.backup.r2Guide.step3.accountId"))+">.r2.cloudflarestorage.com",1)]),e("div",u_,[e("h3",__,[C[34]||(C[34]=e("span",{class:"flex h-6 w-6 items-center justify-center rounded-full bg-primary-100 text-xs font-bold text-primary-700 dark:bg-primary-900/40 dark:text-primary-300"},"4",-1)),I(" "+n(a(t)("admin.backup.r2Guide.step4.title")),1)]),e("div",m_,[e("table",p_,[e("tbody",null,[(r(!0),d(R,null,N(Ze.value,(v,re)=>(r(),d("tr",{key:re,class:"border-b border-gray-100 dark:border-dark-700 last:border-0"},[e("td",g_,n(v.field),1),e("td",y_,[e("code",b_,n(v.value),1)])]))),128))])])])]),e("div",x_,n(a(t)("admin.backup.r2Guide.freeTier")),1),e("div",h_,[e("button",{type:"button",class:"btn btn-primary btn-sm",onClick:C[27]||(C[27]=v=>Re.value=!1)},n(a(t)("common.close")),1)])])],32)):h("",!0)]),_:1})])),(r(),Xe(qs,{to:"body"},[g(Ns,{name:"modal"},{default:$e(()=>[se.value?(r(),d("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center p-4",onMousedown:Me(y,["self"])},[e("div",{class:"fixed inset-0 bg-black/50",onClick:y}),e("div",f_,[e("button",{type:"button",class:"absolute right-4 top-4 text-gray-400 hover:text-gray-600 dark:hover:text-gray-200","aria-label":a(t)("common.close"),onClick:y},[...C[35]||(C[35]=[e("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,k_),e("h2",v_,n(a(t)("admin.backup.actions.downloadParts")),1),e("p",w_,n(a(t)("admin.backup.actions.downloadPartsHint")),1),e("div",C_,[(r(!0),d(R,null,N(j.value,v=>(r(),d("div",{key:v.index,class:"flex items-center justify-between gap-3 rounded-lg border border-gray-200 px-3 py-2 dark:border-dark-600"},[e("span",V_,[I(n(a(t)("admin.backup.actions.partLabel",{index:v.index}))+" ",1),e("span",U_,n(Ve(v.size_bytes)),1)]),e("a",{href:v.url,class:"btn btn-secondary btn-xs",rel:"noopener"},n(a(t)("admin.backup.actions.download")),9,S_)]))),128))]),e("div",$_,[e("button",{type:"button",class:"btn btn-primary btn-sm",onClick:y},n(a(t)("common.close")),1)])])],32)):h("",!0)]),_:1})])),g(cn,{controller:a(k)},null,8,["controller"])],64))}}),E_=rn(P_,[["__scopeId","data-v-1e49145c"]]),T_={class:"space-y-6"},A_={class:"text-base font-semibold text-gray-900 dark:text-gray-100"},M_={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},F_={key:0,class:"py-8 text-center text-sm text-gray-500 dark:text-gray-400"},L_={class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},H_={class:"flex items-start gap-3"},I_=["checked"],R_={class:"block text-sm font-medium text-gray-900 dark:text-gray-100"},B_={class:"block text-xs text-gray-500 dark:text-gray-400"},j_={class:"form-label"},D_=["placeholder"],O_={class:"grid grid-cols-1 gap-4 sm:grid-cols-2"},z_={class:"form-label"},q_={class:"form-label"},N_={class:"form-label"},K_={class:"form-label"},W_={class:"form-label"},G_={class:"form-label"},Q_=["placeholder"],Y_={class:"flex justify-end"},J_=["disabled"],X_={class:"border-t border-gray-200 pt-6 dark:border-dark-700"},Z_={class:"text-base font-semibold text-gray-900 dark:text-gray-100"},em={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},tm={class:"mt-3 flex justify-end"},am=["disabled"],sm={key:0,class:"mt-3 text-sm text-gray-500 dark:text-gray-400"},nm={key:1,class:"mt-3 w-full text-sm"},im={class:"border-b border-gray-200 text-left text-xs text-gray-500 dark:border-dark-700 dark:text-gray-400"},om={class:"py-2"},lm={class:"py-2"},rm={class:"py-2"},dm={class:"py-2"},cm={class:"py-2"},um={class:"text-xs"},_m={class:"py-2"},mm={class:"py-2 text-xs text-gray-500 dark:text-gray-400"},pm={class:"py-2 text-xs text-gray-500 dark:text-gray-400"},gm={class:"py-2 text-right"},ym=["onClick"],bm={class:"border-t border-gray-200 pt-6 dark:border-dark-700"},xm={class:"text-base font-semibold text-gray-900 dark:text-gray-100"},hm={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},fm={class:"mt-4 space-y-3 text-sm"},km={class:"font-medium text-gray-900 dark:text-gray-100"},vm={class:"mt-1"},wm={key:0,class:"break-all text-xs"},Cm={key:1,class:"text-xs text-gray-400"},Vm={class:"font-medium text-gray-900 dark:text-gray-100"},Um={class:"mt-1"},Sm={key:0,class:"break-all text-xs"},$m={key:1,class:"text-xs text-gray-400"},Pm={class:"font-medium text-gray-900 dark:text-gray-100"},Em={class:"mt-1 flex flex-wrap gap-1.5"},Tm={class:"font-medium text-gray-900 dark:text-gray-100"},Am={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Mm={class:"font-medium text-gray-900 dark:text-gray-100"},Fm={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Lm=qe({__name:"OidcProviderSettingsSection",setup(M){const{t}=Ge(),E=Vt(),k=U(!1),L=U(!1),P=ye({enabled:!1,issuer_url:"",access_token_ttl_seconds:3600,id_token_ttl_seconds:3600,refresh_token_ttl_seconds:2592e3,code_ttl_seconds:600,sso_cookie_max_age_seconds:2592e3,sso_cookie_domain:""}),H=pl,x=B(()=>
2{const j=P.issuer_url.trim();return!j||f.value?"":`${j}/.well-known/openid-configuration`}),w=B(()=>{const j=P.issuer_url.trim();return!j||f.value?"":`${j}/.well-known/jwks.json`}),f=B(()=>{const j=P.issuer_url.trim();return j&&(!j.startsWith("https://")||j.endsWith("/")||j.includes("?")||j.includes("#"))?t("oidc.admin.settings.issuerUrlHint"):""});async function S(){k.value=!0;try{const j=await gl();Object.assign(P,j),await oe()}catch{E.showError(t("oidc.admin.settings.loadFailed"))}finally{k.value=!1}}const A=U(!1);function ee(j){const se=j.target.checked;if(se&&!P.enabled){A.value=!0,j.target.checked=!1;return}P.enabled=se}function J(){P.enabled=!0,A.value=!1}function me(){P.enabled=!1,A.value=!1}async function te(){if(P.issuer_url.trim()&&f.value){E.showError(f.value);return}L.value=!0;try{const j=await yl({enabled:P.enabled,issuer_url:P.issuer_url.trim(),access_token_ttl_seconds:P.access_token_ttl_seconds,id_token_ttl_seconds:P.id_token_ttl_seconds,refresh_token_ttl_seconds:P.refresh_token_ttl_seconds,code_ttl_seconds:P.code_ttl_seconds,sso_cookie_max_age_seconds:P.sso_cookie_max_age_seconds,sso_cookie_domain:P.sso_cookie_domain.trim()});Object.assign(P,j),E.showSuccess(t("oidc.admin.settings.saveSuccess")),await oe()}catch(j){E.showError((j==null?void 0:j.message)??t("oidc.admin.settings.saveFailed"))}finally{L.value=!1}}const le=U([]),ce=U(!1);async function oe(){ce.value=!0;try{le.value=await bl()??[]}catch{le.value=[]}finally{ce.value=!1}}const D=U(!1);function Q(){D.value=!0}async function z(){D.value=!1;try{await xl(),E.showSuccess(t("oidc.admin.signingKeys.rotateSuccess")),await oe()}catch(j){E.showError((j==null?void 0:j.message)??t("oidc.admin.signingKeys.rotateFailed"))}}const K=U(!1),Z=U("");function Y(j){Z.value=j,K.value=!0}async function ge(){if(K.value=!1,!!Z.value)try{await hl(Z.value),await oe()}catch(j){E.showError((j==null?void 0:j.message)??t("oidc.admin.signingKeys.deleteFailed"))}finally{Z.value=""}}return ct(S),(j,se)=>(r(),d("div",T_,[e("div",null,[e("h3",A_,n(a(t)("oidc.admin.settings.title")),1),e("p",M_,n(a(t)("oidc.admin.settings.description")),1)]),k.value?(r(),d("div",F_,n(a(t)("common.loading")),1)):(r(),d(R,{key:1},[e("div",L_,[e("label",H_,[e("input",{type:"checkbox",class:"mt-1 h-4 w-4",checked:P.enabled,onChange:ee},null,40,I_),e("span",null,[e("span",R_,n(a(t)("oidc.admin.settings.enabled")),1),e("span",B_,n(a(t)("oidc.admin.settings.enabledHint")),1)])])]),e("div",null,[e("label",j_,n(a(t)("oidc.admin.settings.issuerUrl")),1),c(e("input",{"onUpdate:modelValue":se[0]||(se[0]=ne=>P.issuer_url=ne),type:"text",class:"input",placeholder:a(t)("oidc.admin.settings.issuerUrlPlaceholder")},null,8,D_),[[u,P.issuer_url]]),e("p",{class:X(["mt-1 text-xs",f.value?"text-red-600 dark:text-red-400":"text-gray-500 dark:text-gray-400"])},n(f.value||a(t)("oidc.admin.settings.issuerUrlHint")),3)]),e("div",O_,[e("div",null,[e("label",z_,n(a(t)("oidc.admin.settings.accessTokenTtl")),1),c(e("input",{"onUpdate:modelValue":se[1]||(se[1]=ne=>P.access_token_ttl_seconds=ne),type:"number",min:"1",class:"input"},null,512),[[u,P.access_token_ttl_seconds,void 0,{number:!0}]])]),e("div",null,[e("label",q_,n(a(t)("oidc.admin.settings.idTokenTtl")),1),c(e("input",{"onUpdate:modelValue":se[2]||(se[2]=ne=>P.id_token_ttl_seconds=ne),type:"number",min:"1",class:"input"},null,512),[[u,P.id_token_ttl_seconds,void 0,{number:!0}]])]),e("div",null,[e("label",N_,n(a(t)("oidc.admin.settings.refreshTokenTtl")),1),c(e("input",{"onUpdate:modelValue":se[3]||(se[3]=ne=>P.refresh_token_ttl_seconds=ne),type:"number",min:"1",class:"input"},null,512),[[u,P.refresh_token_ttl_seconds,void 0,{number:!0}]])]),e("div",null,[e("label",K_,n(a(t)("oidc.admin.settings.codeTtl")),1),c(e("input",{"onUpdate:modelValue":se[4]||(se[4]=ne=>P.code_ttl_seconds=ne),type:"number",min:"1",class:"input"},null,512),[[u,P.code_ttl_seconds,void 0,{number:!0}]])]),e("div",null,[e("label",W_,n(a(t)("oidc.admin.settings.ssoCookieMaxAge")),1),c(e("input",{"onUpdate:modelValue":se[5]||(se[5]=ne=>P.sso_cookie_max_age_seconds=ne),type:"number",min:"1",class:"input"},null,512),[[u,P.sso_cookie_max_age_seconds,void 0,{number:!0}]])]),e("div",null,[e("label",G_,n(a(t)("oidc.admin.settings.ssoCookieDomain")),1
2),c(e("input",{"onUpdate:modelValue":se[6]||(se[6]=ne=>P.sso_cookie_domain=ne),type:"text",class:"input",placeholder:a(t)("oidc.admin.settings.ssoCookieDomainPlaceholder")},null,8,Q_),[[u,P.sso_cookie_domain]])])]),e("div",Y_,[e("button",{type:"button",class:"btn btn-primary",disabled:L.value,onClick:te},n(L.value?a(t)("common.saving"):a(t)("oidc.admin.settings.save")),9,J_)]),e("div",X_,[e("h3",Z_,n(a(t)("oidc.admin.signingKeys.title")),1),e("p",em,n(a(t)("oidc.admin.signingKeys.description")),1),e("div",tm,[e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:ce.value,onClick:Q},n(a(t)("oidc.admin.signingKeys.rotate")),9,am)]),le.value.length===0?(r(),d("p",sm,n(a(t)("oidc.admin.signingKeys.empty")),1)):(r(),d("table",nm,[e("thead",null,[e("tr",im,[e("th",om,n(a(t)("oidc.admin.signingKeys.kid")),1),e("th",lm,n(a(t)("oidc.admin.signingKeys.status")),1),e("th",rm,n(a(t)("oidc.admin.signingKeys.createdAt")),1),e("th",dm,n(a(t)("oidc.admin.signingKeys.retiredAt")),1),se[9]||(se[9]=e("th",{class:"py-2"},null,-1))])]),e("tbody",null,[(r(!0),d(R,null,N(le.value,ne=>(r(),d("tr",{key:ne.kid,class:"border-b border-gray-100 dark:border-dark-800"},[e("td",cm,[e("code",um,n(ne.kid),1)]),e("td",_m,[e("span",{class:X(["badge",ne.is_active?"badge-success":"badge-default"])},n(ne.is_active?a(t)("oidc.admin.signingKeys.active"):a(t)("oidc.admin.signingKeys.retired")),3)]),e("td",mm,n(a(Ws)(ne.created_at)),1),e("td",pm,n(ne.retired_at?a(Ws)(ne.retired_at):"—"),1),e("td",gm,[ne.removable?(r(),d("button",{key:0,type:"button",class:"btn btn-danger btn-xs",onClick:Fe=>Y(ne.kid)},n(a(t)("oidc.admin.signingKeys.delete")),9,ym)):h("",!0)])]))),128))])]))]),e("div",bm,[e("h3",xm,n(a(t)("oidc.admin.help.title")),1),e("p",hm,n(a(t)("oidc.admin.help.intro")),1),e("dl",fm,[e("div",null,[e("dt",km,n(a(t)("oidc.admin.help.discoveryLabel")),1),e("dd",vm,[x.value?(r(),d("code",wm,n(x.value),1)):(r(),d("span",Cm,n(a(t)("oidc.admin.help.discoveryNeedIssuer")),1))])]),e("div",null,[e("dt",Vm,n(a(t)("oidc.admin.help.jwksLabel")),1),e("dd",Um,[w.value?(r(),d("code",Sm,n(w.value),1)):(r(),d("span",$m,n(a(t)("oidc.admin.help.discoveryNeedIssuer")),1))])]),e("div",null,[e("dt",Pm,n(a(t)("oidc.admin.help.scopesLabel")),1),e("dd",Em,[(r(!0),d(R,null,N(a(H),ne=>(r(),d("code",{key:ne,class:"rounded bg-gray-100 px-1.5 py-0.5 text-xs dark:bg-dark-800"},n(ne),1))),128))])]),e("div",null,[e("dt",Tm,n(a(t)("oidc.admin.help.redirectLabel")),1),e("dd",Am,n(a(t)("oidc.admin.help.redirectBody")),1)]),e("div",null,[e("dt",Mm,n(a(t)("oidc.admin.help.pkceLabel")),1),e("dd",Fm,n(a(t)("oidc.admin.help.pkceBody")),1)])])])],64)),g(wt,{show:A.value,title:a(t)("oidc.admin.settings.enableConfirm.title"),message:a(t)("oidc.admin.settings.enableConfirm.body"),"confirm-text":a(t)("oidc.admin.settings.enableConfirm.confirm"),"cancel-text":a(t)("oidc.admin.settings.enableConfirm.cancel"),onConfirm:J,onCancel:me},null,8,["show","title","message","confirm-text","cancel-text"]),g(wt,{show:D.value,title:a(t)("oidc.admin.signingKeys.rotateConfirm.title"),message:a(t)("oidc.admin.signingKeys.rotateConfirm.body"),"confirm-text":a(t)("oidc.admin.signingKeys.rotateConfirm.confirm"),"cancel-text":a(t)("oidc.admin.signingKeys.rotateConfirm.cancel"),onConfirm:z,onCancel:se[7]||(se[7]=ne=>D.value=!1)},null,8,["show","title","message","confirm-text","cancel-text"]),g(wt,{show:K.value,title:a(t)("oidc.admin.signingKeys.deleteConfirm.title"),message:a(t)("oidc.admin.signingKeys.deleteConfirm.body"),"confirm-text":a(t)("oidc.admin.signingKeys.deleteConfirm.confirm"),"cancel-text":a(t)("oidc.admin.signingKeys.deleteConfirm.cancel"),danger:"",onConfirm:ge,onCancel:se[8]||(se[8]=ne=>K.value=!1)},null,8,["show","title","message","confirm-text","cancel-text"])]))}});async function Hm(){const{data:M}=await Ht.get("/admin/cos-image/config");return M}async function Im(M){const{data:t}=await Ht.put("/admin/cos-image/config",M);return t}const Rm={class:"space-y-6"},Bm={class:"text-base font-semibold text-gray-900 dark:text-gray-100"},jm={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Dm={key:0,class:"py-8 text-center text-sm text-gray-500 dark:text-gray-400"},Om={class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},zm={class:"flex items-start gap-3"},qm={class:"block text-sm font-medium text-gray-900 dark:text-gray-100"},Nm={class:"block text-xs text-gray-500 dark:text-gray-400"},Km={class:"grid grid-cols-1 gap-4 sm:grid-cols-2"},Wm={class:"form-label"},Gm={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Qm={class:"form-label"},Ym={class:"form-label"},Jm={class:"form-label"},Xm={class:"form-label"},Zm=["placeholder"],ep={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},tp={class:"form-label"},ap={class:"sm:col-span-2"},sp={class:"form-label"},np={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},ip={class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},op={class:"flex items-start gap-3"},lp={class:"block text-sm font-medium text-gray-900 dark:text-gray-100"},rp={class:"block text-xs text-gray-500 dark:text-gray-400"},dp={class:"flex justify-end"},cp=["disabled"],up=qe({__name:"CosImageSettingsSection",setup(M){const{t}=Ge(),E=Vt(),k=U(!1),L=U(!1),P=U(!1),H=ye({enabled:!1,endpoint:"",region:"",bucket:"",access_key_id:"",secret_access_key:"",prefix:"",force_path_style:!1,public_base_url:""});async function x(){k.value=!0;try{const f=await Hm();Object.assign(H,f.config),H.secret_access_key="",P.value=f.secret_access_key_set}catch(f){E.showError((f==null?void 0:f.message)??t("admin.settings.cosImage.loadFailed"))}finally{k.value=!1}}async function w(){L.value=!0;try{const f={...H};f.secret_access_key||delete f.secret_access_key;const S=await Im(f);Object.assign(H,S),H.secret_access_key="",(f.secret_access_key||P.value)&&(P.value=!0),E.showSuccess(t("admin.settings.cosImage.saveSuccess")),ol()}catch(f){E.showError((f==null?void 0:f.message)??t("admin.settings.cosImage.saveFailed"))}finally{L.value=!1}}return ct(x),(f,S)=>(r(),d("div",Rm,[e("div",null,[e("h3",Bm,n(a(t)("admin.settings.cosImage.title")),1),e("p",jm,n(a(t)("admin.settings.cosImage.description")),1)]),k.value?(r(),d("div",Dm,n(a(t)("common.loading")),1)):(r(),d(R,{key:1},[e("div",Om,[e("label",zm,[c(e("input",{"onUpdate:modelValue":S[0]||(S[0]=A=>H.enabled=A),type:"checkbox",class:"mt-1 h-4 w-4"},null,512),[[ze,H.enabled]]),e("span",null,[e("span",qm,n(a(t)("admin.settings.cosImage.enabled")),1),e("span",Nm,n(a(t)("admin.settings.cosImage.enabledHint")),1)])])]),e("div",Km,[e("div",null,[e("label",Wm,n(a(t)("admin.settings.cosImage.endpoint")),1),c(e("input",{"onUpdate:modelValue":S[1]||(S[1]=A=>H.endpoint=A),type:"text",class:"input",placeholder:"https://cos.ap-guangzhou.myqcloud.com"},null,512),[[u,H.endpoint]]),e("p",Gm,n(a(t)("admin.settings.cosImage.endpointHint")),1)]),e("div",null,[e("label",Qm,n(a(t)("admin.settings.cosImage.regi
2on")),1),c(e("input",{"onUpdate:modelValue":S[2]||(S[2]=A=>H.region=A),type:"text",class:"input",placeholder:"ap-guangzhou"},null,512),[[u,H.region]])]),e("div",null,[e("label",Ym,n(a(t)("admin.settings.cosImage.bucket")),1),c(e("input",{"onUpdate:modelValue":S[3]||(S[3]=A=>H.bucket=A),type:"text",class:"input",placeholder:"mybucket-1250000000"},null,512),[[u,H.bucket]])]),e("div",null,[e("label",Jm,n(a(t)("admin.settings.cosImage.accessKeyId")),1),c(e("input",{"onUpdate:modelValue":S[4]||(S[4]=A=>H.access_key_id=A),type:"text",class:"input",autocomplete:"off"},null,512),[[u,H.access_key_id]])]),e("div",null,[e("label",Xm,n(a(t)("admin.settings.cosImage.secretAccessKey")),1),c(e("input",{"onUpdate:modelValue":S[5]||(S[5]=A=>H.secret_access_key=A),type:"password",class:"input",autocomplete:"new-password",placeholder:P.value?a(t)("admin.settings.cosImage.secretAccessKeySetPlaceholder"):a(t)("admin.settings.cosImage.secretAccessKeyPlaceholder")},null,8,Zm),[[u,H.secret_access_key]]),e("p",ep,n(P.value?a(t)("admin.settings.cosImage.secretAccessKeyKeepHint"):a(t)("admin.settings.cosImage.secretAccessKeyHint")),1)]),e("div",null,[e("label",tp,n(a(t)("admin.settings.cosImage.prefix")),1),c(e("input",{"onUpdate:modelValue":S[6]||(S[6]=A=>H.prefix=A),type:"text",class:"input",placeholder:"images/"},null,512),[[u,H.prefix]])]),e("div",ap,[e("label",sp,n(a(t)("admin.settings.cosImage.publicBaseUrl")),1),c(e("input",{"onUpdate:modelValue":S[7]||(S[7]=A=>H.public_base_url=A),type:"text",class:"input",placeholder:"https://cdn.example.com"},null,512),[[u,H.public_base_url]]),e("p",np,n(a(t)("admin.settings.cosImage.publicBaseUrlHint")),1)])]),e("div",ip,[e("label",op,[c(e("input",{"onUpdate:modelValue":S[8]||(S[8]=A=>H.force_path_style=A),type:"checkbox",class:"mt-1 h-4 w-4"},null,512),[[ze,H.force_path_style]]),e("span",null,[e("span",lp,n(a(t)("admin.settings.cosImage.forcePathStyle")),1),e("span",rp,n(a(t)("admin.settings.cosImage.forcePathStyleHint")),1)])])]),e("div",dp,[e("button",{type:"button",class:"btn btn-primary",disabled:L.value,onClick:w},n(L.value?a(t)("common.saving"):a(t)("common.save")),9,cp)])],64))]))}});async function _p(){const{data:M}=await Ht.get("/admin/async-media/config");return M}async function mp(M){const{data:t}=await Ht.put("/admin/async-media/config",M);return t}const pp={class:"space-y-6"},gp={class:"text-base font-semibold text-gray-900 dark:text-gray-100"},yp={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},bp={key:0,class:"py-8 text-center text-sm text-gray-500 dark:text-gray-400"},xp={class:"grid grid-cols-1 gap-4 sm:grid-cols-2"},hp={class:"form-label"},fp={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},kp={class:"form-label"},vp={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},wp={class:"flex justify-end"},Cp=["disabled"],Vp=qe({__name:"AsyncMediaConfigSection",setup(M){const{t}=Ge(),E=Vt(),k=U(!1),L=U(!1),P=ye({reconcile_interval_seconds:30,fail_timeout_seconds:1800});async function H(){k.value=!0;try{const w=await _p();Object.assign(P,w)}catch(w){E.showError((w==null?void 0:w.message)??t("admin.settings.asyncMedia.loadFailed"))}finally{k.value=!1}}async function x(){L.value=!0;try{const w=await mp({...P});Object.assign(P,w),E.showSuccess(t("admin.settings.asyncMedia.saveSuccess"))}catch(w){E.showError((w==null?void 0:w.message)??t("admin.settings.asyncMedia.saveFailed"))}finally{L.value=!1}}return ct(H),(w,f)=>(r(),d("div",pp,[e("div",null,[e("h3",gp,n(a(t)("admin.settings.asyncMedia.title")),1),e("p",yp,n(a(t)("admin.settings.asyncMedia.description")),1)]),k.value?(r(),d("div",bp,n(a(t)("common.loading")),1)):(r(),d(R,{key:1},[e("div",xp,[e("div",null,[e("label",hp,n(a(t)("admin.settings.asyncMedia.reconcileInterval")),1),c(e("input",{"onUpdate:modelValue":f[0]||(f[0]=S=>
2P.reconcile_interval_seconds=S),type:"number",min:"1",max:"3600",class:"input"},null,512),[[u,P.reconcile_interval_seconds,void 0,{number:!0}]]),e("p",fp,n(a(t)("admin.settings.asyncMedia.reconcileIntervalHint")),1)]),e("div",null,[e("label",kp,n(a(t)("admin.settings.asyncMedia.failTimeout")),1),c(e("input",{"onUpdate:modelValue":f[1]||(f[1]=S=>P.fail_timeout_seconds=S),type:"number",min:"60",max:"86400",class:"input"},null,512),[[u,P.fail_timeout_seconds,void 0,{number:!0}]]),e("p",vp,n(a(t)("admin.settings.asyncMedia.failTimeoutHint")),1)])]),e("div",wp,[e("button",{type:"button",class:"btn btn-primary",disabled:L.value,onClick:x},n(L.value?a(t)("common.saving"):a(t)("common.save")),9,Cp)])],64))]))}}),Up={class:"card"},Sp={class:"flex flex-col gap-3 border-b border-gray-100 px-6 py-4 dark:border-dark-700 lg:flex-row lg:items-start lg:justify-between"},$p={class:"text-lg font-semibold text-gray-900 dark:text-white"},Pp={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Ep={class:"flex flex-wrap gap-2"},Tp=["disabled"],Ap=["disabled"],Mp=["disabled"],Fp={class:"space-y-6 p-6"},Lp={key:0,class:"flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400"},Hp={class:"grid grid-cols-1 gap-4 md:grid-cols-2"},Ip={class:"input-label"},Rp={class:"input-label"},Bp={key:0,class:"rounded-lg border border-primary-100 bg-primary-50/70 p-4 dark:border-primary-900/50 dark:bg-primary-950/20"},jp={class:"flex flex-wrap items-center gap-2"},Dp={class:"text-sm font-semibold text-gray-900 dark:text-white"},Op={class:"rounded-full bg-white px-2.5 py-1 text-xs font-medium text-gray-600 shadow-sm ring-1 ring-gray-200 dark:bg-dark-800 dark:text-gray-300 dark:ring-dark-600"},zp={class:"mt-2 text-sm leading-6 text-gray-600 dark:text-gray-300"},qp={key:0,class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Np={key:1,class:"rounded-lg border border-amber-200 bg-amber-50 p-4 text-sm text-amber-700 dark:border-amber-800 dark:bg-amber-900/20 dark:text-amber-300"},Kp={key:2,class:"grid grid-cols-1 gap-6 xl:grid-cols-2"},Wp={class:"space-y-4"},Gp={class:"input-label",for:"email-template-subject"},Qp=["disabled","placeholder"],Yp={class:"input-label",for:"email-template-html"},Jp=["disabled","placeholder"],Xp={class:"rounded-lg border border-gray-200 bg-gray-50 p-4 dark:border-dark-700 dark:bg-dark-800/60"},Zp={class:"text-sm font-medium text-gray-900 dark:text-white"},eg={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},tg={class:"mt-3 flex flex-wrap gap-2"},ag=["onClick"],sg={class:"space-y-4"},ng={class:"rounded-lg border border-gray-200 bg-white dark:border-dark-700 dark:bg-dark-800"},ig={class:"flex items-center justify-between border-b border-gray-100 px-4 py-3 dark:border-dark-700"},og={class:"text-sm font-medium text-gray-900 dark:text-white"},lg={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},rg={key:0,class:"rounded-full bg-primary-50 px-2.5 py-1 text-xs font-medium text-primary-700 dark:bg-primary-900/30 dark:text-primary-300"},dg={class:"bg-gray-100 p-3 dark:bg-dark-900"},cg=["srcdoc","title"],ug={class:"text-xs text-gray-500 dark:text-gray-400"},_g=qe({__name:"EmailTemplateEditor",setup(M){const{t,locale:E}=Ge(),k=Vt(),L=["{{site_name}}","{{recipient_name}}","{{recipient_email}}","{{verification_code}}","{{expires_in_minutes}}","{{reset_url}}","{{subscription_group}}","{{subscription_days}}","{{expiry_time}}","{{days_remaining}}","{{current_balance}}","{{threshold}}","{{recharge_url}}","{{recharge_amount}}","{{order_id}}","{{unsubscribe_url}}","{{account_id}}","{{account_name}}","{{platform}}","{{quota_dimension}}","{{quota_used}}","{{quota_limit}}","{{quota_remaining}}","{{quota_threshold}}","{{triggered_at}}","{{group_name}}","{{moderation_category}}","{{moderation_score}}","{{violation_count}}","{{ban_threshold}}","{{rule_name}}","{{severity}}","{{alert_status}}","{{metric_type}}","{{operator}}","{{metric_value}}","{{threshold_value}}","{{alert_description}}","{{report_name}}","{{report_type}}","{{report_start_time}}","{{report_end_time}}","{{report_summary_display}}","{{report_detail_display}}","{{report_total_requests}}","{{report_success_count}}","{{report_sla_error_count}}","{{report_business_limited_count}}","{{report_sla}}","{{report_error_rate}}","{{report_upstream_error_rate}}","{{report_upstream_error_count_excl_429_529}}","{{report_upstream_429_count}}","{{report_upstream_529_count}}","{{report_latency_p50}}","{{report_latency_p99}}","{{report_ttft_p50}}","{{report_ttft_p99}}","{{report_tokens}}","{{report_qps_current}}","{{report_qps_peak}}","{{report_qps_avg}}","{{report_tps_current}}","{{report_tps_peak}}","{{report_tps_avg}}","{{report_html}}"],P=U(!0),H=U(!1),x=U(!1),w=U(!1),f=U(!1),S=U([]),A=U([]),ee=U(""),J=U(""),me=U(""),te=U(""),le=U(!1),ce=U([]),oe=U(""),D=U(""),Q=U(!1),z=U(!1);function K(b,y){return E.value.toLowerCase().startsWith("zh")?b:y}
2const Z={"auth.verify_code":{label:"邮箱验证码",timing:"注册、绑定邮箱、OAuth 补全邮箱或 TOTP 邮箱校验时发送。",categoryLabel:"认证安全"},"auth.password_reset":{label:"密码重置",timing:"用户请求密码重置链接时发送。",categoryLabel:"认证安全"},"notification_email.verify_code":{label:"通知邮箱验证码",timing:"用户添加并验证额外通知邮箱时发送。",categoryLabel:"认证安全"},"subscription.purchase_success":{label:"订阅开通成功",timing:"订阅订单完成支付并成功开通或续期后发送。",categoryLabel:"订阅"},"subscription.expiry_reminder":{label:"订阅到期提醒",timing:"后台任务在订阅仍有效且距离到期剩余 7 天、3 天、1 天时各发送一次,可通过邮件设置中的开关关闭。",categoryLabel:"订阅"},"balance.low":{label:"余额不足提醒",timing:"用户余额低于全局或个人配置的提醒阈值时发送。",categoryLabel:"计费"},"balance.recharge_success":{label:"余额充值成功",timing:"余额充值订单支付完成并入账后发送。",categoryLabel:"计费"},"account.quota_alert":{label:"账号限额告警",timing:"上游账号的用量达到配置的额度告警阈值时发送给管理员通知邮箱。",categoryLabel:"管理告警"},"content_moderation.violation_notice":{label:"内容审计违规提醒",timing:"用户请求命中内容审计或风控规则、但尚未被禁用时发送。",categoryLabel:"风控"},"content_moderation.account_disabled":{label:"内容审计禁用账号",timing:"内容审计违规次数达到封禁阈值并自动禁用用户账号时发送。",categoryLabel:"风控"},"ops.alert":{label:"运维告警",timing:"运维监控规则触发告警并满足邮件通知配置时发送给运维收件人。",categoryLabel:"运维"},"ops.scheduled_report":{label:"运维定时报表",timing:"运维日报、周报、错误摘要或账号健康报表到达配置的发送时间时发送;日报和周报的完整指标均可在模板中编辑。",categoryLabel:"运维"}},Y={"auth.verify_code":{label:"Email Verification Code",timing:"Sent for registration, email binding, OAuth pending email completion, or TOTP email verification.",categoryLabel:"Auth"},"auth.password_reset":{label:"Password Reset",timing:"Sent when a user requests a password reset link.",categoryLabel:"Auth"},"notification_email.verify_code":{label:"Notification Email Verification",timing:"Sent when a user adds and verifies an extra notification email address.",categoryLabel:"Auth"},"subscription.purchase_success":{label:"Subscription Activated",timing:"Sent after a subscription order is paid and the subscription is activated or extended.",categoryLabel:"Subscription"},"subscription.expiry_reminder":{label:"Subscription Expiry Reminder",timing:"Sent by the background job when an active subscription has 7, 3, or 1 day remaining. It can be disabled in Email settings.",categoryLabel:"Subscription"},"balance.low":{label:"Low Balance Alert",timing:"Sent when a user's balance drops below the global or personal reminder threshold.",categoryLabel:"Billing"},"balance.recharge_success":{label:"Balance Recharge Success",timing:"Sent after a balance recharge order is paid and credited.",categoryLabel:"Billing"},"account.quota_alert":{label:"Account Quota Alert",timing:"Sent to admin notification emails when an upstream account reaches the configured quota alert threshold.",categoryLabel:"Admin"},"content_moderation.violation_notice":{label:"Risk Control Violation Notice",timing:"Sent when a user request triggers content moderation or risk-control rules but the account is not disabled yet.",categoryLabel:"Risk Control"},"content_moderation.account_disabled":{label:"Risk Control Account Disabled",timing:"Sent when content moderation reaches the ban threshold and automatically disables the user account.",categoryLabel:"Risk Control"},"ops.alert":{label:"Ops Alert",timing:"Sent to ops recipients when an ops monitoring rule fires and email notification settings allow it.",categoryLabel:"Ops"},"ops.scheduled_report":{label:"Ops Scheduled Report",timing:"Sent when a configured daily, weekly, error digest, or account health report reaches its scheduled send time. Every daily and weekly summary metric is editable in this template.",categoryLabel:"Ops"}};function ge(b){return typeof b=="string"?{value:b}:b}function j(b){if(!b)return null;const y=(E.value.toLowerCase().startsWith("zh")?Z:Y)[b.value],V=(y==null?void 0:y.label)||b.label||b.value,F=(y==null?void 0:y.timing)||b.description||"",ie=(y==null?void 0:y.categoryLabel)||ne(b.category||"");return{label:V,timing:F,categoryLabel:ie,optional:b.optional===!0}
2}function se(b){const y=j(b);return y?y.label:b.label||b.value}function ne(b){const y=b.trim().toLowerCase();if(!y)return K("通知","Notification");const F={auth:{zh:"认证安全",en:"Auth"},subscription:{zh:"订阅",en:"Subscription"},billing:{zh:"计费",en:"Billing"},admin:{zh:"管理告警",en:"Admin"},risk_control:{zh:"风控",en:"Risk Control"},ops:{zh:"运维",en:"Ops"}}[y];return F?K(F.zh,F.en):b}const Fe=B(()=>S.value.find(b=>b.value===ee.value)||null),ve=B(()=>j(Fe.value)),he=B(()=>{var b;return((b=Fe.value)==null?void 0:b.description)||""}),Le=B(()=>{const b=ce.value.length?ce.value:L;return Array.from(new Set(b.map(y=>Pe(y)).filter(y=>y.length>0)))});function Pe(b){const y=b.trim();return y?y.startsWith("{{")&&y.endsWith("}}")?y:`{{${y}}}`:""}const He=B(()=>!!(ee.value&&J.value)&&me.value.trim().length>0&&te.value.trim().length>0),Ne=B(()=>!!(ee.value&&J.value)&&te.value.trim().length>0);function Re(b){const y=b.toLowerCase();return y==="zh"||y.startsWith("zh-")?t("admin.settings.emailTemplates.localeZh"):y==="en"||y.startsWith("en-")?t("admin.settings.emailTemplates.localeEn"):b}const Ze=B(()=>S.value.map(b=>({value:b.value,label:se(b)}))),et=B(()=>A.value.map(b=>({value:b,label:Re(b)})));function Ee(b){const y=E.value.toLowerCase(),V=b.find(Ve=>Ve.toLowerCase()===y);if(V)return V;const F=y.split("-")[0],ie=b.find(Ve=>Ve.toLowerCase().split("-")[0]===F);return ie||b[0]||""}function Be(b){me.value=b.subject,te.value=b.html,le.value=b.is_custom===!0,ce.value=b.placeholders||[]}async function tt(){if(!(!ee.value||!J.value)){H.value=!0;try{const b=await O.settings.getEmailTemplate(ee.value,J.value);Be(b),await Ke()}catch(b){k.showError(pe(b,t("common.error")))}finally{H.value=!1}}}async function Te(){var b;P.value=!0;try{const y=await O.settings.getEmailTemplates();S.value=y.events.map(ge),A.value=y.locales,ce.value=y.placeholders||[],Q.value=!0,ee.value=((b=S.value[0])==null?void 0:b.value)||"",J.value=Ee(y.locales),await tt(),Q.value=!1}catch(y){Q.value=!1,k.showError(pe(y,t("common.error")))}finally{P.value=!1}}async function ot(){if(!He.value){k.showError(t("admin.settings.emailTemplates.validationRequired"));return}x.value=!0;try{const b=await O.settings.updateEmailTemplate(ee.value,J.value,{subject:me.value,html:te.value});Be(b),await Ke(),k.showSuccess(t("admin.settings.emailTemplates.saveSuccess"))}catch(b){k.showError(pe(b,t("common.error")))}finally{x.value=!1}}async function Ke(){if(!Ne.value){oe.value="",D.value="";return}w.value=!0;try{const b=await O.settings.previewEmailTemplate({event:ee.value,locale:J.value,subject:me.value,html:te.value});oe.value=b.subject,D.value=b.html}catch(b){k.showError(pe(b,t("common.error")))}finally{w.value=!1}}async function we(){!ee.value||!J.value||(z.value=!0)}async function je(){if(!(!ee.value||!J.value)){z.value=!1,f.value=!0;try{const b=await O.settings.restoreOfficialEmailTemplate(ee.value,J.value);Be(b),await Ke(),k.showSuccess(t("admin.settings.emailTemplates.restoreSuccess"))}catch(b){k.showError(pe(b,t("common.error")))}finally{f.value=!1}}}async function at(b){try{await navigator.clipboard.writeText(b),k.showSuccess(t("admin.settings.emailTemplates.placeholderCopied"))}catch{k.showError(t("common.error"))}}return pt([ee,J],([b,y],[V,F])=>{Q.value||!b||!y||b===V&&y===F||tt()}),ct(()=>{Te()}),(b,y)=>(r(),d("div",Up,[e("div",Sp,[e("div",null,[e("h2",$p,n(a(t)("admin.settings.emailTemplates.title")),1),e("p",Pp,n(a(t)("admin.settings.emailTemplates.description")),1)]),e("div",Ep,[e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:H.value||w.value||!Ne.value,onClick:Ke},n(w.value?a(t)("admin.settings.emailTemplates.previewing"):a(t)("admin.settings.emailTemplates.preview")),9,Tp),e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:H.value||f.value||!ee.value||!J.value,onClick:we},n(f.value?a(t)("admin.settings.emailTemplates.restoring"):a(t)("admin.settings.emailTemplates.restoreOfficial")),9,Ap),e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:H.value||x.value||!He.value,onClick:ot},n(x.value?a(t)("admin.settings.emailTemplates.saving"):a(t)("admin.settings.emailTemplates.save")),9,Mp)])]),e("div",Fp,[P.value?(r(),d("div",Lp,[y[5]||(y[5]=e("span",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),I(" "+n(a(t)("common.loading")),1)])):(r(),d(R,{key:1},[e("div",Hp,[e("div",null,[e("label",Ip,n(a(t)("admin.settings.emailTemplates.event")),1),g(ke,{modelValue:ee.value,"onUpdate:modelValue":y[0]||(y[0]=V=>ee.value=V),options:Ze.value,disabled:H.value||S.value.length===0},null,8,["modelValue","options","disabled"])]),e("div",null,[e("label",Rp,n(a(t)("admin.settings.emailTemplates.locale")),1),g(ke,{modelValue:J.value,"onUpdate:modelValue":y[1]||(y[1]=V=>J.value=V),options:et.value,disabled:H.value||A.value.length===0},null,8,["modelValue","options","disabled"])])]),ve.value?(r(),d("div",Bp,[e("div",jp,[e("div",Dp,n(ve.value.label),1),e("span",Op,n(ve.value.categoryLabel),1),e("span",{class:X(["rounded-full px-2.5 py-1 text-xs font-medium",ve.value.optional?"bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-300":"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-300"])},n(ve.value.optional?K("可退订通知","Optional"):K("事务邮件","Transactional")),3)]),e("p",zp,n(ve.value.timing),1),he.value?(r(),d("p",qp,n(he.value),1)):h("",!0)])):h("",!0),!S.value.length||!A.value.length?(r(),d("div",Np,n(a(t)("admin.settings.emailTemplates.empty")),1)):(r(),d("div",Kp,[e("div",Wp,[e("div",null,[e("label",Gp,n(a(t)("admin.settings.emailTemplates.subject")),1),c(e("input",{id:"email-template-subject","onUpdate:modelValue":y[2]||(y[2]=V=>me.value=V),type:"text",class:"input",disabled:H.value,placeholder:a(t)("admin.settings.emailTemplates.subjectPlaceholder")},null,8,Qp),[[u,me.value]])]),e("div",null,[e("label",Yp,n(a(t)("admin.settings.emailTemplates.html")),1),c(e("textarea",{id:"email-template-html","onUpdate:modelValue":y[3]||(y[3]=V=>te.value=V),rows:"18",class:"input min-h-[28rem] resize-y font-mono text-sm leading-6",disabled:H.value,placeholder:a(t)("admin.settings.emailTemplates.htmlPlaceholder")},null,8,Jp),[[u,te.value]])]),e("div",Xp,[e("div",Zp,n(a(t)("admin.settings.emailTemplates.placeholders")),1),e("p",eg,n(a(t)("admin.settings.emailTemplates.placeholdersHelp")),1),e("div",tg,[(r(!0),d(R,null,N(Le.value,V=>(r(),d("button",{key:V,type:"button",class:"rounded-full border border-gray-200 bg-white px-3 py-1 font-mono text-xs text-gray-700 transition-colors hover:border-primary-300 hover:text-primary-600 dark:border-dark-600 dark:bg-dark-700 dark:text-gray-200 dark:hover:border-primary-500 dark:hover:text-primary-300",onClick:F=>at(V)},n(V),9,ag))),128))])])]),e("div",sg,[e("div",ng,[e("div",ig,[e("div",null,[e("div",og,n(a(t)("admin.settings.emailTemplates.livePreview")),1),e("div",lg,n(oe.value||a(t)("admin.settings.emailTemplates.noPreview")),1)]),le.value?(r(),d("span",rg,n(a(t)("admin.settings.emailTemplates.customized")),1)):h("",!0)]),e("div",dg,[e("iframe",{class:"h-[36rem] w-full rounded-md border border-gray-200 bg-white dark:border-dark-700",sandbox:"",srcdoc:D.value,title:a(t)("admin.settings.emailTemplates.livePreview")},null,8,cg)])]),e("p",ug,n(a(t)("admin.settings.emailTemplates.previewSecurityHint")),1)])]))],64))]),g(wt,{show:z.value,title:a(t)("admin.settings.emailTemplates.restoreOfficial"),message:a(t)("admin.settings.emailTemplates.restoreConfirm"),"confirm-text":a(t)("common.confirm"),"cancel-text":a(t)("common.cancel"),onConfirm:je,onCancel:y[4]||(y[4]=V=>z.value=!1)},null,8,["show","title","message","confirm-text","cancel-text"])]))}}),mg={key:0,class:"mb-2 flex flex-wrap gap-2"},pg=["title"],gg={class:"shrink-0 text-gray-400"},yg={key:0,class:"shrink-0 text-gray-400"}
2,bg=["aria-label","title","onClick"],xg={class:"relative"},hg=["placeholder"],fg={key:1,class:"absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-lg border border-gray-200 bg-white shadow-lg dark:border-dark-600 dark:bg-dark-700"},kg={key:0,class:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400"},vg={key:1,class:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400"},wg=["onClick"],Cg={class:"min-w-0 truncate font-medium text-gray-900 dark:text-white"},Vg={key:0,class:"ml-1 text-xs font-normal text-gray-400"},Ug={class:"shrink-0 text-xs text-gray-400"},an=qe({__name:"OpenAIFastPolicyUserSelector",props:{modelValue:{}},emits:["update:modelValue"],setup(M,{emit:t}){const E=M,k=t,{t:L}=Ge(),P=U(null),H=U(""),x=U([]),w=U(!1),f=U(!1),S=U({});let A=null,ee=0;const J=B(()=>Array.from(new Set(E.modelValue.filter(K=>Number.isInteger(K)&&K>0)))),me=B(()=>{const K=new Set(J.value);return x.value.filter(Z=>!K.has(Z.id)).sort((Z,Y)=>Number(Z.deleted)-Number(Y.deleted))});function te(K){var Z;return((Z=S.value[K])==null?void 0:Z.email)||L("admin.settings.openaiFastPolicy.userIdFallback",{id:K})}function le(){A&&(clearTimeout(A),A=null),ee+=1}function ce(){le();const K=H.value.trim();if(f.value=!0,!K){x.value=[],w.value=!1;return}const Z=ee;A=setTimeout(async()=>{w.value=!0;try{const Y=await O.usage.searchUsers(K);Z===ee&&(x.value=Y)}catch{Z===ee&&(x.value=[])}finally{Z===ee&&(w.value=!1)}},300)}function oe(K){S.value={...S.value,[K.id]:K},k("update:modelValue",[...J.value,K.id]),le(),H.value="",x.value=[],w.value=!1,f.value=!1}function D(K){k("update:modelValue",J.value.filter(Z=>Z!==K))}async function Q(K){const Z=K.filter(j=>!S.value[j]);if(Z.length===0)return;const Y=await Promise.all(Z.map(async j=>{try{const se=await O.users.getById(j,!0);return{id:se.id,email:se.email,deleted:!!se.deleted_at}}catch{return null}})),ge={...S.value};for(const j of Y)j&&E.modelValue.includes(j.id)&&(ge[j.id]=j);S.value=ge}function z(K){var Y;const Z=K.target;Z&&!((Y=P.value)!=null&&Y.contains(Z))&&(f.value=!1)}return pt(J,K=>{Q(K)},{immediate:!0}),ct(()=>{document.addEventListener("click",z)}),Ko(()=>{le(),document.removeEventListener("click",z)}),(K,Z)=>(r(),d("div",{ref_key:"containerRef",ref:P,class:"relative"},[J.value.length>0?(r(),d("div",mg,[(r(!0),d(R,null,N(J.value,Y=>{var ge;return r(),d("span",{key:Y,class:"inline-flex max-w-full items-center gap-1.5 rounded-md bg-gray-100 px-2.5 py-1.5 text-xs text-gray-700 dark:bg-dark-600 dark:text-gray-200"},[e("span",{class:"max-w-64 truncate font-medium",title:te(Y)},n(te(Y)),9,pg),e("span",gg,"#"+n(Y),1),(ge=S.value[Y])!=null&&ge.deleted?(r(),d("span",yg,n(a(L)("admin.settings.openaiFastPolicy.userDeleted")),1)):h("",!0),e("button",{type:"button",class:"shrink-0 rounded text-gray-400 hover:text-red-600 dark:hover:text-red-400","aria-label":a(L)("admin.settings.openaiFastPolicy.removeUser"),title:a(L)("admin.settings.openaiFastPolicy.removeUser"),onClick:j=>D(Y)},[g(de,{name:"x",size:"xs","stroke-width":2})],8,bg)])}),128))])):h("",!0),e("div",xg,[g(de,{name:"search",size:"sm",class:"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"}),c(e("input",{"onUpdate:modelValue":Z[0]||(Z[0]=Y=>H.value=Y),type:"text",autocomplete:"off",class:"input input-sm w-full pl-9",placeholder:a(L)("admin.settings.openaiFastPolicy.userSearchPlaceholder"),onInput:ce,onFocus:Z[1]||(Z[1]=Y=>f.value=!0)},null,40,hg),[[u,H.value]])]),f.value&&H.value.trim()?(r(),d("div",fg,[w.value?(r(),d("div",kg,n(a(L)("common.loading")),1)):me.value.length===0?(r(),d("div",vg,n(a(L)("admin.settings.openaiFastPolicy.userSearchEmpty")),1)):(r(!0),d(R,{key:2},N(me.value,Y=>(r(),d("button",{key:Y.id,type:"button",class:"flex w-full items-center justify-between gap-3 px-4 py-2 text-left text-sm hover:bg-gray-100 dark:hover:bg-dark-600",onClick:ge=>oe(Y)},[e("span",Cg,[I(n(Y.email)+" ",1),Y.deleted?(r(),d("span",Vg,n(a(L)("admin.settings.openaiFastPolicy.userDeleted")),1)):h("",!0)]),e("span",Ug,"#"+n(Y.id),1)],8,wg))),128))])):h("",!0)],512))}}),Sg={class:"mt-3 space-y-2"},$g={class:"text-sm text-gray-600 dark:text-gray-400"},Pg={class:"flex flex-wrap gap-2"},Eg=["disabled"],Tg={key:0,role:"alert",class:"text-sm text-red-600"},Ag=qe({__name:"MihomoProxySelector",emits:["ready"],setup(M,{emit:t}){const E=t,{locale:k}=Ge(),L=(w,f)=>k.value.startsWith("zh")?w:f,P=U(!1),H=U("");async function x(){P.value=!0,H.value="";try{const{data:w}=await Ht.get("/admin/system/mihomo");
2if(!w.running||w.busy||!w.nodes||w.endpoint!=="http://127.0.0.1:3101"){H.value=L("内核尚未就绪,请先在 IP 管理中配置并启动。","The kernel is not ready. Configure and start it in IP Management first.");return}E("ready",w.endpoint)}catch{H.value=L("无法读取内核状态,请稍后重试。","Cannot read kernel status. Please retry.")}finally{P.value=!1}}return(w,f)=>{const S=ln("router-link");return r(),d("div",Sg,[e("p",$g,n(L("订阅、动态代理、地区规则与节点统一在 IP 管理中维护。","Manage subscriptions, dynamic proxies, region rules and nodes in IP Management.")),1),e("div",Pg,[g(S,{to:"/admin/proxies#subscriptions",class:"btn btn-secondary"},{default:$e(()=>[I(n(L("前往 IP 管理","Open IP Management")),1)]),_:1}),e("button",{type:"button",class:"btn btn-secondary",disabled:P.value,onClick:x},n(L("设为打票代理","Use for ticket harvesting")),9,Eg)]),H.value?(r(),d("p",Tg,n(H.value),1)):h("",!0)])}}}),Mg=["header_exact","header_prefix","body_path"];function Fg(M){if(!M||!M.trim())return[];try{const t=JSON.parse(M);return Array.isArray(t)?t.map(E=>({type:Mg.includes(E==null?void 0:E.type)?E.type:"header_exact",match:Array.isArray(E==null?void 0:E.match)?E.match.filter(k=>typeof k=="string").join(" / "):"",required:(E==null?void 0:E.required)===!0})):[]}catch{return[]}}function Lg(M){const t=M.map(E=>({type:E.type,match:E.match.split("/").map(k=>k.trim()).filter(k=>k.length>0),required:E.required===!0})).filter(E=>E.match.length>0);return JSON.stringify(t)}function Hg(){return[{type:"header_prefix",match:"x-codex-",required:!0},{type:"header_exact",match:"session-id / session_id",required:!1},{type:"header_exact",match:"thread-id / thread_id",required:!1},{type:"body_path",match:"client_metadata.x-codex-window-id / client_metadata.x-codex-installation-id",required:!1}]}const Ig={class:"mx-auto max-w-6xl space-y-6"},Rg={key:0,class:"flex items-center justify-center py-12"},Bg={class:"settings-tabs-shell"},jg=["aria-label"],Dg={class:"settings-tabs"},Og=["id","aria-selected","tabindex","onClick","onKeydown"],zg={class:"settings-tab-icon"},qg={class:"settings-tab-label"},Ng={class:"space-y-6"},Kg={class:"card"},Wg={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Gg={class:"text-lg font-semibold text-gray-900 dark:text-white"},Qg={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Yg={class:"space-y-4 p-6"},Jg={class:"rounded-lg border border-amber-200 bg-amber-50 p-4 dark:border-amber-800 dark:bg-amber-900/20"},Xg={class:"flex items-start"},Zg={class:"ml-3 text-sm text-amber-700 dark:text-amber-300"},e0={key:0,class:"flex items-center gap-2 text-gray-500"},t0={key:1,class:"flex items-center justify-between"},a0={class:"text-gray-500 dark:text-gray-400"},s0=["disabled"],n0={key:0,class:"mr-1 h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},i0={key:2,class:"space-y-4"},o0={class:"flex items-center justify-between"},l0={class:"mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300"},r0={class:"rounded bg-gray-100 px-2 py-1 font-mono text-sm text-gray-900 dark:bg-dark-700 dark:text-gray-100"},d0={class:"flex gap-2"},c0=["disabled"],u0=["disabled"],_0={key:0,class:"space-y-3 rounded-lg border border-green-200 bg-green-50 p-4 dark:border-green-800 dark:bg-green-900/20"},m0={class:"text-sm font-medium text-green-700 dark:text-green-300"},p0={class:"flex items-center gap-2"},g0={class:"flex-1 select-all break-all rounded border border-green-300 bg-white px-3 py-2 font-mono text-sm dark:border-green-700 dark:bg-dark-800"},y0={class:"text-xs text-green-600 dark:text-green-400"},b0={class:"space-y-6"},x0={class:"card"},h0={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},f0={class:"text-lg font-semibold text-gray-900 dark:text-white"},k0={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},v0={class:"space-y-5 p-6"},w0={key:0,class:"flex items-center gap-2 text-gray-500"},C0={class:"flex items-center justify-between"},V0={class:"font-medium text-gray-900 dark:text-white"},U0={class:"text-sm text-gray-500 dark:text-gray-400"},S0={key:0,class:"space-y-4 border-t border-gray-100 pt-4 dark:border-dark-700"},$0={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},P0={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},E0={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},T0=["disabled"],A0={key:0,class:"mr-1 h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},M0={class:"card"},F0={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},L0={class:"text-lg font-semibold text-gray-900 dark:text-white"},H0={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},I0={class:"space-y-5 p-6"},R0={key:0,class:"flex items-center gap-2 text-gray-500"},B0={class:"flex items-center justify-between"},j0={class:"font-medium text-gray-900 dark:text-white"},D0={class:"text-sm text-gray-500 dark:text-gray-400"},O0={key:0,class:"space-y-4 border-t border-gray-100 pt-4 dark:border-dark-700"},z0={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},q0={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},N0={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},K0=["disabled"],W0={key:0,class:"mr-1 h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},G0={class:"card"},Q0={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Y0={class:"text-lg font-semibold text-gray-900 dark:text-white"},J0={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},X0={class:"space-y-5 p-6"},Z0={key:0,class:"flex items-center gap-2 text-gray-500"},ey={class:"flex items-center justify-between"},ty={class:"font-medium text-gray-900 dark:text-white"},ay={class:"text-sm text-gray-500 dark:text-gray-400"},sy={key:0,class:"space-y-4 border-t border-gray-100 pt-4 dark:border-dark-700"},ny={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},iy={value:"temp_unsched"},oy={value:"error"},ly={value:"none"},ry={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"}
vendor: 7,761 bytes, line 2
2,dy={key:0},cy={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},uy={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},_y={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},my={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},py={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},gy={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},yy={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},by=["disabled"],xy={key:0,class:"mr-1 h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},hy={class:"card"},fy={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},ky={class:"text-lg font-semibold text-gray-900 dark:text-white"},vy={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},wy={class:"space-y-5 p-6"},Cy={key:0,class:"flex items-center gap-2 text-gray-500"},Vy={class:"flex items-center justify-between"},Uy={class:"font-medium text-gray-900 dark:text-white"},Sy={class:"text-sm text-gray-500 dark:text-gray-400"},$y={key:0,class:"space-y-4 border-t border-gray-100 pt-4 dark:border-dark-700"},Py={class:"flex items-center justify-between"},Ey={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},Ty={class:"text-xs text-gray-500 dark:text-gray-400"},Ay={class:"flex items-center justify-between"},My={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},Fy={class:"text-xs text-gray-500 dark:text-gray-400"},Ly={class:"flex items-center justify-between"},Hy={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},Iy={class:"text-xs text-gray-500 dark:text-gray-400"},Ry={key:0,class:"ml-4 space-y-3 border-l-2 border-gray-200 pl-4 dark:border-dark-600"},By={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},jy={class:"text-xs text-gray-500 dark:text-gray-400"},Dy=["onUpdate:modelValue","placeholder"],Oy=["onClick"],zy={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},qy=["disabled"],Ny={key:0,class:"mr-1 h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},Ky={class:"card"},Wy={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Gy={class:"text-lg font-semibold text-gray-900 dark:text-white"},Qy={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Yy={class:"space-y-5 p-6"},Jy={key:0,class:"flex items-center gap-2 text-gray-500"},Xy={class:"mb-3 flex items-center gap-2"},Zy={class:"text-sm font-medium text-gray-900 dark:text-white"},eb={class:"rounded bg-gray-100 px-2 py-0.5 text-xs text-gray-500 dark:bg-dark-700 dark:text-gray-400"},tb={class:"grid grid-cols-1 gap-4 sm:grid-cols-2"},ab={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},sb={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},nb={key:0,class:"mt-3"},ib={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},ob=["onUpdate:modelValue","placeholder"],lb={class:"mt-1 text-xs text-gray-400 dark:text-gray-500"},rb={key:1,class:"mt-3"},db={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},cb={class:"flex flex-wrap gap-2"},ub=["onClick","title"],_b={class:"mt-3"},mb={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},pb={class:"mb-2 text-xs text-gray-400 dark:text-gray-500"},gb=["onUpdate:modelValue","placeholder"],yb=["onClick"],bb=["onClick"],xb={class:"flex flex-wrap items-center gap-1.5"},hb={class:"text-xs text-gray-400 dark:text-gray-500"},fb=["onClick"],kb={key:2,class:"mt-3"},vb={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},wb={class:"mt-1 text-xs text-gray-400 dark:text-gray-500"},Cb={key:0,class:"mt-2"},Vb=["onUpdate:modelValue","placeholder"],Ub={class:"mt-1 text-xs text-gray-400 dark:text-gray-500"},Sb={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},$b=["disabled"],Pb={key:0,class:"mr-1 h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},Eb={class:"card"},Tb={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Ab={class:"text-lg font-semibold text-gray-900 dark:text-white"},Mb={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Fb={class:"space-y-5 p-6"},Lb={key:0,class:"rounded-lg border border-dashed border-gray-200 p-6 text-center text-sm text-gray-500 dark:border-dark-600 dark:text-gray-400"},Hb={class:"mb-3 flex items-center justify-between"},Ib={class:"text-sm font-medium text-gray-900 dark:text-white"},Rb=["onClick","title"],Bb=["data-testid"],jb={class:"font-medium text-gray-700 dark:text-gray-300"},Db={class:"inline-flex items-center rounded bg-primary-50 px-2 py-0.5 font-medium text-primary-700 dark:bg-primary-900/30 dark:text-primary-300"},Ob={class:"font-medium text-gray-700 dark:text-gray-300"},zb={class:"inline-flex items-center rounded bg-gray-100 px-2 py-0.5 font-medium text-gray-700 dark:bg-dark-600 dark:text-gray-300"},qb={class:"grid grid-cols-1 gap-4 md:grid-cols-3"},Nb={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Kb={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Wb={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Gb={class:"mt-3"},Qb={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Yb={class:"mb-2 text-xs text-gray-400 dark:text-gray-500"},Jb={key:0,class:"mt-3"},Xb={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Zb=["onUpdate:modelValue","placeholder"],ex={class:"mt-1 text-xs text-gray-400 dark:text-gray-500"},tx=["aria-labelledby","aria-describedby"],ax=["id"],sx=["id"],nx=["onUpdate:modelValue","placeholder"],ix=["onClick"],ox=["onClick"],lx={key:1,class:"mt-3"},rx={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},dx={class:"mt-1 text-xs text-gray-400 dark:text-gray-500"},cx={key:0,class:"mt-2"},ux=["onUpdate:modelValue","placeholder"],_x={class:"mt-2 text-xs text-gray-400 dark:text-gray-500"},mx={class:"space-y-6"},px={class:"card"},gx={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},yx={class:"text-lg font-semibold text-gray-900 dark:text-white"},bx={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},xx={class:"space-y-5 p-6"},hx={class:"flex items-center justify-between"},fx={class:"font-medium text-gray-900 dark:text-white"},kx={class:"text-sm text-gray-500 dark:text-gray-400"},vx={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},wx={class:"font-medium text-gray-900 dark:text-white"},Cx={class:"text-sm text-gray-500 dark:text-gray-400"},Vx={class:"border-t border-gray-100 pt-4 dark:border-dark-700"},Ux={class:"font-medium text-gray-900 dark:text-white"},Sx={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},$x={class:"mt-3 rounded-lg border border-gray-300 bg-white p-2 dark:border-dark-500 dark:bg-dark-700"},Px={class:"flex flex-wrap items-center gap-2"},Ex=["onClick"],Tx={class:"flex min-w-[220px] flex-1 items-center gap-1 rounded border border-transparent px-2 py-1 focus-within:border-primary-300 dark:focus-within:border-primary-700"},Ax=["placeholder"],Mx={class:"mt-2 text-xs text-gray-500 dark:text-gray-400"},Fx={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},Lx={class:"font-medium text-gray-900 dark:text-white"},Hx={class:"text-sm text-gray-500 dark:text-gray-400"},Ix={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},Rx={class:"font-medium text-gray-900 dark:text-white"},Bx={class:"text-sm text-gray-500 dark:text-gray-400"},jx={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},Dx={class:"font-medium text-gray-900 dark:text-white"},Ox={class:"text-sm text-gray-500 dark:text-gray-400"}
2,zx={key:0,class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},qx={class:"font-medium text-gray-900 dark:text-white"},Nx={class:"text-sm text-gray-500 dark:text-gray-400"},Kx={key:1,class:"border-t border-gray-100 pt-4 dark:border-dark-700"},Wx={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Gx=["placeholder"],Qx={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Yx={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},Jx={class:"font-medium text-gray-900 dark:text-white"},Xx={class:"text-sm text-gray-500 dark:text-gray-400"},Zx={key:0,class:"mt-2 text-sm text-amber-600 dark:text-amber-400"},eh={class:"border-t border-gray-100 pt-4 dark:border-dark-700","data-testid":"passkey-settings"},th={class:"flex items-start justify-between gap-4"},ah={class:"font-medium text-gray-900 dark:text-white"},sh={class:"text-sm text-gray-500 dark:text-gray-400"},nh={class:"font-medium"},ih={class:"mt-1 break-all"},oh={class:"mt-1 break-all"},lh={key:0,class:"mt-2"},rh={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},dh={class:"font-medium text-gray-900 dark:text-white"},ch={class:"text-sm text-gray-500 dark:text-gray-400"},uh={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},_h={class:"font-medium text-gray-900 dark:text-white"},mh={class:"text-sm text-gray-500 dark:text-gray-400"},ph={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},gh={class:"font-medium text-gray-900 dark:text-white"},yh={class:"text-sm text-gray-500 dark:text-gray-400"},bh={class:"card"},xh={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},hh={class:"text-lg font-semibold text-gray-900 dark:text-white"},fh={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},kh={class:"space-y-5 p-6"},vh={class:"flex items-center justify-between gap-4"},wh={class:"font-medium text-gray-900 dark:text-white"},Ch={class:"text-sm text-gray-500 dark:text-gray-400"},Vh={key:0,class:"border-t border-gray-100 pt-4 dark:border-dark-700"},Uh={for:"forwarded-client-ip-headers",class:"font-medium text-gray-900 dark:text-white"},Sh={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},$h={class:"mt-3 rounded-lg border border-gray-300 bg-white p-2 dark:border-dark-500 dark:bg-dark-700"},Ph={class:"flex flex-wrap items-center gap-2"},Eh=["aria-label","onClick"],Th={class:"flex min-w-[220px] flex-1 items-center gap-1 rounded border border-transparent px-2 py-1 focus-within:border-primary-300 dark:focus-within:border-primary-700"},Ah=["placeholder"],Mh={class:"mt-2 text-xs text-gray-500 dark:text-gray-400"},Fh={class:"card"},Lh={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Hh={class:"flex items-center gap-2"},Ih={class:"text-lg font-semibold text-gray-900 dark:text-white"},Rh={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Bh={class:"space-y-5 p-6"},jh={key:0,class:"flex items-center gap-2 text-gray-500"},Dh={class:"rounded-lg border border-sky-200 bg-sky-50 p-4 dark:border-sky-800 dark:bg-sky-900/20"},Oh={class:"flex items-start"},zh={class:"ml-3 text-sm text-sky-700 dark:text-sky-300"},qh={class:"flex items-center justify-between"},Nh={class:"font-medium text-gray-900 dark:text-white"},Kh={class:"text-sm text-gray-500 dark:text-gray-400"},Wh={key:0,class:"space-y-5 border-t border-gray-100 pt-4 dark:border-dark-700"},Gh={class:"grid grid-cols-1 gap-6 sm:grid-cols-2"},Qh={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Yh={class:"flex items-center gap-2"},Jh={class:"text-sm text-gray-500 dark:text-gray-400"},Xh={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Zh={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},e1={class:"flex items-center gap-2"},t1={class:"text-sm text-gray-500 dark:text-gray-400"},a1={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},s1={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},n1={class:"flex items-center gap-2"},i1={class:"text-sm text-gray-500 dark:text-gray-400"},o1={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},l1={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},r1={class:"font-medium text-gray-900 dark:text-white"},d1={class:"text-sm text-gray-500 dark:text-gray-400"},c1={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},u1=["disabled"],_1={key:0,class:"mr-1 h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},m1={class:"card"},p1={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},g1={class:"text-lg font-semibold text-gray-900 dark:text-white"},y1={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},b1={class:"space-y-5 p-6"},x1={class:"flex items-center justify-between"},h1={class:"font-medium text-gray-900 dark:text-white"},f1={class:"text-sm text-gray-500 dark:text-gray-400"},k1={key:0,class:"border-t border-gray-100 pt-4 dark:border-dark-700"},v1={class:"mb-6"},w1={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},C1={class:"grid grid-cols-3 gap-2 rounded-lg bg-gray-100 p-1 dark:bg-dark-700"}
2,V1={key:0,class:"grid grid-cols-1 gap-6"},U1={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},S1={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},$1={href:"https://dash.cloudflare.com/",target:"_blank",class:"text-primary-600 hover:text-primary-500"},P1={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},E1={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},T1={key:1},A1={class:"mb-6 max-w-sm"},M1={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},F1={class:"grid grid-cols-2 gap-2 rounded-lg bg-gray-100 p-1 dark:bg-dark-700"},L1={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},H1={class:"grid grid-cols-1 gap-6 md:grid-cols-2"},I1={class:"md:col-span-2"},R1={class:"text-sm font-semibold text-gray-900 dark:text-white"},B1={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},j1={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},D1={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},O1=["placeholder"],z1={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},q1={class:"border-t border-gray-100 pt-5 md:col-span-2 dark:border-dark-700"},N1={class:"text-sm font-semibold text-gray-900 dark:text-white"},K1={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},W1={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},G1=["placeholder"],Q1={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Y1={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},J1=["placeholder"],X1={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Z1={class:"mt-5 text-xs text-gray-500 dark:text-gray-400"},ef={class:"mt-2 text-xs text-gray-500 dark:text-gray-400"},tf={class:"mt-3 flex flex-wrap gap-x-4 gap-y-2 text-sm"},af=["href"],sf=["href"],nf=["href"],of={key:2,class:"grid grid-cols-1 gap-6"},lf={class:"grid grid-cols-1 gap-6 sm:grid-cols-2"},rf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},df={class:"grid grid-cols-2 gap-2 rounded-lg bg-gray-100 p-1 dark:bg-dark-700"},cf={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},uf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},_f={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},mf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},pf={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},gf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},yf={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},bf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},xf={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},hf={class:"card"},ff={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},kf={class:"text-lg font-semibold text-gray-900 dark:text-white"},vf={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},wf={class:"space-y-5 p-6"},Cf={class:"flex items-center justify-between"},Vf={class:"font-medium text-gray-900 dark:text-white"},Uf={class:"text-sm text-gray-500 dark:text-gray-400"},Sf={key:0,class:"border-t border-gray-100 pt-4 dark:border-dark-700"},$f={class:"grid grid-cols-1 gap-6"},Pf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Ef=["placeholder"],Tf={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Af={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Mf=["placeholder"],Ff={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Lf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Hf=["placeholder"],If={class:"mt-2 flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-3"},Rf={key:0,class:"select-all break-all rounded bg-gray-50 px-2 py-1 font-mono text-xs text-gray-600 dark:bg-dark-800 dark:text-gray-300"},Bf={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},jf={class:"card"},Df={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Of={class:"text-lg font-semibold text-gray-900 dark:text-white"},zf={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},qf={class:"space-y-6 p-6"},Nf={class:"grid grid-cols-1 gap-6 xl:grid-cols-2"},Kf={class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},Wf={class:"flex items-start justify-between gap-4"},Gf={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Qf={key:0,class:"mt-4 space-y-4"},Yf={class:"rounded-lg bg-gray-50 px-3 py-2 text-xs text-gray-600 dark:bg-dark-800 dark:text-gray-300"},Jf={class:"grid grid-cols-1 gap-4 lg:grid-cols-2"},Xf=["placeholder"],Zf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},ek={class:"mt-2 flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-3"},tk={key:0,class:"select-all break-all rounded bg-gray-50 px-2 py-1 font-mono text-xs text-gray-600 dark:bg-dark-800 dark:text-gray-300"},ak={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},sk={class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},nk={class:"flex items-start justify-between gap-4"},ik={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},ok={key:0,class:"mt-4 space-y-4"},lk={class:"rounded-lg bg-gray-50 px-3 py-2 text-xs text-gray-600 dark:bg-dark-800 dark:text-gray-300"},rk={class:"grid grid-cols-1 gap-4 lg:grid-cols-2"},dk=["placeholder"],ck={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},uk={class:"mt-2 flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-3"},_k={key:0,class:"select-all break-all rounded bg-gray-50 px-2 py-1 font-mono text-xs text-gray-600 dark:bg-dark-800 dark:text-gray-300"},mk={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},pk={class:"card"},gk={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},yk={class:"text-lg font-semibold text-gray-900 dark:text-white"},bk={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},xk={class:"space-y-5 p-6"},hk={class:"flex items-center justify-between"},fk={class:"font-medium text-gray-900 dark:text-white"},kk={class:"text-sm text-gray-500 dark:text-gray-400"},vk={key:0,class:"space-y-6 border-t border-gray-100 pt-4 dark:border-dark-700"},wk={class:"space-y-4"},Ck={class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},Vk={class:"flex items-start justify-between gap-4"},Uk={class:"font-medium text-gray-900 dark:text-white"},Sk={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},$k={key:0,class:"mt-4 grid grid-cols-1 gap-4 lg:grid-cols-2"},Pk={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Ek=["placeholder"],Tk={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Ak=["placeholder"],Mk={class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},Fk={class:"flex items-start justify-between gap-4"},Lk={class:"font-medium text-gray-900 dark:text-white"},Hk={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Ik={key:0,class:"mt-4 grid grid-cols-1 gap-4 lg:grid-cols-2"},Rk={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Bk=["placeholder"],jk={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Dk=["placeholder"],Ok={class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},zk={class:"flex items-start justify-between gap-4"},qk={class:"font-medium text-gray-900 dark:text-white"},Nk={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Kk={key:0,class:"mt-4 grid grid-cols-1 gap-4 lg:grid-cols-2"},Wk={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Gk=["placeholder"],Qk={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Yk=["placeholder"],Jk={key:0,class:"rounded-lg border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-700 dark:border-amber-900/40 dark:bg-amber-900/10 dark:text-amber-300"},Xk={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},Zk={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},ev=["placeholder"],tv={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},av={class:"mt-2 flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-3"},sv={key:0,class:"select-all break-all rounded bg-gray-50 px-2 py-1 font-mono text-xs text-gray-600 dark:bg-dark-800 dark:text-gray-300"},nv={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},iv=["placeholder"],ov={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},lv={class:"card"},rv={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},dv={class:"text-lg font-semibold text-gray-900 dark:text-white"},cv={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},uv={class:"space-y-5 p-6"},_v={class:"flex items-center justify-between"},mv={class:"font-medium text-gray-900 dark:text-white"},pv={class:"text-sm text-gray-500 dark:text-gray-400"},gv={key:0,class:"border-t border-gray-100 pt-4 dark:border-dark-700"},yv={class:"grid grid-cols-1 gap-6"},bv={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},xv=["placeholder"],hv={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},fv={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},kv=["placeholder"],vv={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},wv={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Cv=["placeholder"],Vv={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Uv={class:"border-t border-gray-100 pt-4 dark:border-dark-700"},Sv={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},$v={class:"mb-3 text-xs text-gray-500 dark:text-gray-400"},Pv={class:"space-y-2"},Ev={class:"flex cursor-pointer items-center gap-3"},Tv={class:"text-sm text-gray-700 dark:text-gray-300"},Av={class:"flex cursor-pointer items-center gap-3"},Mv={class:"text-sm text-gray-700 dark:text-gray-300"},Fv={key:0,class:"flex items-center justify-between pt-4 border-t border-gray-100 dark:border-dark-700"},Lv={class:"font-medium text-gray-900 dark:text-white"},Hv={class:"text-sm text-gray-500 dark:text-gray-400"},Iv={key:1,class:"pt-4 border-t border-gray-100 dark:border-dark-700 space-y-2"},Rv={class:"flex items-center justify-between"},Bv={class:"font-medium text-gray-900 dark:text-white"},jv={class:"text-sm text-gray-500 dark:text-gray-400"},Dv={key:0,class:"space-y-2"},Ov={class:"flex items-center gap-2"},zv={class:"text-sm text-gray-600 dark:text-gray-400 whitespace-nowrap min-w-[5rem]"},qv={class:"flex items-center gap-2"},Nv={class:"text-sm text-gray-600 dark:text-gray-400 whitespace-nowrap min-w-[5rem]"},Kv=["placeholder"],Wv={key:1,class:"text-xs text-gray-400 dark:text-gray-500"},Gv={key:2,class:"pt-4 border-t border-gray-100 dark:border-dark-700 space-y-2"},Qv={class:"flex items-center justify-between"},Yv={class:"font-medium text-gray-900 dark:text-white"},Jv={class:"text-sm text-gray-500 dark:text-gray-400"}
2,Xv={class:"text-xs text-amber-600 dark:text-amber-400 mt-1"},Zv={key:0,class:"space-y-2"},e2={class:"flex items-center gap-2"},t2={class:"text-sm text-gray-600 dark:text-gray-400 whitespace-nowrap min-w-[5rem]"},a2={class:"flex items-center gap-2"},s2={class:"text-sm text-gray-600 dark:text-gray-400 whitespace-nowrap min-w-[5rem]"},n2=["placeholder"],i2={key:1,class:"text-xs text-gray-400 dark:text-gray-500"},o2={key:3,class:"pt-4 border-t border-gray-100 dark:border-dark-700 space-y-2"},l2={class:"flex items-center justify-between"},r2={class:"font-medium text-gray-900 dark:text-white"},d2={class:"text-sm text-gray-500 dark:text-gray-400"},c2={class:"text-xs text-amber-600 dark:text-amber-400 mt-1"},u2={key:0,class:"space-y-2"},_2={class:"flex items-center gap-2"},m2={class:"text-sm text-gray-600 dark:text-gray-400 whitespace-nowrap min-w-[5rem]"},p2={class:"flex items-center gap-2"},g2={class:"text-sm text-gray-600 dark:text-gray-400 whitespace-nowrap min-w-[5rem]"},y2=["placeholder"],b2={key:1,class:"text-xs text-gray-400 dark:text-gray-500"},x2={class:"card"},h2={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},f2={class:"text-lg font-semibold text-gray-900 dark:text-white"},k2={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},v2={class:"space-y-5 p-6"},w2={class:"flex items-center justify-between"},C2={class:"font-medium text-gray-900 dark:text-white"},V2={class:"text-sm text-gray-500 dark:text-gray-400"},U2={key:0,class:"space-y-6 border-t border-gray-100 pt-4 dark:border-dark-700"},S2={class:"grid grid-cols-1 gap-6 lg:grid-cols-3"},$2={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},P2=["placeholder"],E2={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},T2=["placeholder"],A2={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},M2=["placeholder"],F2={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},L2={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},H2={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},I2=["placeholder"],R2={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},B2=["placeholder"],j2={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},D2=["placeholder"],O2={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},z2=["placeholder"],q2={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},N2=["placeholder"],K2={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},W2=["placeholder"],G2={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},Q2={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Y2=["placeholder"],J2={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},X2={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Z2=["placeholder"],ew={class:"mt-2 flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-3"},tw={key:0,class:"select-all break-all rounded bg-gray-50 px-2 py-1 font-mono text-xs text-gray-600 dark:bg-dark-800 dark:text-gray-300"},aw={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},sw={class:"lg:col-span-2"},nw={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},iw=["placeholder"],ow={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},lw={class:"grid grid-cols-1 gap-6 lg:grid-cols-3"},rw={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},dw={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},cw={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},uw=["placeholder"],_w={class:"grid grid-cols-1 gap-6 lg:grid-cols-3"},mw={class:"flex items-center justify-between rounded border border-gray-200 px-4 py-3 dark:border-dark-700"},pw={class:"font-medium text-gray-900 dark:text-white"},gw={class:"flex items-center justify-between rounded border border-gray-200 px-4 py-3 dark:border-dark-700"},yw={class:"font-medium text-gray-900 dark:text-white"},bw={class:"flex items-center justify-between rounded border border-gray-200 px-4 py-3 dark:border-dark-700"},xw={class:"font-medium text-gray-900 dark:text-white"},hw={class:"grid grid-cols-1 gap-6 lg:grid-cols-3"},fw={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},kw=["placeholder"],vw={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},ww=["placeholder"],Cw={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Vw=["placeholder"],Uw={class:"space-y-6"},Sw={class:"card"},$w={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Pw={class:"text-lg font-semibold text-gray-900 dark:text-white"},Ew={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Tw={class:"space-y-6 p-6"},Aw={class:"grid grid-cols-1 gap-6 md:grid-cols-2"},Mw={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Fw={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Lw={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Hw={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Iw={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Rw={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Bw={class:"border-t border-gray-100 pt-4 dark:border-dark-700"},jw={class:"mb-3 flex items-center justify-between"},Dw={class:"font-medium text-gray-900 dark:text-white"},Ow={class:"text-sm text-gray-500 dark:text-gray-400"},zw=["disabled"],qw={key:0,class:"rounded border border-dashed border-gray-300 px-4 py-3 text-sm text-gray-500 dark:border-dark-600 dark:text-gray-400"},Nw={key:1,class:"space-y-3"},Kw={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Ww={key:1,class:"text-gray-400"},Gw={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Qw=["onUpdate:modelValue"],Yw={class:"flex items-end"},Jw=["onClick"],Xw={class:"border-t border-gray-100 pt-4 dark:border-dark-700"},Zw={class:"mb-3"},e4={class:"font-medium text-gray-900 dark:text-white"},t4={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"}
2,a4={class:"mt-0.5 text-xs text-amber-600 dark:text-amber-400"},s4={class:"overflow-x-auto"},n4={class:"min-w-full text-sm"},i4={class:"text-left text-xs text-gray-500 dark:text-gray-400"},o4={class:"pb-2 pr-4 font-medium"},l4={class:"pb-2 pr-4 font-medium"},r4={class:"pb-2 pr-4 font-medium"},d4={class:"pb-2 font-medium"},c4={class:"space-y-2"},u4={class:"pr-4 py-1"},_4={class:"font-mono text-xs text-gray-700 dark:text-gray-300"},m4={class:"pr-4 py-1"},p4=["onUpdate:modelValue","placeholder"],g4={class:"pr-4 py-1"},y4=["onUpdate:modelValue","placeholder"],b4={class:"py-1"},x4=["onUpdate:modelValue","placeholder"],h4={class:"card"},f4={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},k4={class:"text-lg font-semibold text-gray-900 dark:text-white"},v4={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},w4={class:"space-y-6 p-6"},C4={class:"flex items-center justify-between rounded border border-gray-200 px-4 py-3 dark:border-dark-700"},V4={class:"font-medium text-gray-900 dark:text-white"},U4={class:"text-sm text-gray-500 dark:text-gray-400"},S4={class:"space-y-4"},$4={class:"flex items-center justify-between gap-4"},P4={class:"font-medium text-gray-900 dark:text-white"},E4={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},T4=["data-testid"],A4={class:"text-sm text-gray-500 dark:text-gray-400"},M4={class:"grid grid-cols-1 gap-4 md:grid-cols-2"},F4={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},L4=["onUpdate:modelValue"],H4={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},I4=["onUpdate:modelValue"],R4={class:"flex items-center justify-between rounded border border-gray-200 px-4 py-3 dark:border-dark-700"},B4={class:"font-medium text-gray-900 dark:text-white"},j4={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},D4={class:"mb-3 flex items-center justify-between"},O4={class:"font-medium text-gray-900 dark:text-white"},z4={class:"text-sm text-gray-500 dark:text-gray-400"},q4=["onClick","disabled"],N4={key:0,class:"rounded border border-dashed border-gray-300 px-4 py-3 text-sm text-gray-500 dark:border-dark-600 dark:text-gray-400"},K4={key:1,class:"space-y-3"},W4={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},G4={key:1,class:"text-gray-400"},Q4={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Y4=["onUpdate:modelValue"],J4={class:"flex items-end"},X4=["onClick"],Z4={class:"border-t border-gray-100 pt-4 dark:border-dark-700"},e5={class:"mb-3"},t5={class:"font-medium text-gray-900 dark:text-white"},a5={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},s5={class:"overflow-x-auto"},n5={class:"min-w-full text-sm"},i5={class:"text-left text-xs text-gray-500 dark:text-gray-400"},o5={class:"pb-2 pr-4 font-medium"},l5={class:"pb-2 pr-4 font-medium"},r5={class:"pb-2 pr-4 font-medium"},d5={class:"pb-2 font-medium"},c5={class:"pr-4 py-1"},u5={class:"font-mono text-xs text-gray-700 dark:text-gray-300"},_5={class:"pr-4 py-1"},m5=["onUpdate:modelValue","placeholder"],p5={class:"pr-4 py-1"},g5=["onUpdate:modelValue","placeholder"],y5={class:"py-1"},b5=["onUpdate:modelValue","placeholder"],x5={class:"space-y-6"},h5={class:"card"},f5={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},k5={class:"text-lg font-semibold text-gray-900 dark:text-white"},v5={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},w5={class:"p-6"},C5={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},V5=["placeholder"],U5={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},S5={class:"mt-4"},$5={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},P5=["placeholder"],E5={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},T5={class:"card"},A5={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},M5={class:"text-lg font-semibold text-gray-900 dark:text-white"},F5={class:"p-6 space-y-4"},L5={class:"flex items-center justify-between gap-4"},H5={class:"min-w-0"},I5={class:"text-base font-semibold text-gray-900 dark:text-white"},R5={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"}
2,B5={class:"flex items-center justify-between gap-4 rounded-lg border border-gray-200 p-4 dark:border-dark-600"},j5={class:"min-w-0"},D5={class:"text-sm font-semibold text-gray-900 dark:text-white"},O5={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},z5={class:"rounded-lg border border-gray-200 p-4 dark:border-dark-600"},q5={class:"text-sm font-semibold text-gray-900 dark:text-white"},N5={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},K5={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},W5={class:"mt-3 rounded-lg border border-gray-200 p-3 dark:border-dark-600"},G5={class:"px-1 text-sm font-semibold"},Q5={value:"all"},Y5={value:"selected"},J5={class:"mt-3 block text-sm",for:"codex-ticket-account-policy"},X5={value:"schedulable_only"},Z5={value:"prioritize_schedulable"},e3={key:0,class:"mt-3 space-y-2"},t3={key:0,class:"text-sm text-amber-600"},a3=["id","value"],s3={key:1,class:"text-sm text-amber-600"},n3={class:"mt-2 text-xs text-gray-500"},i3={class:"mt-3 block text-sm",for:"codex-ticket-strategy"},o3={value:"standby"},l3={value:"fixed"},r3={class:"mt-3 flex items-center gap-2 text-sm"},d3={class:"mt-1 text-xs text-gray-500"},c3={class:"mt-1 text-xs text-gray-500"},u3={class:"mt-3 grid gap-3 sm:grid-cols-2"},_3={class:"flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300"},m3=["checked"],p3={class:"flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300"},g3=["checked"],y3={class:"text-base font-semibold text-gray-900 dark:text-white"},b3={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},x3=["aria-label"],h3=["checked"],f3=["checked"],k3=["checked"],v3={key:0,class:"mt-3 rounded-md border border-primary-200 bg-primary-50/60 px-3 py-2.5 dark:border-primary-800 dark:bg-primary-900/20"},w3={class:"flex flex-wrap items-center gap-2 text-sm text-primary-800 dark:text-primary-200"},C3={key:1,"data-testid":"codex-ticket-proxy-ip-pool-hint",class:"mt-3 rounded-md border border-primary-200 bg-primary-50/60 px-3 py-2.5 text-sm text-primary-800 dark:border-primary-800 dark:bg-primary-900/20 dark:text-primary-200"},V3=["placeholder"],U3={key:3,class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},S3={class:"text-base font-semibold text-gray-900 dark:text-white"},$3={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},P3={class:"grid gap-4 sm:grid-cols-2"},E3={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},T3=["placeholder"],A3={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},M3=["placeholder"],F3={class:"text-xs text-gray-500 dark:text-gray-400"},L3={class:"block text-sm font-medium text-gray-700 dark:text-gray-300"},H3={class:"mb-2 mt-1 text-xs text-gray-500 dark:text-gray-400"},I3=["onUpdate:modelValue"],R3={value:"header_exact"},B3={value:"header_prefix"},j3={value:"body_path"},D3=["onUpdate:modelValue","placeholder"],O3={class:"flex shrink-0 items-center gap-1 text-xs text-gray-600 dark:text-gray-400"},z3=["onUpdate:modelValue"],q3=["onClick"],N3={key:0,class:"mt-2 text-xs text-amber-600 dark:text-amber-500"},K3={class:"flex items-center justify-between"},W3={class:"pr-4"},G3={class:"block text-sm font-medium text-gray-700 dark:text-gray-300"},Q3={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Y3={class:"block text-sm font-medium text-gray-700 dark:text-gray-300"},J3={class:"mb-2 mt-1 text-xs text-gray-500 dark:text-gray-400"},X3=["onUpdate:modelValue","placeholder"],Z3=["onUpdate:modelValue","placeholder"],e6=["onClick"],t6={class:"block text-sm font-medium text-gray-700 dark:text-gray-300"},a6={class:"mb-2 mt-1 text-xs text-gray-500 dark:text-gray-400"},s6=["onUpdate:modelValue","placeholder"],n6=["onUpdate:modelValue","placeholder"],i6=["title"],o6=["onUpdate:modelValue"],l6=["onClick"],r6={class:"card","data-testid":"upstream-billing-probe-settings"},d6={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},c6={class:"text-lg font-semibold text-gray-900 dark:text-white"},u6={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},_6={class:"space-y-5 p-6"},m6={key:0,class:"flex items-center gap-2 text-gray-500"},p6={class:"flex items-center justify-between gap-4"},g6={class:"font-medium text-gray-900 dark:text-white"},y6={class:"text-sm text-gray-500 dark:text-gray-400"},b6={key:0,class:"border-t border-gray-100 pt-4 dark:border-dark-700"},x6={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300",for:"upstream-billing-probe-interval"},h6=["onKeydown"],f6={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},k6={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},v6=["disabled"],w6={class:"card","data-testid":"ollama-cloud-usage-global-settings"},C6={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},V6={class:"text-lg font-semibold text-gray-900 dark:text-white"},U6={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},S6={class:"space-y-5 p-6"},$6={key:0,class:"flex items-center gap-2 text-gray-500"},P6={class:"flex items-center justify-between gap-4"},E6={class:"font-medium text-gray-900 dark:text-white"},T6={class:"text-sm text-gray-500 dark:text-gray-400"},A6={key:0,class:"space-y-4 border-t border-gray-100 pt-4 dark:border-dark-700"},M6={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300",for:"ollama-cloud-usage-debounce"},F6=["onKeydown"],L6={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},H6={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300",for:"ollama-cloud-usage-interval"},I6=["onKeydown"],R6={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},B6={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},j6=["disabled"],D6={class:"card","data-testid":"opencode-go-usage-global-settings"},O6={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},z6={class:"text-lg font-semibold text-gray-900 dark:text-white"},q6={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},N6={class:"space-y-5 p-6"},K6={key:0,class:"flex items-center gap-2 text-gray-500"},W6={class:"flex items-center justify-between gap-4"},G6={class:"font-medium text-gray-900 dark:text-white"},Q6={class:"text-sm text-gray-500 dark:text-gray-400"},Y6={key:0,class:"space-y-4 border-t border-gray-100 pt-4 dark:border-dark-700"},J6={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300",for:"opencode-go-usage-debounce"},X6=["onKeydown"],Z6={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},e8={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300",for:"opencode-go-usage-interval"},t8=["onKeydown"],a8={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},s8={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},n8=["disabled"],i8={class:"card"},o8={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},l8={class:"text-lg font-semibold text-gray-900 dark:text-white"},r8={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},d8={class:"space-y-5 p-6"},c8={class:"flex items-center justify-between"},u8={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},_8={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},m8={class:"border-t border-gray-100 pt-4 dark:border-dark-700"},p8={class:"mb-3"},g8={class:"font-medium text-gray-900 dark:text-white"},y8={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},b8={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"}
2,x8={class:"mt-0.5 text-xs text-amber-600 dark:text-amber-400"},h8={class:"grid grid-cols-1 gap-4 sm:grid-cols-2 xl:grid-cols-3"},f8={class:"flex items-start justify-between gap-3"},k8={class:"font-mono text-sm font-medium text-gray-900 dark:text-white"},v8={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},w8=["onUpdate:modelValue","data-testid"],C8={key:0,class:"flex items-center justify-between border-t border-gray-100 pt-5 dark:border-dark-700"},V8={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},U8={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},S8={key:1,class:"flex flex-col items-stretch gap-3 border-t border-gray-100 pt-5 sm:flex-row sm:items-start sm:justify-between sm:gap-6 dark:border-dark-700"},$8={class:"min-w-0"},P8={class:"text-sm font-medium text-gray-700 dark:text-gray-300",for:"openai-oauth-scheduling-rate-multiplier"},E8={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},T8={class:"relative w-full shrink-0 sm:w-32"},A8={class:"flex items-center justify-between border-t border-gray-100 pt-5 dark:border-dark-700"},M8={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},F8={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},L8={key:2,class:"flex items-center justify-between border-t border-gray-100 pt-5 dark:border-dark-700"},H8={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},I8={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},R8={key:3,class:"flex items-center justify-between border-t border-gray-100 pt-5 dark:border-dark-700"},B8={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},j8={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},D8={key:4,class:"flex flex-col items-stretch gap-3 border-t border-gray-100 pt-5 sm:flex-row sm:items-start sm:justify-between sm:gap-6 dark:border-dark-700"},O8={class:"min-w-0"},z8={class:"text-sm font-medium text-gray-700 dark:text-gray-300",for:"openai-oauth-scheduling-rate-multiplier"},q8={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},N8={class:"relative w-full shrink-0 sm:w-32"},K8={key:5,class:"border-t border-gray-100 pt-5 dark:border-dark-700"},W8={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},G8={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Q8={class:"mt-4 grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-5"},Y8={class:"text-xs font-medium text-gray-600 dark:text-gray-400"},J8=["onUpdate:modelValue","placeholder"],X8={class:"card"},Z8={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},e7={class:"text-lg font-semibold text-gray-900 dark:text-white"},t7={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},a7={class:"space-y-5 p-6"},s7={class:"grid gap-5 border-b border-gray-100 pb-5 dark:border-dark-700 md:grid-cols-[minmax(0,1fr)_auto] md:items-end"},n7={for:"grok-default-text-model",class:"text-sm font-medium text-gray-700 dark:text-gray-300"},i7={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},o7={class:"flex items-center justify-between gap-5 md:min-w-72"},l7={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},r7={class:"mt-0.5 max-w-sm text-xs text-gray-500 dark:text-gray-400"},d7={class:"md:col-span-2"},c7={for:"grok-default-base-url-mode",class:"text-sm font-medium text-gray-700 dark:text-gray-300"},u7={value:"cli"},_7={value:"api"},m7={value:"us-east-1"},p7={value:"us-west-2"},g7={value:"eu-west-1"},y7={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},b7={class:"border-b border-gray-100 pb-5 dark:border-dark-700 md:col-span-2"},x7={for:"openai-ttft-mode",class:"text-sm font-medium text-gray-700 dark:text-gray-300"},h7={value:"semantic"},f7={value:"visible"},k7={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},v7={class:"flex items-center justify-between"},w7={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},C7={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},V7={class:"flex items-center justify-between"},U7={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},S7={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},$7={class:"flex items-center justify-between"},P7={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},E7={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},T7={class:"flex items-center justify-between"},A7={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},M7={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},F7={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},L7={class:"space-y-3"},H7={class:"min-w-0"},I7={class:"text-sm font-medium text-gray-900 dark:text-white"},R7={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},B7={class:"flex items-center gap-2"},j7=["title","aria-label","onClick"],D7=["disabled","onClick"],O7=["disabled","onClick"],z7=["onClick"],q7={class:"grid gap-3 md:grid-cols-2"},N7={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-300"},K7={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-300"},W7={class:"mt-3"},G7={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-300"},Q7=["onUpdate:modelValue","onInput"],Y7={class:"mt-3 grid gap-3 md:grid-cols-[minmax(0,1fr)_160px]"},J7={class:"flex items-center justify-between gap-4"},X7={class:"text-xs font-medium text-gray-600 dark:text-gray-300"},Z7={key:0},e9={class:"mt-3 flex flex-wrap gap-2"},t9={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},a9={class:"flex items-center justify-between"},s9={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},n9={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},i9={class:"flex items-center justify-between"},o9={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},l9={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},r9={class:"flex items-center justify-between"},d9={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},c9={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},u9={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},_9=["placeholder"],m9={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},p9={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},g9=["placeholder"],y9={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},b9={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},x9=["placeholder"],h9={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},f9={class:"flex items-center justify-between"},k9={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},v9={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},w9={key:0,class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},C9={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},V9={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},U9={class:"flex items-center justify-between"},S9={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},$9={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},P9={key:0,class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},E9={class:"card"},T9={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},A9={class:"text-lg font-semibold text-gray-900 dark:text-white"},M9={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},F9={class:"space-y-5 p-6"},L9={class:"flex items-center justify-between"},H9={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},I9={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},R9={key:0,class:"space-y-4"},B9={class:"flex items-center justify-between"},j9={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},D9={key:0,class:"rounded-lg border border-dashed border-gray-300 p-4 text-center text-sm text-gray-400 dark:border-dark-600"},O9=["onClick"],z9={class:"flex items-center gap-3"},q9={class:"text-xs text-gray-400"},N9={key:0,class:"text-xs text-green-500"},K9=["onClick"],W9={key:0,class:"space-y-3 border-t border-gray-100 px-4 pb-4 pt-3 dark:border-dark-700"},G9={class:"text-xs text-gray-500"},Q9={class:"relative"},Y9=["onUpdate:modelValue","type","placeholder"],J9={key:0,class:"absolute inset-y-0 right-0 flex items-center pr-1.5"},X9=["title","onClick"],Z9={key:0,class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},eC={key:1,class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},tC=["title","disabled","onClick"],aC={class:"grid grid-cols-2 gap-3"},sC={class:"text-xs text-gray-500"},nC=["onUpdate:modelValue"],iC={class:"mt-0.5 text-xs text-gray-400"},oC={class:"text-xs text-gray-500"},lC=["value","onInput"],rC={class:"mt-0.5 text-xs text-gray-400"},dC={class:"flex items-center gap-2"},cC={class:"text-xs text-gray-500"},uC={key:0,class:"flex-1 rounded-full bg-gray-200 dark:bg-dark-600",style:{height:"6px"}},_C={key:1,class:"flex-1"},mC={class:"text-xs text-gray-500"},pC=["onClick"],gC={class:"flex items-end gap-3"},yC={class:"flex-1"},bC={class:"text-xs text-gray-500"},xC={class:"mx-4 w-full max-w-lg rounded-xl bg-white p-6 shadow-xl dark:bg-dark-800"},hC={class:"mb-4 text-lg font-semibold text-gray-900 dark:text-white"},fC={class:"flex items-center gap-2"},kC=["placeholder"],vC=["disabled"],wC={key:0,class:"mt-4 max-h-80 overflow-y-auto rounded-lg bg-gray-50 p-4 dark:bg-dark-700"},CC={class:"mb-2 text-sm font-medium text-gray-700 dark:text-gray-300"},VC={key:0,class:"text-sm text-gray-400"},UC=["href"],SC={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},$C={class:"mt-4 flex justify-end"},PC={class:"card"},EC={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},TC={class:"text-lg font-semibold text-gray-900 dark:text-white"},AC={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},MC={class:"space-y-4 p-6"},FC={class:"flex items-center justify-between"},LC={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},HC={class:"text-xs text-gray-500 dark:text-gray-400"},IC={class:"toggle"},RC={class:"flex items-center justify-between"},BC={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},jC={class:"text-xs text-gray-500 dark:text-gray-400"},DC={class:"toggle"},OC={class:"space-y-6"},zC={class:"card"},qC={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},NC={class:"text-lg font-semibold text-gray-900 dark:text-white"},KC={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},WC={class:"space-y-6 p-6"},GC={class:"flex items-center justify-between rounded-lg border border-amber-200 bg-amber-50 p-4 dark:border-amber-800 dark:bg-amber-900/20"},QC={class:"text-sm font-medium text-gray-900 dark:text-white"},YC={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},JC={class:"grid grid-cols-1 gap-6 md:grid-cols-2"},XC={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},ZC=["placeholder"],eV={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},tV={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},aV=["placeholder"],sV={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},nV={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},iV=["placeholder"],oV={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},lV={class:"border-t border-gray-100 pt-4 dark:border-dark-700"},rV={class:"text-sm font-medium text-gray-900 dark:text-white"},dV={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},cV={class:"mt-4 grid grid-cols-1 gap-6 md:grid-cols-2"},uV={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},_V={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},mV={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},pV=["placeholder"],gV={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},yV={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},bV={class:"mb-3 text-xs text-gray-500 dark:text-gray-400"},xV={class:"space-y-3"},hV={class:"mb-3 flex items-center justify-between"},fV={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},kV=["onClick"],vV={class:"grid grid-cols-1 gap-3 sm:grid-cols-2"},wV={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},CV=["onUpdate:modelValue","placeholder"],VV={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},UV=["onUpdate:modelValue","placeholder"],SV={class:"sm:col-span-2"},$V={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},PV=["onUpdate:modelValue","placeholder"],EV={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},TV=["placeholder"],AV={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},MV={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},FV=["placeholder"],LV={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},HV={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},IV={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},RV=["placeholder"],BV={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"}
2,jV={class:"mt-2 text-xs text-amber-600 dark:text-amber-400"},DV={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},OV={class:"font-medium text-gray-900 dark:text-white"},zV={class:"text-sm text-gray-500 dark:text-gray-400"},qV={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},NV={class:"font-medium text-gray-900 dark:text-white"},KV={class:"text-sm text-gray-500 dark:text-gray-400"},WV={class:"card"},GV={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},QV={class:"text-lg font-semibold text-gray-900 dark:text-white"},YV={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},JV={class:"space-y-4 p-6"},XV={class:"mb-3 flex items-center justify-between"},ZV={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},eU={class:"flex items-center gap-2"},tU=["title","onClick"],aU=["title","onClick"],sU=["title","onClick"],nU={class:"grid grid-cols-1 gap-3 sm:grid-cols-2"},iU={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},oU=["onUpdate:modelValue","placeholder"],lU={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},rU=["onUpdate:modelValue"],dU={value:"user"},cU={value:"admin"},uU={class:"sm:col-span-2"},_U={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},mU=["onUpdate:modelValue","placeholder"],pU={class:"flex items-center gap-2 sm:col-span-2"},gU=["onUpdate:modelValue"],yU={class:"text-sm text-gray-700 dark:text-gray-300"},bU={class:"sm:col-span-2"},xU={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},hU={class:"mt-3"},fU={class:"mb-2 text-xs font-medium text-gray-600 dark:text-gray-400"},kU={class:"grid grid-cols-2 gap-2 sm:grid-cols-4 lg:grid-cols-6"},vU=["data-preset","aria-pressed","title","onClick"],wU=["innerHTML"],CU={class:"min-w-0 truncate"},VU={class:"card"},UU={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},SU={class:"text-lg font-semibold text-gray-900 dark:text-white"},$U={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},PU={class:"space-y-4 p-6"},EU={class:"mb-3 flex items-center justify-between"},TU={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},AU=["title","onClick"],MU={class:"grid grid-cols-1 gap-3 sm:grid-cols-2"},FU={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},LU=["onUpdate:modelValue"],HU={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},IU=["onUpdate:modelValue"],RU={value:"same_tab"},BU={value:"new_tab"},jU={class:"sm:col-span-2"},DU={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},OU=["onUpdate:modelValue"],zU={class:"sm:col-span-2"},qU={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},NU={class:"mt-3 grid grid-cols-2 gap-2 sm:grid-cols-4 lg:grid-cols-6"},KU=["data-preset","aria-pressed","title","onClick"],WU=["innerHTML"],GU={class:"min-w-0 truncate"},QU={class:"space-y-6"},YU={class:"card"},JU={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},XU={class:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between"},ZU={class:"text-lg font-semibold text-gray-900 dark:text-white"},eS={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},tS={class:"flex items-center gap-3"},aS={class:"text-sm text-gray-600 dark:text-gray-300"},sS={class:"space-y-6 p-6"},nS={class:"grid grid-cols-1 gap-5 lg:grid-cols-[minmax(0,1fr)_220px]"},iS={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},oS={class:"grid grid-cols-2 gap-2 rounded-lg bg-gray-100 p-1 dark:bg-dark-700"},lS={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},rS={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},dS={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},cS={class:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between"},uS={class:"text-sm font-medium text-gray-900 dark:text-white"},_S={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},mS={class:"mt-4 space-y-3"},pS={class:"mb-3 flex items-center justify-between gap-3"},gS={class:"flex min-w-0 items-center gap-3"},yS={class:"flex h-9 w-9 flex-shrink-0 items-center justify-center rounded-md bg-gray-100 text-gray-700 dark:bg-dark-700 dark:text-dark-200"},bS={class:"min-w-0"},xS={class:"truncate text-sm font-semibold text-gray-900 dark:text-white"},hS={class:"truncate text-xs text-gray-500 dark:text-gray-400"},fS=["disabled","onClick"],kS={class:"grid grid-cols-1 gap-3 lg:grid-cols-2"},vS={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},wS=["onUpdate:modelValue","placeholder"],CS={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},VS={class:"flex overflow-hidden rounded-lg border border-gray-300 bg-white focus-within:border-primary-500 focus-within:ring-1 focus-within:ring-primary-500 dark:border-dark-600 dark:bg-dark-900"},US=["onUpdate:modelValue"],SS={class:"mt-3"},$S={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"}
2,PS=["onUpdate:modelValue","placeholder"],ES={class:"space-y-6"},TS={class:"card","data-testid":"request-capture-settings"},AS={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},MS={class:"text-lg font-semibold text-gray-900 dark:text-white"},FS={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},LS={class:"space-y-5 p-6"},HS={class:"flex items-center justify-between gap-4"},IS={for:"request-capture-enabled",class:"input-label"},RS={class:"grid gap-5 md:grid-cols-2"},BS={class:"space-y-1"},jS={class:"input-label"},DS={class:"space-y-1"},OS={class:"input-label"},zS={class:"text-xs text-gray-500 dark:text-gray-400"},qS={class:"text-xs text-amber-700 dark:text-amber-300"},NS={class:"card","data-testid":"excel-bps-image-settings"},KS={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},WS={class:"text-lg font-semibold text-gray-900 dark:text-white"},GS={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},QS={class:"space-y-5 p-6"},YS={class:"flex items-center justify-between gap-4"},JS={for:"excel-bps-image-enabled",class:"text-sm font-medium text-gray-700 dark:text-gray-300"},XS={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},ZS={key:0},e$={for:"excel-bps-image-mode",class:"input-label"},t$={value:"relay"},a$={value:"native"},s$={key:0,class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},n$={key:1,class:"mt-5"},i$={for:"excel-bps-image-base-url",class:"input-label"},o$={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},l$={class:"mt-5 space-y-3","data-testid":"bps-image-policy"},r$={class:"input-label",for:"bps-image-limit-policy"},d$={value:"off"},c$={value:"auto_compact"},u$={value:"warn"},_$={class:"text-xs text-gray-500"},m$={key:0,class:"grid gap-4 sm:grid-cols-2"},p$={class:"space-y-1"},g$={class:"input-label"},y$=["max"],b$={class:"space-y-1"},x$={class:"input-label"},h$=["max"],f$={class:"text-xs text-gray-500 sm:col-span-2"},k$={class:"mt-6 input-label"},v$={class:"mt-5 grid gap-4 sm:grid-cols-4"},w$={class:"space-y-1"},C$={for:"excel-bps-image-body-limit",class:"input-label"},V$=["max"],U$={class:"space-y-1"},S$={for:"excel-bps-image-budget",class:"input-label"},$$=["min","max"],P$={class:"space-y-1"},E$={for:"excel-bps-image-max-requests",class:"input-label"},T$=["max"],A$={class:"space-y-1"},M$={for:"excel-bps-image-max-images",class:"input-label"},F$=["max"],L$={class:"text-xs text-gray-500 dark:text-gray-400"},H$={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},I$={key:2,class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},R$={class:"mt-6 input-label"},B$={class:"mt-3 grid gap-4 sm:grid-cols-3"},j$={class:"space-y-1"},D$={for:"excel-bps-image-max-image-mib",class:"input-label"},O$=["max"],z$={class:"text-xs text-gray-500 dark:text-gray-400"},q$={class:"space-y-1"},N$={for:"excel-bps-image-max-total-mib",class:"input-label"},K$=["max"],W$={class:"text-xs text-gray-500 dark:text-gray-400"},G$={class:"space-y-1"},Q$={for:"excel-bps-image-storage-mib",class:"input-label"},Y$=["max"],J$={class:"text-xs text-gray-500 dark:text-gray-400"},X$={class:"space-y-1"},Z$={for:"excel-bps-image-storage-entries",class:"input-label"},eP=["max"],tP={class:"text-xs text-gray-500 dark:text-gray-400"},aP={class:"space-y-1"},sP={for:"excel-bps-image-ttl-minutes",class:"input-label"},nP=["max"],iP={class:"text-xs text-gray-500 dark:text-gray-400"},oP={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},lP={class:"card"},rP={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},dP={class:"text-lg font-semibold text-gray-900 dark:text-white"},cP={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},uP={class:"mt-1.5 text-xs"},_P={class:"space-y-5 p-6"},mP={class:"flex items-center justify-between"},pP={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},gP={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},yP={key:0,class:"space-y-5"},bP={class:"input-label"},xP={class:"mt-1.5 inline-flex w-full max-w-md rounded-lg border border-gray-200 bg-gray-50 p-1 dark:border-dark-600 dark:bg-dark-900/40"},hP={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},fP={class:"mt-1 text-xs text-gray-400 dark:text-gray-500"},kP={key:0},vP={class:"input-label"},wP={class:"mt-1 text-xs text-gray-400"},CP={key:1,class:"space-y-4"},VP={class:"flex items-start justify-between gap-4"},UP={class:"min-w-0"},SP={class:"text-sm font-medium text-gray-900 dark:text-white"},$P={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},PP={class:"flex items-start justify-between gap-4"},EP={class:"min-w-0"},TP={class:"text-sm font-medium text-gray-900 dark:text-white"},AP={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},MP={key:2,class:"flex items-start justify-between gap-4"},FP={class:"min-w-0"},LP={class:"text-sm font-medium text-gray-900 dark:text-white"},HP={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},IP={class:"card"},RP={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},BP={class:"text-lg font-semibold text-gray-900 dark:text-white"},jP={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},DP={class:"mt-1.5 text-xs"},OP={class:"space-y-5 p-6"},zP={class:"flex items-center justify-between"},qP={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},NP={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},KP={class:"card","data-testid":"pelican-showcase-moved"},WP={class:"px-6 py-4"},GP={class:"text-lg font-semibold text-gray-900 dark:text-white"},QP={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},YP={class:"card"},JP={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},XP={class:"text-lg font-semibold text-gray-900 dark:text-white"},ZP={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},eE={class:"space-y-5 p-6"},tE={class:"flex items-center justify-between"},aE={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},sE={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},nE={key:0,class:"flex items-center justify-between"},iE={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},oE={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},lE={key:1},rE={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},dE={class:"mb-2 mt-0.5 text-xs text-gray-500 dark:text-gray-400"},cE={class:"card"},uE={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},_E={class:"text-lg font-semibold text-gray-900 dark:text-white"},mE={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},pE={class:"space-y-5 p-6"},gE={class:"flex items-center justify-between gap-4"},yE={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},bE={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},xE={class:"flex items-center justify-between gap-4"},hE={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},fE={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},kE={class:"flex items-center justify-between gap-4"},vE={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},wE={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},CE={class:"flex items-center justify-between gap-4"},VE={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},UE={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},SE={class:"flex items-center justify-between"},$E={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},PE={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},EE={key:0},TE={class:"input-label"},AE={class:"input-label"},ME={class:"mt-1 text-xs text-gray-400"},FE={class:"card"},LE={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},HE={class:"text-lg font-semibold text-gray-900 dark:text-white"},IE={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},RE={class:"space-y-5 p-6"},BE={class:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between"},jE={class:"min-w-0"},DE={class:"text-sm font-medium text-gray-700 dark:text-gray-300"}
vendor: 13,142 bytes, line 2
2,OE={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},zE={class:"w-full shrink-0 sm:w-56"},qE={class:"card"},NE={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},KE={class:"text-lg font-semibold text-gray-900 dark:text-white"},WE={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},GE={class:"space-y-5 p-6"},QE={class:"flex items-center justify-between gap-4"},YE={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},JE={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},XE={class:"card"},ZE={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},eT={class:"text-lg font-semibold text-gray-900 dark:text-white"},tT={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},aT={class:"mt-1.5 text-xs"},sT={class:"space-y-5 p-6"},nT={class:"flex items-center justify-between"},iT={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},oT={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},lT={class:"input-label"},rT={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},dT={class:"flex items-center justify-between"},cT={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},uT={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},_T={key:0},mT={class:"input-label"},pT={key:1,class:"rounded-lg border border-amber-200 bg-amber-50 p-4 dark:border-amber-900/60 dark:bg-amber-950/30"},gT={class:"flex items-center justify-between gap-4"},yT={class:"text-sm font-medium text-amber-900 dark:text-amber-200"},bT={class:"mt-1 text-xs text-amber-800 dark:text-amber-300"},xT={class:"card"},hT={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},fT={class:"text-lg font-semibold text-gray-900 dark:text-white"},kT={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},vT={class:"space-y-5 p-6"},wT={class:"flex items-center justify-between"},CT={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},VT={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},UT={key:0,class:"space-y-6"},ST={class:"flex items-center justify-between"},$T={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},PT={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},ET={class:"input-label"},TT={class:"relative"},AT={class:"mt-1 text-xs text-gray-400"},MT={class:"input-label"},FT={class:"mt-1 text-xs text-gray-400"},LT={class:"input-label"},HT={class:"mt-1 text-xs text-gray-400"},IT={class:"input-label"},RT={class:"mt-1 text-xs text-gray-400"},BT={class:"border-t border-gray-100 pt-6 dark:border-dark-700"},jT={class:"mb-3 flex items-center justify-between"},DT={class:"text-sm font-semibold text-gray-900 dark:text-white"},OT={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},zT={class:"mb-3 flex items-center gap-2"},qT=["placeholder"],NT={class:"overflow-x-auto rounded-lg border border-gray-200 dark:border-dark-700"},KT={class:"min-w-full divide-y divide-gray-200 dark:divide-dark-700"},WT={class:"bg-gray-50 dark:bg-dark-800"},GT={class:"px-3 py-2 text-left"},QT=["checked"],YT={class:"px-3 py-2 text-left text-xs font-medium uppercase text-gray-500"},JT={class:"px-3 py-2 text-left text-xs font-medium uppercase text-gray-500"},XT={class:"px-3 py-2 text-left text-xs font-medium uppercase text-gray-500"},ZT={class:"px-3 py-2 text-left text-xs font-medium uppercase text-gray-500"},eA={class:"px-3 py-2 text-left text-xs font-medium uppercase text-gray-500"},tA={class:"divide-y divide-gray-200 bg-white dark:divide-dark-700 dark:bg-dark-900"},aA={key:0},sA={colspan:"6",class:"px-3 py-6 text-center text-sm text-gray-500"},nA={key:1},iA={colspan:"6",class:"px-3 py-6 text-center text-sm text-gray-500"},oA={class:"px-3 py-2"},lA=["checked","onChange"],rA={class:"px-3 py-2 text-sm text-gray-900 dark:text-white"},dA={class:"px-3 py-2 text-sm text-gray-600 dark:text-gray-300"},cA={class:"px-3 py-2 text-sm font-mono"},uA={key:0,class:"ml-1 inline-block rounded bg-primary-100 px-1.5 py-0.5 text-[10px] font-medium text-primary-700 dark:bg-primary-900/30 dark:text-primary-300"},_A={class:"px-3 py-2 text-sm"},mA={key:0},pA={key:1,class:"text-gray-400"},gA={class:"px-3 py-2 text-sm"},yA={class:"flex items-center gap-2"},bA=["onClick"],xA=["onClick"],hA={key:0,class:"mt-3 flex items-center justify-between text-sm"},fA={class:"text-gray-500"},kA={class:"flex items-center gap-2"},vA=["disabled"],wA={class:"text-gray-500"},CA=["disabled"],VA={class:"w-full max-w-md rounded-lg bg-white p-6 shadow-xl dark:bg-dark-900"},UA={class:"mb-4 text-lg font-semibold"},SA={class:"space-y-4"},$A={key:0},PA={class:"input-label"},EA={key:0,class:"flex items-center justify-between rounded-md border border-primary-200 bg-primary-50 px-3 py-2 dark:border-primary-700/50 dark:bg-primary-900/20"},TA={class:"text-sm"},AA={class:"font-medium text-gray-900 dark:text-white"},MA={class:"ml-1 text-xs text-gray-500"},FA=["title"],LA=["placeholder"],HA={key:0,class:"mt-1 max-h-40 overflow-y-auto rounded border border-gray-200 dark:border-dark-700"},IA=["onClick"],RA={class:"text-xs text-gray-500"},BA={key:1},jA={class:"input-label"},DA=["value"],OA={class:"input-label"},zA=["placeholder"],qA={class:"mt-1 text-xs text-gray-400"},NA={class:"input-label"},KA={class:"relative"},WA=["placeholder"],GA={class:"mt-1 text-xs text-gray-400"},QA={class:"mt-6 flex items-center justify-between gap-3"},YA={key:0,class:"text-xs text-gray-500 dark:text-gray-400"},JA={key:1},XA={class:"flex gap-2"},ZA=["disabled"],eM={class:"w-full max-w-md rounded-lg bg-white p-6 shadow-xl dark:bg-dark-900"},tM={class:"mb-4 text-lg font-semibold"},aM={class:"mb-4 text-sm text-gray-500"},sM={class:"relative"},nM=["placeholder"],iM={class:"mt-2 text-xs text-gray-400"},oM={class:"mt-6 flex justify-end gap-2"},lM=["disabled"],rM={class:"space-y-6"},dM={class:"card"},cM={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},uM={class:"text-lg font-semibold text-gray-900 dark:text-white"},_M={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},mM={class:"space-y-8 p-6"},pM={class:"space-y-5"},gM={class:"flex items-center justify-between"},yM={class:"font-semibold text-gray-900 dark:text-white"},bM={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},xM={key:0,class:"space-y-4 border-t border-gray-100 pt-4 dark:border-dark-700"},hM={class:"input-label"},fM={value:"low"},kM={value:"normal"},vM={value:"high"},wM={class:"input-label"},CM={class:"space-y-2"},VM=["onUpdate:modelValue"],UM=["title","onClick"],SM=["disabled"],$M={class:"input-label"},PM={class:"space-y-2"},EM=["onUpdate:modelValue"],TM=["title","onClick"],AM={class:"space-y-5 border-t border-gray-100 pt-6 dark:border-dark-700"},MM={class:"flex items-center justify-between"},FM={class:"font-semibold text-gray-900 dark:text-white"},LM={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},HM={key:0,class:"space-y-5"},IM={class:"grid grid-cols-1 gap-4 md:grid-cols-2"},RM={class:"input-label"},BM={class:"input-label"},jM={class:"input-label"},DM={class:"input-label"},OM={class:"space-y-2"},zM=["onUpdate:modelValue"],qM=["title","onClick"],NM=["disabled"],KM={class:"space-y-4 border-t border-gray-100 pt-4 dark:border-dark-700"},WM={class:"flex items-center justify-between"},GM={class:"font-medium text-gray-900 dark:text-white"},QM={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},YM={key:0,class:"space-y-4"},JM={class:"grid grid-cols-1 gap-4 md:grid-cols-2"},XM={class:"input-label"},ZM={class:"input-label"},eF={class:"input-label"},tF={class:"input-label"},aF={class:"flex items-center justify-between"},sF={class:"text-sm text-gray-700 dark:text-gray-300"},nF={class:"grid grid-cols-1 gap-4 border-t border-gray-100 pt-4 dark:border-dark-700 md:grid-cols-3"},iF={class:"input-label"},oF={class:"input-label"},lF={class:"input-label"},rF={class:"space-y-4 border-t border-gray-100 pt-6 dark:border-dark-700"},dF={class:"flex items-center justify-between"},cF={class:"font-semibold text-gray-900 dark:text-white"},uF={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},_F={key:0,class:"grid grid-cols-1 gap-4 md:grid-cols-3"},mF={class:"md:col-span-3"},pF={class:"input-label"},gF={class:"input-label"},yF={class:"input-label"},bF={value:"manual"},xF={value:"daily-03"},hF={value:"weekly"},fF={class:"input-label"},kF={class:"input-label"},vF={class:"input-label"},wF={class:"input-label"},CF={class:"space-y-6"},VF={class:"card"},UF={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},SF={class:"text-lg font-semibold text-gray-900 dark:text-white"},$F={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},PF=["href"],EF={class:"space-y-4 p-6"},TF={class:"flex items-center justify-between"},AF={class:"font-medium text-gray-900 dark:text-white"},MF={class:"text-sm text-gray-500 dark:text-gray-400"},FF={class:"grid grid-cols-1 gap-3 sm:grid-cols-3"},LF={class:"input-label"},HF={class:"input-label"},IF={class:"input-label"},RF={class:"rounded-lg border border-gray-200 bg-gray-50 px-3 py-2 text-sm text-gray-600 dark:border-dark-600 dark:bg-dark-800 dark:text-gray-300"},BF={class:"grid grid-cols-2 gap-3 sm:grid-cols-5"},jF={class:"input-label"},DF=["value","placeholder"],OF={class:"input-label"},zF=["value","placeholder"],qF={class:"input-label"},NF=["value","placeholder"],KF={class:"input-label"},WF=["value"],GF={class:"mt-0.5 text-xs text-gray-400"},QF={class:"mt-1 text-xs font-medium text-primary-600 dark:text-primary-400"},YF={class:"input-label"},JF=["value","placeholder"],XF={class:"mt-0.5 text-xs text-gray-400"},ZF={class:"input-label"},eL={class:"relative"},tL=["value"],aL={class:"mt-0.5 text-xs text-gray-400"},sL={key:0,class:"mt-1 text-xs font-medium text-primary-600 dark:text-primary-400"},nL={class:"input-label"},iL={class:"mt-0.5 text-xs text-gray-400"},oL={class:"flex flex-wrap items-end gap-4"},lL={class:"w-28"},rL={class:"input-label"},dL={class:"input-label"},cL={class:"input-label"},uL={class:"flex items-center gap-2"},_L=["disabled"],mL=["disabled"],pL={class:"input-label"},gL={class:"flex items-center gap-2"},yL={class:"text-sm text-gray-500 dark:text-gray-400"},bL={class:"input-label"},xL={class:"flex items-center gap-2"},hL={class:"text-sm text-gray-500 dark:text-gray-400"},fL={class:"input-label"},kL={class:"mt-1.5 flex flex-wrap gap-2"},vL=["onClick"],wL={class:"mt-2 text-xs text-gray-400 dark:text-gray-500"},CL=["href"],VL={class:"grid grid-cols-1 gap-3 sm:grid-cols-2"},UL={class:"input-label"},SL={class:"input-label"},$L=["placeholder"],PL={class:"space-y-6"},EL={key:0,class:"card"},TL={class:"p-6"},AL={class:"flex items-start gap-3"},ML={class:"font-medium text-gray-900 dark:text-white"},FL={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},LL={key:1,class:"card"},HL={class:"flex items-center justify-between border-b border-gray-100 px-6 py-4 dark:border-dark-700"},IL={class:"text-lg font-semibold text-gray-900 dark:text-white"},RL={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},BL=["disabled"],jL={key:0,class:"h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},DL={class:"space-y-6 p-6"},OL={class:"grid grid-cols-1 gap-6 md:grid-cols-2"},zL={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},qL=["placeholder"],NL={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},KL=["placeholder"],WL={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},GL=["placeholder"],QL={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},YL=["placeholder"],JL={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},XL={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},ZL=["placeholder"],eH={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},tH=["placeholder"],aH={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},sH={class:"font-medium text-gray-900 dark:text-white"},nH={class:"text-sm text-gray-500 dark:text-gray-400"},iH={key:2,class:"card"},oH={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},lH={class:"text-lg font-semibold text-gray-900 dark:text-white"},rH={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},dH={class:"p-6"},cH={class:"flex items-end gap-4"},uH={class:"flex-1"},_H={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},mH=["placeholder"],pH=["disabled"],gH={key:0,class:"h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},yH={class:"card"},bH={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},xH={class:"text-base font-medium text-gray-900 dark:text-white"},hH={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},fH={class:"px-6 py-6"},kH={class:"flex items-center justify-between gap-4"},vH={class:"mb-0 block text-sm font-medium text-gray-700 dark:text-gray-300"},wH={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},CH={class:"card"},VH={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},UH={class:"text-base font-medium text-gray-900 dark:text-white"},SH={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},$H={class:"px-6 py-6 space-y-4"},PH={class:"flex items-center justify-between"},EH={class:"mb-0 block text-sm font-medium text-gray-700 dark:text-gray-300"}
2,TH={key:0},AH={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},MH={class:"relative"},FH={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},LH={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},HH=["placeholder"],IH={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},RH={class:"card"},BH={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},jH={class:"text-base font-medium text-gray-900 dark:text-white"},DH={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},OH={class:"px-6 py-6 space-y-4"},zH={class:"flex items-center justify-between"},qH={class:"mb-0 block text-sm font-medium text-gray-700 dark:text-gray-300"},NH={key:0},KH={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},WH={class:"space-y-2"},GH={class:"relative inline-flex items-center cursor-pointer shrink-0"},QH=["checked","onChange"],YH=["onUpdate:modelValue","placeholder"],JH=["onClick"],XH={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},ZH={class:"space-y-6"},eI={class:"flex justify-end"},tI=["disabled"],aI={key:0,class:"h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},Yt=5,Jt=1e3,sI=20,Xt="You are Claude Code, Anthropic's official CLI for Claude.",Ft=`You are an interactive agent that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.
3
4IMPORTANT: Assist with authorized security testing, defensive security, CTF challenges, and educational contexts. Refuse requests for destructive techniques, DoS attacks, mass targeting, supply chain compromise, or detection evasion for malicious purposes. Dual-use security tools (C2 frameworks, credential testing, exploit development) require clear authorization context: pentesting engagements, CTF competitions, security research, or defensive use cases.
5IMPORTANT: You must NEVER generate or guess URLs for the user unless you are confident that the URLs are for helping the user with programming. You may use URLs provided by the user in their messages or local files.
6
7# Tone and style
8 - Only use emojis if the user explicitly requests it. Avoid using emojis in all communication unless asked.
9 - Your responses should be short and concise.
10 - When referencing specific functions or pieces of code include the pattern file_path:line_number to allow the user to easily navigate to the source code location.
11 - When referencing GitHub issues or pull requests, use the owner/repo#123 format (e.g. anthropics/claude-code#100) so they render as clickable links.
12 - Do not use a colon before tool calls. Your tool calls may not be shown directly in the output, so text like "Let me read the file:" followed by a read tool call should just be "Let me read the file." with a period.`,nI=1e3,Da=16,sn="http://127.0.0.1:3101",nn="ippool://active",iI=qe({__name:"SettingsView",setup(M){const{t,locale:E}=Ge(),k=Vt(),L=un(),P=Yo(),H=B(()=>E.value.startsWith("zh"));function x(l,i){return H.value?l:i}const w=B(()=>E.value.startsWith("zh")?"https://github.com/Wei-Shaw/sub2api/blob/main/docs/PAYMENT_CN.md":"https://github.com/Wei-Shaw/sub2api/blob/main/docs/PAYMENT.md"),f=B(()=>E.value.startsWith("zh")?"https://github.com/Wei-Shaw/sub2api/blob/main/docs/PAYMENT_CN.md#支持的支付方式":"https://github.com/Wei-Shaw/sub2api/blob/main/docs/PAYMENT.md#supported-payment-methods"),S=U("general"),A=[{key:"general",icon:"home"},{key:"agreement",icon:"document"},{key:"features",icon:"bolt"},{key:"security",icon:"shield"},{key:"users",icon:"user"},{key:"gateway",icon:"server"},{key:"payment",icon:"creditCard"},{key:"email",icon:"mail"},{key:"supportChat",icon:"chat"},{key:"backup",icon:"database"},{key:"oidc",icon:"key"},{key:"media",icon:"cloud"}],ee={ArrowLeft:-1,ArrowUp:-1,ArrowRight:1,ArrowDown:1,Home:"first",End:"last"};function J(l){S.value=l}function me(l){window.requestAnimationFrame(()=>{var i;(i=document.getElementById(`settings-tab-${l}`))==null||i.focus()})}function te(l,i){var G;const p=ee[l.key];if(p===void 0)return;l.preventDefault();const o=A.findIndex(Ce=>Ce.key===i);let m=o<0?0:o;p==="first"?m=0:p==="last"?m=A.length-1:m=(m+p+A.length)%A.length;const _=(G=A[m])==null?void 0:G.key;_&&(J(_),me(_))}const{copyToClipboard:le}=fl(),ce=U(!0),oe=U(!1),D=U(!1),Q=U(!1),z=U(!1),K=U(!1),Z=U(""),Y=U([]),ge=U(""),j=U(""),se=U("10, 20, 50, 100"),ne=U(!0),Fe=U(!1),ve=U(""),he=U(!1),Le=U(""),Pe=U([]),He=U([]),Ne=U(!1),Re=B(()=>{const l=new Set(He.value.map(i=>i.id));return[...He.value.map(i=>({id:i.id,name:i.name})),...s.openai_codex_ticket_harvest_scope.group_ids.filter(i=>!l.has(i)).map(i=>({id:i,name:x("不可用或已删除的分组","Unavailable or deleted group")+" #"+i}))]}),Ze=U(!0),et=U(!1),Ee=ye({enabled:!0,interval_minutes:30}),Be=U(!0),tt=U(!1),Te=ye({enabled:!1,interval_minutes:60,debounce_minutes:1}),ot=U(!0),Ke=U(!1),we=ye({enabled:!1,interval_minutes:15,debounce_minutes:1}),je=U(!0),at=U(!1),b=ye({enabled:!0,cooldown_minutes:10}),y=U(!0),V=U(!1),F=ye({enabled:!0,cooldown_seconds:5}),ie=U(!0),Ve=U(!1),fe=ye({enabled:!0,user_rpm:240,heavy_rpm:60,exempt_admin:!0,public_ip_rpm:300}),$=U(!0),C=U(!1),v=ye({enabled:!0,action:"temp_unsched",temp_unsched_minutes:5,threshold_count:3,threshold_window_minutes:10}),re=U(!0),xe=U(!1),_e=ye({enabled:!0,thinking_signature_enabled:!0,thinking_budget_enabled:!0,apikey_signature_enabled:!1,apikey_signature_patterns:[]}),Ut=U(!0),St=U(!1),It=ye({rules:[]}),ut=ye({rules:[]}),Zt=U(!1);function Na(){return[{id:"terms",title:x("服务条款","Terms of Service"),content_md:""},{id:"usage-policy",title:x("使用政策","Usage Policy"),content_md:""},{id:"supported-regions",title:x("支持的国家和地区","Supported Countries and Regions"),content_md:""},{id:"service-specific-terms",title:x("服务特定条款","Service-Specific Terms"),content_md:""}]}function Ka(l){return l.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/[-_]{2,}/g,"-").replace(/^[-_]+|[-_]+$/g,"")}function pn(l,i){return`/legal/${Ka(l.id||l.title)||`doc-${i+1}`}`}let Wa=0;function gn(){return Wa+=1,`claude-oauth-system-prompt-block-${Wa}`}function Ga(l){return typeof l=="string"&&l.trim()?l.trim():"5m"}function ea(l){const i=l.trim();return i==="{billing_header}"?"billing":i==="{claude_code_system_prompt}"||i===Xt?"system":i==="{claude_code_expansion_prompt}"||i===Ft?"expansion":"custom"}function yn(l,i=""){const p=l.trim();return p==="{claude_code_system_prompt}"?Xt:p==="{claude_code_expansion_prompt}"?i.trim()||Ft:l}function gt(l={}){const i=l.text??"";return{id:gn(),enabled:l.enabled??!0,expanded:l.expanded??!0,type:"text",preset:l.preset??ea(i),text:i,cacheControlEnabled:l.cacheControlEnabled??!1,cacheControlTTL:l.cacheControlTTL??"5m"}}function yt(l=""){const p=l.trim()||Ft;return[gt({preset:"billing",text:"{billing_header}"}),gt({preset:"system",text:Xt}),gt({preset:p===Ft?"expansion":"custom",text:p,cacheControlEnabled:!0,cacheControlTTL:"5m"})]}function bn(l){return l===!0?{enabled:!0,ttl:"5m"}:l&&typeof l=="object"&&!Array.isArray(l)?{enabled:!0,ttl:Ga(l.ttl)}:{enabled:!1,ttl:"5m"}}function xn(l,i=""){const p=l.trim();if(!p)return yt(i);try{const o=JSON.parse(p),m=Array.isArray(o)?o:Array.isArray(o.blocks)?o.blocks:[];return m.length===0?yt(i):m.map(_=>{const G=bn(_.cache_control),Ce=yn(typeof _.text=="string"?_.text:"",i);return gt({enabled:_.enabled!==!1,type:"text",text:Ce,preset:ea(Ce),cacheControlEnabled:G.enabled,cacheControlTTL:G.ttl})})}catch{return yt(i)}}function ta(l){const p=(l.length>
120?l:[gt({enabled:!1,preset:"custom",text:""})]).map(o=>{const m={enabled:o.enabled,type:o.type||"text",text:o.text};return o.cacheControlEnabled&&(m.cache_control={type:"ephemeral",ttl:Ga(o.cacheControlTTL)}),m});return JSON.stringify(p,null,2)}const Qa=ta(yt()),Qe=U(yt()),Ya=B(()=>[{value:"billing",label:t("admin.settings.gatewayForwarding.systemBlockPresetBilling")},{value:"system",label:t("admin.settings.gatewayForwarding.systemBlockPresetIdentity")},{value:"expansion",label:t("admin.settings.gatewayForwarding.systemBlockPresetExpansion")},{value:"custom",label:t("admin.settings.gatewayForwarding.systemBlockPresetCustom")}]),hn=B(()=>[{value:"text",label:t("admin.settings.gatewayForwarding.systemBlockTypeText")}]),fn=B(()=>[{value:"5m",label:t("admin.settings.gatewayForwarding.cacheTTL5m")},{value:"1h",label:t("admin.settings.gatewayForwarding.cacheTTL1h")}]);function kn(l){var i;return((i=Ya.value.find(p=>p.value===l))==null?void 0:i.label)||t("admin.settings.gatewayForwarding.systemBlockPresetCustom")}function _t(){s.claude_oauth_system_prompt_blocks=ta(Qe.value)}function vn(){Qe.value.push(gt({expanded:!0,preset:"custom",text:""})),_t()}function wn(l){const i=Qe.value[l];i&&(i.expanded=!i.expanded)}function Cn(l){Qe.value.splice(l,1),_t()}function Ja(l,i){const p=l+i;if(p<0||p>=Qe.value.length)return;const o=Qe.value,m=o[l];o[l]=o[p],o[p]=m,_t()}function Vn(l,i){const p=Qe.value[l];if(!p)return;const o=String(i||"custom");p.preset=o,p.type="text",o==="billing"?(p.text="{billing_header}",p.cacheControlEnabled=!1,p.cacheControlTTL="5m"):o==="system"?(p.text=Xt,p.cacheControlEnabled=!1,p.cacheControlTTL="5m"):o==="expansion"&&(p.text=s.claude_oauth_system_prompt.trim()||Ft,p.cacheControlEnabled=!0,p.cacheControlTTL="5m"),_t()}function Un(l){l.preset=ea(l.text),_t()}function Sn(){Qe.value=yt(s.claude_oauth_system_prompt),_t()}const $n=Jo,s=ye({registration_enabled:!0,email_verify_enabled:!1,registration_email_suffix_whitelist:[],registration_email_domain_quota_enabled:!1,promo_code_enabled:!0,invitation_code_enabled:!1,password_reset_enabled:!1,totp_enabled:!1,totp_encryption_key_configured:!1,passkey_enabled:!1,passkey_configured:!1,passkey_rp_id:"",passkey_rp_origins:[],session_binding_enabled:!1,step_up_enabled:!1,company_upgrade_charge_enabled:!1,company_upgrade_fee:20,company_applications_enabled:!1,company_iam_enabled:!1,company_public_ids_finalized:!1,company_billing_integration_enabled:!1,company_documentation_url:"",audit_log_retention_days:180,login_agreement_enabled:!1,login_agreement_mode:"modal",login_agreement_updated_at:"2026-03-31",login_agreement_documents:Na(),default_balance:0,default_platform_quotas:La(),account_scheduling_thresholds:Fa(),affiliate_rebate_rate:20,affiliate_rebate_freeze_hours:0,affiliate_rebate_duration_days:0,affiliate_rebate_per_invitee_cap:0,affiliate_admin_recharge_enabled:!1,default_concurrency:1,default_subscriptions:[],force_email_on_third_party_signup:!1,default_user_rpm_limit:0,site_name:"Sub2API",site_logo:"",site_subtitle:"Subscription to API Conversion Platform",api_base_url:"",contact_info:"",doc_url:"",home_content:"",compact_home_enabled:!1,backend_mode_enabled:!1,hide_ccs_import_button:!1,payment_enabled:!1,risk_control_enabled:!1,cyber_policy_user_allowlist:"",cyber_session_block_enabled:!1,cyber_session_block_ttl_seconds:3600,cyber_session_identity_strict_enabled:!1,payment_min_amount:1,payment_max_amount:1e4,payment_daily_limit:5e4,payment_max_pending_orders:3,payment_order_timeout_minutes:30,payment_balance_disabled:!1,payment_balance_recharge_multiplier:1,payment_subscription_usd_to_cny_rate:0,payment_recharge_fee_rate:0,payment_enabled_types:[],payment_help_image_url:"",payment_help_text:"",payment_product_name_prefix:"",payment_product_name_suffix:"",payment_load_balance_strategy:"round-robin",payment_cancel_rate_limit_enabled:!1,payment_cancel_rate_limit_max:10,payment_cancel_rate_limit_window:1,payment_cancel_rate_limit_unit:"day",payment_cancel_rate_limit_window_mode:"rolling",payment_alipay_force_qrcode:!1,payment_alipay_mobile_precreate_deep_link:!1,table_default_page_size:sI,table_page_size_options:[10,20,50,100],custom_menu_items:[],home_product_menu_items:[],custom_endpoints:[],frontend_url:"",smtp_host:"",smtp_port:587,smtp_username:"",smtp_password:"",smtp_password_configured:!1,smtp_from_email:"",smtp_from_name:"",smtp_use_tls:!0,turnstile_enabled:!1,turnstile_site_key:"",turnstile_secret_key:"",turnstile_secret_key_configured:!1,tencent_captcha_enabled:!1,tencent_captcha_app_id:"",tencent_captcha_app_secret_key:"",tencent_captcha_app_secret_key_configured:!1,tencent_captcha_cloud_secret_id:"",tencent_captcha_cloud_secret_id_configured:!1,tencent_captcha_cloud_secret_key:"",tencent_captcha_cloud_secret_key_configured:!1,tencent_captcha_region:"cn",aliyun_captcha_enabled:!1,aliyun_captcha_access_key_id:"",aliyun_captcha_access_key_secret:"",aliyun_captcha_access_key_secret_configured:!1,aliyun_captcha_scene_id:"",aliyun_captcha_prefix:"",aliyun_captcha_region:"cn",api_key_acl_trust_forwarded_ip:!0,forwarded_client_ip_headers:[],linuxdo_connect_enabled:!1,linuxdo_connect_client_id:"",linuxdo_connect_client_secret:"",linuxdo_connect_client_secret_configured:!1,linuxdo_connect_redirect_url:"",dingtalk_connect_enabled:!1,dingtalk_connect_client_id:"",dingtalk_connect_client_secret:"",dingtalk_connect_client_secret_configured:!1,dingtalk_connect_redirect_url:"",dingtalk_connect_corp_restriction_policy:"none",dingtalk_connect_internal_corp_i
12d:"",dingtalk_connect_bypass_registration:!1,dingtalk_connect_sync_corp_email:!1,dingtalk_connect_sync_display_name:!1,dingtalk_connect_sync_dept:!1,dingtalk_connect_sync_corp_email_attr_key:"dingtalk_email",dingtalk_connect_sync_display_name_attr_key:"dingtalk_name",dingtalk_connect_sync_dept_attr_key:"dingtalk_department",dingtalk_connect_sync_corp_email_attr_name:x("钉钉企业邮箱","DingTalk Corporate Email"),dingtalk_connect_sync_display_name_attr_name:x("钉钉姓名","DingTalk Name"),dingtalk_connect_sync_dept_attr_name:x("钉钉部门","DingTalk Department"),wechat_connect_enabled:!1,wechat_connect_app_id:"",wechat_connect_app_secret:"",wechat_connect_app_secret_configured:!1,wechat_connect_open_app_id:"",wechat_connect_open_app_secret:"",wechat_connect_open_app_secret_configured:!1,wechat_connect_mp_app_id:"",wechat_connect_mp_app_secret:"",wechat_connect_mp_app_secret_configured:!1,wechat_connect_mobile_app_id:"",wechat_connect_mobile_app_secret:"",wechat_connect_mobile_app_secret_configured:!1,wechat_connect_open_enabled:!1,wechat_connect_mp_enabled:!1,wechat_connect_mobile_enabled:!1,wechat_connect_mode:"open",wechat_connect_scopes:"snsapi_login",wechat_connect_redirect_url:"",wechat_connect_frontend_redirect_url:"/auth/wechat/callback",oidc_connect_enabled:!1,oidc_connect_provider_name:"OIDC",oidc_connect_client_id:"",oidc_connect_client_secret:"",oidc_connect_client_secret_configured:!1,oidc_connect_issuer_url:"",oidc_connect_discovery_url:"",oidc_connect_authorize_url:"",oidc_connect_token_url:"",oidc_connect_userinfo_url:"",oidc_connect_jwks_url:"",oidc_connect_scopes:"openid email profile",oidc_connect_redirect_url:"",oidc_connect_frontend_redirect_url:"/auth/oidc/callback",oidc_connect_token_auth_method:"client_secret_post",oidc_connect_use_pkce:!1,oidc_connect_validate_id_token:!1,oidc_connect_allowed_signing_algs:"RS256,ES256,PS256",oidc_connect_clock_skew_seconds:120,oidc_connect_require_email_verified:!1,oidc_connect_userinfo_email_path:"",oidc_connect_userinfo_id_path:"",oidc_connect_userinfo_username_path:"",github_oauth_enabled:!1,github_oauth_client_id:"",github_oauth_client_secret:"",github_oauth_client_secret_configured:!1,github_oauth_redirect_url:"",github_oauth_frontend_redirect_url:"/auth/oauth/callback",google_oauth_enabled:!1,google_oauth_client_id:"",google_oauth_client_secret:"",google_oauth_client_secret_configured:!1,google_oauth_redirect_url:"",google_oauth_frontend_redirect_url:"/auth/oauth/callback",enable_model_fallback:!1,fallback_model_anthropic:"claude-3-5-sonnet-20241022",fallback_model_openai:"gpt-4o",fallback_model_gemini:"gemini-2.5-pro",fallback_model_antigravity:"gemini-2.5-pro",grok_default_text_model:"grok-4.5",grok_cross_client_model_map_enabled:!1,grok_default_base_url_mode:"cli",enable_identity_patch:!0,identity_patch_prompt:"",ops_monitoring_enabled:!0,ops_realtime_monitoring_enabled:!0,ops_query_mode_default:"auto",ops_metrics_interval_seconds:60,min_claude_code_version:"",max_claude_code_version:"",allow_ungrouped_key_scheduling:!1,openai_low_upstream_rate_priority_enabled:!1,openai_oauth_scheduling_rate_multiplier:1,openai_advanced_scheduler_enabled:!1,openai_advanced_scheduler_sticky_weighted_enabled:!1,openai_advanced_scheduler_subscription_priority_enabled:!1,openai_advanced_scheduler_lb_top_k:"",openai_advanced_scheduler_weight_priority:"",openai_advanced_scheduler_weight_load:"",openai_advanced_scheduler_weight_queue:"",openai_advanced_scheduler_weight_error_rate:"",openai_advanced_scheduler_weight_ttft:"",openai_advanced_scheduler_weight_reset:"",openai_advanced_scheduler_weight_quota_headroom:"",openai_advanced_scheduler_weight_upstream_cost:"",openai_advanced_scheduler_weight_previous_response:"",openai_advanced_scheduler_weight_session_sticky:"",openai_ttft_mode:"semantic",enable_fingerprint_unification:!0,enable_metadata_passthrough:!1,enable_cch_signing:!1,enable_claude_oauth_system_prompt_injection:!0,claude_oauth_system_prompt:"",claude_oauth_system_prompt_blocks:Qa,enable_anthropic_cache_ttl_1h_injection:!1,rewrite_message_cache_control:!1,enable_client_dateline_normalization:!0,antigravity_user_agent_version:"",openai_codex_user_agent:"",openai_codex_client_version:"",openai_codex_client_version_synced:"",openai_codex_version_auto_sync_enabled:!0,openai_codex_ticket_enabled:!1,openai_codex_ticket_fail_closed:!1,openai_codex_ticket_strategy:"standby",openai_codex_ticket_harvest_scope:{mode:"all",group_ids:[],account_policy:"schedulable_only"},openai_codex_ticket_strict_response:!1,openai_codex_ticket_harvest_proxy_url:"",openai_codex_ticket_harvest_proxy_configured:!1,openai_codex_ticket_models:["gpt-6-astra","gpt-5.6-sol"],claude_code_client_version:"",claude_code_client_version_synced:"",claude_code_version_auto_sync_enabled:!0,min_codex_version:"",max_codex_version:"",codex_cli_only_blacklist:"",codex_cli_only_whitelist:"",codex_cli_only_allow_app_server_clients:!1,codex_cli_only_engine_fingerprint_signals:"",balance_low_notify_enabled:!1,balance_low_notify_threshold:0,balance_low_notify_recharge_url:"",subscription_expiry_notify_enabled:!0,account_quota_notify_enabled:!1,account_quota_notify_emails:[],channel_monitor_enabled:!0,channel_monitor_mode:"v1",channel_monitor_default_interval_seconds:60,channel_monitor_hide_throughput:!1,channel_monitor_show_quota:!1,channel_monitor_hide_user_ranking:!1,available_channels_enabled:!1,subscription_enabled:!0,model_plaza_enabled:!1,model_plaza_require_auth:!1,model_plaza_description:"",plugin_management_enabled:!1,affiliate_enabled:!1,allow_user_view_error_requests:!1,support_ticket_enabled:!1,support_ticket_categories:[],support_ticket_default_priority:"normal",support_ticket_notify_emails:[],support_chat_enabled:!1,support_chat_excluded_routes:[],support_chat_anonymous_llm:!1,support_chat_title:"",support_chat_welcome:"",support_chat_icon:"",support_chat_llm_enabled:!1,support_chat_llm_base_url:"",support_chat_llm_api_key:"",support_chat_embedding_base_url:"",support_chat_embedding_api_key:"",support_chat_model:"gpt-4o-mini",supp
12ort_chat_system_prompt:"",support_chat_max_turns:5,support_chat_max_request_tokens:16e3,support_chat_rl_user_per_day:50,support_chat_rl_user_per_min:5,support_chat_rl_ip_per_hour:20,support_chat_faqs:[],support_chat_rag_enabled:!1,support_chat_rag_doc_url:"",support_chat_rag_doc_depth:1,support_chat_rag_doc_cron:"manual",support_chat_rag_embed_provider:"gemini",support_chat_rag_embed_model:"gemini-embedding-001",support_chat_rag_top_k:5,support_chat_rag_chunk_size:1200,support_chat_rag_chunk_overlap:150,usage_show_long_context_badge:!0,request_capture_enabled:!1,request_capture_quota_mib:1024,request_capture_retention_days:7,excel_bps_image_mode:"relay",excel_bps_image_relay_enabled:!1,excel_bps_image_base_url:"",excel_bps_image_body_limit_mib:64,excel_bps_image_budget_mib:1024,excel_bps_image_max_requests:128,excel_bps_image_max_image_mib:20,excel_bps_image_max_images:20,excel_bps_image_limit_policy:"off",excel_bps_image_warning_remaining:8,excel_bps_image_compact_reserve:3,excel_bps_image_max_total_mib:32,excel_bps_image_storage_mib:1024,excel_bps_image_storage_entries:512,excel_bps_image_ttl_minutes:30}),st=U("turnstile"),Xa=[{key:"api",label:"API",svg:'<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M5.25 14.25h13.5m-13.5 0a3 3 0 01-3-3m3 3a3 3 0 100 6h13.5a3 3 0 100-6m-16.5-3a3 3 0 013-3h13.5a3 3 0 013 3m-19.5 0a4.5 4.5 0 01.9-2.7L5.737 5.1a3.375 3.375 0 012.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 01.9 2.7m0 0a3 3 0 01-3 3m0 3h.008v.008h-.008v-.008zm0-6h.008v.008h-.008v-.008zm-3 6h.008v.008h-.008v-.008zm0-6h.008v.008h-.008v-.008zm-3 6h.008v.008h-.008v-.008zm0-6h.008v.008h-.008v-.008z"/></svg>'},{key:"terminal",label:"Terminal",svg:'<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M6.75 7.5l3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0021 18V6a2.25 2.25 0 00-2.25-2.25H5.25A2.25 2.25 0 003 6v12a2.25 2.25 0 002.25 2.25z"/></svg>'}];function Za(l){s.turnstile_enabled=l==="turnstile",s.tencent_captcha_enabled=l==="tencent",s.aliyun_captcha_enabled=l==="aliyun"}const es=B({get:()=>Array.from(new Set(s.cyber_policy_user_allowlist.split(/[,\s]+/).map(Number).filter(l=>Number.isSafeInteger(l)&&l>0))),set:l=>{s.cyber_policy_user_allowlist=l.join(",")}}),aa=B({get:()=>s.turnstile_enabled||s.tencent_captcha_enabled||s.aliyun_captcha_enabled,set:l=>Za(l?st.value:null)});function sa(l){st.value=l,Za(l)}const na=B(()=>s.tencent_captcha_region==="intl"?{console:"https://console.tencentcloud.com/captcha/graphical",cloudKeys:"https://console.tencentcloud.com/cam/capi",webDocs:"https://www.tencentcloud.com/document/product/1159/49680"}:{console:"https://console.cloud.tencent.com/captcha",cloudKeys:"https://console.cloud.tencent.com/cam/capi",webDocs:"https://cloud.tencent.com/document/product/1110/36841"});function Pn(){s.tencent_captcha_enabled?st.value="tencent":s.aliyun_captcha_enabled?st.value="aliyun":s.turnstile_enabled&&(st.value="turnstile")}const En=B(()=>{const l=(i,p)=>{const o=String(s[i]??"").trim();return t("admin.settings.openaiExperimentalScheduler.defaultPlaceholder",{value:o||p})};return[{key:"openai_advanced_scheduler_lb_top_k",label:t("admin.settings.openaiExperimentalScheduler.topKLabel"),placeholder:l("openai_advanced_scheduler_effective_lb_top_k","7")},{key:"openai_advanced_scheduler_weight_priority",label:t("admin.settings.openaiExperimentalScheduler.priorityWeight"),placeholder:l("openai_advanced_scheduler_effective_weight_priority","1")},{key:"openai_advanced_scheduler_weight_load",label:t("admin.settings.openaiExperimentalScheduler.loadWeight"),placeholder:l("openai_advanced_scheduler_effective_weight_load","1")},{key:"openai_advanced_scheduler_weight_queue",label:t("admin.settings.openaiExperimentalScheduler.queueWeight"),placeholder:l("openai_advanced_scheduler_effective_weight_queue","0.7")},{key:"openai_advanced_scheduler_weight_error_rate",label:t("admin.settings.open
12aiExperimentalScheduler.errorRateWeight"),placeholder:l("openai_advanced_scheduler_effective_weight_error_rate","0.8")},{key:"openai_advanced_scheduler_weight_ttft",label:t("admin.settings.openaiExperimentalScheduler.ttftWeight"),placeholder:l("openai_advanced_scheduler_effective_weight_ttft","0.5")},{key:"openai_advanced_scheduler_weight_reset",label:t("admin.settings.openaiExperimentalScheduler.resetWeight"),placeholder:l("openai_advanced_scheduler_effective_weight_reset","0")},{key:"openai_advanced_scheduler_weight_quota_headroom",label:t("admin.settings.openaiExperimentalScheduler.quotaHeadroomWeight"),placeholder:l("openai_advanced_scheduler_effective_weight_quota_headroom","0")},{key:"openai_advanced_scheduler_weight_upstream_cost",label:t("admin.settings.openaiExperimentalScheduler.upstreamCostWeight"),placeholder:l("openai_advanced_scheduler_effective_weight_upstream_cost","0")},{key:"openai_advanced_scheduler_weight_previous_response",label:t("admin.settings.openaiExperimentalScheduler.previousResponseWeight"),placeholder:l("openai_advanced_scheduler_effective_weight_previous_response","5")},{key:"openai_advanced_scheduler_weight_session_sticky",label:t("admin.settings.openaiExperimentalScheduler.sessionStickyWeight"),placeholder:l("openai_advanced_scheduler_effective_weight_session_sticky","3")}]}),be=ye(Ha({})),ts=B(()=>[{source:"email",title:t("admin.settings.authSourceDefaults.sources.email.title"),description:t("admin.settings.authSourceDefaults.sources.email.description")},{source:"linuxdo",title:t("admin.settings.authSourceDefaults.sources.linuxdo.title"),description:t("admin.settings.authSourceDefaults.sources.linuxdo.description")},{source:"oidc",title:t("admin.settings.authSourceDefaults.sources.oidc.title"),description:t("admin.settings.authSourceDefaults.sources.oidc.description")},{source:"wechat",title:t("admin.settings.authSourceDefaults.sources.wechat.title"),description:t("admin.settings.authSourceDefaults.sources.wechat.description")},{source:"github",title:"GitHub",description:x("通过 GitHub 已验证邮箱首次注册或首次绑定时应用。","Applied on first signup or first bind through a verified GitHub email.")},{source:"google",title:"Google",description:x("通过 Google 已验证邮箱首次注册或首次绑定时应用。","Applied on first signup or first bind through a verified Google email.")},{source:"dingtalk",title:t("auth.dingtalkProviderName"),description:x("通过钉钉首次注册或首次绑定时应用。","Applied on first signup or first bind through DingTalk.")}]),as=U([]),Ae=ye({enabled:!1,providers:[]}),nt=ye({}),lt=ye({}),ia=U(""),Rt=U(!1),mt=U(null),Bt=U(!1);function Tn(){mt.value=null,Bt.value=!0}function An(l){nt[l]=!nt[l]}function Mn(l){Ae.providers.splice(l,1);const i={},p={};for(let o=0;o<Ae.providers.length;o++){const m=o>=l?o+1:o;i[o]=nt[m]??!1,p[o]=lt[m]??!1}Object.keys(nt).forEach(o=>delete nt[Number(o)]),Object.keys(lt).forEach(o=>delete lt[Number(o)]),Object.assign(nt,i),Object.assign(lt,p)}function Fn(){const l=Ae.providers.length;Ae.providers.push({type:"brave",api_key:"",api_key_configured:!1,quota_limit:nI,subscribed_at:null,proxy_id:null,expires_at:null}),nt[l]=!0}function Ln(l){if(!l)return"";const i=new Date(l*1e3),p=i.getUTCFullYear(),o=String(i.getUTCMonth()+1).padStart(2,"0"),m=String(i.getUTCDate()).padStart(2,"0");return`${p}-${o}-${m}`}function Hn(l){return l?Math.floor(new Date(l+"T00:00:00Z").getTime()/1e3):null}function oa(l){return!l.quota_limit||l.quota_limit<=0?0:(l.quota_used??0)/l.quota_limit*100}async function In(l){const i=Ae.providers[l];if(i&&confirm(t("admin.settings.webSearchEmulation.resetUsageConfirm")))try{await O.settings.resetWebSearchUsage({provider_type:i.type}),i.quota_used=0,k.showSuccess(t("admin.settings.webSearchEmulation.resetUsageSuccess"))}catch(p){k.showError(pe(p,t("common.error")))}}async function Rn(l){var p;const i=(p=Ae.providers[l])==null?void 0:p.api_key;if(!i){k.showError(t("admin.settings.webSearchEmulation.apiKeyPlaceholder"));return}try{await navigator.clipboard.writeText(i),k.showSuccess(t("admin.settings.webSearchEmulation.copied"))}catch{k.showError(t("common.error"))}}async function ss(){Rt.value=!0,mt.value=null;try{const l=ia.value.trim()||t("admin.settings.webSearchEmulation.testDefaultQuery");mt.value=await O.settings.testWebSearchEmulation(l)}catch(l){k.showError(pe(l,t("common.error")))}finally{Rt.value=!1}}async function Bn(){try{const[l,i]=await Promise.all([O.settings.getWebSearchEmulationConfig(),O.proxies.list().catch(()=>({items:[]}))]);l&&(Ae.enabled=l.enabled||!1,Ae.providers=l.providers||[]),as.value=i.items||[]}catch(l){const i=l==null?void 0:l.status;i!==404&&i!==void 0&&k.showError(pe(l,t("common.error")))}}async function jn(){try{for(const i of Ae.providers){const p=i.quota_limit;if(p!=null&&Number(p)!==0&&Number(p)<1)return k.showError(t("admin.settings.webSearchEmulation.quotaLimitMustBePositive")),!1}const l=Ae.providers.map(i=>({...i,quota_limit:Number(i.quota_limit)>0?Number(i.quota_limit):null}));return await O.settings.updateWebSearchEmulationConfig({enabled:Ae.enabled,providers:l}),!0}catch(l){return k.showError(pe(l,t("common.error"))),!1}}const ns=B(()=>Pe.value.map(l=>({value:l.id,label:l.name,description:l.description,platform:l.platform,subscriptionType:l.subscription_type,rate:l.rate_multiplier}))),Dn=new Set([" ",",",",","Enter","Tab"]);function On(l){Y.value=Y.value.filter(i=>i!==l)}function is(l){const i=Zs(l);!vl(i)||Y.value.includes(i)||(Y.value=[...Y.value,i])}function os(){ge.value&&(is(ge.value),ge.value="")}function ls(){ge.value=Zs(ge.value)}function rs(l){if(!l.isComposing){if(Dn.has(l.key)){l.preventDefault(),os();return}l.key==="Backspace"&&!ge.value&&Y.value.length>0&&Y.value.pop()}}function zn(l){var o;const i=((o=l.clipboardData)==null?void 0:o.getData("text"))||"";if(!i.trim())return;l.preventDefault();const p=kl(i);for(const m of p)is(m)}const qn=new Set([" ",",",",","Enter","Tab"]),Nn=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function ds(l){const i=l.trim();return Nn.test(i)?i.toLowerCase().split("-").map(p=>`${p.charAt(0).toUpperCase()}${p.slice(1)}`).join("-"):""}function la(l){if(!Array.isArray(l))return[];const i=[],p=new Set;for(const o of l){if(typeof o!="string")continue;const m=ds(o),_=m.toLowerCase();!m||p.has(_)||i.length>=Da||(p.add(_),i.push(m))}return i}function Kn(l){s.forwarded_client_ip_headers=s.forwarded_client_ip_headers.filter(i=>i!==l)}function cs(l){const i=ds(l);return i?s.forwarded_client_ip_headers.some(p=>p.toLowerCase()===i.toLowerCase())?"duplicate":s.forwarded_client_ip_headers.length>=Da?"full":(s.forwarded_client_ip_headers=[...s.forwarded_client_ip_headers,i],"added"):"invalid"}function us(l){l==="invalid"?k.showError(t("admin.settings.apiKeyAcl.forwardedClientIpHeaderInvalid")):l==="full"&&k.showError(t("admin.settings.apiKeyAcl.forwardedClientIpHeadersLimit",{max:Da}))}function _s(){const l=j.value;if(!l)return;const i=cs(l);us(i),j.value=""}function Wn(l){if(!l.isComposing){if(qn.has(l.key)){l.preventDefault(),_s();return}l.key==="Backspace"&&!j.value&&s.forwarded_client_ip_headers.length>0&&s.forwarded_client_ip_headers.pop()}}function Gn(l){var o;const i=((o=l.clipboardData)==null?void 0:o.getData("text"))||"";if(!i.trim())return;l.preventDefault();let p;for(const m of i.split(/[,,;\r\n]+/)){if(!m.trim())continue;const _=cs(m);(_==="invalid"||_==="full")&&(p=_)}p&&us(p)}const Qn=()=>{s.account_quota_notify_emails||(s.account_quota_notify_emails=[]),s.account_quota_notify_emails.push({email:"",disabled:!1,verified:!0})},ra=typeof window<"u"?window.location.origin:"";function $t(l){const i=(s.api_base_url||ra).replace(/\/+$/,"");return`${i.endsWith("/api/v1")?i:`${i}/api/v1`}${l.startsWith("/")?l:`/${l}`}`}const da=B(()=>$t("/auth/oauth/linuxdo/callback"));async function Yn(){const l=da.value;l&&(s.linuxdo_connect_redirect_url=l,await le(l,t("admin.settings.linuxdo.redirectUrlSetAndCopied")))}const ca=B(()=>$t("/auth/oauth/github/callback")),ua=B(()=>$t("/auth/oauth/google/callback"));async function ms(l){const i=l==="github"?ca.value:ua.value;i&&(l==="github"?s.github_oauth_redirect_url=i:s.google_oauth_redirect_url=i,await le(i,x("回调地址已写入并复制。","Callback URL set and copied.")))}const _a=B(()=>$t("/auth/oauth/wechat/callback"));function jt(l){s.wechat_connect_mp_enabled&&s.wechat_connect_mobile_enabled&&(l==="mobile"?s.wechat_connect_mp_enabled=!1:s.wechat_connect_mobile_enabled=!1);const i=Ra(s.wechat_connect_open_enabled,s.wechat_connect_mp_enabled,s.wechat_connect_mobile_enabled,s.wechat_connect_mode);s.wechat_connect_open_enabled=i.openEnabled,s.wechat_connect_mp_enabled=i.mpEnabled,s.wechat_connect_mobile_enabled=i.mobileEnabled,s.wechat_connect_mode=Nt(i.openEnabled,i.mpEnabled,i.mobileEnabled,s.wechat_connect_mode),s.wechat_connect_scopes=Kt(s.wechat_connect_mode)}function Jn(l){s.wechat_connect_open_enabled=l,jt(l?"open":void 0)}function Xn(l){s.wechat_connect_mp_enabled=l,l&&(s.wechat_connect_mobile_enabled=!1),jt(l?"mp":void 0)}function Zn(l){s.wechat_connect_mobile_enabled=l,l&&(s.wechat_connect_mp_enabled=!1),jt(l?"mobile":void 0)}async function ei(){const l=_a.value;l&&(s.wechat_connect_redirect_url=l,await le(l,t("admin.settings.wechatConnect.redirectUrlSetAndCopied")))}const ma=B(()=>$t("/auth/oauth/oidc/callback"));async function ti(){const l=ma.value;l&&(s.oidc_connect_redirect_url=l,await le(l,t("admin.settings.oidc.redirectUrlSetAndCopied")))}function ai(){s.custom_menu_items.push({id:"",label:"",icon_svg:"",url:"",visibility:"user",sort_order:s.custom_menu_items.length})}function si(l){s.custom_menu_items.splice(l,1),s.custom_menu_items.forEac
12h((i,p)=>{i.sort_order=p})}function ps(l,i){const p=l+i;if(p<0||p>=s.custom_menu_items.length)return;const o=s.custom_menu_items,m=o[l];o[l]=o[p],o[p]=m,o.forEach((_,G)=>{_.sort_order=G})}function ni(l){return Array.isArray(l)?l.map(i=>({...i,visibility:i.visibility==="admin"?"admin":"user",hide_open_button:i.hide_open_button===!0})):[]}function ii(l,i){l.icon_svg=i}function oi(){s.home_product_menu_items.push({id:"",label:"",icon_svg:"",url:"",action:"same_tab",visibility:"user",sort_order:s.home_product_menu_items.length})}function li(l,i){l.icon_svg=i}function ri(l){s.home_product_menu_items.splice(l,1),s.home_product_menu_items.forEach((i,p)=>{i.sort_order=p})}function gs(l){return Array.isArray(l)?l.map((i,p)=>({...i,action:i.action==="new_tab"?"new_tab":"same_tab",visibility:"user",sort_order:p})):[]}function di(){s.custom_endpoints.push({name:"",endpoint:"",description:""})}function ci(l){s.custom_endpoints.splice(l,1)}function ui(){s.login_agreement_documents.push({id:`custom-${Date.now().toString(36)}`,title:"",content_md:""})}function _i(l){s.login_agreement_documents.splice(l,1)}function mi(){return s.login_agreement_documents.map((l,i)=>({id:Ka(l.id||l.title)||`doc-${i+1}`,title:l.title.trim(),content_md:l.content_md.trim()})).filter(l=>l.title||l.content_md)}function pi(l){const i=new Set;for(const p of l){if(i.has(p.id))return p.id;i.add(p.id)}return null}function ys(l){return l.join(", ")}function gi(l){const i=l.split(",").map(m=>m.trim()).filter(m=>m.length>0);if(i.length===0)return null;const p=i.map(m=>Number(m));if(p.some(m=>!Number.isInteger(m)))return null;const o=Array.from(new Set(p)).sort((m,_)=>m-_);return o.some(m=>m<Yt||m>Jt)?null:o}const Pt=U([]),Et=U([]),bt=U([]),yi=B(()=>!bt.value.some(l=>l.required));function bi(){bt.value.push({type:"header_exact",match:"",required:!1})}function xi(l){bt.value.splice(l,1)}function bs(l){if(!l||!l.trim())return[];try{const i=JSON.parse(l);return Array.isArray(i)?i.map(p=>({originator:typeof(p==null?void 0:p.originator)=="string"?p.originator:"",uaContains:Array.isArray(p==null?void 0:p.ua_contains)?p.ua_contains.filter(o=>typeof o=="string").join(", "):"",skipEngineFingerprint:(p==null?void 0:p.skip_engine_fingerprint)===!0})):[]}catch{return[]}}function xs(l){const i=l.map(p=>{const o={originator:p.originator.trim(),ua_contains:p.uaContains.split(",").map(m=>m.trim()).filter(m=>m.length>0)};return p.skipEngineFingerprint&&(o.skip_engine_fingerprint=!0),o}).filter(p=>p.originator!==""||p.ua_contains.length>0);return i.length>0?JSON.stringify(i):""}function hi(){Pt.value.push({originator:"",uaContains:""})}function fi(l){Pt.value.splice(l,1)}function ki(){Et.value.push({originator:"",uaContains:"",skipEngineFingerprint:!1})}function vi(l){Et.value.splice(l,1)}const hs=B(()=>{var i;const l=(i=s.openai_codex_client_version_synced)==null?void 0:i.trim();return l?t("admin.settings.gatewayForwarding.openaiCodexVersionSyncedValue",{version:l}):""}),Ye=U("static"),pa=U("");function wi(l){return l.trim().replace(/\/+$/,"")===sn}function Ci(l){return l.trim()===nn}function fs(l){return wi(l)?"mihomo":Ci(l)?"ip_pool":"static"}function Vi(l){s.openai_codex_ticket_harvest_proxy_url=l,k.showSuccess(t("admin.settings.gatewayForwarding.codexTicketProxyMihomoSelected"))}function Ui(){const l=s.openai_codex_ticket_harvest_proxy_url,i=fs(l);Ye.value=i,pa.value=i==="static"?l:s.openai_codex_ticket_static_proxy_url||""}function ga(l){const i=fs(s.openai_codex_ticket_harvest_proxy_url);i==="static"&&(pa.value=s.openai_codex_ticket_harvest_proxy_url),Ye.value=l,l==="ip_pool"?s.openai_codex_ticket_harvest_proxy_url=nn:i!=="static"&&i!==l&&(s.openai_codex_ticket_harvest_proxy_url=pa.value)}const ks=B(()=>{var i;const l=(i=s.claude_code_client_version_synced)==null?void 0:i.trim();return l?t("admin.settings.gatewayForwarding.claudeCodeVersionSyncedValue",{version:l}):""});async function Si(){var l;ce.value=!0,oe.value=!1;try{const i=await O.settings.getSettings();i.payment_load_balance_strategy=i.payment_load_balance_strategy||"round-robin";for(const[_,G]of Object.entries(i))G!=null&&(s[_]=G);s.openai_codex_ticket_harvest_scope.account_policy=s.openai_codex_ticket_harvest_scope.account_policy||"schedulable_only",Ui(),i.open
12ai_oauth_scheduling_rate_multiplier===null&&(s.openai_oauth_scheduling_rate_multiplier=null),Pn(),(l=s.claude_oauth_system_prompt_blocks)!=null&&l.trim()||(s.claude_oauth_system_prompt_blocks=Qa),Qe.value=xn(s.claude_oauth_system_prompt_blocks,s.claude_oauth_system_prompt),_t(),Pt.value=bs(s.codex_cli_only_blacklist),Et.value=bs(s.codex_cli_only_whitelist),bt.value=s.codex_cli_only_engine_fingerprint_signals?Fg(s.codex_cli_only_engine_fingerprint_signals):Hg(),s.login_agreement_mode=i.login_agreement_mode==="checkbox"?"checkbox":"modal",s.channel_monitor_mode=i.channel_monitor_mode==="v2"?"v2":"v1",s.channel_monitor_hide_throughput=!!i.channel_monitor_hide_throughput,s.channel_monitor_show_quota=!!i.channel_monitor_show_quota,s.channel_monitor_hide_user_ranking=!!i.channel_monitor_hide_user_ranking,s.login_agreement_updated_at=i.login_agreement_updated_at||"2026-03-31",s.login_agreement_documents=Array.isArray(i.login_agreement_documents)&&i.login_agreement_documents.length>0?i.login_agreement_documents.map(_=>({id:_.id||"",title:_.title||"",content_md:_.content_md||""})):Na(),Object.assign(be,Ha(i)),s.default_platform_quotas=La(i.default_platform_quotas),s.account_scheduling_thresholds=Fa(i.account_scheduling_thresholds),s.backend_mode_enabled=i.backend_mode_enabled,s.default_subscriptions=Ia(i.default_subscriptions),s.home_product_menu_items=gs(s.home_product_menu_items),Y.value=en(i.registration_email_suffix_whitelist),s.forwarded_client_ip_headers=la(i.forwarded_client_ip_headers),j.value="",se.value=ys(Array.isArray(i.table_page_size_options)?i.table_page_size_options:[10,20,50,100]),ge.value="",s.smtp_password="",K.value=!1,s.turnstile_secret_key="",s.tencent_captcha_app_secret_key="",s.tencent_captcha_cloud_secret_id="",s.tencent_captcha_cloud_secret_key="",s.aliyun_captcha_access_key_secret="",s.linuxdo_connect_client_secret="",s.dingtalk_connect_client_secret="",s.github_oauth_client_secret="",s.google_oauth_client_secret="",s.wechat_connect_app_secret="",s.wechat_connect_open_app_secret="",s.wechat_connect_mp_app_secret="",s.wechat_connect_mobile_app_secret="";const p=Ra(i.wechat_connect_open_enabled,i.wechat_connect_mp_enabled,i.wechat_connect_mobile_enabled,i.wechat_connect_mode);s.wechat_connect_open_enabled=p.openEnabled,s.wechat_connect_mp_enabled=p.mpEnabled,s.wechat_connect_mobile_enabled=p.mobileEnabled,s.wechat_connect_mode=Nt(p.openEnabled,p.mpEnabled,p.mobileEnabled,i.wechat_connect_mode);const o=String(i.wechat_connect_app_id||"").trim(),m=!!i.wechat_connect_app_secret_configured;!s.wechat_connect_open_app_id&&p.openEnabled&&(s.wechat_connect_open_app_id=o),!s.wechat_connect_mp_app_id&&p.mpEnabled&&(s.wechat_connect_mp_app_id=o),!s.wechat_connect_mobile_app_id&&p.mobileEnabled&&(s.wechat_connect_mobile_app_id=o),!s.wechat_connect_open_app_secret_configured&&p.openEnabled&&(s.wechat_connect_open_app_secret_configured=m),!s.wechat_connect_mp_app_secret_configured&&p.mpEnabled&&(s.wechat_connect_mp_app_secret_configured=m),!s.wechat_connect_mobile_app_secret_configured&&p.mobileEnabled&&(s.wechat_connect_mobile_app_secret_configured=m),s.wechat_connect_scopes=Kt(s.wechat_connect_mode),s.oidc_connect_client_secret="",i.openai_fast_policy_settings&&Array.isArray(i.openai_fast_policy_settings.rules)&&(ut.rules=i.openai_fast_policy_settings.rules.map(_=>({..._,user_ids:_.user_ids?[..._.user_ids]:[],model_whitelist:_.model_whitelist?[..._.model_whitelist]:[]})),Zt.value=!0),await Bn()}catch(i){oe.value=!0,k.showError(pe(i,t("admin.settings.failedToLoad")))}finally{ce.value=!1}}async function $i(){try{const l=await O.groups.getAll();He.value=l.filter(i=>i.platform==="openai"),Ne.value=!1,Pe.value=l.filter(i=>i.subscription_type==="subscription"&&i.status==="active")}catch{Pe.value=[],He.value=[],Ne.value=!0}}function vs(l){const i=new Set(l);return Pe.value.find(p=>!i.has(p.id))}function Pi(){if(Pe.value.length===0)return;const l=vs(s.default_subscriptions.map(i=>i.group_id));l&&s.default_subscriptions.push({group_id:l.id,validity_days:30})}function Ei(l){s.default_subscriptions.splice(l,1)}function Ti(l){if(Pe.value.length===0)return;const i=vs(be[l].subscriptions.map(p=>p.group_id));i&&be[l].subscriptions.push({group_id:i.id,validity_days:30})}function Ai(l,i){be[l].subscriptions.splice(i,1)}function ws(l){const i=new Set;return l.find(p=>i.has(p.group_id)?!0:(i.add(p.group_id),!1))}const Mi=B(()=>tl.map(l=>({value:l,label:t(`admin.settings.features.siteBillingMode.options.${Qs[l]}`)}))),ya=B({get:()=>al(s),set:l=>{Object.assign(s,sl(l))}}),Fi=B(()=>t(`admin.settings.features.siteBillingMode.hints.${Qs[ya.value]}`));function Cs(l,i){const p=new Set(s.openai_codex_ticket_models);i?p.add(l):p.delete(l),s.openai_codex_ticket_models=[...p]}async function Vs(){var l,i,p,o,m,_,G,Ce;D.value=!0;try{const Je=s.excel_bps_image_base_url.trim();if(s.excel_bps_image_relay_enabled&&s.excel_bps_image_mode==="relay"||Je)try{const q=new URL(Je);if(q.protocol!=="https:"||!q.hostname||q.username||q.password||q.pathname!=="/"&&q.pathname!==""||Je.includes("?")||Je.includes("#"))throw new Error("invalid image origin");s.excel_bps_image_base_url=q.origin}catch{k.showError(t("admin.settings.features.excelBpsImages.invalidBaseUrl"));return}if(!Number.isInteger(s.excel_bps_image_body_limit_mib)||s.excel_bps_image_body_limit_mib<1||s.excel_bps_image_body_limit_mib>ue.bodyMiB||!Number.isInteger(s.excel_bps_image_budget_mib)||s.excel_bps_image_budget_mib<ue.minBudgetMiB||s.excel_bps_image_budget_mib>ue.budgetMiB||s.excel_bps_image_budget_mib<s.excel_bps_image_body_limit_mib*8||!Number.isInteger(s.excel_bps_image_max_requests)||s.excel_bps_image_max_requests<1||s.excel_bps_image_max_requests>ue.requests){k.showError(t("admin.settings.features.excelBpsImages.invalidCapacity",ue));return}if(!Number.isInteger(s.excel_bps_image_max_image_mib)||s.excel_bps_image_max_image_mib<1||s.excel_bps_image_max_image_mib>ue.imageMiB||!Number.isInteger(s.excel_bps_image_warning_remaining)||s.excel_bps_image_warning_remaining<1||s.excel_bps_image_warning_remaining>ue.images||!Number.isInteger(s.excel_bps_image_compact_reserve)||s.excel_bps_image_compact_reserve<1||s.excel_bps_image_compact_reserve>ue.images||s.excel_bps_image_limit_policy==="warn"&&(!Number.isInteger(s.excel_bps_image_warning_remaining)||!Number.isInteger(s.excel_bps_image_compact_reserve)||s.excel_bps_image_compact_reserve<1||s.excel_bps_image_compact_reserve>=s.excel_bps_image_warning_remaining||s.excel_bps_image_warning_remaining>=s.excel_bps_image_max_images)||!Number.isInteger(s.excel_bps_image_max_images)||s.excel_bps_image_max_images<1||s.excel_bps_image_max_images>ue.images||!Number.isInteger(s.excel_bps_image_max_total_mib)||s.excel_bps_image_max_total_mib<1||s.excel_bps_image_max_total_mib>ue.totalMiB||!Number.isInteger(s.excel_bps_image_storage_mib)||s.excel_bps_image_storage_mib<1||s.excel_bps_image_storage_mib>
12ue.storageMiB||!Number.isInteger(s.excel_bps_image_storage_entries)||s.excel_bps_image_storage_entries<1||s.excel_bps_image_storage_entries>ue.storageEntries||!Number.isInteger(s.excel_bps_image_ttl_minutes)||s.excel_bps_image_ttl_minutes<1||s.excel_bps_image_ttl_minutes>ue.ttlMinutes||s.excel_bps_image_max_total_mib<s.excel_bps_image_max_image_mib||s.excel_bps_image_storage_mib<s.excel_bps_image_max_total_mib||s.excel_bps_image_storage_entries<s.excel_bps_image_max_images){k.showError(t("admin.settings.features.excelBpsImages.invalidLimits"));return}const zt=Math.floor(Number(s.table_default_page_size));if(!Number.isInteger(zt)||zt<Yt||zt>Jt){k.showError(t("admin.settings.site.tableDefaultPageSizeRangeError",{min:Yt,max:Jt}));return}const Bs=gi(se.value);if(!Bs){k.showError(t("admin.settings.site.tablePageSizeOptionsFormatError",{min:Yt,max:Jt}));return}s.table_default_page_size=zt,s.table_page_size_options=Bs;const qt=mi();if(s.login_agreement_enabled&&qt.length===0){k.showError(x("启用登录条款确认时,至少需要保留一份文档。","At least one document is required when login agreement is enabled."));return}if(qt.find(q=>!q.title)){k.showError(x("登录条款文档名称不能为空。","Login agreement document title cannot be empty."));return}const Pa=pi(qt);if(Pa){k.showError(x(`登录条款文档路由不能重复:/legal/${Pa}`,`Login agreement document routes cannot be duplicated: /legal/${Pa}`));return}s.login_agreement_mode=s.login_agreement_mode==="checkbox"?"checkbox":"modal",s.login_agreement_documents=qt,s.forwarded_client_ip_headers=la(s.forwarded_client_ip_headers);const js=Ia(s.default_subscriptions),Ds=ws(js);if(Ds){k.showError(t("admin.settings.defaults.defaultSubscriptionsDuplicate",{groupId:Ds.group_id}));return}for(const q of ts.value){be[q.source].subscriptions=Ia(be[q.source].subscriptions);const Oe=ws(be[q.source].subscriptions);if(Oe){k.showError(`${q.title}: ${t("admin.settings.defaults.defaultSubscriptionsDuplicate",{groupId:Oe.group_id})}`);return}}if(s.wechat_connect_mp_enabled&&s.wechat_connect_mobile_enabled){k.showError(x("公众号和移动应用不能同时启用。","Official Account and Mobile App cannot be enabled at the same time."));return}const Ea=q=>{if(!q)return!0;try{const Oe=new URL(q);return Oe.protocol==="http:"||Oe.protocol==="https:"}catch{return!1}};if(Ea(s.frontend_url)||(s.frontend_url=""),Ea(s.doc_url)||(s.doc_url=""),!Ea(s.company_documentation_url)){k.showError(t("admin.settings.features.company.documentationURLInvalid"));return}const Ta=Number(s.company_upgrade_fee);if(!Number.isFinite(Ta)||Ta<=0){k.showError(t("admin.settings.features.company.upgradeFeeInvalid"));return}jt();const Os=Nt(s.wechat_connect_open_enabled,s.wechat_connect_mp_enabled,s.wechat_connect_mobile_enabled,s.wechat_connect_mode),zs=ta(Qe.value);s.claude_oauth_system_prompt_blocks=zs;const ht=s.openai_oauth_scheduling_rate_multiplier;if(ht!==""&&ht!==null&&(!Number.isFinite(ht)||ht<0)){k.showError(t("admin.settings.openaiExperimentalScheduler.oauthRateInvalid"));return}const At={registration_enabled:s.registration_enabled,email_verify_enabled:s.email_verify_enabled,registration_email_suffix_whitelist:Y.value.map(q=>q.startsWith("*.")?q:`@${q}`),registration_email_domain_quota_enabled:s.registration_email_domain_quota_enabled,promo_code_enabled:s.promo_code_enabled,invitation_code_enabled:s.invitation_code_enabled,password_reset_enabled:s.password_reset_enabled,totp_enabled:s.totp_enabled,passkey_enabled:s.passkey_enabled,session_binding_enabled:s.session_binding_enabled,step_up_enabled:s.step_up_enabled,company_upgrade_charge_enabled:s.company_upgrade_charge_enabled,company_upgrade_fee:Ta,company_applications_enabled:s.company_applications_enabled,company_iam_enabled:s.company_iam_enabled,company_public_ids_finalized:s.company_public_ids_finalized,company_billing_integration_enabled:s.company_billing_integration_enabled,company_documentation_url:s.company_documentation_url.trim(),audit_log_retention_days:Number.isFinite(s.audit_log_retention_days)?s.audit_log_retention_days:180,login_agreement_enabled:s.login_agreement_enabled,login_agreement_mode:s.login_agreement_mode,login_agreement_updated_at:s.login_agreement_updated_at,login_agreement_documents:s.login_agreement_documents,default_balance:s.default_balance,affiliate_rebate_rate:Math.min(100,Math.max(0,Number(s.affiliate_rebate_rate)||0)),affiliate_rebate_freeze_hours:Math.max(0,Math.min(720,Number(s.affiliate_rebate_freeze_hours)||0)),affiliate_rebate_duration_days:Math.max(0,Math.min(3650,Math.floor(Number(s.affiliate_rebate_duration_days)||0))),affiliate_rebate_per_invitee_cap:Math.max(0,Number(s.affiliate_rebate_per_invitee_cap)||0),affiliate_admin_recharge_enabled:s.affiliate_admin_recharge_enabled,default_concurrency:s.default_concurrency,default_subscriptions:js,force_email_on_third_party_signup:s.force_email_on_third_party_signup,default_user_rpm_limit:s.default_user_rpm_limit,site_name:s.site_name,site_logo:s.site_logo,site_subtitle:s.site_subtitle,api_base_url:s.api_base_url,contact_info:s.contact_info,doc_url:s.doc_url,home_content:s.home_content,compact_home_enabled:s.compact_home_enabled,backend_mode_enabled:s.backend_mode_enabled,hide_ccs_import_button:s.hide_ccs_import_button,table_default_page_size:s.table_default_page_size,table_page_size_options:s.table_page_size_options,custom_menu_items:ni(s.custom_menu_items),home_product_menu_items:gs(s.home_product_menu_items),custom_endpoints:s.custom_endpoints,frontend_url:s.frontend_url,smtp_host:s.smtp_host,smtp_port:s.smtp_port,smtp_username:s.smtp_username,smtp_password:s.smtp_password||void 0,smtp_from_email:s.smtp_from_email,smtp_from_name:s.smtp_from_name,smtp_use_tls:s.smtp_use_tls,turnstile_enabled:s.turnstile_enabled,turnstile_site_key:s.turnstile_site_key,turnstile_secret_key:s.turnstile_secret_key||void 0,tencent_captcha_enabled:s.tencent_captcha_enabled,tencent_captcha_app_id:s.tencent_captcha_app_id,tencent_captcha_app_secret_key:s.tencent_captcha_app_secret_key||void 0,tencent_captcha_cloud_secret_id:s.tencent_captcha_cloud_secret_id||void 0,tencent_captcha_cloud_secret_key:s.tencent_captcha_cloud_secret_key||void 0,tencent_captcha_region:s.tencent_captcha_region,aliyun_captcha_enabled:s.aliyun_captcha_enabled,aliyun_captcha_access_key_id:s.aliyun_captcha_access_key_id,aliyun_captcha_access_key_secret:s.aliyun_captcha_access_key_secret||void 0,aliyun_captcha_scene_id:s.aliyun_captcha_scene_id,aliyun_captcha_prefix:s.aliyun_captcha_prefix,aliyun_captcha_region:s.aliyun_captcha_region,api_key_acl_trust_forwarded_ip:s.api_key_acl_trust_forwarded_ip,forwarded_client_ip_headers:s.forwarded_client_ip_headers,linuxdo_connect_enabled:s.linuxdo_connect_enabled,linuxdo_connect_client_id:s.linuxdo_connect_client_id,linuxdo_connect_client_secret:s.linuxdo_connect_client_secret||void 0,linuxdo_connect_redirect_url:s.linuxdo_connect_redirect_url,dingtalk_connect_enabled:s.dingtalk_connect_enabled,dingtalk_connect_client_id:s.dingtalk_connect_client_id,dingtalk_connect_client_secret:s.dingtalk_connect_client_secret||void 0,dingtalk_connect_redirect_url:s.dingtalk_connect_redirect_url,dingtalk_connect_corp_restriction_policy:s.dingtalk_connect_corp_restriction_policy,dingtalk_connect_internal_corp_i
12d:s.dingtalk_connect_internal_corp_id,dingtalk_connect_bypass_registration:s.dingtalk_connect_bypass_registration,dingtalk_connect_sync_corp_email:s.dingtalk_connect_sync_corp_email,dingtalk_connect_sync_display_name:s.dingtalk_connect_sync_display_name,dingtalk_connect_sync_dept:s.dingtalk_connect_sync_dept,dingtalk_connect_sync_corp_email_attr_key:s.dingtalk_connect_sync_corp_email_attr_key,dingtalk_connect_sync_display_name_attr_key:s.dingtalk_connect_sync_display_name_attr_key,dingtalk_connect_sync_dept_attr_key:s.dingtalk_connect_sync_dept_attr_key,dingtalk_connect_sync_corp_email_attr_name:s.dingtalk_connect_sync_corp_email_attr_name,dingtalk_connect_sync_display_name_attr_name:s.dingtalk_connect_sync_display_name_attr_name,dingtalk_connect_sync_dept_attr_name:s.dingtalk_connect_sync_dept_attr_name,wechat_connect_enabled:s.wechat_connect_enabled,wechat_connect_app_id:s.wechat_connect_open_app_id||s.wechat_connect_mp_app_id||s.wechat_connect_mobile_app_id||s.wechat_connect_app_id,wechat_connect_app_secret:s.wechat_connect_app_secret||void 0,wechat_connect_open_app_id:s.wechat_connect_open_app_id,wechat_connect_open_app_secret:s.wechat_connect_open_app_secret||void 0,wechat_connect_mp_app_id:s.wechat_connect_mp_app_id,wechat_connect_mp_app_secret:s.wechat_connect_mp_app_secret||void 0,wechat_connect_mobile_app_id:s.wechat_connect_mobile_app_id,wechat_connect_mobile_app_secret:s.wechat_connect_mobile_app_secret||void 0,wechat_connect_open_enabled:s.wechat_connect_open_enabled,wechat_connect_mp_enabled:s.wechat_connect_mp_enabled,wechat_connect_mobile_enabled:s.wechat_connect_mobile_enabled,wechat_connect_mode:Os,wechat_connect_scopes:Kt(Os),wechat_connect_redirect_url:s.wechat_connect_redirect_url,wechat_connect_frontend_redirect_url:s.wechat_connect_frontend_redirect_url,oidc_connect_enabled:s.oidc_connect_enabled,oidc_connect_provider_name:s.oidc_connect_provider_name,oidc_connect_client_id:s.oidc_connect_client_id,oidc_connect_client_secret:s.oidc_connect_client_secret||void 0,oidc_connect_issuer_url:s.oidc_connect_issuer_url,oidc_connect_discovery_url:s.oidc_connect_discovery_url,oidc_connect_authorize_url:s.oidc_connect_authorize_url,oidc_connect_token_url:s.oidc_connect_token_url,oidc_connect_userinfo_url:s.oidc_connect_userinfo_url,oidc_connect_jwks_url:s.oidc_connect_jwks_url,oidc_connect_scopes:s.oidc_connect_scopes,oidc_connect_redirect_url:s.oidc_connect_redirect_url,oidc_connect_frontend_redirect_url:s.oidc_connect_frontend_redirect_url,oidc_connect_token_auth_method:s.oidc_connect_token_auth_method,oidc_connect_use_pkce:s.oidc_connect_use_pkce,oidc_connect_validate_id_token:s.oidc_connect_validate_id_token,oidc_connect_allowed_signing_algs:s.oidc_connect_allowed_signing_algs,oidc_connect_clock_skew_seconds:s.oidc_connect_clock_skew_seconds,oidc_connect_require_email_verified:s.oidc_connect_require_email_verified,oidc_connect_userinfo_email_path:s.oidc_connect_userinfo_email_path,oidc_connect_userinfo_id_path:s.oidc_connect_userinfo_id_path,oidc_connect_userinfo_username_path:s.oidc_connect_userinfo_username_path,github_oauth_enabled:s.github_oauth_enabled,github_oauth_client_id:s.github_oauth_client_id,github_oauth_client_secret:s.github_oauth_client_secret||void 0,github_oauth_redirect_url:s.github_oauth_redirect_url,github_oauth_frontend_redirect_url:s.github_oauth_frontend_redirect_url,google_oauth_enabled:s.google_oauth_enabled,google_oauth_client_id:s.google_oauth_client_id,google_oauth_client_secret:s.google_oauth_client_secret||void 0,google_oauth_redirect_url:s.google_oauth_redirect_url,google_oauth_frontend_redirect_url:s.google_oauth_frontend_redirect_url,enable_model_fallback:s.enable_model_fallback,fallback_model_anthropic:s.fallback_model_anthropic,fallback_model_openai:s.fallback_model_openai,fallback_model_gemini:s.fallback_model_gemini,fallback_model_antigravity:s.fallback_model_antigravity,grok_default_text_model:s.grok_default_text_model.trim()||"grok-4.5",grok_cross_client_model_map_enabled:s.grok_cross_client_model_map_enabled,grok_default_base_url_mode:s.grok_default_base_url_mode,enable_identity_patch:s.enable_identity_patch,identity_patch_prompt:s.identity_patch_prompt,min_claude_code_version:s.min_claude_code_version,max_claude_code_version:s.max_claude_code_version,allow_ungrouped_key_scheduling:s.allow_ungrouped_key_scheduling,openai_ttft_mode:s.openai_ttft_mode==="visible"?"visible":"semantic",enable_fingerprint_unification:s.enable_fingerprint_unification,enable_metadata_passthrough:s.enable_metadata_passthrough,enable_cch_signing:s.enable_cch_signing,enable_claude_oauth_system_prompt_injection:s.enable_claude_oauth_system_prompt_injection,claude_oauth_system_prompt:(l=s.claude_oauth_system_prompt)!=null&&l.trim()?s.claude_oauth_system_prompt:"",claude_oauth_system_prompt_blocks:zs,enable_anthropic_cache_ttl_1h_injection:s.enable_anthropic_cache_ttl_1h_injection,rewrite_message_cache_control:s.rewrite_message_cache_control,enable_client_dateline_normalization:s.enable_client_dateline_normalization,antigravity_user_agent_version:((i=s.antigravity_user_agent_version)==null?void 0:i.trim())||"",openai_codex_user_agent:((p=s.openai_codex_user_agent)==null?void 0:p.trim())||"",openai_codex_client_version:((o=s.openai_codex_client_version)==null?void 0:o.trim())||"",openai_codex_version_auto_sync_enabled:s.openai_codex_version_auto_sync_enabled,openai_codex_ticket_enabled:s.openai_codex_ticket_enabled,openai_codex_ticket_fail_closed:s.openai_codex_ticket_fail_closed,openai_codex_ticket_strategy:s.openai_codex_ticket_strategy||"standby",openai_codex_ticket_harvest_scope:{mode:s.openai_codex_ticket_harvest_scope.mode,group_ids:[...s.openai_codex_ticket_harvest_scope.group_ids],account_policy:s.openai_codex_ticket_harvest_scope.account_policy},openai_codex_ticket_strict_response:s.openai_codex_ticket_strict_response||!1,openai_codex_ticket_harvest_proxy_url:((m=s.openai_codex_ticket_harvest_proxy_url)==null?void 0:m.trim())||"",openai_codex_ticket_use_saved_static_proxy:Ye.value==="static",openai_codex_ticket_models:[...s.openai_codex_ticket_models],claude_code_client_version:((_=s.claude_code_client_version)==null?void 0:_.trim())||"",claude_code_version_auto_sync_enabled:s.claude_code_version_auto_sync_enabled,min_codex_version:((G=s.min_codex_version)==null?void 0:G.trim())||"",max_codex_version:((Ce=s.max_codex_version)==null?void 0:Ce.trim())||"",codex_cli_only_allow_app_server_clients:s.codex_cli_only_allow_app_server_clients,codex_cli_only_engine_fingerprint_signals:Lg(bt.value),codex_cli_only_blacklist:xs(Pt.value),codex_cli_only_whitelist:xs(Et.value),payment_enabled:s.payment_enabled,risk_control_enabled:s.risk_control_enabled,cyber_policy_user_allowlist:s.cyber_policy_user_allowlist,cyber_session_block_enabled:s.cyber_session_block_enabled,cyber_session_block_ttl_seconds:Number(s.cyber_session_block_ttl_seconds)||3600,cyber_session_identity_strict_enabled:s.cyber_session_identity_strict_enabled,payment_min_amount:Number(s.payment_min_amount)||0,payment_max_amount:Number(s.payment_max_amount)||0,payment_daily_limit:Number(s.payment_daily_limit)||0,payment_max_pending_orders:Number(s.payment_max_pending_orders)||0,payment_order_timeout_minutes:Number(s.payment_order_timeout_minutes)||0,payment_balance_disabled:s.payment_balance_disabled,payment_balance_recharge_multiplier:Number(s.payment_balance_recharge_multiplier)||1,payment_subscription_usd_to_cny_rate:Number(s.payment_subscription_usd_to_cny_rate)||0,payment_recharge_fee_rate:Number(s.payment_recharge_fee_rate)||0,payment_enabled_types:s.payment_enabled_types,payment_load_balance_strategy:s.payment_load_balance_strategy,payment_product_name_prefix:s.payment_product_name_prefix,payment_product_name_suffix:s.payment_product_name_suffix,payment_help_image_url:s.payment_help_image_url,payment_help_text:s.payment_help_text,payment_cancel_rate_limit_enabled:s.payment_cancel_rate_limit_enabled,payment_cancel_rate_limit_max:Number(s.payment_cancel_rate_limit_max)||10,payment_cancel_rate_limit_window:Number(s.payment_cancel_rate_limit_window)||1,payment_cancel_rate_limit_unit:s.payment_cancel_rate_limit_unit,payment_cancel_rate_limit_window_mode:s.payment_cancel_rate_limit_window_mode,payment_alipay_force_qrcode:s.payment_alipay_force_qrcode,payment_alipay_mobile_precreate_deep_link:s.payment_alipay_mobile_precreate_deep_link,openai_low_upstream_rate_priority_enabled:s.openai_low_upstream_rate_priority_enabled,openai_oauth_scheduling_rate_multiplier:ht===""?null:ht,openai_advanced_scheduler_enabled:s.openai_advanced_scheduler_enabled,openai_advanced_scheduler_sticky_weighted_enabled:s.openai_advanced_scheduler_sticky_weighted_enabled,openai_advanced_scheduler_subscription_priority_enabled:s.openai_advanced_scheduler_subscription_priority_enabled,openai_advanced_scheduler_lb_top_k:s.openai_advanced_scheduler_lb_top_k.trim(),openai_advanced_scheduler_weight_priority:s.openai_advanced_scheduler_weight_priority.trim(),openai_advanced_scheduler_weight_load:s.openai_advanced_scheduler_weight_load.trim(),openai_advanced_scheduler_weight_queue:s.openai_advanced_scheduler_weight_queue.trim(),openai_advanced_scheduler_weight_error_rate:s.openai_advanced_scheduler_weight_error_rate.trim(),openai_advanced_scheduler_weight_ttft:s.openai_advanced_scheduler_weight_ttft.trim(),openai_advanced_scheduler_weight_reset:s.openai_advanced_scheduler_weight_reset.trim(),openai_advanced_scheduler_weight_quota_headroom:s.openai_advanced_scheduler_weight_quota_headroom.trim(),openai_advanced_scheduler_weight_upstream_cost:s.openai_advanced_scheduler_weight_upstream_cost.trim(),openai_advanced_scheduler_weight_previous_response:s.openai_advanced_scheduler_weight_previous_response.trim(),openai_advanced_scheduler_weight_session_sticky:s.openai_advanced_scheduler_weight_session_sticky.trim(),balance_low_notify_enabled:s.balance_low_notify_enabled,balance_low_notify_threshold:Number(s.balance_low_notify_threshold)||0,balance_low_notify_recharge_url:s.balance_low_notify_recharge_url=s.balance_low_notify_recharge_url||ra,subscription_expiry_notify_enabled:s.subscription_expiry_notify_enabled,account_quota_notify_enabled:s.account_quota_notify_enabled,account_quota_notify_emails:(s.account_quota_notify_emails||[]).filter(q=>q.email.trim()!==""),channel_monitor_enabled:s.channel_monitor_enabled,channel_monitor_mode:s.channel_monitor_mode==="v1"?"v1":"v2",channel_monitor_default_interval_seconds:Number(s.channel_monitor_default_interval_seconds)||60,channel_monitor_hide_throughput:!!s.channel_monitor_hide_throughput,channel_monitor_show_quota:!!s.channel_monitor_show_quota,channel_monitor_hide_user_ranking:!!s.channel_monitor_hide_user_ranking,available_channels_enabled:s.available_channels_enabled,subscription_enabled:s.subscription_enabled,model_plaza_enabled:s.model_plaza_enabled,model_plaza_require_auth:s.model_plaza_require_auth,model_plaza_description:s.model_plaza_description,plugin_management_enabled:s.plugin_management_enabled,affiliate_enabled:s.affiliate_enabled,allow_user_view_error_requests:s.allow_user_view_error_requests,support_ticket_enabled:s.support_ticket_enabled,support_ticket_categories:(s.support_ticket_categories||[]).map(q=>
12q.trim()).filter(Boolean),support_ticket_default_priority:s.support_ticket_default_priority||"normal",support_ticket_notify_emails:(s.support_ticket_notify_emails||[]).filter(q=>q.email.trim()!=="").map(q=>({...q,email:q.email.trim()})),support_chat_enabled:s.support_chat_enabled,support_chat_excluded_routes:(s.support_chat_excluded_routes||[]).map(q=>q.trim()).filter(Boolean),support_chat_anonymous_llm:s.support_chat_anonymous_llm,support_chat_title:s.support_chat_title.trim(),support_chat_welcome:s.support_chat_welcome.trim(),support_chat_icon:s.support_chat_icon.trim(),support_chat_llm_enabled:s.support_chat_llm_enabled,support_chat_llm_base_url:s.support_chat_llm_base_url.trim(),support_chat_llm_api_key:s.support_chat_llm_api_key||void 0,support_chat_embedding_base_url:s.support_chat_embedding_base_url.trim(),support_chat_embedding_api_key:s.support_chat_embedding_api_key||void 0,support_chat_model:s.support_chat_model.trim(),support_chat_system_prompt:s.support_chat_system_prompt,support_chat_max_turns:Number(s.support_chat_max_turns)||5,support_chat_max_request_tokens:Number(s.support_chat_max_request_tokens)||16e3,support_chat_rl_user_per_day:Number(s.support_chat_rl_user_per_day)||50,support_chat_rl_user_per_min:Number(s.support_chat_rl_user_per_min)||5,support_chat_rl_ip_per_hour:Number(s.support_chat_rl_ip_per_hour)||20,support_chat_faqs:(s.support_chat_faqs||[]).map((q,Oe)=>({question:q.question.trim(),answer:q.answer.trim(),sort_order:Number.isFinite(q.sort_order)?q.sort_order:Oe,enabled:q.enabled!==!1})),support_chat_rag_enabled:s.support_chat_rag_enabled,support_chat_rag_doc_url:s.support_chat_rag_doc_url.trim(),support_chat_rag_doc_depth:Number(s.support_chat_rag_doc_depth)||1,support_chat_rag_doc_cron:s.support_chat_rag_doc_cron||"manual",support_chat_rag_embed_provider:s.support_chat_rag_embed_provider||"gemini",supp
12ort_chat_rag_embed_model:s.support_chat_rag_embed_model.trim(),support_chat_rag_top_k:Number(s.support_chat_rag_top_k)||5,support_chat_rag_chunk_size:Number(s.support_chat_rag_chunk_size)||1200,support_chat_rag_chunk_overlap:Number(s.support_chat_rag_chunk_overlap)||150,usage_show_long_context_badge:s.usage_show_long_context_badge,request_capture_enabled:s.request_capture_enabled,request_capture_quota_mib:s.request_capture_quota_mib,request_capture_retention_days:s.request_capture_retention_days,excel_bps_image_mode:s.excel_bps_image_mode,excel_bps_image_relay_enabled:s.excel_bps_image_relay_enabled,excel_bps_image_base_url:s.excel_bps_image_base_url.trim(),excel_bps_image_body_limit_mib:s.excel_bps_image_body_limit_mib,excel_bps_image_budget_mib:s.excel_bps_image_budget_mib,excel_bps_image_max_requests:s.excel_bps_image_max_requests,excel_bps_image_max_image_mib:s.excel_bps_image_max_image_mib,excel_bps_image_max_images:s.excel_bps_image_max_images,excel_bps_image_limit_policy:s.excel_bps_image_limit_policy,excel_bps_image_warning_remaining:s.excel_bps_image_warning_remaining,excel_bps_image_compact_reserve:s.excel_bps_image_compact_reserve,excel_bps_image_max_total_mib:s.excel_bps_image_max_total_mib,excel_bps_image_storage_mib:s.excel_bps_image_storage_mib,excel_bps_image_storage_entries:s.excel_bps_image_storage_entries,excel_bps_image_ttl_minutes:s.excel_bps_image_ttl_minutes};Zt.value&&(At.openai_fast_policy_settings={rules:ut.rules.map(q=>{const Oe=(q.model_whitelist||[]).map(Ma=>Ma.trim()).filter(Ma=>Ma!==""),Aa=Oe.length>0;return{service_tier:q.service_tier,action:q.action,scope:q.scope,user_ids:q.user_ids&&q.user_ids.length>0?[...q.user_ids]:void 0,error_message:q.action==="block"?q.error_message:void 0,model_whitelist:Aa?Oe:void 0,fallback_action:Aa?q.fallback_action||"pass":void 0,fallback_error_message:Aa&&q.fallback_action==="block"?q.fallback_error_message:void 0}})}),At.default_platform_quotas=Xo(s.default_platform_quotas),At.account_scheduling_thresholds=Zo(s.account_scheduling_thresholds),el(At,be);const Ue=await L.run(()=>O.settings.updateSettings(At));for(const[q,Oe]of Object.entries(Ue))q!=="openai_fast_policy_settings"&&Oe!=null&&(s[q]=Oe);Ue.openai_oauth_scheduling_rate_multiplier===null&&(s.openai_oauth_scheduling_rate_multiplier=null),Object.assign(be,Ha(Ue)),s.default_platform_quotas=La(Ue.default_platform_quotas),s.account_scheduling_thresholds=Fa(Ue.account_scheduling_thresholds),Y.value=en(Ue.registration_email_suffix_whitelist),s.forwarded_client_ip_headers=la(Ue.forwarded_client_ip_headers),j.value="",se.value=ys(Array.isArray(Ue.table_page_size_options)?Ue.table_page_size_options:[10,20,50,100]),ge.value="",s.smtp_password="",K.value=!1,s.turnstile_secret_key="",s.aliyun_captcha_access_key_secret="",s.linuxdo_connect_client_secret="",s.dingtalk_connect_client_secret="",s.github_oauth_client_secret="",s.google_oauth_client_secret="",s.wechat_connect_app_secret="",s.wechat_connect_open_app_secret="",s.wechat_connect_mp_app_secret="",s.wechat_connect_mobile_app_secret="";const ft=Ra(Ue.wechat_connect_open_enabled,Ue.wechat_connect_mp_enabled,Ue.wechat_connect_mobile_enabled,Ue.wechat_connect_mode);s.wechat_connect_open_enabled=ft.openEnabled,s.wechat_connect_mp_enabled=ft.mpEnabled,s.wechat_connect_mobile_enabled=ft.mobileEnabled,s.wechat_connect_mode=Nt(ft.openEnabled,ft.mpEnabled,ft.mobileEnabled,Ue.wechat_connect_mode),s.wechat_connect_scopes=Kt(s.wechat_connect_mode),s.oidc_connect_client_secret="",Ue.openai_fast_policy_settings&&Array.isArray(Ue.openai_fast_policy_settings.rules)&&(ut.rules=Ue.openai_fast_policy_settings.rules.map(q=>({...q,user_ids:q.user_ids?[...q.user_ids]:[],model_whitelist:q.model_whitelist?[...q.model_whitelist]:[]})),Zt.value=!0);const qo=await jn();await k.fetchPublicSettings(!0),await P.fetch(!0),qo&&k.showSuccess(t("admin.settings.settingsSaved"))}catch(Je){if(vt(Je))return;if(_n(Je)){k.showError(mn(Je)==="STEP_UP_ADMIN_API_KEY_FORBIDDEN"?t("stepUp.adminApiKeyForbidden"):t("stepUp.notEnabled"));return}if((Je==null?void 0:Je.reason)==="STEP_UP_ENABLE_REQUIRES_TOTP"){k.showError(t("admin.settings.security.stepUpEnableRequiresTotp"));return}k.showError(pe(Je,t("admin.settings.failedToSave")))}finally{D.value=!1}}async function Li(){Q.value=!0;try{const l=K.value?s.smtp_password:"",i=await O.settings.testSmtpConnection({smtp_host:s.smtp_host,smtp_port:s.smtp_port,smtp_username:s.smtp_username,smtp_password:l,smtp_use_tls:s.smtp_use_tls});k.showSuccess(i.message||t("admin.settings.smtpConnectionSuccess"))}catch(l){k.showError(pe(l,t("admin.settings.failedToTestSmtp")))}finally{Q.value=!1}}async function Hi(){if(!Z.value){k.showError(t("admin.settings.testEmail.enterRecipientHint"));return}z.value=!0;try{const l=K.value?s.smtp_password:"",i=await O.settings.sendTestEmail({email:Z.value,smtp_host:s.smtp_host,smtp_port:s.smtp_port,smtp_username:s.smtp_username,smtp_password:l,smtp_from_email:s.smtp_from_email,smtp_from_name:s.smtp_from_name,smtp_use_tls:s.smtp_use_tls});k.showSuccess(i.message||t("admin.settings.testEmailSent"))}catch(l){k.showError(pe(l,t("admin.settings.failedToSendTestEmail")))}finally{z.value=!1}}async function Ii(){ne.value=!0;try{const l=await O.settings.getAdminApiKey();Fe.value=l.exists,ve.value=l.masked_key}catch{}finally{ne.value=!1}}async function Us(){he.value=!0;try{const l=await O.settings.regenerateAdminApiKey();Le.value=l.key,Fe.value=!0,ve.value=l.key.substring(0,10)+"..."+l.key.slice(-4),k.showSuccess(t("admin.settings.adminApiKey.keyGenerated"))}catch(l){k.showError(pe(l,t("common.error")))}finally{he.value=!1}}async function Ri(){confirm(t("admin.settings.adminApiKey.regenerateConfirm"))&&await Us()}async function Bi(){if(confirm(t("admin.settings.adminApiKey.deleteConfirm"))){he.value=!0;try{await O.settings.deleteAdminApiKey(),Fe.value=!1,ve.value="",Le.value="",k.showSuccess(t("admin.settings.adminApiKey.keyDeleted"))}catch(l){k.showError(pe(l,t("common.error")))}finally{he.value=!1}}}function ji(){navigator.clipboard.writeText(Le.value).then(()=>{k.showSuccess(t("admin.settings.adminApiKey.keyCopied"))}).catch(()=>{k.showError(t("common.copyFailed"))})}async function Di(){Ze.value=!0;try{Object.assign(Ee,await O.accounts.getUpstreamBillingProbeSettings())}catch{}finally{Ze.value=!1}}async function Ss(){et.value=!0;try{const l=await O.accounts.updateUpstreamBillingProbeSettings({...Ee});Object.assign(Ee,l),k.showSuccess(t("admin.settings.upstreamBillingProbe.saved"))}catch(l){k.showError(pe(l,t("admin.settings.upstreamBillingProbe.saveFailed")))}finally{et.value=!1}}async function Oi(){Be.value=!0;try{Object.assign(Te,await O.accounts.getOllamaCloudUsageSettings())}catch{}finally{Be.value=!1}}async function ba(){tt.value=!0;try{const l=await O.accounts.updateOllamaCloudUsageSettings({...Te});Object.assign(Te,l),k.showSuccess(t("admin.settings.ollamaCloudUsage.saved"))}catch(l){k.showError(pe(l,t("admin.settings.ollamaCloudUsage.saveFailed")))}finally{tt.value=!1}}async function zi(){ot.value=!0;try{Object.assign(we,await O.accounts.getOpenCodeGoUsageSettings())}catch{}finally{ot.value=!1}}async function xa(){Ke.value=!0;try{const l=await O.accounts.updateOpenCodeGoUsageSettings({...we});Object.assign(we,l),k.showSuccess(t("admin.settings.opencodeGoUsage.saved"))}catch(l){k.showError(pe(l,t("admin.settings.opencodeGoUsage.saveFailed")))}finally{Ke.value=!1}}async function qi(){je.value=!0;try{const l=await O.settings.getOverloadCooldownSettings();Object.assign(b,l)}catch{}finally{je.value=!1}}async function Ni(){at.value=!0;try{const l=await O.settings.updateOverloadCooldownSettings({enabled:b.enabled,cooldown_minutes:b.cooldown_minutes});Object.assign(b,l),k.showSuccess(t("admin.settings.overloadCooldown.saved"))}catch(l){k.showError(pe(l,t("admin.settings.overloadCooldown.saveFailed")))}finally{at.value=!1}}async function Ki(){ie.value=!0;try{const l=await O.settings.getPanelRateLimitSettings();Object.assign(fe,l)}catch{}finally{ie.value=!1}}async function Wi(){Ve.value=!0;try{const l=await O.settings.updatePanelRateLimitSettings({enabled:fe.enabled,user_rpm:fe.user_rpm,heavy_rpm:fe.heavy_rpm,exempt_admin:fe.exempt_admin,public_ip_rpm:fe.public_ip_rpm});Object.assign(fe,l),k.showSuccess(t("admin.settings.panelRateLimit.saved"))}catch(l){k.showError(pe(l,t("admin.settings.panelRateLimit.saveFailed")))}finally{Ve.value=!1}}async function Gi(){y.value=!0;try{const l=await O.settings.getRateLimit429CooldownSettings();Object.assign(F,l)}catch{}finally{y.value=!1}}async function Qi(){V.value=!0;try{const l=await O.settings.updateRateLimit429CooldownSettings({enabled:F.enabled,cooldown_seconds:F.cooldown_seconds});Object.assign(F,l),k.showSuccess(t("admin.settings.rateLimit429Cooldown.saved"))}catch(l){k.showError(pe(l,t("admin.settings.rateLimit429Cooldown.saveFailed")))}finally{V.value=!1}}async function Yi(){$.value=!0;try{const l=await O.settings.getStreamTimeoutSettings();Object.assign(v,l)}catch{}finally{$.value=!1}}async function Ji(){C.value=!0;try{const l=await O.settings.updateStreamTimeoutSettings({enabled:v.enabled,action:v.action,temp_unsched_minutes:v.temp_unsched_minutes,threshold_count:v.threshold_count,threshold_window_minutes:v.threshold_window_minutes});Object.assign(v,l),k.showSuccess(t("admin.settings.streamTimeout.saved"))}catch(l){k.showError(pe(l,t("admin.settings.streamTimeout.saveFailed")))}finally{C.value=!1}}async function Xi(){re.value=!0;try{const l=await O.settings.getRectifierSettings();Object.assign(_e,l),Array.isArray(_e.apikey_signature_patterns)||(_e.apikey_signature_patterns=[])}catch{}finally{re.value=!1}}async function Zi(){xe.value=!0;try{const l=await O.settings.updateRectifierSettings({enabled:_e.enabled,thinking_signature_enabled:_e.thinking_signature_enabled,thinking_budget_enabled:_e.thinking_budget_enabled,apikey_signature_enabled:_e.apikey_signature_enabled,apikey_signature_patterns:_e.apikey_signature_patterns.filter(i=>i.trim()!=="")});Object.assign(_e,l),Array.isArray(_e.apikey_signature_patterns)||(_e.apikey_signature_patterns=[]),k.showSuccess(t("admin.settings.rectifier.saved"))}catch(l){k.showError(pe(l,t("admin.settings.rectifier.saveFailed")))}finally{xe.value=!1}}const $s=B(()=>[{value:"pass",label:t("admin.settings.betaPolicy.actionPass")},{value:"filter",label:t("admin.settings.betaPolicy.actionFilter")},{value:"block",label:t("admin.settings.betaPolicy.actionBlock")}]),eo=B(()=>[{value:"all",label:t("admin.settings.betaPolicy.scopeAll")},{value:"oauth",label:t("admin.settings.betaPolicy.scopeOAuth")},{value:"apikey",label:t("admin.settings.betaPolicy.scopeAPIKey")},{value:"bedrock",label:t("admin.settings.betaPolicy.scopeBedrock")}
12]),to={"fast-mode-2026-02-01":"Fast Mode","context-1m-2025-08-07":"Context 1M"},Ps={"context-1m-2025-08-07":[{label:t("admin.settings.betaPolicy.presetOpusOnly"),description:t("admin.settings.betaPolicy.presetOpusOnlyDesc"),action:"pass",model_whitelist:["claude-opus-4-6"],fallback_action:"filter"}]},ao=["claude-opus-4-6","claude-sonnet-4-6","claude-opus-*","claude-sonnet-*"];function so(l){return to[l]||l}function no(l,i){l.action=i.action,l.model_whitelist=[...i.model_whitelist],l.fallback_action=i.fallback_action}function io(l,i){l.model_whitelist||(l.model_whitelist=[]),l.model_whitelist.includes(i)||l.model_whitelist.push(i)}async function oo(){Ut.value=!0;try{const l=await O.settings.getBetaPolicySettings();It.rules=l.rules}catch{}finally{Ut.value=!1}}const lo=B(()=>[{value:"all",label:t("admin.settings.openaiFastPolicy.tierAll")},{value:"priority",label:t("admin.settings.openaiFastPolicy.tierPriority")},{value:"ultrafast",label:t("admin.settings.openaiFastPolicy.tierUltrafast")},{value:"flex",label:t("admin.settings.openaiFastPolicy.tierFlex")},{value:"missing",label:t("admin.settings.openaiFastPolicy.tierMissing")}]),Es=B(()=>[{value:"pass",label:t("admin.settings.openaiFastPolicy.actionPass")},{value:"filter",label:t("admin.settings.openaiFastPolicy.actionFilter")},{value:"force_priority",label:t("admin.settings.openaiFastPolicy.actionForcePriority")},{value:"block",label:t("admin.settings.openaiFastPolicy.actionBlock")}]);function Ts(l){return t(`admin.settings.openaiFastPolicy.summaryAction.${l}`)}function ha(l){var i;return!!((i=l.model_whitelist)!=null&&i.some(p=>p.trim()!==""))}const ro=B(()=>[{value:"all",label:t("admin.settings.openaiFastPolicy.scopeAll")},{value:"oauth",label:t("admin.settings.openaiFastPolicy.scopeOAuth")},{value:"apikey",label:t("admin.settings.openaiFastPolicy.scopeAPIKey")},{value:"bedrock",label:t("admin.settings.openaiFastPolicy.scopeBedrock")}]);function co(){ut.rules.push({service_tier:"priority",action:"filter",scope:"all",user_ids:[],error_message:"",model_whitelist:[],fallback_action:"pass",fallback_error_message:""})}function uo(l){ut.rules.splice(l,1)}function _o(l){l.model_whitelist||(l.model_whitelist=[]),l.model_whitelist.push("")}function mo(l,i){var p;(p=l.model_whitelist)==null||p.splice(i,1)}async function po(){St.value=!0;try{const l=It.rules.map(p=>{var _;const o=(_=p.model_whitelist)==null?void 0:_.filter(G=>G.trim()!==""),m=o&&o.length>0;return{beta_token:p.beta_token,action:p.action,scope:p.scope,error_message:p.error_message,model_whitelist:m?o:void 0,fallback_action:m?p.fallback_action||"pass":void 0,fallback_error_message:m&&p.fallback_action==="block"?p.fallback_error_message:void 0}}),i=await O.settings.updateBetaPolicySettings({rules:l});It.rules=i.rules,k.showSuccess(t("admin.settings.betaPolicy.saved"))}catch(l){k.showError(pe(l,t("admin.settings.betaPolicy.saveFailed")))}finally{St.value=!1}}const fa=B(()=>[{value:"easypay",label:t("payment.methods.easypay")},{value:"alipay",label:t("payment.methods.alipay")},{value:"wxpay",label:t("payment.methods.wxpay")},{value:"stripe",label:t("payment.methods.stripe")},{value:"airwallex",label:t("payment.methods.airwallex")}]);function go(l){return s.payment_enabled_types.includes(l)}const yo=B(()=>s.payment_enabled_types.length>0);function bo(l){s.payment_enabled_types.includes(l)?(s.payment_enabled_types=s.payment_enabled_types.filter(i=>i!==l),xo(l)):s.payment_enabled_types=[...s.payment_enabled_types,l]}async function xo(l){const i=Dt.value.filter(p=>p.provider_key===l&&p.enabled);for(const p of i)try{await O.payment.updateProvider(p.id,{enabled:!1}),p.enabled=!1}catch(o){ho("disable provider failed",p.id,o)}}function ho(...l){console.warn("[payment]",...l)}const ka=U(!1),va=U(!1),Dt=U([]),Tt=U(!1),Ot=U(!1),it=U(null),wa=U(null),Ca=U(null),As=B(()=>[{value:"easypay",label:t("admin.settings.payment.providerEasypay")},{value:"alipay",label:t("admin.settings.payment.providerAlipay")},{value:"wxpay",label:t("admin.settings.payment.providerWxpay")},{value:"stripe",label:t("admin.settings.payment.providerStripe")},{value:"airwallex",label:t("admin.settings.payment.providerAirwallex")}]),Ms=B(()=>{const l=s.payment_enabled_types;return As.value.filter(i=>l.includes(i.value))}),fo=B(()=>[{value:"round-robin",label:t("admin.settings.payment.strategyRoundRobin")},{value:"least-amount",label:t("admin.settings.payment.strategyLeastAmount")}]),ko=B(()=>[{value:"minute",label:t("admin.settings.payment.cancelRateLimitUnitMinute")},{value:"hour",label:t("admin.settings.payment.cancelRateLimitUnitHour")},{value:"day",label:t("admin.settings.payment.cancelRateLimitUnitDay")}]),vo=B(()=>[{value:"rolling",label:t("admin.settings.payment.cancelRateLimitWindowModeRolling")},{value:"fixed",label:t("admin.settings.payment.cancelRateLimitWindowModeFixed")}]);function Fs(l){if(!l.enabled)return[];
12const i=Array.isArray(l.supported_types)?l.supported_types:[],p=new Set,o=m=>{const _=ja(m);(_==="alipay"||_==="wxpay")&&p.add(_)};return l.provider_key==="alipay"?i.length===0?p.add("alipay"):i.forEach(m=>{ja(m)==="alipay"&&p.add("alipay")}):l.provider_key==="wxpay"?i.length===0?p.add("wxpay"):i.forEach(m=>{ja(m)==="wxpay"&&p.add("wxpay")}):l.provider_key==="easypay"&&i.forEach(o),Array.from(p)}function Va(l){const i=Fs(l);if(i.length===0)return null;for(const p of Dt.value){if(p.id===l.id||!p.enabled)continue;const o=Fs(p),m=i.find(_=>o.includes(_));if(m)return{method:m,conflicting:p}}return null}function Ua(l){k.showError(t("admin.settings.payment.enableConflict",{method:t(`payment.methods.${l.method}`),provider:l.conflicting.name}))}async function rt(){ka.value=!0;try{const l=await O.payment.getProviders();Dt.value=(l.data||[]).map(i=>({...i,supported_types:Array.isArray(i.supported_types)?i.supported_types:[]}))}catch(l){k.showError(kt(l,t,"payment.errors",t("common.error")))}finally{ka.value=!1}}function wo(){var l,i;it.value=null,(i=Ca.value)==null||i.reset(((l=Ms.value[0])==null?void 0:l.value)||"easypay"),Tt.value=!0}function Co(l){var i;it.value=l,(i=Ca.value)==null||i.loadProvider(l),Tt.value=!0}async function Vo(l){var i,p,o,m,_;va.value=!0;try{const G={id:((i=it.value)==null?void 0:i.id)??0,provider_key:l.provider_key??((p=it.value)==null?void 0:p.provider_key)??"",supported_types:l.supported_types??((o=it.value)==null?void 0:o.supported_types)??[],enabled:l.enabled??((m=it.value)==null?void 0:m.enabled)??!1,name:l.name??((_=it.value)==null?void 0:_.name)??""},Ce=Va(G);if(Ce){Ua(Ce);return}it.value?await O.payment.updateProvider(it.value.id,l):await O.payment.createProvider(l),Tt.value=!1,await rt(),await Vs()}catch(G){k.showError(kt(G,t,"payment.errors",t("common.error")))}finally{va.value=!1}}async function Uo(l,i){let p;if(i==="enabled"?p=!l.enabled:i==="refund_enabled"?p=!l.refund_enabled:p=!l.allow_user_refund,i==="enabled"&&p){const m=Va({id:l.id,provider_key:l.provider_key,supported_types:l.supported_types,enabled:!0,name:l.name});if(m){Ua(m);return}}const o={[i]:p};i==="refund_enabled"&&!p&&(o.allow_user_refund=!1);try{await O.payment.updateProvider(l.id,o),await rt()}catch(m){k.showError(kt(m,t,"payment.errors",t("common.error")))}}async function So(l,i){const p=Array.isArray(l.supported_types)?l.supported_types:[],o=p.includes(i)?p.filter(_=>_!==i):[...p,i],m=Va({id:l.id,provider_key:l.provider_key,supported_types:o,enabled:l.enabled,name:l.name});if(m){Ua(m);return}try{await O.payment.updateProvider(l.id,{supported_types:o}),await rt()}catch(_){k.showError(kt(_,t,"payment.errors",t("common.error")))}}function $o(l){wa.value=l.id,Ot.value=!0}async function Po(l){try{await Promise.all(l.map(i=>O.payment.updateProvider(i.id,{sort_order:i.sort_order}))),await rt()}catch(i){k.showError(kt(i,t,"payment.errors",t("common.error"))),rt()}}async function Eo(){if(wa.value)try{await O.payment.deleteProvider(wa.value),k.showSuccess(t("common.deleted")),Ot.value=!1,rt()}catch(l){k.showError(kt(l,t,"payment.errors",t("common.error")))}}ct(()=>{Si(),$i(),Ii(),Di(),Oi(),zi(),qi(),Gi(),Ki(),Yi(),Xi(),oo(),rt()});const ae=ye({loading:!1,entries:[],total:0,page:1,pageSize:20,search:"",selected:[],searchTimer:null}),W=ye({open:!1,mode:"add",saving:!1,userQuery:"",userResults:[],selectedUser:null,editingEntry:null,code:"",rate:"",searchTimer:null}),We=ye({open:!1,saving:!1,rate:""}),De=ye({show:!1,title:"",message:"",confirmText:"",pending:null});function To(l,i,p,o){De.title=l,De.message=i,De.confirmText=p,De.pending=o,De.show=!0}async function Ao(){const l=De.pending;if(De.show=!1,De.pending=null,!!l)try{await l(),k.showSuccess(t("common.saved")),await xt()}catch(i){k.showError(pe(i,t("common.error")))}}function Mo(){De.show=!1,De.pending=null}function Ls(l,i,p){l.searchTimer!=null&&window.clearTimeout(l.searchTimer),l.searchTimer=window.setTimeout(p,i)}function Hs(l){const i=String(l??"").trim();if(i==="")return null;const p=Number(i);if(Number.isNaN(p)||p<0||p>100){k.showError(t("admin.settings.features.affiliate.modal.errorBadRate"));return}return p}
12async function xt(){ae.loading=!0;try{const l=await Mt.listUsers({page:ae.page,page_size:ae.pageSize,search:ae.search});ae.entries=l.items??[],ae.total=l.total??0;const i=new Set(ae.entries.map(p=>p.user_id));ae.selected=ae.selected.filter(p=>i.has(p))}catch(l){k.showError(pe(l,t("common.error")))}finally{ae.loading=!1}}function Fo(){Ls(ae,300,()=>{ae.page=1,xt()})}function Is(l){l<1||(ae.page=l,xt())}function Lo(l){const i=l.target.checked;ae.selected=i?ae.entries.map(p=>p.user_id):[]}function Ho(l){const i=ae.selected.indexOf(l);i>=0?ae.selected.splice(i,1):ae.selected.push(l)}function Rs(l){W.open=!0,W.mode=l?"edit":"add",W.userQuery="",W.userResults=[],W.selectedUser=null,W.editingEntry=l,W.code=l!=null&&l.aff_code_custom?l.aff_code:"",W.rate=(l==null?void 0:l.aff_rebate_rate_percent)!=null?String(l.aff_rebate_rate_percent):""}function Sa(){W.open=!1,W.searchTimer!=null&&(window.clearTimeout(W.searchTimer),W.searchTimer=null)}function Io(){const l=W.userQuery.trim();if(!l){W.userResults=[];return}Ls(W,300,async()=>{try{W.userResults=await Mt.lookupUsers(l)}catch(i){k.showError(pe(i,t("common.error")))}})}function Ro(l){W.selectedUser=l,W.userQuery="",W.userResults=[]}function Bo(){W.selectedUser=null}const $a=B(()=>{var p;if(W.mode==="add"){if(!W.selectedUser)return!1}else if(!W.editingEntry)return!1;const l=W.code.trim()!=="",i=String(W.rate??"").trim()!=="";return l||i?!0:W.mode==="edit"&&((p=W.editingEntry)==null?void 0:p.aff_rebate_rate_percent)!=null});async function jo(){var m;if(!$a.value){k.showError(t("admin.settings.features.affiliate.modal.errorEmpty"));return}let l;W.mode==="add"?l=W.selectedUser.id:l=W.editingEntry.user_id;const i={},p=W.code.trim();p&&(i.aff_code=p.toUpperCase());const o=Hs(W.rate);if(o!==void 0){o===null?W.mode==="edit"&&((m=W.editingEntry)==null?void 0:m.aff_rebate_rate_percent)!=null&&(i.clear_rebate_rate=!0):i.aff_rebate_rate_percent=o,W.saving=!0;try{await Mt.updateUserSettings(l,i),k.showSuccess(t("common.saved")),Sa(),ae.page=1,await xt()}catch(_){k.showError(pe(_,t("common.error")))}finally{W.saving=!1}}}function Do(l){To(t("admin.settings.features.affiliate.customUsers.resetTitle"),t("admin.settings.features.affiliate.customUsers.resetMessage",{email:l.email||`#${l.user_id}`}),t("common.delete"),()=>Mt.clearUserSettings(l.user_id))}function Oo(){ae.selected.length!==0&&(We.open=!0,We.rate="")}async function zo(){const l=Hs(We.rate);if(l===void 0)return;const i=[...ae.selected],p=l===null?{user_ids:i,clear:!0}:{user_ids:i,aff_rebate_rate_percent:l};We.saving=!0;try{await Mt.batchSetRate(p),k.showSuccess(t("common.saved")),We.open=!1,ae.selected=[],await xt()}catch(o){k.showError(pe(o,t("common.error")))}finally{We.saving=!1}}return pt(()=>s.affiliate_enabled,(l,i)=>{l&&!i&&xt()}),pt(()=>s.dingtalk_connect_corp_restriction_policy,l=>{l!=="internal_only"&&(s.dingtalk_connect_bypass_registration&&(s.dingtalk_connect_bypass_registration=!1),s.dingtalk_connect_sync_corp_email&&(s.dingtalk_connect_sync_corp_email=!1),s.dingtalk_connect_sync_display_name&&(s.dingtalk_connect_sync_display_name=!1),s.dingtalk_connect_sync_dept&&(s.dingtalk_connect_sync_dept=!1))}),(l,i)=>{const p=ln("router-link");return r(),Xe(ll,null,{default:$e(()=>[e("div",Ig,[ce.value?(r(),d("div",Rg,[...i[325]||(i[325]=[e("div",{class:"h-8 w-8 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)])])):(r(),d("form",{key:1,onSubmit:Me(Vs,["prevent"]),class:"space-y-6",novalidate:""},[e("div",Bg,[e("nav",{class:"settings-tabs-scroll",role:"tablist","aria-label":a(t)("admin.settings.title")},[e("div",Dg,[(r(),d(R,null,N(A,o=>e("button",{key:o.key,id:`settings-tab-${o.key}`,type:"button",role:"tab","aria-selected":S.value===o.key,tabindex:S.value===o.key?0:-1,class:X(["settings-tab",S.value===o.key&&"settings-tab-active"]),onClick:m=>J(o.key),onKeydown:m=>te(m,o.key)},[e("span",zg,[g(de,{name:o.icon,size:"sm"},null,8,["name"])]),e("span",qg,n(a(t)(`admin.settings.tabs.${o.key}`)),1)],42,Og)),64))])],8,jg)]),c(e("div",Ng,[e("div",Kg,[e("div",Wg,[e("h2",Gg,n(a(t)("admin.settings.adminApiKey.title")),1),e("p",Qg,
12n(a(t)("admin.settings.adminApiKey.description")),1)]),e("div",Yg,[e("div",Jg,[e("div",Xg,[g(de,{name:"exclamationTriangle",size:"md",class:"mt-0.5 flex-shrink-0 text-amber-500"}),e("p",Zg,n(a(t)("admin.settings.adminApiKey.securityWarning")),1)])]),ne.value?(r(),d("div",e0,[i[326]||(i[326]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),I(" "+n(a(t)("common.loading")),1)])):Fe.value?(r(),d("div",i0,[e("div",o0,[e("div",null,[e("label",l0,n(a(t)("admin.settings.adminApiKey.currentKey")),1),e("code",r0,n(ve.value),1)]),e("div",d0,[e("button",{type:"button",onClick:Ri,disabled:he.value,class:"btn btn-secondary btn-sm"},n(he.value?a(t)("admin.settings.adminApiKey.regenerating"):a(t)("admin.settings.adminApiKey.regenerate")),9,c0),e("button",{type:"button",onClick:Bi,disabled:he.value,class:"btn btn-secondary btn-sm text-red-600 hover:text-red-700 dark:text-red-400"},n(a(t)("admin.settings.adminApiKey.delete")),9,u0)])]),Le.value?(r(),d("div",_0,[e("p",m0,n(a(t)("admin.settings.adminApiKey.keyWarning")),1),e("div",p0,[e("code",g0,n(Le.value),1),e("button",{type:"button",onClick:ji,class:"btn btn-primary btn-sm flex-shrink-0"},n(a(t)("admin.settings.adminApiKey.copyKey")),1)]),e("p",y0,n(a(t)("admin.settings.adminApiKey.usage")),1)])):h("",!0)])):(r(),d("div",t0,[e("span",a0,n(a(t)("admin.settings.adminApiKey.notConfigured")),1),e("button",{type:"button",onClick:Us,disabled:he.value,class:"btn btn-primary btn-sm"},[he.value?(r(),d("svg",n0,[...i[327]||(i[327]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])])):h("",!0),I(" "+n(he.value?a(t)("admin.settings.adminApiKey.creating"):a(t)("admin.settings.adminApiKey.create")),1)],8,s0)]))])])],512),[[Se,S.value==="security"]]),c(e("div",b0,[e("div",x0,[e("div",h0,[e("h2",f0,n(a(t)("admin.settings.overloadCooldown.title")),1),e("p",k0,n(a(t)("admin.settings.overloadCooldown.description")),1)]),e("div",v0,[je.value?(r(),d("div",w0,[i[328]||(i[328]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),I(" "+n(a(t)("common.loading")),1)])):(r(),d(R,{key:1},[e("div",C0,[e("div",null,[e("label",V0,n(a(t)("admin.settings.overloadCooldown.enabled")),1),e("p",U0,n(a(t)("admin.settings.overloadCooldown.enabledHint")),1)]),g(T,{modelValue:b.enabled,"onUpdate:modelValue":i[0]||(i[0]=o=>b.enabled=o)},null,8,["modelValue"])]),b.enabled?(r(),d("div",S0,[e("div",null,[e("label",$0,n(a(t)("admin.settings.overloadCooldown.cooldownMinutes")),1),c(e("input",{"onUpdate:modelValue":i[1]||(i[1]=o=>b.cooldown_minutes=o),type:"number",min:"1",max:"120",class:"input w-32"},null,512),[[u,b.cooldown_minutes,void 0,{number:!0}]]),e("p",P0,n(a(t)("admin.settings.overloadCooldown.cooldownMinutesHint")),1)])])):h("",!0),e("div",E0,[e("button",{type:"button",onClick:Ni,disabled:at.value,class:"btn btn-primary btn-sm"},[at.value?(r(),d("svg",A0,[...i[329]||(i[329]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])])):h("",!0),I(" "+n(at.value?a(t)("common.saving"):a(t)("common.save")),1)],8,T0)])],64))])]),e("div",M0,[e("div",F0,[e("h2",L0,n(a(t)("admin.settings.rateLimit429Cooldown.title")),1),e("p",H0,n(a(t)("admin.settings.rateLimit429Cooldown.description")),1)]),e("div",I0,[y.value?(r(),d("div",R0,[i[330]||(i[330]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),I(" "+n(a(t)("common.loading")),1)])):(r(),d(R,{key:1},[e("div",B0,[e("div",null,[e("label",j0,n(a(t)("admin.settings.rateLimit429Cooldown.enabled")),1),e("p",D0,n(a(t)("admin.settings.rateLimit429Cooldown.enabledHint")),1)]),g(T,{modelValue:F.enabled,"onUpdate:modelValue":i[2]||(i[2]=o=>F.enabled=o)},null,8,["modelValue"])]),F.enabled?(r(),d("div",O0,[e("div",null,[e("label",z0,n(a(t)("admin.settings.rateLimit429Cooldown.cooldownSeconds")),1),c(e("input",{"onUpdate:modelValue":i[3]||(i[3]=o=>F.cooldown_seconds=o),type:"number",min:"1",max:"7200",class:"input w-32"},null,512),[[u,F.cooldown_seconds,void 0,{number:!0}]]),e("p",q0,n(a(t)("admin.settings.rateLimit429Cooldown.cooldownSecondsHint")),1)])])):h("",!0),e("div",N0,[e("button",{type:"button",onClick:Qi,disabled:V.value,class:"btn btn-primary btn-sm"},[V.value?(r(),d("svg",W0,[...i[331]||(i[331]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])])):h("",!0),I(" "+n(V.value?a(t)("common.saving"):a(t)("common.save")),1)],8,K0)])],64))])]),e("div",G0,[e("div",Q0,[e("h2",Y0,n(a(t)("admin.settings.streamTimeout.title")),1),e("p",J0,n(a(t)("admin.settings.streamTimeout.description")),1)]),e("div",X0,[$.value?(r(),d("div",Z0,[i[332]||(i[332]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),I(" "+n(a(t)("common.loading")),1)])):(r(),d(R,{key:1},[e("div",ey,[e("div",null,[e("label",ty,n(a(t)("admin.settings.streamTimeout.enabled")),1),e("p",ay,n(a(t)("admin.settings.streamTimeout.enabledHint")),1)]),g(T,{modelValue:v.enabled,"onUpdate:modelValue":i[4]||(i[4]=o=>v.enabled=o)},null,8,["modelValue"])]),v.enabled?(r(),d("div",sy,[e("div",null,[e("label",ny,n(a(t)("admin.settings.streamTimeout.action")),1),c(e("select",{"onUpdate:modelValue":i[5]||(i[5]=o=>v.action=o),class:"input w-64"},[e("option",iy,n(a(t)("admin.settings.streamTimeout.actionTempUnsched")),1),e("option",oy,n(a(t)("admin.settings.streamTimeout.actionError")),1),e("option",ly,n(a(t)("admin.settings.streamTimeout.actionNone")),1)],512),[[Ie,v.action]]),e("p",ry,n(a(t)("admin.settings.streamTimeout.actionHint")),1)]),v.action==="temp_unsched"?(r(),d("div",dy,[e("label",cy,n(a(t)("admin.settings.streamTimeout.tempUnschedMinutes")),1),c(e("input",{"onUpdate:modelValue":i[6]||(i[6]=o=>v.temp_unsched_minutes=o),type:"number",min:"1",max:"60",class:"input w-32"},null,512),[[u,v.temp_unsched_minutes,void 0,{number:!0}]]),e("p",uy,n(a(t)("admin.settings.streamTimeout.tempUnschedMinutesHint")),1)])):h("",!0),e("div",null,[e("label",_y,n(a(t)("admin.settings.streamTimeout.thresholdCount")),1),c(e("input",{"onUpdate:modelValue":i[7]||(i[7]=o=>v.threshold_count=o),type:"number",min:"1",max:"10",class:"input w-32"},null,512),[[u,v.threshold_count,void 0,{number:!0}]]),e("p",my,n(a(t)("admin.settings.streamTimeout.thresholdCountHint")),1)]),e("div",null,[e("label",py,n(a(t)("admin.settings.streamTimeout.thresholdWindowMinutes")),1),c(e("input",{"onUpdate:modelValue":i[8]||(i[8]=o=>v.threshold_window_minutes=o),type:"number",min:"1",max:"60",class:"input w-32"},null,512),[[u,v.threshold_window_minutes,void 0,{number:!0}]]),e("p",gy,n(a(t)("admin.settings.streamTimeout.thresholdWindowMinutesHint")),1)])])):h("",!0),e("div",yy,[e("button",{type:"button",onClick:Ji,disabled:C.value,class:"btn btn-primary btn-sm"},[C.value?(r(),d("svg",xy,[...i[333]||(i[333]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])])):h("",!0),I(" "+n(C.value?a(t)("common.saving"):a(t)("common.save")),1)],8,by)])],64))])]),e("div",hy,[e("div",fy,[e("h2",ky,n(a(t)("admin.settings.rectifier.title")),1),e("p",vy,n(a(t)("admin.settings.rectifier.description")),1)]),e("div",wy,[re.value?(r(),d("div",Cy,[i[334]||(i[334]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),I(" "+n(a(t)("common.loading")),1)])):(r(),d(R,{key:1},[e("div",Vy,[e("div",null,[e("label",Uy,n(a(t)("admin.settings.rectifier.enabled")),1),e("p",Sy,n(a(t)("admin.settings.rectifier.enabledHint")),1)]),g(T,{modelValue:_e.enabled,"onUpdate:modelValue":i[9]||(i[9]=o=>_e.enabled=o)},null,8,["modelValue"])]),_e.enabled?(r(),d("div",$y,[e("div",Py,[e("div",null,[e("label",Ey,n(a(t)("admin.settings.rectifier.thinkingSignature")),1),e("p",Ty,n(a(t)("admin.settings.rectifier.thinkingSignatureHint")),1)]),g(T,{modelValue:_e.thinking_signature_enabled,"onUpdate:modelValue":i[10]||(i[10]=o=>_e.thinking_signature_enabled=o)},null,8,["modelValue"])]),e("div",Ay,[e("div",null,[e("label",My,n(a(t)("admin.settings.rectifier.thinkingBudget")),1),e("p",Fy,n(a(t)("admin.settings.rectifier.thinkingBudgetHint")),1)]),g(T,{modelValue:_e.thinking_budget_enabled,"onUpdate:modelValue":i[11]||(i[11]=o=>_e.thinking_budget_enabled=o)},null,8,["modelValue"])]),e("div",Ly,[e("div",null,[e("label",Hy,n(a(t)("admin.settings.rectifier.apikeySignature")),1),e("p",Iy,n(a(t)("admin.settings.rectifier.apikeySignatureHint")),1)]),g(T,{modelValue:_e.apikey_signature_enabled,"onUpdate:modelValue":i[12]||(i[12]=o=>_e.apikey_signature_enabled=o)},null,8,["modelValue"])]),_e.apikey_signature_enabled?(r(),d("div",Ry,[e("div",null,[e("label",By,n(a(t)("admin.settings.rectifier.apikeyPatterns")),1),e("p",jy,n(a(t)("admin.settings.rectifier.apikeyPatternsHint")),1)]),(r(!0),d(R,null,N(_e.apikey_signature_patterns,(o,m)=>(r(),d("div",{key:m,class:"flex items-center gap-2"},[c(e("input",{"onUpdate:modelValue":_=>_e.apikey_signature_patterns[m]=_,type:"text",class:"input input-sm flex-1",placeholder:a(t)("admin.settings.rectifier.apikeyPatternPlaceholder")},null,8,Dy),[[u,_e.apikey_signature_patterns[m]]]),e("button",{type:"button",onClick:_=>_e.apikey_signature_patterns.splice(m,1),class:"btn btn-ghost btn-xs text-red-500 hover:text-red-700"},[...i[335]||(i[335]=[e("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,Oy)]))),128)),e("button",{type:"button",onClick:i[13]||(i[13]=o=>_e.apikey_signature_patterns.push("")),class:"btn btn-ghost btn-xs text-primary-600 dark:text-primary-400"}," + "+n(a(t)("admin.settings.rectifier.addPattern")),1)])):h("",!0)])):h("",!0),e("div",zy,[e("button",{type:"button",onClick:Zi,disabled:xe.value,class:"btn btn-primary btn-sm"},[xe.value?(r(),d("svg",Ny,[...i[336]||(i[336]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])])):h("",!0),I(" "+n(xe.value?a(t)("common.saving"):a(t)("common.save")),1)],8,qy)])],64))])]),e("div",Ky,[e("div",Wy,[e("h2",Gy,n(a(t)("admin.settings.betaPolicy.title")),1),e("p",Qy,n(a(t)("admin.settings.betaPolicy.description")),1)]),e("div",Yy,[Ut.value?(r(),d("div",Jy,[i[337]||(i[337]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),I(" "+n(a(t)("common.loading")),1)])):(r(),d(R,{key:1},[(r(!0),d(R,null,N(It.rules,o=>{var m;return r(),d("div",{key:o.beta_token,class:"rounded-lg border border-gray-200 p-4 dark:border-dark-600"},[e("div",Xy,[e("span",Zy,n(so(o.beta_token)),1),e("span",eb,n(o.beta_token),1)]),e("div",tb,[e
12("div",null,[e("label",ab,n(a(t)("admin.settings.betaPolicy.action")),1),g(ke,{modelValue:o.action,"onUpdate:modelValue":_=>o.action=_,options:$s.value},null,8,["modelValue","onUpdate:modelValue","options"])]),e("div",null,[e("label",sb,n(a(t)("admin.settings.betaPolicy.scope")),1),g(ke,{modelValue:o.scope,"onUpdate:modelValue":_=>o.scope=_,options:eo.value},null,8,["modelValue","onUpdate:modelValue","options"])])]),o.action==="block"?(r(),d("div",nb,[e("label",ib,n(a(t)("admin.settings.betaPolicy.errorMessage")),1),c(e("input",{"onUpdate:modelValue":_=>o.error_message=_,type:"text",class:"input",placeholder:a(t)("admin.settings.betaPolicy.errorMessagePlaceholder")},null,8,ob),[[u,o.error_message]]),e("p",lb,n(a(t)("admin.settings.betaPolicy.errorMessageHint")),1)])):h("",!0),(m=Ps[o.beta_token])!=null&&m.length?(r(),d("div",rb,[e("label",db,n(a(t)("admin.settings.betaPolicy.quickPresets")),1),e("div",cb,[(r(!0),d(R,null,N(Ps[o.beta_token],_=>(r(),d("button",{key:_.label,type:"button",class:"inline-flex items-center gap-1 rounded-md border border-primary-200 bg-primary-50 px-2.5 py-1 text-xs font-medium text-primary-700 transition-colors hover:bg-primary-100 dark:border-primary-800 dark:bg-primary-900/30 dark:text-primary-300 dark:hover:bg-primary-900/50",onClick:G=>no(o,_),title:_.description},n(_.label),9,ub))),128))])])):h("",!0),e("div",_b,[e("label",mb,n(a(t)("admin.settings.betaPolicy.modelWhitelist")),1),e("p",pb,n(a(t)("admin.settings.betaPolicy.modelWhitelistHint")),1),(r(!0),d(R,null,N(o.model_whitelist||[],(_,G)=>(r(),d("div",{key:G,class:"mb-1.5 flex items-center gap-2"},[c(e("input",{"onUpdate:modelValue":Ce=>o.model_whitelist[G]=Ce,type:"text",class:"input input-sm flex-1",placeholder:a(t)("admin.settings.betaPolicy.modelPatternPlaceholder")},null,8,gb),[[u,o.model_whitelist[G]]]),e("button",{type:"button",onClick:Ce=>o.model_whitelist.splice(G,1),class:"shrink-0 rounded p-1 text-red-400 transition-colors hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-900/20"},[...i[338]||(i[338]=[e("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,yb)]))),128)),e("button",{type:"button",onClick:_=>{o.model_whitelist||(o.model_whitelist=[]),o.model_whitelist.push("")},class:"mb-2 inline-flex items-center gap-1 text-xs text-primary-600 transition-colors hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300"},[i[339]||(i[339]=e("svg",{class:"h-3.5 w-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1)),I(" "+n(a(t)("admin.settings.betaPolicy.addModelPattern")),1)],8,bb),e("div",xb,[e("span",hb,n(a(t)("admin.settings.betaPolicy.commonPatterns"))+":",1),(r(),d(R,null,N(ao,_=>e("button",{key:_,type:"button",class:"rounded border border-gray-200 px-2 py-0.5 text-xs text-gray-600 transition-colors hover:border-primary-300 hover:bg-primary-50 hover:text-primary-700 dark:border-dark-600 dark:text-gray-400 dark:hover:border-primary-700 dark:hover:bg-primary-900/30 dark:hover:text-primary-300",onClick:G=>io(o,_)},n(_),9,fb)),64))])]),o.model_whitelist&&o.model_whitelist.length>0?(r(),d("div",kb,[e("label",vb,n(a(t)("admin.settings.betaPolicy.fallbackAction")),1),g(ke,{modelValue:o.fallback_action||"pass","onUpdate:modelValue":_=>o.fallback_action=_,options:$s.value},null,8,["modelValue","onUpdate:modelValue","options"]),e("p",wb,n(a(t)("admin.settings.betaPolicy.fallbackActionHint")),1),o.fallback_action==="block"?(r(),d("div",Cb,[c(e("input",{"onUpdate:modelValue":_=>o.fallback_error_message=_,type:"text",class:"input",placeholder:a(t)("admin.settings.betaPolicy.fallbackErrorMessagePlaceholder")},null,8,Vb),[[u,o.fallback_error_message]]),e("p",Ub,n(a(t)("admin.settings.betaPolicy.errorMessageHint")),1)])):h("",!0)])):h("",!0)])}),128)),e("div",Sb,[e("button",{type:"button",onClick:po,disabled:St.value,class:"btn btn-primary btn-sm"},[St.value?(r(),d("svg",Pb,[...i[340]||(i[340]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])])):h("",!0),I(" "+n(St.value?a(t)("common.saving"):a(t)("common.save")),1)],8,$b)])],64))])]),e("div",Eb,[e("div",Tb,[e("h2",Ab,n(a(t)("admin.settings.open
12aiFastPolicy.title")),1),e("p",Mb,n(a(t)("admin.settings.openaiFastPolicy.description")),1)]),e("div",Fb,[ut.rules.length===0?(r(),d("div",Lb,n(a(t)("admin.settings.openaiFastPolicy.empty")),1)):h("",!0),(r(!0),d(R,null,N(ut.rules,(o,m)=>(r(),d("div",{key:m,class:"rounded-lg border border-gray-200 p-4 dark:border-dark-600"},[e("div",Hb,[e("span",Ib,n(a(t)("admin.settings.openaiFastPolicy.ruleHeader",{index:m+1})),1),e("button",{type:"button",onClick:_=>uo(m),class:"rounded p-1 text-red-400 transition-colors hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-900/20",title:a(t)("admin.settings.openaiFastPolicy.removeRule")},[...i[341]||(i[341]=[e("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,Rb)]),e("div",{class:"mb-4 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-gray-500 dark:text-gray-400","data-testid":`openai-fast-policy-summary-${m}`},[e("span",jb,n(a(t)(ha(o)?"admin.settings.openaiFastPolicy.summaryTargetModels":"admin.settings.openaiFastPolicy.summaryAllModels")),1),i[344]||(i[344]=e("span",{"aria-hidden":"true"},"→",-1)),e("span",Db,n(Ts(o.action)),1),ha(o)?(r(),d(R,{key:0},[i[342]||(i[342]=e("span",{"aria-hidden":"true"},"·",-1)),e("span",Ob,n(a(t)("admin.settings.openaiFastPolicy.summaryOtherModels")),1),i[343]||(i[343]=e("span",{"aria-hidden":"true"},"→",-1)),e("span",zb,n(Ts(o.fallback_action||"pass")),1)],64)):h("",!0)],8,Bb),e("div",qb,[e("div",null,[e("label",Nb,n(a(t)("admin.settings.openaiFastPolicy.serviceTier")),1),g(ke,{modelValue:o.service_tier,"onUpdate:modelValue":_=>o.service_tier=_,options:lo.value},null,8,["modelValue","onUpdate:modelValue","options"])]),e("div",null,[e("label",Kb,n(a(t)("admin.settings.openaiFastPolicy.action")),1),g(ke,{modelValue:o.action,"onUpdate:modelValue":_=>o.action=_,options:Es.value},null,8,["modelValue","onUpdate:modelValue","options"])]),e("div",null,[e("label",Wb,n(a(t)("admin.settings.openaiFastPolicy.scope")),1),g(ke,{modelValue:o.scope,"onUpdate:modelValue":_=>o.scope=_,options:ro.value},null,8,["modelValue","onUpdate:modelValue","options"])])]),e("div",Gb,[e("label",Qb,n(a(t)("admin.settings.openaiFastPolicy.userIds")),1),e("p",Yb,n(a(t)("admin.settings.openaiFastPolicy.userIdsHint")),1),g(an,{"model-value":o.user_ids||[],"onUpdate:modelValue":_=>o.user_ids=_},null,8,["model-value","onUpdate:modelValue"])]),o.action==="block"?(r(),d("div",Jb,[e("label",Xb,n(a(t)("admin.settings.openaiFastPolicy.errorMessage")),1),c(e("input",{"onUpdate:modelValue":_=>o.error_message=_,type:"text",class:"input",placeholder:a(t)("admin.settings.openaiFastPolicy.errorMessagePlaceholder")},null,8,Zb),[[u,o.error_message]]),e("p",ex,n(a(t)("admin.settings.openaiFastPolicy.errorMessageHint")),1)])):h("",!0),e("div",{class:"mt-3",role:"group","aria-labelledby":`openai-fast-policy-models-label-${m}`,"aria-describedby":`openai-fast-policy-models-hint-${m}`},[e("label",{id:`openai-fast-policy-models-label-${m}`,class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},n(a(t)("admin.settings.openaiFastPolicy.modelWhitelist")),9,ax),e("p",{id:`openai-fast-policy-models-hint-${m}`,class:"mb-2 text-xs text-gray-400 dark:text-gray-500"},n(a(t)("admin.settings.openaiFastPolicy.modelWhitelistHint")),9,sx),(r(!0),d(R,null,N(o.model_whitelist||[],(_,G)=>(r(),d("div",{key:G,class:"mb-1.5 flex items-center gap-2"},[c(e("input",{"onUpdate:modelValue":Ce=>o.model_whitelist[G]=Ce,type:"text",class:"input input-sm flex-1",placeholder:a(t)("admin.settings.openaiFastPolicy.modelPatternPlaceholder")},null,8,nx),[[u,o.model_whitelist[G]]]),e("button",{type:"button",onClick:Ce=>mo(o,G),class:"shrink-0 rounded p-1 text-red-400 transition-colors hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-900/20"},[...i[345]||(i[345]=[e("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,ix)]))),128)),e("button",{type:"button",onClick:_=>_o(o),class:"mb-2 inline-flex items-center gap-1 text-xs text-primary-600 transition-colors hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300"},[i[346]||(i[346]=e("svg",{class:"h-3.5 w-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"}
12)],-1)),I(" "+n(a(t)("admin.settings.openaiFastPolicy.addModelPattern")),1)],8,ox)],8,tx),ha(o)?(r(),d("div",lx,[e("label",rx,n(a(t)("admin.settings.openaiFastPolicy.fallbackAction")),1),g(ke,{modelValue:o.fallback_action||"pass","onUpdate:modelValue":_=>o.fallback_action=_,options:Es.value},null,8,["modelValue","onUpdate:modelValue","options"]),e("p",dx,n(a(t)("admin.settings.openaiFastPolicy.fallbackActionHint")),1),o.fallback_action==="block"?(r(),d("div",cx,[c(e("input",{"onUpdate:modelValue":_=>o.fallback_error_message=_,type:"text",class:"input",placeholder:a(t)("admin.settings.openaiFastPolicy.fallbackErrorMessagePlaceholder")},null,8,ux),[[u,o.fallback_error_message]])])):h("",!0)])):h("",!0)]))),128)),e("div",null,[e("button",{type:"button",onClick:co,class:"btn btn-secondary btn-sm inline-flex items-center gap-1"},[i[347]||(i[347]=e("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1)),I(" "+n(a(t)("admin.settings.openaiFastPolicy.addRule")),1)]),e("p",_x,n(a(t)("admin.settings.openaiFastPolicy.saveHint")),1)])])])],512),[[Se,S.value==="gateway"]]),c(e("div",mx,[e("div",px,[e("div",gx,[e("h2",yx,n(a(t)("admin.settings.registration.title")),1),e("p",bx,n(a(t)("admin.settings.registration.description")),1)]),e("div",xx,[e("div",hx,[e("div",null,[e("label",fx,n(a(t)("admin.settings.registration.enableRegistration")),1),e("p",kx,n(a(t)("admin.settings.registration.enableRegistrationHint")),1)]),g(T,{modelValue:s.registration_enabled,"onUpdate:modelValue":i[14]||(i[14]=o=>s.registration_enabled=o)},null,8,["modelValue"])]),e("div",vx,[e("div",null,[e("label",wx,n(a(t)("admin.settings.registration.emailVerification")),1),e("p",Cx,n(a(t)("admin.settings.registration.emailVerificationHint")),1)]),g(T,{modelValue:s.email_verify_enabled,"onUpdate:modelValue":i[15]||(i[15]=o=>s.email_verify_enabled=o)},null,8,["modelValue"])]),e("div",Vx,[e("label",Ux,n(a(t)("admin.settings.registration.emailSuffixWhitelist")),1),e("p",Sx,n(a(t)("admin.settings.registration.emailSuffixWhitelistHint")),1),e("div",$x,[e("div",Px,[(r(!0),d(R,null,N(Y.value,o=>(r(),d("span",{key:o,class:"inline-flex items-center gap-1 rounded bg-gray-100 px-2 py-1 text-xs font-mono text-gray-700 dark:bg-dark-600 dark:text-gray-200"},[e("span",null,n(o),1),e("button",{type:"button",class:"rounded-full text-gray-500 hover:bg-gray-200 hover:text-gray-700 dark:text-gray-300 dark:hover:bg-dark-500 dark:hover:text-white",onClick:m=>On(o)},[g(de,{name:"x",size:"xs",class:"h-3.5 w-3.5","stroke-width":2})],8,Ex)]))),128)),e("div",Tx,[c(e("input",{"onUpdate:modelValue":i[16]||(i[16]=o=>ge.value=o),type:"text",class:"w-full bg-transparent text-sm font-mono text-gray-900 outline-none placeholder:text-gray-400 dark:text-white dark:placeholder:text-gray-500",placeholder:a(t)("admin.settings.registration.emailSuffixWhitelistPlaceholder"),onInput:i[17]||(i[17]=(...o)=>ls&&ls(...o)),onKeydown:i[18]||(i[18]=(...o)=>rs&&rs(...o)),onBlur:os,onPaste:zn},null,40,Ax),[[u,ge.value]])])])]),e("p",Mx,n(a(t)("admin.settings.registration.emailSuffixWhitelistInputHint")),1)]),e("div",Fx,[e("div",null,[e("label",Lx,n(a(t)("admin.settings.registration.emailDomainQuota")),1),e("p",Hx,n(a(t)("admin.settings.registration.emailDomainQuotaHint")),1)]),g(T,{modelValue:s.registration_email_domain_quota_enabled,"onUpdate:modelValue":i[19]||(i[19]=o=>s.registration_email_domain_quota_enabled=o)},null,8,["modelValue"])]),e("div",Ix,[e("div",null,[e("label",Rx,n(a(t)("admin.settings.registration.promoCode")),1),e("p",Bx,n(a(t)("admin.settings.registration.promoCodeHint")),1)]),g(T,{modelValue:s.promo_code_enabled,"onUpdate:modelValue":i[20]||(i[20]=o=>s.promo_code_enabled=o)},null,8,["modelValue"])]),e("div",jx,[e("div",null,[e("label",Dx,n(a(t)("admin.settings.registration.invitationCode")),1),e("p",Ox,n(a(t)("admin.settings.registration.invitationCodeHint")),1)]),g(T,{modelValue:s.invitation_code_enabled,"onUpdate:modelValue":i[21]||(i[21]=o=>s.invitation_code_enabled=o)},null,8,["modelValue"])]),s.email_verify_enabled?(r(),d("div",zx,[e("div",null,[e("label",qx,n(a(t)("admin.settings.registration.passwordReset")),1),e("p",Nx,n(a(t)("admin.settings.registration.passwordResetHint")),1)]),g(T,{modelValue:s.password_reset_enabled,"onUpdate:modelValue":i[22]||(i[22]=o=>s.password_reset_enabled=o)},null,8,["modelValue"])])):h("",!0),s.email_verify_enabled&&s.password_reset_enabled?(r(),d("div",Kx,[e("label",Wx,n(a(t)("admin.settings.registration.frontendUrl")),1),c(e("input",{"onUpdate:modelValue":i[23]||(i[23]=o=>s.frontend_url=o),type:"url",class:"input",placeholder:a(t)("admin.settings.registration.frontendUrlPlaceholder")},null,8,Gx),[[u,s.frontend_url]]),e("p",Qx,n(a(t)("admin.settings.registration.frontendUrlHint")),1)])):h("",!0),e("div",Yx,[e("div",null,[e("label",Jx,n(a(t)("admin.settings.registration.totp")),1
12),e("p",Xx,n(a(t)("admin.settings.registration.totpHint")),1),s.totp_encryption_key_configured?h("",!0):(r(),d("p",Zx,n(a(t)("admin.settings.registration.totpKeyNotConfigured")),1))]),g(T,{modelValue:s.totp_enabled,"onUpdate:modelValue":i[24]||(i[24]=o=>s.totp_enabled=o),disabled:!s.totp_encryption_key_configured},null,8,["modelValue","disabled"])]),e("div",eh,[e("div",th,[e("div",null,[e("label",ah,n(a(t)("admin.settings.security.passkey")),1),e("p",sh,n(a(t)("admin.settings.security.passkeyHint")),1)]),g(T,{modelValue:s.passkey_enabled,"onUpdate:modelValue":i[25]||(i[25]=o=>s.passkey_enabled=o),"data-testid":"passkey-toggle",disabled:!s.passkey_configured},null,8,["modelValue","disabled"])]),e("div",{class:X(["mt-3 rounded-lg border px-3 py-2 text-sm",s.passkey_configured?"border-green-200 bg-green-50 text-green-800 dark:border-green-900 dark:bg-green-950/40 dark:text-green-300":"border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-900 dark:bg-amber-950/40 dark:text-amber-300"]),"data-testid":"passkey-config-status"},[e("p",nh,n(s.passkey_configured?a(t)("admin.settings.security.passkeyConfigured"):a(t)("admin.settings.security.passkeyNotConfigured")),1),e("p",ih,n(a(t)("admin.settings.security.passkeyRPID"))+": "+n(s.passkey_rp_id||a(t)("admin.settings.security.passkeyValueNotConfigured")),1),e("p",oh,n(a(t)("admin.settings.security.passkeyOrigins"))+": "+n(s.passkey_rp_origins.length>0?s.passkey_rp_origins.join(", "):a(t)("admin.settings.security.passkeyValueNotConfigured")),1),s.passkey_configured?h("",!0):(r(),d("p",lh,n(a(t)("admin.settings.security.passkeyDeploymentHint")),1))],2)]),e("div",rh,[e("div",null,[e("label",dh,n(a(t)("admin.settings.security.stepUp")),1),e("p",ch,n(a(t)("admin.settings.security.stepUpHint")),1)]),g(T,{modelValue:s.step_up_enabled,"onUpdate:modelValue":i[26]||(i[26]=o=>s.step_up_enabled=o)},null,8,["modelValue"])]),e("div",uh,[e("div",null,[e("label",_h,n(a(t)("admin.settings.security.sessionBinding")),1),e("p",mh,n(a(t)("admin.settings.security.sessionBindingHint")),1)]),g(T,{modelValue:s.session_binding_enabled,"onUpdate:modelValue":i[27]||(i[27]=o=>s.session_binding_enabled=o)},null,8,["modelValue"])]),e("div",ph,[e("div",null,[e("label",gh,n(a(t)("admin.settings.security.auditRetention")),1),e("p",yh,n(a(t)("admin.settings.security.auditRetentionHint")),1)]),c(e("input",{"onUpdate:modelValue":i[28]||(i[28]=o=>s.audit_log_retention_days=o),type:"number",min:"0",class:"input w-28 text-right"},null,512),[[u,s.audit_log_retention_days,void 0,{number:!0}]])])])]),e("div",bh,[e("div",xh,[e("h2",hh,n(a(t)("admin.settings.apiKeyAcl.title")),1),e("p",fh,n(a(t)("admin.settings.apiKeyAcl.description")),1)]),e("div",kh,[e("div",vh,[e("div",null,[e("label",wh,n(a(t)("admin.settings.apiKeyAcl.trustForwardedIp")),1),e("p",Ch,n(a(t)("admin.settings.apiKeyAcl.trustForwardedIpHint")),1)]),g(T,{modelValue:s.api_key_acl_trust_forwarded_ip,"onUpdate:modelValue":i[29]||(i[29]=o=>s.api_key_acl_trust_forwarded_ip=o)},null,8,["modelValue"])]),s.api_key_acl_trust_forwarded_ip?(r(),d("div",Vh,[e("label",Uh,n(a(t)("admin.settings.apiKeyAcl.forwardedClientIpHeaders")),1),e("p",Sh,n(a(t)("admin.settings.apiKeyAcl.forwardedClientIpHeadersHint")),1),e("div",$h,[e("div",Ph,[(r(!0),d(R,null,N(s.forwarded_client_ip_headers,o=>(r(),d("span",{key:o,"data-testid":"forwarded-client-ip-header-tag",class:"inline-flex items-center gap-1 rounded bg-gray-100 px-2 py-1 text-xs font-mono text-gray-700 dark:bg-dark-600 dark:text-gray-200"},[e("span",null,n(o),1),e("button",{type:"button",class:"rounded-full text-gray-500 hover:bg-gray-200 hover:text-gray-700 dark:text-gray-300 dark:hover:bg-dark-500 dark:hover:text-white","aria-label":a(t)("admin.settings.apiKeyAcl.removeForwardedClientIpHeader",{header:o}),onClick:m=>Kn(o)},[g(de,{name:"x",size:"xs",class:"h-3.5 w-3.5","stroke-width":2})],8,Eh)]))),128)),e("div",Th,[c(e("input",{id:"forwarded-client-ip-headers","onUpdate:modelValue":i[30]||(i[30]=o=>j.value=o),"data-testid":"forwarded-client-ip-headers-input",type:"text",class:"w-full bg-transparent text-sm font-mono text-gray-900 outline-none placeholder:text-gray-400 dark:text-white dark:placeholder:text-gray-500",placeholder:a(t)("admin.settings.apiKeyAcl.forwardedClientIpHeadersPlaceholder"),onKeydown:Wn,onBlur:_s,onPaste:Gn},null,40,Ah),[[u,j.value]])])])]),e("p",Mh,n(a(t)("admin.settings.apiKeyAcl.forwardedClientIpHeadersRiskHint")),1)])):h("",!0)])]),e("div",Fh,[e("div",Lh,[e("div",Hh,[g(de,{name:"shield",size:"md",class:"text-primary-500"}),e("h2",Ih,n(a(t)("admin.settings.panelRateLimit.title")),1)]),e("p",Rh,n(a(t)("admin.settings.panelRateLimit.description")),1)]),e("div",Bh,[ie.value?(r(),d("div",jh,[i[348]||(i[348]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),I(" "+n(a(t)("common.loading")),1)])):(r(),d(R,{key:1},[e("div",Dh,[e("div",Oh,[g(de,{name:"infoCircle",size:"md",class:"mt-0.5 flex-shrink-0 text-sky-500"}),e("p",zh,n(a(t)("admin.settings.panelRateLimit.proxySafeNote")),1)])]),e("div",qh,[e("div",null,[e("label",Nh,n(a(t)("admin.settings.panelRateLimit.enabled")),1),e("p",Kh,n(a(t)("admin.settings.panelRateLimit.enabledHint")),1)]),g(T,{modelValue:fe.enabled,"onUpdate:modelValue":i[31]||(i[31]=o=>fe.enabled=o)},null,8,["modelValue"])]),fe.enabled?(r(),d("div",Wh,[e("div",Gh,[e("div",null,[e("label",Qh,n(a(t)("admin.settings.panelRateLimit.userRpm")),1),e("div",Yh,[c(e("input",{"onUpdate:modelValue":i[32]||(i[32]=o=>fe.user_rpm=o),"data-testid":"panel-rate-limit-user-rpm",type:"number",min:"0",max:"100000",class:"input w-32"},null,512),[[u,fe.user_rpm,void 0,{number:!0}]]),e("span",Jh,n(a(t)("admin.settings.panelRateLimit.perMinute")),1)]),e("p",Xh,n(a(t)("admin.settings.panelRateLimit.userRpmHint")),1)]),e("div",null,[e("label",Zh,n(a(t)("admin.settings.panelRateLimit.heavyRpm")),1),e("div",e1,[c(e("input",{"onUpdate:modelValue":i[33]||(i[33]=o=>fe.heavy_rpm=o),type:"number",min:"0",max:"100000",class:"input w-32"},null,512),[[u,fe.heavy_rpm,void 0,{number:!0}]]),e("span",t1,n(a(t)("admin.settings.panelRateLimit.perMinute")),1)]),e("p",a1,n(a(t)("admin.settings.panelRateLimit.heavyRpmHint")),1)]),e("div",null,[e("label",s1,n(a(t)("admin.settings.panelRateLimit.publicIpRpm")),1),e("div",n1,[c(e("input",{"onUpdate:modelValue":i[34]||(i[34]=o=>fe.public_ip_rpm=o),type:"number",min:"0",max:"100000",class:"input w-32"},null,512),[[u,fe.public_ip_rpm,void 0,{number:!0}]]),e("span",i1,n(a(t)("admin.settings.panelRateLimit.perMinute")),1)]),e("p",o1,n(a(t)("admin.settings.panelRateLimit.publicIpRpmHint")),1)])]),e("div",l
121,[e("div",null,[e("label",r1,n(a(t)("admin.settings.panelRateLimit.exemptAdmin")),1),e("p",d1,n(a(t)("admin.settings.panelRateLimit.exemptAdminHint")),1)]),g(T,{modelValue:fe.exempt_admin,"onUpdate:modelValue":i[35]||(i[35]=o=>fe.exempt_admin=o)},null,8,["modelValue"])])])):h("",!0),e("div",c1,[e("button",{type:"button","data-testid":"panel-rate-limit-save",onClick:Wi,disabled:Ve.value,class:"btn btn-primary btn-sm"},[Ve.value?(r(),d("svg",_1,[...i[349]||(i[349]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])])):h("",!0),I(" "+n(Ve.value?a(t)("common.saving"):a(t)("common.save")),1)],8,u1)])],64))])]),e("div",m1,[e("div",p1,[e("h2",g1,n(a(t)("admin.settings.captcha.title")),1),e("p",y1,n(a(t)("admin.settings.captcha.description")),1)]),e("div",b1,[e("div",x1,[e("div",null,[e("label",h1,n(a(t)("admin.settings.captcha.enable")),1),e("p",f1,n(a(t)("admin.settings.captcha.enableHint")),1)]),g(T,{modelValue:aa.value,"onUpdate:modelValue":i[36]||(i[36]=o=>aa.value=o),"data-testid":"captcha-enabled-toggle"},null,8,["modelValue"])]),aa.value?(r(),d("div",k1,[e("div",v1,[e("label",w1,n(a(t)("admin.settings.captcha.provider")),1),e("div",C1,[e("button",{type:"button","data-testid":"captcha-provider-turnstile",class:X(["inline-flex items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition",st.value==="turnstile"?"bg-white text-primary-700 shadow-sm dark:bg-dark-800 dark:text-primary-300":"text-gray-600 hover:text-gray-900 dark:text-dark-300 dark:hover:text-white"]),onClick:i[37]||(i[37]=o=>sa("turnstile"))},n(a(t)("admin.settings.captcha.providerTurnstile")),3),e("button",{type:"button","data-testid":"captcha-provider-tencent",class:X(["inline-flex items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition",st.value==="tencent"?"bg-white text-primary-700 shadow-sm dark:bg-dark-800 dark:text-primary-300":"text-gray-600 hover:text-gray-900 dark:text-dark-300 dark:hover:text-white"]),onClick:i[38]||(i[38]=o=>sa("tencent"))},n(a(t)("admin.settings.captcha.providerTencent")),3),e("button",{type:"button","data-testid":"captcha-provider-aliyun",class:X(["inline-flex items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition",st.value==="aliyun"?"bg-white text-primary-700 shadow-sm dark:bg-dark-800 dark:text-primary-300":"text-gray-600 hover:text-gray-900 dark:text-dark-300 dark:hover:text-white"]),onClick:i[39]||(i[39]=o=>sa("aliyun"))},n(a(t)("admin.settings.captcha.providerAliyun")),3)])]),st.value==="turnstile"?(r(),d("div",V1,[e("div",null,[e("label",U1,n(a(t)("admin.settings.turnstile.siteKey")),1),c(e("input",{"onUpdate:modelValue":i[40]||(i[40]=o=>s.turnstile_site_key=o),type:"text",class:"input font-mono text-sm",placeholder:"0x4AAAAAAA..."},null,512),[[u,s.turnstile_site_key]]),e("p",S1,[I(n(a(t)("admin.settings.turnstile.siteKeyHint"))+" ",1),e("a",$1,n(a(t)("admin.settings.turnstile.cloudflareDashboard")),1)])]),e("div",null,[e("label",P1,n(a(t)("admin.settings.turnstile.secretKey")),1),c(e("input",{"onUpdate:modelValue":i[41]||(i[41]=o=>s.turnstile_secret_key=o),type:"password",class:"input font-mono text-sm",placeholder:"0x4AAAAAAA..."},null,512),[[u,s.turnstile_secret_key]]),e("p",E1,n(s.turnstile_secret_key_configured?a(t)("admin.settings.turnstile.secretKeyConfiguredHint"):a(t)("admin.settings.turnstile.secretKeyHint")),1)])])):st.value==="tencent"?(r(),d("div",T1,[e("div",A1,[e("label",M1,n(a(t)("admin.settings.tencentCaptcha.region")),1),e("div",F1,[e("button",{type:"button","data-testid":"tencent-captcha-region-cn",class:X(["inline-flex items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium transition",s.tencent_captcha_region!=="intl"?"bg-white text-primary-700 shadow-sm dark:bg-dark-800 dark:text-primary-300":"text-gray-600 hover:text-gray-900 dark:text-dark-300 dark:hover:text-white"]),onClick:i[42]||(i[42]=o=>s.tencent_captcha_region="cn")},n(a(t)("admin.settings.tencentCaptcha.regionCn")),3),e("button",{type:"button","data-testid":"tencent-captcha-region-intl",class:X(["inline-flex items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium transition",s.tencent_captcha_region==="intl"?"bg-white text-primary-700 shadow-sm dark:bg-dark-800 dark:text-primary-300":"text-gray-600 hover:text-gray-900 dark:text-dark-300 dark:hover:text-white"]),onClick:i[43]||(i[43]=o=>s.tencent_captcha_region="intl")},n(a(t)("admin.settings.tencentCaptcha.regionIntl")),3)]),e("p",L1,n(a(t)("admin.settings.tencentCaptcha.regionHint")),1)]),e("div",H1,[e("div",I1,[e("h3",R1,n(a(t)("admin.settings.tencentCaptcha.appCredentialsTitle")),1),e("p",B1,n(a(t)("admin.settings.tencentCaptcha.appCredentialsHint")),1)]),e("div",null,[e("label",j1,n(a(t)("admin.settings.tencentCaptcha.appId")),1),c(e("input",{"onUpdate:modelValue":i[44]||(i[44]=o=>s.tencent_captcha_app_id=o),type:"text",inputmode:"numeric",class:"input font-mono text-sm",placeholder:"123456789"},null,512),[[u,s.tencent_captcha_app_id]])]),e("div",null,[e("label",D1,n(a(t)("admin.settings.tencentCaptcha.appSecretKey")),1),c(e("input",{"onUpdate:modelValue":i[45]||(i[45]=o=>s.tencent_captcha_app_secret_key=o),type:"password",autocomplete:"new-password",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.tencentCaptcha.keepExisting")},null,8,O1),[[u,s.tencent_captcha_app_secret_key]]),e("p",z1,n(s.tencent_captcha_app_secret_key_configured?a(t)("admin.settings.tencentCaptcha.configured"):a(t)("admin.settings.tencentCaptcha.required")),1)]),e("div",q1,[e("h3",N1,n(a(t)("admin.settings.tencentCaptcha.cloudCredentialsTitle")),1),e("p",K1,n(a(t)("admin.settings.tencentCaptcha.cloudCredentialsHint")),1)]),e("div",null,[e("label",W1,n(a(t)("admin.settings.tencentCaptcha.cloudSecretId")),1),c(e("input",{"onUpdate:modelValue":i[46]||(i[46]=o=>s.tencent_captcha_cloud_secret_id=o),type:"password",autocomplete:"new-password",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.tencentCaptcha.keepExisting")},null,8,G1),[[u,s.tencent_captcha_cloud_secret_id]]),e("p",Q1,n(s.tencent_captcha_cloud_secret_id_configured?a(t)("admin.settings.tencentCaptcha.configured"):a(t)("admin.settings.tencentCaptcha.required")),1)]),e("div",null,[e("label",Y1,n(a(t)("admin.settings.tencentCaptcha.cloudSecretKey")),1),c(e("input",{"onUpdate:modelValue":i[47]||(i[47]=o=>s.tencent_captcha_cloud_secret_key=o),type:"password",autocomplete:"new-password",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.tencentCaptcha.keepExisting")},null,8,J1),[[u,s.tencent_captcha_cloud_secret_key]]),e("p",X1,n(s.tencent_captcha_cloud_secret_key_configured?a(t)("admin.settings.tencentCaptcha.configured"):a(t)("admin.settings.tencentCaptcha.required")),1)])]),e("p",Z1,n(a(t)("admin.settings.tencentCaptcha.camPermissionHint")),1),e("p",ef,n(a(t)("admin.settings.tencentCaptcha.aidEncryptedHint")),1),e("div",tf,[e
12("a",{href:na.value.console,target:"_blank",rel:"noopener noreferrer",class:"text-primary-600 hover:text-primary-500"},n(a(t)("admin.settings.tencentCaptcha.openCaptchaConsole")),9,af),e("a",{href:na.value.cloudKeys,target:"_blank",rel:"noopener noreferrer",class:"text-primary-600 hover:text-primary-500"},n(a(t)("admin.settings.tencentCaptcha.createCloudKeys")),9,sf),e("a",{href:na.value.webDocs,target:"_blank",rel:"noopener noreferrer",class:"text-primary-600 hover:text-primary-500"},n(a(t)("admin.settings.tencentCaptcha.openWebDocs")),9,nf)])])):(r(),d("div",of,[e("div",lf,[e("div",null,[e("label",rf,n(a(t)("admin.settings.aliyunCaptcha.region")),1),e("div",df,[e("button",{type:"button",class:X(["inline-flex items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium transition",s.aliyun_captcha_region!=="sgp"?"bg-white text-primary-700 shadow-sm dark:bg-dark-800 dark:text-primary-300":"text-gray-600 hover:text-gray-900 dark:text-dark-300 dark:hover:text-white"]),onClick:i[48]||(i[48]=o=>s.aliyun_captcha_region="cn")},n(a(t)("admin.settings.aliyunCaptcha.regionCn")),3),e("button",{type:"button",class:X(["inline-flex items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium transition",s.aliyun_captcha_region==="sgp"?"bg-white text-primary-700 shadow-sm dark:bg-dark-800 dark:text-primary-300":"text-gray-600 hover:text-gray-900 dark:text-dark-300 dark:hover:text-white"]),onClick:i[49]||(i[49]=o=>s.aliyun_captcha_region="sgp")},n(a(t)("admin.settings.aliyunCaptcha.regionSgp")),3)]),e("p",cf,n(a(t)("admin.settings.aliyunCaptcha.regionHint")),1)]),e("div",null,[e("label",uf,n(a(t)("admin.settings.aliyunCaptcha.prefix")),1),c(e("input",{"onUpdate:modelValue":i[50]||(i[50]=o=>s.aliyun_captcha_prefix=o),type:"text",class:"input font-mono text-sm",placeholder:"14xxxxx"},null,512),[[u,s.aliyun_captcha_prefix]]),e("p",_f,n(a(t)("admin.settings.aliyunCaptcha.prefixHint")),1)])]),e("div",null,[e("label",mf,n(a(t)("admin.settings.aliyunCaptcha.sceneId")),1),c(e("input",{"onUpdate:modelValue":i[51]||(i[51]=o=>s.aliyun_captcha_scene_id=o),type:"text",class:"input font-mono text-sm",placeholder:"1cxxxxxx"},null,512),[[u,s.aliyun_captcha_scene_id]]),e("p",pf,n(a(t)("admin.settings.aliyunCaptcha.sceneIdHint")),1)]),e("div",null,[e("label",gf,n(a(t)("admin.settings.aliyunCaptcha.accessKeyId")),1),c(e("input",{"onUpdate:modelValue":i[52]||(i[52]=o=>s.aliyun_captcha_access_key_id=o),type:"text",class:"input font-mono text-sm",placeholder:"LTAI..."},null,512),[[u,s.aliyun_captcha_access_key_id]]),e("p",yf,n(a(t)("admin.settings.aliyunCaptcha.accessKeyIdHint")),1)]),e("div",null,[e("label",bf,n(a(t)("admin.settings.aliyunCaptcha.accessKeySecret")),1),c(e("input",{"onUpdate:modelValue":i[53]||(i[53]=o=>s.aliyun_captcha_access_key_secret=o),type:"password",autocomplete:"new-password",class:"input font-mono text-sm",placeholder:"••••••••"},null,512),[[u,s.aliyun_captcha_access_key_secret]]),e("p",xf,n(s.aliyun_captcha_access_key_secret_configured?a(t)("admin.settings.aliyunCaptcha.accessKeySecretConfiguredHint"):a(t)("admin.settings.aliyunCaptcha.accessKeySecretHint")),1)])]))])):h("",!0)])]),e("div",hf,[e("div",ff,[e("h2",kf,n(a(t)("admin.settings.linuxdo.title")),1),e("p",vf,n(a(t)("admin.settings.linuxdo.description")),1)]),e("div",wf,[e("div",Cf,[e("div",null,[e("label",Vf,n(a(t)("admin.settings.linuxdo.enable")),1),e("p",Uf,n(a(t)("admin.settings.linuxdo.enableHint")),1)]),g(T,{modelValue:s.linuxdo_connect_enabled,"onUpdate:modelValue":i[54]||(i[54]=o=>s.linuxdo_connect_enabled=o)},null,8,["modelValue"])]),s.linuxdo_connect_enabled?(r(),d("div",Sf,[e("div",$f,[e("div",null,[e("label",Pf,n(a(t)("admin.settings.linuxdo.clientId")),1),c(e("input",{"onUpdate:modelValue":i[55]||(i[55]=o=>s.linuxdo_connect_client_id=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.linuxdo.clientIdPlaceholder")},null,8,Ef),[[u,s.linuxdo_connect_client_id]]),e("p",Tf,n(a(t)("admin.settings.linuxdo.clientIdHint")),1)]),e("div",null,[e("label",Af,n(a(t)("admin.settings.linuxdo.clientSecret")),1),c(e("input",{"onUpdate:modelValue":i[56]||(i[56]=o=>s.linuxdo_connect_client_secret=o),type:"password",class:"input font-mono text-sm",placeholder:s.linuxdo_connect_client_secret_configured?a(t)("admin.settings.linuxdo.clientSecretConfiguredPlaceholder"):a(t)("admin.settings.linuxdo.clientSecretPlaceholder")},null,8,Mf),[[u,s.linuxdo_connect_client_secret]]),e("p",Ff,n(s.linuxdo_connect_client_secret_configured?a(t)("admin.settings.linuxdo.clientSecretConfiguredHint"):a(t)("admin.settings.linuxdo.clientSecretHint")),1)]),e("div",null,[e("label",Lf,n(a(t)("admin.settings.linuxdo.redirectUrl")),1),c(e("input",{"onUpdate:modelValue":i[57]||(i[57]=o=>s.linuxdo_connect_redirect_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.linuxdo.redirectUrlPlaceholder")},null,8,Hf),[[u,s.linuxdo_connect_redirect_url]]),e("div",If,[e("button",{type:"button",class:"btn btn-secondary btn-sm w-fit",onClick:Yn},n(a(t)("admin.settings.linuxdo.quickSetCopy")),1),da.value?(r(),d("code",Rf,n(da.value),1)):h("",!0)]),e("p",Bf,n(a(t)("admin.settings.linuxdo.redirectUrlHint")),1)])])])):h("",!0)])]),e("div",jf,[e("div",Df,[e("h2",Of,n(x("邮箱快捷登录","Email OAuth Sign-in")),1
12),e("p",zf,n(x("开启 GitHub 或 Google 邮箱授权登录后,系统会读取已验证邮箱,存在则直接登录,不存在则自动注册。","After GitHub or Google email OAuth is enabled, the system reads a verified email, signs in matching users, and auto-registers missing users.")),1)]),e("div",qf,[e("div",Nf,[e("div",Kf,[e("div",Wf,[e("div",null,[i[350]||(i[350]=e("h3",{class:"font-medium text-gray-900 dark:text-white"}," GitHub ",-1)),e("p",Gf,n(x("GitHub OAuth App 需要 read:user user:email 权限,回调地址填写下方后端地址。","GitHub OAuth App needs read:user user:email scopes. Use the backend callback URL below.")),1)]),g(T,{modelValue:s.github_oauth_enabled,"onUpdate:modelValue":i[58]||(i[58]=o=>s.github_oauth_enabled=o)},null,8,["modelValue"])]),s.github_oauth_enabled?(r(),d("div",Qf,[e("div",Yf,[H.value?(r(),d(R,{key:0},[i[351]||(i[351]=I(" 开通引导:GitHub Settings → Developer settings → ",-1)),i[352]||(i[352]=e("a",{"data-testid":"github-oauth-apps-guide-link",href:"https://github.com/settings/developers",target:"_blank",rel:"noopener noreferrer",class:"font-medium text-primary-600 hover:underline dark:text-primary-400"},"OAuth Apps",-1)),i[353]||(i[353]=I(" → New OAuth App;Homepage URL 填站点域名,Authorization callback URL 填下面的后端回调地址。 ",-1))],64)):(r(),d(R,{key:1},[i[354]||(i[354]=I(" Setup guide: GitHub Settings → Developer settings → ",-1)),i[355]||(i[355]=e("a",{"data-testid":"github-oauth-apps-guide-link",href:"https://github.com/settings/developers",target:"_blank",rel:"noopener noreferrer",class:"font-medium text-primary-600 hover:underline dark:text-primary-400"},"OAuth Apps",-1)),i[356]||(i[356]=I(" → New OAuth App. Use your site origin as Homepage URL and the backend callback URL below as Authorization callback URL. ",-1))],64))]),e("div",Jf,[e("div",null,[i[357]||(i[357]=e("label",{class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},"Client ID",-1)),c(e("input",{"onUpdate:modelValue":i[59]||(i[59]=o=>s.github_oauth_client_id=o),type:"text",class:"input font-mono text-sm",placeholder:"GitHub OAuth Client ID"},null,512),[[u,s.github_oauth_client_id]])]),e("div",null,[i[358]||(i[358]=e("label",{class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},"Client Secret",-1)),c(e("input",{"onUpdate:modelValue":i[60]||(i[60]=o=>s.github_oauth_client_secret=o),type:"password",class:"input font-mono text-sm",placeholder:s.github_oauth_client_secret_configured?x("密钥已配置,留空以保留当前值。","Secret configured. Leave empty to keep the current value."):"GitHub OAuth Client Secret"},null,8,Xf),[[u,s.github_oauth_client_secret]])])]),e("div",null,[e("label",Zf,n(x("后端回调地址","Backend Callback URL")),1),c(e("input",{"onUpdate:modelValue":i[61]||(i[61]=o=>s.github_oauth_redirect_url=o),type:"url",class:"input font-mono text-sm",placeholder:"https://your-domain.com/api/v1/auth/oauth/github/callback"},null,512),[[u,s.github_oauth_redirect_url]]),e("div",ek,[e("button",{type:"button",class:"btn btn-secondary btn-sm w-fit",onClick:i[62]||(i[62]=o=>ms("github"))},n(x("生成并复制","Generate and copy")),1),ca.value?(r(),d("code",tk,n(ca.value),1)):h("",!0)])]),e("div",null,[e("label",ak,n(x("前端回跳地址","Frontend Callback URL")),1),c(e("input",{"onUpdate:modelValue":i[63]||(i[63]=o=>s.github_oauth_frontend_redirect_url=o),type:"text",class:"input font-mono text-sm",placeholder:"/auth/oauth/callback"},null,512),[[u,s.github_oauth_frontend_redirect_url]])])])):h("",!0)]),e("div",sk,[e("div",nk,[e("div",null,[i[359]||(i[359]=e("h3",{class:"font-medium text-gray-900 dark:text-white"}," Google ",-1)),e("p",ik,n(x("Google OAuth 客户端需要 openid email profile 范围,并在凭据里登记后端回调地址。","Google OAuth client needs openid email profile scopes and the backend callback URL registered in credentials.")),1)]),g(T,{modelValue:s.google_oauth_enabled,"onUpdate:modelValue":i[64]||(i[64]=o=>s.google_oauth_enabled=o)},null,8,["modelValue"])]),s.google_oauth_enabled?(r(),d("div",ok,[e("div",lk,n(x("开通引导:Google Cloud Console → APIs & Services → OAuth consent screen 完成同意
12屏幕;Credentials → Create Credentials → OAuth client ID,类型选择 Web application,并把下面地址加入 Authorized redirect URIs。","Setup guide: Google Cloud Console → APIs & Services → OAuth consent screen, then Credentials → Create Credentials → OAuth client ID, choose Web application, and add the URL below to Authorized redirect URIs.")),1),e("div",rk,[e("div",null,[i[360]||(i[360]=e("label",{class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},"Client ID",-1)),c(e("input",{"onUpdate:modelValue":i[65]||(i[65]=o=>s.google_oauth_client_id=o),type:"text",class:"input font-mono text-sm",placeholder:"Google OAuth Client ID"},null,512),[[u,s.google_oauth_client_id]])]),e("div",null,[i[361]||(i[361]=e("label",{class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},"Client Secret",-1)),c(e("input",{"onUpdate:modelValue":i[66]||(i[66]=o=>s.google_oauth_client_secret=o),type:"password",class:"input font-mono text-sm",placeholder:s.google_oauth_client_secret_configured?x("密钥已配置,留空以保留当前值。","Secret configured. Leave empty to keep the current value."):"Google OAuth Client Secret"},null,8,dk),[[u,s.google_oauth_client_secret]])])]),e("div",null,[e("label",ck,n(x("后端回调地址","Backend Callback URL")),1),c(e("input",{"onUpdate:modelValue":i[67]||(i[67]=o=>s.google_oauth_redirect_url=o),type:"url",class:"input font-mono text-sm",placeholder:"https://your-domain.com/api/v1/auth/oauth/google/callback"},null,512),[[u,s.google_oauth_redirect_url]]),e("div",uk,[e("button",{type:"button",class:"btn btn-secondary btn-sm w-fit",onClick:i[68]||(i[68]=o=>ms("google"))},n(x("生成并复制","Generate and copy")),1),ua.value?(r(),d("code",_k,n(ua.value),1)):h("",!0)])]),e("div",null,[e("label",mk,n(x("前端回跳地址","Frontend Callback URL")),1),c(e("input",{"onUpdate:modelValue":i[69]||(i[69]=o=>s.google_oauth_frontend_redirect_url=o),type:"text",class:"input font-mono text-sm",placeholder:"/auth/oauth/callback"},null,512),[[u,s.google_oauth_frontend_redirect_url]])])])):h("",!0)])])])]),e("div",pk,[e("div",gk,[e("h2",yk,n(a(t)("admin.settings.wechatConnect.title")),1),e("p",bk,n(a(t)("admin.settings.wechatConnect.description")),1)]),e("div",xk,[e("div",hk,[e("div",null,[e("label",fk,n(a(t)("admin.settings.wechatConnect.enabledLabel")),1),e("p",kk,n(a(t)("admin.settings.wechatConnect.enabledHint")),1)]),g(T,{modelValue:s.wechat_connect_enabled,"onUpdate:modelValue":i[70]||(i[70]=o=>s.wechat_connect_enabled=o),"data-testid":"wechat-connect-enabled"},null,8,["modelValue"])]),s.wechat_connect_enabled?(r(),d("div",vk,[e("div",wk,[e("div",Ck,[e("div",Vk,[e("div",null,[e("h3",Uk,n(x("PC 应用","PC App")),1),e("p",Sk,n(x("桌面浏览器通过微信开放平台扫码登录。可与公众号或移动应用同时存在。","Desktop browsers sign in through WeChat Open Platform QR login. This can coexist with Official Account or Mobile App.")),1)]),g(T,{"model-value":s.wechat_connect_open_enabled,"data-testid":"wechat-connect-open-enabled","onUpdate:modelValue":Jn},null,8,["model-value"])]),s.wechat_connect_open_enabled?(r(),d("div",$k,[e("div",null,[e("label",Pk,n(x("PC AppID","PC App ID")),1),c(e("input",{"onUpdate:modelValue":i[71]||(i[71]=o=>s.wechat_connect_open_app_id=o),"data-testid":"wechat-connect-open-app-id",type:"text",class:"input font-mono text-sm",placeholder:x("微信开放平台 PC 应用 AppID","WeChat Open Platform PC App ID")},null,8,Ek),[[u,s.wechat_connect_open_app_id]])]),e("div",null,[e("label",Tk,n(x("PC AppSecret","PC App Secret")),1),c(e("input",{"onUpdate:modelValue":i[72]||(i[72]=o=>s.wechat_connect_open_app_secret=o),"data-testid":"wechat-connect-open-app-secret",type:"password",class:"input font-mono text-sm",placeholder:s.wechat_connect_open_app_secret_configured?x("密钥已配置,留空以保留当前值。","Secret configured. Leave empty to keep the current value."):x("微信开放平台 PC 应用 AppSecret","WeChat Open Platform PC App Secret")},null,8,Ak),[[u,s.wechat_connect_open_app_secret]])])])):h("",!0)]),e("div",Mk,[e("div",Fk,[e("div",null,[e("h3",Lk,n(x("公众号","Official Account")),1),e("p",Hk,n(x("仅在微信内浏览器可用;非微信环境下会显示不可用。","Only available inside the WeChat browser. It is shown as unavailable outside WeChat.")),1)]),g(T,{"model-value":s.wechat_connect_mp_enabled,"data-testid":"wechat-connect-mp-enabled","onUpdate:modelValue":Xn},null,8,["model-value"])]),s.wechat_connect_mp_enabled?(r(),d("div",Ik,[e("div",null,[e("label",Rk,n(x("公众号 AppID","Official Account App ID")),1),c(e("input",{"onUpdate:modelValue":i[73]||(i[73]=o=>s.wechat_connect_mp_app_id=o),"data-testid":"wechat-connect-mp-app-id",type:"text",class:"input font-mono text-sm",placeholder:x("公众号 AppID","Official Account App ID")},null,8,Bk),[[u,s.wechat_connect_mp_app_id]])]),e("div",null,[e("label",jk,n(x("公众号 AppSecret","Official Account App Secret")),1),c(e("input",{"onUpdate:modelValue":i[74]||(i[74]=o=>s.wechat_connect_mp_app_secret=o),"data-testid":"wechat-connect-mp-app-secret",type:"password",class:"input font-mono text-sm",placeholder:s.wechat_connect_mp_app_secret_configured?x("密钥已配置,留空以保留当前值。","Secret configured. Leave empty to keep the current value."):x("公众号 AppSecret","Official Account App Secret")},null,8,Dk),[[u,s.wechat_connect_mp_app_secret]])])])):h("",!0)]),e("div",Ok,[e("div",zk,[e("div",null,[e("h3",qk,n(x("移动应用","Mobile App")),1),e("p",Nk,n(x("原生移动端通过微信 SDK 唤起授权,网页端不会直接发起该流程。","Native mobile clients start authorization through the WeChat SDK. The web UI does not launch this flow directly.")),1)]),g(T,{"model-value":s.wechat_connect_mobile_enabled,"data-testid":"wechat-connect-mobile-enabled","onUpdate:modelValue":Zn},null,8,["model-value"])]),s.wechat_connect_mobile_enabled?(r(),d("div",Kk,[e("div",null,[e("label",Wk,n(x("移动应用 AppID","Mobile App ID")),1),c(e("input",{"onUpdate:modelValue":i[75]||(i[75]=o=>s.wechat_connect_mobile_app_id=o),"data-testid":"wechat-connect-mobile-app-id",type:"text",class:"input font-mono text-sm",placeholder:x("移动应用 AppID","Mobile App ID")},null,8,Gk),[[u,s.wechat_connect_mobile_app_id]])]),e("div",null,[e("label",Qk,n(x("移动应用 AppSecret","Mobile App Secret")),1),c(e("input",{"onUpdate:modelValue":i[76]||(i[76]=o=>s.wechat_connect_mobile_app_secret=o),"data-testid":"wechat-connect-mobile-app-secret",type:"password",class:"input font-mono text-sm",placeholder:s.wechat_connect_mobile_app_secret_configured?x("密钥已配置,留空以保留当前值。","Secret configured. Leave empty to keep the current value."):x("移动应用 AppSecret","Mobile App Secret")},null,8,Yk),[[u,s.wechat_connect_mobile_app_secret]])])])):h("",!0)])]),s.wechat_connect_open_enabled&&(s.wechat_connect_mp_enabled||s.wechat_connect_mobile_enabled)?(r(),d("div",Jk,n(x("如果同时启用 PC 应用和公众号/移动应用,这些应用需要挂在同一个微信开放平台主体下,否则 UnionID 无法稳定归并账号。","When PC App is enabled together with Official Account or Mobile App, they should belong to the same WeChat Open Platform account so UnionID can merge identities reliably.")),1)):h("",!0),e("div",Xk,[e("div",null,[e("label",Zk,n(x("浏览器回调地址","Browser Redirect URL")),1),c(e("input",{"data-testid":"wechat-connect-redirect-url","onUpdate:modelValue":i[77]||(i[77]=o=>s.wechat_connect_redirect_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.wechatConnect.redirectUrlPlaceholder")},null,8,ev),[[u,s.wechat_connect_redirect_url]]),e("p",tv,n(x("用于 PC 应用和公众号的网页回调。移动应用走原生 SDK 时不直接使用这个浏览器回调。","Used by PC App and Official Account browser callbacks. Native mobile SDK flows do not start from this browser callback directly.")),1),e("div",av,[e("button",{type:"button",class:"btn btn-secondary btn-sm w-fit",onClick:ei},n(a(t)("admin.settings.wechatConnect.generateAndCopy")),1),_a.value?(r(),d("code",sv,n(_a.value),1)):h("",!0)])])]),e("div",null,[e("label",nv,n(a(t)("admin.settings.wechatConnect.frontendRedirectUrlLabel")),1),c(e("input",{"data-testid":"wechat-connect-frontend-redirect-url","onUpdate:modelValue":i[78]||(i[78]=o=>s.wechat_connect_frontend_redirect_url=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.wechatConnect.frontendRedirectUrlPlaceholder")},null,8,iv),[[u,s.wechat_connect_frontend_redirect_url]]),e("p",ov,n(a(t)("admin.settings.wechatConnect.frontendRedirectUrlHint")),1)])])):h("",!0)])]),e("div",lv,[e("div",rv,[e("h2",dv,n(a(t)("admin.settings.dingtalk.title")),1),e("p",cv,n(a(t)("admin.settings.dingtalk.description")),1)]),e("div",uv,[e("div",_v,[e("div",null,[e("label",mv,n(a(t)("admin.settings.dingtalk.enable")),1),e("p",pv,n(a(t)("admin.settings.dingtalk.enableHint")),1)]),g(T,{modelValue:s.dingtalk_connect_enabled,"onUpdate:modelValue":i[79]||(i[79]=o=>s.dingtalk_connect_enabled=o)},null,8,["modelValue"])]),s.dingtalk_connect_enabled?(r(),d("div",gv,[e("div",yv,[e("div",null,[e("label",bv,n(a(t)("admin.settings.dingtalk.clientId")),1),c(e("input",{"onUpdate:modelValue":i[80]||(i[80]=o=>s.dingtalk_connect_client_id=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.dingtalk.clientIdPlaceholder")},null,8,xv),[[u,s.dingtalk_connect_client_id]]),e("p",hv,n(a(t)("admin.settings.dingtalk.clientIdHint")),1)]),e("div",null,[e("label",fv,n(a(t)("admin.settings.dingtalk.clientSecret")),1),c(e("input",{"onUpdate:modelValue":i[81]||(i[81]=o=>s.dingtalk_connect_client_secret=o),type:"password",class:"input font-mono text-sm",placeholder:s.dingtalk_connect_client_secret_configured?a(t)("admin.settings.dingtalk.clientSecretConfiguredPlaceholder"):a(t)("admin.settings.dingtalk.clientSecretPlaceholder")},null,8,kv),[[u,s.dingtalk_connect_client_secret]]),e("p",vv,n(s.dingtalk_connect_client_secret_configured?a(t)("admin.settings.dingtalk.clientSecretConfiguredHint"):a(t)("admin.settings.dingtalk.clientSecretHint")),1)]),e("div",null,[e("label",wv,n(a(t)("admin.settings.dingtalk.redirectUrl")),1),c(e("input",{"onUpdate:modelValue":i[82]||(i[82]=o=>s.dingtalk_connect_redirect_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.dingtalk.redirectUrlPlaceholder")},null,8,Cv),[[u,s.dingtalk_connect_redirect_url]]),e("p",Vv,n(a(t)("admin.settings.dingtalk.redirectUrlHint")),1)]),e("div",Uv,[e("label",Sv,n(a(t)("admin.settings.dingtalk.corpPolicy.label")),1),e("p",$v,n(a(t)("admin.settings.dingtalk.corpPolicy.hint")),1),e("div",Pv,[e("label",Ev,[c(e("input",{"onUpdate:modelValue":i[83]||(i[83]=o=>s.dingtalk_connect_corp_restriction_policy=o),type:"radio",value:"none",class:"h-4 w-4 text-primary-600"},null,512),[[Ks,s.dingtalk_connect_corp_restriction_policy]]),e("span",Tv,n(a(t)("admin.settings.dingtalk.corpPolicy.none")),1)]),e("label",Av,[c(e("input",{"onUpdate:modelValue":i[84]||(i[84]=o=>s.dingtalk_connect_corp_restriction_policy=o),type:"radio",value:"internal_only",class:"h-4 w-4 text-primary-600"},null,512),[[Ks,s.dingtalk_connect_corp_restriction_policy]]),e("span",Mv,n(a(t)("admin.settings.dingtalk.corpPolicy.internalOnly")),1)])])]),s.dingtalk_connect_corp_restriction_policy==="internal_only"?(r(),d("div",Fv,[e("div",null,[e("label",Lv,n(a(t)("admin.settings.dingtalk.bypassRegistration")),1),e("p",Hv,n(a(t)("admin.settings.dingtalk.bypassRegistrationHint")),1)]),g(T,{modelValue:s.dingtalk_connect_bypass_registration,"onUpdate:modelValue":i[85]||(i[85]=o=>s.dingtalk_connect_bypass_registration=o)},null,8,["modelValue"])])):h("",!0),s.dingtalk_connect_corp_restriction_policy==="internal_only"?(r(),d("div",Iv,[e
12("div",Rv,[e("div",null,[e("label",Bv,n(a(t)("admin.settings.dingtalk.syncDisplayName")),1),e("p",jv,n(a(t)("admin.settings.dingtalk.syncDisplayNameHint")),1)]),g(T,{modelValue:s.dingtalk_connect_sync_display_name,"onUpdate:modelValue":i[86]||(i[86]=o=>s.dingtalk_connect_sync_display_name=o)},null,8,["modelValue"])]),s.dingtalk_connect_sync_display_name?(r(),d("div",Dv,[e("div",Ov,[e("label",zv,n(a(t)("admin.settings.dingtalk.syncDisplayNameTarget")),1),c(e("input",{"onUpdate:modelValue":i[87]||(i[87]=o=>s.dingtalk_connect_sync_display_name_attr_key=o),type:"text",placeholder:"dingtalk_name",class:"input text-sm flex-1 max-w-xs"},null,512),[[u,s.dingtalk_connect_sync_display_name_attr_key]])]),e("div",qv,[e("label",Nv,n(a(t)("admin.settings.dingtalk.syncAttrDisplayName")),1),c(e("input",{"onUpdate:modelValue":i[88]||(i[88]=o=>s.dingtalk_connect_sync_display_name_attr_name=o),type:"text",placeholder:x("钉钉姓名","DingTalk Name"),class:"input text-sm flex-1 max-w-xs"},null,8,Kv),[[u,s.dingtalk_connect_sync_display_name_attr_name]])])])):h("",!0),s.dingtalk_connect_sync_display_name?(r(),d("p",Wv,n(a(t)("admin.settings.dingtalk.syncDisplayNameTargetHint")),1)):h("",!0)])):h("",!0),s.dingtalk_connect_corp_restriction_policy==="internal_only"?(r(),d("div",Gv,[e("div",Qv,[e("div",null,[e("label",Yv,n(a(t)("admin.settings.dingtalk.syncCorpEmail")),1),e("p",Jv,n(a(t)("admin.settings.dingtalk.syncCorpEmailHint")),1),e("p",Xv,n(a(t)("admin.settings.dingtalk.syncCorpEmailPermissionHint")),1)]),g(T,{modelValue:s.dingtalk_connect_sync_corp_email,"onUpdate:modelValue":i[89]||(i[89]=o=>s.dingtalk_connect_sync_corp_email=o)},null,8,["modelValue"])]),s.dingtalk_connect_sync_corp_email?(r(),d("div",Zv,[e("div",e2,[e("label",t2,n(a(t)("admin.settings.dingtalk.syncCorpEmailTarget")),1),c(e("input",{"onUpdate:modelValue":i[90]||(i[90]=o=>s.dingtalk_connect_sync_corp_email_attr_key=o),type:"text",placeholder:"dingtalk_email",class:"input text-sm flex-1 max-w-xs"},null,512),[[u,s.dingtalk_connect_sync_corp_email_attr_key]])]),e("div",a2,[e("label",s2,n(a(t)("admin.settings.dingtalk.syncAttrDisplayName")),1),c(e("input",{"onUpdate:modelValue":i[91]||(i[91]=o=>s.dingtalk_connect_sync_corp_email_attr_name=o),type:"text",placeholder:x("钉钉企业邮箱","DingTalk Corporate Email"),class:"input text-sm flex-1 max-w-xs"},null,8,n2),[[u,s.dingtalk_connect_sync_corp_email_attr_name]])])])):h("",!0),s.dingtalk_connect_sync_corp_email?(r(),d("p",i2,n(a(t)("admin.settings.dingtalk.syncCorpEmailTargetHint")),1)):h("",!0)])):h("",!0),s.dingtalk_connect_corp_restriction_policy==="internal_only"?(r(),d("div",o2,[e("div",l2,[e("div",null,[e("label",r2,n(a(t)("admin.settings.dingtalk.syncDept")),1),e("p",d2,n(a(t)("admin.settings.dingtalk.syncDeptHint")),1),e("p",c2,n(a(t)("admin.settings.dingtalk.syncDeptPermissionHint")),1)]),g(T,{modelValue:s.dingtalk_connect_sync_dept,"onUpdate:modelValue":i[92]||(i[92]=o=>s.dingtalk_connect_sync_dept=o)},null,8,["modelValue"])]),s.dingtalk_connect_sync_dept?(r(),d("div",u2,[e("div",_2,[e("label",m2,n(a(t)("admin.settings.dingtalk.syncDeptTarget")),1),c(e("input",{"onUpdate:modelValue":i[93]||(i[93]=o=>s.dingtalk_connect_sync_dept_attr_key=o),type:"text",placeholder:"dingtalk_department",class:"input text-sm flex-1 max-w-xs"},null,512),[[u,s.dingtalk_connect_sync_dept_attr_key]])]),e("div",p2,[e("label",g2,n(a(t)("admin.settings.dingtalk.syncAttrDisplayName")),1),c(e("input",{"onUpdate:modelValue":i[94]||(i[94]=o=>s.dingtalk_connect_sync_dept_attr_name=o),type:"text",placeholder:x("钉钉部门","DingTalk Department"),class:"input text-sm flex-1 max-w-xs"},null,8,y2),[[u,s.dingtalk_connect_sync_dept_attr_name]])])])):h("",!0),s.dingtalk_connect_sync_dept?(r(),d("p",b2,n(a(t)("admin.settings.dingtalk.syncDeptTargetHint")),1)):h("",!0)])):h("",!0)])])):h("",!0)])]),e("div",x2,[e("div",h2,[e("h2",f2,n(a(t)("admin.settings.oidc.title")),1),e("p",k2,n(a(t)("admin.settings.oidc.description")),1)]),e("div",v2,[e("div",w2,[e("div",null,[e("label",C2,n(a(t)("admin.settings.oidc.enable")),1),e("p",V2,n(a(t)("admin.settings.oidc.enableHint")),1)]),g(T,{modelValue:s.oidc_connect_enabled,"onUpdate:modelValue":i[95]||(i[95]=o=>s.oidc_connect_enabled=o)},null,8,["modelValue"])]),s.oidc_connect_enabled?(r(),d("div",U2,[e("div",S2,[e("div",null,[e("label",$2,n(a(t)("admin.settings.oidc.providerName")),1),c(e("input",{"onUpdate:modelValue":i[96]||(i[96]=o=>s.oidc_connect_provider_name=o),type:"text",class:"input",placeholder:a(t)("admin.settings.oidc.providerNamePlaceholder")},null,8,P2),[[u,s.oidc_connect_provider_name]])]),e("div",null,[e("label",E2,n(a(t)("admin.settings.oidc.clientId")),1),c(e("input",{"onUpdate:modelValue":i[97]||(i[97]=o=>s.oidc_connect_client_id=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.clientIdPlaceholder")},null,8,T2),[[u,s.oidc_connect_client_id]])]),e("div",null,[e("label",A2,n(a(t)("admin.settings.oidc.clientSecret")),1),c(e("input",{"onUpdate:modelValue":i[98]||(i[98]=o=>s.oidc_connect_client_secret=o),type:"password",class:"input font-mono text-sm",placeholder:s.oidc_connect_client_secret_configured?a(t)("admin.settings.oidc.clientSecretConfiguredPlaceholder"):a(t)("admin.settings.oidc.clientSecretPlaceholder")},null,8,M2),[[u,s.oidc_connect_client_secret]]),e("p",F2,n(s.oidc_connect_client_secret_configured?a(t)("admin.settings.oidc.clientSecretConfiguredHint"):a(t)("admin.settings.oidc.clientSecretHint")),1)])]),e("div",L2,[e("div",null,[e("label",H2,n(a(t)("admin.settings.oidc.issuerUrl")),1),c(e("input",{"onUpdate:modelValue":i[99]||(i[99]=o=>s.oidc_connect_issuer_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.issuerUrlPlaceholder")},null,8,I2),[[u,s.oidc_connect_issuer_url]])]),e("div",null,[e("label",R2,n(a(t)("admin.settings.oidc.discoveryUrl")),1),c(e("input",{"onUpdate:modelValue":i[100]||(i[100]=o=>s.oidc_connect_discovery_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.discoveryUrlPlaceholder")},null,8,B2),[[u,s.oidc_connect_discovery_url]])]),e("div",null,[e("label",j2,n(a(t)("admin.settings.oidc.authorizeUrl")),1),c(e("input",{"onUpdate:modelValue":i[101]||(i[101]=o=>s.oidc_connect_authorize_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.authorizeUrlPlaceholder")},null,8,D2),[[u,s.oidc_connect_authorize_url]])]),e("div",null,[e("label",O2,n(a(t)("admin.settings.oidc.tokenUrl")),1),c(e("input",{"onUpdate:modelValue":i[102]||(i[102]=o=>s.oidc_connect_token_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.tokenUrlPlaceholder")},null,8,z2),[[u,s.oidc_connect_token_url]])]),e("div",null,[e("label",q2,n(a(t)("admin.settings.oidc.userinfoUrl")),1),c(e("input",{"onUpdate:modelValue":i[103]||(i[103]=o=>s.oidc_connect_userinfo_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.userinfoUrlPlaceholder")},null,8,N2),[[u,s.oidc_connect_userinfo_url]])]),e("div",null,[e("label",K2,n(a(t)("admin.settings.oidc.jwksUrl")),1),c(e("input",{"onUpdate:modelValue":i[104]||(i[104]=o=>s.oidc_connect_jwks_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.jwksUrlPlaceholder")},null,8,W2),[[u,s.oidc_connect_jwks_url]])])]),e("div",G2,[e("div",null,[e("label",Q2,n(a(t)("admin.settings.oidc.scopes")),1),c(e("input",{"onUpdate:modelValue":i[105]||(i[105]=o=>s.oidc_connect_scopes=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.scopesPlaceholder")},null,8,Y2),[[u,s.oidc_connect_scopes]]),e("p",J2,n(a(t)("admin.settings.oidc.scopesHint")),1)]),e("div",null,[e("label",X2,n(a(t)("admin.settings.oidc.redirectUrl")),1),c(e("input",{"onUpdate:modelValue":i[106]||(i[106]=o=>s.oidc_connect_redirect_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.redirectUrlPlaceholder")},null,8,Z2),[[u,s.oidc_connect_redirect_url]]),e("div",ew,[e("button",{type:"button",class:"btn btn-secondary btn-sm w-fit",onClick:ti},n(a(t)("admin.settings.oidc.quickSetCopy")),1),ma.value?(r(),d("code",tw,n(ma.value),1)):h("",!0)]),e("p",aw,n(a(t)("admin.settings.oidc.redirectUrlHint")),1)]),e("div",sw,[e("label",nw,n(a(t)("admin.settings.oidc.frontendRedirectUrl")),1),c(e("input",{"onUpdate:modelValue":i[107]||(i[107]=o=>s.oidc_connect_frontend_redirect_url=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.frontendRedirectUrlPlaceholder")},null,8,iw),[[u,s.oidc_connect_frontend_redirect_url]]),e("p",ow,n(a(t)("admin.settings.oidc.frontendRedirectUrlHint")),1)])]),e("div",lw,[e("div",null,[e("label",rw,n(a(t)("admin.settings.oidc.tokenAuthMethod")),1),c(e("select",{"onUpdate:modelValue":i[108]||(i[108]=o=>s.oidc_connect_token_auth_method=o),class:"input font-mono text-sm"},[...i[362]||(i[362]=[e("option",{value:"client_secret_post"}," client_secret_post ",-1),e("option",{value:"client_secret_basic"}," client_secret_basic ",-1),e("option",{value:"none"},"none",-1)])],512),[[Ie,s.oidc_connect_token_auth_method]])]),e("div",null,[e("label",dw,n(a(t)("admin.settings.oidc.clockSkewSeconds")),1),c(e("input",{"onUpdate:modelValue":i[109]||(i[109]=o=>s.oidc_connect_clock_skew_seconds=o),type:"number",min:"0",max:"600",class:"input"},null,512),[[u,s.oidc_connect_clock_skew_seconds,void 0,{number:!0}]])]),e("div",null,[e("label",cw,n(a(t)("admin.settings.oidc.allowedSigningAlgs")),1),c(e("input",{"onUpdate:modelValue":i[110]||(i[110]=o=>s.oidc_connect_allowed_signing_algs=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.allowedSigningAlgsPlaceholder")},null,8,uw),[[u,s.oidc_connect_allowed_signing_algs]])])]),e("div",_w,[e("div",mw,[e("div",null,[e("label",pw,n(a(t)("admin.settings.oidc.usePkce")),1)]),g(T,{modelValue:s.oidc_connect_use_pkce,"onUpdate:modelValue":i[111]||(i[111]=o=>s.oidc_connect_use_pkce=o),"data-testid":"oidc-connect-use-pkce"},null,8,["modelValue"])]),e("div",gw,[e("div",null,[e("label",yw,n(a(t)("admin.settings.oidc.validateIdToken")),1)]),g(T,{modelValue:s.oidc_connect_validate_id_token,"onUpdate:modelValue":i[112]||(i[112]=o=>s.oidc_connect_validate_id_token=o),"data-testid":"oidc-connect-validate-id-token"},null,8,["modelValue"])]),e("div",bw,[e("div",null,[e("label",xw,n(a(t)("admin.settings.oidc.requireEmailVerified")),1)]),g(T,{modelValue:s.oidc_connect_require_email_verified,"onUpdate:modelValue":i[113]||(i[113]=o=>s.oidc_connect_require_email_verified=o)},null,8,["modelValue"])])]),e("div",hw,[e("div",null,[e("label",fw,n(a(t)("admin.settings.oidc.userinfoEmailPath")),1
12),c(e("input",{"onUpdate:modelValue":i[114]||(i[114]=o=>s.oidc_connect_userinfo_email_path=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.userinfoEmailPathPlaceholder")},null,8,kw),[[u,s.oidc_connect_userinfo_email_path]])]),e("div",null,[e("label",vw,n(a(t)("admin.settings.oidc.userinfoIdPath")),1),c(e("input",{"onUpdate:modelValue":i[115]||(i[115]=o=>s.oidc_connect_userinfo_id_path=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.userinfoIdPathPlaceholder")},null,8,ww),[[u,s.oidc_connect_userinfo_id_path]])]),e("div",null,[e("label",Cw,n(a(t)("admin.settings.oidc.userinfoUsernamePath")),1),c(e("input",{"onUpdate:modelValue":i[116]||(i[116]=o=>s.oidc_connect_userinfo_username_path=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.userinfoUsernamePathPlaceholder")},null,8,Vw),[[u,s.oidc_connect_userinfo_username_path]])])])])):h("",!0)])])],512),[[Se,S.value==="security"]]),c(e("div",Uw,[e("div",Sw,[e("div",$w,[e("h2",Pw,n(a(t)("admin.settings.defaults.title")),1),e("p",Ew,n(a(t)("admin.settings.defaults.description")),1)]),e("div",Tw,[e("div",Aw,[e("div",null,[e("label",Mw,n(a(t)("admin.settings.defaults.defaultBalance")),1),c(e("input",{"onUpdate:modelValue":i[117]||(i[117]=o=>s.default_balance=o),type:"number",step:"0.01",min:"0",class:"input",placeholder:"0.00"},null,512),[[u,s.default_balance,void 0,{number:!0}]]),e("p",Fw,n(a(t)("admin.settings.defaults.defaultBalanceHint")),1)]),e("div",null,[e("label",Lw,n(a(t)("admin.settings.defaults.defaultConcurrency")),1),c(e("input",{"onUpdate:modelValue":i[118]||(i[118]=o=>s.default_concurrency=o),type:"number",min:"1",class:"input",placeholder:"1"},null,512),[[u,s.default_concurrency,void 0,{number:!0}]]),e("p",Hw,n(a(t)("admin.settings.defaults.defaultConcurrencyHint")),1)]),e("div",null,[e("label",Iw,n(a(t)("admin.settings.defaults.defaultUserRpmLimit")),1),c(e("input",{"onUpdate:modelValue":i[119]||(i[119]=o=>s.default_user_rpm_limit=o),type:"number",min:"0",step:"1",class:"input",placeholder:"0"},null,512),[[u,s.default_user_rpm_limit,void 0,{number:!0}]]),e("p",Rw,n(a(t)("admin.settings.defaults.defaultUserRpmLimitHint")),1)])]),e("div",Bw,[e("div",jw,[e("div",null,[e("label",Dw,n(a(t)("admin.settings.defaults.defaultSubscriptions")),1),e("p",Ow,n(a(t)("admin.settings.defaults.defaultSubscriptionsHint")),1)]),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:Pi,disabled:Pe.value.length===0},n(a(t)("admin.settings.defaults.addDefaultSubscription")),9,zw)]),s.default_subscriptions.length===0?(r(),d("div",qw,n(a(t)("admin.settings.defaults.defaultSubscriptionsEmpty")),1)):(r(),d("div",Nw,[(r(!0),d(R,null,N(s.default_subscriptions,(o,m)=>(r(),d("div",{key:`default-sub-${m}`,class:"grid grid-cols-1 gap-3 rounded border border-gray-200 p-3 md:grid-cols-[1fr_160px_auto] dark:border-dark-600"},[e("div",null,[e("label",Kw,n(a(t)("admin.settings.defaults.subscriptionGroup")),1),g(ke,{modelValue:o.group_id,"onUpdate:modelValue":_=>o.group_id=_,class:"default-sub-group-select",options:ns.value,placeholder:a(t)("admin.settings.defaults.subscriptionGroup")},{selected:$e(({option:_})=>[_?(r(),Xe(Js,{key:0,name:_.label,platform:_.platform,"subscription-type":_.subscriptionType,"rate-multiplier":_.rate},null,8,["name","platform","subscription-type","rate-multiplier"])):(r(),d("span",Ww,n(a(t)("admin.settings.defaults.subscriptionGroup")),1))]),option:$e(({option:_,selected:G})=>[g(Xs,{name:_.label,platform:_.platform,"subscription-type":_.subscriptionType,"rate-multiplier":_.rate,description:_.description,selected:G},null,8,["name","platform","subscription-type","rate-multiplier","description","selected"])]),_:1},8,["modelValue","onUpdate:modelValue","options","placeholder"])]),e("div",null,[e("label",Gw,n(a(t)("admin.settings.defaults.subscriptionValidityDays")),1),c(e("input",{"onUpdate:modelValue":_=>o.validity_days=_,type:"number",min:"1",max:"36500",class:"input h-[42px]"},null,8,Qw),[[u,o.validity_days,void 0,{number:!0}]])]),e("div",Yw,[e("button",{type:"button",class:"btn btn-secondary default-sub-delete-btn w-full text-red-600 hover:text-red-700 dark:text-red-400",onClick:_=>Ei(m)},n(a(t)("common.delete")),9,Jw)])]))),128))]))]),e("div",Xw,[e("div",Zw,[e("label",e4,n(a(t)("admin.settings.defaults.defaultPlatformQuotas")),1),e("p",t4,n(a(t)("admin.settings.defaults.defaultPlatformQuotasHint")),1),e("p",a4,n(a(t)("admin.settings.defaults.platformQuotaNotice")),1)]),e("div",s4,[e("table",n4,[e("thead",null,[e("tr",i4,[e("th",o4,n(a(t)("admin.settings.platformQuota.platform")),1),e("th",l4,n(a(t)("admin.settings.platformQuota.daily")),1),e("th",r4,n(a(t)("admin.settings.platformQuota.weekly")),1),e("th",d4,n(a(t)("admin.settings.platformQuota.monthly")),1)])]),e("tbody",c4,[(r(!0),d(R,null,N(a(Gs),o=>(r(),d("tr",{key:o,class:"align-top"}
12,[e("td",u4,[e("span",_4,n(o),1)]),e("td",m4,[c(e("input",{"onUpdate:modelValue":m=>s.default_platform_quotas[o].daily=m,type:"number",step:"0.01",min:"0",class:"input h-8 w-28 text-sm",placeholder:a(t)("admin.settings.platformQuota.placeholder")},null,8,p4),[[u,s.default_platform_quotas[o].daily,void 0,{number:!0}]])]),e("td",g4,[c(e("input",{"onUpdate:modelValue":m=>s.default_platform_quotas[o].weekly=m,type:"number",step:"0.01",min:"0",class:"input h-8 w-28 text-sm",placeholder:a(t)("admin.settings.platformQuota.placeholder")},null,8,y4),[[u,s.default_platform_quotas[o].weekly,void 0,{number:!0}]])]),e("td",b4,[c(e("input",{"onUpdate:modelValue":m=>s.default_platform_quotas[o].monthly=m,type:"number",step:"0.01",min:"0",class:"input h-8 w-28 text-sm",placeholder:a(t)("admin.settings.platformQuota.placeholder")},null,8,x4),[[u,s.default_platform_quotas[o].monthly,void 0,{number:!0}]])])]))),128))])])])])])]),e("div",h4,[e("div",f4,[e("h2",k4,n(a(t)("admin.settings.authSourceDefaults.title")),1),e("p",v4,n(a(t)("admin.settings.authSourceDefaults.description")),1)]),e("div",w4,[e("div",C4,[e("div",null,[e("label",V4,n(a(t)("admin.settings.authSourceDefaults.requireEmailLabel")),1),e("p",U4,n(a(t)("admin.settings.authSourceDefaults.requireEmailHint")),1)]),g(T,{modelValue:s.force_email_on_third_party_signup,"onUpdate:modelValue":i[120]||(i[120]=o=>s.force_email_on_third_party_signup=o)},null,8,["modelValue"])]),e("div",S4,[(r(!0),d(R,null,N(ts.value,o=>(r(),d("div",{key:o.source,class:"rounded-xl border border-gray-200 p-4 dark:border-dark-700"},[e("div",$4,[e("div",null,[e("div",P4,n(o.title),1),e("p",E4,n(o.description),1)]),g(T,{modelValue:be[o.source].grant_on_signup,"onUpdate:modelValue":m=>be[o.source].grant_on_signup=m,"data-testid":`auth-source-${o.source}-enabled`},null,8,["modelValue","onUpdate:modelValue","data-testid"])]),be[o.source].grant_on_signup?(r(),d("div",{key:0,"data-testid":`auth-source-${o.source}-panel`,class:"mt-4 space-y-4 border-t border-gray-100 pt-4 dark:border-dark-700"},[e("p",A4,n(a(t)("admin.settings.authSourceDefaults.enabledHint")),1),e("div",M4,[e("div",null,[e("label",F4,n(a(t)("admin.settings.defaults.defaultBalance")),1),c(e("input",{"onUpdate:modelValue":m=>be[o.source].balance=m,type:"number",step:"0.01",min:"0",class:"input",placeholder:"0.00"},null,8,L4),[[u,be[o.source].balance,void 0,{number:!0}]])]),e("div",null,[e("label",H4,n(a(t)("admin.settings.defaults.defaultConcurrency")),1),c(e("input",{"onUpdate:modelValue":m=>be[o.source].concurrency=m,type:"number",min:"1",class:"input",placeholder:"5"},null,8,I4),[[u,be[o.source].concurrency,void 0,{number:!0}]])])]),e("div",R4,[e("div",null,[e("label",B4,n(a(t)("admin.settings.authSourceDefaults.grantOnFirstBindLabel")),1),e("p",j4,n(a(t)("admin.settings.authSourceDefaults.grantOnFirstBindHint")),1)]),g(T,{modelValue:be[o.source].grant_on_first_bind,"onUpdate:modelValue":m=>be[o.source].grant_on_first_bind=m},null,8,["modelValue","onUpdate:modelValue"])]),e("div",D4,[e("div",null,[e("label",O4,n(a(t)("admin.settings.authSourceDefaults.defaultSubscriptionsLabel")),1),e("p",z4,n(a(t)("admin.settings.authSourceDefaults.defaultSubscriptionsHint")),1)]),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:m=>Ti(o.source),disabled:Pe.value.length===0},n(a(t)("admin.settings.defaults.addDefaultSubscription")),9,q4)]),be[o.source].subscriptions.length===0?(r(),d("div",N4,n(a(t)("admin.settings.authSourceDefaults.noSourceSubscriptions")),1)):(r(),d("div",K4,[(r(!0),d(R,null,N(be[o.source].subscriptions,(m,_)=>(r(),d("div",{key:`${o.source}-sub-${_}`,class:"grid grid-cols-1 gap-3 rounded border border-gray-200 p-3 md:grid-cols-[1fr_160px_auto] dark:border-dark-600"},[e("div",null,[e("label",W4,n(a(t)("admin.settings.defaults.subscriptionGroup")),1),g(ke,{modelValue:m.group_id,"onUpdate:modelValue":G=>m.group_id=G,class:"default-sub-group-select",options:ns.value,placeholder:a(t)("admin.settings.defaults.subscriptionGroup")},{selected:$e(({option:G})=>[G?(r(),Xe(Js,{key:0,name:G.label,platform:G.platform,"subscription-type":G.subscriptionType,"rate-multiplier":G.rate},null,8,["name","platform","subscription-type","rate-multiplier"])):(r(),d("span",G4,n(a(t)("admin.settings.defaults.subscriptionGroup")),1))]),option:$e(({option:G,selected:Ce})=>[g(Xs,{name:G.label,platform:G.platform,"subscription-type":G.subscriptionType,"rate-multiplier":G.rate,de
12scription:G.description,selected:Ce},null,8,["name","platform","subscription-type","rate-multiplier","description","selected"])]),_:1},8,["modelValue","onUpdate:modelValue","options","placeholder"])]),e("div",null,[e("label",Q4,n(a(t)("admin.settings.defaults.subscriptionValidityDays")),1),c(e("input",{"onUpdate:modelValue":G=>m.validity_days=G,type:"number",min:"1",max:"36500",class:"input h-[42px]"},null,8,Y4),[[u,m.validity_days,void 0,{number:!0}]])]),e("div",J4,[e("button",{type:"button",class:"btn btn-secondary w-full text-red-600 hover:text-red-700 dark:text-red-400",onClick:G=>Ai(o.source,_)},n(a(t)("common.delete")),9,X4)])]))),128))])),e("div",Z4,[e("div",e5,[e("label",t5,n(a(t)("admin.settings.authSourceDefaults.platformQuotasOverride")),1),e("p",a5,n(a(t)("admin.settings.authSourceDefaults.platformQuotasOverrideHint")),1)]),e("div",s5,[e("table",n5,[e("thead",null,[e("tr",i5,[e("th",o5,n(a(t)("admin.settings.platformQuota.platform")),1),e("th",l5,n(a(t)("admin.settings.platformQuota.daily")),1),e("th",r5,n(a(t)("admin.settings.platformQuota.weekly")),1),e("th",d5,n(a(t)("admin.settings.platformQuota.monthly")),1)])]),e("tbody",null,[(r(!0),d(R,null,N(a(Gs),m=>(r(),d("tr",{key:`${o.source}-pq-${m}`,class:"align-top"},[e("td",c5,[e("span",u5,n(m),1)]),e("td",_5,[c(e("input",{"onUpdate:modelValue":_=>be[o.source].platform_quotas[m].daily=_,type:"number",step:"0.01",min:"0",class:"input h-8 w-28 text-sm",placeholder:a(t)("admin.settings.platformQuota.placeholder")},null,8,m5),[[u,be[o.source].platform_quotas[m].daily,void 0,{number:!0}]])]),e("td",p5,[c(e("input",{"onUpdate:modelValue":_=>be[o.source].platform_quotas[m].weekly=_,type:"number",step:"0.01",min:"0",class:"input h-8 w-28 text-sm",placeholder:a(t)("admin.settings.platformQuota.placeholder")},null,8,g5),[[u,be[o.source].platform_quotas[m].weekly,void 0,{number:!0}]])]),e("td",y5,[c(e("input",{"onUpdate:modelValue":_=>be[o.source].platform_quotas[m].monthly=_,type:"number",step:"0.01",min:"0",class:"input h-8 w-28 text-sm",placeholder:a(t)("admin.settings.platformQuota.placeholder")},null,8,b5),[[u,be[o.source].platform_quotas[m].monthly,void 0,{number:!0}]])])]))),128))])])])])],8,T4)):h("",!0)]))),128))])])])],512),[[Se,S.value==="users"]]),c(e("div",x5,[e("div",h5,[e("div",f5,[e("h2",k5,n(a(t)("admin.settings.claudeCode.title")),1),e("p",v5,n(a(t)("admin.settings.claudeCode.description")),1)]),e("div",w5,[e("div",null,[e("label",C5,n(a(t)("admin.settings.claudeCode.minVersion")),1),c(e("input",{"onUpdate:modelValue":i[121]||(i[121]=o=>s.min_claude_code_version=o),type:"text",class:"input max-w-xs font-mono text-sm",placeholder:a(t)("admin.settings.claudeCode.minVersionPlaceholder")},null,8,V5),[[u,s.min_claude_code_version]]),e("p",U5,n(a(t)("admin.settings.claudeCode.minVersionHint")),1)]),e("div",S5,[e("label",$5,n(a(t)("admin.settings.claudeCode.maxVersion")),1),c(e("input",{"onUpdate:modelValue":i[122]||(i[122]=o=>s.max_claude_code_version=o),type:"text",class:"input max-w-xs font-mono text-sm",placeholder:a(t)("admin.settings.claudeCode.maxVersionPlaceholder")},null,8,P5),[[u,s.max_claude_code_version]]),e("p",E5,n(a(t)("admin.settings.claudeCode.maxVersionHint")),1)])])]),e("div",T5,[e("div",A5,[e("h2",M5,n(a(t)("admin.settings.gatewayForwarding.codexHardeningTitle")),1)]),e("div",F5,[e("div",L5,[e("div",H5,[e("h3",I5,n(a(t)("admin.settings.gatewayForwarding.codexTicketEnabled")),1),e("p",R5,n(a(t)("admin.settings.gatewayForwarding.codexTicketEnabledDesc")),1)]),g(T,{id:"codex-ticket-enabled",modelValue:s.openai_codex_ticket_enabled,"onUpdate:modelValue":i[123]||(i[123]=o=>s.openai_codex_ticket_enabled=o)},null,8,["modelValue"])]),e("div",B5,[e("div",j5,[e("h3",D5,n(a(t)("admin.settings.gatewayForwarding.codexTicketFailClosed")),1),e("p",O5,n(a(t)("admin.settings.gatewayForwarding.codexTicketFailClosedDesc")),1)]),g(T,{id:"codex-ticket-fail-closed",modelValue:s.openai_codex_ticket_fail_closed,"onUpdate:modelValue":i[124]||(i[124]=o=>s.openai_codex_ticket_fail_closed=o)},null,8,["modelValue"])]),e("div",z5,[e("h3",q5,n(a(t)("admin.settings.gatewayForwarding.codexTicketModels")),1),e("p",N5,n(a(t)("admin.settings.gatewayForwarding.codexTicketModelsDesc")),1
12),e("p",K5,n(a(t)("admin.settings.gatewayForwarding.codexTicketShapeNotice")),1),e("fieldset",W5,[e("legend",G5,n(x("自动打票范围","Automatic harvest scope")),1),c(e("select",{id:"codex-ticket-harvest-scope","onUpdate:modelValue":i[125]||(i[125]=o=>s.openai_codex_ticket_harvest_scope.mode=o),class:"input"},[e("option",Q5,n(x("全部 OpenAI 账号(兼容原设置)","All OpenAI accounts (legacy default)")),1),e("option",Y5,n(x("仅指定分组","Selected groups only")),1)],512),[[Ie,s.openai_codex_ticket_harvest_scope.mode]]),e("label",J5,n(x("账号采集策略","Account harvest policy")),1),c(e("select",{id:"codex-ticket-account-policy","onUpdate:modelValue":i[126]||(i[126]=o=>s.openai_codex_ticket_harvest_scope.account_policy=o),class:"input mt-2"},[e("option",X5,n(x("仅可调度账号(默认)","Schedulable accounts only (default)")),1),e("option",Z5,n(x("可调度优先,手动停调账号排队","Prioritize schedulable; queue manually disabled accounts")),1)],512),[[Ie,s.openai_codex_ticket_harvest_scope.account_policy]]),s.openai_codex_ticket_harvest_scope.mode==="selected"?(r(),d("div",e3,[Ne.value?(r(),d("p",t3,n(x("分组加载失败,已选范围保留,请刷新后重试。","Could not load groups. Saved selection is preserved; refresh to retry.")),1)):h("",!0),(r(!0),d(R,null,N(Re.value,o=>(r(),d("label",{key:o.id,class:"flex items-center gap-2 text-sm"},[c(e("input",{id:"codex-ticket-group-"+o.id,"onUpdate:modelValue":i[127]||(i[127]=m=>s.openai_codex_ticket_harvest_scope.group_ids=m),type:"checkbox",value:o.id},null,8,a3),[[ze,s.openai_codex_ticket_harvest_scope.group_ids]]),e("span",null,n(o.name)+" (#"+n(o.id)+")",1)]))),128)),s.openai_codex_ticket_harvest_scope.group_ids.length===0?(r(),d("p",s3,n(x("未选择分组:不会自动打票,不会退回全部账号。","No groups selected: automatic harvesting is paused, not broadened to all accounts.")),1)):h("",!0)])):h("",!0),e("p",n3,n(x("控制后台采集。范围外账号不再自动补票;缺票拦截开启时,范围外遗留门票也不再参与门控选号。账号级「不打票」只停采集,不停调度,也不等于降智。限流、过载、临时冷却、过期和配额耗尽账号始终跳过。兼容模式只会把手动关闭「参与调度」的账号放到后排。保存后下轮生效。","Controls background harvesting. Out-of-scope accounts are not probed, and fail-closed routing will not spend leftover tickets on them. Per-account skip-harvest only stops probing — the account stays schedulable and is not treated as paused or 降智. Rate-limited, overloaded, cooling-down, expired, and quota-exhausted accounts are always skipped. Compatibility mode only defers accounts whose scheduling switch was manually disabled. Changes apply next round.")),1)]),e("label",i3,n(x("票据刷新策略","Ticket refresh strategy")),1),c(e("select",{id:"codex-ticket-strategy","onUpdate:modelValue":i[128]||(i[128]=o=>s.openai_codex_ticket_strategy=o),class:"input mt-2"},[e("option",o3,n(x("提前准备备用(默认)","Prepare standby (default)")),1),e("option",l3,n(x("固定主用,失效后再采集","Keep primary until invalid")),1)],512),[[Ie,s.openai_codex_ticket_strategy]]),e("label",r3,[c(e("input",{id:"codex-ticket-strict",type:"checkbox","onUpdate:modelValue":i[129]||(i[129]=o=>s.openai_codex_ticket_strict_response=o)},null,512),[[ze,s.openai_codex_ticket_strict_response]]),I(n(x("严格拦截票据响应不匹配(默认关闭)","Reject mismatched ticket responses (off by default)")),1)]),e("p",d3,n(x("仅在 HTTP 响应头明确不匹配时拦截正文;当前请求可能已计费,不会自动重放。关闭时只更新后续票据调度。","Rejects the body when HTTP response state headers mismatch. The upstream may have charged; the request is not replayed. When off, only future ticket scheduling changes.")),1),e("p",c3,n(x("切换策略保留有效主备票据和冷却。固定主用可能在失效后短暂等待新票。","Switching preserves valid tickets and cooldowns. Fixed primary may briefly wait for a new ticket after expiry.")),1),e("div",u3,[e("label",_3,[e("input",{id:"codex-ticket-model-astra",type:"checkbox",checked:s.openai_codex_ticket_models.includes("gpt-6-astra"),onChange:i[130]||(i[130]=o=>Cs("gpt-6-astra",o.target.checked))},null,40,m3),i[363]||(i[363]=e("span",null,"Astra (gpt-6-astra)",-1))]),e("label",p3,[e("input",{id:"codex-ticket-model-sol",type:"checkbox",checked:s.openai_codex_ticket_models.includes("gpt-5.6-sol"),onChange:i[131]||(i[131]=o=>Cs("gpt-5.6-sol",o.target.checked))},null,40,g3),i[364]||(i[364]=e("span",null,"Sol (gpt-5.6-sol)",-1))])])]),e("div",null,[e("h3",y3,n(a(t)("admin.settings.gatewayForwarding.codexTicketHarvestProxy")),1),e("p",b3,n(a(t)("admin.settings.gatewayForwarding.codexTicketHarvestProxyDesc")),1
12),e("div",{class:"mt-3 flex flex-wrap gap-2",role:"radiogroup","aria-label":a(t)("admin.settings.gatewayForwarding.codexTicketProxyMode")},[e("label",{class:X(["inline-flex cursor-pointer items-center gap-2 rounded-md border px-3 py-2 text-sm transition-colors",Ye.value==="mihomo"?"border-primary-500 bg-primary-50 text-primary-700 dark:bg-primary-900/30 dark:text-primary-300":"border-gray-200 text-gray-600 hover:border-primary-300 dark:border-dark-600 dark:text-gray-400"])},[e("input",{class:"sr-only",type:"radio",name:"codex-ticket-proxy-mode",value:"mihomo",checked:Ye.value==="mihomo",onChange:i[132]||(i[132]=o=>ga("mihomo"))},null,40,h3),e("span",null,n(a(t)("admin.settings.gatewayForwarding.codexTicketProxyModeMihomo")),1)],2),e("label",{class:X(["inline-flex cursor-pointer items-center gap-2 rounded-md border px-3 py-2 text-sm transition-colors",Ye.value==="static"?"border-primary-500 bg-primary-50 text-primary-700 dark:bg-primary-900/30 dark:text-primary-300":"border-gray-200 text-gray-600 hover:border-primary-300 dark:border-dark-600 dark:text-gray-400"])},[e("input",{class:"sr-only",type:"radio",name:"codex-ticket-proxy-mode",value:"static",checked:Ye.value==="static",onChange:i[133]||(i[133]=o=>ga("static"))},null,40,f3),e("span",null,n(a(t)("admin.settings.gatewayForwarding.codexTicketProxyModeStatic")),1)],2),e("label",{class:X(["inline-flex cursor-pointer items-center gap-2 rounded-md border px-3 py-2 text-sm transition-colors",Ye.value==="ip_pool"?"border-primary-500 bg-primary-50 text-primary-700 dark:bg-primary-900/30 dark:text-primary-300":"border-gray-200 text-gray-600 hover:border-primary-300 dark:border-dark-600 dark:text-gray-400"])},[e("input",{class:"sr-only",type:"radio",name:"codex-ticket-proxy-mode",value:"ip_pool",checked:Ye.value==="ip_pool",onChange:i[134]||(i[134]=o=>ga("ip_pool"))},null,40,k3),e("span",null,n(a(t)("admin.settings.gatewayForwarding.codexTicketProxyModeIPPool")),1)],2)],8,x3),Ye.value==="mihomo"?(r(),d("div",v3,[e("div",w3,[e("span",null,n(a(t)("admin.settings.gatewayForwarding.codexTicketProxyMihomoEndpoint")),1),e("code",{class:"rounded bg-white/70 px-1.5 py-0.5 font-mono text-xs dark:bg-dark-800/70"},n(sn))]),g(Ag,{onReady:Vi})])):Ye.value==="ip_pool"?(r(),d("p",C3,n(a(t)("admin.settings.gatewayForwarding.codexTicketProxyIPPoolHint")),1)):c((r(),d("input",{key:2,id:"codex-ticket-harvest-proxy","onUpdate:modelValue":i[135]||(i[135]=o=>s.openai_codex_ticket_harvest_proxy_url=o),type:"text",class:"input mt-3 w-full font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.codexTicketHarvestProxyPlaceholder"),autocomplete:"off"},null,8,V3)),[[u,s.openai_codex_ticket_harvest_proxy_url]]),s.openai_codex_ticket_harvest_proxy_configured&&Ye.value==="static"?(r(),d("p",U3,n(a(t)("admin.settings.gatewayForwarding.codexTicketHarvestProxyConfigured")),1)):h("",!0)]),e("div",null,[e("h3",S3,n(a(t)("admin.settings.gatewayForwarding.codexClientRestrictionTitle")),1),e("p",$3,n(a(t)("admin.settings.gatewayForwarding.codexHardeningDesc")),1)]),e("div",P3,[e("div",null,[e("label",E3,n(a(t)("admin.settings.gatewayForwarding.minCodexVersion")),1),c(e("input",{"onUpdate:modelValue":i[136]||(i[136]=o=>s.min_codex_version=o),type:"text",class:"input w-full font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.minCodexVersionPlaceholder")},null,8,T3),[[u,s.min_codex_version]])]),e("div",null,[e("label",A3,n(a(t)("admin.settings.gatewayForwarding.maxCodexVersion")),1),c(e("input",{"onUpdate:modelValue":i[137]||(i[137]=o=>s.max_codex_version=o),type:"text",class:"input w-full font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.maxCodexVersionPlaceholder")},null,8,M3),[[u,s.max_codex_version]])])]),e("p",F3,n(a(t)("admin.settings.gatewayForwarding.codexVersionHint")),1),e("div",null,[e("label",L3,n(a(t)("admin.settings.gatewayForwarding.codexFingerprintSignals")),1),e("p",H3,n(a(t)("admin.settings.gatewayForwarding.codexFingerprintSignalsDesc")),1),(r(!0),d(R,null,N(bt.value,(o,m)=>(r(),d("div",{key:`codex-fp-${m}`,class:"mb-2 flex items-center gap-2"},[c(e("select",{"onUpdate:modelValue":_=>o.type=_,class:"input w-32 text-sm"},[e("option",R3,n(a(t)("admin.settings.gatewayForwarding.codexFpTypeHeaderExact")),1),e("option",B3,n(a(t)("admin.settings.gatewayForwarding.codexFpTypeHeaderPrefix")),1),e("option",j3,n(a(t)("admin.settings.gatewayForwarding.codexFpTypeBodyPath")),1
12)],8,I3),[[Ie,o.type]]),c(e("input",{"onUpdate:modelValue":_=>o.match=_,type:"text",class:"input flex-1 font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.codexFpMatchPlaceholder")},null,8,D3),[[u,o.match]]),e("label",O3,[c(e("input",{"onUpdate:modelValue":_=>o.required=_,type:"checkbox"},null,8,z3),[[ze,o.required]]),I(" "+n(a(t)("admin.settings.gatewayForwarding.codexFpRequired")),1)]),e("button",{type:"button",class:"btn btn-secondary btn-sm shrink-0 text-red-600 hover:text-red-700 dark:text-red-400",onClick:_=>xi(m)},n(a(t)("admin.settings.gatewayForwarding.codexRemoveRow")),9,q3)]))),128)),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:bi},n(a(t)("admin.settings.gatewayForwarding.codexAddRow")),1),yi.value?(r(),d("p",N3,n(a(t)("admin.settings.gatewayForwarding.codexFingerprintNoRequiredWarn")),1)):h("",!0)]),e("div",K3,[e("div",W3,[e("label",G3,n(a(t)("admin.settings.gatewayForwarding.codexAllowAppServer")),1),e("p",Q3,n(a(t)("admin.settings.gatewayForwarding.codexAllowAppServerDesc")),1)]),g(T,{modelValue:s.codex_cli_only_allow_app_server_clients,"onUpdate:modelValue":i[138]||(i[138]=o=>s.codex_cli_only_allow_app_server_clients=o)},null,8,["modelValue"])]),e("div",null,[e("label",Y3,n(a(t)("admin.settings.gatewayForwarding.codexBlacklist")),1),e("p",J3,n(a(t)("admin.settings.gatewayForwarding.codexBlacklistDesc")),1),(r(!0),d(R,null,N(Pt.value,(o,m)=>(r(),d("div",{key:`codex-bl-${m}`,class:"mb-2 flex gap-2"},[c(e("input",{"onUpdate:modelValue":_=>o.originator=_,type:"text",class:"input w-1/3 font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.codexOriginatorPlaceholder")},null,8,X3),[[u,o.originator]]),c(e("input",{"onUpdate:modelValue":_=>o.uaContains=_,type:"text",class:"input flex-1 font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.codexUaContainsPlaceholder")},null,8,Z3),[[u,o.uaContains]]),e("button",{type:"button",class:"btn btn-secondary btn-sm shrink-0 text-red-600 hover:text-red-700 dark:text-red-400",onClick:_=>fi(m)},n(a(t)("admin.settings.gatewayForwarding.codexRemoveRow")),9,e6)]))),128)),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:hi},n(a(t)("admin.settings.gatewayForwarding.codexAddRow")),1)]),e("div",null,[e("label",t6,n(a(t)("admin.settings.gatewayForwarding.codexWhitelist")),1),e("p",a6,n(a(t)("admin.settings.gatewayForwarding.codexWhitelistDesc")),1),(r(!0),d(R,null,N(Et.value,(o,m)=>(r(),d("div",{key:`codex-wl-${m}`,class:"mb-2 flex gap-2"},[c(e("input",{"onUpdate:modelValue":_=>o.originator=_,type:"text",class:"input w-1/3 font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.codexOriginatorPlaceholder")},null,8,s6),[[u,o.originator]]),c(e("input",{"onUpdate:modelValue":_=>o.uaContains=_,type:"text",class:"input flex-1 font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.codexUaContainsPlaceholder")},null,8,n6),[[u,o.uaContains]]),e("label",{class:"flex shrink-0 items-center gap-1 text-xs text-gray-600 dark:text-gray-400",title:a(t)("admin.settings.gatewayForwarding.codexWhitelistSkipFingerprintTooltip")},[c(e("input",{"onUpdate:modelValue":_=>o.skipEngineFingerprint=_,type:"checkbox"},null,8,o6),[[ze,o.skipEngineFingerprint]]),I(" "+n(a(t)("admin.settings.gatewayForwarding.codexWhitelistSkipFingerprint")),1)],8,i6),e("button",{type:"button",class:"btn btn-secondary btn-sm shrink-0 text-red-600 hover:text-red-700 dark:text-red-400",onClick:_=>vi(m)},n(a(t)("admin.settings.gatewayForwarding.codexRemoveRow")),9,l6)]))),128)),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:ki},n(a(t)("admin.settings.gatewayForwarding.codexAddRow")),1)])])]),e("div",r6,[e("div",d6,[e("h2",c6,n(a(t)("admin.settings.upstreamBillingProbe.title")),1),e("p",u6,n(a(t)("admin.settings.upstreamBillingProbe.description")),1)]),e("div",_6,[Ze.value?(r(),d("div",m6,[i[365]||(i[365]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),I(" "+n(a(t)("common.loading")),1)])):(r(),d(R,{key:1},[e("div",p6,[e("div",null,[e("label",g6,n(a(t)("admin.settings.upstreamBillingProbe.enabled")),1),e("p",y6,n(a(t)("admin.settings.upstreamBillingProbe.enabledHint")),1)]),g(T,{modelValue:Ee.enabled,"onUpdate:modelValue":i[139]||(i[139]=o=>Ee.enabled=o),"aria-label":a(t)("admin.settings.upstreamBillingProbe.enabled"),"data-testid":"upstream-billing-probe-enabled"},null,8,["modelValue","aria-label"])]),Ee.enabled?(r(),d("div",b6,[e("label",x6,n(a(t)("admin.settings.upstreamBillingProbe.intervalMinutes")),1),c(e("input",{id:"upstream-billing-probe-interval","onUpdate:modelValue":i[140]||(i[140]=o=>Ee.interval_minutes=o),type:"number",min:"5",max:"1440",class:"input w-32","data-testid":"upstream-billing-probe-interval",onKeydown:dt(Me(Ss,["prevent"]),["enter"])},null,40,h6),[[u,Ee.interval_minutes,void 0,{number:!0}]]),e("p",f6,n(a(t)("admin.settings.upstreamBillingProbe.intervalHint")),1)])):h("",!0),e("div",k6,[e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:et.value,"data-testid":"upstream-billing-probe-save",onClick:Ss},n(et.value?a(t)("common.saving"):a(t)("common.save")),9,v6)])],64))])]),e("div",w6,[e("div",C6,[e("h2",V6,n(a(t)("admin.settings.ollamaCloudUsage.title")),1),e("p",U6,n(a(t)("admin.settings.ollamaCloudUsage.description")),1)]),e("div",S6,[Be.value?(r(),d("div",$6,[i[366]||(i[366]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),I(" "+n(a(t)("common.loading")),1)])):(r(),d(R,{key:1},[e("div",P6,[e("div",null,[e("label",E6,n(a(t)("admin.settings.ollamaCloudUsage.enabled")),1),e("p",T6,n(a(t)("admin.settings.ollamaCloudUsage.enabledHint")),1)]),g(T,{modelValue:Te.enabled,"onUpdate:modelValue":i[141]||(i[141]=o=>Te.enabled=o),"aria-label":a(t)("admin.settings.ollamaCloudUsage.enabled"),"data-testid":"ollama-cloud-usage-global-enabled"},null,8,["modelValue","aria-label"])]),Te.enabled?(r(),d("div",A6,[e("div",null,[e("label",M6,n(a(t)("admin.settings.ollamaCloudUsage.debounceMinutes")),1),c(e("input",{id:"ollama-cloud-usage-debounce","onUpdate:modelValue":i[142]||(i[142]=o=>Te.debounce_minutes=o),type:"number",min:"1",max:"60",class:"input w-32","data-testid":"ollama-cloud-usage-global-debounce",onKeydown:dt(Me(ba,["prevent"]),["enter"])},null,40,F6),[[u,Te.debounce_minutes,void 0,{number:!0}]]),e("p",L6,n(a(t)("admin.settings.ollamaCloudUsage.debounceHint")),1)]),e("div",null,[e("label",H6,n(a(t)("admin.settings.ollamaCloudUsage.intervalMinutes")),1),c(e("input",{id:"ollama-cloud-usage-interval","onUpdate:modelValue":i[143]||(i[143]=o=>Te.interval_minutes=o),type:"number",min:"15",max:"1440",class:"input w-32","data-testid":"ollama-cloud-usage-global-interval",onKeydown:dt(Me(ba,["prevent"]),["enter"])},null,40,I6),[[u,Te.interval_minutes,void 0,{number:!0}]]),e("p",R6,n(a(t)("admin.settings.ollamaCloudUsage.intervalHint")),1)])])):h("",!0),e("div",B6,[e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:tt.value,"data-testid":"ollama-cloud-usage-global-save",onClick:ba},n(tt.value?a(t)("common.saving"):a(t)("common.save")),9,j6)])],64))])]),e("div",D6,[e("div",O6,[e("h2",z6,n(a(t)("admin.settings.opencodeGoUsage.title")),1),e("p",q6,n(a(t)("admin.settings.opencodeGoUsage.description")),1)]),e("div",N6,[ot.value?(r(),d("div",K6,[i[367]||(i[367]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),I(" "+n(a(t)("common.loading")),1)])):(r(),d(R,{key:1},[e("div",W6,[e("div",null,[e("label",G6,n(a(t)("admin.settings.opencodeGoUsage.enabled")),1),e("p",Q6,n(a(t)("admin.settings.opencodeGoUsage.enabledHint")),1)]),g(T,{modelValue:we.enabled,"onUpdate:modelValue":i[144]||(i[144]=o=>we.enabled=o),"aria-label":a(t)("admin.settings.opencodeGoUsage.enabled"),"data-testid":"opencode-go-usage-global-enabled"},null,8,["modelValue","aria-label"])]),we.enabled?(r(),d("div",Y6,[e("div",null,[e("label",J6,n(a(t)("admin.settings.opencodeGoUsage.debounceMinutes")),1),c(e("input",{id:"opencode-go-usage-debounce","onUpdate:modelValue":i[145]||(i[145]=o=>we.debounce_minutes=o),type:"number",min:"1",max:"60",class:"input w-32","data-testid":"opencode-go-usage-global-debounce",onKeydown:dt(Me(xa,["prevent"]),["enter"])},null,40,X6),[[u,we.debounce_minutes,void 0,{number:!0}]]),e("p",Z6,n(a(t)("admin.settings.opencodeGoUsage.debounceHint")),1)]),e("div",null,[e("label",e8,n(a(t)("admin.settings.opencodeGoUsage.intervalMinutes")),1),c(e("input",{id:"opencode-go-usage-interval","onUpdate:modelValue":i[146]||(i[146]=o=>we.interval_minutes=o),type:"number",min:"5",max:"1440",class:"input w-32","data-testid":"opencode-go-usage-global-interval",onKeydown:dt(Me(xa,["prevent"]),["enter"])},null,40,t8),[[u,we.interval_minutes,void 0,{number:!0}]]),e("p",a8,n(a(t)("admin.settings.opencodeGoUsage.intervalHint")),1)])])):h("",!0),e("div",s8,[e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:Ke.value,"data-testid":"opencode-go-usage-global-save",onClick:xa},n(Ke.value?a(t)("common.saving"):a(t)("common.save")),9,n8)])],64))])]),e("div",i8,[e("div",o8,[e("h2",l8,n(a(t)("admin.settings.scheduling.title")),1),e("p",r8,n(a(t)("admin.settings.scheduling.description")),1)]),e("div",d8,[e("div",c8,[e("div",null,[e("label",u8,n(a(t)("admin.settings.scheduling.allowUngroupedKey")),1),e("p",_8,n(a(t)("admin.settings.scheduling.allowUngroupedKeyHint")),1)]),g(T,{modelValue:s.allow_ungrouped_key_scheduling,"onUpdate:modelValue":i[147]||(i[147]=o=>
12s.allow_ungrouped_key_scheduling=o)},null,8,["modelValue"])]),e("div",m8,[e("div",p8,[e("label",g8,n(a(t)("admin.settings.scheduling.accountSchedulingThresholdsTitle")),1),e("p",y8,n(a(t)("admin.settings.scheduling.accountSchedulingThresholdsDescription")),1),e("p",b8,n(a(t)("admin.settings.scheduling.accountSchedulingThresholdsGlobalHint")),1),e("p",x8,n(a(t)("admin.settings.scheduling.accountSchedulingThresholdsDisabledHint")),1)]),e("div",h8,[(r(!0),d(R,null,N(a($n),o=>(r(),d("div",{key:o,class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},[e("div",f8,[e("div",null,[e("label",k8,n(o),1),e("p",v8,n(a(t)("admin.settings.scheduling.accountSchedulingThresholdsRangeHint")),1)]),i[368]||(i[368]=e("span",{class:"rounded bg-gray-100 px-2 py-0.5 text-[11px] font-medium text-gray-600 dark:bg-dark-700 dark:text-gray-300"}," % ",-1))]),c(e("input",{"onUpdate:modelValue":m=>s.account_scheduling_thresholds[o]=m,type:"number",min:"1",max:"100",step:"1",class:"input mt-3","data-testid":`account-scheduling-threshold-${o}`,placeholder:"100"},null,8,w8),[[u,s.account_scheduling_thresholds[o],void 0,{number:!0}]])]))),128))])]),s.openai_advanced_scheduler_enabled?h("",!0):(r(),d("div",C8,[e("div",null,[e("label",V8,n(a(t)("admin.settings.openaiExperimentalScheduler.lowRatePriorityTitle")),1),e("p",U8,n(a(t)("admin.settings.openaiExperimentalScheduler.lowRatePriorityDescription")),1)]),g(T,{modelValue:s.openai_low_upstream_rate_priority_enabled,"onUpdate:modelValue":i[148]||(i[148]=o=>s.openai_low_upstream_rate_priority_enabled=o),"data-testid":"openai-low-rate-priority-toggle"},null,8,["modelValue"])])),!s.openai_advanced_scheduler_enabled&&s.openai_low_upstream_rate_priority_enabled?(r(),d("div",S8,[e("div",$8,[e("label",P8,n(a(t)("admin.settings.openaiExperimentalScheduler.oauthRateTitle")),1),e("p",E8,n(a(t)("admin.settings.openaiExperimentalScheduler.oauthRatePriorityDescription")),1)]),e("div",T8,[c(e("input",{id:"openai-oauth-scheduling-rate-multiplier","onUpdate:modelValue":i[149]||(i[149]=o=>s.openai_oauth_scheduling_rate_multiplier=o),class:"input pr-8","data-testid":"openai-oauth-scheduling-rate-multiplier",min:"0",step:"0.01",type:"number"},null,512),[[u,s.openai_oauth_scheduling_rate_multiplier,void 0,{number:!0}]]),i[369]||(i[369]=e("span",{class:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-sm text-gray-400"},"x",-1))])])):h("",!0),e("div",A8,[e("div",null,[e("label",M8,n(a(t)("admin.settings.openaiExperimentalScheduler.title")),1),e("p",F8,n(a(t)("admin.settings.openaiExperimentalScheduler.description")),1)]),g(T,{modelValue:s.openai_advanced_scheduler_enabled,"onUpdate:modelValue":i[150]||(i[150]=o=>s.openai_advanced_scheduler_enabled=o),"data-testid":"openai-advanced-scheduler-toggle"},null,8,["modelValue"])]),s.openai_advanced_scheduler_enabled?(r(),d("div",L8,[e("div",null,[e("label",H8,n(a(t)("admin.settings.openaiExperimentalScheduler.stickyWeightedTitle")),1),e("p",I8,n(a(t)("admin.settings.openaiExperimentalScheduler.stickyWeightedDescription")),1)]),g(T,{modelValue:s.openai_advanced_scheduler_sticky_weighted_enabled,"onUpdate:modelValue":i[151]||(i[151]=o=>s.openai_advanced_scheduler_sticky_weighted_enabled=o)},null,8,["modelValue"])])):h("",!0),s.openai_advanced_scheduler_enabled?(r(),d("div",R8,[e("div",null,[e("label",B8,n(a(t)("admin.settings.openaiExperimentalScheduler.subscriptionPriorityTitle")),1),e("p",j8,n(a(t)("admin.settings.openaiExperimentalScheduler.subscriptionPriorityDescription")),1)]),g(T,{modelValue:s.openai_advanced_scheduler_subscription_priority_enabled,"onUpdate:modelValue":i[152]||(i[152]=o=>s.openai_advanced_scheduler_subscription_priority_enabled=o)},null,8,["modelValue"])])):h("",!0),s.openai_advanced_scheduler_enabled?(r(),d("div",D8,[e("div",O8,[e("label",z8,n(a(t)("admin.settings.openaiExperimentalScheduler.oauthRateTitle")),1),e("p",q8,n(a(t)("admin.settings.openaiExperimentalScheduler.oauthRateWeightedDescription")),1)]),e("div",N8,[c(e("input",{id:"openai-oauth-scheduling-rate-multiplier","onUpdate:modelValue":i[153]||(i[153]=o=>s.openai_oauth_scheduling_rate_multiplier=o),class:"input pr-8","data-testid":"openai-oauth-scheduling-rate-multiplier",min:"0",step:"0.01",type:"number"},null,512),[[u,s.openai_oauth_scheduling_rate_multiplier,void 0,{number:!0}]]),i[370]||(i[370]=e("span",{class:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-sm text-gray-400"}
12,"x",-1))])])):h("",!0),s.openai_advanced_scheduler_enabled?(r(),d("div",K8,[e("div",null,[e("label",W8,n(a(t)("admin.settings.openaiExperimentalScheduler.weightsTitle")),1),e("p",G8,n(a(t)("admin.settings.openaiExperimentalScheduler.weightsDescription")),1)]),e("div",Q8,[(r(!0),d(R,null,N(En.value,o=>(r(),d("label",{key:o.key,class:"block"},[e("span",Y8,n(o.label),1),c(e("input",{"onUpdate:modelValue":m=>s[o.key]=m,class:"input mt-1",inputmode:"decimal",placeholder:o.placeholder,type:"text"},null,8,J8),[[u,s[o.key]]])]))),128))])])):h("",!0)])]),e("div",X8,[e("div",Z8,[e("h2",e7,n(a(t)("admin.settings.gatewayForwarding.title")),1),e("p",t7,n(a(t)("admin.settings.gatewayForwarding.description")),1)]),e("div",a7,[e("div",s7,[e("div",null,[e("label",n7,n(a(t)("admin.settings.gatewayForwarding.grokDefaultTextModel")),1),c(e("input",{id:"grok-default-text-model","onUpdate:modelValue":i[154]||(i[154]=o=>s.grok_default_text_model=o),type:"text",class:"input mt-2 w-full",list:"grok-default-text-model-options","data-testid":"grok-default-text-model",placeholder:"grok-4.5"},null,512),[[u,s.grok_default_text_model,void 0,{trim:!0}]]),i[371]||(i[371]=e("datalist",{id:"grok-default-text-model-options"},[e("option",{value:"grok-4.5"}),e("option",{value:"grok-4.1-fast"}),e("option",{value:"grok-4"})],-1)),e("p",i7,n(a(t)("admin.settings.gatewayForwarding.grokDefaultTextModelHint")),1)]),e("div",o7,[e("div",null,[e("label",l7,n(a(t)("admin.settings.gatewayForwarding.grokCrossClientMap")),1),e("p",r7,n(a(t)("admin.settings.gatewayForwarding.grokCrossClientMapHint")),1)]),g(T,{modelValue:s.grok_cross_client_model_map_enabled,"onUpdate:modelValue":i[155]||(i[155]=o=>s.grok_cross_client_model_map_enabled=o),"data-testid":"grok-cross-client-model-map-toggle"},null,8,["modelValue"])])]),e("div",d7,[e("label",c7,n(a(t)("admin.settings.gatewayForwarding.grokDefaultBaseURLMode")),1),c(e("select",{id:"grok-default-base-url-mode","onUpdate:modelValue":i[156]||(i[156]=o=>s.grok_default_base_url_mode=o),class:"input mt-2 w-full","data-testid":"grok-default-base-url-mode"},[e("option",u7,n(a(t)("admin.settings.gatewayForwarding.grokBaseURLModeCLI")),1),e("option",_7,n(a(t)("admin.settings.gatewayForwarding.grokBaseURLModeAPI")),1),e("option",m7,n(a(t)("admin.settings.gatewayForwarding.grokBaseURLModeUSEast1")),1),e("option",p7,n(a(t)("admin.settings.gatewayForwarding.grokBaseURLModeUSWest2")),1),e("option",g7,n(a(t)("admin.settings.gatewayForwarding.grokBaseURLModeEUWest1")),1)],512),[[Ie,s.grok_default_base_url_mode]]),e("p",y7,n(a(t)("admin.settings.gatewayForwarding.grokDefaultBaseURLModeHint")),1)]),e("div",b7,[e("label",x7,n(a(t)("admin.settings.gatewayForwarding.openaiTTFTMode")),1),c(e("select",{id:"openai-ttft-mode","onUpdate:modelValue":i[157]||(i[157]=o=>s.openai_ttft_mode=o),class:"input mt-2 w-full","data-testid":"openai-ttft-mode"},[e("option",h7,n(a(t)("admin.settings.gatewayForwarding.openaiTTFTModeSemantic")),1),e("option",f7,n(a(t)("admin.settings.gatewayForwarding.openaiTTFTModeVisible")),1)],512),[[Ie,s.openai_ttft_mode]]),e("p",k7,n(a(t)("admin.settings.gatewayForwarding.openaiTTFTModeHint")),1)]),e("div",v7,[e("div",null,[e("label",w7,n(a(t)("admin.settings.gatewayForwarding.fingerprintUnification")),1),e("p",C7,n(a(t)("admin.settings.gatewayForwarding.fingerprintUnificationHint")),1)]),g(T,{modelValue:s.enable_fingerprint_unification,"onUpdate:modelValue":i[158]||(i[158]=o=>s.enable_fingerprint_unification=o)},null,8,["modelValue"])]),e("div",V7,[e("div",null,[e("label",U7,n(a(t)("admin.settings.gatewayForwarding.metadataPassthrough")),1),e("p",S7,n(a(t)("admin.settings.gatewayForwarding.metadataPassthroughHint")),1)]),g(T,{modelValue:s.enable_metadata_passthrough,"onUpdate:modelValue":i[159]||(i[159]=o=>s.enable_metadata_passthrough=o)},null,8,["modelValue"])]),e("div",$7,[e("div",null,[e("label",P7,n(a(t)("admin.settings.gatewayForwarding.cchSigning")),1),e("p",E7,n(a(t)("admin.settings.gatewayForwarding.cchSigningHint")),1)]),g(T,{modelValue:s.enable_cch_signing,"onUpdate:modelValue":i[160]||(i[160]=o=>s.enable_cch_signing=o)},null,8,["modelValue"])]),e("div",T7,[e("div",null,[e("label",A7,n(a(t)("admin.settings.gatewayForwarding.claudeOAuthSystemPromptInjection")),1),e("p",M7,n(a(t)("admin.settings.gatewayForwarding.claudeOAuthSystemPromptInjectionHint")),1)]),g(T,{modelValue:s.enable_claude_oauth_system_prompt_injection,"onUpdate:modelValue":i[161]||(i[161]=o=>s.enable_claude_oauth_system_prompt_injection=o)},null,8,["modelValue"])]),e("div",null,[e("label",F7,n(a(t)("admin.settings.gatewayForwarding.claudeOAuthSystemPromptBlocks")),1),e("div",L7,[(r(!0),d(R,null,N(Qe.value,(o,m)=>(r(),d("div",{key:o.id,class:"rounded-lg border border-gray-200 bg-gray-50 p-4 dark:border-dark-700 dark:bg-dark-800/60"},[e("div",{class:X(["flex flex-wrap items-center justify-between gap-3",o.expanded&&"mb-3"])},[e("div",H7,[e("div",I7,n(a(t)("admin.settings.gatewayForwarding.systemBlockTitle",{index:m+1})),1),e("div",R7,n(kn(o.preset)),1)]),e("div",B7,[e("button",{type:"button",class:"btn btn-secondary btn-sm px-2",title:o.expanded?a(t)("admin.settings.gatewayForwarding.systemBlockHide"):a(t)("admin.settings.gatewayForwarding.systemBlockShow"),"aria-label":o.expanded?a(t)("admin.settings.gatewayForwarding.systemBlockHide"):a(t)("admin.settings.gatewayForwarding.systemBlockShow"),onClick:_=>wn(m)},[g(de,{name:o.expanded?"eyeOff":"eye",size:"xs"},null,8,["name"])],8,j7),e("button",{type:"button",class:"btn btn-secondary btn-sm px-2",disabled:m===0,onClick:_=>Ja(m,-1)},[g(de,{name:"arrowUp",size:"xs"})],8,D7),e("button",{type:"button",class:"btn btn-secondary btn-sm px-2",disabled:m===Qe.value.length-1,onClick:_=>Ja(m,1)},[g(de,{name:"arrowDown",size:"xs"})],8,O7),g(T,{modelValue:o.enabled,"onUpdate:modelValue":_=>o.enabled=_},null,8,["modelValue","onUpdate:modelValue"]),e("button",{type:"button",class:"btn btn-secondary btn-sm px-2 text-red-600 hover:text-red-700 dark:text-red-400",onClick:_=>Cn(m)},[g(de,{name:"trash",size:"xs"})],8,z7)])],2),c(e("div",null,[e("div",q7,[e("div",null,[e("label",N7,n(a(t)("admin.settings.gatewayForwarding.systemBlockPreset")),1),g(ke,{modelValue:o.preset,"onUpdate:modelValue":_=>o.preset=_,options:Ya.value,onChange:_=>Vn(m,_)},null,8,["modelValue","onUpdate:modelValue","options","onChange"])]),e("div",null,[e("label",K7,n(a(t)("admin.settings.gatewayForwarding.systemBlockType")),1),g(ke,{modelValue:o.type,"onUpdate:modelValue":_=>o.type=_,options:hn.value},null,8,["modelValue","onUpdate:modelValue","options"])])]),e("div",W7,[e("label",G7,n(a(t)("admin.settings.gatewayForwarding.systemBlockText")),1),c(e("textarea",{"onUpdate:modelValue":_=>o.text=_,rows:"6",class:"input w-full resize-y font-mono text-xs leading-5",onInput:_=>Un(o)},null,40,Q7),[[u,o.text]])]),e("div",Y7,[e("div",J7,[e("div",null,[e("label",X7,n(a(t)("admin.settings.gatewayForwarding.systemBlockCacheControl")),1)]),g(T,{modelValue:o.cacheControlEnabled,"onUpdate:modelValue":_=>o.cacheControlEnabled=_},null,8,["modelValue","onUpdate:modelValue"])]),o.cacheControlEnabled?(r(),d("div",Z7,[g(ke,{modelValue:o.cacheControlTTL,"onUpdate:modelValue":_=>o.cacheControlTTL=_,options:fn.value},null,8,["modelValue","onUpdate:modelValue","options"])])):h("",!0)])],512),[[Se,o.expanded]])]))),128))]),e("div",e9,[e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:vn},[g(de,{name:"plus",size:"xs"}),I(" "+n(a(t)("admin.settings.gatewayForwarding.addSystemBlock")),1)]),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:Sn},[g(de,{name:"refresh",size:"xs"}),I(" "+n(a(t)("admin.settings.gatewayForwarding.resetSystemBlocks")),1)])]),e("p",t9,n(a(t)("admin.settings.gatewayForwarding.claudeOAuthSystemPromptBlocksHint")),1)]),e("div",a9,[e("div",null,[e("label",s9,n(a(t)("admin.settings.gatewayForwarding.anthropicCacheTTL1hInjection")),1),e("p",n9,n(a(t)("admin.settings.gatewayForwarding.anthropicCacheTTL1hInjectionHint")),1)]),g(T,{modelValue:s.enable_anthropic_cache_ttl_1h_injection,"onUpdate:modelValue":i[162]||(i[162]=o=>s.enable_anthropic_cache_ttl_1h_injection=o)},null,8,["modelValue"])]),e("div",i9,[e("div",null,[e("label",o9,n(a(t)("admin.settings.gatewayForwarding.rewriteMessageCacheControl")),1),e("p",l9,n(a(t)("admin.settings.gatewayForwarding.rewriteMessageCacheControlHint")),1)]),g(T,{modelValue:s.rewrite_message_cache_control,"onUpdate:modelValue":i[163]||(i[163]=o=>s.rewrite_message_cache_control=o)},null,8,["modelValue"])]),e("div",r9,[e("div",null,[e("label",d9,n(a(t)("admin.settings.gatewayForwarding.clientDatelineNormalization")),1),e("p",c9,n(a(t)("admin.settings.gatewayForwarding.clientDatelineNormalizationHint")),1)]),g(T,{modelValue:s.enable_client_dateline_normalization,"onUpdate:modelValue":i[164]||(i[164]=o=>s.enable_client_dateline_normalization=o)},null,8,["modelValue"])]),e("div",null,[e("label",u9,n(a(t)("admin.settings.gatewayForwarding.antigravityUserAgentVersion")),1),c(e("input",{"onUpdate:modelValue":i[165]||(i[165]=o=>s.antigravity_user_agent_version=o),type:"text",class:"input max-w-xs font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.antigravityUserAgentVersionPlaceholder")},null,8,_9),[[u,s.antigravity_user_agent_version]]),e("p",m9,n(a(t)("admin.settings.gatewayForwarding.antigravityUserAgentVersionHint")),1)]),e("div",null,[e("label",p9,n(a(t)("admin.settings.gatewayForwarding.openaiCodexUserAgent")),1),c(e("input",{"onUpdate:modelValue":i[166]||(i[166]=o=>s.openai_codex_user_agent=o),type:"text",class:"input w-full font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.openaiCodexUserAgentPlaceholder")},null,8,g9),[[u,s.openai_codex_user_agent]]),e("p",y9,n(a(t)("admin.settings.gatewayForwarding.openaiCodexUserAgentHint")),1)]),e("div",null,[e("label",b9,n(a(t)("admin.settings.gatewayForwarding.openaiCodexClientVersion")),1),c(e("input",{"onUpdate:modelValue":i[167]||(i[167]=o=>s.openai_codex_client_version=o),type:"text",class:"input w-full font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.openaiCodexClientVersionPlaceholder")},null,8,x9),[[u,s.openai_codex_client_version]]),e("p",h9,n(a(t)("admin.settings.gatewayForwarding.openaiCodexClientVersionHint")),1)]),e("div",f9,[e("div",null,[e("label",k9,n(a(t)("admin.settings.gatewayForwarding.openaiCodexVersionAutoSync")),1),e("p",v9,n(a(t)("admin.settings.gatewayForwarding.openaiCodexVersionAutoSyncHint")),1),hs.value?(r(),d("p",w9,n(hs.value),1)):h("",!0)]),g(T,{modelValue:s.openai_codex_version_auto_sync_enabled,"onUpdate:modelValue":i[168]||(i[168]=o=>s.openai_codex_version_auto_sync_enabled=o)},null,8,["modelValue"])]),e("div",null,[e("label",C9,n(a(t)("admin.settings.gatewayForwarding.claudeCodeClientVersion")),1),c(e("input",{"onUpdate:modelValue":i[169]||(i[169]=o=>s.claude_code_client_version=o),type:"text",class:"input w-full font-mono text-sm",placeholder:"2.1.280"},null,512),[[u,s.claude_code_client_version]]),e("p",V9,n(a(t)("admin.settings.gatewayForwarding.claudeCodeClientVersionHint")),1)]),e("div",U9,[e("div",null,[e("label",S9,n(a(t)("admin.settings.gatewayForwarding.claudeCodeVersionAutoSync")),1),e("p",$9,n(a(t)("admin.settings.gatewayForwarding.claudeCodeVersionAutoSyncHint")),1),ks.value?(r(),d("p",P9,n(ks.value),1)):h("",!0)]),g(T,{modelValue:s.claude_code_version_auto_sync_enabled,"onUpdate:modelValue":i[170]||(i[170]=o=>s.claude_code_version_auto_sync_enabled=o)},null,8,["modelValue"])])])]),e("div",E9,[e("div",T9,[e("h2",A9,n(a(t)("admin.settings.webSearchEmulation.title")),1),e("p",M9,n(a(t)("admin.settings.webSearchEmulation.description")),1)]),e("div",F9,[e("div",L9,[e("div",null,[e("label",H9,n(a(t)("admin.settings.webSearchEmulation.enabled")),1),e("p",I9,n(a(t)("admin.settings.webSearchEmulation.enabledHint")),1)]),g(T,{modelValue:Ae.enabled,"onUpdate:modelValue":i[171]||(i[171]=o=>Ae.enabled=o)},null,8,["modelValue"])]),Ae.enabled?(r(),d("div",R9,[e("div",B9,[e("label",j9,n(a(t)("admin.settings.webSearchEmulation.providers")),1),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:Fn},n(a(t)("admin.settings.webSearchEmulation.addProvider")),1)]),Ae.providers.length===0?(r(),d("div",D9,n(a(t)("admin.settings.webSearchEmulation.noProviders")),1)):h("",!0),(r(!0),d(R,null,N(Ae.providers,(o,m)=>(r(),d("div",{key:m,class:"rounded-lg border border-gray-200 dark:border-dark-600"},[e("div",{class:"flex cursor-pointer items-center justify-between px-4 py-3",onClick:_=>An(m)},[e("div",z9,[(r(),d("svg",{class:X(["h-4 w-4 text-gray-400 transition-transform",{"rotate-90":nt[m]}]),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[...i[372]||(i[372]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"},null,-1)])],2)),g(ke,{modelValue:o.type,"onUpdate:modelValue":_=>o.type=_,options:[{value:"brave",label:"Brave Search"},{value:"tavily",label:"Tavily"}],class:"w-36",onClick:i[172]||(i[172]=Me(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),e("span",q9,n(o.quota_used??0)+" / "+n(o.quota_limit!=null&&o.quota_limit>0?o.quota_limit:"∞"),1),!nt[m]&&o.api_key_configured?(r(),d("span",N9,n(a(t)("admin.settings.webSearchEmulation.apiKeyConfigured")),1)):h("",!0)]),e("button",{type:"button",class:"text-red-500 hover:text-red-700 text-xs",onClick:Me(_=>Mn(m),["stop"])},n(a(t)("admin.settings.webSearchEmulation.removeProvider")),9,K9)],8,O9),nt[m]?(r(),d("div",W9,[e("div",null,[e("label",G9,n(a(t)("admin.settings.webSearchEmulation.apiKey")),1),e("div",Q9,[c(e("input",{"onUpdate:modelValue":_=>o.api_key=_,type:lt[m]?"text":"password",class:X(["input w-full text-sm",o.api_key||o.api_key_configured?"pr-16":""]),placeholder:o.api_key_configured?"••••••••":a(t)("admin.settings.webSearchEmulation.apiKeyPlaceholder")},null,10,Y9),[[on,o.api_key]]),o.api_key||o.api_key_configured?(r(),d("div",J9,[e("button",{type:"button",class:"rounded p-1 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",title:lt[m]?a(t)("admin.settings.webSearchEmulation.hideApiKey"):a(t)("admin.settings.webSearchEmulation.showApiKey"),onClick:_=>lt[m]=!lt[m]},[lt[m]?(r(),d("svg",eC,[...i[374]||(i[374]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.878 9.878L3 3m6.878 6.878L21 21"},null,-1)])])):(r(),d("svg",Z9,[...i[373]||(i[373]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"},null,-1),e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"},null,-1)])]))],8,X9),e("button",{type:"button",class:X(["rounded p-1 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",{"opacity-30 curs
12or-not-allowed":!o.api_key}]),title:a(t)("admin.settings.webSearchEmulation.copyApiKey"),disabled:!o.api_key,onClick:_=>Rn(m)},[...i[375]||(i[375]=[e("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})],-1)])],10,tC)])):h("",!0)])]),e("div",aC,[e("div",null,[e("label",sC,n(a(t)("admin.settings.webSearchEmulation.quotaLimit")),1),c(e("input",{"onUpdate:modelValue":_=>o.quota_limit=_,type:"number",min:"1",class:"input text-sm",placeholder:"∞"},null,8,nC),[[u,o.quota_limit]]),e("p",iC,n(a(t)("admin.settings.webSearchEmulation.quotaLimitHint")),1)]),e("div",null,[e("label",oC,n(a(t)("admin.settings.webSearchEmulation.subscribedAt")),1),e("input",{value:Ln(o.subscribed_at),type:"date",class:"input text-sm",onInput:_=>o.subscribed_at=Hn(_.target.value)},null,40,lC),e("p",rC,n(a(t)("admin.settings.webSearchEmulation.subscribedAtHint")),1)])]),e("div",dC,[e("span",cC,n(a(t)("admin.settings.webSearchEmulation.quotaUsage"))+":",1),o.quota_limit!=null&&o.quota_limit>0?(r(),d("div",uC,[e("div",{class:X(["h-full rounded-full transition-all",oa(o)>90?"bg-red-500":oa(o)>70?"bg-yellow-500":"bg-green-500"]),style:Wo({width:Math.min(oa(o),100)+"%"})},null,6)])):(r(),d("div",_C)),e("span",mC,n(o.quota_used??0)+" / "+n(o.quota_limit!=null&&o.quota_limit>0?o.quota_limit:"∞"),1),(o.quota_used??0)>0?(r(),d("button",{key:2,type:"button",class:"text-xs text-primary-600 hover:text-primary-700",onClick:_=>In(m)},n(a(t)("admin.settings.webSearchEmulation.resetUsage")),9,pC)):h("",!0)]),e("div",gC,[e("div",yC,[e("label",bC,n(a(t)("admin.settings.webSearchEmulation.proxy")),1),g(ml,{modelValue:o.proxy_id,"onUpdate:modelValue":_=>o.proxy_id=_,proxies:as.value},null,8,["modelValue","onUpdate:modelValue","proxies"])]),e("button",{type:"button",class:"btn btn-secondary btn-sm whitespace-nowrap",onClick:i[173]||(i[173]=_=>Tn())},n(a(t)("admin.settings.webSearchEmulation.test")),1)])])):h("",!0)]))),128))])):h("",!0)])]),Bt.value?(r(),d("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:i[178]||(i[178]=Me(o=>Bt.value=!1,["self"]))},[e("div",xC,[e("h3",hC,n(a(t)("admin.settings.webSearchEmulation.testResultTitle")),1),e("div",fC,[c(e("input",{"onUpdate:modelValue":i[174]||(i[174]=o=>ia.value=o),type:"text",class:"input flex-1 text-sm",placeholder:a(t)("admin.settings.webSearchEmulation.testDefaultQuery"),onKeyup:i[175]||(i[175]=dt(o=>ss(),["enter"]))},null,40,kC),[[u,ia.value]]),e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:Rt.value,onClick:i[176]||(i[176]=o=>ss())},n(Rt.value?a(t)("admin.settings.webSearchEmulation.testing"):a(t)("admin.settings.webSearchEmulation.test")),9,vC)]),mt.value?(r(),d("div",wC,[e("p",CC,n(a(t)("admin.settings.webSearchEmulation.testResultProvider"))+": "+n(mt.value.provider),1),mt.value.results.length===0?(r(),d("div",VC,n(a(t)("admin.settings.webSearchEmulation.testNoResults")),1)):h("",!0),(r(!0),d(R,null,N(mt.value.results,(o,m)=>(r(),d("div",{key:m,class:"mt-2 border-t border-gray-200 pt-2 first:mt-0 first:border-0 first:pt-0 dark:border-dark-600"},[e("a",{href:o.url,target:"_blank",class:"text-sm font-medium text-blue-600 hover:underline dark:text-blue-400"},n(o.title),9,UC),e("p",SC,n(o.snippet),1)]))),128))])):h("",!0),e("div",$C,[e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:i[177]||(i[177]=o=>Bt.value=!1)},n(a(t)("common.close")),1)])])])):h("",!0),e("div",PC,[e("div",EC,[e("h2",TC,n(a(t)("admin.settings.usageRecords.title")),1),e("p",AC,n(a(t)("admin.settings.usageRecords.description")),1)]),e("div",MC,[e("div",FC,[e("div",null,[e("label",LC,n(a(t)("admin.settings.user_error_view.label")),1),e("p",HC,n(a(t)("admin.settings.user_error_view.description")),1)]),e("label",IC,[c(e("input",{"onUpdate:modelValue":i[179]||(i[179]=o=>s.allow_user_view_error_requests=o),type:"checkbox"},null,512),[[ze,s.allow_user_view_error_requests]]),i[376]||(i[376]=e("span",{class:"toggle-slider"},null,-1))])]),e("div",RC,[e("div",null,[e("label",BC,n(a(t)("admin.settings.long_context_badge.label")),1),e("p",jC,n(a(t)("admin.settings.long_context_badge.description")),1)]),e("label",DC,[c(e("input",{"onUpdate:modelValue":i[180]||(i[180]=o=>s.usage_show_long_context_badge=o),type:"checkbox"},null,512),[[ze,s.usage_show_long_context_badge]]),i[377]||(i[377]=e("span",{class:"toggle-slider"},null,-1))])])])])],512),[[Se,S.value==="gateway"]]),c(e("div",OC,[e("div",zC,[e("div",qC,[e("h2",NC,n(a(t)("admin.settings.site.title")),1),e("p",KC,n(a(t)("admin.settings.site.description")),1)]),e("div",WC,[e("div",GC,[e("div",null,[e("h3",QC,n(a(t)("admin.settings.site.backendMode")),1),e("p",YC,n(a(t)("admin.settings.site.backendModeDescription")),1)]),g(T,{modelValue:s.backend_mode_enabled,"onUpdate:modelValue":i[181]||(i[181]=o=>s.backend_mode_enabled=o)},null,8,["modelValue"])]),e("div",JC,[e("div",null,[e("label",XC,n(a(t)("admin.settings.site.siteName")),1),c(e("input",{"onUpdate:modelValue":i[182]||(i[182]=o=>s.site_name=o),type:"text",class:"input",placeholder:a(t)("admin.settings.site.siteNamePlaceholder")},null,8,ZC),[[u,s.site_name]]),e("p",eV,n(a(t)("admin.settings.site.siteNameHint")),1)]),e("div",null,[e("label",tV,n(a(t)("admin.settings.site.siteSubtitle")),1),c(e("input",{"onUpdate:modelValue":i[183]||(i[183]=o=>s.site_subtitle=o),type:"text",class:"input",placeholder:a(t)("admin.settings.site.siteSubtitlePlaceholder")},null,8,aV),[[u,s.site_subtitle]]),e("p",sV,n(a(t)("admin.settings.site.siteSubtitleHint")),1)])]),e("div",null,[e("label",nV,n(a(t)("admin.settings.site.apiBaseUrl")),1),c(e("input",{"onUpdate:modelValue":i[184]||(i[184]=o=>s.api_base_url=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.site.apiBaseUrlPlaceholder")},null,8,iV),[[u,s.api_base_url]]),e("p",oV,n(a(t)("admin.settings.site.apiBaseUrlHint")),1)]),e("div",lV,[e("h3",rV,n(a(t)("admin.settings.site.tablePreferencesTitle")),1),e("p",dV,n(a(t)("admin.settings.site.tablePreferencesDescription")),1),e("div",cV,[e("div",null,[e("label",uV,n(a(t)("admin.settings.site.tableDefaultPageSize")),1),c(e("input",{"onUpdate:modelValue":i[185]||(i[185]=o=>s.table_default_page_size=o),type:"number",min:"5",max:"1000",step:"1",class:"input w-40"},null,512),[[u,s.table_default_page_size,void 0,{number:!0}]]),e("p",_V,n(a(t)("admin.settings.site.tableDefaultPageSizeHint")),1)]),e("div",null,[e("label",mV,n(a(t)("admin.settings.site.tablePageSizeOptions")),1),c(e("input",{"onUpdate:modelValue":i[186]||(i[186]=o=>se.value=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.site.tablePageSizeOptionsPlaceholder")},null,8,pV),[[u,se.value]]),e("p",gV,n(a(t)("admin.settings.site.tablePageSizeOptionsHint")),1)])])]),e("div",null,[e("label",yV,n(a(t)("admin.settings.site.customEndpoints.title")),1),e("p",bV,n(a(t)("admin.settings.site.customEndpoints.description")),1),e("div",xV,[(r(!0),d(R,null,N(s.custom_endpoints,(o,m)=>(r(),d("div",{key:m,class:"rounded-lg border border-gray-200 p-4 dark:border-dark-600"},[e("div",hV,[e("span",fV,n(a(t)("admin.settings.site.customEndpoints.itemLabel",{n:m+1})),1),e("button",{type:"button",class:"rounded p-1 text-red-400 hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-900/20",onClick:_=>ci(m)},[...i[378]||(i[378]=[e("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})],-1)])],8,kV)]),e("div",vV,[e("div",null,[e("label",wV,n(a(t)("admin.settings.site.customEndpoints.name")),1),c(e("input",{"onUpdate:modelValue":_=>o.name=_,type:"text",class:"input text-sm",placeholder:a(t)("admin.settings.site.customEndpoints.namePlaceholder")},null,8,CV),[[u,o.name]])]),e("div",null,[e("label",VV,n(a(t)("admin.settings.site.customEndpoints.endpointUrl")),1),c(e("input",{"onUpdate:modelValue":_=>o.endpoint=_,type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.site.customEndpoints.endpointUrlPlaceholder")},null,8,UV),[[u,o.endpoint]])]),e("div",SV,[e("label",$V,n(a(t)("admin.settings.site.customEndpoints.descriptionLabel")),1),c(e("input",{"onUpdate:modelValue":_=>o.description=_,type:"text",class:"input text-sm",placeholder:a(t)("admin.settings.site.customEndpoints.descriptionPlaceholder")},null,8,PV),[[u,o.description]])])])]))),128))]),e("button",{type:"button",class:"mt-3 flex w-full items-center justify-center gap-2 rounded-lg border-2 border-dashed border-gray-300 px-4 py-2.5 text-sm text-gray-500 transition-colors hover:border-primary-400 hover:text-primary-600 dark:border-dark-600 dark:text-gray-400 dark:hover:border-primary-500 dark:hover:text-primary-400",onClick:di},[i[379]||(i[379]=e("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1)),I(" "+n(a(t)("admin.settings.site.customEndpoints.add")),1)])]),e("div",null,[e("label",EV,n(a(t)("admin.settings.site.contactInfo")),1),c(e("input",{"onUpdate:modelValue":i[187]||(i[187]=o=>s.contact_info=o),type:"text",class:"input",placeholder:a(t)("admin.settings.site.contactInfoPlaceholder")},null,8,TV),[[u,s.contact_info]]),e("p",AV,n(a(t)("admin.settings.site.contactInfoHint")),1)]),e("div",null,[e("label",MV,n(a(t)("admin.settings.site.docUrl")),1),c(e("input",{"onUpdate:modelValue":i[188]||(i[188]=o=>s.doc_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.site.docUrlPlaceholder")},null,8,FV),[[u,s.doc_url]]),e("p",LV,n(a(t)("admin.settings.site.docUrlHint")),1)]),e("div",null,[e("label",HV,n(a(t)("admin.settings.site.siteLogo")),1),g(Qt,{modelValue:s.site_logo,"onUpdate:modelValue":i[189]||(i[189]=o=>s.site_logo=o),mode:"image","upload-label":a(t)("admin.settings.site.uploadImage"),"remove-label":a(t)("admin.settings.site.remove"),hint:a(t)("admin.settings.site.logoHint"),"max-size":300*1024},null,8,["modelValue","upload-label","remove-label","hint"])]),e("div",null,[e("label",IV,n(a(t)("admin.settings.site.homeContent")),1),c(e("textarea",{"onUpdate:modelValue":i[190]||(i[190]=o=>s.home_content=o),rows:"6",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.site.homeContentPlaceholder")},null,8,RV),[[u,s.home_content]]),e("p",BV,n(a(t)("admin.settings.site.homeContentHint")),1),e("p",jV,n(a(t)("admin.settings.site.homeContentIframeWarning")),1)]),e("div",DV,[e("div",null,[e("label",OV,n(a(t)("admin.settings.site.compactHome")),1),e("p",zV,n(a(t)("admin.settings.site.compactHomeHint")),1)]),g(T,{modelValue:s.compact_home_enabled,"onUpdate:modelValue":i[191]||(i[191]=o=>s.compact_home_enabled=o),"data-testid":"compact-home-toggle"},null,8,["modelValue"])]),e("div",qV,[e("div",null,[e("label",NV,n(a(t)("admin.settings.site.hideCcsImportButton")),1
12),e("p",KV,n(a(t)("admin.settings.site.hideCcsImportButtonHint")),1)]),g(T,{modelValue:s.hide_ccs_import_button,"onUpdate:modelValue":i[192]||(i[192]=o=>s.hide_ccs_import_button=o)},null,8,["modelValue"])])])]),e("div",WV,[e("div",GV,[e("h2",QV,n(a(t)("admin.settings.customMenu.title")),1),e("p",YV,n(a(t)("admin.settings.customMenu.description")),1)]),e("div",JV,[(r(!0),d(R,null,N(s.custom_menu_items,(o,m)=>(r(),d("div",{key:o.id||m,class:"rounded-lg border border-gray-200 p-4 dark:border-dark-600"},[e("div",XV,[e("span",ZV,n(a(t)("admin.settings.customMenu.itemLabel",{n:m+1})),1),e("div",eU,[m>0?(r(),d("button",{key:0,type:"button",class:"rounded p-1 text-gray-400 hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-dark-700",title:a(t)("admin.settings.customMenu.moveUp"),onClick:_=>ps(m,-1)},[...i[380]||(i[380]=[e("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5 15l7-7 7 7"})],-1)])],8,tU)):h("",!0),m<s.custom_menu_items.length-1?(r(),d("button",{key:1,type:"button",class:"rounded p-1 text-gray-400 hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-dark-700",title:a(t)("admin.settings.customMenu.moveDown"),onClick:_=>ps(m,1)},[...i[381]||(i[381]=[e("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19 9l-7 7-7-7"})],-1)])],8,aU)):h("",!0),e("button",{type:"button",class:"rounded p-1 text-red-400 hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-900/20",title:a(t)("admin.settings.customMenu.remove"),onClick:_=>si(m)},[...i[382]||(i[382]=[e("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})],-1)])],8,sU)])]),e("div",nU,[e("div",null,[e("label",iU,n(a(t)("admin.settings.customMenu.name")),1),c(e("input",{"onUpdate:modelValue":_=>o.label=_,type:"text",class:"input text-sm",placeholder:a(t)("admin.settings.customMenu.namePlaceholder")},null,8,oU),[[u,o.label]])]),e("div",null,[e("label",lU,n(a(t)("admin.settings.customMenu.visibility")),1),c(e("select",{"onUpdate:modelValue":_=>o.visibility=_,class:"input text-sm"},[e("option",dU,n(a(t)("admin.settings.customMenu.visibilityUser")),1),e("option",cU,n(a(t)("admin.settings.customMenu.visibilityAdmin")),1)],8,rU),[[Ie,o.visibility]])]),e("div",uU,[e("label",_U,n(a(t)("admin.settings.customMenu.url")),1),c(e("input",{"onUpdate:modelValue":_=>o.url=_,type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.customMenu.urlPlaceholder")},null,8,mU),[[u,o.url]])]),e("label",pU,[c(e("input",{"onUpdate:modelValue":_=>o.hide_open_button=_,type:"checkbox","data-testid":"custom-menu-hide-open-button"},null,8,gU),[[ze,o.hide_open_button]]),e("span",yU,n(a(t)("admin.settings.customMenu.hideOpenButton")),1)]),e("div",bU,[e("label",xU,n(a(t)("admin.settings.customMenu.iconSvg")),1),g(Qt,{"model-value":o.icon_svg,mode:"svg",size:"sm","upload-label":a(t)("admin.settings.customMenu.uploadSvg"),"remove-label":a(t)("admin.settings.customMenu.removeSvg"),"onUpdate:modelValue":_=>o.icon_svg=_},null,8,["model-value","upload-label","remove-label","onUpdate:modelValue"]),e("div",hU,[e("p",fU,n(a(t)("admin.settings.customMenu.iconPresets")),1),e("div",kU,[(r(),d(R,null,N(Xa,_=>e("button",{key:_.key,type:"button","data-test":"custom-menu-icon-preset","data-preset":_.key,"aria-pressed":o.icon_svg===_.svg,title:_.label,class:"flex h-10 min-w-0 items-center gap-2 rounded-lg border px-2 text-left text-xs font-medium transition-colors",onClick:G=>ii(o,_.svg)},[e("span",{class:"flex h-5 w-5 shrink-0 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",innerHTML:_.svg},null,8,wU),e("span",CU,n(_.label),1)],8,vU)),64))])])])])]))),128)),e("button",{type:"button",class:"flex w-full items-center justify-center gap-2 rounded-lg border-2 border-dashed border-gray-300 py-3 text-sm text-gray-500 transition-colors hover:border-primary-400 hover:text-primary-600 dark:border-dark-600 dark:text-gray-400 dark:hover:border-primary-500 dark:hover:text-primary-400",onClick:ai},[i[383]||(i[383]=e("svg",{class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4v16m8-8H4"})],-1)),I(" "+n(a(t)("admin.settings.customMenu.add")),1)])])]),e("div",VU,[e("div",UU,[e("h2",SU,n(a(t)("admin.settings.homeProducts.title")),1),e("p",$U,n(a(t)("admin.settings.homeProducts.description")),1)]),e("div",PU,[(r(!0),d(R,null,N(s.home_product_menu_items,(o,m)=>(r(),d("div",{key:o.id||m,class:"rounded-lg border border-gray-200 p-4 dark:border-dark-600"},[e("div",EU,[e("span",TU,n(a(t)("admin.settings.homeProducts.itemLabel",{n:m+1})),1),e("button",{type:"button",class:"rounded p-1 text-red-400 hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-900/20",title:a(t)("admin.settings.homeProducts.remove"),onClick:_=>ri(m)},[g(de,{name:"trash",size:"sm"})],8,AU)]),e("div",MU,[e("div",null,[e("label",FU,n(a(t)("admin.settings.homeProducts.name")),1),c(e("input",{"onUpdate:modelValue":_=>o.label=_,type:"text",class:"input text-sm"},null,8,LU),[[u,o.label]])]),e("div",null,[e("label",HU,n(a(t)("admin.settings.homeProducts.action")),1),c(e("select",{"onUpdate:modelValue":_=>o.action=_,class:"input text-sm"},[e("option",RU,n(a(t)("admin.settings.customMenu.actionSameTab")),1),e("option",BU,n(a(t)("admin.settings.customMenu.actionNewTab")),1)],8,IU),[[Ie,o.action]])]),e("div",jU,[e("label",DU,n(a(t)("admin.settings.homeProducts.url")),1),c(e("input",{"onUpdate:modelValue":_=>o.url=_,type:"url",class:"input font-mono text-sm"},null,8,OU),[[u,o.url]])]),e("div",zU,[e("label",qU,n(a(t)("admin.settings.customMenu.iconSvg")),1),g(Qt,{"model-value":o.icon_svg,mode:"svg",size:"sm","upload-label":a(t)("admin.settings.customMenu.uploadSvg"),"remove-label":a(t)("admin.settings.customMenu.removeSvg"),"onUpdate:modelValue":_=>o.icon_svg=_},null,8,["model-value","upload-label","remove-label","onUpdate:modelValue"]),e("div",NU,[(r(),d(R,null,N(Xa,_=>e("button",{key:_.key,type:"button","data-test":"home-product-icon-preset","data-preset":_.key,"aria-pressed":o.icon_svg===_.svg,title:_.label,class:"flex h-10 min-w-0 items-center gap-2 rounded-lg border px-2 text-left text-xs font-medium transition-colors",onClick:G=>li(o,_.svg)},[e("span",{class:"flex h-5 w-5 shrink-0 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",innerHTML:_.svg},null,8,WU),e("span",GU,n(_.label),1)],8,KU)),64))])])])]))),128)),e("button",{type:"button",class:"flex w-full items-center justify-center gap-2 rounded-lg border-2 border-dashed border-gray-300 py-3 text-sm text-gray-500 hover:border-primary-400 hover:text-primary-600 dark:border-dark-600 dark:text-gray-400",onClick:oi},[g(de,{name:"plus",size:"sm"}),I(" "+n(a(t)("admin.settings.homeProducts.add")),1)])])])],512),[[Se,S.value==="general"]]),c(e("div",QU,[e("div",YU,[e("div",JU,[e("div",XU,[e("div",null,[e("h2",ZU,n(x("登录条款确认","Login agreement")),1),e("p",eS,n(x("控制登录页是否要求用户先阅读并同意服务条款、隐私政策或其他 Markdown 文档。","Control whether the login page requires users to accept Markdown policy documents first.")),1)]),e("div",tS,[e("span",aS,n(s.login_agreement_enabled?x("已启用","Enabled"):x("未启用","Disabled")),1),g(T,{modelValue:s.login_agreement_enabled,"onUpdate:modelValue":i[193]||(i[193]=o=>s.login_agreement_enabled=o)},null,8,["modelValue"])])])]),e("div",sS,[e("div",nS,[e("div",null,[e("label",iS,n(x("展示形式","Display mode")),1),e("div",oS,[e("button",{type:"button",class:X(["inline-flex items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition",s.login_agreement_mode==="modal"?"bg-white text-primary-700 shadow-sm dark:bg-dark-800 dark:text-primary-300":"text-gray-600 hover:text-gray-900 dark:text-dark-300 dark:hover:text-white"]),onClick:i[194]||(i[194]=o=>s.login_agreement_mode="modal")},[g(de,{name:"shield",size:"sm"}),I(" "+n(x("弹窗","Modal")),1)],2),e("button",{type:"button",class:X(["inline-flex items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition",s.login_agreement_mode==="checkbox"?"bg-white text-primary-700 shadow-sm dark:bg-dark-800 dark:text-primary-300":"text-gray-600 hover:text-gray-900 dark:text-dark-300 dark:hover:text-white"]),onClick:i[195]||(i[195]=o=>s.login_agreement_mode="checkbox")}
12,[g(de,{name:"checkCircle",size:"sm"}),I(" "+n(x("复选框","Checkbox")),1)],2)]),e("p",lS,n(s.login_agreement_mode==="checkbox"?x("复选框会显示在登录按钮下方,未勾选前所有登录入口禁用。","The checkbox appears below the login button and gates all login actions."):x("弹窗会在登录页打开,用户拒绝后所有登录入口保持禁用。","The modal opens on the login page and gates all login actions until accepted.")),1)]),e("div",null,[e("label",rS,n(x("条款更新日期","Updated date")),1),c(e("input",{"onUpdate:modelValue":i[196]||(i[196]=o=>s.login_agreement_updated_at=o),type:"date",class:"input"},null,512),[[u,s.login_agreement_updated_at]]),e("p",dS,n(x("日期或文档内容变化后,用户需要重新同意。","Changing the date or content requires fresh consent.")),1)])]),e("div",null,[e("div",cS,[e("div",null,[e("h3",uS,n(x("协议文档","Agreement documents")),1),e("p",_S,n(x("文档名称可自定义,内容按 Markdown 保存。可参考:服务条款、使用政策、支持的国家和地区、服务特定条款。","Document titles are customizable and content is saved as Markdown.")),1)]),e("button",{type:"button",class:"btn btn-primary btn-sm inline-flex items-center gap-1.5",onClick:ui},[g(de,{name:"plus",size:"sm"}),I(" "+n(x("添加文档","Add document")),1)])]),e("div",mS,[(r(!0),d(R,null,N(s.login_agreement_documents,(o,m)=>(r(),d("div",{key:o.id||m,class:"rounded-lg border border-gray-200 bg-white p-4 dark:border-dark-700 dark:bg-dark-800/60"},[e("div",pS,[e("div",gS,[e("span",yS,[g(de,{name:m===1?"shield":m===2?"globe":m===3?"cog":"document",size:"sm"},null,8,["name"])]),e("div",bS,[e("p",xS,n(o.title||x("未命名文档","Untitled document")),1),e("p",hS,n(pn(o,m)),1)])]),e("button",{type:"button",class:"rounded-md p-2 text-red-400 transition hover:bg-red-50 hover:text-red-600 disabled:cursor-not-allowed disabled:opacity-40 dark:hover:bg-red-900/20",disabled:s.login_agreement_enabled&&s.login_agreement_documents.length<=1,onClick:_=>_i(m)},[g(de,{name:"trash",size:"sm"})],8,fS)]),e("div",kS,[e("div",null,[e("label",vS,n(x("文档名称","Document title")),1),c(e("input",{"onUpdate:modelValue":_=>o.title=_,type:"text",class:"input text-sm",placeholder:x("例如:服务条款","Example: Terms of Service")},null,8,wS),[[u,o.title]])]),e("div",null,[e("label",CS,n(x("路由标识","Route slug")),1),e("div",VS,[i[384]||(i[384]=e("span",{class:"inline-flex flex-shrink-0 items-center border-r border-gray-200 bg-gray-50 px-3 text-sm text-gray-500 dark:border-dark-700 dark:bg-dark-800 dark:text-dark-400"}," /legal/ ",-1)),c(e("input",{"onUpdate:modelValue":_=>o.id=_,type:"text",class:"min-w-0 flex-1 border-0 bg-transparent px-3 py-2 text-sm text-gray-900 outline-none placeholder:text-gray-400 focus:ring-0 dark:text-white dark:placeholder:text-dark-500",placeholder:"usage-policy"},null,8,US),[[u,o.id]])])])]),e("div",SS,[e("label",$S,n(x("Markdown 内容","Markdown content")),1),c(e("textarea",{"onUpdate:modelValue":_=>o.content_md=_,rows:"8",class:"input font-mono text-sm",placeholder:x("在这里填写正式 Markdown 内容。","Write the final Markdown content here.")},null,8,PS),[[u,o.content_md]])])]))),128))])])])])],512),[[Se,S.value==="agreement"]]),c(e("div",ES,[e("div",TS,[e("div",AS,[e("h2",MS,n(a(t)("admin.requestCapture.title")),1),e("p",FS,n(a(t)("admin.requestCapture.description")),1)]),e("div",LS,[e("div",HS,[e("label",IS,n(a(t)("admin.requestCapture.enabled")),1),g(T,{id:"request-capture-enabled",modelValue:s.request_capture_enabled,"onUpdate:modelValue":i[197]||(i[197]=o=>s.request_capture_enabled=o)},null,8,["modelValue"])]),e("div",RS,[e("label",BS,[e("span",jS,n(a(t)("admin.requestCapture.quota")),1),c(e("input",{"onUpdate:modelValue":i[198]||(i[198]=o=>s.request_capture_quota_mib=o),class:"input",type:"number",min:"1",step:"1",required:""},null,512),[[u,s.request_capture_quota_mib,void 0,{number:!0}]])]),e("label",DS,[e("span",OS,n(a(t)("admin.requestCapture.retention")),1),c(e("input",{"onUpdate:modelValue":i[199]||(i[199]=o=>s.request_capture_retention_days=o),class:"input",type:"number",min:"1",max:"30",step:"1",required:""},null,512),[[u,s.request_capture_retention_days,void 0,{number:!0}]])])]),e("p",zS,n(a(t)("admin.requestCapture.limitsHint")),1),e("p",qS,n(a(t)("admin.requestCapture.privacy")),1
12)])]),e("div",NS,[e("div",KS,[e("h2",WS,n(a(t)("admin.settings.features.excelBpsImages.title")),1),e("p",GS,n(a(t)("admin.settings.features.excelBpsImages.description")),1)]),e("div",QS,[e("div",YS,[e("div",null,[e("label",JS,n(a(t)("admin.settings.features.excelBpsImages.enabled")),1),e("p",XS,n(a(t)("admin.settings.features.excelBpsImages.enabledHint")),1)]),g(T,{id:"excel-bps-image-enabled",modelValue:s.excel_bps_image_relay_enabled,"onUpdate:modelValue":i[200]||(i[200]=o=>s.excel_bps_image_relay_enabled=o)},null,8,["modelValue"])]),s.excel_bps_image_relay_enabled?(r(),d("div",ZS,[e("label",e$,n(a(t)("admin.settings.features.excelBpsImages.mode")),1),c(e("select",{id:"excel-bps-image-mode","onUpdate:modelValue":i[201]||(i[201]=o=>s.excel_bps_image_mode=o),class:"input"},[e("option",t$,n(a(t)("admin.settings.features.excelBpsImages.modeRelay")),1),e("option",a$,n(a(t)("admin.settings.features.excelBpsImages.modeNative")),1)],512),[[Ie,s.excel_bps_image_mode]]),s.excel_bps_image_mode==="native"?(r(),d("p",s$,n(a(t)("admin.settings.features.excelBpsImages.nativeHint")),1)):h("",!0),s.excel_bps_image_mode==="relay"?(r(),d("div",n$,[e("label",i$,n(a(t)("admin.settings.features.excelBpsImages.baseUrl")),1),c(e("input",{id:"excel-bps-image-base-url","onUpdate:modelValue":i[202]||(i[202]=o=>s.excel_bps_image_base_url=o),type:"url",class:"input",placeholder:"https://your-api.example.com",required:""},null,512),[[u,s.excel_bps_image_base_url,void 0,{trim:!0}]]),e("p",o$,n(a(t)("admin.settings.features.excelBpsImages.baseUrlHint")),1)])):h("",!0),e("div",l$,[e("label",r$,n(a(t)("admin.settings.features.excelBpsImages.policyTitle")),1),c(e("select",{id:"bps-image-limit-policy","onUpdate:modelValue":i[203]||(i[203]=o=>s.excel_bps_image_limit_policy=o),class:"input"},[e("option",d$,n(a(t)("admin.settings.features.excelBpsImages.policyOff")),1),e("option",c$,n(a(t)("admin.settings.features.excelBpsImages.policyAuto")),1),e("option",u$,n(a(t)("admin.settings.features.excelBpsImages.policyWarn")),1)],512),[[Ie,s.excel_bps_image_limit_policy]]),e("p",_$,n(a(t)("admin.settings.features.excelBpsImages.policyHint")),1),s.excel_bps_image_limit_policy==="warn"?(r(),d("div",m$,[e("label",p$,[e("span",g$,n(a(t)("admin.settings.features.excelBpsImages.policyWarning")),1),c(e("input",{id:"bps-image-warning-remaining","onUpdate:modelValue":i[204]||(i[204]=o=>s.excel_bps_image_warning_remaining=o),class:"input",type:"number",min:"1",max:a(ue).images,required:""},null,8,y$),[[u,s.excel_bps_image_warning_remaining,void 0,{number:!0}]])]),e("label",b$,[e("span",x$,n(a(t)("admin.settings.features.excelBpsImages.policyReserve")),1),c(e("input",{id:"bps-image-compact-reserve","onUpdate:modelValue":i[205]||(i[205]=o=>s.excel_bps_image_compact_reserve=o),class:"input",type:"number",min:"1",max:a(ue).images,required:""},null,8,h$),[[u,s.excel_bps_image_compact_reserve,void 0,{number:!0}]])]),e("p",f$,n(a(t)("admin.settings.features.excelBpsImages.policyMarginsHint")),1)])):h("",!0)]),e("h4",k$,n(a(t)("admin.settings.features.excelBpsImages.requestLimitsTitle")),1),e("div",v$,[e("div",w$,[e("label",C$,n(a(t)("admin.settings.features.excelBpsImages.bodyLimit")),1),c(e("input",{id:"excel-bps-image-body-limit","onUpdate:modelValue":i[206]||(i[206]=o=>s.excel_bps_image_body_limit_mib=o),class:"input",type:"number",min:"1",max:a(ue).bodyMiB,step:"1",required:""},null,8,V$),[[u,s.excel_bps_image_body_limit_mib,void 0,{number:!0}]])]),e("div",U$,[e("label",S$,n(a(t)("admin.settings.features.excelBpsImages.budget")),1),c(e("input",{id:"excel-bps-image-budget","onUpdate:modelValue":i[207]||(i[207]=o=>s.excel_bps_image_budget_mib=o),class:"input",type:"number",min:a(ue).minBudgetMiB,max:a(ue).budgetMiB,step:"1",required:""},null,8,$$),[[u,s.excel_bps_image_budget_mib,void 0,{number:!0}]])]),e("div",P$,[e("label",E$,n(a(t)("admin.settings.features.excelBpsImages.maxRequests")),1),c(e("input",{id:"excel-bps-image-max-requests","onUpdate:modelValue":i[208]||(i[208]=o=>s.excel_bps_image_max_requests=o),class:"input",type:"number",min:"1",max:a(ue).requests,step:"1",required:""},null,8,T$),[[u,s.excel_bps_image_max_requests,void 0,{number:!0}]])]),e("div",A$,[e("label",M$,n(a(t)("admin.settings.features.excelBpsImages.maxImages")),1),c(e("input",{id:"excel-bps-image-max-images","onUpdate:modelValue":i[209]||(i[209]=o=>s.excel_bps_image_max_images=o),class:"input",type:"number",min:"1",max:a(ue).images,step:"1",required:""},null,8,F$),[[u,s.excel_bps_image_max_images,void 0,{number:!0}]]),e("p",L$,n(a(t)("admin.settings.features.excelBpsImages.limitRange",{max:a(ue).images})),1)])]),e("p",H$,n(a(t)("admin.settings.features.excelBpsImages.budgetHint",a(ue))),1),s.excel_bps_image_mode==="native"?(r(),d("p",I$,n(a(t)("admin.settings.features.excelBpsImages.nativeRetentionHint",{maxImages:s.excel_bps_image_max_images})),1)):h("",!0),s.excel_bps_image_mode==="relay"?(r(),d(R,{key:3}
12,[e("h4",R$,n(a(t)("admin.settings.features.excelBpsImages.imageLimitsTitle")),1),e("div",B$,[e("div",j$,[e("label",D$,n(a(t)("admin.settings.features.excelBpsImages.maxImageMiB")),1),c(e("input",{id:"excel-bps-image-max-image-mib","onUpdate:modelValue":i[210]||(i[210]=o=>s.excel_bps_image_max_image_mib=o),class:"input",type:"number",min:"1",max:a(ue).imageMiB,step:"1",required:""},null,8,O$),[[u,s.excel_bps_image_max_image_mib,void 0,{number:!0}]]),e("p",z$,n(a(t)("admin.settings.features.excelBpsImages.limitRange",{max:a(ue).imageMiB})),1)]),e("div",q$,[e("label",N$,n(a(t)("admin.settings.features.excelBpsImages.maxTotalMiB")),1),c(e("input",{id:"excel-bps-image-max-total-mib","onUpdate:modelValue":i[211]||(i[211]=o=>s.excel_bps_image_max_total_mib=o),class:"input",type:"number",min:"1",max:a(ue).totalMiB,step:"1",required:""},null,8,K$),[[u,s.excel_bps_image_max_total_mib,void 0,{number:!0}]]),e("p",W$,n(a(t)("admin.settings.features.excelBpsImages.limitRange",{max:a(ue).totalMiB})),1)]),e("div",G$,[e("label",Q$,n(a(t)("admin.settings.features.excelBpsImages.storageMiB")),1),c(e("input",{id:"excel-bps-image-storage-mib","onUpdate:modelValue":i[212]||(i[212]=o=>s.excel_bps_image_storage_mib=o),class:"input",type:"number",min:"1",max:a(ue).storageMiB,step:"1",required:""},null,8,Y$),[[u,s.excel_bps_image_storage_mib,void 0,{number:!0}]]),e("p",J$,n(a(t)("admin.settings.features.excelBpsImages.limitRange",{max:a(ue).storageMiB})),1)]),e("div",X$,[e("label",Z$,n(a(t)("admin.settings.features.excelBpsImages.storageEntries")),1),c(e("input",{id:"excel-bps-image-storage-entries","onUpdate:modelValue":i[213]||(i[213]=o=>s.excel_bps_image_storage_entries=o),class:"input",type:"number",min:"1",max:a(ue).storageEntries,step:"1",required:""},null,8,eP),[[u,s.excel_bps_image_storage_entries,void 0,{number:!0}]]),e("p",tP,n(a(t)("admin.settings.features.excelBpsImages.limitRange",{max:a(ue).storageEntries})),1)]),e("div",aP,[e("label",sP,n(a(t)("admin.settings.features.excelBpsImages.ttlMinutes")),1),c(e("input",{id:"excel-bps-image-ttl-minutes","onUpdate:modelValue":i[214]||(i[214]=o=>s.excel_bps_image_ttl_minutes=o),class:"input",type:"number",min:"1",max:a(ue).ttlMinutes,step:"1",required:""},null,8,nP),[[u,s.excel_bps_image_ttl_minutes,void 0,{number:!0}]]),e("p",iP,n(a(t)("admin.settings.features.excelBpsImages.limitRange",{max:a(ue).ttlMinutes})),1)])]),e("p",oP,n(a(t)("admin.settings.features.excelBpsImages.retentionHint")),1)],64)):h("",!0)])):h("",!0)])]),e("div",lP,[e("div",rP,[e("h2",dP,n(a(t)("admin.settings.features.channelMonitor.title")),1),e("p",cP,n(a(t)("admin.settings.features.channelMonitor.description")),1),e("p",uP,[g(p,{to:"/admin/channels/monitor",class:"inline-flex items-center gap-1 text-primary-600 hover:underline dark:text-primary-400"},{default:$e(()=>[I(n(a(t)("admin.settings.features.channelMonitor.configureLink"))+" ",1),i[385]||(i[385]=e("span",{"aria-hidden":"true"},"→",-1))]),_:1})])]),e("div",_P,[e("div",mP,[e("div",null,[e("label",pP,n(a(t)("admin.settings.features.channelMonitor.enabled")),1),e("p",gP,n(a(t)("admin.settings.features.channelMonitor.enabledHint")),1)]),g(T,{modelValue:s.channel_monitor_enabled,"onUpdate:modelValue":i[215]||(i[215]=o=>s.channel_monitor_enabled=o)},null,8,["modelValue"])]),s.channel_monitor_enabled?(r(),d("div",yP,[e("div",null,[e("label",bP,n(a(t)("admin.settings.features.channelMonitor.mode")),1),e("div",xP,[e("button",{type:"button",class:X(["inline-flex flex-1 items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition",s.channel_monitor_mode==="v2"?"bg-white text-primary-700 shadow-sm dark:bg-dark-800 dark:text-primary-300":"text-gray-600 hover:text-gray-900 dark:text-dark-300 dark:hover:text-white"]),onClick:i[216]||(i[216]=o=>s.channel_monitor_mode="v2")},n(a(t)("admin.settings.features.channelMonitor.modeV2")),3),e("button",{type:"button",class:X(["inline-flex flex-1 items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition",s.channel_monitor_mode==="v1"?"bg-white text-primary-700 shadow-sm dark:bg-dark-800 dark:text-primary-300":"text-gray-600 hover:text-gray-900 dark:text-dark-300 dark:hover:text-white"]),onClick:i[217]||(i[217]=o=>s.channel_monitor_mode="v1")},n(a(t)("admin.settings.features.channelMonitor.modeV1")),3)]),e("p",hP,n(s.channel_monitor_mode==="v1"?a(t)("admin.settings.features.channelMonitor.modeV1Hint"):a(t)("admin.settings.features.channelMonitor.modeV2Hint")),1),e("p",fP,n(a(t)("admin.settings.features.channelMonitor.modeHint")),1)]),s.channel_monitor_mode==="v1"?(r(),d("div",kP,[e("label",vP,[I(n(a(t)("admin.settings.features.channelMonitor.defaultInterval"))+" ",1),i[386]||(i[386]=e("span",{class:"text-red-500"},"*",-1))]),c(e("input",{"onUpdate:modelValue":i[218]||(i[218]=o=>s.channel_monitor_default_interval_seconds=o),type:"number",min:"15",max:"3600",class:"input"},null,512),[[u,s.channel_monitor_default_interval_seconds,void 0,{number:!0}]]),e("p",wP,n(a(t)("admin.settings.features.channelMonitor.defaultIntervalHint")),1)])):h("",!0),s.channel_monitor_mode==="v2"?(r(),d("div",CP,[e("div",VP,[e("div",UP,[e("p",SP,n(a(t)("admin.settings.features.channelMonitor.hideThroughput")),1),e("p",$P,n(a(t)("admin.settings.features.channelMonitor.hideThroughputHint")),1)]),g(T,{modelValue:s.channel_monitor_hide_throughput,"onUpdate:modelValue":i[219]||(i[219]=o=>s.channel_monitor_hide_throughput=o)},null,8,["modelValue"])]),e("div",PP,[e("div",EP,[e("p",TP,n(a(t)("admin.settings.features.channelMonitor.hideUserRanking")),1),e("p",AP,n(a(t)("admin.settings.features.channelMonitor.hideUserRankingHint")),1)]),g(T,{modelValue:s.channel_monitor_hide_user_ranking,"onUpdate:modelValue":i[220]||(i[220]=o=>s.channel_monitor_hide_user_ranking=o)},null,8,["modelValue"])])])):h("",!0),s.channel_monitor_mode==="v1"?(r(),d("div",MP,[e("div",FP,[e("p",LP,n(a(t)("admin.settings.features.channelMonitor.showQuota")),1),e("p",HP,n(a(t)("admin.settings.features.channelMonitor.showQuotaHint")),1)]),g(T,{modelValue:s.channel_monitor_show_quota,"onUpdate:modelValue":i[221]||(i[221]=o=>s.channel_monitor_show_quota=o)},null,8,["modelValue"])])):h("",!0)])):h("",!0)])]),e("div",IP,[e("div",RP,[e("h2",BP,n(a(t)("admin.settings.features.availableChannels.title")),1),e("p",jP,n(a(t)("admin.settings.features.availableChannels.description")),1),e("p",DP,[g(p,{to:"/admin/channels/pricing",class:"inline-flex items-center gap-1 text-primary-600 hover:underline dark:text-primary-400"},{default:$e(()=>[I(n(a(t)("admin.settings.features.availableChannels.configureLink"))+" ",1),i[387]||(i[387]=e("span",{"aria-hidden":"true"},"→",-1))]),_:1})])]),e("div",OP,[e("div",zP,[e("div",null,[e("label",qP,n(a(t)("admin.settings.features.availableChannels.enabled")),1),e("p",NP,n(a(t)("admin.settings.features.availableChannels.enabledHint")),1)]),g(T,{modelValue:s.available_channels_enabled,"onUpdate:modelValue":i[222]||(i[222]=o=>s.available_channels_enabled=o)},null,8,["modelValue"])])])]),e("div",KP,[e("div",WP,[e("h2",GP,n(a(t)("admin.settings.features.pelicanShowcase.title")),1),e("p",QP,[I(n(a(t)("admin.settings.features.pelicanShowcase.movedHint"))+" ",1),g(p,{to:"/admin/pelican-tests",class:"ml-1 inline-flex items-center gap-1 text-primary-600 hover:underline dark:text-primary-400"},{default:$e(()=>[I(n(a(t)("admin.settings.features.pelicanShowcase.movedLink"))+" ",1),i[388]||(i[388]=e("span",{"aria-hidden":"true"},"→",-1))]),_:1})])])]),e("div",YP,[e("div",JP,[e("h2",XP,n(a(t)("admin.settings.features.modelPlaza.title")),1),e("p",ZP,n(a(t)("admin.settings.features.modelPlaza.description")),1)]),e("div",eE,[e("div",tE,[e("div",null,[e("label",aE,n(a(t)("admin.settings.features.modelPlaza.enabled")),1),e("p",sE,n(a(t)("admin.settings.features.modelPlaza.enabledHint")),1)]),g(T,{modelValue:s.model_plaza_enabled,"onUpdate:modelValue":i[223]||(i[223]=o=>s.model_plaza_enabled=o)},null,8,["modelValue"])]),s.model_plaza_enabled?(r(),d("div",nE,[e("div",null,[e("label",iE,n(a(t)("admin.settings.features.modelPlaza.requireAuth")),1),e("p",oE,n(a(t)("admin.settings.features.modelPlaza.requireAuthHint")),1)]),g(T,{modelValue:s.model_plaza_require_auth,"onUpdate:modelValue":i[224]||(i[224]=o=>s.model_plaza_require_auth=o)},null,8,["modelValue"])])):h("",!0),s.model_plaza_enabled?(r(),d("div",lE,[e("label",rE,n(a(t)("admin.settings.features.modelPlaza.priceDescription")),1),e("p",dE,n(a(t)("admin.settings.features.modelPlaza.priceDescriptionHint")),1),c(e("textarea",{"onUpdate:modelValue":i[225]||(i[225]=o=>s.model_plaza_description=o),rows:"6",class:"input font-mono text-sm"},null,512),[[u,s.model_plaza_description]])])):h("",!0)])]),e("div",cE,[e("div",uE,[e("h2",_E,n(a(t)("admin.settings.features.company.title")),1),e("p",mE,n(a(t)("admin.settings.features.company.description")),1)]),e("div",pE,[e("div",gE,[e("div",null,[e("label",yE,n(a(t)("admin.settings.features.company.publicIdsFinalized")),1),e("p",bE,n(a(t)("admin.settings.features.company.publicIdsFinalizedHint")),1)]),g(T,{modelValue:s.company_public_ids_finalized,"onUpdate:modelValue":i[226]||(i[226]=o=>s.company_public_ids_finalized=o)},null,8,["modelValue"])]),e("div",xE,[e("div",null,[e("label",hE,n(a(t)("admin.settings.features.company.billingIntegrationEnabled")),1),e("p",fE,n(a(t)("admin.settings.features.company.billingIntegrationEnabledHint")),1)]),g(T,{modelValue:s.company_billing_integration_enabled,"onUpdate:modelValue":i[227]||
12(i[227]=o=>s.company_billing_integration_enabled=o)},null,8,["modelValue"])]),e("div",kE,[e("div",null,[e("label",vE,n(a(t)("admin.settings.features.company.applicationsEnabled")),1),e("p",wE,n(a(t)("admin.settings.features.company.applicationsEnabledHint")),1)]),g(T,{modelValue:s.company_applications_enabled,"onUpdate:modelValue":i[228]||(i[228]=o=>s.company_applications_enabled=o)},null,8,["modelValue"])]),e("div",CE,[e("div",null,[e("label",VE,n(a(t)("admin.settings.features.company.iamEnabled")),1),e("p",UE,n(a(t)("admin.settings.features.company.iamEnabledHint")),1)]),g(T,{modelValue:s.company_iam_enabled,"onUpdate:modelValue":i[229]||(i[229]=o=>s.company_iam_enabled=o)},null,8,["modelValue"])]),e("div",SE,[e("div",null,[e("label",$E,n(a(t)("admin.settings.features.company.chargeEnabled")),1),e("p",PE,n(a(t)("admin.settings.features.company.chargeEnabledHint")),1)]),g(T,{modelValue:s.company_upgrade_charge_enabled,"onUpdate:modelValue":i[230]||(i[230]=o=>s.company_upgrade_charge_enabled=o)},null,8,["modelValue"])]),s.company_upgrade_charge_enabled?(r(),d("div",EE,[e("label",TE,n(a(t)("admin.settings.features.company.upgradeFee")),1),c(e("input",{"onUpdate:modelValue":i[231]||(i[231]=o=>s.company_upgrade_fee=o),type:"number",min:"0.01",step:"0.01",class:"input"},null,512),[[u,s.company_upgrade_fee,void 0,{number:!0}]])])):h("",!0),e("div",null,[e("label",AE,n(a(t)("admin.settings.features.company.documentationURL")),1),c(e("input",{"onUpdate:modelValue":i[232]||(i[232]=o=>s.company_documentation_url=o),type:"url",class:"input",placeholder:"https://docs.example.com/company"},null,512),[[u,s.company_documentation_url,void 0,{trim:!0}]]),e("p",ME,n(a(t)("admin.settings.features.company.documentationURLHint")),1)])])]),e("div",FE,[e("div",LE,[e("h2",HE,n(a(t)("admin.settings.features.siteBillingMode.title")),1),e("p",IE,n(a(t)("admin.settings.features.siteBillingMode.description")),1)]),e("div",RE,[e("div",BE,[e("div",jE,[e("label",DE,n(a(t)("admin.settings.features.siteBillingMode.label")),1),e("p",OE,n(Fi.value),1)]),e("div",zE,[g(ke,{modelValue:ya.value,options:Mi.value,"onUpdate:modelValue":i[233]||(i[233]=o=>ya.value=o)},null,8,["modelValue","options"])])])])]),e("div",qE,[e("div",NE,[e("h2",KE,n(a(t)("admin.settings.features.pluginManagement.title")),1),e("p",WE,n(a(t)("admin.settings.features.pluginManagement.description")),1)]),e("div",GE,[e("div",QE,[e("div",null,[e("label",YE,n(a(t)("admin.settings.features.pluginManagement.enabled")),1),e("p",JE,n(a(t)("admin.settings.features.pluginManagement.enabledHint")),1)]),g(T,{modelValue:s.plugin_management_enabled,"onUpdate:modelValue":i[234]||(i[234]=o=>s.plugin_management_enabled=o)},null,8,["modelValue"])])])]),e("div",XE,[e("div",ZE,[e("h2",eT,n(a(t)("admin.settings.features.riskControl.title")),1),e("p",tT,n(a(t)("admin.settings.features.riskControl.description")),1),e("p",aT,[g(p,{to:"/admin/risk-control",class:"inline-flex items-center gap-1 text-primary-600 hover:underline dark:text-primary-400"},{default:$e(()=>[I(n(a(t)("admin.settings.features.riskControl.configureLink"))+" ",1),i[389]||(i[389]=e("span",{"aria-hidden":"true"},"→",-1))]),_:1})])]),e("div",sT,[e("div",nT,[e("div",null,[e("label",iT,n(a(t)("admin.settings.features.riskControl.enabled")),1),e("p",oT,n(a(t)("admin.settings.features.riskControl.enabledHint")),1)]),g(T,{modelValue:s.risk_control_enabled,"onUpdate:modelValue":i[235]||(i[235]=o=>s.risk_control_enabled=o)},null,8,["modelValue"])]),e("div",null,[e("label",lT,n(a(t)("admin.settings.features.riskControl.riskControlUserAllowlist")),1),g(an,{modelValue:es.value,"onUpdate:modelValue":i[236]||(i[236]=o=>es.value=o)},null,8,["modelValue"]),e("p",rT,n(a(t)("admin.settings.features.riskControl.riskControlUserAllowlistHint")),1)]),e("div",dT,[e("div",null,[e("label",cT,n(a(t)("admin.settings.features.riskControl.cyberSessionBlock")),1),e("p",uT,n(a(t)("admin.settings.features.riskControl.cyberSessionBlockHint")),1)]),g(T,{modelValue:s.cyber_session_block_enabled,"onUpdate:modelValue":i[237]||(i[237]=o=>s.cyber_session_block_enabled=o)},null,8,["modelValue"])]),s.cyber_session_block_enabled?(r(),d("div",_T,[e("label",mT,[I(n(a(t)("admin.settings.features.riskControl.cyberSessionBlockTTL"))+" ",1),i[390]||(i[390]=e("span",{class:"text-red-500"},"*",-1))]),c(e("input",{"onUpdate:modelValue":i[238]||(i[238]=o=>s.cyber_session_block_ttl_seconds=o),type:"number",min:"1",class:"input"},null,512),[[u,s.cyber_session_block_ttl_seconds,void 0,{number:!0}]])])):h("",!0),s.cyber_session_block_enabled?(r(),d("div",pT,[e
12("div",gT,[e("div",null,[e("label",yT,n(a(t)("admin.settings.features.riskControl.cyberSessionIdentityStrict")),1),e("p",bT,n(a(t)("admin.settings.features.riskControl.cyberSessionIdentityStrictHint")),1)]),g(T,{modelValue:s.cyber_session_identity_strict_enabled,"onUpdate:modelValue":i[239]||(i[239]=o=>s.cyber_session_identity_strict_enabled=o)},null,8,["modelValue"])])])):h("",!0)])]),e("div",xT,[e("div",hT,[e("h2",fT,n(a(t)("admin.settings.features.affiliate.title")),1),e("p",kT,n(a(t)("admin.settings.features.affiliate.description")),1)]),e("div",vT,[e("div",wT,[e("div",null,[e("label",CT,n(a(t)("admin.settings.features.affiliate.enabled")),1),e("p",VT,n(a(t)("admin.settings.features.affiliate.enabledHint")),1)]),g(T,{modelValue:s.affiliate_enabled,"onUpdate:modelValue":i[240]||(i[240]=o=>s.affiliate_enabled=o)},null,8,["modelValue"])]),s.affiliate_enabled?(r(),d("div",UT,[e("div",ST,[e("div",null,[e("label",$T,n(a(t)("admin.settings.features.affiliate.adminRechargeRebate")),1),e("p",PT,n(a(t)("admin.settings.features.affiliate.adminRechargeRebateHint")),1)]),g(T,{modelValue:s.affiliate_admin_recharge_enabled,"onUpdate:modelValue":i[241]||(i[241]=o=>s.affiliate_admin_recharge_enabled=o)},null,8,["modelValue"])]),e("div",null,[e("label",ET,n(a(t)("admin.settings.features.affiliate.rebateRate")),1),e("div",TT,[c(e("input",{"onUpdate:modelValue":i[242]||(i[242]=o=>s.affiliate_rebate_rate=o),type:"number",step:"0.01",min:"0",max:"100",class:"input pr-8",placeholder:"20"},null,512),[[u,s.affiliate_rebate_rate,void 0,{number:!0}]]),i[391]||(i[391]=e("span",{class:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-gray-400"},"%",-1))]),e("p",AT,n(a(t)("admin.settings.features.affiliate.rebateRateHint")),1)]),e("div",null,[e("label",MT,n(a(t)("admin.settings.features.affiliate.freezeHours")),1),c(e("input",{"onUpdate:modelValue":i[243]||(i[243]=o=>s.affiliate_rebate_freeze_hours=o),type:"number",step:"1",min:"0",max:"720",class:"input"},null,512),[[u,s.affiliate_rebate_freeze_hours,void 0,{number:!0}]]),e("p",FT,n(a(t)("admin.settings.features.affiliate.freezeHoursDesc")),1)]),e("div",null,[e("label",LT,n(a(t)("admin.settings.features.affiliate.durationDays")),1),c(e("input",{"onUpdate:modelValue":i[244]||(i[244]=o=>s.affiliate_rebate_duration_days=o),type:"number",step:"1",min:"0",max:"3650",class:"input"},null,512),[[u,s.affiliate_rebate_duration_days,void 0,{number:!0}]]),e("p",HT,n(a(t)("admin.settings.features.affiliate.durationDaysDesc")),1)]),e("div",null,[e("label",IT,n(a(t)("admin.settings.features.affiliate.perInviteeCap")),1),c(e("input",{"onUpdate:modelValue":i[245]||(i[245]=o=>s.affiliate_rebate_per_invitee_cap=o),type:"number",step:"0.01",min:"0",class:"input"},null,512),[[u,s.affiliate_rebate_per_invitee_cap,void 0,{number:!0}]]),e("p",RT,n(a(t)("admin.settings.features.affiliate.perInviteeCapDesc")),1)]),e("div",BT,[e("div",jT,[e("div",null,[e("h3",DT,n(a(t)("admin.settings.features.affiliate.customUsers.title")),1),e("p",OT,n(a(t)("admin.settings.features.affiliate.customUsers.description")),1)]),e("button",{type:"button",class:"btn btn-primary btn-sm",onClick:i[246]||(i[246]=o=>Rs(null))}," + "+n(a(t)("admin.settings.features.affiliate.customUsers.addButton")),1)]),e("div",zT,[c(e("input",{"onUpdate:modelValue":i[247]||(i[247]=o=>ae.search=o),type:"text",class:"input flex-1",placeholder:a(t)("admin.settings.features.affiliate.customUsers.searchPlaceholder"),onInput:Fo},null,40,qT),[[u,ae.search]]),ae.selected.length>0?(r(),d("button",{key:0,type:"button",class:"btn btn-secondary btn-sm",onClick:Oo},n(a(t)("admin.settings.features.affiliate.customUsers.batchButton",{count:ae.selected.length})),1)):h("",!0)]),e("div",NT,[e("table",KT,[e("thead",WT,[e("tr",null,[e("th",GT,[e("input",{type:"checkbox",checked:ae.entries.length>0&&ae.selected.length===ae.entries.length,onChange:Lo},null,40,QT)]),e("th",YT,n(a(t)("admin.settings.features.affiliate.customUsers.col.email")),1),e("th",JT,n(a(t)("admin.settings.features.affiliate.customUsers.col.username")),1),e("th",XT,n(a(t)("admin.settings.features.affiliate.customUsers.col.code")),1),e("th",ZT,n(a(t)("admin.settings.features.affiliate.customUsers.col.rate")),1),e("th",eA,n(a(t)("admin.settings.features.affiliate.customUsers.col.actions")),1)])]),e("tbody",tA,[ae.loading?(r(),d("tr",aA,[e("td",sA,n(a(t)("common.loading")),1)])):ae.entries.length===0?(r(),d("tr",nA,[e("td",iA,n(a(t)("admin.settings.features.affiliate.customUsers.empty")),1)])):h("",!0),(r(!0),d(R,null,N(ae.entries,o=>(r(),d("tr",{key:o.user_id},[e("td",oA,[e("input",{type:"checkbox",checked:ae.selected.includes(o.user_id
12),onChange:m=>Ho(o.user_id)},null,40,lA)]),e("td",rA,n(o.email),1),e("td",dA,n(o.username),1),e("td",cA,[I(n(o.aff_code)+" ",1),o.aff_code_custom?(r(),d("span",uA,n(a(t)("admin.settings.features.affiliate.customUsers.customBadge")),1)):h("",!0)]),e("td",_A,[o.aff_rebate_rate_percent!=null?(r(),d("span",mA,n(o.aff_rebate_rate_percent)+"%",1)):(r(),d("span",pA,n(a(t)("admin.settings.features.affiliate.customUsers.useGlobal")),1))]),e("td",gA,[e("div",yA,[e("button",{type:"button",class:"text-primary-600 hover:underline",onClick:m=>Rs(o)},n(a(t)("common.edit")),9,bA),e("button",{type:"button",class:"text-red-600 hover:underline",onClick:m=>Do(o)},n(a(t)("common.delete")),9,xA)])])]))),128))])])]),ae.total>ae.pageSize?(r(),d("div",hA,[e("span",fA,n(a(t)("admin.settings.features.affiliate.customUsers.totalLabel",{total:ae.total})),1),e("div",kA,[e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:ae.page<=1,onClick:i[248]||(i[248]=o=>Is(ae.page-1))},n(a(t)("pagination.previous")),9,vA),e("span",wA,n(ae.page)+" / "+n(Math.max(1,Math.ceil(ae.total/ae.pageSize))),1),e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:ae.page>=Math.ceil(ae.total/ae.pageSize),onClick:i[249]||(i[249]=o=>Is(ae.page+1))},n(a(t)("pagination.next")),9,CA)])])):h("",!0)])])):h("",!0)])]),W.open?(r(),d("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:Me(Sa,["self"])},[e("div",VA,[e("h3",UA,n(W.mode==="add"?a(t)("admin.settings.features.affiliate.modal.addTitle"):a(t)("admin.settings.features.affiliate.modal.editTitle")),1),e("div",SA,[W.mode==="add"?(r(),d("div",$A,[e("label",PA,n(a(t)("admin.settings.features.affiliate.modal.userLabel")),1),W.selectedUser?(r(),d("div",EA,[e("div",TA,[e("span",AA,n(W.selectedUser.email),1),e("span",MA,"("+n(W.selectedUser.username)+")",1)]),e("button",{type:"button",class:"text-lg leading-none text-gray-400 hover:text-red-600",title:a(t)("admin.settings.features.affiliate.modal.changeUser"),onClick:Bo}," × ",8,FA)])):(r(),d(R,{key:1},[c(e("input",{"onUpdate:modelValue":i[250]||(i[250]=o=>W.userQuery=o),type:"text",class:"input",placeholder:a(t)("admin.settings.features.affiliate.modal.userPlaceholder"),onInput:Io},null,40,LA),[[u,W.userQuery]]),W.userResults.length>0?(r(),d("div",HA,[(r(!0),d(R,null,N(W.userResults,o=>(r(),d("button",{key:o.id,type:"button",class:"w-full px-3 py-1.5 text-left text-sm hover:bg-gray-100 dark:hover:bg-dark-800",onClick:m=>Ro(o)},[I(n(o.email)+" ",1),e("span",RA,"("+n(o.username)+")",1)],8,IA))),128))])):h("",!0)],64))])):(r(),d("div",BA,[e("label",jA,n(a(t)("admin.settings.features.affiliate.modal.userLabel")),1),e("input",{type:"text",class:"input",value:W.editingEntry?W.editingEntry.email:"",disabled:""},null,8,DA)])),e("div",null,[e("label",OA,n(a(t)("admin.settings.features.affiliate.modal.codeLabel")),1),c(e("input",{"onUpdate:modelValue":i[251]||(i[251]=o=>W.code=o),type:"text",class:"input font-mono",placeholder:a(t)("admin.settings.features.affiliate.modal.codePlaceholder"),maxlength:"32"},null,8,zA),[[u,W.code]]),e("p",qA,n(a(t)("admin.settings.features.affiliate.modal.codeHint")),1)]),e("div",null,[e("label",NA,n(a(t)("admin.settings.features.affiliate.modal.rateLabel")),1),e("div",KA,[c(e("input",{"onUpdate:modelValue":i[252]||(i[252]=o=>W.rate=o),type:"number",step:"0.01",min:"0",max:"100",class:"input pr-8",placeholder:a(t)("admin.settings.features.affiliate.modal.ratePlaceholder")},null,8,WA),[[u,W.rate]]),i[392]||(i[392]=e("span",{class:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-gray-400"},"%",-1))]),e("p",GA,n(a(t)("admin.settings.features.affiliate.modal.rateHint")),1)])]),e("div",QA,[$a.value?(r(),d("span",JA)):(r(),d("p",YA,n(a(t)("admin.settings.features.affiliate.modal.errorEmpty")),1)),e("div",XA,[e("button",{type:"button",class:"btn btn-secondary",onClick:Sa},n(a(t)("common.cancel")),1),e("button",{type:"button",class:"btn btn-primary",disabled:W.saving||!$a.value,onClick:jo},n(W.saving?a(t)("common.saving"):a(t)("common.save")),9,ZA)])])])])):h("",!0),We.open?(r(),d("div",{key:1,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:i[255]||(i[255]=Me(o=>We.open=!1,["self"]))},[e("div",eM,[e("h3",tM,n(a(t)("admin.settings.features.affiliate.batchModal.title",{count:ae.selected.length})),1),e("p",aM,n(a(t)("admin.settings.features.affiliate.batchModal.hint")),1),e("div",sM,[c(e("input",{"onUpdate:modelValue":i[253]||(i[253]=o=>We.rate=o),type:"number",step:"0.01",min:"0",max:"100",class:"input pr-8",placeholder:a(t)("admin.settings.features.affiliate.batchModal.placeholder")},null,8,nM),[[u,We.rate]]),i[393]||(i[393]=e("span",{class:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-gray-400"},"%",-1))]),e("p",iM,n(a(t)("admin.settings.features.affiliate.batchModal.clearHint")),1),e("div",oM,[e("button",{type:"button",class:"btn btn-secondary",onClick:i[254]||(i[254]=o=>We.open=!1)},n(a(t)("common.cancel")),1),e("button",{type:"button",class:"btn btn-primary",disabled:We.saving,onClick:zo},n(We.saving?a(t)("common.saving"):a(t)("common.save")),9,lM)])])])):h("",!0)],512),[[Se,S.value==="features"]]),c(e("div",rM,[e("div",dM,[e("div",cM,[e("h2",uM,n(x("客服设置","Customer Service")),1),e("p",_M,n(x("客服工单、客服浮窗、外部模型和知识库配置。","Configure support tickets, chat widget, external LLM, and knowledge base.")),1)]),e("div",mM,[e("section",pM,[e("div",gM,[e("div",null,[e("h3",yM,n(x("客服工单","Support Tickets")),1),e("p",bM,n(x("允许用户提交工单并由管理员处理。","Allow users to submit tickets for administrator handling.")),1)]),g(T,{modelValue:s.support_ticket_enabled,"onUpdate:modelValue":i[256]||
12(i[256]=o=>s.support_ticket_enabled=o)},null,8,["modelValue"])]),s.support_ticket_enabled?(r(),d("div",xM,[e("div",null,[e("label",hM,n(x("默认优先级","Default Priority")),1),c(e("select",{"onUpdate:modelValue":i[257]||(i[257]=o=>s.support_ticket_default_priority=o),class:"input"},[e("option",fM,n(x("低","Low")),1),e("option",kM,n(x("普通","Normal")),1),e("option",vM,n(x("高","High")),1)],512),[[Ie,s.support_ticket_default_priority]])]),e("div",null,[e("label",wM,n(x("工单分类","Categories")),1),e("div",CM,[(r(!0),d(R,null,N(s.support_ticket_categories,(o,m)=>(r(),d("div",{key:`ticket-category-${m}`,class:"flex gap-2"},[c(e("input",{"onUpdate:modelValue":_=>s.support_ticket_categories[m]=_,type:"text",maxlength:"32",class:"input flex-1"},null,8,VM),[[u,s.support_ticket_categories[m]]]),e("button",{type:"button",class:"btn btn-secondary px-2",title:a(t)("common.delete"),onClick:_=>s.support_ticket_categories.splice(m,1)},[g(de,{name:"x",size:"xs"})],8,UM)]))),128)),e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:s.support_ticket_categories.length>=32,onClick:i[258]||(i[258]=o=>s.support_ticket_categories.push(""))},"+ "+n(x("添加分类","Add Category")),9,SM)])]),e("div",null,[e("label",$M,n(x("通知邮箱","Notification Emails")),1),e("div",PM,[(r(!0),d(R,null,N(s.support_ticket_notify_emails,(o,m)=>(r(),d("div",{key:`ticket-email-${m}`,class:"flex items-center gap-2"},[c(e("input",{"onUpdate:modelValue":_=>o.email=_,type:"email",class:"input flex-1",placeholder:"[email protected]"},null,8,EM),[[u,o.email]]),g(T,{modelValue:o.disabled,"onUpdate:modelValue":_=>o.disabled=_},null,8,["modelValue","onUpdate:modelValue"]),e("button",{type:"button",class:"btn btn-secondary px-2",title:a(t)("common.delete"),onClick:_=>s.support_ticket_notify_emails.splice(m,1)},[g(de,{name:"x",size:"xs"})],8,TM)]))),128)),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:i[259]||(i[259]=o=>s.support_ticket_notify_emails.push({email:"",disabled:!1,verified:!0}))},"+ "+n(x("添加邮箱","Add Email")),1)])])])):h("",!0)]),e("section",AM,[e("div",MM,[e("div",null,[e("h3",FM,n(x("客服浮窗","Support Chat Widget")),1),e("p",LM,n(x("配置前台右下角客服浮窗和多轮对话。","Configure the customer-service chat widget and multi-turn chat.")),1)]),g(T,{modelValue:s.support_chat_enabled,"onUpdate:modelValue":i[260]||(i[260]=o=>s.support_chat_enabled=o)},null,8,["modelValue"])]),s.support_chat_enabled?(r(),d("div",HM,[e("div",IM,[e("div",null,[e("label",RM,n(x("标题","Title")),1),c(e("input",{"onUpdate:modelValue":i[261]||(i[261]=o=>s.support_chat_title=o),type:"text",maxlength:"64",class:"input"},null,512),[[u,s.support_chat_title]])]),e("div",null,[e("label",BM,n(x("图标","Icon")),1),c(e("input",{"onUpdate:modelValue":i[262]||(i[262]=o=>s.support_chat_icon=o),type:"text",maxlength:"100",class:"input",placeholder:"💬"},null,512),[[u,s.support_chat_icon]])])]),e("div",null,[e("label",jM,n(x("欢迎语","Welcome Message")),1),c(e("textarea",{"onUpdate:modelValue":i[263]||(i[263]=o=>s.support_chat_welcome=o),rows:"2",maxlength:"256",class:"input"},null,512),[[u,s.support_chat_welcome]])]),e("div",null,[e("label",DM,n(x("不显示浮窗的路由","Excluded Routes")),1),e("div",OM,[(r(!0),d(R,null,N(s.support_chat_excluded_routes,(o,m)=>(r(),d("div",{key:`support-route-${m}`,class:"flex gap-2"},[c(e("input",{"onUpdate:modelValue":_=>s.support_chat_excluded_routes[m]=_,type:"text",maxlength:"200",class:"input flex-1",placeholder:"/admin/*"},null,8,zM),[[u,s.support_chat_excluded_routes[m]]]),e("button",{type:"button",class:"btn btn-secondary px-2",title:a(t)("common.delete"),onClick:_=>s.support_chat_excluded_routes.splice(m,1)},[g(de,{name:"x",size:"xs"})],8,qM)]))),128)),e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:s.support_chat_excluded_routes.length>=50,onClick:i[264]||(i[264]=o=>s.support_chat_excluded_routes.push(""))},"+ "+n(x("添加路由","Add Route")),9,NM)])]),e("div",KM,[e("div",WM,[e("div",null,[e("h4",GM,n(x("外部 LLM","External LLM")),1),e("p",QM,n(x("使用 OpenAI 兼容接口处理客服对话。","Use an OpenAI-compatible endpoint for support chat.")),1)]),g(T,{modelValue:s.support_chat_llm_enabled,"onUpdate:modelValue":i[265]||(i[265]=o=>s.support_chat_llm_enabled=o)},null,8,["modelValue"])]),s.support_chat_llm_enabled?(r(),d("div",YM,[e("div",JM,[e("div",null,[i[394]||(i[394]=e("label",{class:"input-label"},"Base URL",-1)),c(e("input",{"onUpdate:modelValue":i[266]||(i[266]=o=>s.support_chat_llm_base_url=o),type:"url",class:"input"},null,512),[[u,s.support_chat_llm_base_url]])]),e("div",null,[i[395]||(i[395]=e("label",{class:"input-label"},"API Key",-1)),c(e("input",{"onUpdate:modelValue":i[267]||(i[267]=o=>s.support_chat_llm_api_key=o),type:"password",class:"input",autocomplete:"new-password"},null,512),[[u,s.support_chat_llm_api_key]])]),e("div",null,[e("label",XM,n(x("模型","Model")),1),c(e("input",{"onUpdate:modelValue":i[268]||(i[268]=o=>s.support_chat_model=o),type:"text",class:"input"},null,512),[[u,s.support_chat_model]])]),e("div",null,[e("label",ZM,n(x("最大轮数","Max Turns")),1),c(e("input",{"onUpdate:modelValue":i[269]||(i[269]=o=>s.support_chat_max_turns=o),type:"number",min:"1",max:"20",class:"input"},null,512),[[u,s.support_chat_max_turns,void 0,{number:!0}]])]),e("div",null,[e("label",eF,n(x("最大请求 Token","Max Request Tokens")),1),c(e("input",{"onUpdate:modelValue":i[270]||(i[270]=o=>s.support_chat_max_request_tokens=o),type:"number",min:"1000",max:"200000",class:"input"},null,512),[[u,s.support_chat_max_request_tokens,void 0,{number:!0}]])])]),e("div",null,[e("label",tF,n(x("系统提示词","System Prompt")),1),c(e("textarea",{"onUpdate:modelValue":i[271]||
12(i[271]=o=>s.support_chat_system_prompt=o),rows:"5",maxlength:"8000",class:"input font-mono text-xs"},null,512),[[u,s.support_chat_system_prompt]])]),e("div",aF,[e("span",sF,n(x("允许匿名用户使用 LLM","Allow Anonymous LLM")),1),g(T,{modelValue:s.support_chat_anonymous_llm,"onUpdate:modelValue":i[272]||(i[272]=o=>s.support_chat_anonymous_llm=o)},null,8,["modelValue"])])])):h("",!0)]),e("div",nF,[e("div",null,[e("label",iF,n(x("用户每日限额","User Daily Limit")),1),c(e("input",{"onUpdate:modelValue":i[273]||(i[273]=o=>s.support_chat_rl_user_per_day=o),type:"number",min:"1",class:"input"},null,512),[[u,s.support_chat_rl_user_per_day,void 0,{number:!0}]])]),e("div",null,[e("label",oF,n(x("用户每分钟限额","User Per-Minute Limit")),1),c(e("input",{"onUpdate:modelValue":i[274]||(i[274]=o=>s.support_chat_rl_user_per_min=o),type:"number",min:"1",class:"input"},null,512),[[u,s.support_chat_rl_user_per_min,void 0,{number:!0}]])]),e("div",null,[e("label",lF,n(x("IP 每小时限额","IP Hourly Limit")),1),c(e("input",{"onUpdate:modelValue":i[275]||(i[275]=o=>s.support_chat_rl_ip_per_hour=o),type:"number",min:"1",class:"input"},null,512),[[u,s.support_chat_rl_ip_per_hour,void 0,{number:!0}]])])])])):h("",!0)]),e("section",rF,[e("div",dF,[e("div",null,[e("h3",cF,n(x("知识库 RAG","Knowledge Base RAG")),1),e("p",uF,n(x("配置客服知识库抓取和检索参数。","Configure support knowledge-base crawling and retrieval.")),1)]),g(T,{modelValue:s.support_chat_rag_enabled,"onUpdate:modelValue":i[276]||(i[276]=o=>s.support_chat_rag_enabled=o)},null,8,["modelValue"])]),s.support_chat_rag_enabled?(r(),d("div",_F,[e("div",mF,[e("label",pF,n(x("文档 URL","Document URL")),1),c(e("input",{"onUpdate:modelValue":i[277]||(i[277]=o=>s.support_chat_rag_doc_url=o),type:"url",class:"input"},null,512),[[u,s.support_chat_rag_doc_url]])]),e("div",null,[e("label",gF,n(x("抓取深度","Document Depth")),1),c(e("input",{"onUpdate:modelValue":i[278]||(i[278]=o=>s.support_chat_rag_doc_depth=o),type:"number",min:"0",max:"3",class:"input"},null,512),[[u,s.support_chat_rag_doc_depth,void 0,{number:!0}]])]),e("div",null,[e("label",yF,n(x("抓取计划","Schedule")),1),c(e("select",{"onUpdate:modelValue":i[279]||(i[279]=o=>s.support_chat_rag_doc_cron=o),class:"input"},[e("option",bF,n(x("手动","Manual")),1),e("option",xF,n(x("每日","Daily")),1),e("option",hF,n(x("每周","Weekly")),1)],512),[[Ie,s.support_chat_rag_doc_cron]])]),e("div",null,[e("label",fF,n(x("Embedding 提供商","Embedding Provider")),1),c(e("select",{"onUpdate:modelValue":i[280]||(i[280]=o=>s.support_chat_rag_embed_provider=o),class:"input"},[...i[396]||(i[396]=[e("option",{value:"gemini"},"Gemini",-1),e("option",{value:"openai"},"OpenAI",-1)])],512),[[Ie,s.support_chat_rag_embed_provider]])]),e("div",null,[e("label",kF,n(x("Embedding 模型","Embedding Model")),1),c(e("input",{"onUpdate:modelValue":i[281]||(i[281]=o=>s.support_chat_rag_embed_model=o),type:"text",class:"input"},null,512),[[u,s.support_chat_rag_embed_model]])]),e("div",null,[i[397]||(i[397]=e("label",{class:"input-label"},"Embedding Base URL",-1)),c(e("input",{"onUpdate:modelValue":i[282]||(i[282]=o=>s.support_chat_embedding_base_url=o),type:"url",class:"input"},null,512),[[u,s.support_chat_embedding_base_url]])]),e("div",null,[i[398]||(i[398]=e("label",{class:"input-label"},"Embedding API Key",-1)),c(e("input",{"onUpdate:modelValue":i[283]||(i[283]=o=>s.support_chat_embedding_api_key=o),type:"password",class:"input",autocomplete:"new-password"},null,512),[[u,s.support_chat_embedding_api_key]])]),e("div",null,[i[399]||(i[399]=e("label",{class:"input-label"},"Top K",-1)),c(e("input",{"onUpdate:modelValue":i[284]||(i[284]=o=>s.support_chat_rag_top_k=o),type:"number",min:"1",max:"20",class:"input"},null,512),[[u,s.support_chat_rag_top_k,void 0,{number:!0}]])]),e("div",null,[e("label",vF,n(x("分块大小","Chunk Size")),1),c(e("input",{"onUpdate:modelValue":i[285]||(i[285]=o=>s.support_chat_rag_chunk_size=o),type:"number",min:"200",max:"4000",class:"input"},null,512),[[u,s.support_chat_rag_chunk_size,void 0,{number:!0}]])]),e("div",null,[e("label",wF,n(x("分块重叠","Chunk Overlap")),1),c(e("input",{"onUpdate:modelValue":i[286]||(i[286]=o=>s.support_chat_rag_chunk_overlap=o),type:"number",min:"0",max:"500",class:"input"},null,512),[[u,s.support_chat_rag_chunk_overlap,void 0,{number:!0}]])])])):h("",!0)])])])],512),[[Se,S.value==="supportChat"]]),c(e("div",CF,[e("div",VF,[e("div",UF,[e("h2",SF,n(a(t)("admin.settings.payment.title")),1),e("p",$F,[I(n(a(t)("admin.settings.payment.description"))+" ",1),e("a",{href:w.value,target:"_blank",rel:"noopener noreferrer",class:"ml-2 inline-flex items-center text-primary-600 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300"},[i[400]||(i[400]=e("svg",{class:"mr-0.5 h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1)),I(" "+n(a(t)("admin.settings.payment.configGuide")),1)],8,PF)])]),e("div",EF,[e("div",TF,[e("div",null,[e("label",AF,n(a(t)("admin.settings.payment.enabled")),1),e("p",MF,n(a(t)("admin.settings.payment.enabledHint")),1)]),g(T,{modelValue:s.payment_enabled,"onUpdate:modelValue":i[287]||(i[287]=o=>s.payment_enabled=o)},null,8,["modelValue"])]),s.payment_enabled?(r(),d(R,{key:0},[e("div",FF,[e("div",null,[e("label",LF,n(a(t)("admin.settings.payment.productNamePrefix")),1),c(e("input",{"onUpdate:modelValue":i[288]||(i[288]=o=>s.payment_product_name_prefix=o),type:"text",class:"input",placeholder:"Sub2API"},null,512),[[u,s.payment_product_name_prefix]])]),e("div",null,[e("label",HF,n(a(t)("admin.settings.payment.productNameSuffix")),1),c(e("input",{"onUpdate:modelValue":i[289]||(i[289]=o=>s.payment_product_name_suffix=o),type:"text",class:"input",placeholder:"CNY"},null,512),[[u,s.payment_product_name_suffix]])]),e("div",null,[e("label",IF,n(a(t)("admin.settings.payment.preview")),1),e("div",RF,n((s.payment_product_name_prefix||"Sub2API")+" 100 "+(s.payment_product_name_suffix||"CNY")),1)])]),e("div",BF,[e("div",null,[e("label",jF,n(a(t)("admin.settings.payment.minAmount")),1),e("input",{value:s.payment_min_amount||"",onInput:i[290]||(i[290]=o=>s.payment_min_amount=parseFloat(o.target.value)||0),type:"number",step:"0.01",min:"0",class:"input",placeholder:a(t)("admin.settings.payment.noLimit")},null,40,DF)]),e("div",null,[e("label",OF,n(a(t)("admin.settings.payment.maxAmount")),1),e("input",{value:s.payment_max_amount||"",onInput:i[291]||(i[291]=o=>s.payment_max_amount=parseFloat(o.target.value)||0),type:"number",step:"0.01",min:"0",class:"input",placeholder:a(t)("admin.settings.payment.noLimit")},null,40,zF)]),e("div",null,[e("label",qF,n(a(t)("admin.settings.payment.dailyLimit")),1),e("input",{value:s.payment_daily_limit||"",onInput:i[292]||(i[292]=o=>s.payment_daily_limit=parseFloat(o.target.value)||0),type:"number",step:"0.01",min:"0",class:"input",placeholder:a(t)("admin.settings.payment.noLimit")},null,40,NF)]),e("div",null,[e("label",KF,n(a(t)("admin.settings.payment.balanceRechargeMultiplier")),1),e("input",{value:s.payment_balance_recharge_multiplier||"",onInput:i[293]||(i[293]=o=>s.payment_balance_recharge_multiplier=parseFloat(o.target.value)||1),type:"number",step:"0.01",min:"0.01",class:"input"},null,40,WF),e("p",GF,n(a(t)("admin.settings.payment.balanceRechargeMultiplierHint")),1),e("p",QF,n(a(t)("admin.settings.payment.balanceRechargePreview",{usd:(Number(s.payment_balance_recharge_multiplier)||1).toFixed(2)})),1)]),e("div",null,[e("label",YF,n(a(t)("admin.settings.payment.subscriptionUsdToCnyRate")),1),e("input",{value:s.payment_subscription_usd_to_cny_rate||"",onInput:i[294]||(i[294]=o=>s.payment_subscription_usd_to_cny_rate=parseFloat(o.target.value)||0),type:"number",step:"0.01",min:"0",class:"input",placeholder:a(t)("admin.settings.payment.subscriptionUsdToCnyRateDisabled")},null,40,JF),e("p",XF,n(a(t)("admin.settings.payment.subscriptionUsdToCnyRateHint")),1)]),e("div",null,[e("label",ZF,n(a(t)("admin.settings.payment.rechargeFeeRate")),1),e("div",eL,[e("input",{value:s.payment_recharge_fee_rate??"",onInput:i[295]||(i[295]=o=>s.payment_recharge_fee_rate=Math.min(100,Math.max(0,Math.round(parseFloat(o.target.value||"0")*100)/100))),type:"number",step:"0.01",min:"0",max:"100",class:"input pr-8"},null,40,tL),i[401]||(i[401]=e("span",{class:"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3 text-gray-400"},"%",-1))]),e("p",aL,n(a(t)("admin.settings.payment.rechargeFeeRateHint")),1),(Number(s.payment_recharge_fee_rate)||0)>0?(r(),d("p",sL,n(a(t)("admin.settings.payment.rechargeFeePreview",{fee:(Number(s.payment_recharge_fee_rate)||0).toFixed(2)})),1)):h("",!0)]),e("div",null,[e("label",nL,[I(n(a(t)("admin.settings.payment.orderTimeout"))+" ",1),i[402]||(i[402]=e("span",{class:"text-red-500"},"*",-1))]),c(e("input",{"onUpdate:modelValue":i[296]||(i[296]=o=>s.payment_order_timeout_minutes=o),type:"number",min:"1",class:"input",required:""},null,512),[[u,s.payment_order_timeout_minutes,void 0,{number:!0}]]),e("p",iL,n(a(t)("admin.settings.payment.orderTimeoutHint")),1)])]),e("div",oL,[e("div",lL,[e("label",rL,n(a(t)("admin.settings.payment.maxPendingOrders")),1),c(e("input",{"onUpdate:modelValue":i[297]||(i[297]=o=>s.payment_max_pending_orders=o),type:"number",min:"1",class:"input"},null,512),[[u,s.payment_max_pending_orders,void 0,{number:!0}]])]),e("div",null,[e("label",dL,n(a(t)("admin.settings.payment.loadBalanceStrategy")),1),g(ke,{modelValue:s.payment_load_balance_strategy,"onUpdate:modelValue":i[298]||(i[298]=o=>s.payment_load_balance_strategy=o),options:fo.value,class:"w-40"},null,8,["modelValue","options"])]),e("div",null,[e("label",cL,n(a(t)("admin.settings.payment.cancelRateLimit")),1),e("div",uL,[e("button",{type:"button",class:X(["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-primary-500 focus:ring-offset-2",s.payment_cancel_rate_limit_enabled?"bg-primary-500":"bg-gray-300 dark:bg-dark-600"]),onClick:i[299]||(i[299]=o=>s.payment_cancel_rate_limit_enabled=!s.payment_cancel_rate_limit_enabled)},[e("span",{class:X(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",s.payment_cancel_rate_limit_enabled?"translate-x-5":"translate-x-0"])},null,2)],2),g(ke,{modelValue:s.payment_cancel_rate_limit_window_mode,"onUpdate:modelValue":i[300]||(i[300]=o=>s.payment_cancel_rate_limit_window_mode=o),options:vo.value,class:"w-24",disabled:!s.payment_cancel_rate_limit_enabled},null,8,["modelValue","options","disabled"]),e("span",{class:X(["text-sm whitespace-nowrap",s.payment_cancel_rate_limit_enabled?"text-gray-700 dark:text-gray-300":"text-gray-400 dark:text-gray-600"])},n(a(t)("admin.settings.payment.cancelRateLimitEvery")),3),c(e("input",{"onUpdate:modelValue":i[301]||(i[301]=o=>s.payment_cancel_rate_limit_window=o),type:"number",min:"1",required:"",class:"input w-14 text-center",disabled:!s.payment_cancel_rate_limit_enabled},null,8,_L),[[u,s.payment_cancel_rate_limit_window,void 0,{number:!0}]]),g(ke,{modelValue:s.payment_cancel_rate_limit_unit,"onUpdate:modelValue":i[302]||(i[302]=o=>s.payment_cancel_rate_limit_unit=o),options:ko.value,class:"w-28",disabled:!s.payment_cancel_rate_limit_enabled},null,8,["modelValue","options","disabled"]),e("span",{class:X(["text-sm whitespace-nowrap",s.payment_cancel_rate_limit_enabled?"text-gray-700 dark:text-gray-300":"text-gray-400 dark:text-gray-600"])},n(a(t)("admin.settings.payment.cancelRateLimitAllowMax")),3),c(e("input",{"onUpdate:modelValue":i[303]||(i[303]=o=>s.payment_cancel_rate_limit_max=o),type:"number",min:"1",required:"",class:"input w-14 text-center",disabled:!s.payment_cancel_rate_limit_enabled},null,8,mL),[[u,s.payment_cancel_rate_limit_max,void 0,{number:!0}]]),e("span",{class:X(["text-sm whitespace-nowrap",s.payment_cancel_rate_limit_enabled?"text-gray-700 dark:text-gray-300":"text-gray-400 dark:text-gray-600"])}
12,n(a(t)("admin.settings.payment.cancelRateLimitTimes")),3)])]),e("div",null,[e("label",pL,n(a(t)("admin.settings.payment.alipayForceQRCode")),1),e("div",gL,[e("button",{type:"button",class:X(["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-primary-500 focus:ring-offset-2",s.payment_alipay_force_qrcode?"bg-primary-500":"bg-gray-300 dark:bg-dark-600"]),onClick:i[304]||(i[304]=o=>s.payment_alipay_force_qrcode=!s.payment_alipay_force_qrcode)},[e("span",{class:X(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",s.payment_alipay_force_qrcode?"translate-x-5":"translate-x-0"])},null,2)],2),e("span",yL,n(a(t)("admin.settings.payment.alipayForceQRCodeHint")),1)])]),e("div",null,[e("label",bL,n(a(t)("admin.settings.payment.alipayMobilePrecreateDeepLink")),1),e("div",xL,[e("button",{type:"button",class:X(["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-primary-500 focus:ring-offset-2",s.payment_alipay_mobile_precreate_deep_link?"bg-primary-500":"bg-gray-300 dark:bg-dark-600"]),onClick:i[305]||(i[305]=o=>s.payment_alipay_mobile_precreate_deep_link=!s.payment_alipay_mobile_precreate_deep_link)},[e("span",{class:X(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",s.payment_alipay_mobile_precreate_deep_link?"translate-x-5":"translate-x-0"])},null,2)],2),e("span",hL,n(a(t)("admin.settings.payment.alipayMobilePrecreateDeepLinkHint")),1)])])]),e("div",null,[e("label",fL,n(a(t)("admin.settings.payment.enabledPaymentTypes")),1),e("div",kL,[(r(!0),d(R,null,N(fa.value,o=>(r(),d("button",{key:o.value,type:"button",onClick:m=>bo(o.value),class:X(["rounded-lg border px-3 py-1.5 text-sm font-medium transition-all",go(o.value)?"border-primary-500 bg-primary-500 text-white shadow-sm":"border-gray-300 bg-white text-gray-600 hover:border-gray-400 hover:bg-gray-50 dark:border-dark-600 dark:bg-dark-800 dark:text-gray-300 dark:hover:border-dark-500"])},n(o.label),11,vL))),128))]),e("p",wL,[I(n(a(t)("admin.settings.payment.enabledPaymentTypesHint"))+" ",1),e("a",{href:f.value,target:"_blank",rel:"noopener noreferrer",class:"ml-1 text-primary-500 hover:text-primary-600 dark:text-primary-400 dark:hover:text-primary-300"},[I(n(a(t)("admin.settings.payment.findProvider"))+" ",1),i[403]||(i[403]=e("svg",{class:"mb-0.5 ml-0.5 inline h-3 w-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1))],8,CL)])]),e("div",VL,[e("div",null,[e("label",UL,n(a(t)("admin.settings.payment.helpImage")),1),g(Qt,{modelValue:s.payment_help_image_url,"onUpdate:modelValue":i[306]||(i[306]=o=>s.payment_help_image_url=o),"upload-label":a(t)("admin.settings.site.uploadImage"),"remove-label":a(t)("admin.settings.site.remove"),placeholder:a(t)("admin.settings.payment.helpImagePlaceholder")},null,8,["modelValue","upload-label","remove-label","placeholder"])]),e("div",null,[e("label",SL,n(a(t)("admin.settings.payment.helpText")),1),c(e("textarea",{"onUpdate:modelValue":i[307]||(i[307]=o=>s.payment_help_text=o),rows:"3",class:"input",placeholder:a(t)("admin.settings.payment.helpTextPlaceholder")},null,8,$L),[[u,s.payment_help_text]])])])],64)):h("",!0)])]),s.payment_enabled?(r(),Xe(Xl,{key:0,providers:Dt.value,loading:ka.value,"can-create":yo.value,"enabled-payment-types":s.payment_enabled_types,"all-payment-types":fa.value,"redirect-label":a(t)("admin.settings.payment.easypayRedirect"),onRefresh:rt,onCreate:wo,onEdit:Co,onDelete:$o,onToggleField:Uo,onToggleType:So,onReorder:Po},null,8,["providers","loading","can-create","enabled-payment-types","all-payment-types","redirect-label"])):h("",!0)],512),[[Se,S.value==="payment"]]),c(e("div",PL,[s.email_verify_enabled?h("",!0):(r(),d("div",EL,[e("div",TL,[e("div",AL,[g(de,{name:"mail",size:"md",class:"mt-0.5 flex-shrink-0 text-gray-400 dark:text-gray-500"}),e("div",null,[e("h3",ML,n(a(t)("admin.settings.emailTabDisabledTitle")),1),e("p",FL,n(a(t)("admin.settings.emailTabDisabledHint")),1)])])])])),s.email_verify_enabled?(r(),d("div",LL,[e("div",HL,[e("div",null,[e("h2",IL,n(a(t)("admin.settings.smtp.title")),1),e("p",RL,n(a(t)("admin.settings.smtp.description")),1)]),e("button",{type:"button",onClick:Li,disabled:Q.value||oe.value,class:"btn btn-secondary btn-sm"},[Q.value?(r(),d("svg",jL,[...i[404]||(i[404]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])])):h("",!0),I(" "+n(Q.value?a(t)("admin.settings.smtp.testing"):a(t)("admin.settings.smtp.testConnection")),1)],8,BL)]),e("div",DL,[e("div",OL,[e("div",null,[e("label",zL,n(a(t)("admin.settings.smtp.host")),1),c(e("input",{"onUpdate:modelValue":i[308]||(i[308]=o=>s.smtp_host=o),type:"text",class:"input",placeholder:a(t)("admin.settings.smtp.hostPlaceholder")},null,8,qL),[[u,s.smtp_host]])]),e("div",null,[e("label",NL,n(a(t)("admin.settings.smtp.port")),1),c(e("input",{"onUpdate:modelValue":i[309]||(i[309]=o=>s.smtp_port=o),type:"number",min:"1",max:"65535",class:"input",placeholder:a(t)("admin.settings.smtp.portPlaceholder")},null,8,KL),[[u,s.smtp_port,void 0,{number:!0}]])]),e("div",null,[e("label",WL,n(a(t)("admin.settings.smtp.username")),1),c(e("input",{"onUpdate:modelValue":i[310]||(i[310]=o=>s.smtp_username=o),type:"text",class:"input",placeholder:a(t)("admin.settings.smtp.usernamePlaceholder")},null,8,GL),[[u,s.smtp_username]])]),e("div",null,[e("label",QL,n(a(t)("admin.settings.smtp.password")),1),c(e("input",{"onUpdate:modelValue":i[311]||(i[311]=o=>s.smtp_password=o),type:"password",class:"input",autocomplete:"new-password",autocapitalize:"off",spellcheck:"false",onKeydown:i[312]||(i[312]=o=>K.value=!0),onPaste:i[313]||(i[313]=o=>K.value=!0),placeholder:s.smtp_password_configured?a(t)("admin.settings.smtp.passwordConfiguredPlaceholder"):a(t)("admin.settings.smtp.passwordPlaceholder")},null,40,YL),[[u,s.smtp_password]]),e("p",JL,n(s.smtp_password_configured?a(t)("admin.settings.smtp.passwordConfiguredHint"):a(t)("admin.settings.smtp.passwordHint")),1)]),e("div",null,[e("label",XL,n(a(t)("admin.settings.smtp.fromEmail")),1),c(e("input",{"onUpdate:modelValue":i[314]||(i[314]=o=>s.smtp_from_email=o),type:"email",class:"input",placeholder:a(t)("admin.settings.smtp.fromEmailPlaceholder")},null,8,ZL),[[u,s.smtp_from_email]])]),e("div",null,[e("label",eH,n(a(t)("admin.settings.smtp.fromName")),1),c(e("input",{"onUpdate:modelValue":i[315]||(i[315]=o=>s.smtp_from_name=o),type:"text",class:"input",placeholder:a(t)("admin.settings.smtp.fromNamePlaceholder")},null,8,tH),[[u,s.smtp_from_name]])])]),e("div",aH,[e("div",null,[e("label",sH,n(a(t)("admin.settings.smtp.useTls")),1),e("p",nH,n(a(t)("admin.settings.smtp.useTlsHint")),1)]),g(T,{modelValue:s.smtp_use_tls,"onUpdate:modelValue":i[316]||(i[316]=o=>s.smtp_use_tls=o)},null,8,["modelValue"])])])])):h("",!0),s.email_verify_enabled?(r(),d("div",iH,[e("div",oH,[e("h2",lH,n(a(t)("admin.settings.testEmail.title")),1),e("p",rH,n(a(t)("admin.settings.testEmail.description")),1)]),e("div",dH,[e("div",cH,[e("div",uH,[e("label",_H,n(a(t)("admin.settings.testEmail.recipientEmail")),1),c(e("input",{"onUpdate:modelValue":i[317]||(i[317]=o=>Z.value=o),type:"email",class:"input",placeholder:a(t)("admin.settings.testEmail.recipientEmailPlaceholder")},null,8,mH),[[u,Z.value]])]),e("button",{type:"button",onClick:Hi,disabled:z.value||!Z.value||oe.value,class:"btn btn-secondary"},[z.value?(r(),d("svg",gH,[...i[405]||(i[405]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])])):h("",!0),I(" "+n(z.value?a(t)("admin.settings.testEmail.sending"):a(t)("admin.settings.testEmail.sendTestEmail")),1)],8,pH)])])])):h("",!0),e("div",yH,[e("div",bH,[e("h3",xH,n(a(t)("admin.settings.subscriptionExpiryNotify.title")),1),e("p",hH,n(a(t)("admin.settings.subscriptionExpiryNotify.description")),1)]),e("div",fH,[e("div",kH,[e("div",null,[e("label",vH,n(a(t)("admin.settings.subscriptionExpiryNotify.enabled")),1),e("p",wH,n(a(t)("admin.settings.subscriptionExpiryNotify.enabledHint")),1)]),g(T,{modelValue:s.subscription_expiry_notify_enabled,"onUpdate:modelValue":i[318]||(i[318]=o=>s.subscription_expiry_notify_enabled=o)},null,8,["modelValue"])])])]),g(_g),e("div",CH,[e("div",VH,[e("h3",UH,n(a(t)("admin.settings.balanceNotify.title")),1),e("p",SH,n(a(t)("admin.settings.balanceNotify.description")),1)]),e("div",$H,[e("div",PH,[e("label",EH,n(a(t)("admin.settings.balanceNotify.enabled")),1),g(T,{modelValue:s.balance_low_notify_enabled,"onUpdate:modelValue":i[319]||(i[319]=o=>s.balance_low_notify_enabled=o)},null,8,["modelValue"])]),s.balance_low_notify_enabled?(r(),d("div",TH,[e("label",AH,n(a(t)("admin.settings.balanceNotify.threshold")),1),e("div",MH,[i[406]||(i[406]=e("span",{class:"absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"},"$",-1)),c(e("input",{"onUpdate:modelValue":i[320]||(i[320]=o=>s.balance_low_notify_threshold=o),type:"number",min:"0",step:"0.01",class:"input pl-7"},null,512),[[u,s.balance_low_notify_threshold,void 0,{number:!0}]])]),e("p",FH,n(a(t)("admin.settings.balanceNotify.thresholdHint")),1)])):h("",!0),e("div",null,[e("label",LH,n(a(t)("admin.settings.balanceNotify.rechargeUrl")),1),c(e("input",{"onUpdate:modelValue":i[321]||(i[321]=o=>s.balance_low_notify_recharge_url=o),type:"url",class:"input",placeholder:a(ra)},null,8,HH),[[u,s.balance_low_notify_recharge_url]]),e("p",IH,n(a(t)("admin.settings.balanceNotify.rechargeUrlHint")),1)])])]),e("div",RH,[e("div",BH,[e("h3",jH,n(a(t)("admin.settings.quotaNotify.title")),1),e("p",DH,n(a(t)("admin.settings.quotaNotify.description")),1)]),e("div",OH,[e("div",zH,[e("label",qH,n(a(t)("admin.settings.quotaNotify.enabled")),1),g(T,{modelValue:s.account_quota_notify_enabled,"onUpdate:modelValue":i[322]||(i[322]=o=>s.account_quota_notify_enabled=o)},null,8,["modelValue"])]),s.account_quota_notify_enabled?(r(),d("div",NH,[e("label",KH,n(a(t)("admin.settings.quotaNotify.emails")),1),e("div",WH,[(r(!0),d(R,null,N(s.account_quota_notify_emails||[],(o,m)=>(r(),d("div",{key:m,class:"flex items-center gap-2"},[e("label",GH,[e("input",{type:"checkbox",checked:!o.disabled,onChange:_=>o.disabled=!o.disabled,class:"sr-only peer"},null,40,QH),i[407]||(i[407]=e("div",{class:"w-9 h-5 bg-gray-200 peer-focus:outline-none rounded-full peer dark:bg-gray-600 peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-4 after:w-4 after:transition-all dark:after:border-gray-500 peer-checked:bg-primary-600"},null,-1))]),c(e("input",{"onUpdate:modelValue":_=>o.email=_,type:"email",class:"input flex-1",placeholder:a(t)("admin.settings.quotaNotify.emailPlaceholder")},null,8,YH),[[u,o.email]]),e("button",{onClick:_=>s.account_quota_notify_emails.splice(m,1),class:"btn btn-secondary px-2",type:"button"},[g(de,{name:"x",size:"xs",class:"h-4 w-4"})],8,JH)]))),128)),e("button",{onClick:Qn,class:"btn btn-secondary btn-sm",type:"button"}," + "+n(a(t)("admin.settings.quotaNotify.addEmail")),1)]),e("p",XH,n(a(t)("admin.settings.quotaNotify.emailsHint")),1)])):h("",!0)])])],512),[[Se,S.value==="email"]]),c(e("div",null,[g(E_)],512),[[Se,S.value==="backup"]]),c(e("div",null,[g(Lm)],512),[[Se,S.value==="oidc"]]),c(e("div",ZH,[g(up),g(Vp)],512),[[Se,S.value==="media"]]),c(e("div",eI,[e("button",{type:"submit",disabled:D.value||oe.value,class:"btn btn-primary"},[D.value?(r(),d("svg",aI,[...i[408]||(i[408]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])])):h("",!0),I(" "+n(D.value?a(t)("admin.settings.saving"):a(t)("admin.settings.saveSettings")),1)],8,tI)],512),[[Se,S.value!=="backup"&&S.value!=="oidc"&&S.value!=="media"]])],32)),g(vd,{ref_key:"providerDialogRef",ref:Ca,show:Tt.value,saving:va.value,editing:it.value,"all-key-options":As.value,"enabled-key-options":Ms.value,"all-payment-types":fa.value,"redirect-label":a(t)("admin.settings.payment.easypayRedirect"),onClose:i[323]||(i[323]=o=>Tt.value=!1),onSave:Vo},null,8,["show","saving","editing","all-key-options","enabled-key-options","all-payment-types","redirect-label"]),g(wt,{show:Ot.value,title:a(t)("admin.settings.payment.deleteProvider"),message:a(t)("admin.settings.payment.deleteProviderConfirm"),"confirm-text":a(t)("common.delete"),danger:"",onConfirm:Eo,onCancel:i[324]||(i[324]=o=>Ot.value=!1)},null,8,["show","title","message","confirm-text"]),g(wt,{show:De.show,title:De.title,message:De.message,"confirm-text":De.confirmText,danger:"",onConfirm:Ao,onCancel:Mo},null,8,["show","title","message","confirm-text"]),g(cn,{controller:a(L)},null,8,["controller"])])]),_:1})}}}),TI=rn(iI,[["__scopeId","data-v-1ee94fc5"]]);export{TI as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.