PageSourceSearch

https://haerapi.com/assets/SettingsView-BOEUsy3m.js

js haerapi.com collected 2026-10-05 22:13:18 UTC 399,344 bytes, 12 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DDjB6ptH.js","assets/index-Bhk1uhbh.js","assets/vendor-vue-Dzwqm9Y9.js","assets/vendor-i18n-BuoWFzps.js","assets/vendor-misc-B-nM3tYW.js","assets/vendor-misc-DB0Q8XAf.css","assets/index-CYZqxKfL.css","assets/AppLayout.vue_vue_type_script_setup_true_lang-DMncKwM_.js","assets/AppHeader.vue_vue_type_style_index_0_scoped_de9e02fc_lang-CcQW9xK6.js","assets/AppHeader-2a51hzx_.css","assets/useClipboard-EOKn1msF.js","assets/featureFlags-CmxeYaag.js","assets/LocaleSwitcher-DQlA_mZL.js","assets/LocaleSwitcher-CjvPxOhx.css","assets/payment-DxsqQ4_P.js","assets/payment-BG_oNtdV.js"])))=>i.map(i=>d[i]);
2import{d as Qe,z as d,B as e,G as s,A as q,C as r,c as H,u as a,E as x,k as h,F as M,V as B,D as Be,r as V,w as ft,K as Pe,q as me,U as Oe,Q as m,H as T,W as b,R as Te,a2 as Ps,o as Rt,O as eo,$ as Ze,P as hs,_ as xs,a3 as Je,a as to,a5 as fs,Y as Pt,a1 as ao,S as so}from"./vendor-vue-Dzwqm9Y9.js";import{_ as ie,g as no,z as io,a as Ca,k as R,D as $s,b as oo,ar as _a,as as pa,at as ga,au as lo,av as ya,aw as ba,ax as $t,ay as Et,m as bt,az as ro,aA as co,aB as uo}from"./index-Bhk1uhbh.js";import{s as mo,_ as _o}from"./AppLayout.vue_vue_type_script_setup_true_lang-DMncKwM_.js";import{S as fe}from"./Select-C01kMtat.js";import{_ as ks}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Caly13hz.js";import{l as po}from"./vendor-misc-B-nM3tYW.js";import{P as xt,b as va,c as wa,d as Es,W as go,e as ha,f as At,S as yo,h as Tt,p as bo,j as vs,s as ho}from"./providerConfig-CHSBMM6y.js";import{u as Xe}from"./vendor-i18n-BuoWFzps.js";import{_ as xo}from"./HelpTooltip.vue_vue_type_script_setup_true_lang-gHutfHq8.js";import{_ as ws}from"./GroupBadge.vue_vue_type_script_setup_true_lang-CYk3x0eN.js";import{G as Cs}from"./GroupOptionItem-MM9X9vPK.js";import{_ as S}from"./Toggle.vue_vue_type_script_setup_true_lang-CwidWQzY.js";import{P as fo}from"./ProxySelector-V3tCaVxw.js";import{u as As,_ as Ts,a as dt,i as Fs,s as Ms}from"./TotpStepUpDialog.vue_vue_type_script_setup_true_lang-Couc0KlK.js";import{b as se,a as rt}from"./apiError-BcAuv_LF.js";import{u as ko}from"./useClipboard-EOKn1msF.js";import{n as xa}from"./paymentFlow-cys_N5rS.js";import{a as Vs,p as vo,b as Us,c as wo}from"./registrationEmailPolicy-BIuq-4e8.js";import"./AppHeader.vue_vue_type_style_index_0_scoped_de9e02fc_lang-CcQW9xK6.js";import"./featureFlags-CmxeYaag.js";import"./LocaleSwitcher-DQlA_mZL.js";/* empty css                                                                       */import"./peak-rate-qZGUWdry.js";import"./PlatformIcon.vue_vue_type_script_setup_true_lang-Day_FQoY.js";import"./totp-CglRa9bl.js";const Co={class:"flex flex-col items-center gap-0.5 cursor-pointer"},Vo={class:"text-xs text-gray-500 dark:text-gray-400 whitespace-nowrap"},Uo=["aria-checked"],ct=Qe({__name:"ToggleSwitch",props:{label:{},checked:{type:Boolean}},emits:["toggle"],setup(A,{emit:t}){const $=t;return(k,K)=>(r(),d("label",Co,[e("span",Vo,s(A.label),1),e("button",{type:"button",role:"switch","aria-checked":A.checked,onClick:K[0]||(K[0]=D=>$("toggle")),class:q(["relative inline-flex h-5 w-9 shrink-0 rounded-full border-2 border-transparent transition-colors duration-200",A.checked?"bg-primary-500":"bg-gray-300 dark:bg-dark-600"])},[e("span",{class:q(["pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow-sm transition-transform duration-200",A.checked?"translate-x-4":"translate-x-0"])},null,2)],10,Uo)]))}}),So=["title"],Po={class:"flex items-center gap-3"},$o={class:"text-sm font-medium text-gray-900 dark:text-white"},Eo={class:"text-xs text-gray-400 dark:text-gray-500"},Ao={key:0,class:"text-xs text-gray-400 dark:text-gray-500"},To={key:1,class:"text-xs text-gray-300 dark:text-gray-600"},Fo={key:2,class:"flex items-center gap-1"},Mo=["onClick"],Lo={class:"flex items-center gap-4"},Ro={class:"flex items-center gap-2 border-l border-gray-200 pl-3 dark:border-dark-600"},Ho={class:"text-xs"},Do={class:"text-xs"},jo=Qe({__name:"ProviderCard",props:{provider:{},enabled:{type:Boolean},availableTypes:{}},emits:["toggleField","toggleType","edit","delete"],setup(A,{emit:t}){const $={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=A,K=t,{t:D}=Xe(),ae=H(()=>D($[k.provider.provider_key]||k.provider.provider_key)),C=H(()=>k.provider.payment_mode===xt?D("admin.settings.payment.modeQRCode"):k.provider.payment_mode===va?D("admin.settings.payment.modePopup"):k.provider.payment_mode===wa?D("admin.settings.payment.modeRedirect"):"");function w(f){return Array.isArray(k.provider.supported_types)&&k.provider.supported_types.includes(f)}return(f,U)=>(r(),d("div",{class:q(["group relative rounded-lg border transition-all",A.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:A.enabled?void 0:a(D)("admin.settings.payment.typeDisabled")+" — "+a(D)("admin.settings.payment.enableTypesFirst")},[e("div",{class:q(["flex items-center justify-between px-4 py-2.5",!A.enabled&&"pointer-events-none"])},[e("div",Po,[e("div",{class:q(["rounded-md p-1.5",A.provider.enabled&&A.enabled?"bg-green-100 dark:bg-green-900/30":"bg-gray-100 dark:bg-dark-700"])},[h(ie,{name:"server",size:"sm",class:q(A.provider.enabled&&A.enabled?"text-green-600 dark:text-green-400":"text-gray-400")},null,8,["class"])],2),e("span",$o,s(A.provider.name),1),e("span",Eo,s(ae.value),1),A.provider.payment_mode?(r(),d("span",Ao,"· "+s(C.value),1)):x("",!0),A.enabled&&A.availableTypes.length?(r(),d("span",To,"|")):x("",!0),A.enabled?(r(),d("div",Fo,[(r(!0),d(M,null,B(A.availableTypes,F=>
2(r(),d("button",{key:F.value,type:"button",onClick:N=>K("toggleType",F.value),class:q(["rounded px-2 py-0.5 text-xs font-medium transition-all",w(F.value)?"bg-primary-500 text-white":"bg-gray-100 text-gray-400 dark:bg-dark-700 dark:text-gray-500"])},s(F.label),11,Mo))),128))])):x("",!0)]),e("div",Lo,[h(ct,{label:a(D)("common.enabled"),checked:A.provider.enabled,onToggle:U[0]||(U[0]=F=>K("toggleField","enabled"))},null,8,["label","checked"]),h(ct,{label:a(D)("admin.settings.payment.refundEnabled"),checked:A.provider.refund_enabled,onToggle:U[1]||(U[1]=F=>K("toggleField","refund_enabled"))},null,8,["label","checked"]),A.provider.refund_enabled?(r(),Be(ct,{key:0,label:a(D)("admin.settings.payment.allowUserRefund"),checked:A.provider.allow_user_refund,onToggle:U[2]||(U[2]=F=>K("toggleField","allow_user_refund"))},null,8,["label","checked"])):x("",!0),e("div",Ro,[e("button",{type:"button",onClick:U[3]||(U[3]=F=>K("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"},[h(ie,{name:"edit",size:"sm"}),e("span",Ho,s(a(D)("common.edit")),1)]),e("button",{type:"button",onClick:U[4]||(U[4]=F=>K("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"},[h(ie,{name:"trash",size:"sm"}),e("span",Do,s(a(D)("common.delete")),1)])])])],2)],10,So))}}),zo={class:"card"},Oo={class:"border-b border-gray-100 px-4 py-3 dark:border-dark-700"},Bo={class:"flex items-center justify-between"},Io={class:"text-base font-semibold text-gray-900 dark:text-white"},qo={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},No={class:"flex items-center gap-2"},Wo=["disabled","title"],Ko=["disabled"],Go={class:"p-4"},Qo={key:0,class:"flex items-center justify-center py-6"},Yo={class:"min-w-0 flex-1"},Jo={key:2,class:"py-6 text-center"},Zo={class:"text-sm text-gray-500 dark:text-gray-400"},Xo=Qe({__name:"PaymentProviderList",props:{providers:{},loading:{type:Boolean},canCreate:{type:Boolean},enabledPaymentTypes:{},allPaymentTypes:{},redirectLabel:{}},emits:["refresh","create","edit","delete","toggleField","toggleType","reorder"],setup(A,{emit:t}){const $=A,k=t,{t:K}=Xe(),D=V([]);ft(()=>$.providers,f=>{D.value=[...f]},{immediate:!0});function ae(){const f=D.value.map((U,F)=>({id:U.id,sort_order:F}));k("reorder",f)}function C(f){return $.enabledPaymentTypes.includes(f)}function w(f){return Es(f,$.allPaymentTypes,$.redirectLabel).map(U=>U.label===U.value?{...U,label:K(`payment.methods.${U.value}`,U.value)}:U)}return(f,U)=>(r(),d("div",zo,[e("div",Oo,[e("div",Bo,[e("div",null,[e("h2",Io,s(a(K)("admin.settings.payment.providerManagement")),1),e("p",qo,s(a(K)("admin.settings.payment.providerManagementDesc")),1)]),e("div",No,[e("button",{type:"button",onClick:U[0]||(U[0]=F=>k("refresh")),disabled:A.loading,class:"btn btn-secondary btn-sm",title:a(K)("common.refresh")},[h(ie,{name:"refresh",size:"sm",class:q(A.loading?"animate-spin":"")},null,8,["class"])],8,Wo),e("button",{type:"button",onClick:U[1]||(U[1]=F=>k("create")),disabled:!A.canCreate,class:q(A.canCreate?"btn btn-primary btn-sm":"btn btn-secondary btn-sm cursor-not-allowed opacity-50")},s(a(K)("admin.settings.payment.createProvider")),11,Ko)])])]),e("div",Go,[A.loading&&!A.providers.length?(r(),d("div",Qo,[...U[4]||(U[4]=[e("div",{class:"h-5 w-5 animate-spin rounded-full border-2 border-primary-500 border-t-transparent"},null,-1)])])):x("",!0),A.providers.length?(r(),Be(a(po),{key:1,modelValue:D.value,"onUpdate:modelValue":U[2]||(U[2]=F=>D.value=F),animation:200,handle:".drag-handle",class:"space-y-3",onEnd:ae},{default:Pe(()=>[(r(!0),d(M,null,B(D.value,F=>(r(),d("div",{key:F.id,class:"flex items-start gap-2"},[U[5]||(U[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",Yo,[h(jo,{provider:F,enabled:C(F.provider_key),"available-types":w(F.provider_key),onToggleField:N=>k("toggleField",F,N),onToggleType:N=>k("toggleType",F,N),onEdit:N=>k("edit",F),onDelete:N=>k("delete",F)},null,8,["provider","enabled","available-types","onToggleField","onToggleType","onEdit","onDelete"])])]))),128))]),_:1},8,["modelValue"])):A.loading?x("",!0):(r(),d("div",Jo,[e("p",Zo,s(A.canCreate?a(K)("admin.settings.payment.noProviders"):a(K)("admin.settings.payment.enableTypesFirst")),1),A.canCreate?(r(),d("button",{key:0,t
2ype:"button",onClick:U[3]||(U[3]=F=>k("create")),class:"btn btn-primary btn-sm mt-2"},s(a(K)("admin.settings.payment.createProvider")),1)):x("",!0)]))])]))}}),el={class:"grid grid-cols-2 gap-4"},tl={class:"input-label"},al={class:"input-label"},sl={class:"flex flex-wrap items-center gap-x-5 gap-y-2"},nl={key:1,class:"flex items-center gap-2"},il={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},ol={class:"flex gap-1.5"},ll=["onClick"],rl={key:2,class:"flex items-center gap-2"},dl={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},cl={class:"flex flex-wrap gap-1.5"},ul=["onClick"],ml={key:0,class:"space-y-3 rounded-lg border border-gray-100 p-3 dark:border-dark-700"},_l={class:"flex items-center justify-between gap-3"},pl={class:"text-sm font-medium text-gray-900 dark:text-white"},gl={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},yl={key:0,class:"space-y-2"},bl={class:"text-xs text-gray-500 dark:text-gray-400"},hl=["onUpdate:modelValue"],xl={class:"text-xs text-gray-500 dark:text-gray-400"},fl=["onUpdate:modelValue"],kl={class:"text-xs text-gray-500 dark:text-gray-400"},vl=["onUpdate:modelValue","placeholder"],wl=["onClick"],Cl={class:"border-t border-gray-200 pt-4 dark:border-dark-700"},Vl={class:"mb-3 flex items-center gap-2"},Ul={class:"text-sm font-semibold text-gray-900 dark:text-white"},Sl=["aria-label","title"],Pl={class:"space-y-3"},$l={class:"font-medium text-white"},El={class:"font-medium text-white"},Al={class:"text-gray-300"},Tl={class:"text-gray-300"},Fl={class:"text-gray-300"},Ml={key:0,class:"border-t border-white/10 pt-2 text-[11px] text-gray-300"},Ll={key:0,class:"mb-3 text-xs text-gray-500 dark:text-gray-400"},Rl={class:"space-y-3"},Hl={class:"input-label"},Dl={key:0,class:"text-xs text-gray-400"},jl={key:1,class:"text-red-500"},zl=["onUpdate:modelValue","placeholder"],Ol={key:1,class:"relative"},Bl=["type","onUpdate:modelValue","placeholder"],Il=["onClick"],ql={key:0,class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Nl={key:1,class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Wl=["onUpdate:modelValue","placeholder"],Kl={key:4,class:"mt-1 text-xs leading-relaxed text-gray-500 dark:text-gray-400"},Gl={key:1,class:"mt-4 space-y-3"},Ql={key:0},Yl={class:"input-label"},Jl={class:"flex"},Zl=["placeholder"],Xl={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"},er={key:1},tr={class:"input-label"},ar={class:"flex"},sr=["placeholder"],nr={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"},ir={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"},or={class:"text-xs text-blue-700 dark:text-blue-300"},lr={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"},rr={key:0,class:"mt-2 text-xs leading-relaxed text-blue-700 dark:text-blue-300"},dr={key:1,class:"border-t border-gray-200 pt-4 dark:border-dark-700"},cr={class:"text-sm font-semibold text-gray-900 dark:text-white"},ur={class:"mt-3 space-y-3"},mr={class:"mb-2 text-xs font-medium text-gray-700 dark:text-gray-300"},_r={class:"grid grid-cols-3 gap-3"},pr={class:"text-xs text-gray-500 dark:text-gray-400"},gr=["value","onInput","placeholder"],yr={class:"text-xs text-gray-500 dark:text-gray-400"},br=["value","onInput","placeholder"],hr={class:"text-xs text-gray-500 dark:text-gray-400"},xr=["value","onInput","placeholder"],fr={class:"text-xs text-gray-400 dark:text-gray-500"},kr={class:"flex justify-end gap-3"},vr=["disabled"],wr=Qe({__name:"PaymentProviderDialog",props:{show:{type:Boolean},saving:{type:Boolean},editing:{},allKeyOptions:{},enabledKeyOptions:{},allPaymentTypes:{},redirectLabel:{}},emits:["close","save"],setup(A,{expose:t,emit:$}){function k(v){return v==="easypay"?xt:""}function K(v){return v==="easypay"||v==="alipay"}
2function D(v,u){return v==="easypay"?u===xt||u===va:v==="alipay"?u===""||u===wa:u===""}const ae=A,C=$,{t:w}=Xe(),f=me({name:"",provider_key:"easypay",supported_types:[],enabled:!0,payment_mode:xt,refund_enabled:!1,allow_user_refund:!1}),U=me({}),F=me({}),N=V(""),W=V(""),ne=V(!1),G=me({}),X=me([]),ee=typeof window<"u"?window.location.origin:"",oe={stripe:"admin.settings.payment.stripeWebhookHint",airwallex:"admin.settings.payment.airwallexWebhookHint"},_e=H(()=>{const v=go[f.provider_key];return oe[f.provider_key]&&v?ee+v:""}),ue=H(()=>oe[f.provider_key]||"admin.settings.payment.stripeWebhookHint"),le=H(()=>ha[f.provider_key]||null),Q=H(()=>K(f.provider_key)),Y=H(()=>f.provider_key==="alipay"?[{value:"",label:w("admin.settings.payment.modeQRCode")},{value:wa,label:w("admin.settings.payment.modeRedirect")}]:[{value:xt,label:w("admin.settings.payment.modeQRCode")},{value:va,label:w("admin.settings.payment.modePopup")}]),I=H(()=>{const v=Es(f.provider_key,ae.allPaymentTypes,ae.redirectLabel);if(f.provider_key==="easypay")for(const u of ge())v.some(c=>c.value===u.type)||v.push({value:u.type,label:u.displayName||u.type});return v.map(u=>u.label===u.value?{...u,label:w(`payment.methods.${u.value}`,u.value)}:u)}),re=H(()=>(At[f.provider_key]||[]).map(u=>({...u,label:u.label||w(`admin.settings.payment.field_${u.key}`)}))),te=H(()=>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),ye=H(()=>f.provider_key==="stripe"?[{value:"stripe",label:"Stripe"}]:f.supported_types.filter(u=>u!=="easypay").map(u=>ae.allPaymentTypes.find(g=>g.value===u)||{value:u,label:u}));function $e(v){return f.supported_types.includes(v)}function ke(v){f.supported_types.includes(v)?f.supported_types=f.supported_types.filter(u=>u!==v):f.supported_types=[...f.supported_types,v]}function ge(){return X.map(v=>({type:be(v.type),upstreamType:be(v.upstreamType),displayName:v.displayName.trim()})).filter(v=>v.type||v.upstreamType||v.displayName)}function be(v){return v.trim().toLowerCase()}function Re(){X.push({type:"",upstreamType:"",displayName:""})}function Ue(v){X.splice(v,1)}function Ie(){f.supported_types=[...Tt[f.provider_key]||[]],f.payment_mode=k(f.provider_key),He(),ve()}function He(){Object.keys(U).forEach(v=>delete U[v]),Object.keys(F).forEach(v=>delete F[v]),Object.keys(G).forEach(v=>delete G[v]),N.value="",W.value="",ne.value=!1,X.splice(0,X.length)}function ve(){for(const v of At[f.provider_key]||[])v.defaultValue&&!U[v.key]&&(U[v.key]=v.defaultValue)}function Fe(v,u){var g;const c=(g=F[v])==null?void 0:g[u];return c&&c>0?String(c):""}function qe(v){const u=F[v];return u?u.singleMin>0||u.singleMax>0||u.dailyLimit>0:!1}function he(v){return qe(v)?w("admin.settings.payment.limitsNoLimit"):w("admin.settings.payment.limitsUseGlobal")}function we(v,u,c){F[v]||(F[v]={});const g=Number(c);if(c===""||isNaN(g)){delete F[v][u];return}g<=0||(F[v][u]=g)}function Ee(){const v={};for(const[u,c]of Object.entries(F)){const g={};for(const[z,Me]of Object.entries(c))Me>0&&(g[z]=Me);Object.keys(g).length>0&&(v[u]=g)}return Object.keys(v).length>0?JSON.stringify(v):""}function Se(){if(!f.name.trim()){E(w("admin.settings.payment.validationNameRequired"));return}if(f.provider_key==="easypay"){const g=P();if(g){E(g);return}De()}for(const g of At[f.provider_key]||[]){if(g.optional||ae.editing&&g.sensitive)continue;if(!(U[g.key]||"").trim()){const Me=g.label||w(`admin.settings.payment.field_${g.key}`);E(w("admin.settings.payment.validationFieldRequired",{field:Me}));return}}const v=new Set((At[f.provider_key]||[]).filter(g=>g.clearable).map(g=>g.key)),u={};for(const[g,z]of Object.entries(U)){if(!z||!z.trim()){v.has(g)&&(u[g]="");continue}u[g]=z}f.provider_key==="easypay"&&(u.customMethods=ho(ge()));const c=ha[f.provider_key];
2if(c){const g=N.value.trim()||ee,z=W.value.trim()||ee;N.value=g,W.value=z,c.notifyUrl&&(u.notifyUrl=g+c.notifyUrl),c.returnUrl&&(u.returnUrl=z+c.returnUrl)}C("save",{provider_key:f.provider_key,name:f.name,supported_types:f.supported_types,enabled:f.enabled,payment_mode:Q.value?f.payment_mode:"",refund_enabled:f.refund_enabled,allow_user_refund:f.refund_enabled?f.allow_user_refund:!1,config:u,limits:Ee()})}function De(){if(f.provider_key!=="easypay")return[];const v=new Set(Tt.easypay||[]),u=[],c=new Set;for(const g of ge())!g.type||!g.upstreamType||c.has(g.type)||(c.add(g.type),u.push(g.type));f.supported_types=f.supported_types.map(g=>be(g)).filter(g=>v.has(g)||u.includes(g));for(const g of u)f.supported_types.includes(g)||f.supported_types.push(g);return u}function P(){const v=new Set;for(const u of ge())if(u.type||u.upstreamType||u.displayName){if(!u.type||!u.upstreamType)return w("admin.settings.payment.validationEasyPayCustomMethodRequired");if(!/^[a-z0-9_-]+$/.test(u.type))return w("admin.settings.payment.validationEasyPayCustomMethodTypeInvalid");if(!/^[a-z0-9_-]+$/.test(u.upstreamType))return w("admin.settings.payment.validationEasyPayCustomMethodUpstreamTypeInvalid");if((Tt.easypay||[]).includes(u.type))return w("admin.settings.payment.validationEasyPayCustomMethodReserved");if(u.type.startsWith("alipay")||u.type.startsWith("wxpay"))return w("admin.settings.payment.validationEasyPayCustomMethodPrefixReserved");if(v.has(u.type))return w("admin.settings.payment.validationEasyPayCustomMethodDuplicate");v.add(u.type)}return null}function E(v){io(()=>import("./index-DDjB6ptH.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])).then(u=>u.useAppStore().showError(v))}function Z(v){f.name="",f.provider_key=v,f.supported_types=[...Tt[v]||[]],f.enabled=!0,f.payment_mode=k(v),f.refund_enabled=!1,f.allow_user_refund=!1,He(),ve()}function pe(v){if(f.name=v.name,f.provider_key=v.provider_key,f.supported_types=Array.isArray(v.supported_types)?[...v.supported_types]:[],f.enabled=v.enabled,f.payment_mode=D(v.provider_key,v.payment_mode||"")?v.payment_mode||"":k(v.provider_key),f.refund_enabled=v.refund_enabled,f.allow_user_refund=v.allow_user_refund,He(),v.config){for(const[c,g]of Object.entries(v.config))if(!(c==="notifyUrl"||c==="returnUrl")){if(c==="customMethods"&&v.provider_key==="easypay"){X.push(...bo(g));continue}U[c]=g}const u=ha[v.provider_key];u!=null&&u.notifyUrl&&v.config.notifyUrl&&(N.value=vs(v.config.notifyUrl,u.notifyUrl)),u!=null&&u.returnUrl&&v.config.returnUrl&&(W.value=vs(v.config.returnUrl,u.returnUrl))}if(ve(),v.limits)try{const u=JSON.parse(v.limits);for(const[c,g]of Object.entries(u))F[c]={...g};ne.value=Object.keys(F).length>0}catch{}}return t({reset:Z,loadProvider:pe}),(v,u)=>(r(),Be(no,{show:A.show,title:A.editing?a(w)("admin.settings.payment.editProvider"):a(w)("admin.settings.payment.createProvider"),width:"wide",onClose:u[9]||(u[9]=c=>C("close"))},{footer:Pe(()=>[e("div",kr,[e("button",{type:"button",onClick:u[8]||(u[8]=c=>C("close")),class:"btn btn-secondary"},s(a(w)("common.cancel")),1),e("button",{type:"submit",form:"provider-form",disabled:A.saving,class:"btn btn-primary"},s(A.saving?a(w)("common.saving"):a(w)("common.save")),9,vr)])]),default:Pe(()=>[e("form",{id:"provider-form",onSubmit:Oe(Se,["prevent"]),class:"space-y-4"},[e("div",el,[e("div",null,[e("label",tl,[T(s(a(w)("admin.settings.payment.providerName"))+" ",1),u[10]||(u[10]=e("span",{class:"text-red-500"},"*",-1))]),m(e("input",{"onUpdate:modelValue":u[0]||(u[0]=c=>f.name=c),type:"text",class:"input",required:""},null,512),[[b,f.name]])]),e("div",null,[e("label",al,[T(s(a(w)("admin.settings.payment.providerKey"))+" ",1),u[11]||(u[11]=e("span",{class:"text-red-500"},"*",-1))]),h(fe,{modelValue:f.provider_key,"onUpdate:modelValue":u[1]||(u[1]=c=>f.provider_key=c),options:A.editing?A.allKeyOptions:A.enabledKeyOptions,disabled:!!A.editing,onChange:Ie},null,8,["modelValue","options","disabled"])])]),e("div",sl,[h(ct,{label:a(w)("common.enabled"),checked:f.enabled,onToggle:u[2]||(u[2]=c=>f.enabled=!f.enabled)},null,8,["label","checked"]),h(ct,{label:a(w)("admin.settings.payment.refundEnabled"),checked:f.refund_enabled,onToggle:u[3]||(u[3]=c=>{f.refund_enabled=!f.refund_enabled,f.refund_enabled||(f.allow_user_refund=!1)})},null,8,["label","checked"]),f.refund_enabled?(r(),Be(ct,{key:0,label:a(w)("admin.settings.payment.allowUserRefund"),checked:f.allow_user_refund,onToggle:u[4]||(u[4]=c=>f.allow_user_refund=!f.allow_user_refund)},null,8,["label","checked"])):x("",!0),Q.value?(r(),d("div",nl,[e("span",il,s(a(w)("admin.settings.payment.paymentMode")),1),e("div",ol,[(r(!0),d(M,null,B(Y.value,c=>(r(),d("button",{key:c.value,type:"button",onClick:g=>f.payment_mode=c.value,class:q(["rounded-lg border px-2.5 py-1 text-xs font-medium transition-all",f.payment_mode===c.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"])},s(c.label),11,ll))),128))])])):x("",!0),I.value.length>1?(r(),d("div",rl,[e("span",dl,s(a(w)("admin.settings.payment.supportedTypes")),1),e("div",cl,[(r(!0),d(M,null,B(I.value,c=>(r(),d("button",{key:c.value,type:"button",onClick:g=>
2ke(c.value),class:q(["rounded-lg border px-2.5 py-1 text-xs font-medium transition-all",$e(c.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"])},s(c.label),11,ul))),128))])])):x("",!0)]),f.provider_key==="easypay"?(r(),d("div",ml,[e("div",_l,[e("div",null,[e("h5",pl,s(a(w)("admin.settings.payment.easypayCustomMethods")),1),e("p",gl,s(a(w)("admin.settings.payment.easypayCustomMethodsHint")),1)]),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:Re},s(a(w)("admin.settings.payment.addCustomMethod")),1)]),X.length?(r(),d("div",yl,[(r(!0),d(M,null,B(X,(c,g)=>(r(),d("div",{key:g,class:"grid grid-cols-[1fr_1fr_1fr_auto] items-end gap-2"},[e("div",null,[e("label",bl,s(a(w)("admin.settings.payment.customMethodType")),1),m(e("input",{"onUpdate:modelValue":z=>c.type=z,type:"text",class:"input mt-0.5",placeholder:"credit_card"},null,8,hl),[[b,c.type]])]),e("div",null,[e("label",xl,s(a(w)("admin.settings.payment.customMethodUpstreamType")),1),m(e("input",{"onUpdate:modelValue":z=>c.upstreamType=z,type:"text",class:"input mt-0.5",placeholder:"credit_card"},null,8,fl),[[b,c.upstreamType]])]),e("div",null,[e("label",kl,s(a(w)("admin.settings.payment.customMethodDisplayName")),1),m(e("input",{"onUpdate:modelValue":z=>c.displayName=z,type:"text",class:"input mt-0.5",placeholder:a(w)("admin.settings.payment.customMethodDisplayNamePlaceholder")},null,8,vl),[[b,c.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:z=>Ue(g)},s(a(w)("common.delete")),9,wl)]))),128))])):x("",!0)])):x("",!0),e("div",Cl,[e("div",Vl,[e("h4",Ul,s(a(w)("admin.settings.payment.providerConfig")),1),te.value?(r(),Be(xo,{key:0,trigger:"click","width-class":"w-80"},{trigger:Pe(()=>[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,Sl)]),default:Pe(()=>[e("div",Pl,[e("p",$l,s(te.value.summary),1),(r(!0),d(M,null,B(te.value.items,c=>(r(),d("div",{key:c.title,class:"space-y-1.5 border-t border-white/10 pt-2 first:border-t-0 first:pt-0"},[e("p",El,s(c.title),1),e("p",null,[e("span",Al,s(a(w)("admin.settings.payment.guideOpenLabel")),1),T(s(c.open),1)]),e("p",null,[e("span",Tl,s(a(w)("admin.settings.payment.guideCallLabel")),1),T(s(c.call),1)]),e("p",null,[e("span",Fl,s(a(w)("admin.settings.payment.guideFallbackLabel")),1),T(s(c.fallback),1)])]))),128)),te.value.note?(r(),d("p",Ml,s(te.value.note),1)):x("",!0)])]),_:1})):x("",!0)]),te.value?(r(),d("p",Ll,s(te.value.summary),1)):x("",!0),e("div",Rl,[(r(!0),d(M,null,B(re.value,c=>{var g;return r(),d("div",{key:c.key},[e("label",Hl,[T(s(c.label)+" ",1),c.optional?(r(),d("span",Dl,"("+s(a(w)("common.optional"))+")",1)):(r(),d("span",jl," *"))]),c.sensitive&&c.key.toLowerCase().includes("key")&&c.key!=="pkey"?m((r(),d("textarea",{key:0,"onUpdate:modelValue":z=>U[c.key]=z,rows:"3",class:"input font-mono text-xs",autocomplete:"new-password","data-1p-ignore":"","data-lpignore":"true","data-bwignore":"true",spellcheck:"false",placeholder:A.editing?a(w)("admin.accounts.leaveEmptyToKeep"):""},null,8,zl)),[[b,U[c.key]]]):c.sensitive?(r(),d("div",Ol,[m(e("input",{type:G[c.key]?"text":"password","onUpdate:modelValue":z=>U[c.key]=z,class:"input pr-10",autocomplete:"new-password","data-1p-ignore":"","data-lpignore":"true","data-bwignore":"true",spellcheck:"false",placeholder:A.editing?a(w)("admin.accounts.leaveEmptyToKeep"):c.defaultValue||""},null,8,Bl),[[Ps,U[c.key]]]),e("button",{type:"button",onClick:z=>G[c.key]=!G[c.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"},[G[c.key]?(r(),d("svg",ql,[...u[12]||(u[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",Nl,[...u[13]||(u[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,Il)])):(g=c.options)!=null&&g.length?(r(),Be(fe,{key:2,modelValue:U[c.key],"onUpdate:modelValue":z=>U[c.key]=z,options:c.options,searchable:c.options.length>5},null,8,["modelValue","onUpdate:modelValue","options","searchable"])):m((r(),d("input",{key:3,type:"text","onUpdate:modelValue":z=>U[c.key]=z,class:"input",placeholder:c.defaultValue||""},null,8,Wl)),[[b,U[c.key]]]),c.hintKey?(r(),d("p",Kl,s(a(w)(c.hintKey)),1)):x("",!0)])}),128))]),le.value?(r(),d("div",Gl,[le.value.notifyUrl?(r(),d("div",Ql,[e("label",Yl,[T(s(a(w)("admin.settings.payment.field_notifyUrl"))+" ",1),u[14]||(u[14]=e("span",{class:"text-red-500"},"*",-1))]),e("div",Jl,[m(e("input",{"onUpdate:modelValue":u[5]||(u[5]=c=>N.value=c),type:"text",class:"input min-w-0 flex-1 !rounded-r-none !border-r-0",placeholder:a(ee)},null,8,Zl),[[b,N.value]]),e("span",Xl,s(le.value.notifyUrl),1)])])):x("",!0),le.value.returnUrl?(r(),d("div",er,[e("label",tr,[T(s(a(w)("admin.settings.payment.field_returnUrl"))+" ",1),u[15]||(u[15]=e("span",{class:"text-red-500"},"*",-1))]),e("div",ar,[m(e("input",{"onUpdate:modelValue":u[6]||(u[6]=c=>W.value=c),type:"text",class:"input min-w-0 flex-1 !rounded-r-none !border-r-0",placeholder:a(ee)},null,8,sr),[[b,W.value]]),e("span",nr,s(le.value.returnUrl),1)])])):x("",!0)])):x("",!0),_e.value?(r(),d("div",ir,[e("p",or,s(a(w)(ue.value)),1),e("code",lr,s(_e.value),1),f.provider_key==="str
2ipe"?(r(),d("p",rr,s(a(w)("admin.settings.payment.stripeWebhookApiVersionHint",{version:a(yo)})),1)):x("",!0)])):x("",!0)]),ye.value.length?(r(),d("div",dr,[e("button",{type:"button",onClick:u[7]||(u[7]=c=>ne.value=!ne.value),class:"flex w-full items-center justify-between"},[e("h4",cr,s(a(w)("admin.settings.payment.limitsTitle")),1),(r(),d("svg",{class:q(["h-4 w-4 text-gray-400 transition-transform",ne.value&&"rotate-180"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...u[16]||(u[16]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])],2))]),m(e("div",ur,[(r(!0),d(M,null,B(ye.value,c=>(r(),d("div",{key:c.value,class:"rounded-lg border border-gray-100 p-3 dark:border-dark-700"},[e("p",mr,s(c.label),1),e("div",_r,[e("div",null,[e("label",pr,s(a(w)("admin.settings.payment.limitSingleMin")),1),e("input",{type:"number",value:Fe(c.value,"singleMin"),onInput:g=>we(c.value,"singleMin",g.target.value),class:"input mt-0.5",min:"1",step:"0.01",placeholder:he(c.value)},null,40,gr)]),e("div",null,[e("label",yr,s(a(w)("admin.settings.payment.limitSingleMax")),1),e("input",{type:"number",value:Fe(c.value,"singleMax"),onInput:g=>we(c.value,"singleMax",g.target.value),class:"input mt-0.5",min:"1",step:"0.01",placeholder:he(c.value)},null,40,br)]),e("div",null,[e("label",hr,s(a(w)("admin.settings.payment.limitDaily")),1),e("input",{type:"number",value:Fe(c.value,"dailyLimit"),onInput:g=>we(c.value,"dailyLimit",g.target.value),class:"input mt-0.5",min:"1",step:"0.01",placeholder:he(c.value)},null,40,xr)])])]))),128)),e("p",fr,s(a(w)("admin.settings.payment.limitsHint")),1)],512),[[Te,ne.value]])])):x("",!0)],32)]),_:1},8,["show","title"]))}}),Cr={class:"flex items-start gap-4"},Vr={class:"flex-shrink-0"},Ur=["innerHTML"],Sr=["src"],Pr={class:"flex-1 space-y-2"},$r={class:"flex items-center gap-2"},Er={class:"btn btn-secondary btn-sm cursor-pointer"},Ar=["accept"],Tr={key:0,class:"text-xs text-gray-500 dark:text-gray-400"},Fr={key:1,class:"text-xs text-red-500"},fa=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(A,{emit:t}){const{t:$}=Xe(),k=A,K=t,D=V(""),ae=H(()=>k.uploadLabel||$("common.upload")),C=H(()=>k.removeLabel||$("common.remove")),w=H(()=>k.mode==="svg"?".svg":"image/*"),f=H(()=>k.mode==="svg"?mo(k.modelValue??""):""),U=H(()=>k.size==="sm"?"h-14 w-14":"h-20 w-20"),F=H(()=>k.size==="sm"?"h-7 w-7":"h-12 w-12"),N=H(()=>k.size==="sm"?"h-5 w-5":"h-8 w-8");function W(ne){var oe;const G=ne.target,X=(oe=G.files)==null?void 0:oe[0];if(D.value="",!X)return;if(k.maxSize&&X.size>k.maxSize){D.value=$("common.fileTooLargeKb",{size:(X.size/1024).toFixed(1),max:(k.maxSize/1024).toFixed(0)}),G.value="";return}const ee=new FileReader;if(k.mode==="svg")ee.onload=_e=>{var le;const ue=(le=_e.target)==null?void 0:le.result;ue&&K("update:modelValue",ue.trim())},ee.readAsText(X);else{if(!X.type.startsWith("image/")){D.value=$("common.selectImageFile"),G.value="";return}ee.onload=_e=>{var ue;K("update:modelValue",(ue=_e.target)==null?void 0:ue.result)},ee.readAsDataURL(X)}ee.onerror=()=>{D.value=$("common.fileReadFailed")},G.value=""}return(ne,G)=>(r(),d("div",Cr,[e("div",Vr,[e("div",{class:q(["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",[U.value,{"border-solid":!!A.modelValue}]])},[A.mode==="svg"&&A.modelValue?(r(),d("span",{key:0,class:q(["text-gray-600 dark:text-gray-300 [&>svg]:h-full [&>svg]:w-full",F.value]),innerHTML:f.value},null,10,Ur)):A.mode==="image"&&A.modelValue?(r(),d("img",{key:1,src:A.modelValue,alt:"",class:"h-full w-full object-contain"},null,8,Sr)):(r(),d("svg",{key:2,class:q(["text-gray-400 dark:text-dark-500",N.value]),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[...G[1]||(G[1]=[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",Pr,[e("div",$r,[e("label",Er,[e("input",{type:"file",accept:w.value,class:"hidden",onChange:W},null,40,Ar),h(ie,{name:"upload",size:"sm",class:"mr-1.5","stroke-width":2}
2),T(" "+s(ae.value),1)]),A.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:G[0]||(G[0]=X=>ne.$emit("update:modelValue",""))},[h(ie,{name:"trash",size:"sm",class:"mr-1.5","stroke-width":2}),T(" "+s(C.value),1)])):x("",!0)]),A.hint?(r(),d("p",Tr,s(A.hint),1)):x("",!0),D.value?(r(),d("p",Fr,s(D.value),1)):x("",!0)])]))}}),Mr={class:"space-y-6"},Lr={class:"card p-6"},Rr={class:"mb-4 flex flex-wrap items-center justify-between gap-3"},Hr={class:"text-base font-semibold text-gray-900 dark:text-white"},Dr={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},jr={class:"grid grid-cols-1 gap-3 md:grid-cols-2"},zr={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Or={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Br={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Ir={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},qr={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Nr={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Wr=["placeholder"],Kr={class:"inline-flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300 md:col-span-2"},Gr={class:"mt-4 flex flex-wrap gap-2"},Qr=["disabled"],Yr=["disabled"],Jr={class:"card p-6"},Zr={class:"mb-4 flex flex-wrap items-center justify-between gap-3"},Xr={class:"text-base font-semibold text-gray-900 dark:text-white"},ed={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},td={class:"inline-flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300"},ad={class:"inline-flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300"},sd={class:"mt-3 grid grid-cols-1 gap-3 md:grid-cols-2"},nd={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},id=["placeholder"],od={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},ld={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},rd={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},dd={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},cd={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},ud=["placeholder"],md={class:"inline-flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300 md:col-span-2"},_d={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},pd=["placeholder"],gd={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},yd={class:"mt-4 flex flex-wrap gap-2"},bd=["disabled"],hd=["disabled"],xd={class:"card p-6"},fd={class:"mb-4"},kd={class:"text-base font-semibold text-gray-900 dark:text-white"},vd={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},wd={class:"grid grid-cols-1 gap-3 md:grid-cols-2"},Cd={class:"inline-flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300 md:col-span-2"},Vd={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Ud={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Sd={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Pd={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},$d={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Ed={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Ad={class:"mt-4"},Td=["disabled"],Fd={class:"card p-6"},Md={class:"mb-4 flex flex-wrap items-center justify-between gap-3"},Ld={class:"text-base font-semibold text-gray-900 dark:text-white"},Rd={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Hd={class:"flex flex-wrap items-center gap-2"},Dd={class:"flex items-center gap-1"},jd={class:"text-xs text-gray-600 dark:text-gray-400"},zd=["disabled"],Od=["disabled"],Bd={class:"overflow-x-auto"},Id={class:"w-full min-w-[800px] text-sm"},qd={class:"border-b border-gray-200 text-left text-xs uppercase tracking-wide text-gray-500 dark:border-dark-700 dark:text-gray-400"},Nd={class:"py-2 pr-4"},Wd={class:"py-2 pr-4"},Kd={class:"py-2 pr-4"},Gd={class:"py-2 pr-4"},Qd={class:"py-2 pr-4"},Yd={class:"py-2 pr-4"},Jd={class:"py-2 pr-4"},Zd={class:"py-2"}
2,Xd={class:"py-3 pr-4 font-mono text-xs"},ec={class:"py-3 pr-4"},tc={class:"py-3 pr-4 text-xs"},ac={class:"py-3 pr-4 text-xs"},sc={class:"py-3 pr-4 text-xs"},nc={class:"py-3 pr-4 text-xs"},ic={class:"py-3 pr-4 text-xs"},oc={class:"py-3 pr-4 text-xs"},lc={class:"py-3 text-xs"},rc={class:"flex flex-wrap gap-1"},dc=["onClick"],cc=["disabled","onClick"],uc=["onClick"],mc={key:0},_c={colspan:"9",class:"py-6 text-center text-sm text-gray-500 dark:text-gray-400"},pc={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"},gc={class:"mb-4 text-lg font-bold text-gray-900 dark:text-white"},yc={class:"mb-4 text-sm text-gray-500 dark:text-gray-400"},bc={class:"mb-5"},hc={class:"mb-2 flex items-center gap-2 text-sm font-semibold text-gray-900 dark:text-white"},xc={class:"ml-8 list-decimal space-y-1 text-sm text-gray-600 dark:text-gray-300"},fc={class:"mb-5"},kc={class:"mb-2 flex items-center gap-2 text-sm font-semibold text-gray-900 dark:text-white"},vc={class:"ml-8 list-decimal space-y-1 text-sm text-gray-600 dark:text-gray-300"},wc={class:"mt-2 rounded-lg bg-amber-50 p-3 text-xs text-amber-700 dark:bg-amber-900/20 dark:text-amber-300"},Cc={class:"mb-5"},Vc={class:"mb-2 flex items-center gap-2 text-sm font-semibold text-gray-900 dark:text-white"},Uc={class:"ml-8 text-sm text-gray-600 dark:text-gray-300"},Sc={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"},Pc={class:"mb-5"},$c={class:"mb-2 flex items-center gap-2 text-sm font-semibold text-gray-900 dark:text-white"},Ec={class:"ml-8 overflow-hidden rounded-lg border border-gray-200 dark:border-dark-600"},Ac={class:"w-full text-sm"},Tc={class:"whitespace-nowrap bg-gray-50 px-3 py-2 font-medium text-gray-700 dark:bg-dark-700 dark:text-gray-300"},Fc={class:"px-3 py-2 text-gray-600 dark:text-gray-400"},Mc={class:"text-xs"},Lc={class:"rounded-lg bg-green-50 p-3 text-xs text-green-700 dark:bg-green-900/20 dark:text-green-300"},Rc={class:"mt-4 text-right"},Hc={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"},Dc=["aria-label"],jc={class:"mb-1 text-lg font-bold text-gray-900 dark:text-white"},zc={class:"mb-4 text-sm text-gray-500 dark:text-gray-400"},Oc={class:"space-y-2"},Bc={class:"text-sm text-gray-700 dark:text-gray-300"},Ic={class:"ml-2 text-xs text-gray-500 dark:text-gray-400"},qc=["href"],Nc={class:"mt-4 text-right"},Ss=900,Wc=Qe({__name:"BackupView",setup(A){const{t}=Xe(),$=Ca(),k=As();function K(u){return Fs(u)?($.showError(Ms(u)==="STEP_UP_ADMIN_API_KEY_FORBIDDEN"?t("stepUp.adminApiKeyForbidden"):t("stepUp.notEnabled")),!0):!1}const D=V({endpoint:"",region:"auto",bucket:"",access_key_id:"",secret_access_key:"",prefix:"backups/",force_path_style:!1}),ae=V(!1),C=V(!1),w=V(!1),f=V({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}),U=V(!1),F=V(!1),N=V(!1),W=V({enabled:!1,cron_expr:"0 2 * * *",retain_days:14,retain_count:10}),ne=V(!1),G=V([]),X=V(!1),ee=V(!1),oe=V(""),_e=V(14),ue=V([]),le=V(!1),Q=V(null),Y=V(null);function I(u){const c=G.value.findIndex(g=>g.id===u.id);c>=0&&(G.value[c]=u)}function re(u){te();let c=0;Q.value=setInterval(async()=>{if(c++>=Ss){te(),ee.value=!1,$.showWarning(t("admin.backup.operations.backupRunning"));return}try{const g=await R.backup.getBackup(u);I(g),(g.status==="completed"||g.status==="failed")&&(te(),ee.value=!1,g.status==="completed"?$.showSuccess(t("admin.backup.operations.backupCreated")):$.showError(g.error_message||t("admin.backup.operations.backupFailed")),await we())}catch{}},2e3)}function te(){Q.value&&(clearInterval(Q.value),Q.value=null)}function ye(u){$e();let c=0;Y.value=setInterval(async()=>{if(c++>=Ss){$e(),oe.value="",$.showWarning(t("admin.backup.operations.restoreRunning"));return}try{const g=await R.backup.getBackup(u);I(g),(g.restore_status==="completed"||g.restore_status==="failed")&&($e(),oe.value="",g.restore_status==="completed"?$.showSuccess(t("admin.backup.actions.restoreSuccess")):$.showError(g.restore_error||t("admin.backup.operations.restoreFailed")),await we())}catch{}},2e3)}function $e(){Y.value&&(clearInterval(Y.value),Y.value=null)}function ke(){document.hidden?(te(),$e()):we().then(()=>{const u=G.value.find(g=>g.status==="running");u&&(ee.value=!0,re(u.id));const c=G.value.find(g=>g.restore_status==="running");c&&(oe.value=c.id,ye(c.id))})}const ge=V(!1),be=H(()=>[{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")}
2,{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 Re(){try{const u=await R.backup.getS3Config();D.value={endpoint:u.endpoint||"",region:u.region||"auto",bucket:u.bucket||"",access_key_id:u.access_key_id||"",secret_access_key:"",prefix:u.prefix||"backups/",force_path_style:u.force_path_style},ae.value=!!u.access_key_id}catch(u){$.showError((u==null?void 0:u.message)||t("errors.networkError"))}}async function Ue(){C.value=!0;try{await k.run(()=>R.backup.updateS3Config(D.value)),$.showSuccess(t("admin.backup.s3.saved")),await Re()}catch(u){if(dt(u)){C.value=!1;return}$.showError((u==null?void 0:u.message)||t("errors.networkError"))}finally{C.value=!1}}async function Ie(){try{const{config:u,secret_configured:c}=await R.backup.getImageStorageConfig();f.value={...u,prefix:u.prefix||"images/",region:u.region||"auto",secret_access_key:""},U.value=c}catch(u){$.showError((u==null?void 0:u.message)||t("errors.networkError"))}}async function He(){F.value=!0;try{await k.run(()=>R.backup.updateImageStorageConfig(f.value)),$.showSuccess(t("admin.backup.imageStorage.saved")),await Ie()}catch(u){if(dt(u)){F.value=!1;return}$.showError((u==null?void 0:u.message)||t("errors.networkError"))}finally{F.value=!1}}async function ve(){N.value=!0;try{const u=await R.backup.testImageStorageConnection(f.value);u.ok?$.showSuccess(u.message||t("admin.backup.s3.testSuccess")):$.showError(u.message||t("admin.backup.s3.testFailed"))}catch(u){$.showError((u==null?void 0:u.message)||t("errors.networkError"))}finally{N.value=!1}}async function Fe(){w.value=!0;try{const u=await R.backup.testS3Connection(D.value);u.ok?$.showSuccess(u.message||t("admin.backup.s3.testSuccess")):$.showError(u.message||t("admin.backup.s3.testFailed"))}catch(u){$.showError((u==null?void 0:u.message)||t("errors.networkError"))}finally{w.value=!1}}async function qe(){try{const u=await R.backup.getSchedule();W.value={enabled:u.enabled,cron_expr:u.cron_expr||"0 2 * * *",retain_days:u.retain_days||14,retain_count:u.retain_count||10}}catch(u){$.showError((u==null?void 0:u.message)||t("errors.networkError"))}}async function he(){ne.value=!0;try{await R.backup.updateSchedule(W.value),$.showSuccess(t("admin.backup.schedule.saved"))}catch(u){$.showError((u==null?void 0:u.message)||t("errors.networkError"))}finally{ne.value=!1}}async function we(){X.value=!0;try{const u=await R.backup.listBackups();G.value=u.items||[]}catch(u){$.showError((u==null?void 0:u.message)||t("errors.networkError"))}finally{X.value=!1}}async function Ee(){var u;ee.value=!0;try{const c=await k.run(()=>R.backup.createBackup({expire_days:_e.value}));G.value.unshift(c),re(c.id)}catch(c){if(dt(c)){ee.value=!1;return}if(K(c)){ee.value=!1;return}((u=c==null?void 0:c.response)==null?void 0:u.status)===409?$.showWarning(t("admin.backup.operations.alreadyInProgress")):$.showError((c==null?void 0:c.message)||t("errors.networkError")),ee.value=!1}}async function Se(u){try{const c=await k.run(()=>R.backup.getDownloadURL(u));if(c.parts&&c.parts.length>0){ue.value=c.parts,le.value=!0;return}if(!c.url)throw new Error(t("admin.backup.actions.downloadFailed"));const g=document.createElement("a");g.href=c.url,g.rel="noopener",g.click()}catch(c){if(dt(c)||K(c))return;$.showError((c==null?void 0:c.message)||t("errors.networkError"))}}function De(){le.value=!1,ue.value=[]}async function P(u){var g;if(!window.confirm(t("admin.backup.actions.restoreConfirm")))return;const c=window.prompt(t("admin.backup.actions.restorePasswordPrompt"));if(c){oe.value=u;try{const z=await k.run(()=>R.backup.restoreBackup(u,c));I(z),ye(u)}catch(z){if(oe.value="",dt(z)||K(z))return;(z==null?void 0:z.status)===409||((g=z==null?void 0:z.response)==null?void 0:g.status)===409?$.showWarning(t("admin.backup.operations.restoreRunning")):$.showError((z==null?void 0:z.message)||t("errors.networkError"))}}}async function E(u){if(window.confirm(t("admin.backup.actions.deleteConfirm")))try{await R.backup.deleteBackup(u),$.showSuccess(t("admin.backup.actions.deleted")),await we()}catch(c){$.showError((c==null?void 0:c.message)||t("errors.networkError"))}}function Z(u){switch(u){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 pe(u){return!u||u<=0?"-":u<1024?`${u} B`:u<1024*1024?`${(u/1024).toFixed(1)} KB`:`${(u/(1024*1024)).toFixed(1)} MB`}function v(u){if(!u)return"-";const c=new Date(u);
2return Number.isNaN(c.getTime())?u:c.toLocaleString()}return Rt(async()=>{document.addEventListener("visibilitychange",ke),await Promise.all([Re(),Ie(),qe(),we()]);const u=G.value.find(g=>g.status==="running");u&&(ee.value=!0,re(u.id));const c=G.value.find(g=>g.restore_status==="running");c&&(oe.value=c.id,ye(c.id))}),eo(()=>{te(),$e(),document.removeEventListener("visibilitychange",ke)}),(u,c)=>(r(),d(M,null,[e("div",Mr,[e("div",Lr,[e("div",Rr,[e("div",null,[e("h3",Hr,s(a(t)("admin.backup.s3.title")),1),e("p",Dr,[T(s(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]=g=>ge.value=!0)},"Cloudflare R2"),T(" "+s(a(t)("admin.backup.s3.descriptionSuffix")),1)])])]),e("div",jr,[e("div",null,[e("label",zr,s(a(t)("admin.backup.s3.endpoint")),1),m(e("input",{"onUpdate:modelValue":c[1]||(c[1]=g=>D.value.endpoint=g),class:"input w-full",placeholder:"https://<account_id>.r2.cloudflarestorage.com"},null,512),[[b,D.value.endpoint]])]),e("div",null,[e("label",Or,s(a(t)("admin.backup.s3.region")),1),m(e("input",{"onUpdate:modelValue":c[2]||(c[2]=g=>D.value.region=g),class:"input w-full",placeholder:"auto"},null,512),[[b,D.value.region]])]),e("div",null,[e("label",Br,s(a(t)("admin.backup.s3.bucket")),1),m(e("input",{"onUpdate:modelValue":c[3]||(c[3]=g=>D.value.bucket=g),class:"input w-full"},null,512),[[b,D.value.bucket]])]),e("div",null,[e("label",Ir,s(a(t)("admin.backup.s3.prefix")),1),m(e("input",{"onUpdate:modelValue":c[4]||(c[4]=g=>D.value.prefix=g),class:"input w-full",placeholder:"backups/"},null,512),[[b,D.value.prefix]])]),e("div",null,[e("label",qr,s(a(t)("admin.backup.s3.accessKeyId")),1),m(e("input",{"onUpdate:modelValue":c[5]||(c[5]=g=>D.value.access_key_id=g),class:"input w-full"},null,512),[[b,D.value.access_key_id]])]),e("div",null,[e("label",Nr,s(a(t)("admin.backup.s3.secretAccessKey")),1),m(e("input",{"onUpdate:modelValue":c[6]||(c[6]=g=>D.value.secret_access_key=g),type:"password",class:"input w-full",placeholder:ae.value?a(t)("admin.backup.s3.secretConfigured"):""},null,8,Wr),[[b,D.value.secret_access_key]])]),e("label",Kr,[m(e("input",{"onUpdate:modelValue":c[7]||(c[7]=g=>D.value.force_path_style=g),type:"checkbox"},null,512),[[Ze,D.value.force_path_style]]),e("span",null,s(a(t)("admin.backup.s3.forcePathStyle")),1)])]),e("div",Gr,[e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:w.value,onClick:Fe},s(w.value?a(t)("common.loading"):a(t)("admin.backup.s3.testConnection")),9,Qr),e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:C.value,onClick:Ue},s(C.value?a(t)("common.loading"):a(t)("common.save")),9,Yr)])]),e("div",Jr,[e("div",Zr,[e("div",null,[e("h3",Xr,s(a(t)("admin.backup.imageStorage.title")),1),e("p",ed,s(a(t)("admin.backup.imageStorage.description")),1)]),e("label",td,[m(e("input",{"onUpdate:modelValue":c[8]||(c[8]=g=>f.value.enabled=g),type:"checkbox"},null,512),[[Ze,f.value.enabled]]),e("span",null,s(a(t)("admin.backup.imageStorage.enabled")),1)])]),e("label",ad,[m(e("input",{"onUpdate:modelValue":c[9]||(c[9]=g=>f.value.reuse_backup_s3=g),type:"checkbox"},null,512),[[Ze,f.value.reuse_backup_s3]]),e("span",null,s(a(t)("admin.backup.imageStorage.reuseBackupS3")),1)]),e("div",sd,[e("div",null,[e("label",nd,s(a(t)("admin.backup.imageStorage.bucket")),1),m(e("input",{"onUpdate:modelValue":c[10]||(c[10]=g=>f.value.bucket=g),class:"input w-full",placeholder:f.value.reuse_backup_s3?a(t)("admin.backup.imageStorage.bucketInherited"):""},null,8,id),[[b,f.value.bucket]])]),e("div",null,[e("label",od,s(a(t)("admin.backup.imageStorage.prefix")),1),m(e("input",{"onUpdate:modelValue":c[11]||(c[11]=g=>f.value.prefix=g),class:"input w-full",placeholder:"images/"},null,512),[[b,f.value.prefix]])]),f.value.reuse_backup_s3?x("",!0):(r(),d(M,{key:0},[e("div",null,[e("label",ld,s(a(t)("admin.backup.s3.endpoint")),1),m(e("input",{"onUpdate:modelValue":c[12]||(c[12]=g=>f.value.endpoint=g),class:"input w-full",placeholder:"https://<account_id>.r2.cloudflarestorage.com"},null,512),[[b,f.value.endpoint]])]),e("div",null,[e("label",rd,s(a(t)("admin.backup.s3.region")),1),m(e("input",{"onUpdate:modelValue":c[13]||(c[13]=g=>f.value.region=g),class:"input w-full",placeholder:"auto"},null,512),[[b,f.value.region]])]),e("div",null,[e("label",dd,s(a(t)("admin.backup.s3.accessKeyId")),1),m(e("input",{"onUpdate:modelValue":c[14]||(c[14]=g=>f.value.access_key_id=g),class:"input w-full"},null,512),[[b,f.value.access_key_id]])]),e("div",null,[e("label",cd,s(a(t)("admin.backup.s3.secretAccessKey")),1),m(e("input",{"onUpdate:modelValue":c[15]||(c[15]=g=>f.value.secret_access_key=g),type:"password",class:"input w-full",placeholder:U.value?a(t)("admin.backup.s3.secretConfigured"):""},null,8,ud),[[b,f.value.secret_access_key]])]),e("label",md,[m(e("input",{"onUpdate:modelValue":c[16]||(c[16]=g=>f.value.force_path_style=g),type:"checkbox"},null,512),[[Ze,f.value.force_path_style]]),e("span",null,s(a(t)("admin.backup.s3.forcePathStyle")),1)])],64)),e("div",null,[e("label",_d,s(a(t)("admin.backup.imageStorage.publicBaseUrl")),1),m(e("input",{"onUpdate:modelValue":c[17]||(c[17]=g=>f.value.public_base_url=g),class:"input w-full",placeholder:a(t)("admin.backup.imageStorage.publicBaseUrlPlaceholder")},null,8,pd),[[b,f.value.public_base_url]])]),e("div",null,[e("label",gd,s(a(t)("admin.backup.imageStorage.presignExpiryHours")),1),m(e("input",{"onUpdate:modelValue":c[18]||(c[18]=g=>f.value.presign_expiry_hours=g),type:"number",min:"1",class:"input w-full"},null,512),[[b,f.value.presign_expiry_hours,void 0,{number:!0}]])])]),e("div",yd,[e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:N.value,onClick:ve},s(N.value?a(t)("common.loading"):a(t)("admin.backup.s3.testConnection")),9,bd),e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:F.value,onClick:He},s(F.value?a(t)("common.loading"):a(t)("common.save")),9,hd)])]),e("div",xd,[e("div",fd,[e("h3",kd,s(a(t)("admin.backup.schedule.title")),1),e("p",vd,s(a(t)("admin.backup.schedule.description")),1)]),e("div",wd,[e("label",Cd,[m(e("input",{"onUpdate:modelValue":c[19]||(c[19]=g=>W.value.enabled=g),type:"checkbox"},null,512),[[Ze,W.value.enabled]]),e("span",null,s(a(t)("admin.backup.schedule.enabled")),1)]),e("div",null,[e("label",Vd,s(a(t)("admin.backup.schedule.cronExpr")),1),m(e("input",{"onUpdate:modelValue":c[20]||(c[20]=g=>W.value.cron_expr=g),class:"input w-full",placeholder:"0 2 * * *"},null,512),[[b,W.value.cron_expr]]),e("p",Ud,s(a(t)("admin.backup.schedule.cronHint")),1)]),e("div",null,[e("label",Sd,s(a(t)("admin.backup.schedule.retainDays")),1),m(e("input",{"onUpdate:modelValue":c[21]||(c[21]=g=>W.value.retain_days=g),type:"number",min:"0",class:"input w-full"},null,512),[[b,W.value.retain_days,void 0,{number:!0}]]),e("p",Pd,s(a(t)("admin.backup.schedule.retainDaysHint")),1)]),e("div",null,[e("label",$d,s(a(t)("admin.backup.schedule.retainCount")),1),m(e("input",{"onUpdate:modelValue":c[22]||(c[22]=g=>W.value.retain_count=g),type:"number",min:"0",class:"input w-full"},null,512),[[b,W.value.retain_count,void 0,{number:!0}]]),e("p",Ed,s(a(t)("admin.backup.schedule.retainCountHint")),1)])]),e("div",Ad,[e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:ne.value,onClick:he},s(ne.value?a(t)("common.loading"):a(t)("common.save")),9,Td)])]),e("div",Fd,[e("div",Md,[e("div",null,[e("h3",Ld,s(a(t)("admin.backup.operations.title")),1),e("p",Rd,s(a(t)("admin.backup.operations.description")),1)]),e("div",Hd,[e("div",Dd,[e("label",jd,s(a(t)("admin.backup.operations.expireDays")),1),m(e("input",{"onUpdate:modelValue":c[23]||(c[23]=g=>_e.value=g),type:"number",min:"0",class:"input w-20 text-xs"},null,512),[[b,_e.value,void 0,{number:!0}]])]),e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:ee.value,onClick:Ee},s(ee.value?a(t)("admin.backup.operations.backing"):a(t)("admin.backup.operations.createBackup")),9,zd),e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:X.value,onClick:we},s(X.value?a(t)("common.loading"):a(t)("common.refresh")),9,Od)])]),e("div",Bd,[e("table",Id,[e("thead",null,[e("tr",qd,[c[28]||(c[28]=e("th",{class:"py-2 pr-4"},"ID",-1)),e("th",Nd,s(a(t)("admin.backup.columns.status")),1),e("th",Wd,s(a(t)("admin.backup.columns.fileName")),1),e("th",Kd,s(a(t)("admin.backup.columns.size")),1),e("th",Gd,s(a(t)("admin.backup.columns.parts")),1),e("th",Qd,s(a(t)("admin.backup.columns.expiresAt")),1),e("th",Yd,s(a(t)("admin.backup.columns.triggeredBy")),1),e("th",Jd,s(a(t)("admin.backup.columns.startedAt")),1),e("th",Zd,s(a(t)("admin.backup.columns.actions")),1)])]),e("tbody",null,[(r(!0),d(M,null,B(G.value,g=>{var z;return r(),d("tr",{key:g.id,class:"border-b border-gray-100 align-top dark:border-dark-800"},[e("td",Xd,s(g.id),1),e("td",ec,[e("span",{class:q(["rounded px-2 py-0.5 text-xs",Z(g.status)])},s(g.status==="running"&&g.progress?a(t)(`admin.backup.progress.${g.progress}`):a(t)(`admin.backup.status.${g.status}`)),3)]),e("td",tc,s(g.file_name),1),e("td",ac,s(pe(g.size_bytes)),1),e("td",sc,s(((z=g.parts)==null?void 0:z.length)||(g.status==="running"?"-":1)),1),e("td",nc,s(g.expires_at?v(g.expires_at):a(t)("admin.backup.neverExpire")),1),e("td",ic,s(g.triggered_by==="scheduled"?a(t)("admin.backup.trigger.scheduled"):a(t)("admin.backup.trigger.manual")),1),e("td",oc,s(v(g.started_at)),1),e("td",lc,[e("div",rc,[g.status==="completed"?(r(),d("button",{key:0,t
2ype:"button",class:"btn btn-secondary btn-xs",onClick:Me=>Se(g.id)},s(a(t)("admin.backup.actions.download")),9,dc)):x("",!0),g.status==="completed"?(r(),d("button",{key:1,type:"button",class:"btn btn-secondary btn-xs",disabled:oe.value===g.id,onClick:Me=>P(g.id)},s(oe.value===g.id?a(t)("common.loading"):a(t)("admin.backup.actions.restore")),9,cc)):x("",!0),g.status!=="running"?(r(),d("button",{key:2,type:"button",class:"btn btn-danger btn-xs",onClick:Me=>E(g.id)},s(a(t)("common.delete")),9,uc)):x("",!0)])])])}),128)),G.value.length===0?(r(),d("tr",mc,[e("td",_c,s(a(t)("admin.backup.empty")),1)])):x("",!0)])])])])]),(r(),Be(hs,{to:"body"},[h(xs,{name:"modal"},{default:Pe(()=>[ge.value?(r(),d("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center p-4",onMousedown:c[27]||(c[27]=Oe(g=>ge.value=!1,["self"]))},[e("div",{class:"fixed inset-0 bg-black/50",onClick:c[24]||(c[24]=g=>ge.value=!1)}),e("div",pc,[e("button",{type:"button",class:"absolute right-4 top-4 text-gray-400 hover:text-gray-600 dark:hover:text-gray-200",onClick:c[25]||(c[25]=g=>ge.value=!1)},[...c[29]||(c[29]=[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",gc,s(a(t)("admin.backup.r2Guide.title")),1),e("p",yc,s(a(t)("admin.backup.r2Guide.intro")),1),e("div",bc,[e("h3",hc,[c[30]||(c[30]=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)),T(" "+s(a(t)("admin.backup.r2Guide.step1.title")),1)]),e("ol",xc,[e("li",null,s(a(t)("admin.backup.r2Guide.step1.line1")),1),e("li",null,s(a(t)("admin.backup.r2Guide.step1.line2")),1),e("li",null,s(a(t)("admin.backup.r2Guide.step1.line3")),1)])]),e("div",fc,[e("h3",kc,[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"},"2",-1)),T(" "+s(a(t)("admin.backup.r2Guide.step2.title")),1)]),e("ol",vc,[e("li",null,s(a(t)("admin.backup.r2Guide.step2.line1")),1),e("li",null,s(a(t)("admin.backup.r2Guide.step2.line2")),1),e("li",null,s(a(t)("admin.backup.r2Guide.step2.line3")),1),e("li",null,s(a(t)("admin.backup.r2Guide.step2.line4")),1)]),e("div",wc,s(a(t)("admin.backup.r2Guide.step2.warning")),1)]),e("div",Cc,[e("h3",Vc,[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"},"3",-1)),T(" "+s(a(t)("admin.backup.r2Guide.step3.title")),1)]),e("p",Uc,s(a(t)("admin.backup.r2Guide.step3.desc")),1),e("code",Sc,"https://<"+s(a(t)("admin.backup.r2Guide.step3.accountId"))+">.r2.cloudflarestorage.com",1)]),e("div",Pc,[e("h3",$c,[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"},"4",-1)),T(" "+s(a(t)("admin.backup.r2Guide.step4.title")),1)]),e("div",Ec,[e("table",Ac,[e("tbody",null,[(r(!0),d(M,null,B(be.value,(g,z)=>(r(),d("tr",{key:z,class:"border-b border-gray-100 dark:border-dark-700 last:border-0"},[e("td",Tc,s(g.field),1),e("td",Fc,[e("code",Mc,s(g.value),1)])]))),128))])])])]),e("div",Lc,s(a(t)("admin.backup.r2Guide.freeTier")),1),e("div",Rc,[e("button",{type:"button",class:"btn btn-primary btn-sm",onClick:c[26]||(c[26]=g=>ge.value=!1)},s(a(t)("common.close")),1)])])],32)):x("",!0)]),_:1})])),(r(),Be(hs,{to:"body"},[h(xs,{name:"modal"},{default:Pe(()=>[le.value?(r(),d("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center p-4",onMousedown:Oe(De,["self"])},[e("div",{class:"fixed inset-0 bg-black/50",onClick:De}),e("div",Hc,[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:De},[...c[34]||(c[34]=[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,Dc),e("h2",jc,s(a(t)("admin.backup.actions.downloadParts")),1),e("p",zc,s(a(t)("admin.backup.actions.downloadPartsHint")),1),e("div",Oc,[(r(!0),d(M,null,B(ue.value,g=>(r(),d("div",{key:g.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",Bc,[T(s(a(t)("admin.backup.actions.partLabel",{index:g.index}))+" ",1),e("span",Ic,s(pe(g.size_bytes)),1)]),e("a",{href:g.url,class:"btn btn-secondary btn-xs",rel:"noopener"},s(a(t)("admin.backup.actions.download")),9,qc)]))),128))]),e("div",Nc,[e("button",{type:"button",class:"btn btn-primary btn-sm",onClick:De},s(a(t)("common.close")),1)])])],32)):x("",!0)]),_:1})])),h(Ts,{controller:a(k)},null,8,["controller"])],64))}}),Kc=$s(Wc,[["__scopeId","data-v-9eba4d2c"]]),Gc={class:"card"},Qc={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"},Yc={class:"text-lg font-semibold text-gray-900 dark:text-white"},Jc={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Zc={class:"flex flex-wrap gap-2"},Xc=["disabled"],eu=["disabled"],tu=["disabled"],au={class:"space-y-6 p-6"},su={key:0,class:"flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400"},nu={class:"grid grid-cols-1 gap-4 md:grid-cols-2"},iu={class:"input-label",for:"email-template-event"},ou=["disabled"],lu=["value"],ru={class:"input-label",for:"email-template-locale"},du=["disabled"],cu=["value"],uu={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"},mu={class:"flex flex-wrap items-center gap-2"},_u={class:"text-sm font-semibold text-gray-900 dark:text-white"},pu={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"},gu={class:"mt-2 text-sm leading-6 text-gray-600 dark:text-gray-300"},yu={key:0,class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},bu={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"},hu={key:2,class:"grid grid-cols-1 gap-6 xl:grid-cols-2"},xu={class:"space-y-4"},fu={class:"input-label",for:"email-template-subject"},ku=["disabled","placeholder"],vu={class:"input-label",for:"email-template-html"},wu=["disabled","placeholder"],Cu={class:"rounded-lg border border-gray-200 bg-gray-50 p-4 dark:border-dark-700 dark:bg-dark-800/60"},Vu={class:"text-sm font-medium text-gray-900 dark:text-white"},Uu={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Su={class:"mt-3 flex flex-wrap gap-2"},Pu=["onClick"],$u={class:"space-y-4"},Eu={class:"rounded-lg border border-gray-200 bg-white dark:border-dark-700 dark:bg-dark-800"},Au={class:"flex items-center justify-between border-b border-gray-100 px-4 py-3 dark:border-dark-700"},Tu={class:"text-sm font-medium text-gray-900 dark:text-white"},Fu={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Mu={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"},Lu={class:"bg-gray-100 p-3 dark:bg-dark-900"},Ru=["srcdoc","title"],Hu={class:"text-xs text-gray-500 dark:text-gray-400"},Du=Qe({__name:"EmailTemplateEditor",setup(A){const{t,locale:$}=Xe(),k=Ca(),K=["{{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}}"],D=V(!0),ae=V(!1),C=V(!1),w=V(!1),f=V(!1),U=V([]),F=V([]),N=V(""),W=V(""),ne=V(""),G=V(""),X=V(!1),ee=V([]),oe=V(""),_e=V(""),ue=V(!1);function le(P,E){return $.value.toLowerCase().startsWith("zh")?P:E}
2const Q={"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 I(P){return typeof P=="string"?{value:P}:P}function re(P){if(!P)return null;const E=($.value.toLowerCase().startsWith("zh")?Q:Y)[P.value],Z=(E==null?void 0:E.label)||P.label||P.value,pe=(E==null?void 0:E.timing)||P.description||"",v=(E==null?void 0:E.
2categoryLabel)||ye(P.category||"");return{label:Z,timing:pe,categoryLabel:v,optional:P.optional===!0}}function te(P){const E=re(P);return E?E.label:P.label||P.value}function ye(P){const E=P.trim().toLowerCase();if(!E)return le("通知","Notification");const pe={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"}}[E];return pe?le(pe.zh,pe.en):P}const $e=H(()=>U.value.find(P=>P.value===N.value)||null),ke=H(()=>re($e.value)),ge=H(()=>{var P;return((P=$e.value)==null?void 0:P.description)||""}),be=H(()=>{const P=ee.value.length?ee.value:K;return Array.from(new Set(P.map(E=>Re(E)).filter(E=>E.length>0)))});function Re(P){const E=P.trim();return E?E.startsWith("{{")&&E.endsWith("}}")?E:`{{${E}}}`:""}const Ue=H(()=>!!(N.value&&W.value)&&ne.value.trim().length>0&&G.value.trim().length>0),Ie=H(()=>!!(N.value&&W.value)&&G.value.trim().length>0);function He(P){const E=P.toLowerCase();return E==="zh"||E.startsWith("zh-")?t("admin.settings.emailTemplates.localeZh"):E==="en"||E.startsWith("en-")?t("admin.settings.emailTemplates.localeEn"):P}function ve(P){const E=$.value.toLowerCase(),Z=P.find(u=>u.toLowerCase()===E);if(Z)return Z;const pe=E.split("-")[0],v=P.find(u=>u.toLowerCase().split("-")[0]===pe);return v||P[0]||""}function Fe(P){ne.value=P.subject,G.value=P.html,X.value=P.is_custom===!0,ee.value=P.placeholders||[]}async function qe(){if(!(!N.value||!W.value)){ae.value=!0;try{const P=await R.settings.getEmailTemplate(N.value,W.value);Fe(P),await Ee()}catch(P){k.showError(se(P,t("common.error")))}finally{ae.value=!1}}}async function he(){var P;D.value=!0;try{const E=await R.settings.getEmailTemplates();U.value=E.events.map(I),F.value=E.locales,ee.value=E.placeholders||[],ue.value=!0,N.value=((P=U.value[0])==null?void 0:P.value)||"",W.value=ve(E.locales),await qe(),ue.value=!1}catch(E){ue.value=!1,k.showError(se(E,t("common.error")))}finally{D.value=!1}}async function we(){if(!Ue.value){k.showError(t("admin.settings.emailTemplates.validationRequired"));return}C.value=!0;try{const P=await R.settings.updateEmailTemplate(N.value,W.value,{subject:ne.value,html:G.value});Fe(P),await Ee(),k.showSuccess(t("admin.settings.emailTemplates.saveSuccess"))}catch(P){k.showError(se(P,t("common.error")))}finally{C.value=!1}}async function Ee(){if(!Ie.value){oe.value="",_e.value="";return}w.value=!0;try{const P=await R.settings.previewEmailTemplate({event:N.value,locale:W.value,subject:ne.value,html:G.value});oe.value=P.subject,_e.value=P.html}catch(P){k.showError(se(P,t("common.error")))}finally{w.value=!1}}async function Se(){if(!(!N.value||!W.value)&&window.confirm(t("admin.settings.emailTemplates.restoreConfirm"))){f.value=!0;try{const P=await R.settings.restoreOfficialEmailTemplate(N.value,W.value);Fe(P),await Ee(),k.showSuccess(t("admin.settings.emailTemplates.restoreSuccess"))}catch(P){k.showError(se(P,t("common.error")))}finally{f.value=!1}}}async function De(P){try{await navigator.clipboard.writeText(P),k.showSuccess(t("admin.settings.emailTemplates.placeholderCopied"))}catch{k.showError(t("common.error"))}}return ft([N,W],([P,E],[Z,pe])=>{ue.value||!P||!E||P===Z&&E===pe||qe()}),Rt(()=>{he()}),(P,E)=>(r(),d("div",Gc,[e("div",Qc,[e("div",null,[e("h2",Yc,s(a(t)("admin.settings.emailTemplates.title")),1),e("p",Jc,s(a(t)("admin.settings.emailTemplates.description")),1)]),e("div",Zc,[e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:ae.value||w.value||!Ie.value,onClick:Ee},s(w.value?a(t)("admin.settings.emailTemplates.previewing"):a(t)("admin.settings.emailTemplates.preview")),9,Xc),e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:ae.value||f.value||!N.value||!W.value,onClick:Se},s(f.value?a(t)("admin.settings.emailTemplates.restoring"):a(t)("admin.settings.emailTemplates.restoreOfficial")),9,eu),e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:ae.value||C.value||!Ue.value,onClick:we},s(C.value?a(t)("admin.settings.emailTemplates.saving"):a(t)("admin.settings.emailTemplates.save")),9,tu)])]),e("div",au,[D.value?(r(),d("div",su,[E[4]||(E[4]=e("span",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),T(" "+s(a(t)("common.loading")),1)])):(r(),d(M,{key:1},[e("div",nu,[e("div",null,[e("label",iu,s(a(t)("admin.settings.emailTemplates.event")),1),m(e("select",{id:"email-template-event","onUpdate:modelValue":E[0]||(E[0]=Z=>N.value=Z),class:"input",disabled:ae.value||U.value.length===0},[(r(!0),d(M,null,B(U.value,Z=>(r(),d("option",{key:Z.value,value:Z.value},s(te(Z)),9,lu))),128))],8,ou),[[Je,N.value]])]),e("div",null,[e("label",ru,s(a(t)("admin.settings.emailTemplates.locale")),1),m(e("select",{id:"email-template-locale","onUpdate:modelValue":E[1]||(E[1]=Z=>W.value=Z),class:"input",disabled:ae.value||F.value.length===0},[(r(!0),d(M,null,B(F.value,Z=>(r(),d("option",{key:Z,value:Z},s(He(Z)),9,cu))),128))],8,du),[[Je,W.value]])])]),ke.value?(r(),d("div",uu,[e("div",mu,[e("div",_u,s(ke.value.label),1),e("span",pu,s(ke.value.categoryLabel),1),e("span",{class:q(["rounded-full px-2.5 py-1 text-xs font-medium",ke.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"])}
2,s(ke.value.optional?le("可退订通知","Optional"):le("事务邮件","Transactional")),3)]),e("p",gu,s(ke.value.timing),1),ge.value?(r(),d("p",yu,s(ge.value),1)):x("",!0)])):x("",!0),!U.value.length||!F.value.length?(r(),d("div",bu,s(a(t)("admin.settings.emailTemplates.empty")),1)):(r(),d("div",hu,[e("div",xu,[e("div",null,[e("label",fu,s(a(t)("admin.settings.emailTemplates.subject")),1),m(e("input",{id:"email-template-subject","onUpdate:modelValue":E[2]||(E[2]=Z=>ne.value=Z),type:"text",class:"input",disabled:ae.value,placeholder:a(t)("admin.settings.emailTemplates.subjectPlaceholder")},null,8,ku),[[b,ne.value]])]),e("div",null,[e("label",vu,s(a(t)("admin.settings.emailTemplates.html")),1),m(e("textarea",{id:"email-template-html","onUpdate:modelValue":E[3]||(E[3]=Z=>G.value=Z),rows:"18",class:"input min-h-[28rem] resize-y font-mono text-sm leading-6",disabled:ae.value,placeholder:a(t)("admin.settings.emailTemplates.htmlPlaceholder")},null,8,wu),[[b,G.value]])]),e("div",Cu,[e("div",Vu,s(a(t)("admin.settings.emailTemplates.placeholders")),1),e("p",Uu,s(a(t)("admin.settings.emailTemplates.placeholdersHelp")),1),e("div",Su,[(r(!0),d(M,null,B(be.value,Z=>(r(),d("button",{key:Z,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:pe=>De(Z)},s(Z),9,Pu))),128))])])]),e("div",$u,[e("div",Eu,[e("div",Au,[e("div",null,[e("div",Tu,s(a(t)("admin.settings.emailTemplates.livePreview")),1),e("div",Fu,s(oe.value||a(t)("admin.settings.emailTemplates.noPreview")),1)]),X.value?(r(),d("span",Mu,s(a(t)("admin.settings.emailTemplates.customized")),1)):x("",!0)]),e("div",Lu,[e("iframe",{class:"h-[36rem] w-full rounded-md border border-gray-200 bg-white dark:border-dark-700",sandbox:"",srcdoc:_e.value,title:a(t)("admin.settings.emailTemplates.livePreview")},null,8,Ru)])]),e("p",Hu,s(a(t)("admin.settings.emailTemplates.previewSecurityHint")),1)])]))],64))])]))}}),ju={key:0,class:"mb-2 flex flex-wrap gap-2"},zu=["title"],Ou={class:"shrink-0 text-gray-400"},Bu={key:0,class:"shrink-0 text-gray-400"},Iu=["aria-label","title","onClick"],qu={class:"relative"},Nu=["placeholder"],Wu={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"},Ku={key:0,class:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400"},Gu={key:1,class:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400"},Qu=["onClick"],Yu={class:"min-w-0 truncate font-medium text-gray-900 dark:text-white"},Ju={key:0,class:"ml-1 text-xs font-normal text-gray-400"},Zu={class:"shrink-0 text-xs text-gray-400"},Xu=Qe({__name:"OpenAIFastPolicyUserSelector",props:{modelValue:{}},emits:["update:modelValue"],setup(A,{emit:t}){const $=A,k=t,{t:K}=Xe(),D=V(null),ae=V(""),C=V([]),w=V(!1),f=V(!1),U=V({});let F=null,N=0;const W=H(()=>Array.from(new Set($.modelValue.filter(Q=>Number.isInteger(Q)&&Q>0)))),ne=H(()=>{const Q=new Set(W.value);return C.value.filter(Y=>!Q.has(Y.id)).sort((Y,I)=>Number(Y.deleted)-Number(I.deleted))});function G(Q){var Y;return((Y=U.value[Q])==null?void 0:Y.email)||K("admin.settings.openaiFastPolicy.userIdFallback",{id:Q})}function X(){F&&(clearTimeout(F),F=null),N+=1}function ee(){X();const Q=ae.value.trim();if(f.value=!0,!Q){C.value=[],w.value=!1;return}const Y=N;F=setTimeout(async()=>{w.value=!0;try{const I=await R.usage.searchUsers(Q);Y===N&&(C.value=I)}catch{Y===N&&(C.value=[])}finally{Y===N&&(w.value=!1)}},300)}function oe(Q){U.value={...U.value,[Q.id]:Q},k("update:modelValue",[...W.value,Q.id]),X(),ae.value="",C.value=[],w.value=!1,f.value=!1}function _e(Q){k("update:modelValue",W.value.filter(Y=>Y!==Q))}async function ue(Q){const Y=Q.filter(te=>!U.value[te]);if(Y.length===0)return;const I=await Promise.all(Y.map(async te=>{try{const ye=await R.users.getById(te,!0);return{id:ye.id,email:ye.email,deleted:!!ye.deleted_at}}catch{return null}})),re={...U.value};
2for(const te of I)te&&$.modelValue.includes(te.id)&&(re[te.id]=te);U.value=re}function le(Q){var I;const Y=Q.target;Y&&!((I=D.value)!=null&&I.contains(Y))&&(f.value=!1)}return ft(W,Q=>{ue(Q)},{immediate:!0}),Rt(()=>{document.addEventListener("click",le)}),to(()=>{X(),document.removeEventListener("click",le)}),(Q,Y)=>(r(),d("div",{ref_key:"containerRef",ref:D,class:"relative"},[W.value.length>0?(r(),d("div",ju,[(r(!0),d(M,null,B(W.value,I=>{var re;return r(),d("span",{key:I,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:G(I)},s(G(I)),9,zu),e("span",Ou,"#"+s(I),1),(re=U.value[I])!=null&&re.deleted?(r(),d("span",Bu,s(a(K)("admin.settings.openaiFastPolicy.userDeleted")),1)):x("",!0),e("button",{type:"button",class:"shrink-0 rounded text-gray-400 hover:text-red-600 dark:hover:text-red-400","aria-label":a(K)("admin.settings.openaiFastPolicy.removeUser"),title:a(K)("admin.settings.openaiFastPolicy.removeUser"),onClick:te=>_e(I)},[h(ie,{name:"x",size:"xs","stroke-width":2})],8,Iu)])}),128))])):x("",!0),e("div",qu,[h(ie,{name:"search",size:"sm",class:"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"}),m(e("input",{"onUpdate:modelValue":Y[0]||(Y[0]=I=>ae.value=I),type:"text",autocomplete:"off",class:"input input-sm w-full pl-9",placeholder:a(K)("admin.settings.openaiFastPolicy.userSearchPlaceholder"),onInput:ee,onFocus:Y[1]||(Y[1]=I=>f.value=!0)},null,40,Nu),[[b,ae.value]])]),f.value&&ae.value.trim()?(r(),d("div",Wu,[w.value?(r(),d("div",Ku,s(a(K)("common.loading")),1)):ne.value.length===0?(r(),d("div",Gu,s(a(K)("admin.settings.openaiFastPolicy.userSearchEmpty")),1)):(r(!0),d(M,{key:2},B(ne.value,I=>(r(),d("button",{key:I.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:re=>oe(I)},[e("span",Yu,[T(s(I.email)+" ",1),I.deleted?(r(),d("span",Ju,s(a(K)("admin.settings.openaiFastPolicy.userDeleted")),1)):x("",!0)]),e("span",Zu,"#"+s(I.id),1)],8,Qu))),128))])):x("",!0)],512))}}),em=["header_exact","header_prefix","body_path"];function tm(A){if(!A||!A.trim())return[];try{const t=JSON.parse(A);return Array.isArray(t)?t.map($=>({type:em.includes($==null?void 0:$.type)?$.type:"header_exact",match:Array.isArray($==null?void 0:$.match)?$.match.filter(k=>typeof k=="string").join(" / "):"",required:($==null?void 0:$.required)===!0})):[]}catch{return[]}}function am(A){const t=A.map($=>({type:$.type,match:$.match.split("/").map(k=>k.trim()).filter(k=>k.length>0),required:$.required===!0})).filter($=>$.match.length>0);return JSON.stringify(t)}function sm(){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 nm={class:"mx-auto max-w-6xl space-y-6"},im={key:0,class:"flex items-center justify-center py-12"},om={class:"settings-tabs-shell"},lm=["aria-label"],rm={class:"settings-tabs"},dm=["id","aria-selected","tabindex","onClick","onKeydown"],cm={class:"settings-tab-icon"},um={class:"settings-tab-label"},mm={class:"space-y-6"},_m={class:"card"},pm={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},gm={class:"text-lg font-semibold text-gray-900 dark:text-white"},ym={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},bm={class:"space-y-4 p-6"},hm={class:"rounded-lg border border-amber-200 bg-amber-50 p-4 dark:border-amber-800 dark:bg-amber-900/20"},xm={class:"flex items-start"},fm={class:"ml-3 text-sm text-amber-700 dark:text-amber-300"},km={key:0,class:"flex items-center gap-2 text-gray-500"},vm={key:1,class:"flex items-center justify-between"},wm={class:"text-gray-500 dark:text-gray-400"},Cm=["disabled"],Vm={key:0,class:"mr-1 h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},Um={key:2,class:"space-y-4"},Sm={class:"flex items-center justify-between"},Pm={class:"mb-1 block text-sm font-medium text-gray-700 dark:text-gray-300"},$m={class:"rounded bg-gray-100 px-2 py-1 font-mono text-sm text-gray-900 dark:bg-dark-700 dark:text-gray-100"},Em={class:"flex gap-2"},Am=["disabled"],Tm=["disabled"],Fm={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"},Mm={class:"text-sm font-medium text-green-700 dark:text-green-300"},Lm={class:"flex items-center gap-2"},Rm={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"},Hm={class:"text-xs text-green-600 dark:text-green-400"},Dm={class:"space-y-6"},jm={class:"card"},zm={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Om={class:"text-lg font-semibold text-gray-900 dark:text-white"},Bm={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Im={class:"space-y-5 p-6"},qm={key:0,class:"flex items-center gap-2 text-gray-500"},Nm={class:"flex items-center justify-between"},Wm={class:"font-medium text-gray-900 dark:text-white"},Km={class:"text-sm text-gray-500 dark:text-gray-400"},Gm={key:0,class:"space-y-4 border-t border-gray-100 pt-4 dark:border-dark-700"},Qm={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Ym={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Jm={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},Zm=["disabled"],Xm={key:0,class:"mr-1 h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},e_={class:"card"},t_={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},a_={class:"text-lg font-semibold text-gray-900 dark:text-white"},s_={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},n_={class:"space-y-5 p-6"},i_={key:0,class:"flex items-center gap-2 text-gray-500"},o_={class:"flex items-center justify-between"},l_={class:"font-medium text-gray-900 dark:text-white"},r_={class:"text-sm text-gray-500 dark:text-gray-400"},d_={key:0,class:"space-y-4 border-t border-gray-100 pt-4 dark:border-dark-700"},c_={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},u_={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},m_={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},__=["disabled"],p_={key:0,class:"mr-1 h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},g_={class:"card"},y_={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},b_={class:"text-lg font-semibold text-gray-900 dark:text-white"},h_={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},x_={class:"space-y-5 p-6"},f_={key:0,class:"flex items-center gap-2 text-gray-500"},k_={class:"flex items-center justify-between"},v_={class:"font-medium text-gray-900 dark:text-white"},w_={class:"text-sm text-gray-500 dark:text-gray-400"},C_={key:0,class:"space-y-4 border-t border-gray-100 pt-4 dark:border-dark-700"},V_={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},U_={value:"temp_unsched"},S_={value:"error"},P_={value:"none"},$_={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},E_={key:0},A_={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},T_={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},F_={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},M_={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},L_={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},R_={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},H_={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},D_=["disabled"],j_={key:0,class:"mr-1 h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},z_={class:"card"},O_={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},B_={class:"text-lg font-semibold text-gray-900 dark:text-white"},I_={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},q_={class:"space-y-5 p-6"},N_={key:0,class:"flex items-center gap-2 text-gray-500"},W_={class:"flex items-center justify-between"},K_={class:"font-medium text-gray-900 dark:text-white"},G_={class:"text-sm text-gray-500 dark:text-gray-400"}
2,Q_={key:0,class:"space-y-4 border-t border-gray-100 pt-4 dark:border-dark-700"},Y_={class:"flex items-center justify-between"},J_={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},Z_={class:"text-xs text-gray-500 dark:text-gray-400"},X_={class:"flex items-center justify-between"},ep={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},tp={class:"text-xs text-gray-500 dark:text-gray-400"},ap={class:"flex items-center justify-between"},sp={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},np={class:"text-xs text-gray-500 dark:text-gray-400"},ip={key:0,class:"ml-4 space-y-3 border-l-2 border-gray-200 pl-4 dark:border-dark-600"},op={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},lp={class:"text-xs text-gray-500 dark:text-gray-400"},rp=["onUpdate:modelValue","placeholder"],dp=["onClick"],cp={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},up=["disabled"],mp={key:0,class:"mr-1 h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},_p={class:"card"},pp={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},gp={class:"text-lg font-semibold text-gray-900 dark:text-white"},yp={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},bp={class:"space-y-5 p-6"},hp={key:0,class:"flex items-center gap-2 text-gray-500"},xp={class:"mb-3 flex items-center gap-2"},fp={class:"text-sm font-medium text-gray-900 dark:text-white"},kp={class:"rounded bg-gray-100 px-2 py-0.5 text-xs text-gray-500 dark:bg-dark-700 dark:text-gray-400"},vp={class:"grid grid-cols-1 gap-4 sm:grid-cols-2"},wp={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Cp={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Vp={key:0,class:"mt-3"},Up={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Sp=["onUpdate:modelValue","placeholder"],Pp={class:"mt-1 text-xs text-gray-400 dark:text-gray-500"},$p={key:1,class:"mt-3"},Ep={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Ap={class:"flex flex-wrap gap-2"},Tp=["onClick","title"],Fp={class:"mt-3"},Mp={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},Lp={class:"mb-2 text-xs text-gray-400 dark:text-gray-500"},Rp=["onUpdate:modelValue","placeholder"],Hp=["onClick"],Dp=["onClick"],jp={class:"flex flex-wrap items-center gap-1.5"},zp={class:"text-xs text-gray-400 dark:text-gray-500"},Op=["onClick"],Bp={key:2,class:"mt-3"},Ip={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},qp={class:"mt-1 text-xs text-gray-400 dark:text-gray-500"},Np={key:0,class:"mt-2"},Wp=["onUpdate:modelValue","placeholder"],Kp={class:"mt-1 text-xs text-gray-400 dark:text-gray-500"},Gp={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},Qp=["disabled"],Yp={key:0,class:"mr-1 h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},Jp={class:"card"},Zp={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"},e0={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},t0={class:"space-y-5 p-6"},a0={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"},s0={class:"mb-3 flex items-center justify-between"},n0={class:"text-sm font-medium text-gray-900 dark:text-white"},i0=["onClick","title"],o0=["data-testid"],l0={class:"font-medium text-gray-700 dark:text-gray-300"},r0={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"},d0={class:"font-medium text-gray-700 dark:text-gray-300"},c0={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"},u0={class:"grid grid-cols-1 gap-4 md:grid-cols-3"},m0={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},_0={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},p0={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},g0={class:"mt-3"},y0={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},b0={class:"mb-2 text-xs text-gray-400 dark:text-gray-500"},h0={key:0,class:"mt-3"},x0={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},f0=["onUpdate:modelValue","placeholder"],k0={class:"mt-1 text-xs text-gray-400 dark:text-gray-500"},v0=["aria-labelledby","aria-describedby"],w0=["id"],C0=["id"],V0=["onUpdate:modelValue","placeholder"],U0=["onClick"],S0=["onClick"],P0={key:1,class:"mt-3"},$0={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},E0={class:"mt-1 text-xs text-gray-400 dark:text-gray-500"},A0={key:0,class:"mt-2"},T0=["onUpdate:modelValue","placeholder"],F0={class:"mt-2 text-xs text-gray-400 dark:text-gray-500"},M0={class:"space-y-6"},L0={class:"card"},R0={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},H0={class:"text-lg font-semibold text-gray-900 dark:text-white"},D0={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},j0={class:"space-y-5 p-6"},z0={class:"flex items-center justify-between"},O0={class:"font-medium text-gray-900 dark:text-white"},B0={class:"text-sm text-gray-500 dark:text-gray-400"},I0={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},q0={class:"font-medium text-gray-900 dark:text-white"},N0={class:"text-sm text-gray-500 dark:text-gray-400"},W0={class:"border-t border-gray-100 pt-4 dark:border-dark-700"},K0={class:"font-medium text-gray-900 dark:text-white"},G0={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Q0={class:"mt-3 rounded-lg border border-gray-300 bg-white p-2 dark:border-dark-500 dark:bg-dark-700"},Y0={class:"flex flex-wrap items-center gap-2"},J0=["onClick"],Z0={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"},X0=["placeholder"],eg={class:"mt-2 text-xs text-gray-500 dark:text-gray-400"},tg={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},ag={class:"font-medium text-gray-900 dark:text-white"},sg={class:"text-sm text-gray-500 dark:text-gray-400"},ng={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},ig={class:"font-medium text-gray-900 dark:text-white"},og={class:"text-sm text-gray-500 dark:text-gray-400"},lg={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},rg={class:"font-medium text-gray-900 dark:text-white"},dg={class:"text-sm text-gray-500 dark:text-gray-400"},cg={key:0,class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},ug={class:"font-medium text-gray-900 dark:text-white"},mg={class:"text-sm text-gray-500 dark:text-gray-400"},_g={key:1,class:"border-t border-gray-100 pt-4 dark:border-dark-700"},pg={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},gg=["placeholder"],yg={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},bg={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},hg={class:"font-medium text-gray-900 dark:text-white"},xg={class:"text-sm text-gray-500 dark:text-gray-400"}
vendor: 12,251 bytes, line 2
2,fg={key:0,class:"mt-2 text-sm text-amber-600 dark:text-amber-400"},kg={class:"border-t border-gray-100 pt-4 dark:border-dark-700","data-testid":"passkey-settings"},vg={class:"flex items-start justify-between gap-4"},wg={class:"font-medium text-gray-900 dark:text-white"},Cg={class:"text-sm text-gray-500 dark:text-gray-400"},Vg={class:"font-medium"},Ug={class:"mt-1 break-all"},Sg={class:"mt-1 break-all"},Pg={key:0,class:"mt-2"},$g={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},Eg={class:"font-medium text-gray-900 dark:text-white"},Ag={class:"text-sm text-gray-500 dark:text-gray-400"},Tg={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},Fg={class:"font-medium text-gray-900 dark:text-white"},Mg={class:"text-sm text-gray-500 dark:text-gray-400"},Lg={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},Rg={class:"font-medium text-gray-900 dark:text-white"},Hg={class:"text-sm text-gray-500 dark:text-gray-400"},Dg={class:"card"},jg={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},zg={class:"text-lg font-semibold text-gray-900 dark:text-white"},Og={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Bg={class:"space-y-5 p-6"},Ig={class:"flex items-center justify-between gap-4"},qg={class:"font-medium text-gray-900 dark:text-white"},Ng={class:"text-sm text-gray-500 dark:text-gray-400"},Wg={key:0,class:"border-t border-gray-100 pt-4 dark:border-dark-700"},Kg={for:"forwarded-client-ip-headers",class:"font-medium text-gray-900 dark:text-white"},Gg={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Qg={class:"mt-3 rounded-lg border border-gray-300 bg-white p-2 dark:border-dark-500 dark:bg-dark-700"},Yg={class:"flex flex-wrap items-center gap-2"},Jg=["aria-label","onClick"],Zg={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"},Xg=["placeholder"],ey={class:"mt-2 text-xs text-gray-500 dark:text-gray-400"},ty={class:"card"},ay={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},sy={class:"flex items-center gap-2"},ny={class:"text-lg font-semibold text-gray-900 dark:text-white"},iy={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},oy={class:"space-y-5 p-6"},ly={key:0,class:"flex items-center gap-2 text-gray-500"},ry={class:"rounded-lg border border-sky-200 bg-sky-50 p-4 dark:border-sky-800 dark:bg-sky-900/20"},dy={class:"flex items-start"},cy={class:"ml-3 text-sm text-sky-700 dark:text-sky-300"},uy={class:"flex items-center justify-between"},my={class:"font-medium text-gray-900 dark:text-white"},_y={class:"text-sm text-gray-500 dark:text-gray-400"},py={key:0,class:"space-y-5 border-t border-gray-100 pt-4 dark:border-dark-700"},gy={class:"grid grid-cols-1 gap-6 sm:grid-cols-2"},yy={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},by={class:"flex items-center gap-2"},hy={class:"text-sm text-gray-500 dark:text-gray-400"},xy={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},fy={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},ky={class:"flex items-center gap-2"},vy={class:"text-sm text-gray-500 dark:text-gray-400"},wy={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Cy={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Vy={class:"flex items-center gap-2"},Uy={class:"text-sm text-gray-500 dark:text-gray-400"},Sy={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Py={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},$y={class:"font-medium text-gray-900 dark:text-white"},Ey={class:"text-sm text-gray-500 dark:text-gray-400"},Ay={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},Ty=["disabled"],Fy={key:0,class:"mr-1 h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},My={class:"card"},Ly={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Ry={class:"text-lg font-semibold text-gray-900 dark:text-white"},Hy={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Dy={class:"space-y-5 p-6"},jy={class:"flex items-center justify-between"},zy={class:"font-medium text-gray-900 dark:text-white"},Oy={class:"text-sm text-gray-500 dark:text-gray-400"},By={key:0,class:"border-t border-gray-100 pt-4 dark:border-dark-700"},Iy={class:"mb-6"},qy={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Ny={class:"grid grid-cols-3 gap-2 rounded-lg bg-gray-100 p-1 dark:bg-dark-700"},Wy={key:0,class:"grid grid-cols-1 gap-6"},Ky={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"},Qy={href:"https://dash.cloudflare.com/",target:"_blank",class:"text-primary-600 hover:text-primary-500"},Yy={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Jy={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Zy={key:1},Xy={class:"mb-6 max-w-sm"},eb={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},tb={class:"grid grid-cols-2 gap-2 rounded-lg bg-gray-100 p-1 dark:bg-dark-700"},ab={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},sb={class:"grid grid-cols-1 gap-6 md:grid-cols-2"},nb={class:"md:col-span-2"},ib={class:"text-sm font-semibold text-gray-900 dark:text-white"},ob={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},lb={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},rb={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},db=["placeholder"],cb={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},ub={class:"border-t border-gray-100 pt-5 md:col-span-2 dark:border-dark-700"},mb={class:"text-sm font-semibold text-gray-900 dark:text-white"},_b={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},pb={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},gb=["placeholder"],yb={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},bb={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},hb=["placeholder"],xb={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},fb={class:"mt-5 text-xs text-gray-500 dark:text-gray-400"},kb={class:"mt-2 text-xs text-gray-500 dark:text-gray-400"},vb={class:"mt-3 flex flex-wrap gap-x-4 gap-y-2 text-sm"},wb=["href"],Cb=["href"],Vb=["href"],Ub={key:2,class:"grid grid-cols-1 gap-6"},Sb={class:"grid grid-cols-1 gap-6 sm:grid-cols-2"},Pb={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},$b={class:"grid grid-cols-2 gap-2 rounded-lg bg-gray-100 p-1 dark:bg-dark-700"},Eb={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Ab={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Tb={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Fb={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Mb={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Lb={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Rb={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Hb={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Db={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},jb={class:"card"},zb={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Ob={class:"text-lg font-semibold text-gray-900 dark:text-white"},Bb={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Ib={class:"space-y-5 p-6"},qb={class:"flex items-center justify-between"},Nb={class:"font-medium text-gray-900 dark:text-white"},Wb={class:"text-sm text-gray-500 dark:text-gray-400"},Kb={key:0,class:"border-t border-gray-100 pt-4 dark:border-dark-700"},Gb={class:"grid grid-cols-1 gap-6"},Qb={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Yb=["placeholder"],Jb={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Zb={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Xb=["placeholder"],eh={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},th={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},ah=["placeholder"],sh={class:"mt-2 flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-3"},nh={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"},ih={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},oh={class:"card"},lh={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},rh={class:"text-lg font-semibold text-gray-900 dark:text-white"},dh={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},ch={class:"space-y-6 p-6"},uh={class:"grid grid-cols-1 gap-6 xl:grid-cols-2"},mh={class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},_h={class:"flex items-start justify-between gap-4"},ph={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},gh={key:0,class:"mt-4 space-y-4"},yh={class:"rounded-lg bg-gray-50 px-3 py-2 text-xs text-gray-600 dark:bg-dark-800 dark:text-gray-300"},bh={class:"grid grid-cols-1 gap-4 lg:grid-cols-2"},hh=["placeholder"],xh={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},fh={class:"mt-2 flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-3"},kh={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"},vh={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},wh={class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},Ch={class:"flex items-start justify-between gap-4"},Vh={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Uh={key:0,class:"mt-4 space-y-4"},Sh={class:"rounded-lg bg-gray-50 px-3 py-2 text-xs text-gray-600 dark:bg-dark-800 dark:text-gray-300"},Ph={class:"grid grid-cols-1 gap-4 lg:grid-cols-2"},$h=["placeholder"],Eh={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Ah={class:"mt-2 flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-3"},Th={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"},Fh={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Mh={class:"card"},Lh={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Rh={class:"text-lg font-semibold text-gray-900 dark:text-white"},Hh={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Dh={class:"space-y-5 p-6"},jh={class:"flex items-center justify-between"},zh={class:"font-medium text-gray-900 dark:text-white"},Oh={class:"text-sm text-gray-500 dark:text-gray-400"},Bh={key:0,class:"space-y-6 border-t border-gray-100 pt-4 dark:border-dark-700"},Ih={class:"space-y-4"},qh={class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},Nh={class:"flex items-start justify-between gap-4"},Wh={class:"font-medium text-gray-900 dark:text-white"},Kh={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Gh={key:0,class:"mt-4 grid grid-cols-1 gap-4 lg:grid-cols-2"},Qh={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Yh=["placeholder"],Jh={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Zh=["placeholder"],Xh={class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},ex={class:"flex items-start justify-between gap-4"},tx={class:"font-medium text-gray-900 dark:text-white"},ax={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},sx={key:0,class:"mt-4 grid grid-cols-1 gap-4 lg:grid-cols-2"},nx={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},ix=["placeholder"],ox={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},lx=["placeholder"],rx={class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},dx={class:"flex items-start justify-between gap-4"},cx={class:"font-medium text-gray-900 dark:text-white"},ux={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},mx={key:0,class:"mt-4 grid grid-cols-1 gap-4 lg:grid-cols-2"},_x={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},px=["placeholder"],gx={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"}
2,yx=["placeholder"],bx={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"},hx={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},xx={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},fx=["placeholder"],kx={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},vx={class:"mt-2 flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-3"},wx={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"},Cx={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Vx=["placeholder"],Ux={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Sx={class:"card"},Px={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},$x={class:"text-lg font-semibold text-gray-900 dark:text-white"},Ex={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Ax={class:"space-y-5 p-6"},Tx={class:"flex items-center justify-between"},Fx={class:"font-medium text-gray-900 dark:text-white"},Mx={class:"text-sm text-gray-500 dark:text-gray-400"},Lx={key:0,class:"border-t border-gray-100 pt-4 dark:border-dark-700"},Rx={class:"grid grid-cols-1 gap-6"},Hx={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Dx=["placeholder"],jx={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},zx={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Ox=["placeholder"],Bx={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Ix={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},qx=["placeholder"],Nx={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Wx={class:"border-t border-gray-100 pt-4 dark:border-dark-700"},Kx={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Gx={class:"mb-3 text-xs text-gray-500 dark:text-gray-400"},Qx={class:"space-y-2"},Yx={class:"flex cursor-pointer items-center gap-3"},Jx={class:"text-sm text-gray-700 dark:text-gray-300"},Zx={class:"flex cursor-pointer items-center gap-3"},Xx={class:"text-sm text-gray-700 dark:text-gray-300"},e1={key:0,class:"flex items-center justify-between pt-4 border-t border-gray-100 dark:border-dark-700"},t1={class:"font-medium text-gray-900 dark:text-white"},a1={class:"text-sm text-gray-500 dark:text-gray-400"},s1={key:1,class:"pt-4 border-t border-gray-100 dark:border-dark-700 space-y-2"},n1={class:"flex items-center justify-between"},i1={class:"font-medium text-gray-900 dark:text-white"},o1={class:"text-sm text-gray-500 dark:text-gray-400"},l1={key:0,class:"space-y-2"},r1={class:"flex items-center gap-2"},d1={class:"text-sm text-gray-600 dark:text-gray-400 whitespace-nowrap min-w-[5rem]"},c1={class:"flex items-center gap-2"},u1={class:"text-sm text-gray-600 dark:text-gray-400 whitespace-nowrap min-w-[5rem]"},m1=["placeholder"],_1={key:1,class:"text-xs text-gray-400 dark:text-gray-500"},p1={key:2,class:"pt-4 border-t border-gray-100 dark:border-dark-700 space-y-2"},g1={class:"flex items-center justify-between"},y1={class:"font-medium text-gray-900 dark:text-white"},b1={class:"text-sm text-gray-500 dark:text-gray-400"},h1={class:"text-xs text-amber-600 dark:text-amber-400 mt-1"},x1={key:0,class:"space-y-2"},f1={class:"flex items-center gap-2"},k1={class:"text-sm text-gray-600 dark:text-gray-400 whitespace-nowrap min-w-[5rem]"},v1={class:"flex items-center gap-2"},w1={class:"text-sm text-gray-600 dark:text-gray-400 whitespace-nowrap min-w-[5rem]"},C1=["placeholder"],V1={key:1,class:"text-xs text-gray-400 dark:text-gray-500"},U1={key:3,class:"pt-4 border-t border-gray-100 dark:border-dark-700 space-y-2"},S1={class:"flex items-center justify-between"},P1={class:"font-medium text-gray-900 dark:text-white"},$1={class:"text-sm text-gray-500 dark:text-gray-400"},E1={class:"text-xs text-amber-600 dark:text-amber-400 mt-1"},A1={key:0,class:"space-y-2"},T1={class:"flex items-center gap-2"},F1={class:"text-sm text-gray-600 dark:text-gray-400 whitespace-nowrap min-w-[5rem]"},M1={class:"flex items-center gap-2"},L1={class:"text-sm text-gray-600 dark:text-gray-400 whitespace-nowrap min-w-[5rem]"},R1=["placeholder"],H1={key:1,class:"text-xs text-gray-400 dark:text-gray-500"},D1={class:"card"},j1={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},z1={class:"text-lg font-semibold text-gray-900 dark:text-white"},O1={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},B1={class:"space-y-5 p-6"},I1={class:"flex items-center justify-between"},q1={class:"font-medium text-gray-900 dark:text-white"},N1={class:"text-sm text-gray-500 dark:text-gray-400"},W1={key:0,class:"space-y-6 border-t border-gray-100 pt-4 dark:border-dark-700"},K1={class:"grid grid-cols-1 gap-6 lg:grid-cols-3"},G1={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Q1=["placeholder"],Y1={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},J1=["placeholder"],Z1={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},X1=["placeholder"],ef={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},tf={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},af={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},sf=["placeholder"],nf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},of=["placeholder"],lf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},rf=["placeholder"],df={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},cf=["placeholder"],uf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},mf=["placeholder"],_f={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},pf=["placeholder"],gf={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},yf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},bf=["placeholder"],hf={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},xf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},ff=["placeholder"],kf={class:"mt-2 flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-3"},vf={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"},wf={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Cf={class:"lg:col-span-2"},Vf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Uf=["placeholder"],Sf={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Pf={class:"grid grid-cols-1 gap-6 lg:grid-cols-3"},$f={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Ef={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Af={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Tf=["placeholder"],Ff={class:"grid grid-cols-1 gap-6 lg:grid-cols-3"},Mf={class:"flex items-center justify-between rounded border border-gray-200 px-4 py-3 dark:border-dark-700"},Lf={class:"font-medium text-gray-900 dark:text-white"},Rf={class:"flex items-center justify-between rounded border border-gray-200 px-4 py-3 dark:border-dark-700"},Hf={class:"font-medium text-gray-900 dark:text-white"},Df={class:"flex items-center justify-between rounded border border-gray-200 px-4 py-3 dark:border-dark-700"},jf={class:"font-medium text-gray-900 dark:text-white"},zf={class:"grid grid-cols-1 gap-6 lg:grid-cols-3"},Of={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Bf=["placeholder"],If={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},qf=["placeholder"],Nf={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Wf=["placeholder"],Kf={class:"space-y-6"},Gf={class:"card"},Qf={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Yf={class:"text-lg font-semibold text-gray-900 dark:text-white"},Jf={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Zf={class:"space-y-6 p-6"},Xf={class:"grid grid-cols-1 gap-6 md:grid-cols-2"},ek={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},tk={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},ak={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},sk={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},nk={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},ik={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},ok={class:"border-t border-gray-100 pt-4 dark:border-dark-700"},lk={class:"mb-3 flex items-center justify-between"},rk={class:"font-medium text-gray-900 dark:text-white"},dk={class:"text-sm text-gray-500 dark:text-gray-400"},ck=["disabled"],uk={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"},mk={key:1,class:"space-y-3"},_k={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},pk={key:1,class:"text-gray-400"},gk={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},yk=["onUpdate:modelValue"],bk={class:"flex items-end"},hk=["onClick"],xk={class:"border-t border-gray-100 pt-4 dark:border-dark-700"},fk={class:"mb-3"},kk={class:"font-medium text-gray-900 dark:text-white"},vk={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"}
vendor: 4,795 bytes, line 2
2,wk={class:"mt-0.5 text-xs text-amber-600 dark:text-amber-400"},Ck={class:"overflow-x-auto"},Vk={class:"min-w-full text-sm"},Uk={class:"text-left text-xs text-gray-500 dark:text-gray-400"},Sk={class:"pb-2 pr-4 font-medium"},Pk={class:"pb-2 pr-4 font-medium"},$k={class:"pb-2 pr-4 font-medium"},Ek={class:"pb-2 font-medium"},Ak={class:"space-y-2"},Tk={class:"pr-4 py-1"},Fk={class:"font-mono text-xs text-gray-700 dark:text-gray-300"},Mk={class:"pr-4 py-1"},Lk=["onUpdate:modelValue","placeholder"],Rk={class:"pr-4 py-1"},Hk=["onUpdate:modelValue","placeholder"],Dk={class:"py-1"},jk=["onUpdate:modelValue","placeholder"],zk={class:"card"},Ok={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Bk={class:"text-lg font-semibold text-gray-900 dark:text-white"},Ik={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},qk={class:"space-y-6 p-6"},Nk={class:"flex items-center justify-between rounded border border-gray-200 px-4 py-3 dark:border-dark-700"},Wk={class:"font-medium text-gray-900 dark:text-white"},Kk={class:"text-sm text-gray-500 dark:text-gray-400"},Gk={class:"space-y-4"},Qk={class:"flex items-center justify-between gap-4"},Yk={class:"font-medium text-gray-900 dark:text-white"},Jk={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Zk=["data-testid"],Xk={class:"text-sm text-gray-500 dark:text-gray-400"},ev={class:"grid grid-cols-1 gap-4 md:grid-cols-2"},tv={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},av=["onUpdate:modelValue"],sv={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},nv=["onUpdate:modelValue"],iv={class:"flex items-center justify-between rounded border border-gray-200 px-4 py-3 dark:border-dark-700"},ov={class:"font-medium text-gray-900 dark:text-white"},lv={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},rv={class:"mb-3 flex items-center justify-between"},dv={class:"font-medium text-gray-900 dark:text-white"},cv={class:"text-sm text-gray-500 dark:text-gray-400"},uv=["onClick","disabled"],mv={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"},_v={key:1,class:"space-y-3"},pv={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},gv={key:1,class:"text-gray-400"},yv={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},bv=["onUpdate:modelValue"],hv={class:"flex items-end"},xv=["onClick"],fv={class:"border-t border-gray-100 pt-4 dark:border-dark-700"},kv={class:"mb-3"},vv={class:"font-medium text-gray-900 dark:text-white"},wv={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Cv={class:"overflow-x-auto"},Vv={class:"min-w-full text-sm"},Uv={class:"text-left text-xs text-gray-500 dark:text-gray-400"},Sv={class:"pb-2 pr-4 font-medium"},Pv={class:"pb-2 pr-4 font-medium"},$v={class:"pb-2 pr-4 font-medium"},Ev={class:"pb-2 font-medium"},Av={class:"pr-4 py-1"},Tv={class:"font-mono text-xs text-gray-700 dark:text-gray-300"},Fv={class:"pr-4 py-1"},Mv=["onUpdate:modelValue","placeholder"],Lv={class:"pr-4 py-1"},Rv=["onUpdate:modelValue","placeholder"],Hv={class:"py-1"},Dv=["onUpdate:modelValue","placeholder"],jv={class:"space-y-6"},zv={class:"card"},Ov={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Bv={class:"text-lg font-semibold text-gray-900 dark:text-white"},Iv={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},qv={class:"p-6"},Nv={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Wv=["placeholder"],Kv={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Gv={class:"mt-4"},Qv={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},Yv=["placeholder"],Jv={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Zv={class:"card"},Xv={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},e2={class:"text-lg font-semibold text-gray-900 dark:text-white"},t2={class:"p-6 space-y-4"},a2={class:"text-base font-semibold text-gray-900 dark:text-white"},s2={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},n2={class:"grid gap-4 sm:grid-cols-2"},i2={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},o2=["placeholder"],l2={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},r2=["placeholder"],d2={class:"text-xs text-gray-500 dark:text-gray-400"},c2={class:"block text-sm font-medium text-gray-700 dark:text-gray-300"},u2={class:"mb-2 mt-1 text-xs text-gray-500 dark:text-gray-400"},m2=["onUpdate:modelValue"],_2={value:"header_exact"},p2={value:"header_prefix"},g2={value:"body_path"},y2=["onUpdate:modelValue","placeholder"],b2={class:"flex shrink-0 items-center gap-1 text-xs text-gray-600 dark:text-gray-400"},h2=["onUpdate:modelValue"],x2=["onClick"],f2={key:0,class:"mt-2 text-xs text-amber-600 dar
2k:text-amber-500"},k2={class:"flex items-center justify-between"},v2={class:"pr-4"},w2={class:"block text-sm font-medium text-gray-700 dark:text-gray-300"},C2={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},V2={class:"block text-sm font-medium text-gray-700 dark:text-gray-300"},U2={class:"mb-2 mt-1 text-xs text-gray-500 dark:text-gray-400"},S2=["onUpdate:modelValue","placeholder"],P2=["onUpdate:modelValue","placeholder"],$2=["onClick"],E2={class:"block text-sm font-medium text-gray-700 dark:text-gray-300"},A2={class:"mb-2 mt-1 text-xs text-gray-500 dark:text-gray-400"},T2=["onUpdate:modelValue","placeholder"],F2=["onUpdate:modelValue","placeholder"],M2=["title"],L2=["onUpdate:modelValue"],R2=["onClick"],H2={class:"card","data-testid":"upstream-billing-probe-settings"},D2={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},j2={class:"text-lg font-semibold text-gray-900 dark:text-white"},z2={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},O2={class:"space-y-5 p-6"},B2={key:0,class:"flex items-center gap-2 text-gray-500"},I2={class:"flex items-center justify-between gap-4"},q2={class:"font-medium text-gray-900 dark:text-white"},N2={class:"text-sm text-gray-500 dark:text-gray-400"},W2={key:0,class:"border-t border-gray-100 pt-4 dark:border-dark-700"},K2={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300",for:"upstream-billing-probe-interval"},G2=["onKeydown"],Q2={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Y2={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},J2=["disabled"],Z2={class:"card","data-testid":"ollama-cloud-usage-global-settings"},X2={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},ew={class:"text-lg font-semibold text-gray-900 dark:text-white"},tw={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},aw={class:"space-y-5 p-6"},sw={key:0,class:"flex items-center gap-2 text-gray-500"},nw={class:"flex items-center justify-between gap-4"},iw={class:"font-medium text-gray-900 dark:text-white"},ow={class:"text-sm text-gray-500 dark:text-gray-400"},lw={key:0,class:"space-y-4 border-t border-gray-100 pt-4 dark:border-dark-700"},rw={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300",for:"ollama-cloud-usage-debounce"},dw=["onKeydown"],cw={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},uw={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300",for:"ollama-cloud-usage-interval"},mw=["onKeydown"],_w={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},pw={class:"flex justify-end border-t border-gray-100 pt-4 dark:border-dark-700"},gw=["disabled"],yw={class:"card"},bw={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},hw={class:"text-lg font-semibold text-gray-900 dark:text-white"},xw={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},fw={class:"space-y-5 p-6"},kw={class:"flex items-center justify-between"},vw={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},ww={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Cw={class:"border-t border-gray-100 pt-4 dark:border-dark-700"},Vw={class:"mb-3"},Uw={class:"font-medium text-gray-900 dark:text-white"},Sw={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Pw={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},$w={class:"mt-0.5 text-xs text-amber-600 dark:text-amber-400"},Ew={class:"grid grid-cols-1 gap-4 sm:grid-cols-2 xl:grid-cols-3"},Aw={class:"flex items-start justify-between gap-3"},Tw={class:"font-mono text-sm font-medium text-gray-900 dark:text-white"},Fw={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Mw=["onUpdate:modelValue","data-testid"],Lw={key:0,class:"flex items-center justify-between border-t border-gray-100 pt-5 dark:border-dark-700"},Rw={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},Hw={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Dw={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"},jw={class:"min-w-0"},zw={class:"text-sm font-medium text-gray-700 dark:text-gray-300",for:"openai-oauth-scheduling-rate-multiplier"},Ow={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Bw={class:"relative w-full shrink-0 sm:w-32"},Iw={class:"flex items-center justify-between border-t border-gray-100 pt-5 dark:border-dark-700"},qw={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},Nw={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Ww={key:2,class:"flex items-center justify-between border-t border-gray-100 pt-5 dark:border-dark-700"},Kw={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},Gw={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"}
2,Qw={key:3,class:"flex items-center justify-between border-t border-gray-100 pt-5 dark:border-dark-700"},Yw={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},Jw={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Zw={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"},Xw={class:"min-w-0"},e4={class:"text-sm font-medium text-gray-700 dark:text-gray-300",for:"openai-oauth-scheduling-rate-multiplier"},t4={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},a4={class:"relative w-full shrink-0 sm:w-32"},s4={key:5,class:"border-t border-gray-100 pt-5 dark:border-dark-700"},n4={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},i4={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},o4={class:"mt-4 grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-5"},l4={class:"text-xs font-medium text-gray-600 dark:text-gray-400"},r4=["onUpdate:modelValue","placeholder"],d4={class:"card"},c4={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},u4={class:"text-lg font-semibold text-gray-900 dark:text-white"},m4={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},_4={class:"space-y-5 p-6"},p4={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"},g4={for:"grok-default-text-model",class:"text-sm font-medium text-gray-700 dark:text-gray-300"},y4={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},b4={class:"flex items-center justify-between gap-5 md:min-w-72"},h4={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},x4={class:"mt-0.5 max-w-sm text-xs text-gray-500 dark:text-gray-400"},f4={class:"md:col-span-2"},k4={for:"grok-default-base-url-mode",class:"text-sm font-medium text-gray-700 dark:text-gray-300"},v4={value:"cli"},w4={value:"api"},C4={value:"us-east-1"},V4={value:"us-west-2"},U4={value:"eu-west-1"},S4={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},P4={class:"border-b border-gray-100 pb-5 dark:border-dark-700 md:col-span-2"},$4={for:"openai-ttft-mode",class:"text-sm font-medium text-gray-700 dark:text-gray-300"},E4={value:"semantic"},A4={value:"visible"},T4={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},F4={class:"flex items-center justify-between"},M4={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},L4={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},R4={class:"flex items-center justify-between"},H4={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},D4={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},j4={class:"flex items-center justify-between"},z4={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},O4={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},B4={class:"flex items-center justify-between"},I4={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},q4={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},N4={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},W4={class:"space-y-3"},K4={class:"min-w-0"},G4={class:"text-sm font-medium text-gray-900 dark:text-white"},Q4={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Y4={class:"flex items-center gap-2"},J4=["title","aria-label","onClick"],Z4=["disabled","onClick"],X4=["disabled","onClick"],e3=["onClick"],t3={class:"grid gap-3 md:grid-cols-2"},a3={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-300"},s3={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-300"},n3={class:"mt-3"},i3={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-300"},o3=["onUpdate:modelValue","onInput"],l3={class:"mt-3 grid gap-3 md:grid-cols-[minmax(0,1fr)_160px]"},r3={class:"flex items-center justify-between gap-4"},d3={class:"text-xs font-medium text-gray-600 dark:text-gray-300"},c3={key:0},u3={class:"mt-3 flex flex-wrap gap-2"},m3={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},_3={class:"flex items-center justify-between"},p3={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},g3={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},y3={class:"flex items-center justify-between"},b3={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},h3={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},x3={class:"flex items-center justify-between"},f3={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},k3={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},v3={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},w3=["placeholder"],C3={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},V3={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},U3=["placeholder"],S3={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},P3={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},$3=["placeholder"],E3={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},A3={class:"flex items-center justify-between"},T3={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},F3={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},M3={key:0,class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},L3={class:"card"},R3={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},H3={class:"text-lg font-semibold text-gray-900 dark:text-white"},D3={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},j3={class:"space-y-5 p-6"},z3={class:"flex items-center justify-between"},O3={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},B3={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},I3={key:0,class:"space-y-4"},q3={class:"flex items-center justify-between"},N3={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},W3={key:0,class:"rounded-lg border border-dashed border-gray-300 p-4 text-center text-sm text-gray-400 dark:border-dark-600"},K3=["onClick"],G3={class:"flex items-center gap-3"},Q3={class:"text-xs text-gray-400"},Y3={key:0,class:"text-xs text-green-500"},J3=["onClick"],Z3={key:0,class:"space-y-3 border-t border-gray-100 px-4 pb-4 pt-3 dark:border-dark-700"},X3={class:"text-xs text-gray-500"},e5={class:"relative"},t5=["onUpdate:modelValue","type","placeholder"],a5={key:0,class:"absolute inset-y-0 right-0 flex items-center pr-1.5"},s5=["title","onClick"],n5={key:0,class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},i5={key:1,class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},o5=["title","disabled","onClick"],l5={class:"grid grid-cols-2 gap-3"},r5={class:"text-xs text-gray-500"},d5=["onUpdate:modelValue"],c5={class:"mt-0.5 text-xs text-gray-400"},u5={class:"text-xs text-gray-500"},m5=["value","onInput"],_5={class:"mt-0.5 text-xs text-gray-400"},p5={class:"flex items-center gap-2"},g5={class:"text-xs text-gray-500"},y5={key:0,class:"flex-1 rounded-full bg-gray-200 dark:bg-dark-600",style:{height:"6px"}},b5={key:1,class:"flex-1"},h5={class:"text-xs text-gray-500"},x5=["onClick"],f5={class:"flex items-end gap-3"},k5={class:"flex-1"},v5={class:"text-xs text-gray-500"},w5={class:"mx-4 w-full max-w-lg rounded-xl bg-white p-6 shadow-xl dark:bg-dark-800"},C5={class:"mb-4 text-lg font-semibold text-gray-900 dark:text-white"},V5={class:"flex items-center gap-2"},U5=["placeholder"],S5=["disabled"],P5={key:0,class:"mt-4 max-h-80 overflow-y-auto rounded-lg bg-gray-50 p-4 dark:bg-dark-700"},$5={class:"mb-2 text-sm font-medium text-gray-700 dark:text-gray-300"},E5={key:0,class:"text-sm text-gray-400"},A5=["href"],T5={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},F5={class:"mt-4 flex justify-end"},M5={class:"card"},L5={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},R5={class:"text-lg font-semibold text-gray-900 dark:text-white"},H5={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},D5={class:"space-y-4 p-6"},j5={class:"flex items-center justify-between"},z5={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},O5={class:"text-xs text-gray-500 dark:text-gray-400"},B5={class:"toggle"},I5={class:"space-y-6"},q5={class:"card"},N5={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},W5={class:"text-lg font-semibold text-gray-900 dark:text-white"},K5={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},G5={class:"space-y-6 p-6"},Q5={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"},Y5={class:"text-sm font-medium text-gray-900 dark:text-white"},J5={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Z5={class:"grid grid-cols-1 gap-6 md:grid-cols-2"},X5={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},e8=["placeholder"],t8={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},a8={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},s8=["placeholder"],n8={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},i8={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},o8=["placeholder"],l8={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},r8={class:"border-t border-gray-100 pt-4 dark:border-dark-700"},d8={class:"text-sm font-medium text-gray-900 dark:text-white"},c8={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},u8={class:"mt-4 grid grid-cols-1 gap-6 md:grid-cols-2"},m8={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},_8={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},p8={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},g8=["placeholder"],y8={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},b8={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},h8={class:"mb-3 text-xs text-gray-500 dark:text-gray-400"},x8={class:"space-y-3"},f8={class:"mb-3 flex items-center justify-between"},k8={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},v8=["onClick"],w8={class:"grid grid-cols-1 gap-3 sm:grid-cols-2"},C8={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},V8=["onUpdate:modelValue","placeholder"],U8={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},S8=["onUpdate:modelValue","placeholder"],P8={class:"sm:col-span-2"},$8={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},E8=["onUpdate:modelValue","placeholder"],A8={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},T8=["placeholder"],F8={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},M8={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},L8=["placeholder"],R8={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},H8={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},D8={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},j8=["placeholder"],z8={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"}
2,O8={class:"mt-2 text-xs text-amber-600 dark:text-amber-400"},B8={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},I8={class:"font-medium text-gray-900 dark:text-white"},q8={class:"text-sm text-gray-500 dark:text-gray-400"},N8={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},W8={class:"font-medium text-gray-900 dark:text-white"},K8={class:"text-sm text-gray-500 dark:text-gray-400"},G8={class:"card"},Q8={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Y8={class:"text-lg font-semibold text-gray-900 dark:text-white"},J8={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Z8={class:"space-y-4 p-6"},X8={class:"mb-3 flex items-center justify-between"},e6={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},t6={class:"flex items-center gap-2"},a6=["title","onClick"],s6=["title","onClick"],n6=["title","onClick"],i6={class:"grid grid-cols-1 gap-3 sm:grid-cols-2"},o6={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},l6=["onUpdate:modelValue","placeholder"],r6={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},d6=["onUpdate:modelValue"],c6={value:"user"},u6={value:"admin"},m6={class:"sm:col-span-2"},_6={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},p6=["onUpdate:modelValue","placeholder"],g6={class:"sm:col-span-2"},y6={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},b6={class:"space-y-6"},h6={class:"card"},x6={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},f6={class:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between"},k6={class:"text-lg font-semibold text-gray-900 dark:text-white"},v6={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},w6={class:"flex items-center gap-3"},C6={class:"text-sm text-gray-600 dark:text-gray-300"},V6={class:"space-y-6 p-6"},U6={class:"grid grid-cols-1 gap-5 lg:grid-cols-[minmax(0,1fr)_220px]"},S6={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},P6={class:"grid grid-cols-2 gap-2 rounded-lg bg-gray-100 p-1 dark:bg-dark-700"},$6={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},E6={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},A6={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},T6={class:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between"},F6={class:"text-sm font-medium text-gray-900 dark:text-white"},M6={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},L6={class:"mt-4 space-y-3"},R6={class:"mb-3 flex items-center justify-between gap-3"},H6={class:"flex min-w-0 items-center gap-3"},D6={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"},j6={class:"min-w-0"},z6={class:"truncate text-sm font-semibold text-gray-900 dark:text-white"},O6={class:"truncate text-xs text-gray-500 dark:text-gray-400"},B6=["disabled","onClick"],I6={class:"grid grid-cols-1 gap-3 lg:grid-cols-2"},q6={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},N6=["onUpdate:modelValue","placeholder"],W6={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},K6={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"},G6=["onUpdate:modelValue"],Q6={class:"mt-3"},Y6={class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},J6=["onUpdate:modelValue","placeholder"],Z6={class:"space-y-6"},X6={class:"card"},e7={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},t7={class:"text-lg font-semibold text-gray-900 dark:text-white"},a7={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},s7={class:"mt-1.5 text-xs"},n7={class:"space-y-5 p-6"},i7={class:"flex items-center justify-between"},o7={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},l7={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},r7={key:0,class:"space-y-5"},d7={class:"input-label"},c7={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"},u7={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},m7={class:"mt-1 text-xs text-gray-400 dark:text-gray-500"}
2,_7={key:0},p7={class:"input-label"},g7={class:"mt-1 text-xs text-gray-400"},y7={key:1,class:"flex items-start justify-between gap-4"},b7={class:"min-w-0"},h7={class:"text-sm font-medium text-gray-900 dark:text-white"},x7={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},f7={key:2,class:"flex items-start justify-between gap-4"},k7={class:"min-w-0"},v7={class:"text-sm font-medium text-gray-900 dark:text-white"},w7={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},C7={class:"card"},V7={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},U7={class:"text-lg font-semibold text-gray-900 dark:text-white"},S7={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},P7={class:"mt-1.5 text-xs"},$7={class:"space-y-5 p-6"},E7={class:"flex items-center justify-between"},A7={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},T7={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},F7={class:"card"},M7={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},L7={class:"text-lg font-semibold text-gray-900 dark:text-white"},R7={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},H7={class:"space-y-5 p-6"},D7={class:"flex items-center justify-between"},j7={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},z7={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},O7={key:0,class:"flex items-center justify-between"},B7={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},I7={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},q7={key:1},N7={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},W7={class:"mb-2 mt-0.5 text-xs text-gray-500 dark:text-gray-400"},K7={class:"card"},G7={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},Q7={class:"text-lg font-semibold text-gray-900 dark:text-white"},Y7={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},J7={class:"space-y-5 p-6"},Z7={class:"flex items-center justify-between gap-4"},X7={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},e9={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},t9={class:"card"},a9={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},s9={class:"text-lg font-semibold text-gray-900 dark:text-white"},n9={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},i9={class:"mt-1.5 text-xs"},o9={class:"space-y-5 p-6"},l9={class:"flex items-center justify-between"},r9={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},d9={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},c9={class:"flex items-center justify-between"},u9={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},m9={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},_9={key:0},p9={class:"input-label"},g9={class:"card"},y9={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},b9={class:"text-lg font-semibold text-gray-900 dark:text-white"},h9={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},x9={class:"space-y-5 p-6"},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:"space-y-6"},C9={class:"flex items-center justify-between"},V9={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},U9={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},S9={class:"input-label"},P9={class:"relative"},$9={class:"mt-1 text-xs text-gray-400"},E9={class:"input-label"},A9={class:"mt-1 text-xs text-gray-400"},T9={class:"input-label"},F9={class:"mt-1 text-xs text-gray-400"},M9={class:"input-label"},L9={class:"mt-1 text-xs text-gray-400"},R9={class:"border-t border-gray-100 pt-6 dark:border-dark-700"},H9={class:"mb-3 flex items-center justify-between"},D9={class:"text-sm font-semibold text-gray-900 dark:text-white"},j9={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},z9={class:"mb-3 flex items-center gap-2"},O9=["placeholder"],B9={class:"overflow-x-auto rounded-lg border border-gray-200 dark:border-dark-700"},I9={class:"min-w-full divide-y divide-gray-200 dark:divide-dark-700"},q9={class:"bg-gray-50 dark:bg-dark-800"},N9={class:"px-3 py-2 text-left"},W9=["checked"],K9={class:"px-3 py-2 text-left text-xs font-medium uppercase text-gray-500"},G9={class:"px-3 py-2 text-left text-xs font-medium uppercase text-gray-500"},Q9={class:"px-3 py-2 text-left text-xs font-medium uppercase text-gray-500"},Y9={class:"px-3 py-2 text-left text-xs font-medium uppercase text-gray-500"},J9={class:"px-3 py-2 text-left text-xs font-medium uppercase text-gray-500"},Z9={class:"divide-y divide-gray-200 bg-white dark:divide-dark-700 dark:bg-dark-900"},X9={key:0},eC={colspan:"6",class:"px-3 py-6 text-center text-sm text-gray-500"},tC={key:1},aC={colspan:"6",class:"px-3 py-6 text-center text-sm text-gray-500"},sC={class:"px-3 py-2"},nC=["checked","onChange"],iC={class:"px-3 py-2 text-sm text-gray-900 dark:text-white"},oC={class:"px-3 py-2 text-sm text-gray-600 dark:text-gray-300"},lC={class:"px-3 py-2 text-sm font-mono"},rC={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"},dC={class:"px-3 py-2 text-sm"},cC={key:0},uC={key:1,class:"text-gray-400"},mC={class:"px-3 py-2 text-sm"}
vendor: 7,509 bytes, line 2
2,_C={class:"flex items-center gap-2"},pC=["onClick"],gC=["onClick"],yC={key:0,class:"mt-3 flex items-center justify-between text-sm"},bC={class:"text-gray-500"},hC={class:"flex items-center gap-2"},xC=["disabled"],fC={class:"text-gray-500"},kC=["disabled"],vC={class:"w-full max-w-md rounded-lg bg-white p-6 shadow-xl dark:bg-dark-900"},wC={class:"mb-4 text-lg font-semibold"},CC={class:"space-y-4"},VC={key:0},UC={class:"input-label"},SC={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"},PC={class:"text-sm"},$C={class:"font-medium text-gray-900 dark:text-white"},EC={class:"ml-1 text-xs text-gray-500"},AC=["title"],TC=["placeholder"],FC={key:0,class:"mt-1 max-h-40 overflow-y-auto rounded border border-gray-200 dark:border-dark-700"},MC=["onClick"],LC={class:"text-xs text-gray-500"},RC={key:1},HC={class:"input-label"},DC=["value"],jC={class:"input-label"},zC=["placeholder"],OC={class:"mt-1 text-xs text-gray-400"},BC={class:"input-label"},IC={class:"relative"},qC=["placeholder"],NC={class:"mt-1 text-xs text-gray-400"},WC={class:"mt-6 flex items-center justify-between gap-3"},KC={key:0,class:"text-xs text-gray-500 dark:text-gray-400"},GC={key:1},QC={class:"flex gap-2"},YC=["disabled"],JC={class:"w-full max-w-md rounded-lg bg-white p-6 shadow-xl dark:bg-dark-900"},ZC={class:"mb-4 text-lg font-semibold"},XC={class:"mb-4 text-sm text-gray-500"},eV={class:"relative"},tV=["placeholder"],aV={class:"mt-2 text-xs text-gray-400"},sV={class:"mt-6 flex justify-end gap-2"},nV=["disabled"],iV={class:"space-y-6"},oV={class:"card"},lV={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},rV={class:"text-lg font-semibold text-gray-900 dark:text-white"},dV={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},cV=["href"],uV={class:"space-y-4 p-6"},mV={class:"flex items-center justify-between"},_V={class:"font-medium text-gray-900 dark:text-white"},pV={class:"text-sm text-gray-500 dark:text-gray-400"},gV={class:"grid grid-cols-1 gap-3 sm:grid-cols-3"},yV={class:"input-label"},bV={class:"input-label"},hV={class:"input-label"},xV={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"},fV={class:"grid grid-cols-2 gap-3 sm:grid-cols-5"},kV={class:"input-label"},vV=["value","placeholder"],wV={class:"input-label"},CV=["value","placeholder"],VV={class:"input-label"},UV=["value","placeholder"],SV={class:"input-label"},PV=["value"],$V={class:"mt-0.5 text-xs text-gray-400"},EV={class:"mt-1 text-xs font-medium text-primary-600 dark:text-primary-400"},AV={class:"input-label"},TV=["value","placeholder"],FV={class:"mt-0.5 text-xs text-gray-400"},MV={class:"input-label"},LV={class:"relative"},RV=["value"],HV={class:"mt-0.5 text-xs text-gray-400"},DV={key:0,class:"mt-1 text-xs font-medium text-primary-600 dark:text-primary-400"},jV={class:"input-label"},zV={class:"mt-0.5 text-xs text-gray-400"},OV={class:"flex flex-wrap items-end gap-4"},BV={class:"w-28"},IV={class:"input-label"},qV={class:"input-label"},NV={class:"input-label"},WV={class:"flex items-center gap-2"},KV=["disabled"],GV=["disabled"],QV={class:"input-label"},YV={class:"flex items-center gap-2"},JV={class:"text-sm text-gray-500 dark:text-gray-400"},ZV={class:"input-label"},XV={class:"flex items-center gap-2"},eU={class:"text-sm text-gray-500 dark:text-gray-400"},tU={class:"input-label"},aU={class:"mt-1.5 flex flex-wrap gap-2"},sU=["onClick"],nU={class:"mt-2 text-xs text-gray-400 dark:text-gray-500"},iU=["href"],oU={class:"grid grid-cols-1 gap-3 sm:grid-cols-2"},lU={class:"input-label"},rU={class:"input-label"},dU=["placeholder"],cU={class:"space-y-6"},uU={key:0,class:"card"},mU={class:"p-6"},_U={class:"flex items-start gap-3"},pU={class:"font-medium text-gray-900 dark:text-white"},gU={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},yU={key:1,class:"card"},bU={class:"flex items-center justify-between border-b border-gray-100 px-6 py-4 dark:border-dark-700"},hU={class:"text-lg font-semibold text-gray-900 dark:text-white"},xU={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},fU=["disabled"],kU={key:0,class:"h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},vU={class:"space-y-6 p-6"},wU={class:"grid grid-cols-1 gap-6 md:grid-cols-2"},CU={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},VU=["placeholder"],UU={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},SU=["placeholder"],PU={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},$U=["placeholder"],EU={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},AU=["placeholder"],TU={class:"mt-1.5 text-xs text-gray-500 dark:text-gray-400"},FU={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},MU=["placeholder"],LU={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},RU=["placeholder"],HU={class:"flex items-center justify-between border-t border-gray-100 pt-4 dark:border-dark-700"},DU={class:"font-medium text-gray-900 dark:text-white"},jU={class:"text-sm text-gray-500 dark:text-gray-400"},zU={key:2,class:"card"},OU={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},BU={class:"text-lg font-semibold text-gray-900 dark:text-white"},IU={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},qU={class:"p-6"},NU={class:"flex items-end gap-4"},WU={class:"flex-1"},KU={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},GU=["placeholder"],QU=["disabled"],YU={key:0,class:"h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},JU={class:"card"},ZU={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},XU={class:"text-base font-medium text-gray-900 dark:text-white"},eS={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},tS={class:"px-6 py-6"},aS={class:"flex items-center justify-between gap-4"},sS={class:"mb-0 block text-sm font-medium text-gray-700 dark:text-gray-300"},nS={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},iS={class:"card"},oS={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},lS={class:"text-base font-medium text-gray-900 dark:text-white"},rS={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},dS={class:"px-6 py-6 space-y-4"},cS={class:"flex items-center justify-between"},uS={class:"mb-0 block text-sm font-medium text-gray-700 dark:text-gray-300"},mS={key:0},_S={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},pS={class:"relative"},gS={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},yS={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},bS=["placeholder"],hS={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},xS={class:"card"},fS={class:"border-b border-gray-100 px-6 py-4 dark:border-dark-700"},kS={class:"text-base font-medium text-gray-900 dark:text-white"},vS={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},wS={class:"px-6 py-6 space-y-4"},CS={class:"flex items-center justify-between"},VS={class:"mb-0 block text-sm font-medium text-gray-700 dark:text-gray-300"},US={key:0},SS={class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},PS={class:"space-y-2"},$S={class:"relative inline-flex items-center cursor-pointer shrink-0"},ES=["checked","onChange"],AS=["onUpdate:modelValue","placeholder"],TS=["onClick"],FS={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},MS={class:"flex justify-end"}
2,LS=["disabled"],RS={key:0,class:"h-4 w-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},Ft=5,Mt=1e3,HS=20,Lt="You are Claude Code, Anthropic's official CLI for Claude.",ht=`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.`,DS=1e3,ka=16,jS=Qe({__name:"SettingsView",setup(A){const{t,locale:$}=Xe(),k=Ca(),K=As(),D=oo(),ae=H(()=>$.value.startsWith("zh"));function C(l,i){return ae.value?l:i}const w=H(()=>$.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=H(()=>$.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"),U=V("general"),F=[{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:"backup",icon:"database"}],N={ArrowLeft:-1,ArrowUp:-1,ArrowRight:1,ArrowDown:1,Home:"first",End:"last"};function W(l){U.value=l}function ne(l){window.requestAnimationFrame(()=>{var i;(i=document.getElementById(`settings-tab-${l}`))==null||i.focus()})}function G(l,i){var L;const y=N[l.key];if(y===void 0)return;l.preventDefault();const o=F.findIndex(xe=>xe.key===i);let p=o<0?0:o;y==="first"?p=0:y==="last"?p=F.length-1:p=(p+y+F.length)%F.length;const _=(L=F[p])==null?void 0:L.key;_&&(W(_),ne(_))}const{copyToClipboard:X}=ko(),ee=V(!0),oe=V(!1),_e=V(!1),ue=V(!1),le=V(!1),Q=V(!1),Y=V(""),I=V([]),re=V(""),te=V(""),ye=V("10, 20, 50, 100"),$e=V(!0),ke=V(!1),ge=V(""),be=V(!1),Re=V(""),Ue=V([]),Ie=V(!0),He=V(!1),ve=me({enabled:!0,interval_minutes:30}),Fe=V(!0),qe=V(!1),he=me({enabled:!1,interval_minutes:60,debounce_minutes:1}),we=V(!0),Ee=V(!1),Se=me({enabled:!0,cooldown_minutes:10}),De=V(!0),P=V(!1),E=me({enabled:!0,cooldown_seconds:5}),Z=V(!0),pe=V(!1),v=me({enabled:!0,user_rpm:240,heavy_rpm:60,exempt_admin:!0,public_ip_rpm:300}),u=V(!0),c=V(!1),g=me({enabled:!0,action:"temp_unsched",temp_unsched_minutes:5,threshold_count:3,threshold_window_minutes:10}),z=V(!0),Me=V(!1),de=me({enabled:!0,thinking_signature_enabled:!0,thinking_budget_enabled:!0,apikey_signature_enabled:!1,apikey_signature_patterns:[]}),Ht=V(!0),ut=V(!1),kt=me({rules:[]}),et=me({rules:[]}),Dt=V(!1);function Va(){return[{id:"terms",title:C("服务条款","Terms of Service"),content_md:""},{id:"usage-policy",title:C("使用政策","Usage Policy"),content_md:""},{id:"supported-regions",title:C("支持的国家和地区","Supported Countries and Regions"),content_md:""},{id:"service-specific-terms",title:C("服务特定条款","Service-Specific Terms"),content_md:""}]}function Ua(l){return l.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/[-_]{2,}/g,"-").replace(/^[-_]+|[-_]+$/g,"")}function Ls(l,i){return`/legal/${Ua(l.id||l.title)||`doc-${i+1}`}`}let Sa=0;function Rs(){return Sa+=1,`claude-oauth-system-prompt-block-${Sa}`}function Pa(l){return typeof l=="string"&&l.trim()?l.trim():"5m"}function jt(l){const i=l.trim();return i==="{billing_header}"?"billing":i==="{claude_code_system_prompt}"||i===Lt?"system":i==="{claude_code_expansion_prompt}"||i===ht?"expansion":"custom"}function Hs(l,i=""){const y=l.trim();return y==="{claude_code_system_prompt}"?Lt:y==="{claude_code_expansion_prompt}"?i.trim()||ht:l}function st(l={}){const i=l.text??"";return{id:Rs(),enabled:l.enabled??!0,expanded:l.expanded??!0,type:"text",preset:l.preset??jt(i),text:i,cacheControlEnabled:l.cacheControlEnabled??!1,cacheControlTTL:l.cacheControlTTL??"5m"}}function nt(l=""){const y=l.trim()||ht;return[st({preset:"billing",text:"{billing_header}"}),st({preset:"system",text:Lt}),st({preset:y===ht?"expansion":"custom",text:y,cacheControlEnabled:!0,cacheControlTTL:"5m"})]}function Ds(l){return l===!0?{enabled:!0,ttl:"5m"}:l&&typeof l=="object"&&!Array.isArray(l)?{enabled:!0,ttl:Pa(l.ttl)}:{enabled:!1,ttl:"5m"}}function js(l,i=""){const y=l.trim();if(!y)return nt(i);try{const o=JSON.parse(y),p=Array.isArray(o)?o:Array.isArray(o.blocks)?o.blocks:[];return p.length===0?nt(i):p.map(_=>{const L=Ds(_.cache_control),xe=Hs(typeof _.text=="string"?_.text:"",i);return st({enabled:_.enabled!==!1,type:"text",text:xe,preset:jt(xe),cacheControlEnabled:L.enabled,cacheControlTTL:L.ttl})})}catch{return nt(i)}}function zt(l){const y=(l.length>
120?l:[st({enabled:!1,preset:"custom",text:""})]).map(o=>{const p={enabled:o.enabled,type:o.type||"text",text:o.text};return o.cacheControlEnabled&&(p.cache_control={type:"ephemeral",ttl:Pa(o.cacheControlTTL)}),p});return JSON.stringify(y,null,2)}const $a=zt(nt()),je=V(nt()),Ea=H(()=>[{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")}]),zs=H(()=>[{value:"text",label:t("admin.settings.gatewayForwarding.systemBlockTypeText")}]),Os=H(()=>[{value:"5m",label:t("admin.settings.gatewayForwarding.cacheTTL5m")},{value:"1h",label:t("admin.settings.gatewayForwarding.cacheTTL1h")}]);function Bs(l){var i;return((i=Ea.value.find(y=>y.value===l))==null?void 0:i.label)||t("admin.settings.gatewayForwarding.systemBlockPresetCustom")}function tt(){n.claude_oauth_system_prompt_blocks=zt(je.value)}function Is(){je.value.push(st({expanded:!0,preset:"custom",text:""})),tt()}function qs(l){const i=je.value[l];i&&(i.expanded=!i.expanded)}function Ns(l){je.value.splice(l,1),tt()}function Aa(l,i){const y=l+i;if(y<0||y>=je.value.length)return;const o=je.value,p=o[l];o[l]=o[y],o[y]=p,tt()}function Ws(l,i){const y=je.value[l];if(!y)return;const o=String(i||"custom");y.preset=o,y.type="text",o==="billing"?(y.text="{billing_header}",y.cacheControlEnabled=!1,y.cacheControlTTL="5m"):o==="system"?(y.text=Lt,y.cacheControlEnabled=!1,y.cacheControlTTL="5m"):o==="expansion"&&(y.text=n.claude_oauth_system_prompt.trim()||ht,y.cacheControlEnabled=!0,y.cacheControlTTL="5m"),tt()}function Ks(l){l.preset=jt(l.text),tt()}function Gs(){je.value=nt(n.claude_oauth_system_prompt),tt()}const Qs=lo,n=me({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,audit_log_retention_days:180,login_agreement_enabled:!1,login_agreement_mode:"modal",login_agreement_updated_at:"2026-03-31",login_agreement_documents:Va(),default_balance:0,default_platform_quotas:pa(),account_scheduling_thresholds:_a(),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_session_block_enabled:!1,cyber_session_block_ttl_seconds:3600,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:HS,table_page_size_options:[10,20,50,100],custom_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:C("钉钉企业邮箱","DingTalk Corporate Email"),dingtalk_connect_sync_display_name_attr_name:C("钉钉姓名","DingTalk Name"),dingtalk_connect_sync_dept_attr_name:C("钉钉部门","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:$a,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,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,available_channels_enabled:!1,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}),Ne=V("turnstile");function Ta(l){n.turnstile_enabled=l==="turnstile",n.tencent_captcha_enabled=l==="tencent",n.al
12iyun_captcha_enabled=l==="aliyun"}const Ot=H({get:()=>n.turnstile_enabled||n.tencent_captcha_enabled||n.aliyun_captcha_enabled,set:l=>Ta(l?Ne.value:null)});function Bt(l){Ne.value=l,Ta(l)}const It=H(()=>n.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 Ys(){n.tencent_captcha_enabled?Ne.value="tencent":n.aliyun_captcha_enabled?Ne.value="aliyun":n.turnstile_enabled&&(Ne.value="turnstile")}const Js=H(()=>{const l=(i,y)=>{const o=String(n[i]??"").trim();return t("admin.settings.openaiExperimentalScheduler.defaultPlaceholder",{value:o||y})};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.openaiExperimentalScheduler.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")}]}),ce=me(ga({})),Fa=H(()=>[{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:C("通过 GitHub 已验证邮箱首次注册或首次绑定时应用。","Applied on first signup or first bind through a verified GitHub email.")},{source:"google",title:"Google",description:C("通过 Google 已验证邮箱首次注册或首次绑定时应用。","Applied on first signup or first bind through a verified Google email.")},{source:"dingtalk",title:t("auth.dingtalkProviderName"),description:C("通过钉钉首次注册或首次绑定时应用。","Applied on first signup or first bind through DingTalk.")}]),Ma=V([]),Ce=me({enabled:!1,providers:[]}),We=me({}),Ge=me({}),qt=V(""),vt=V(!1),at=V(null),wt=V(!1);function Zs(){at.value=null,wt.value=!0}function Xs(l){We[l]=!We[l]}function en(l){Ce.providers.splice(l,1);const i={},y={};for(let o=0;o<Ce.providers.length;o++){const p=o>=l?o+1:o;i[o]=We[p]??!1,y[o]=Ge[p]??!1}Object.keys(We).forEach(o=>delete We[Number(o)]),Object.keys(Ge).forEach(o=>delete Ge[Number(o)]),Object.assign(We,i),Object.assign(Ge,y)}function tn(){const l=Ce.providers.length;Ce.providers.push({type:"brave",api_key:"",api_key_configured:!1,quota_limit:DS,subscribed_at:null,proxy_id:null,expires_at:null}),We[l]=!0}function an(l){if(!l)return"";const i=new Date(l*1e3),y=i.getUTCFullYear(),o=String(i.getUTCMonth()+1).padStart(2,"0"),p=String(i.getUTCDate()).padStart(2,"0");return`${y}-${o}-${p}`}function sn(l){return l?Math.floor(new Date(l+"T00:00:00Z").getTime()/1e3):null}function Nt(l){return!l.quota_limit||l.quota_limit<=0?0:(l.quota_used??0)/l.quota_limit*100}async function nn(l){const i=Ce.providers[l];if(i&&confirm(t("admin.settings.webSearchEmulation.resetUsageConfirm")))try{await R.settings.resetWebSearchUsage({provider_type:i.type}),i.quota_used=0,k.showSuccess(t("admin.settings.webSearchEmulation.resetUsageSuccess"))}catch(y){k.showError(se(y,t("common.error")))}}async function on(l){var y;const i=(y=Ce.providers[l])==null?void 0:y.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 La(){vt.value=!0,at.value=null;try{const l=qt.value.trim()||t("admin.settings.webSearchEmulation.testDefaultQuery");at.value=await R.settings.testWebSearchEmulation(l)}catch(l){k.showError(se(l,t("common.error")))}finally{vt.value=!1}}async function ln(){try{const[l,i]=await Promise.all([R.settings.getWebSearchEmulationConfig(),R.proxies.list().catch(()=>({items:[]}))]);l&&(Ce.enabled=l.enabled||!1,Ce.providers=l.providers||[]),Ma.value=i.items||[]}catch(l){const i=l==null?void 0:l.status;i!==404&&i!==void 0&&k.showError(se(l,t("common.error")))}}async function rn(){try{for(const i of Ce.providers){const y=i.quota_limit;if(y!=null&&Number(y)!==0&&Number(y)<1)return k.showError(t("admin.settings.webSearchEmulation.quotaLimitMustBePositive")),!1}const l=Ce.providers.map(i=>({...i,quota_limit:Number(i.quota_limit)>0?Number(i.quota_limit):null}));return await R.settings.updateWebSearchEmulationConfig({enabled:Ce.enabled,providers:l}),!0}catch(l){return k.showError(se(l,t("common.error"))),!1}}const Ra=H(()=>Ue.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 cn(l){I.value=I.value.filter(i=>i!==l)}function Ha(l){const i=Vs(l);!wo(i)||I.value.includes(i)||(I.value=[...I.value,i])}function Da(){re.value&&(Ha(re.value),re.value="")}function ja(){re.value=Vs(re.value)}function za(l){if(!l.isComposing){if(dn.has(l.key)){l.preventDefault(),Da();return}l.key==="Backspace"&&!re.value&&I.value.length>0&&I.value.pop()}}function un(l){var o;const i=((o=l.clipboardData)==null?void 0:o.getData("text"))||"";if(!i.trim())return;l.preventDefault();const y=vo(i);for(const p of y)Ha(p)}const mn=new Set([" ",",",",","Enter","Tab"]),_n=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function Oa(l){const i=l.trim();return _n.test(i)?i.toLowerCase().split("-").map(y=>`${y.charAt(0).toUpperCase()}${y.slice(1)}`).join("-"):""}function Wt(l){if(!Array.isArray(l))return[];const i=[],y=new Set;for(const o of l){if(typeof o!="string")continue;const p=Oa(o),_=p.toLowerCase();!p||y.has(_)||i.length>=ka||(y.add(_),i.push(p))}return i}function pn(l){n.forwarded_client_ip_headers=n.forwarded_client_ip_headers.filter(i=>i!==l)}function Ba(l){const i=Oa(l);return i?n.forwarded_client_ip_headers.some(y=>y.toLowerCase()===i.toLowerCase())?"duplicate":n.forwarded_client_ip_headers.length>=ka?"full":(n.forwarded_client_ip_headers=[...n.forwarded_client_ip_headers,i],"added"):"invalid"}function Ia(l){l==="invalid"?k.showError(t("admin.settings.apiKeyAcl.forwardedClientIpHeaderInvalid")):l==="full"&&k.showError(t("admin.settings.apiKeyAcl.forwardedClientIpHeadersLimit",{max:ka}))}function qa(){const l=te.value;if(!l)return;const i=Ba(l);Ia(i),te.value=""}function gn(l){if(!l.isComposing){if(mn.has(l.key)){l.preventDefault(),qa();return}l.key==="Backspace"&&!te.value&&n.forwarded_client_ip_headers.length>0&&n.forwarded_client_ip_headers.pop()}}function yn(l){var o;const i=((o=l.clipboardData)==null?void 0:o.getData("text"))||"";if(!i.trim())return;l.preventDefault();let y;for(const p of i.split(/[,,;\r\n]+/)){if(!p.trim())continue;const _=Ba(p);(_==="invalid"||_==="full")&&(y=_)}y&&Ia(y)}const bn=()=>{n.account_quota_notify_emails||(n.account_quota_notify_emails=[]),n.account_quota_notify_emails.push({email:"",disabled:!1,verified:!0})},Kt=typeof window<"u"?window.location.origin:"";function mt(l){const i=(n.api_base_url||Kt).replace(/\/+$/,"");return`${i.endsWith("/api/v1")?i:`${i}/api/v1`}${l.startsWith("/")?l:`/${l}`}`}const Gt=H(()=>mt("/auth/oauth/linuxdo/callback"));async function hn(){const l=Gt.value;l&&(n.linuxdo_connect_redirect_url=l,await X(l,t("admin.settings.linuxdo.redirectUrlSetAndCopied")))}const Qt=H(()=>mt("/auth/oauth/github/callback")),Yt=H(()=>mt("/auth/oauth/google/callback"));async function Na(l){const i=l==="github"?Qt.value:Yt.value;i&&(l==="github"?n.github_oauth_redirect_url=i:n.google_oauth_redirect_url=i,await X(i,C("回调地址已写入并复制。","Callback URL set and copied.")))}const Jt=H(()=>mt("/auth/oauth/wechat/callback"));function Ct(l){n.wechat_connect_mp_enabled&&n.wechat_connect_mobile_enabled&&(l==="mobile"?n.wechat_connect_mp_enabled=!1:n.wechat_connect_mobile_enabled=!1);const i=ba(n.wechat_connect_open_enabled,n.wechat_connect_mp_enabled,n.wechat_connect_mobile_enabled,n.wechat_connect_mode);n.wechat_connect_open_enabled=i.openEnabled,n.wechat_connect_mp_enabled=i.mpEnabled,n.wechat_connect_mobile_enabled=i.mobileEnabled,n.wechat_connect_mode=$t(i.openEnabled,i.mpEnabled,i.mobileEnabled,n.wechat_connect_mode),n.wechat_connect_scopes=Et(n.wechat_connect_mode)}function xn(l){n.wechat_connect_open_enabled=l,Ct(l?"open":void 0)}function fn(l){n.wechat_connect_mp_enabled=l,l&&(n.wechat_connect_mobile_enabled=!1),Ct(l?"mp":void 0)}function kn(l){n.wechat_connect_mobile_enabled=l,l&&(n.wechat_connect_mp_enabled=!1),Ct(l?"mobile":void 0)}async function vn(){const l=Jt.value;l&&(n.wechat_connect_redirect_url=l,await X(l,t("admin.settings.wechatConnect.redirectUrlSetAndCopied")))}const Zt=H(()=>mt("/auth/oauth/oidc/callback"));async function wn(){const l=Zt.value;l&&(n.oidc_connect_redirect_url=l,await X(l,t("admin.settings.oidc.redirectUrlSetAndCopied")))}function Cn(){n.custom_menu_items.push({id:"",label:"",icon_svg:"",url:"",visibility:"user",sort_order:n.custom_menu_items.length})}function Vn(l){n.custom_menu_items.splice(l,1),n.custom_menu_items.forEac
12h((i,y)=>{i.sort_order=y})}function Wa(l,i){const y=l+i;if(y<0||y>=n.custom_menu_items.length)return;const o=n.custom_menu_items,p=o[l];o[l]=o[y],o[y]=p,o.forEach((_,L)=>{_.sort_order=L})}function Un(){n.custom_endpoints.push({name:"",endpoint:"",description:""})}function Sn(l){n.custom_endpoints.splice(l,1)}function Pn(){n.login_agreement_documents.push({id:`custom-${Date.now().toString(36)}`,title:"",content_md:""})}function $n(l){n.login_agreement_documents.splice(l,1)}function En(){return n.login_agreement_documents.map((l,i)=>({id:Ua(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 An(l){const i=new Set;for(const y of l){if(i.has(y.id))return y.id;i.add(y.id)}return null}function Ka(l){return l.join(", ")}function Tn(l){const i=l.split(",").map(p=>p.trim()).filter(p=>p.length>0);if(i.length===0)return null;const y=i.map(p=>Number(p));if(y.some(p=>!Number.isInteger(p)))return null;const o=Array.from(new Set(y)).sort((p,_)=>p-_);return o.some(p=>p<Ft||p>Mt)?null:o}const _t=V([]),pt=V([]),it=V([]),Fn=H(()=>!it.value.some(l=>l.required));function Mn(){it.value.push({type:"header_exact",match:"",required:!1})}function Ln(l){it.value.splice(l,1)}function Ga(l){if(!l||!l.trim())return[];try{const i=JSON.parse(l);return Array.isArray(i)?i.map(y=>({originator:typeof(y==null?void 0:y.originator)=="string"?y.originator:"",uaContains:Array.isArray(y==null?void 0:y.ua_contains)?y.ua_contains.filter(o=>typeof o=="string").join(", "):"",skipEngineFingerprint:(y==null?void 0:y.skip_engine_fingerprint)===!0})):[]}catch{return[]}}function Qa(l){const i=l.map(y=>{const o={originator:y.originator.trim(),ua_contains:y.uaContains.split(",").map(p=>p.trim()).filter(p=>p.length>0)};return y.skipEngineFingerprint&&(o.skip_engine_fingerprint=!0),o}).filter(y=>y.originator!==""||y.ua_contains.length>0);return i.length>0?JSON.stringify(i):""}function Rn(){_t.value.push({originator:"",uaContains:""})}function Hn(l){_t.value.splice(l,1)}function Dn(){pt.value.push({originator:"",uaContains:"",skipEngineFingerprint:!1})}function jn(l){pt.value.splice(l,1)}const Ya=H(()=>{var i;const l=(i=n.openai_codex_client_version_synced)==null?void 0:i.trim();return l?t("admin.settings.gatewayForwarding.openaiCodexVersionSyncedValue",{version:l}):""});async function zn(){var l;ee.value=!0,oe.value=!1;try{const i=await R.settings.getSettings();i.payment_load_balance_strategy=i.payment_load_balance_strategy||"round-robin";for(const[_,L]of Object.entries(i))L!=null&&(n[_]=L);Ys(),(l=n.claude_oauth_system_prompt_blocks)!=null&&l.trim()||(n.claude_oauth_system_prompt_blocks=$a),je.value=js(n.claude_oauth_system_prompt_blocks,n.claude_oauth_system_prompt),tt(),_t.value=Ga(n.codex_cli_only_blacklist),pt.value=Ga(n.codex_cli_only_whitelist),it.value=n.codex_cli_only_engine_fingerprint_signals?tm(n.codex_cli_only_engine_fingerprint_signals):sm(),n.login_agreement_mode=i.login_agreement_mode==="checkbox"?"checkbox":"modal",n.channel_monitor_mode=i.channel_monitor_mode==="v2"?"v2":"v1",n.channel_monitor_hide_throughput=!!i.channel_monitor_hide_throughput,n.channel_monitor_show_quota=!!i.channel_monitor_show_quota,n.login_agreement_updated_at=i.login_agreement_updated_at||"2026-03-31",n.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||""})):Va(),Object.assign(ce,ga(i)),n.default_platform_quotas=pa(i.default_platform_quotas),n.account_scheduling_thresholds=_a(i.account_scheduling_thresholds),n.backend_mode_enabled=i.backend_mode_enabled,n.default_subscriptions=ya(i.default_subscriptions),I.value=Us(i.registration_email_suffix_whitelist),n.forwarded_client_ip_headers=Wt(i.forwarded_client_ip_headers),te.value="",ye.value=Ka(Array.isArray(i.table_page_size_options)?i.table_page_size_options:[10,20,50,100]),re.value="",n.smtp_password="",Q.value=!1,n.turnstile_secret_key="",n.tencent_captcha_app_secret_key="",n.tencent_captcha_cloud_secret_id="",n.tencent_captcha_cloud_secret_key="",n.aliyun_captcha_access_key_secret="",n.linuxdo_connect_client_secret="",n.dingtalk_connect_client_secret="",n.github_oauth_client_secret="",n.google_oauth_client_secret="",n.wechat_connect_app_secret="",n.wechat_connect_open_app_secret="",n.wechat_connect_mp_app_secret="",n.wechat_connect_mobile_app_secret="";const y=ba(i.wechat_connect_open_enabled,i.wechat_connect_mp_enabled,i.wechat_connect_mobile_enabled,i.wechat_connect_mode);n.wechat_connect_open_enabled=y.openEnabled,n.wechat_connect_mp_enabled=y.mpEnabled,n.wechat_connect_mobile_enabled=y.mobileEnabled,n.wechat_connect_mode=$t(y.openEnabled,y.mpEnabled,y.mobileEnabled,i.wechat_connect_mode);const o=String(i.wechat_connect_app_id||"").trim(),p=!!i.wechat_connect_app_secret_configured;!n.wechat_connect_open_app_id&&y.openEnabled&&(n.wechat_connect_open_app_id=o),!n.wechat_connect_mp_app_id&&y.mpEnabled&&(n.wechat_connect_mp_app_id=o),!n.wechat_connect_mobile_app_id&&y.mobileEnabled&&(n.wechat_connect_mobile_app_id=o),!n.wechat_connect_open_app_secret_configured&&y.openEnabled&&(n.wechat_connect_open_app_secret_configured=p),!n.wechat_connect_mp_app_secret_configured&&y.mpEnabled&&(n.wechat_connect_mp_app_secret_configured=p),!n.wechat_connect_mobile_app_secret_configured&&y.mobileEnabled&&(n.wechat_connect_mobile_app_secret_configured=p),n.wechat_connect_scopes=Et(n.wechat_connect_mode),n.oidc_connect_client_secret="",i.openai_fast_policy_settings&&Array.isArray(i.openai_fast_policy_settings.rules)&&(et.rules=i.openai_fast_policy_settings.rules.map(_=>({..._,user_ids:_.user_ids?[..._.user_ids]:[],model_whitelist:_.model_whitelist?[..._.model_whitelist]:[]})),Dt.value=!0),await ln()}catch(i){oe.value=!0,k.showError(se(i,t("admin.settings.failedToLoad")))}finally{ee.value=!1}}async function On(){try{const l=await R.groups.getAll();Ue.value=l.filter(i=>i.subscription_type==="subscription"&&i.status==="active")}catch{Ue.value=[]}}function Ja(l){const i=new Set(l);return Ue.value.find(y=>!i.has(y.id))}function Bn(){if(Ue.value.length===0)return;const l=Ja(n.default_subscriptions.map(i=>i.group_id));l&&n.default_subscriptions.push({group_id:l.id,validity_days:30})}function In(l){n.default_subscriptions.splice(l,1)}function qn(l){if(Ue.value.length===0)return;const i=Ja(ce[l].subscriptions.map(y=>y.group_id));i&&ce[l].subscriptions.push({group_id:i.id,validity_days:30})}function Nn(l,i){ce[l].subscriptions.splice(i,1)}function Za(l){const i=new Set;return l.find(y=>i.has(y.group_id)?!0:(i.add(y.group_id),!1))}async function Xa(){var l,i,y,o,p,_;_e.value=!0;try{const L=Math.floor(Number(n.table_default_page_size));if(!Number.isInteger(L)||L<Ft||L>Mt){k.showError(t("admin.settings.site.tableDefaultPageSizeRangeError",{min:Ft,max:Mt}));return}const xe=Tn(ye.value);if(!xe){k.showError(t("admin.settings.site.tablePageSizeOptionsFormatError",{min:Ft,max:Mt}));return}n.table_default_page_size=L,n.table_page_size_options=xe;const St=En();if(n.login_agreement_enabled&&St.length===0){k.showError(C("启用登录条款确认时,至少需要保留一份文档。","At least one document is required when login agreement is enabled."));return}if(St.find(J=>!J.title)){k.showError(C("登录条款文档名称不能为空。","Login agreement document title cannot be empty."));return}const ca=An(St);if(ca){k.showError(C(`登录条款文档路由不能重复:/legal/${ca}`,`Login agreement document routes cannot be duplicated: /legal/${ca}`));return}n.login_agreement_mode=n.login_agreement_mode==="checkbox"?"checkbox":"modal",n.login_agreement_documents=St,n.forwarded_client_ip_headers=Wt(n.forwarded_client_ip_headers);const _s=ya(n.default_subscriptions),ps=Za(_s);if(ps){k.showError(t("admin.settings.defaults.defaultSubscriptionsDuplicate",{groupId:ps.group_id}));return}for(const J of Fa.value){ce[J.source].subscriptions=ya(ce[J.source].subscriptions);const ze=Za(ce[J.source].subscriptions);if(ze){k.showError(`${J.title}: ${t("admin.settings.defaults.defaultSubscriptionsDuplicate",{groupId:ze.group_id})}`);return}}if(n.wechat_connect_mp_enabled&&n.wechat_connect_mobile_enabled){k.showError(C("公众号和移动应用不能同时启用。","Official Account and Mobile App cannot be enabled at the same time."));return}
12const gs=J=>{if(!J)return!0;try{const ze=new URL(J);return ze.protocol==="http:"||ze.protocol==="https:"}catch{return!1}};gs(n.frontend_url)||(n.frontend_url=""),gs(n.doc_url)||(n.doc_url=""),Ct();const ys=$t(n.wechat_connect_open_enabled,n.wechat_connect_mp_enabled,n.wechat_connect_mobile_enabled,n.wechat_connect_mode),bs=zt(je.value);n.claude_oauth_system_prompt_blocks=bs;const yt={registration_enabled:n.registration_enabled,email_verify_enabled:n.email_verify_enabled,registration_email_suffix_whitelist:I.value.map(J=>J.startsWith("*.")?J:`@${J}`),registration_email_domain_quota_enabled:n.registration_email_domain_quota_enabled,promo_code_enabled:n.promo_code_enabled,invitation_code_enabled:n.invitation_code_enabled,password_reset_enabled:n.password_reset_enabled,totp_enabled:n.totp_enabled,passkey_enabled:n.passkey_enabled,session_binding_enabled:n.session_binding_enabled,step_up_enabled:n.step_up_enabled,audit_log_retention_days:Number.isFinite(n.audit_log_retention_days)?n.audit_log_retention_days:180,login_agreement_enabled:n.login_agreement_enabled,login_agreement_mode:n.login_agreement_mode,login_agreement_updated_at:n.login_agreement_updated_at,login_agreement_documents:n.login_agreement_documents,default_balance:n.default_balance,affiliate_rebate_rate:Math.min(100,Math.max(0,Number(n.affiliate_rebate_rate)||0)),affiliate_rebate_freeze_hours:Math.max(0,Math.min(720,Number(n.affiliate_rebate_freeze_hours)||0)),affiliate_rebate_duration_days:Math.max(0,Math.min(3650,Math.floor(Number(n.affiliate_rebate_duration_days)||0))),affiliate_rebate_per_invitee_cap:Math.max(0,Number(n.affiliate_rebate_per_invitee_cap)||0),affiliate_admin_recharge_enabled:n.affiliate_admin_recharge_enabled,default_concurrency:n.default_concurrency,default_subscriptions:_s,force_email_on_third_party_signup:n.force_email_on_third_party_signup,default_user_rpm_limit:n.default_user_rpm_limit,site_name:n.site_name,site_logo:n.site_logo,site_subtitle:n.site_subtitle,api_base_url:n.api_base_url,contact_info:n.contact_info,doc_url:n.doc_url,home_content:n.home_content,compact_home_enabled:n.compact_home_enabled,backend_mode_enabled:n.backend_mode_enabled,hide_ccs_import_button:n.hide_ccs_import_button,table_default_page_size:n.table_default_page_size,table_page_size_options:n.table_page_size_options,custom_menu_items:n.custom_menu_items,custom_endpoints:n.custom_endpoints,frontend_url:n.frontend_url,smtp_host:n.smtp_host,smtp_port:n.smtp_port,smtp_username:n.smtp_username,smtp_password:n.smtp_password||void 0,smtp_from_email:n.smtp_from_email,smtp_from_name:n.smtp_from_name,smtp_use_tls:n.smtp_use_tls,turnstile_enabled:n.turnstile_enabled,turnstile_site_key:n.turnstile_site_key,turnstile_secret_key:n.turnstile_secret_key||void 0,tencent_captcha_enabled:n.tencent_captcha_enabled,tencent_captcha_app_id:n.tencent_captcha_app_id,tencent_captcha_app_secret_key:n.tencent_captcha_app_secret_key||void 0,tencent_captcha_cloud_secret_id:n.tencent_captcha_cloud_secret_id||void 0,tencent_captcha_cloud_secret_key:n.tencent_captcha_cloud_secret_key||void 0,tencent_captcha_region:n.tencent_captcha_region,aliyun_captcha_enabled:n.aliyun_captcha_enabled,aliyun_captcha_access_key_id:n.aliyun_captcha_access_key_id,aliyun_captcha_access_key_secret:n.aliyun_captcha_access_key_secret||void 0,aliyun_captcha_scene_id:n.aliyun_captcha_scene_id,aliyun_captcha_prefix:n.aliyun_captcha_prefix,aliyun_captcha_region:n.aliyun_captcha_region,api_key_acl_trust_forwarded_ip:n.api_key_acl_trust_forwarded_ip,forwarded_client_ip_headers:n.forwarded_client_ip_headers,linuxdo_connect_enabled:n.linuxdo_connect_enabled,linuxdo_connect_client_id:n.linuxdo_connect_client_id,linuxdo_connect_client_secret:n.linuxdo_connect_client_secret||void 0,linuxdo_connect_redirect_url:n.linuxdo_connect_redirect_url,dingtalk_connect_enabled:n.dingtalk_connect_enabled,dingtalk_connect_client_id:n.dingtalk_connect_client_id,dingtalk_connect_client_secret:n.dingtalk_connect_client_secret||void 0,dingtalk_connect_redirect_url:n.dingtalk_connect_redirect_url,dingtalk_connect_corp_restriction_policy:n.dingtalk_connect_corp_restriction_policy,dingtalk_connect_internal_corp_i
12d:n.dingtalk_connect_internal_corp_id,dingtalk_connect_bypass_registration:n.dingtalk_connect_bypass_registration,dingtalk_connect_sync_corp_email:n.dingtalk_connect_sync_corp_email,dingtalk_connect_sync_display_name:n.dingtalk_connect_sync_display_name,dingtalk_connect_sync_dept:n.dingtalk_connect_sync_dept,dingtalk_connect_sync_corp_email_attr_key:n.dingtalk_connect_sync_corp_email_attr_key,dingtalk_connect_sync_display_name_attr_key:n.dingtalk_connect_sync_display_name_attr_key,dingtalk_connect_sync_dept_attr_key:n.dingtalk_connect_sync_dept_attr_key,dingtalk_connect_sync_corp_email_attr_name:n.dingtalk_connect_sync_corp_email_attr_name,dingtalk_connect_sync_display_name_attr_name:n.dingtalk_connect_sync_display_name_attr_name,dingtalk_connect_sync_dept_attr_name:n.dingtalk_connect_sync_dept_attr_name,wechat_connect_enabled:n.wechat_connect_enabled,wechat_connect_app_id:n.wechat_connect_open_app_id||n.wechat_connect_mp_app_id||n.wechat_connect_mobile_app_id||n.wechat_connect_app_id,wechat_connect_app_secret:n.wechat_connect_app_secret||void 0,wechat_connect_open_app_id:n.wechat_connect_open_app_id,wechat_connect_open_app_secret:n.wechat_connect_open_app_secret||void 0,wechat_connect_mp_app_id:n.wechat_connect_mp_app_id,wechat_connect_mp_app_secret:n.wechat_connect_mp_app_secret||void 0,wechat_connect_mobile_app_id:n.wechat_connect_mobile_app_id,wechat_connect_mobile_app_secret:n.wechat_connect_mobile_app_secret||void 0,wechat_connect_open_enabled:n.wechat_connect_open_enabled,wechat_connect_mp_enabled:n.wechat_connect_mp_enabled,wechat_connect_mobile_enabled:n.wechat_connect_mobile_enabled,wechat_connect_mode:ys,wechat_connect_scopes:Et(ys),wechat_connect_redirect_url:n.wechat_connect_redirect_url,wechat_connect_frontend_redirect_url:n.wechat_connect_frontend_redirect_url,oidc_connect_enabled:n.oidc_connect_enabled,oidc_connect_provider_name:n.oidc_connect_provider_name,oidc_connect_client_id:n.oidc_connect_client_id,oidc_connect_client_secret:n.oidc_connect_client_secret||void 0,oidc_connect_issuer_url:n.oidc_connect_issuer_url,oidc_connect_discovery_url:n.oidc_connect_discovery_url,oidc_connect_authorize_url:n.oidc_connect_authorize_url,oidc_connect_token_url:n.oidc_connect_token_url,oidc_connect_userinfo_url:n.oidc_connect_userinfo_url,oidc_connect_jwks_url:n.oidc_connect_jwks_url,oidc_connect_scopes:n.oidc_connect_scopes,oidc_connect_redirect_url:n.oidc_connect_redirect_url,oidc_connect_frontend_redirect_url:n.oidc_connect_frontend_redirect_url,oidc_connect_token_auth_method:n.oidc_connect_token_auth_method,oidc_connect_use_pkce:n.oidc_connect_use_pkce,oidc_connect_validate_id_token:n.oidc_connect_validate_id_token,oidc_connect_allowed_signing_algs:n.oidc_connect_allowed_signing_algs,oidc_connect_clock_skew_seconds:n.oidc_connect_clock_skew_seconds,oidc_connect_require_email_verified:n.oidc_connect_require_email_verified,oidc_connect_userinfo_email_path:n.oidc_connect_userinfo_email_path,oidc_connect_userinfo_id_path:n.oidc_connect_userinfo_id_path,oidc_connect_userinfo_username_path:n.oidc_connect_userinfo_username_path,github_oauth_enabled:n.github_oauth_enabled,github_oauth_client_id:n.github_oauth_client_id,github_oauth_client_secret:n.github_oauth_client_secret||void 0,github_oauth_redirect_url:n.github_oauth_redirect_url,github_oauth_frontend_redirect_url:n.github_oauth_frontend_redirect_url,google_oauth_enabled:n.google_oauth_enabled,google_oauth_client_id:n.google_oauth_client_id,google_oauth_client_secret:n.google_oauth_client_secret||void 0,google_oauth_redirect_url:n.google_oauth_redirect_url,google_oauth_frontend_redirect_url:n.google_oauth_frontend_redirect_url,enable_model_fallback:n.enable_model_fallback,fallback_model_anthropic:n.fallback_model_anthropic,fallback_model_openai:n.fallback_model_openai,fallback_model_gemini:n.fallback_model_gemini,fallback_model_antigravity:n.fallback_model_antigravity,grok_default_text_model:n.grok_default_text_model.trim()||"grok-4.5",grok_cross_client_model_map_enabled:n.grok_cross_client_model_map_enabled,grok_default_base_url_mode:n.grok_default_base_url_mode,enable_identity_patch:n.enable_identity_patch,identity_patch_prompt:n.identity_patch_prompt,min_claude_code_version:n.min_claude_code_version,max_claude_code_version:n.max_claude_code_version,allow_ungrouped_key_scheduling:n.allow_ungrouped_key_scheduling,openai_ttft_mode:n.openai_ttft_mode==="visible"?"visible":"semantic",enable_fingerprint_unification:n.enable_fingerprint_unification,enable_metadata_passthrough:n.enable_metadata_passthrough,enable_cch_signing:n.enable_cch_signing,enable_claude_oauth_system_prompt_injection:n.enable_claude_oauth_system_prompt_injection,claude_oauth_system_prompt:(l=n.claude_oauth_system_prompt)!=null&&l.trim()?n.claude_oauth_system_prompt:"",claude_oauth_system_prompt_blocks:bs,enable_anthropic_cache_ttl_1h_injection:n.enable_anthropic_cache_ttl_1h_injection,rewrite_message_cache_control:n.rewrite_message_cache_control,enable_client_dateline_normalization:n.enable_client_dateline_normalization,antigravity_user_agent_version:((i=n.antigravity_user_agent_version)==null?void 0:i.trim())||"",openai_codex_user_agent:((y=n.openai_codex_user_agent)==null?void 0:y.trim())||"",openai_codex_client_version:((o=n.openai_codex_client_version)==null?void 0:o.trim())||"",openai_codex_version_auto_sync_enabled:n.openai_codex_version_auto_sync_enabled,min_codex_version:((p=n.min_codex_version)==null?void 0:p.trim())||"",max_codex_version:((_=n.max_codex_version)==null?void 0:_.trim())||"",codex_cli_only_allow_app_server_clients:n.codex_cli_only_allow_app_server_clients,codex_cli_only_engine_fingerprint_signals:am(it.value),codex_cli_only_blacklist:Qa(_t.value),codex_cli_only_whitelist:Qa(pt.value),payment_enabled:n.payment_enabled,risk_control_enabled:n.risk_control_enabled,cyber_session_block_enabled:n.cyber_session_block_enabled,cyber_session_block_ttl_seconds:Number(n.cyber_session_block_ttl_seconds)||3600,payment_min_amount:Number(n.payment_min_amount)||0,payment_max_amount:Number(n.payment_max_amount)||0,payment_daily_limit:Number(n.payment_daily_limit)||0,payment_max_pending_orders:Number(n.payment_max_pending_orders)||0,payment_order_timeout_minutes:Number(n.payment_order_timeout_minutes)||0,payment_balance_disabled:n.payment_balance_disabled,payment_balance_recharge_multiplier:Number(n.payment_balance_recharge_multiplier)||1,payment_subscription_usd_to_cny_rate:Number(n.payment_subscription_usd_to_cny_rate)||0,payment_recharge_fee_rate:Number(n.payment_recharge_fee_rate)||0,payment_enabled_types:n.payment_enabled_types,payment_load_balance_strategy:n.payment_load_balance_strategy,payment_product_name_prefix:n.payment_product_name_prefix,payment_product_name_suffix:n.payment_product_name_suffix,payment_help_image_url:n.payment_help_image_url,payment_help_text:n.payment_help_text,payment_cancel_rate_limit_enabled:n.payment_cancel_rate_limit_enabled,payment_cancel_rate_limit_max:Number(n.payment_cancel_rate_limit_max)||10,payment_cancel_rate_limit_window:Number(n.payment_cancel_rate_limit_window)||1,payment_cancel_rate_limit_unit:n.payment_cancel_rate_limit_unit,payment_cancel_rate_limit_window_mode:n.payment_cancel_rate_limit_window_mode,payment_alipay_force_qrcode:n.payment_alipay_force_qrcode,payment_alipay_mobile_precreate_deep_link:n.payment_alipay_mobile_precreate_deep_link,openai_low_upstream_rate_priority_enabled:n.openai_low_upstream_rate_priority_enabled,openai_oauth_scheduling_rate_multiplier:n.openai_oauth_scheduling_rate_multiplier,openai_advanced_scheduler_enabled:n.openai_advanced_scheduler_enabled,openai_advanced_scheduler_sticky_weighted_enabled:n.openai_advanced_scheduler_sticky_weighted_enabled,openai_advanced_scheduler_subscription_priority_enabled:n.openai_advanced_scheduler_subscription_priority_enabled,openai_advanced_scheduler_lb_top_k:n.openai_advanced_scheduler_lb_top_k.trim(),openai_advanced_scheduler_weight_priority:n.openai_advanced_scheduler_weight_priority.trim(),openai_advanced_scheduler_weight_load:n.openai_advanced_scheduler_weight_load.trim(),openai_advanced_scheduler_weight_queue:n.openai_advanced_scheduler_weight_queue.trim(),openai_advanced_scheduler_weight_error_rate:n.openai_advanced_scheduler_weight_error_rate.trim(),openai_advanced_scheduler_weight_ttft:n.openai_advanced_scheduler_weight_ttft.trim(),openai_advanced_scheduler_weight_reset:n.openai_advanced_scheduler_weight_reset.trim(),openai_advanced_scheduler_weight_quota_headroom:n.openai_advanced_scheduler_weight_quota_headroom.trim(),openai_advanced_scheduler_weight_upstream_cost:n.openai_advanced_scheduler_weight_upstream_cost.trim(),openai_advanced_scheduler_weight_previous_response:n.openai_advanced_scheduler_weight_previous_response.trim(),openai_advanced_scheduler_weight_session_sticky:n.openai_advanced_scheduler_weight_session_sticky.trim(),balance_low_notify_enabled:n.balance_low_notify_enabled,balance_low_notify_threshold:Number(n.balance_low_notify_threshold)||0,balance_low_notify_recharge_url:n.balance_low_notify_recharge_url=n.balance_low_notify_recharge_url||Kt,subscription_expiry_notify_enabled:n.subscription_expiry_notify_enabled,account_quota_notify_enabled:n.account_quota_notify_enabled,account_quota_notify_emails:(n.account_quota_notify_emails||[]).filter(J=>J.email.trim()!==""),channel_monitor_enabled:n.channel_monitor_enabled,channel_monitor_mode:n.channel_monitor_mode==="v1"?"v1":"v2",channel_monitor_default_interval_seconds:Number(n.channel_monitor_default_interval_seconds)||60,channel_monitor_hide_throughput:!!n.channel_monitor_hide_throughput,channel_monitor_show_quota:!!n.channel_monitor_show_quota,available_channels_enabled:n.available_channels_enabled,model_plaza_enabled:n.model_plaza_enabled,model_plaza_require_auth:n.model_plaza_require_auth,model_plaza_description:n.model_plaza_description,plugin_management_enabled:n.plugin_management_enabled,affiliate_enabled:n.affiliate_enabled,allow_user_view_error_requests:n.allow_user_view_error_requests};Dt.value&&(yt.openai_fast_policy_settings={rules:et.rules.map(J=>{const ze=(J.model_whitelist||[]).map(ma=>ma.trim()).filter(ma=>ma!==""),ua=ze.length>0;return{service_tier:J.service_tier,action:J.action,scope:J.scope,user_ids:J.user_ids&&J.user_ids.length>0?[...J.user_ids]:void 0,error_message:J.action==="block"?J.error_message:void 0,model_whitelist:ua?ze:void 0,fallback_action:ua?J.fallback_action||"pass":void 0,fallback_error_message:ua&&J.fallback_action==="block"?J.fallback_error_message:void 0}})}),yt.default_platform_quotas=ro(n.default_platform_quotas),yt.account_scheduling_thresholds=co(n.account_scheduling_thresholds),uo(yt,ce);const Ve=await K.run(()=>R.settings.updateSettings(yt));for(const[J,ze]of Object.entries(Ve))J!=="openai_fast_policy_settings"&&ze!=null&&(n[J]=ze);Object.assign(ce,ga(Ve)),n.default_platform_quotas=pa(Ve.default_platform_quotas),n.account_scheduling_thresholds=_a(Ve.account_scheduling_thresholds),I.value=Us(Ve.registration_email_suffix_whitelist),n.forwarded_client_ip_headers=Wt(Ve.forwarded_client_ip_headers),te.value="",ye.value=Ka(Array.isArray(Ve.table_page_size_options)?Ve.table_page_size_options:[10,20,50,100]),re.value="",n.smtp_password="",Q.value=!1,n.turnstile_secret_key="",n.aliyun_captcha_access_key_secret="",n.linuxdo_connect_client_secret="",n.dingtalk_connect_client_secret="",n.github_oauth_client_secret="",n.google_oauth_client_secret="",n.wechat_connect_app_secret="",n.wechat_connect_open_app_secret="",n.wechat_connect_mp_app_secret="",n.wechat_connect_mobile_app_secret="";const lt=ba(Ve.wechat_connect_open_enabled,Ve.wechat_connect_mp_enabled,Ve.wechat_connect_mobile_enabled,Ve.wechat_connect_mode);n.wechat_connect_open_enabled=lt.openEnabled,n.wechat_connect_mp_enabled=lt.mpEnabled,n.wechat_connect_mobile_enabled=lt.mobileEnabled,n.wechat_connect_mode=$t(lt.openEnabled,lt.mpEnabled,lt.mobileEnabled,Ve.wechat_connect_mode),n.wechat_connect_scopes=Et(n.wechat_connect_mode),n.oidc_connect_client_secret="",Ve.openai_fast_policy_settings&&Array.isArray(Ve.openai_fast_policy_settings.rules)&&(et.rules=Ve.openai_fast_policy_settings.rules.map(J=>({...J,user_ids:J.user_ids?[...J.user_ids]:[],model_whitelist:J.model_whitelist?[...J.model_whitelist]:[]})),Dt.value=!0);const Xi=await rn();await k.fetchPublicSettings(!0),await D.fetch(!0),Xi&&k.showSuccess(t("admin.settings.settingsSaved"))}catch(L){if(dt(L))return;
12if(Fs(L)){k.showError(Ms(L)==="STEP_UP_ADMIN_API_KEY_FORBIDDEN"?t("stepUp.adminApiKeyForbidden"):t("stepUp.notEnabled"));return}if((L==null?void 0:L.reason)==="STEP_UP_ENABLE_REQUIRES_TOTP"){k.showError(t("admin.settings.security.stepUpEnableRequiresTotp"));return}k.showError(se(L,t("admin.settings.failedToSave")))}finally{_e.value=!1}}async function Wn(){ue.value=!0;try{const l=Q.value?n.smtp_password:"",i=await R.settings.testSmtpConnection({smtp_host:n.smtp_host,smtp_port:n.smtp_port,smtp_username:n.smtp_username,smtp_password:l,smtp_use_tls:n.smtp_use_tls});k.showSuccess(i.message||t("admin.settings.smtpConnectionSuccess"))}catch(l){k.showError(se(l,t("admin.settings.failedToTestSmtp")))}finally{ue.value=!1}}async function Kn(){if(!Y.value){k.showError(t("admin.settings.testEmail.enterRecipientHint"));return}le.value=!0;try{const l=Q.value?n.smtp_password:"",i=await R.settings.sendTestEmail({email:Y.value,smtp_host:n.smtp_host,smtp_port:n.smtp_port,smtp_username:n.smtp_username,smtp_password:l,smtp_from_email:n.smtp_from_email,smtp_from_name:n.smtp_from_name,smtp_use_tls:n.smtp_use_tls});k.showSuccess(i.message||t("admin.settings.testEmailSent"))}catch(l){k.showError(se(l,t("admin.settings.failedToSendTestEmail")))}finally{le.value=!1}}async function Gn(){$e.value=!0;try{const l=await R.settings.getAdminApiKey();ke.value=l.exists,ge.value=l.masked_key}catch{}finally{$e.value=!1}}async function es(){be.value=!0;try{const l=await R.settings.regenerateAdminApiKey();Re.value=l.key,ke.value=!0,ge.value=l.key.substring(0,10)+"..."+l.key.slice(-4),k.showSuccess(t("admin.settings.adminApiKey.keyGenerated"))}catch(l){k.showError(se(l,t("common.error")))}finally{be.value=!1}}async function Qn(){confirm(t("admin.settings.adminApiKey.regenerateConfirm"))&&await es()}async function Yn(){if(confirm(t("admin.settings.adminApiKey.deleteConfirm"))){be.value=!0;try{await R.settings.deleteAdminApiKey(),ke.value=!1,ge.value="",Re.value="",k.showSuccess(t("admin.settings.adminApiKey.keyDeleted"))}catch(l){k.showError(se(l,t("common.error")))}finally{be.value=!1}}}function Jn(){navigator.clipboard.writeText(Re.value).then(()=>{k.showSuccess(t("admin.settings.adminApiKey.keyCopied"))}).catch(()=>{k.showError(t("common.copyFailed"))})}async function Zn(){Ie.value=!0;try{Object.assign(ve,await R.accounts.getUpstreamBillingProbeSettings())}catch{}finally{Ie.value=!1}}async function ts(){He.value=!0;try{const l=await R.accounts.updateUpstreamBillingProbeSettings({...ve});Object.assign(ve,l),k.showSuccess(t("admin.settings.upstreamBillingProbe.saved"))}catch(l){k.showError(se(l,t("admin.settings.upstreamBillingProbe.saveFailed")))}finally{He.value=!1}}async function Xn(){Fe.value=!0;try{Object.assign(he,await R.accounts.getOllamaCloudUsageSettings())}catch{}finally{Fe.value=!1}}async function Xt(){qe.value=!0;try{const l=await R.accounts.updateOllamaCloudUsageSettings({...he});Object.assign(he,l),k.showSuccess(t("admin.settings.ollamaCloudUsage.saved"))}catch(l){k.showError(se(l,t("admin.settings.ollamaCloudUsage.saveFailed")))}finally{qe.value=!1}}async function ei(){we.value=!0;try{const l=await R.settings.getOverloadCooldownSettings();Object.assign(Se,l)}catch{}finally{we.value=!1}}async function ti(){Ee.value=!0;try{const l=await R.settings.updateOverloadCooldownSettings({enabled:Se.enabled,cooldown_minutes:Se.cooldown_minutes});Object.assign(Se,l),k.showSuccess(t("admin.settings.overloadCooldown.saved"))}catch(l){k.showError(se(l,t("admin.settings.overloadCooldown.saveFailed")))}finally{Ee.value=!1}}async function ai(){Z.value=!0;try{const l=await R.settings.getPanelRateLimitSettings();Object.assign(v,l)}catch{}finally{Z.value=!1}}async function si(){pe.value=!0;try{const l=await R.settings.updatePanelRateLimitSettings({enabled:v.enabled,user_rpm:v.user_rpm,heavy_rpm:v.heavy_rpm,exempt_admin:v.exempt_admin,public_ip_rpm:v.public_ip_rpm});Object.assign(v,l),k.showSuccess(t("admin.settings.panelRateLimit.saved"))}catch(l){k.showError(se(l,t("admin.settings.panelRateLimit.saveFailed")))}finally{pe.value=!1}}async function ni(){De.value=!0;try{const l=await R.settings.getRateLimit429CooldownSettings();Object.assign(E,l)}catch{}finally{De.value=!1}}async function ii(){P.value=!0;try{const l=await R.settings.updateRateLimit429CooldownSettings({enabled:E.enabled,cooldown_seconds:E.cooldown_seconds});Object.assign(E,l),k.showSuccess(t("admin.settings.rateLimit429Cooldown.saved"))}catch(l){k.showError(se(l,t("admin.settings.rateLimit429Cooldown.saveFailed")))}finally{P.value=!1}}async function oi(){u.value=!0;try{const l=await R.settings.getStreamTimeoutSettings();Object.assign(g,l)}catch{}finally{u.value=!1}}async function li(){c.value=!0;try{const l=await R.settings.updateStreamTimeoutSettings({enabled:g.enabled,action:g.action,temp_unsched_minutes:g.temp_unsched_minutes,threshold_count:g.threshold_count,threshold_window_minutes:g.threshold_window_minutes});Object.assign(g,l),k.showSuccess(t("admin.settings.streamTimeout.saved"))}catch(l){k.showError(se(l,t("admin.settings.streamTimeout.saveFailed")))}finally{c.value=!1}}async function ri(){z.value=!0;try{const l=await R.settings.getRectifierSettings();Object.assign(de,l),Array.isArray(de.apikey_signature_patterns)||(de.apikey_signature_patterns=[])}catch{}finally{z.value=!1}}async function di(){Me.value=!0;try{const l=await R.settings.updateRectifierSettings({enabled:de.enabled,thinking_signature_enabled:de.thinking_signature_enabled,thinking_budget_enabled:de.thinking_budget_enabled,apikey_signature_enabled:de.apikey_signature_enabled,apikey_signature_patterns:de.apikey_signature_patterns.filter(i=>i.trim()!=="")});Object.assign(de,l),Array.isArray(de.apikey_signature_patterns)||(de.apikey_signature_patterns=[]),k.showSuccess(t("admin.settings.rectifier.saved"))}catch(l){k.showError(se(l,t("admin.settings.rectifier.saveFailed")))}finally{Me.value=!1}}const as=H(()=>[{value:"pass",label:t("admin.settings.betaPolicy.actionPass")},{value:"filter",label:t("admin.settings.betaPolicy.actionFilter")},{value:"block",label:t("admin.settings.betaPolicy.actionBlock")}]),ci=H(()=>[{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]),ui={"fast-mode-2026-02-01":"Fast Mode","context-1m-2025-08-07":"Context 1M"},ss={"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"}]},mi=["claude-opus-4-6","claude-sonnet-4-6","claude-opus-*","claude-sonnet-*"];function _i(l){return ui[l]||l}function pi(l,i){l.action=i.action,l.model_whitelist=[...i.model_whitelist],l.fallback_action=i.fallback_action}function gi(l,i){l.model_whitelist||(l.model_whitelist=[]),l.model_whitelist.includes(i)||l.model_whitelist.push(i)}async function yi(){Ht.value=!0;try{const l=await R.settings.getBetaPolicySettings();kt.rules=l.rules}catch{}finally{Ht.value=!1}}const bi=H(()=>[{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")}]),ns=H(()=>[{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 is(l){return t(`admin.settings.openaiFastPolicy.summaryAction.${l}`)}function ea(l){var i;return!!((i=l.model_whitelist)!=null&&i.some(y=>y.trim()!==""))}const hi=H(()=>[{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 xi(){et.rules.push({service_tier:"priority",action:"filter",scope:"all",user_ids:[],error_message:"",model_whitelist:[],fallback_action:"pass",fallback_error_message:""})}function fi(l){et.rules.splice(l,1)}function ki(l){l.model_whitelist||(l.model_whitelist=[]),l.model_whitelist.push("")}function vi(l,i){var y;(y=l.model_whitelist)==null||y.splice(i,1)}async function wi(){ut.value=!0;try{const l=kt.rules.map(y=>{var _;const o=(_=y.model_whitelist)==null?void 0:_.filter(L=>L.trim()!==""),p=o&&o.length>0;return{beta_token:y.beta_token,action:y.action,scope:y.scope,error_message:y.error_message,model_whitelist:p?o:void 0,fallback_action:p?y.fallback_action||"pass":void 0,fallback_error_message:p&&y.fallback_action==="block"?y.fallback_error_message:void 0}}),i=await R.settings.updateBetaPolicySettings({rules:l});kt.rules=i.rules,k.showSuccess(t("admin.settings.betaPolicy.saved"))}catch(l){k.showError(se(l,t("admin.settings.betaPolicy.saveFailed")))}finally{ut.value=!1}}const ta=H(()=>[{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 Ci(l){return n.payment_enabled_types.includes(l)}const Vi=H(()=>n.payment_enabled_types.length>0);function Ui(l){n.payment_enabled_types.includes(l)?(n.payment_enabled_types=n.payment_enabled_types.filter(i=>i!==l),Si(l)):n.payment_enabled_types=[...n.payment_enabled_types,l]}async function Si(l){const i=Vt.value.filter(y=>y.provider_key===l&&y.enabled);for(const y of i)try{await R.payment.updateProvider(y.id,{enabled:!1}),y.enabled=!1}catch(o){Pi("disable provider failed",y.id,o)}}function Pi(...l){console.warn("[payment]",...l)}const aa=V(!1),sa=V(!1),Vt=V([]),gt=V(!1),Ut=V(!1),Ke=V(null),na=V(null),ia=V(null),os=H(()=>[{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")}]),ls=H(()=>{const l=n.payment_enabled_types;return os.value.filter(i=>l.includes(i.value))}),$i=H(()=>[{value:"round-robin",label:t("admin.settings.payment.strategyRoundRobin")},{value:"least-amount",label:t("admin.settings.payment.strategyLeastAmount")}]),Ei=H(()=>[{value:"minute",label:t("admin.settings.payment.cancelRateLimitUnitMinute")},{value:"hour",label:t("admin.settings.payment.cancelRateLimitUnitHour")},{value:"day",label:t("admin.settings.payment.cancelRateLimitUnitDay")}]),Ai=H(()=>[{value:"rolling",label:t("admin.settings.payment.cancelRateLimitWindowModeRolling")},{value:"fixed",label:t("admin.settings.payment.cancelRateLimitWindowModeFixed")}]);function rs(l){if(!l.enabled)return[];
12const i=Array.isArray(l.supported_types)?l.supported_types:[],y=new Set,o=p=>{const _=xa(p);(_==="alipay"||_==="wxpay")&&y.add(_)};return l.provider_key==="alipay"?i.length===0?y.add("alipay"):i.forEach(p=>{xa(p)==="alipay"&&y.add("alipay")}):l.provider_key==="wxpay"?i.length===0?y.add("wxpay"):i.forEach(p=>{xa(p)==="wxpay"&&y.add("wxpay")}):l.provider_key==="easypay"&&i.forEach(o),Array.from(y)}function oa(l){const i=rs(l);if(i.length===0)return null;for(const y of Vt.value){if(y.id===l.id||!y.enabled)continue;const o=rs(y),p=i.find(_=>o.includes(_));if(p)return{method:p,conflicting:y}}return null}function la(l){k.showError(t("admin.settings.payment.enableConflict",{method:t(`payment.methods.${l.method}`),provider:l.conflicting.name}))}async function Ye(){aa.value=!0;try{const l=await R.payment.getProviders();Vt.value=(l.data||[]).map(i=>({...i,supported_types:Array.isArray(i.supported_types)?i.supported_types:[]}))}catch(l){k.showError(rt(l,t,"payment.errors",t("common.error")))}finally{aa.value=!1}}function Ti(){var l,i;Ke.value=null,(i=ia.value)==null||i.reset(((l=ls.value[0])==null?void 0:l.value)||"easypay"),gt.value=!0}function Fi(l){var i;Ke.value=l,(i=ia.value)==null||i.loadProvider(l),gt.value=!0}async function Mi(l){var i,y,o,p,_;sa.value=!0;try{const L={id:((i=Ke.value)==null?void 0:i.id)??0,provider_key:l.provider_key??((y=Ke.value)==null?void 0:y.provider_key)??"",supported_types:l.supported_types??((o=Ke.value)==null?void 0:o.supported_types)??[],enabled:l.enabled??((p=Ke.value)==null?void 0:p.enabled)??!1,name:l.name??((_=Ke.value)==null?void 0:_.name)??""},xe=oa(L);if(xe){la(xe);return}Ke.value?await R.payment.updateProvider(Ke.value.id,l):await R.payment.createProvider(l),gt.value=!1,await Ye(),await Xa()}catch(L){k.showError(rt(L,t,"payment.errors",t("common.error")))}finally{sa.value=!1}}async function Li(l,i){let y;if(i==="enabled"?y=!l.enabled:i==="refund_enabled"?y=!l.refund_enabled:y=!l.allow_user_refund,i==="enabled"&&y){const p=oa({id:l.id,provider_key:l.provider_key,supported_types:l.supported_types,enabled:!0,name:l.name});if(p){la(p);return}}const o={[i]:y};i==="refund_enabled"&&!y&&(o.allow_user_refund=!1);try{await R.payment.updateProvider(l.id,o),await Ye()}catch(p){k.showError(rt(p,t,"payment.errors",t("common.error")))}}async function Ri(l,i){const y=Array.isArray(l.supported_types)?l.supported_types:[],o=y.includes(i)?y.filter(_=>_!==i):[...y,i],p=oa({id:l.id,provider_key:l.provider_key,supported_types:o,enabled:l.enabled,name:l.name});if(p){la(p);return}try{await R.payment.updateProvider(l.id,{supported_types:o}),await Ye()}catch(_){k.showError(rt(_,t,"payment.errors",t("common.error")))}}function Hi(l){na.value=l.id,Ut.value=!0}async function Di(l){try{await Promise.all(l.map(i=>R.payment.updateProvider(i.id,{sort_order:i.sort_order}))),await Ye()}catch(i){k.showError(rt(i,t,"payment.errors",t("common.error"))),Ye()}}async function ji(){if(na.value)try{await R.payment.deleteProvider(na.value),k.showSuccess(t("common.deleted")),Ut.value=!1,Ye()}catch(l){k.showError(rt(l,t,"payment.errors",t("common.error")))}}Rt(()=>{zn(),On(),Gn(),Zn(),Xn(),ei(),ni(),ai(),oi(),ri(),yi(),Ye()});const O=me({loading:!1,entries:[],total:0,page:1,pageSize:20,search:"",selected:[],searchTimer:null}),j=me({open:!1,mode:"add",saving:!1,userQuery:"",userResults:[],selectedUser:null,editingEntry:null,code:"",rate:"",searchTimer:null}),Le=me({open:!1,saving:!1,rate:""}),Ae=me({show:!1,title:"",message:"",confirmText:"",pending:null});function zi(l,i,y,o){Ae.title=l,Ae.message=i,Ae.confirmText=y,Ae.pending=o,Ae.show=!0}async function Oi(){const l=Ae.pending;if(Ae.show=!1,Ae.pending=null,!!l)try{await l(),k.showSuccess(t("common.saved")),await ot()}catch(i){k.showError(se(i,t("common.error")))}}function Bi(){Ae.show=!1,Ae.pending=null}function ds(l,i,y){l.searchTimer!=null&&window.clearTimeout(l.searchTimer),l.searchTimer=window.setTimeout(y,i)}function cs(l){const i=String(l??"").trim();if(i==="")return null;const y=Number(i);if(Number.isNaN(y)||y<0||y>100){k.showError(t("admin.settings.features.affiliate.modal.errorBadRate"));return}return y}async function ot(){O.loading=!0;try{const l=await bt.listUsers({page:O.page,page_size:O.pageSize,search:O.search});O.entries=l.items??[],O.total=l.total??0;const i=new Set(O.entries.map(y=>
12y.user_id));O.selected=O.selected.filter(y=>i.has(y))}catch(l){k.showError(se(l,t("common.error")))}finally{O.loading=!1}}function Ii(){ds(O,300,()=>{O.page=1,ot()})}function us(l){l<1||(O.page=l,ot())}function qi(l){const i=l.target.checked;O.selected=i?O.entries.map(y=>y.user_id):[]}function Ni(l){const i=O.selected.indexOf(l);i>=0?O.selected.splice(i,1):O.selected.push(l)}function ms(l){j.open=!0,j.mode=l?"edit":"add",j.userQuery="",j.userResults=[],j.selectedUser=null,j.editingEntry=l,j.code=l!=null&&l.aff_code_custom?l.aff_code:"",j.rate=(l==null?void 0:l.aff_rebate_rate_percent)!=null?String(l.aff_rebate_rate_percent):""}function ra(){j.open=!1,j.searchTimer!=null&&(window.clearTimeout(j.searchTimer),j.searchTimer=null)}function Wi(){const l=j.userQuery.trim();if(!l){j.userResults=[];return}ds(j,300,async()=>{try{j.userResults=await bt.lookupUsers(l)}catch(i){k.showError(se(i,t("common.error")))}})}function Ki(l){j.selectedUser=l,j.userQuery="",j.userResults=[]}function Gi(){j.selectedUser=null}const da=H(()=>{var y;if(j.mode==="add"){if(!j.selectedUser)return!1}else if(!j.editingEntry)return!1;const l=j.code.trim()!=="",i=String(j.rate??"").trim()!=="";return l||i?!0:j.mode==="edit"&&((y=j.editingEntry)==null?void 0:y.aff_rebate_rate_percent)!=null});async function Qi(){var p;if(!da.value){k.showError(t("admin.settings.features.affiliate.modal.errorEmpty"));return}let l;j.mode==="add"?l=j.selectedUser.id:l=j.editingEntry.user_id;const i={},y=j.code.trim();y&&(i.aff_code=y.toUpperCase());const o=cs(j.rate);if(o!==void 0){o===null?j.mode==="edit"&&((p=j.editingEntry)==null?void 0:p.aff_rebate_rate_percent)!=null&&(i.clear_rebate_rate=!0):i.aff_rebate_rate_percent=o,j.saving=!0;try{await bt.updateUserSettings(l,i),k.showSuccess(t("common.saved")),ra(),O.page=1,await ot()}catch(_){k.showError(se(_,t("common.error")))}finally{j.saving=!1}}}function Yi(l){zi(t("admin.settings.features.affiliate.customUsers.resetTitle"),t("admin.settings.features.affiliate.customUsers.resetMessage",{email:l.email||`#${l.user_id}`}),t("common.delete"),()=>bt.clearUserSettings(l.user_id))}function Ji(){O.selected.length!==0&&(Le.open=!0,Le.rate="")}async function Zi(){const l=cs(Le.rate);if(l===void 0)return;const i=[...O.selected],y=l===null?{user_ids:i,clear:!0}:{user_ids:i,aff_rebate_rate_percent:l};Le.saving=!0;try{await bt.batchSetRate(y),k.showSuccess(t("common.saved")),Le.open=!1,O.selected=[],await ot()}catch(o){k.showError(se(o,t("common.error")))}finally{Le.saving=!1}}return ft(()=>n.affiliate_enabled,(l,i)=>{l&&!i&&ot()}),ft(()=>n.dingtalk_connect_corp_restriction_policy,l=>{l!=="internal_only"&&(n.dingtalk_connect_bypass_registration&&(n.dingtalk_connect_bypass_registration=!1),n.dingtalk_connect_sync_corp_email&&(n.dingtalk_connect_sync_corp_email=!1),n.dingtalk_connect_sync_display_name&&(n.dingtalk_connect_sync_display_name=!1),n.dingtalk_connect_sync_dept&&(n.dingtalk_connect_sync_dept=!1))}),(l,i)=>{const y=ao("router-link");return r(),Be(_o,null,{default:Pe(()=>[e("div",nm,[ee.value?(r(),d("div",im,[...i[246]||(i[246]=[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:Oe(Xa,["prevent"]),class:"space-y-6",novalidate:""},[e("div",om,[e("nav",{class:"settings-tabs-scroll",role:"tablist","aria-label":a(t)("admin.settings.title")},[e("div",rm,[(r(),d(M,null,B(F,o=>e("button",{key:o.key,id:`settings-tab-${o.key}`,type:"button",role:"tab","aria-selected":U.value===o.key,tabindex:U.value===o.key?0:-1,class:q(["settings-tab",U.value===o.key&&"settings-tab-active"]),onClick:p=>W(o.key),onKeydown:p=>G(p,o.key)},[e("span",cm,[h(ie,{name:o.icon,size:"sm"},null,8,["name"])]),e("span",um,s(a(t)(`admin.settings.tabs.${o.key}`)),1)],42,dm)),64))])],8,lm)]),m(e("div",mm,[e("div",_m,[e("div",pm,[e("h2",gm,s(a(t)("admin.settings.adminApiKey.title")),1),e("p",ym,s(a(t)("admin.settings.adminApiKey.description")),1)]),e("div",bm,[e("div",hm,[e("div",xm,[h(ie,{name:"exclamationTriangle",size:"md",class:"mt-0.5 flex-shrink-0 text-amber-500"}),e("p",fm,s(a(t)("admin.settings.adminApiKey.securityWarning")),1)])]),$e.value?(r(),d("div",km,[i[247]||(i[247]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),T(" "+s(a(t)("common.loading")),1)])):ke.value?(r(),d("div",Um,[e("div",Sm,[e("div",null,[e("label",Pm,s(a(t)("admin.settings.adminApiKey.currentKey")),1),e("code",$m,s(ge.value),1)]),e("div",Em,[e("button",{type:"button",onClick:Qn,disabled:be.value,class:"btn btn-secondary btn-sm"},s(be.value?a(t)("admin.settings.adminApiKey.regenerating"):a(t)("admin.settings.adminApiKey.regenerate")),9,Am),e("button",{type:"button",onClick:Yn,disabled:be.value,class:"btn btn-secondary btn-sm text-red-600 hover:text-red-700 dark:text-red-400"},s(a(t)("admin.settings.adminApiKey.delete")),9,Tm)])]),Re.value?(r(),d("div",Fm,[e("p",Mm,s(a(t)("admin.settings.adminApiKey.keyWarning")),1),e("div",Lm,[e("code",Rm,s(Re.value),1),e("button",{type:"button",onClick:Jn,class:"btn btn-primary btn-sm flex-shrink-0"},s(a(t)("admin.settings.adminApiKey.copyKey")),1)]),e("p",Hm,s(a(t)("admin.settings.adminApiKey.usage")),1)])):x("",!0)])):(r(),d("div",vm,[e("span",wm,s(a(t)("admin.settings.adminApiKey.notConfigured")),1),e("button",{type:"button",onClick:es,disabled:be.value,class:"btn btn-primary btn-sm"},[be.value?(r(),d("svg",Vm,[...i[248]||(i[248]=[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)])])):x("",!0),T(" "+s(be.value?a(t)("admin.settings.adminApiKey.creating"):a(t)("admin.settings.adminApiKey.create")),1)],8,Cm)
12]))])])],512),[[Te,U.value==="security"]]),m(e("div",Dm,[e("div",jm,[e("div",zm,[e("h2",Om,s(a(t)("admin.settings.overloadCooldown.title")),1),e("p",Bm,s(a(t)("admin.settings.overloadCooldown.description")),1)]),e("div",Im,[we.value?(r(),d("div",qm,[i[249]||(i[249]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),T(" "+s(a(t)("common.loading")),1)])):(r(),d(M,{key:1},[e("div",Nm,[e("div",null,[e("label",Wm,s(a(t)("admin.settings.overloadCooldown.enabled")),1),e("p",Km,s(a(t)("admin.settings.overloadCooldown.enabledHint")),1)]),h(S,{modelValue:Se.enabled,"onUpdate:modelValue":i[0]||(i[0]=o=>Se.enabled=o)},null,8,["modelValue"])]),Se.enabled?(r(),d("div",Gm,[e("div",null,[e("label",Qm,s(a(t)("admin.settings.overloadCooldown.cooldownMinutes")),1),m(e("input",{"onUpdate:modelValue":i[1]||(i[1]=o=>Se.cooldown_minutes=o),type:"number",min:"1",max:"120",class:"input w-32"},null,512),[[b,Se.cooldown_minutes,void 0,{number:!0}]]),e("p",Ym,s(a(t)("admin.settings.overloadCooldown.cooldownMinutesHint")),1)])])):x("",!0),e("div",Jm,[e("button",{type:"button",onClick:ti,disabled:Ee.value,class:"btn btn-primary btn-sm"},[Ee.value?(r(),d("svg",Xm,[...i[250]||(i[250]=[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)])])):x("",!0),T(" "+s(Ee.value?a(t)("common.saving"):a(t)("common.save")),1)],8,Zm)])],64))])]),e("div",e_,[e("div",t_,[e("h2",a_,s(a(t)("admin.settings.rateLimit429Cooldown.title")),1),e("p",s_,s(a(t)("admin.settings.rateLimit429Cooldown.description")),1)]),e("div",n_,[De.value?(r(),d("div",i_,[i[251]||(i[251]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),T(" "+s(a(t)("common.loading")),1)])):(r(),d(M,{key:1},[e("div",o_,[e("div",null,[e("label",l_,s(a(t)("admin.settings.rateLimit429Cooldown.enabled")),1),e("p",r_,s(a(t)("admin.settings.rateLimit429Cooldown.enabledHint")),1)]),h(S,{modelValue:E.enabled,"onUpdate:modelValue":i[2]||(i[2]=o=>E.enabled=o)},null,8,["modelValue"])]),E.enabled?(r(),d("div",d_,[e("div",null,[e("label",c_,s(a(t)("admin.settings.rateLimit429Cooldown.cooldownSeconds")),1),m(e("input",{"onUpdate:modelValue":i[3]||(i[3]=o=>E.cooldown_seconds=o),type:"number",min:"1",max:"7200",class:"input w-32"},null,512),[[b,E.cooldown_seconds,void 0,{number:!0}]]),e("p",u_,s(a(t)("admin.settings.rateLimit429Cooldown.cooldownSecondsHint")),1)])])):x("",!0),e("div",m_,[e("button",{type:"button",onClick:ii,disabled:P.value,class:"btn btn-primary btn-sm"},[P.value?(r(),d("svg",p_,[...i[252]||(i[252]=[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)])])):x("",!0),T(" "+s(P.value?a(t)("common.saving"):a(t)("common.save")),1)],8,__)])],64))])]),e("div",g_,[e("div",y_,[e("h2",b_,s(a(t)("admin.settings.streamTimeout.title")),1),e("p",h_,s(a(t)("admin.settings.streamTimeout.description")),1)]),e("div",x_,[u.value?(r(),d("div",f_,[i[253]||(i[253]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),T(" "+s(a(t)("common.loading")),1)])):(r(),d(M,{key:1},[e("div",k_,[e("div",null,[e("label",v_,s(a(t)("admin.settings.streamTimeout.enabled")),1),e("p",w_,s(a(t)("admin.settings.streamTimeout.enabledHint")),1)]),h(S,{modelValue:g.enabled,"onUpdate:modelValue":i[4]||(i[4]=o=>g.enabled=o)},null,8,["modelValue"])]),g.enabled?(r(),d("div",C_,[e("div",null,[e("label",V_,s(a(t)("admin.settings.streamTimeout.action")),1),m(e("select",{"onUpdate:modelValue":i[5]||(i[5]=o=>g.action=o),class:"input w-64"},[e("option",U_,s(a(t)("admin.settings.streamTimeout.actionTempUnsched")),1),e("option",S_,s(a(t)("admin.settings.streamTimeout.actionError")),1),e("option",P_,s(a(t)("admin.settings.streamTimeout.actionNone")),1)],512),[[Je,g.action]]),e("p",$_,s(a(t)("admin.settings.streamTimeout.actionHint")),1)]),g.action==="temp_unsched"?(r(),d("div",E_,[e("label",A_,s(a(t)("admin.settings.streamTimeout.tempUnschedMinutes")),1),m(e("input",{"onUpdate:modelValue":i[6]||(i[6]=o=>g.temp_unsched_minutes=o),type:"number",min:"1",max:"60",class:"input w-32"},null,512),[[b,g.temp_unsched_minutes,void 0,{number:!0}]]),e("p",T_,s(a(t)("admin.settings.streamTimeout.tempUnschedMinutesHint")),1)])):x("",!0),e("div",null,[e("label",F_,s(a(t)("admin.settings.streamTimeout.thresholdCount")),1),m(e("input",{"onUpdate:modelValue":i[7]||(i[7]=o=>g.threshold_count=o),type:"number",min:"1",max:"10",class:"input w-32"},null,512),[[b,g.threshold_count,void 0,{number:!0}]]),e("p",M_,s(a(t)("admin.settings.streamTimeout.thresholdCountHint")),1)]),e("div",null,[e("label",L_,s(a(t)("admin.settings.streamTimeout.thresholdWindowMinutes")),1),m(e("input",{"onUpdate:modelValue":i[8]||(i[8]=o=>g.threshold_window_minutes=o),type:"number",min:"1",max:"60",class:"input w-32"},null,512),[[b,g.threshold_window_minutes,void 0,{number:!0}]]),e("p",R_,s(a(t)("admin.settings.streamTimeout.thresholdWindowMinutesHint")),1)])])):x("",!0),e("div",H_,[e("button",{type:"button",onClick:li,disabled:c.value,class:"btn btn-primary btn-sm"},[c.value?(r(),d("svg",j_,[...i[254]||(i[254]=[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)])])):x("",!0),T(" "+s(c.value?a(t)("common.saving"):a(t)("common.save")),1)],8,D_)])],64))])]),e("div",z_,[e("div",O_,[e("h2",B_,s(a(t)("admin.settings.rectifier.title")),1),e("p",I_,s(a(t)("admin.settings.rectifier.description")),1)]),e("div",q_,[z.value?(r(),d("div",N_,[i[255]||(i[255]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),T(" "+s(a(t)("common.loading")),1)])):(r(),d(M,{key:1},[e("div",W_,[e("div",null,[e("label",K_,s(a(t)("admin.settings.rectifier.enabled")),1),e("p",G_,s(a(t)("admin.settings.rectifier.enabledHint")),1)]),h(S,{modelValue:de.enabled,"onUpdate:modelValue":i[9]||(i[9]=o=>de.enabled=o)},null,8,["modelValue"])]),de.enabled?(r(),d("div",Q_,[e("div",Y_,[e("div",null,[e("label",J_,s(a(t)("admin.settings.rectifier.thinkingSignature")),1),e("p",Z_,s(a(t)("admin.settings.rectifier.thinkingSignatureHint")),1)]),h(S,{modelValue:de.thinking_signature_enabled,"onUpdate:modelValue":i[10]||(i[10]=o=>de.thinking_signature_enabled=o)},null,8,["modelValue"])]),e("div",X_,[e("div",null,[e("label",ep,s(a(t)("admin.settings.rectifier.thinkingBudget")),1),e("p",tp,s(a(t)("admin.settings.rectifier.thinkingBudgetHint")),1)]),h(S,{modelValue:de.thinking_budget_enabled,"onUpdate:modelValue":i[11]||(i[11]=o=>de.thinking_budget_enabled=o)},null,8,["modelValue"])]),e("div",ap,[e("div",null,[e("label",sp,s(a(t)("admin.settings.rectifier.apikeySignature")),1),e("p",np,s(a(t)("admin.settings.rectifier.apikeySignatureHint")),1)]),h(S,{modelValue:de.apikey_signature_enabled,"onUpdate:modelValue":i[12]||(i[12]=o=>de.apikey_signature_enabled=o)},null,8,["modelValue"])]),de.apikey_signature_enabled?(r(),d("div",ip,[e("div",null,[e("label",op,s(a(t)("admin.settings.rectifier.apikeyPatterns")),1),e("p",lp,s(a(t)("admin.settings.rectifier.apikeyPatternsHint")),1)]),(r(!0),d(M,null,B(de.apikey_signature_patterns,(o,p)=>(r(),d("div",{key:p,class:"flex items-center gap-2"},[m(e("input",{"onUpdate:modelValue":_=>de.apikey_signature_patterns[p]=_,type:"text",class:"input input-sm flex-1",placeholder:a(t)("admin.settings.rectifier.apikeyPatternPlaceholder")},null,8,rp),[[b,de.apikey_signature_patterns[p]]]),e("button",{type:"button",onClick:_=>de.apikey_signature_patterns.splice(p,1),class:"btn btn-ghost btn-xs text-red-500 hover:text-red-700"},[...i[256]||(i[256]=[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,dp)]))),128)),e("button",{type:"button",onClick:i[13]||(i[13]=o=>de.apikey_signature_patterns.push("")),class:"btn btn-ghost btn-xs text-primary-600 dark:text-primary-400"}," + "+s(a(t)("admin.settings.rectifier.addPattern")),1)])):x("",!0)])):x("",!0),e("div",cp,[e("button",{type:"button",onClick:di,disabled:Me.value,class:"btn btn-primary btn-sm"},[Me.value?(r(),d("svg",mp,[...i[257]||(i[257]=[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)])])):x("",!0),T(" "+s(Me.value?a(t)("common.saving"):a(t)("common.save")),1)],8,up)])],64))])]),e("div",_p,[e("div",pp,[e("h2",gp,s(a(t)("admin.settings.betaPolicy.title")),1),e("p",yp,s(a(t)("admin.settings.betaPolicy.description")),1)]),e("div",bp,[Ht.value?(r(),d("div",hp,[i[258]||(i[258]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),T(" "+s(a(t)("common.loading")),1)])):(r(),d(M,{key:1},[(r(!0),d(M,null,B(kt.rules,o=>{var p;return r(),d("div",{key:o.beta_token,class:"rounded-lg border border-gray-200 p-4 dark:border-dark-600"},[e("div",xp,[e("span",fp,s(_i(o.beta_token)),1),e("span",kp,s(o.beta_token),1)]),e("div",vp,[e("div",null,[e("label",wp,s(a(t)("admin.settings.betaPolicy.action")),1),h(fe,{modelValue:o.action,"onUpdate:modelValue":_=>o.action=_,options:as.value},null,8,["modelValue","onUpdate:modelValue","options"])]),e("div",null,[e("label",Cp,s(a(t)("admin.settings.betaPolicy.scope")),1),h(fe,{modelValue:o.scope,"onUpdate:modelValue":_=>o.scope=_,options:ci.value},null,8,["modelValue","onUpdate:modelValue","options"])])]),o.action==="block"?(r(),d("div",Vp,[e("label",Up,s(a(t)("admin.settings.betaPolicy.errorMessage")),1),m(e("input",{"onUpdate:modelValue":_=>o.error_message=_,type:"text",class:"input",placeholder:a(t)("admin.settings.betaPolicy.errorMessagePlaceholder")},null,8,Sp),[[b,o.error_message]]),e("p",Pp,s(a(t)("admin.settings.betaPolicy.errorMessageHint")),1)])):x("",!0),(p=ss[o.beta_token])!=null&&p.length?(r(),d("div",$p,[e("label",Ep,s(a(t)("admin.settings.betaPolicy.quickPresets")),1),e("div",Ap,[(r(!0),d(M,null,B(ss[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:L=>pi(o,_),title:_.description},s(_.label),9,Tp))),128))])])):x("",!0),e("div",Fp,[e("label",Mp,s(a(t)("admin.settings.betaPolicy.modelWhitelist")),1),e("p",Lp,s(a(t)("admin.settings.betaPolicy.modelWhitelistHint")),1),(r(!0),d(M,null,B(o.model_whitelist||[],(_,L)=>(r(),d("div",{key:L,class:"mb-1.5 flex items-center gap-2"},[m(e("input",{"onUpdate:modelValue":xe=>o.model_whitelist[L]=xe,type:"text",class:"input input-sm flex-1",placeholder:a(t)("admin.settings.betaPolicy.modelPatternPlaceholder")},null,8,Rp),[[b,o.model_whitelist[L]]]),e("button",{type:"button",onClick:xe=>o.model_whitelist.splice(L,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[259]||(i[259]=[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,Hp)]))),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[260]||(i[260]=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)),T(" "+s(a(t)("admin.settings.betaPolicy.addModelPattern")),1)],8,Dp),e("div",jp,[e("span",zp,s(a(t)("admin.settings.betaPolicy.commonPatterns"))+":",1),(r(),d(M,null,B(mi,_=>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:L=>gi(o,_)},s(_),9,Op)),64))])]),o.model_whitelist&&o.model_whitelist.length>0?(r(),d("div",Bp,[e("label",Ip,s(a(t)("admin.settings.betaPolicy.fallbackAction")),1),h(fe,{modelValue:o.fallback_action||"pass","onUpdate:modelValue":_=>o.fallback_action=_,options:as.value},null,8,["modelValue","onUpdate:modelValue","options"]),e("p",qp,s(a(t)("admin.settings.betaPolicy.fallbackActionHint")),1),o.fallback_action==="block"?(r(),d("div",Np,[m(e("input",{"onUpdate:modelValue":_=>o.fallback_error_message=_,type:"text",class:"input",placeholder:a(t)("admin.settings.betaPolicy.fallbackErrorMessagePlaceholder")},null,8,Wp),[[b,o.fallback_error_message]]),e("p",Kp,s(a(t)("admin.settings.betaPolicy.errorMessageHint")),1)])):x("",!0)])):x("",!0)])}),128)),e("div",Gp,[e("button",{type:"button",onClick:wi,disabled:ut.value,class:"btn btn-primary btn-sm"},[ut.value?(r(),d("svg",Yp,[...i[261]||(i[261]=[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)])])):x("",!0),T(" "+s(ut.value?a(t)("common.saving"):a(t)("common.save")),1)],8,Qp)])],64))])]),e("div",Jp,[e("div",Zp,[e("h2",Xp,s(a(t)("admin.settings.open
12aiFastPolicy.title")),1),e("p",e0,s(a(t)("admin.settings.openaiFastPolicy.description")),1)]),e("div",t0,[et.rules.length===0?(r(),d("div",a0,s(a(t)("admin.settings.openaiFastPolicy.empty")),1)):x("",!0),(r(!0),d(M,null,B(et.rules,(o,p)=>(r(),d("div",{key:p,class:"rounded-lg border border-gray-200 p-4 dark:border-dark-600"},[e("div",s0,[e("span",n0,s(a(t)("admin.settings.openaiFastPolicy.ruleHeader",{index:p+1})),1),e("button",{type:"button",onClick:_=>fi(p),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[262]||(i[262]=[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,i0)]),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-${p}`},[e("span",l0,s(a(t)(ea(o)?"admin.settings.openaiFastPolicy.summaryTargetModels":"admin.settings.openaiFastPolicy.summaryAllModels")),1),i[265]||(i[265]=e("span",{"aria-hidden":"true"},"→",-1)),e("span",r0,s(is(o.action)),1),ea(o)?(r(),d(M,{key:0},[i[263]||(i[263]=e("span",{"aria-hidden":"true"},"·",-1)),e("span",d0,s(a(t)("admin.settings.openaiFastPolicy.summaryOtherModels")),1),i[264]||(i[264]=e("span",{"aria-hidden":"true"},"→",-1)),e("span",c0,s(is(o.fallback_action||"pass")),1)],64)):x("",!0)],8,o0),e("div",u0,[e("div",null,[e("label",m0,s(a(t)("admin.settings.openaiFastPolicy.serviceTier")),1),h(fe,{modelValue:o.service_tier,"onUpdate:modelValue":_=>o.service_tier=_,options:bi.value},null,8,["modelValue","onUpdate:modelValue","options"])]),e("div",null,[e("label",_0,s(a(t)("admin.settings.openaiFastPolicy.action")),1),h(fe,{modelValue:o.action,"onUpdate:modelValue":_=>o.action=_,options:ns.value},null,8,["modelValue","onUpdate:modelValue","options"])]),e("div",null,[e("label",p0,s(a(t)("admin.settings.openaiFastPolicy.scope")),1),h(fe,{modelValue:o.scope,"onUpdate:modelValue":_=>o.scope=_,options:hi.value},null,8,["modelValue","onUpdate:modelValue","options"])])]),e("div",g0,[e("label",y0,s(a(t)("admin.settings.openaiFastPolicy.userIds")),1),e("p",b0,s(a(t)("admin.settings.openaiFastPolicy.userIdsHint")),1),h(Xu,{"model-value":o.user_ids||[],"onUpdate:modelValue":_=>o.user_ids=_},null,8,["model-value","onUpdate:modelValue"])]),o.action==="block"?(r(),d("div",h0,[e("label",x0,s(a(t)("admin.settings.openaiFastPolicy.errorMessage")),1),m(e("input",{"onUpdate:modelValue":_=>o.error_message=_,type:"text",class:"input",placeholder:a(t)("admin.settings.openaiFastPolicy.errorMessagePlaceholder")},null,8,f0),[[b,o.error_message]]),e("p",k0,s(a(t)("admin.settings.openaiFastPolicy.errorMessageHint")),1)])):x("",!0),e("div",{class:"mt-3",role:"group","aria-labelledby":`openai-fast-policy-models-label-${p}`,"aria-describedby":`openai-fast-policy-models-hint-${p}`},[e("label",{id:`openai-fast-policy-models-label-${p}`,class:"mb-1 block text-xs font-medium text-gray-600 dark:text-gray-400"},s(a(t)("admin.settings.openaiFastPolicy.modelWhitelist")),9,w0),e("p",{id:`openai-fast-policy-models-hint-${p}`,class:"mb-2 text-xs text-gray-400 dark:text-gray-500"},s(a(t)("admin.settings.openaiFastPolicy.modelWhitelistHint")),9,C0),(r(!0),d(M,null,B(o.model_whitelist||[],(_,L)=>(r(),d("div",{key:L,class:"mb-1.5 flex items-center gap-2"},[m(e("input",{"onUpdate:modelValue":xe=>o.model_whitelist[L]=xe,type:"text",class:"input input-sm flex-1",placeholder:a(t)("admin.settings.openaiFastPolicy.modelPatternPlaceholder")},null,8,V0),[[b,o.model_whitelist[L]]]),e("button",{type:"button",onClick:xe=>vi(o,L),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[266]||(i[266]=[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,U0)]))),128)),e("button",{type:"button",onClick:_=>ki(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[267]||(i[267]=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)),T(" "+s(a(t)("admin.settings.openaiFastPolicy.addModelPattern")),1)],8,S0)],8,v0),ea(o)?(r(),d("div",P0,[e("label",$0,s(a(t)("admin.settings.openaiFastPolicy.fallbackAction")),1),h(fe,{modelValue:o.fallback_action||"pass","onUpdate:modelValue":_=>o.fallback_action=_,options:ns.value},null,8,["modelValue","onUpdate:modelValue","options"]),e("p",E0,s(a(t)("admin.settings.openaiFastPolicy.fallbackActionHint")),1),o.fallback_action==="block"?(r(),d("div",A0,[m(e("input",{"onUpdate:modelValue":_=>o.fallback_error_message=_,type:"text",class:"input",placeholder:a(t)("admin.settings.openaiFastPolicy.fallbackErrorMessagePlaceholder")},null,8,T0),[[b,o.fallback_error_message]])])):x("",!0)])):x("",!0)]))),128)),e("div",null,[e("button",{type:"button",onClick:xi,class:"btn btn-secondary btn-sm inline-flex items-center gap-1"},[i[268]||(i[268]=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)),T(" "+s(a(t)("admin.settings.openaiFastPolicy.addRule")),1)]),e("p",F0,s(a(t)("admin.settings.openaiFastPolicy.saveHint")),1)])])])],512),[[Te,U.value==="gateway"]]),m(e("div",M0,[e("div",L0,[e("div",R0,[e("h2",H0,s(a(t)("admin.settings.registration.title")),1),e("p",D0,s(a(t)("admin.settings.registration.description")),1)]),e("div",j0,[e("div",z0,[e("div",null,[e("label",O0,s(a(t)("admin.settings.registration.enableRegistration")),1),e("p",B0,s(a(t)("admin.settings.registration.enableRegistrationHint")),1)]),h(S,{modelValue:n.registration_enabled,"onUpdate:modelValue":i[14]||(i[14]=o=>n.registration_enabled=o)},null,8,["modelValue"])]),e("div",I0,[e("div",null,[e("label",q0,s(a(t)("admin.settings.registration.emailVerification")),1),e("p",N0,s(a(t)("admin.settings.registration.emailVerificationHint")),1)]),h(S,{modelValue:n.email_verify_enabled,"onUpdate:modelValue":i[15]||(i[15]=o=>n.email_verify_enabled=o)},null,8,["modelValue"])]),e("div",W0,[e("label",K0,s(a(t)("admin.settings.registration.emailSuffixWhitelist")),1),e("p",G0,s(a(t)("admin.settings.registration.emailSuffixWhitelistHint")),1),e("div",Q0,[e("div",Y0,[(r(!0),d(M,null,B(I.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,s(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:p=>cn(o)},[h(ie,{name:"x",size:"xs",class:"h-3.5 w-3.5","stroke-width":2})],8,J0)]))),128)),e("div",Z0,[m(e("input",{"onUpdate:modelValue":i[16]||(i[16]=o=>re.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)=>ja&&ja(...o)),onKeydown:i[18]||(i[18]=(...o)=>za&&za(...o)),onBlur:Da,onPaste:un},null,40,X0),[[b,re.value]])])])]),e("p",eg,s(a(t)("admin.settings.registration.emailSuffixWhitelistInputHint")),1)]),e("div",tg,[e("div",null,[e("label",ag,s(a(t)("admin.settings.registration.emailDomainQuota")),1),e("p",sg,s(a(t)("admin.settings.registration.emailDomainQuotaHint")),1)]),h(S,{modelValue:n.registration_email_domain_quota_enabled,"onUpdate:modelValue":i[19]||(i[19]=o=>n.registration_email_domain_quota_enabled=o)},null,8,["modelValue"])]),e("div",ng,[e("div",null,[e("label",ig,s(a(t)("admin.settings.registration.promoCode")),1),e("p",og,s(a(t)("admin.settings.registration.promoCodeHint")),1)]),h(S,{modelValue:n.promo_code_enabled,"onUpdate:modelValue":i[20]||(i[20]=o=>n.promo_code_enabled=o)},null,8,["modelValue"])]),e("div",lg,[e("div",null,[e("label",rg,s(a(t)("admin.settings.registration.invitationCode")),1),e("p",dg,s(a(t)("admin.settings.registration.invitationCodeHint")),1)]),h(S,{modelValue:n.invitation_code_enabled,"onUpdate:modelValue":i[21]||(i[21]=o=>n.invitation_code_enabled=o)},null,8,["modelValue"])]),n.email_verify_enabled?(r(),d("div",cg,[e("div",null,[e("label",ug,s(a(t)("admin.settings.registration.passwordReset")),1),e("p",mg,s(a(t)("admin.settings.registration.passwordResetHint")),1)]),h(S,{modelValue:n.password_reset_enabled,"onUpdate:modelValue":i[22]||(i[22]=o=>n.password_reset_enabled=o)},null,8,["modelValue"])])):x("",!0),n.email_verify_enabled&&n.password_reset_enabled?(r(),d("div",_g,[e("label",pg,s(a(t)("admin.settings.registration.frontendUrl")),1),m(e("input",{"onUpdate:modelValue":i[23]||(i[23]=o=>n.frontend_url=o),type:"url",class:"input",placeholder:a(t)("admin.settings.registration.frontendUrlPlaceholder")},null,8,gg),[[b,n.frontend_url]]),e("p",yg,s(a(t)("admin.settings.registration.frontendUrlHint")),1)])):x("",!0),e("div",bg,[e("div",null,[e("label",hg,s(a(t)("admin.settings.registration.totp")),1
12),e("p",xg,s(a(t)("admin.settings.registration.totpHint")),1),n.totp_encryption_key_configured?x("",!0):(r(),d("p",fg,s(a(t)("admin.settings.registration.totpKeyNotConfigured")),1))]),h(S,{modelValue:n.totp_enabled,"onUpdate:modelValue":i[24]||(i[24]=o=>n.totp_enabled=o),disabled:!n.totp_encryption_key_configured},null,8,["modelValue","disabled"])]),e("div",kg,[e("div",vg,[e("div",null,[e("label",wg,s(a(t)("admin.settings.security.passkey")),1),e("p",Cg,s(a(t)("admin.settings.security.passkeyHint")),1)]),h(S,{modelValue:n.passkey_enabled,"onUpdate:modelValue":i[25]||(i[25]=o=>n.passkey_enabled=o),"data-testid":"passkey-toggle",disabled:!n.passkey_configured},null,8,["modelValue","disabled"])]),e("div",{class:q(["mt-3 rounded-lg border px-3 py-2 text-sm",n.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",Vg,s(n.passkey_configured?a(t)("admin.settings.security.passkeyConfigured"):a(t)("admin.settings.security.passkeyNotConfigured")),1),e("p",Ug,s(a(t)("admin.settings.security.passkeyRPID"))+": "+s(n.passkey_rp_id||a(t)("admin.settings.security.passkeyValueNotConfigured")),1),e("p",Sg,s(a(t)("admin.settings.security.passkeyOrigins"))+": "+s(n.passkey_rp_origins.length>0?n.passkey_rp_origins.join(", "):a(t)("admin.settings.security.passkeyValueNotConfigured")),1),n.passkey_configured?x("",!0):(r(),d("p",Pg,s(a(t)("admin.settings.security.passkeyDeploymentHint")),1))],2)]),e("div",$g,[e("div",null,[e("label",Eg,s(a(t)("admin.settings.security.stepUp")),1),e("p",Ag,s(a(t)("admin.settings.security.stepUpHint")),1)]),h(S,{modelValue:n.step_up_enabled,"onUpdate:modelValue":i[26]||(i[26]=o=>n.step_up_enabled=o)},null,8,["modelValue"])]),e("div",Tg,[e("div",null,[e("label",Fg,s(a(t)("admin.settings.security.sessionBinding")),1),e("p",Mg,s(a(t)("admin.settings.security.sessionBindingHint")),1)]),h(S,{modelValue:n.session_binding_enabled,"onUpdate:modelValue":i[27]||(i[27]=o=>n.session_binding_enabled=o)},null,8,["modelValue"])]),e("div",Lg,[e("div",null,[e("label",Rg,s(a(t)("admin.settings.security.auditRetention")),1),e("p",Hg,s(a(t)("admin.settings.security.auditRetentionHint")),1)]),m(e("input",{"onUpdate:modelValue":i[28]||(i[28]=o=>n.audit_log_retention_days=o),type:"number",min:"0",class:"input w-28 text-right"},null,512),[[b,n.audit_log_retention_days,void 0,{number:!0}]])])])]),e("div",Dg,[e("div",jg,[e("h2",zg,s(a(t)("admin.settings.apiKeyAcl.title")),1),e("p",Og,s(a(t)("admin.settings.apiKeyAcl.description")),1)]),e("div",Bg,[e("div",Ig,[e("div",null,[e("label",qg,s(a(t)("admin.settings.apiKeyAcl.trustForwardedIp")),1),e("p",Ng,s(a(t)("admin.settings.apiKeyAcl.trustForwardedIpHint")),1)]),h(S,{modelValue:n.api_key_acl_trust_forwarded_ip,"onUpdate:modelValue":i[29]||(i[29]=o=>n.api_key_acl_trust_forwarded_ip=o)},null,8,["modelValue"])]),n.api_key_acl_trust_forwarded_ip?(r(),d("div",Wg,[e("label",Kg,s(a(t)("admin.settings.apiKeyAcl.forwardedClientIpHeaders")),1),e("p",Gg,s(a(t)("admin.settings.apiKeyAcl.forwardedClientIpHeadersHint")),1),e("div",Qg,[e("div",Yg,[(r(!0),d(M,null,B(n.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,s(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:p=>pn(o)},[h(ie,{name:"x",size:"xs",class:"h-3.5 w-3.5","stroke-width":2})],8,Jg)]))),128)),e("div",Zg,[m(e("input",{id:"forwarded-client-ip-headers","onUpdate:modelValue":i[30]||(i[30]=o=>te.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:gn,onBlur:qa,onPaste:yn},null,40,Xg),[[b,te.value]])])])]),e("p",ey,s(a(t)("admin.settings.apiKeyAcl.forwardedClientIpHeadersRiskHint")),1)])):x("",!0)])]),e("div",ty,[e("div",ay,[e("div",sy,[h(ie,{name:"shield",size:"md",class:"text-primary-500"}),e("h2",ny,s(a(t)("admin.settings.panelRateLimit.title")),1)]),e("p",iy,s(a(t)("admin.settings.panelRateLimit.description")),1)]),e("div",oy,[Z.value?(r(),d("div",ly,[i[269]||(i[269]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),T(" "+s(a(t)("common.loading")),1)])):(r(),d(M,{key:1},[e("div",ry,[e("div",dy,[h(ie,{name:"infoCircle",size:"md",class:"mt-0.5 flex-shrink-0 text-sky-500"}),e("p",cy,s(a(t)("admin.settings.panelRateLimit.proxySafeNote")),1)])]),e("div",uy,[e("div",null,[e("label",my,s(a(t)("admin.settings.panelRateLimit.enabled")),1),e("p",_y,s(a(t)("admin.settings.panelRateLimit.enabledHint")),1)]),h(S,{modelValue:v.enabled,"onUpdate:modelValue":i[31]||(i[31]=o=>v.enabled=o)},null,8,["modelValue"])]),v.enabled?(r(),d("div",py,[e("div",gy,[e("div",null,[e("label",yy,s(a(t)("admin.settings.panelRateLimit.userRpm")),1),e("div",by,[m(e("input",{"onUpdate:modelValue":i[32]||(i[32]=o=>v.user_rpm=o),"data-testid":"panel-rate-limit-user-rpm",type:"number",min:"0",max:"100000",class:"input w-32"},null,512),[[b,v.user_rpm,void 0,{number:!0}]]),e("span",hy,s(a(t)("admin.settings.panelRateLimit.perMinute")),1)]),e("p",xy,s(a(t)("admin.settings.panelRateLimit.userRpmHint")),1)]),e("div",null,[e("label",fy,s(a(t)("admin.settings.panelRateLimit.heavyRpm")),1),e("div",ky,[m(e("input",{"onUpdate:modelValue":i[33]||(i[33]=o=>v.heavy_rpm=o),type:"number",min:"0",max:"100000",class:"input w-32"},null,512),[[b,v.heavy_rpm,void 0,{number:!0}]]),e("span",vy,s(a(t)("admin.settings.panelRateLimit.perMinute")),1)]),e("p",wy,s(a(t)("admin.settings.panelRateLimit.heavyRpmHint")),1)]),e("div",null,[e("label",Cy,s(a(t)("admin.settings.panelRateLimit.publicIpRpm")),1),e("div",Vy,[m(e("input",{"onUpdate:modelValue":i[34]||(i[34]=o=>v.public_ip_rpm=o),type:"number",min:"0",max:"100000",class:"input w-32"},null,512),[[b,v.public_ip_rpm,void 0,{number:!0}]]),e("span",Uy,s(a(t)("admin.settings.panelRateLimit.perMinute")),1)]),e("p",Sy,s(a(t)("admin.settings.panelRateLimit.publicIpRpmHint")),1)])]),e("div",Py,[e("div",null,[e("label",$y,s(a(t)("admin.settings.panelRateLimit.exemptAdmin")),1),e("p",Ey,s(a(t)("admin.settings.panelRateLimit.exemptAdminHint")),1)]),h(S,{modelValue:v.exempt_admin,"onUpdate:modelValue":i[35]||(i[35]=o=>v.exempt_admin=o)},null,8,["modelValue"])])])):x("",!0),e("div",Ay,[e("button",{type:"button","data-testid":"panel-rate-limit-save",onClick:si,disabled:pe.value,class:"btn btn-primary btn-sm"}
12,[pe.value?(r(),d("svg",Fy,[...i[270]||(i[270]=[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)])])):x("",!0),T(" "+s(pe.value?a(t)("common.saving"):a(t)("common.save")),1)],8,Ty)])],64))])]),e("div",My,[e("div",Ly,[e("h2",Ry,s(a(t)("admin.settings.captcha.title")),1),e("p",Hy,s(a(t)("admin.settings.captcha.description")),1)]),e("div",Dy,[e("div",jy,[e("div",null,[e("label",zy,s(a(t)("admin.settings.captcha.enable")),1),e("p",Oy,s(a(t)("admin.settings.captcha.enableHint")),1)]),h(S,{modelValue:Ot.value,"onUpdate:modelValue":i[36]||(i[36]=o=>Ot.value=o),"data-testid":"captcha-enabled-toggle"},null,8,["modelValue"])]),Ot.value?(r(),d("div",By,[e("div",Iy,[e("label",qy,s(a(t)("admin.settings.captcha.provider")),1),e("div",Ny,[e("button",{type:"button","data-testid":"captcha-provider-turnstile",class:q(["inline-flex items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition",Ne.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=>Bt("turnstile"))},s(a(t)("admin.settings.captcha.providerTurnstile")),3),e("button",{type:"button","data-testid":"captcha-provider-tencent",class:q(["inline-flex items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition",Ne.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=>Bt("tencent"))},s(a(t)("admin.settings.captcha.providerTencent")),3),e("button",{type:"button","data-testid":"captcha-provider-aliyun",class:q(["inline-flex items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition",Ne.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=>Bt("aliyun"))},s(a(t)("admin.settings.captcha.providerAliyun")),3)])]),Ne.value==="turnstile"?(r(),d("div",Wy,[e("div",null,[e("label",Ky,s(a(t)("admin.settings.turnstile.siteKey")),1),m(e("input",{"onUpdate:modelValue":i[40]||(i[40]=o=>n.turnstile_site_key=o),type:"text",class:"input font-mono text-sm",placeholder:"0x4AAAAAAA..."},null,512),[[b,n.turnstile_site_key]]),e("p",Gy,[T(s(a(t)("admin.settings.turnstile.siteKeyHint"))+" ",1),e("a",Qy,s(a(t)("admin.settings.turnstile.cloudflareDashboard")),1)])]),e("div",null,[e("label",Yy,s(a(t)("admin.settings.turnstile.secretKey")),1),m(e("input",{"onUpdate:modelValue":i[41]||(i[41]=o=>n.turnstile_secret_key=o),type:"password",class:"input font-mono text-sm",placeholder:"0x4AAAAAAA..."},null,512),[[b,n.turnstile_secret_key]]),e("p",Jy,s(n.turnstile_secret_key_configured?a(t)("admin.settings.turnstile.secretKeyConfiguredHint"):a(t)("admin.settings.turnstile.secretKeyHint")),1)])])):Ne.value==="tencent"?(r(),d("div",Zy,[e("div",Xy,[e("label",eb,s(a(t)("admin.settings.tencentCaptcha.region")),1),e("div",tb,[e
12("button",{type:"button","data-testid":"tencent-captcha-region-cn",class:q(["inline-flex items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium transition",n.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=>n.tencent_captcha_region="cn")},s(a(t)("admin.settings.tencentCaptcha.regionCn")),3),e("button",{type:"button","data-testid":"tencent-captcha-region-intl",class:q(["inline-flex items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium transition",n.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=>n.tencent_captcha_region="intl")},s(a(t)("admin.settings.tencentCaptcha.regionIntl")),3)]),e("p",ab,s(a(t)("admin.settings.tencentCaptcha.regionHint")),1)]),e("div",sb,[e("div",nb,[e("h3",ib,s(a(t)("admin.settings.tencentCaptcha.appCredentialsTitle")),1),e("p",ob,s(a(t)("admin.settings.tencentCaptcha.appCredentialsHint")),1)]),e("div",null,[e("label",lb,s(a(t)("admin.settings.tencentCaptcha.appId")),1),m(e("input",{"onUpdate:modelValue":i[44]||(i[44]=o=>n.tencent_captcha_app_id=o),type:"text",inputmode:"numeric",class:"input font-mono text-sm",placeholder:"123456789"},null,512),[[b,n.tencent_captcha_app_id]])]),e("div",null,[e("label",rb,s(a(t)("admin.settings.tencentCaptcha.appSecretKey")),1),m(e("input",{"onUpdate:modelValue":i[45]||(i[45]=o=>n.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,db),[[b,n.tencent_captcha_app_secret_key]]),e("p",cb,s(n.tencent_captcha_app_secret_key_configured?a(t)("admin.settings.tencentCaptcha.configured"):a(t)("admin.settings.tencentCaptcha.required")),1)]),e("div",ub,[e("h3",mb,s(a(t)("admin.settings.tencentCaptcha.cloudCredentialsTitle")),1),e("p",_b,s(a(t)("admin.settings.tencentCaptcha.cloudCredentialsHint")),1)]),e("div",null,[e("label",pb,s(a(t)("admin.settings.tencentCaptcha.cloudSecretId")),1),m(e("input",{"onUpdate:modelValue":i[46]||(i[46]=o=>n.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,gb),[[b,n.tencent_captcha_cloud_secret_id]]),e("p",yb,s(n.tencent_captcha_cloud_secret_id_configured?a(t)("admin.settings.tencentCaptcha.configured"):a(t)("admin.settings.tencentCaptcha.required")),1)]),e("div",null,[e("label",bb,s(a(t)("admin.settings.tencentCaptcha.cloudSecretKey")),1),m(e("input",{"onUpdate:modelValue":i[47]||(i[47]=o=>n.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,hb),[[b,n.tencent_captcha_cloud_secret_key]]),e("p",xb,s(n.tencent_captcha_cloud_secret_key_configured?a(t)("admin.settings.tencentCaptcha.configured"):a(t)("admin.settings.tencentCaptcha.required")),1)])]),e("p",fb,s(a(t)("admin.settings.tencentCaptcha.camPermissionHint")),1),e("p",kb,s(a(t)("admin.settings.tencentCaptcha.aidEncryptedHint")),1),e("div",vb,[e("a",{href:It.value.console,target:"_blank",rel:"noopener noreferrer",class:"text-primary-600 hover:text-primary-500"},s(a(t)("admin.settings.tencentCaptcha.openCaptchaConsole")),9,wb),e("a",{href:It.value.cloudKeys,target:"_blank",rel:"noopener noreferrer",class:"text-primary-600 hover:text-primary-500"},s(a(t)("admin.settings.tencentCaptcha.createCloudKeys")),9,Cb),e("a",{href:It.value.webDocs,target:"_blank",rel:"noopener noreferrer",class:"text-primary-600 hover:text-primary-500"},s(a(t)("admin.settings.tencentCaptcha.openWebDocs")),9,Vb)])])):(r(),d("div",Ub,[e("div",Sb,[e("div",null,[e("label",Pb,s(a(t)("admin.settings.aliyunCaptcha.region")),1),e("div",$b,[e("button",{type:"button",class:q(["inline-flex items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium transition",n.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=>n.aliyun_captcha_region="cn")},s(a(t)("admin.settings.aliyunCaptcha.regionCn")),3),e("button",{type:"button",class:q(["inline-flex items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium transition",n.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=>n.aliyun_captcha_region="sgp")},s(a(t)("admin.settings.aliyunCaptcha.regionSgp")),3)]),e("p",Eb,s(a(t)("admin.settings.aliyunCaptcha.regionHint")),1)]),e("div",null,[e("label",Ab,s(a(t)("admin.settings.aliyunCaptcha.prefix")),1),m(e("input",{"onUpdate:modelValue":i[50]||(i[50]=o=>n.aliyun_captcha_prefix=o),type:"text",class:"input font-mono text-sm",placeholder:"14xxxxx"},null,512),[[b,n.aliyun_captcha_prefix]]),e("p",Tb,s(a(t)("admin.settings.aliyunCaptcha.prefixHint")),1)])]),e("div",null,[e("label",Fb,
12s(a(t)("admin.settings.aliyunCaptcha.sceneId")),1),m(e("input",{"onUpdate:modelValue":i[51]||(i[51]=o=>n.aliyun_captcha_scene_id=o),type:"text",class:"input font-mono text-sm",placeholder:"1cxxxxxx"},null,512),[[b,n.aliyun_captcha_scene_id]]),e("p",Mb,s(a(t)("admin.settings.aliyunCaptcha.sceneIdHint")),1)]),e("div",null,[e("label",Lb,s(a(t)("admin.settings.aliyunCaptcha.accessKeyId")),1),m(e("input",{"onUpdate:modelValue":i[52]||(i[52]=o=>n.aliyun_captcha_access_key_id=o),type:"text",class:"input font-mono text-sm",placeholder:"LTAI..."},null,512),[[b,n.aliyun_captcha_access_key_id]]),e("p",Rb,s(a(t)("admin.settings.aliyunCaptcha.accessKeyIdHint")),1)]),e("div",null,[e("label",Hb,s(a(t)("admin.settings.aliyunCaptcha.accessKeySecret")),1),m(e("input",{"onUpdate:modelValue":i[53]||(i[53]=o=>n.aliyun_captcha_access_key_secret=o),type:"password",autocomplete:"new-password",class:"input font-mono text-sm",placeholder:"••••••••"},null,512),[[b,n.aliyun_captcha_access_key_secret]]),e("p",Db,s(n.aliyun_captcha_access_key_secret_configured?a(t)("admin.settings.aliyunCaptcha.accessKeySecretConfiguredHint"):a(t)("admin.settings.aliyunCaptcha.accessKeySecretHint")),1)])]))])):x("",!0)])]),e("div",jb,[e("div",zb,[e("h2",Ob,s(a(t)("admin.settings.linuxdo.title")),1),e("p",Bb,s(a(t)("admin.settings.linuxdo.description")),1)]),e("div",Ib,[e("div",qb,[e("div",null,[e("label",Nb,s(a(t)("admin.settings.linuxdo.enable")),1),e("p",Wb,s(a(t)("admin.settings.linuxdo.enableHint")),1)]),h(S,{modelValue:n.linuxdo_connect_enabled,"onUpdate:modelValue":i[54]||(i[54]=o=>n.linuxdo_connect_enabled=o)},null,8,["modelValue"])]),n.linuxdo_connect_enabled?(r(),d("div",Kb,[e("div",Gb,[e("div",null,[e("label",Qb,s(a(t)("admin.settings.linuxdo.clientId")),1),m(e("input",{"onUpdate:modelValue":i[55]||(i[55]=o=>n.linuxdo_connect_client_id=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.linuxdo.clientIdPlaceholder")},null,8,Yb),[[b,n.linuxdo_connect_client_id]]),e("p",Jb,s(a(t)("admin.settings.linuxdo.clientIdHint")),1)]),e("div",null,[e("label",Zb,s(a(t)("admin.settings.linuxdo.clientSecret")),1),m(e("input",{"onUpdate:modelValue":i[56]||(i[56]=o=>n.linuxdo_connect_client_secret=o),type:"password",class:"input font-mono text-sm",placeholder:n.linuxdo_connect_client_secret_configured?a(t)("admin.settings.linuxdo.clientSecretConfiguredPlaceholder"):a(t)("admin.settings.linuxdo.clientSecretPlaceholder")},null,8,Xb),[[b,n.linuxdo_connect_client_secret]]),e("p",eh,s(n.linuxdo_connect_client_secret_configured?a(t)("admin.settings.linuxdo.clientSecretConfiguredHint"):a(t)("admin.settings.linuxdo.clientSecretHint")),1)]),e("div",null,[e("label",th,s(a(t)("admin.settings.linuxdo.redirectUrl")),1),m(e("input",{"onUpdate:modelValue":i[57]||(i[57]=o=>n.linuxdo_connect_redirect_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.linuxdo.redirectUrlPlaceholder")},null,8,ah),[[b,n.linuxdo_connect_redirect_url]]),e("div",sh,[e("button",{type:"button",class:"btn btn-secondary btn-sm w-fit",onClick:hn},s(a(t)("admin.settings.linuxdo.quickSetCopy")),1),Gt.value?(r(),d("code",nh,s(Gt.value),1)):x("",!0)]),e("p",ih,s(a(t)("admin.settings.linuxdo.redirectUrlHint")),1)])])])):x("",!0)])]),e("div",oh,[e("div",lh,[e("h2",rh,s(C("邮箱快捷登录","Email OAuth Sign-in")),1),e("p",dh,s(C("开启 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",ch,[e("div",uh,[e("div",mh,[e("div",_h,[e("div",null,[i[271]||(i[271]=e("h3",{class:"font-medium text-gray-900 dark:text-white"}," GitHub ",-1)),e("p",ph,s(C("GitHub OAuth App 需要 read:user user:email 权限,回调地址填写下方后端地址。","GitHub OAuth App needs read:user user:email scopes. Use the backend callback URL below.")),1)]),h(S,{modelValue:n.github_oauth_enabled,"onUpdate:modelValue":i[58]||(i[58]=o=>n.github_oauth_enabled=o)},null,8,["modelValue"])]),n.github_oauth_enabled?(r(),d("div",gh,[e("div",yh,[ae.value?(r(),d(M,{key:0},[i[272]||(i[272]=T(" 开通引导:GitHub Settings → Developer settings → ",-1)),i[273]||(i[273]=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[274]||(i[274]=T(" → New OAuth App;Homepage URL 填站点域名,Authorization callback URL 填下面的后端回调地址。 ",-1))],64)):(r(),d(M,{key:1},[i[275]||(i[275]=T(" Setup guide: GitHub Settings → Developer settings → ",-1)),i[276]||(i[276]=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[277]||(i[277]=T(" → New OAuth App. Use your site origin as Homepage URL and the backend callback URL below as Authorization callback URL. ",-1))],64))]),e("div",bh,[e("div",null,[i[278]||(i[278]=e("label",{class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},"Client ID",-1)),m(e("input",{"onUpdate:modelValue":i[59]||(i[59]=o=>n.github_oauth_client_id=o),type:"text",class:"input font-mono text-sm",placeholder:"GitHub OAuth Client ID"},null,512),[[b,n.github_oauth_client_id]])]),e("div",null,[i[279]||(i[279]=e("label",{class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},"Client Secret",-1)),m(e("input",{"onUpdate:modelValue":i[60]||(i[60]=o=>n.github_oauth_client_secret=o),type:"password",class:"input font-mono text-sm",placeholder:n.github_oauth_client_secret_configured?C("密钥已配置,留空以保留当前值。","Secret configured. Leave empty to keep the current value."):"GitHub OAuth Client Secret"},null,8,hh),[[b,n.github_oauth_client_secret]])])]),e("div",null,[e("label",x
12h,s(C("后端回调地址","Backend Callback URL")),1),m(e("input",{"onUpdate:modelValue":i[61]||(i[61]=o=>n.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),[[b,n.github_oauth_redirect_url]]),e("div",fh,[e("button",{type:"button",class:"btn btn-secondary btn-sm w-fit",onClick:i[62]||(i[62]=o=>Na("github"))},s(C("生成并复制","Generate and copy")),1),Qt.value?(r(),d("code",kh,s(Qt.value),1)):x("",!0)])]),e("div",null,[e("label",vh,s(C("前端回跳地址","Frontend Callback URL")),1),m(e("input",{"onUpdate:modelValue":i[63]||(i[63]=o=>n.github_oauth_frontend_redirect_url=o),type:"text",class:"input font-mono text-sm",placeholder:"/auth/oauth/callback"},null,512),[[b,n.github_oauth_frontend_redirect_url]])])])):x("",!0)]),e("div",wh,[e("div",Ch,[e("div",null,[i[280]||(i[280]=e("h3",{class:"font-medium text-gray-900 dark:text-white"}," Google ",-1)),e("p",Vh,s(C("Google OAuth 客户端需要 openid email profile 范围,并在凭据里登记后端回调地址。","Google OAuth client needs openid email profile scopes and the backend callback URL registered in credentials.")),1)]),h(S,{modelValue:n.google_oauth_enabled,"onUpdate:modelValue":i[64]||(i[64]=o=>n.google_oauth_enabled=o)},null,8,["modelValue"])]),n.google_oauth_enabled?(r(),d("div",Uh,[e("div",Sh,s(C("开通引导:Google Cloud Console → APIs & Services → OAuth consent screen 完成同意屏幕;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",Ph,[e("div",null,[i[281]||(i[281]=e("label",{class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},"Client ID",-1)),m(e("input",{"onUpdate:modelValue":i[65]||(i[65]=o=>n.google_oauth_client_id=o),type:"text",class:"input font-mono text-sm",placeholder:"Google OAuth Client ID"},null,512),[[b,n.google_oauth_client_id]])]),e("div",null,[i[282]||(i[282]=e("label",{class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},"Client Secret",-1)),m(e("input",{"onUpdate:modelValue":i[66]||(i[66]=o=>n.google_oauth_client_secret=o),type:"password",class:"input font-mono text-sm",placeholder:n.google_oauth_client_secret_configured?C("密钥已配置,留空以保留当前值。","Secret configured. Leave empty to keep the current value."):"Google OAuth Client Secret"},null,8,$h),[[b,n.google_oauth_client_secret]])])]),e("div",null,[e("label",Eh,s(C("后端回调地址","Backend Callback URL")),1),m(e("input",{"onUpdate:modelValue":i[67]||(i[67]=o=>n.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),[[b,n.google_oauth_redirect_url]]),e("div",Ah,[e("button",{type:"button",class:"btn btn-secondary btn-sm w-fit",onClick:i[68]||(i[68]=o=>Na("google"))},s(C("生成并复制","Generate and copy")),1),Yt.value?(r(),d("code",Th,s(Yt.value),1)):x("",!0)])]),e("div",null,[e("label",Fh,s(C("前端回跳地址","Frontend Callback URL")),1),m(e("input",{"onUpdate:modelValue":i[69]||(i[69]=o=>n.google_oauth_frontend_redirect_url=o),type:"text",class:"input font-mono text-sm",placeholder:"/auth/oauth/callback"},null,512),[[b,n.google_oauth_frontend_redirect_url]])])])):x("",!0)])])])]),e("div",Mh,[e("div",Lh,[e("h2",Rh,s(a(t)("admin.settings.wechatConnect.title")),1),e("p",Hh,s(a(t)("admin.settings.wechatConnect.description")),1)]),e("div",Dh,[e("div",jh,[e("div",null,[e("label",zh,s(a(t)("admin.settings.wechatConnect.enabledLabel")),1),e("p",Oh,s(a(t)("admin.settings.wechatConnect.enabledHint")),1)]),h(S,{modelValue:n.wechat_connect_enabled,"onUpdate:modelValue":i[70]||(i[70]=o=>n.wechat_connect_enabled=o),"data-testid":"wechat-connect-enabled"},null,8,["modelValue"])]),n.wechat_connect_enabled?(r(),d("div",Bh,[e("div",Ih,[e("div",qh,[e("div",Nh,[e("div",null,[e("h3",Wh,s(C("PC 应用","PC App")),1),e("p",Kh,s(C("桌面浏览器通过微信开放平台扫码登录。可与公众号或移动应用同时存在。","Desktop browsers sign in through WeChat Open Platform QR login. This can coexist with Official Account or Mobile App.")),1)]),h(S,{"model-value":n.wechat_connect_open_enabled,"data-testid":"wechat-connect-open-enabled","onUpdate:modelValue":xn},null,8,["model-value"])]),n.wechat_connect_open_enabled?(r(),d("div",Gh,[e("div",null,[e("label",Qh,s(C("PC AppID","PC App ID")),1),m(e("input",{"onUpdate:modelValue":i[71]||(i[71]=o=>n.wechat_connect_open_app_id=o),"data-testid":"wechat-connect-open-app-id",type:"text",class:"input font-mono text-sm",placeholder:C("微信开放平台 PC 应用 AppID","WeChat Open Platform PC App ID")},null,8,Yh),[[b,n.wechat_connect_open_app_id]])]),e("div",null,[e("label",Jh,s(C("PC AppSecret","PC App Secret")),1),m(e("input",{"onUpdate:modelValue":i[72]||(i[72]=o=>n.wechat_connect_open_app_secret=o),"data-testid":"wechat-connect-open-app-secret",type:"password",class:"input font-mono text-sm",placeholder:n.wechat_connect_open_app_secret_configured?C("密钥已配置,留空以保留当前值。","Secret configured. Leave empty to keep the current value."):C("微信开放平台 PC 应用 AppSecret","WeChat Open Platform PC App Secret")},null,8,Zh),[[b,n.wechat_connect_open_app_secret]])])])):x("",!0)]),e("div",Xh,[e("div",ex,[e("div",null,[e("h3",tx,s(C("公众号","Official Account")),1),e("p",ax,s(C("仅在微信内浏览器可用;非微信环境下会显示不可用。","Only available inside the WeChat browser. It is shown as unavailable outside WeChat.")),1)]),h(S,{"model-value":n.wechat_connect_mp_enabled,"data-testid":"wechat-connect-mp-enabled","onUpdate:modelValue":fn},null,8,["model-value"])]),n.wechat_connect_mp_enabled?(r(),d("div",sx,[e("div",null,[e("label",nx,s(C("公众号 AppID","Official Account App ID")),1),m(e("input",{"onUpdate:modelValue":i[73]||(i[73]=o=>n.wechat_connect_mp_app_id=o),"data-testid":"wechat-connect-mp-app-id",type:"text",class:"input font-mono text-sm",placeholder:C("公众号 AppID","Official Account App ID")},null,8,ix),[[b,n.wechat_connect_mp_app_id]])]),e("div",null,[e("label",ox,s(C("公众号 AppSecret","Official Account App Secret")),1),m(e("input",{"onUpdate:modelValue":i[74]||(i[74]=o=>n.wechat_connect_mp_app_secret=o),"data-testid":"wechat-connect-mp-app-secret",type:"password",class:"input font-mono text-sm",placeholder:n.wechat_connect_mp_app_secret_configured?C("密钥已配置,留空以保留当前值。","Secret configured. Leave empty to keep the current value."):C("公众号 AppSecret","Official Account App Secret")},null,8,lx),[[b,n.wechat_connect_mp_app_secret]])])])):x("",!0)]),e("div",rx,[e("div",dx,[e("div",null,[e("h3",cx,s(C("移动应用","Mobile App")),1),e("p",ux,s(C("原ç”
12Ÿç§»åŠ¨ç«¯é€šè¿‡å¾®ä¿¡ SDK 唤起授权,网页端不会直接发起该流程。","Native mobile clients start authorization through the WeChat SDK. The web UI does not launch this flow directly.")),1)]),h(S,{"model-value":n.wechat_connect_mobile_enabled,"data-testid":"wechat-connect-mobile-enabled","onUpdate:modelValue":kn},null,8,["model-value"])]),n.wechat_connect_mobile_enabled?(r(),d("div",mx,[e("div",null,[e("label",_x,s(C("移动应用 AppID","Mobile App ID")),1),m(e("input",{"onUpdate:modelValue":i[75]||(i[75]=o=>n.wechat_connect_mobile_app_id=o),"data-testid":"wechat-connect-mobile-app-id",type:"text",class:"input font-mono text-sm",placeholder:C("移动应用 AppID","Mobile App ID")},null,8,px),[[b,n.wechat_connect_mobile_app_id]])]),e("div",null,[e("label",gx,s(C("移动应用 AppSecret","Mobile App Secret")),1),m(e("input",{"onUpdate:modelValue":i[76]||(i[76]=o=>n.wechat_connect_mobile_app_secret=o),"data-testid":"wechat-connect-mobile-app-secret",type:"password",class:"input font-mono text-sm",placeholder:n.wechat_connect_mobile_app_secret_configured?C("密钥已配置,留空以保留当前值。","Secret configured. Leave empty to keep the current value."):C("移动应用 AppSecret","Mobile App Secret")},null,8,yx),[[b,n.wechat_connect_mobile_app_secret]])])])):x("",!0)])]),n.wechat_connect_open_enabled&&(n.wechat_connect_mp_enabled||n.wechat_connect_mobile_enabled)?(r(),d("div",bx,s(C("如果同时启用 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)):x("",!0),e("div",hx,[e("div",null,[e("label",xx,s(C("浏览器回调地址","Browser Redirect URL")),1),m(e("input",{"data-testid":"wechat-connect-redirect-url","onUpdate:modelValue":i[77]||(i[77]=o=>n.wechat_connect_redirect_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.wechatConnect.redirectUrlPlaceholder")},null,8,fx),[[b,n.wechat_connect_redirect_url]]),e("p",kx,s(C("用于 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",vx,[e("button",{type:"button",class:"btn btn-secondary btn-sm w-fit",onClick:vn},s(a(t)("admin.settings.wechatConnect.generateAndCopy")),1),Jt.value?(r(),d("code",wx,s(Jt.value),1)):x("",!0)])])]),e("div",null,[e("label",Cx,s(a(t)("admin.settings.wechatConnect.frontendRedirectUrlLabel")),1),m(e("input",{"data-testid":"wechat-connect-frontend-redirect-url","onUpdate:modelValue":i[78]||(i[78]=o=>n.wechat_connect_frontend_redirect_url=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.wechatConnect.frontendRedirectUrlPlaceholder")},null,8,Vx),[[b,n.wechat_connect_frontend_redirect_url]]),e("p",Ux,s(a(t)("admin.settings.wechatConnect.frontendRedirectUrlHint")),1)])])):x("",!0)])]),e("div",Sx,[e("div",Px,[e("h2",$x,s(a(t)("admin.settings.dingtalk.title")),1),e("p",Ex,s(a(t)("admin.settings.dingtalk.description")),1)]),e("div",Ax,[e("div",Tx,[e("div",null,[e("label",Fx,s(a(t)("admin.settings.dingtalk.enable")),1),e("p",Mx,s(a(t)("admin.settings.dingtalk.enableHint")),1)]),h(S,{modelValue:n.dingtalk_connect_enabled,"onUpdate:modelValue":i[79]||(i[79]=o=>n.dingtalk_connect_enabled=o)},null,8,["modelValue"])]),n.dingtalk_connect_enabled?(r(),d("div",Lx,[e("div",Rx,[e("div",null,[e("label",Hx,s(a(t)("admin.settings.dingtalk.clientId")),1),m(e("input",{"onUpdate:modelValue":i[80]||(i[80]=o=>n.dingtalk_connect_client_id=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.dingtalk.clientIdPlaceholder")},null,8,Dx),[[b,n.dingtalk_connect_client_id]]),e("p",jx,s(a(t)("admin.settings.dingtalk.clientIdHint")),1)]),e("div",null,[e("label",zx,s(a(t)("admin.settings.dingtalk.clientSecret")),1),m(e("input",{"onUpdate:modelValue":i[81]||(i[81]=o=>n.dingtalk_connect_client_secret=o),type:"password",class:"input font-mono text-sm",placeholder:n.dingtalk_connect_client_secret_configured?a(t)("admin.settings.dingtalk.clientSecretConfiguredPlaceholder"):a(t)("admin.settings.dingtalk.clientSecretPlaceholder")},null,8,Ox),[[b,n.dingtalk_connect_client_secret]]),e("p",Bx,s(n.dingtalk_connect_client_secret_configured?a(t)("admin.settings.dingtalk.clientSecretConfiguredHint"):a(t)("admin.settings.dingtalk.clientSecretHint")),1)]),e("div",null,[e("label",Ix,s(a(t)("admin.settings.dingtalk.redirectUrl")),1),m(e("input",{"onUpdate:modelValue":i[82]||(i[82]=o=>n.dingtalk_connect_redirect_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.dingtalk.redirectUrlPlaceholder")},null,8,qx),[[b,n.dingtalk_connect_redirect_url]]),e("p",Nx,s(a(t)("admin.settings.dingtalk.redirectUrlHint")),1)]),e("div",Wx,[e("label",Kx,s(a(t)("admin.settings.dingtalk.corpPolicy.label")),1),e("p",Gx,s(a(t)("admin.settings.dingtalk.corpPolicy.hint")),1),e("div",Qx,[e("label",Yx,[m(e("input",{"onUpdate:modelValue":i[83]||(i[83]=o=>n.dingtalk_connect_corp_restriction_policy=o),type:"radio",value:"none",class:"h-4 w-4 text-primary-600"},null,512),[[fs,n.dingtalk_connect_corp_restriction_policy]]),e("span",Jx,s(a(t)("admin.settings.dingtalk.corpPolicy.none")),1)]),e("label",Zx,[m(e("input",{"onUpdate:modelValue":i[84]||(i[84]=o=>n.dingtalk_connect_corp_restriction_policy=o),type:"radio",value:"internal_only",class:"h-4 w-4 text-primary-600"},null,512),[[fs,n.dingtalk_connect_corp_restriction_policy]]),e("span",Xx,s(a(t)("admin.settings.dingtalk.corpPolicy.internalOnly")),1)])])]),n.dingtalk_connect_corp_restriction_policy==="internal_only"?(r(),d("div",e1,[e("div",null,[e("label",t1,s(a(t)("admin.settings.dingtalk.bypassRegistration")),1),e("p",a1,s(a(t)("admin.settings.dingtalk.bypassRegistrationHint")),1)]),h(S,{modelValue:n.dingtalk_connect_bypass_registration,"onUpdate:modelValue":i[85]||(i[85]=o=>n.dingtalk_connect_bypass_registration=o)},null,8,["modelValue"])])):x("",!0),n.dingtalk_connect_corp_restriction_policy==="internal_only"?(r(),d("div",s1,[e("div",n1,[e("div",null,[e("label",i1,s(a(t)("admin.settings.dingtalk.syncDisplayName")),1),e("p",o1,s(a(t)("admin.settings.dingtalk.syncDisplayNameHint")),1)]),h(S,{modelValue:n.dingtalk_connect_sync_display_name,"onUpdate:modelValue":i[86]||(i[86]=o=>n.dingtalk_connect_sync_display_name=o)},null,8,["modelValue"])]),n.dingtalk_connect_sync_display_name?(r(),d("div",l1,[e("div",r1,[e("label",d1,s(a(t)("admin.settings.dingtalk.syncDisplayNameTarget")),1),m(e("input",{"onUpdate:modelValue":i[87]||(i[87]=o=>n.dingtalk_connect_sync_display_name_attr_key=o),type:"text",placeholder:"dingtalk_name",class:"input text-sm flex-1 max-w-xs"},null,512),[[b,n.dingtalk_connect_sync_display_name_attr_key]])]),e("div",c1,[e("label",u1,s(a(t)("admin.settings.dingtalk.syncAttrDisplayName")),1),m(e("input",{"onUpdate:modelValue":i[88]||(i[88]=o=>n.dingtalk_connect_sync_display_name_attr_name=o),type:"text",placeholder:C("钉钉姓名","DingTalk Name"),class:"input text-sm flex-1 max-w-xs"},null,8,m1),[[b,n.dingtalk_connect_sync_display_name_attr_name]])])])):x("",!0),n.dingtalk_connect_sync_display_name?(r(),d("p",_1,s(a(t)("admin.settings.dingtalk.syncDisplayNameTargetHint")),1)):x("",!0)])):x("",!0),n.dingtalk_connect_corp_restriction_policy==="internal_only"?(r(),d("div",p1,[e("div",g1,[e("div",null,[e("label",y1,s(a(t)("admin.settings.dingtalk.syncCorpEmail")),1),e("p",b1,s(a(t)("admin.settings.dingtalk.syncCorpEmailHint")),1),e("p",h1,s(a(t)("admin.settings.dingtalk.syncCorpEmailPermissionHint")),1)]),h(S,{modelValue:n.dingtalk_connect_sync_corp_email,"onUpdate:modelValue":i[89]||(i[89]=o=>n.dingtalk_connect_sync_corp_email=o)},null,8,["modelValue"])]),n.dingtalk_connect_sync_corp_email?(r(
12),d("div",x1,[e("div",f1,[e("label",k1,s(a(t)("admin.settings.dingtalk.syncCorpEmailTarget")),1),m(e("input",{"onUpdate:modelValue":i[90]||(i[90]=o=>n.dingtalk_connect_sync_corp_email_attr_key=o),type:"text",placeholder:"dingtalk_email",class:"input text-sm flex-1 max-w-xs"},null,512),[[b,n.dingtalk_connect_sync_corp_email_attr_key]])]),e("div",v1,[e("label",w1,s(a(t)("admin.settings.dingtalk.syncAttrDisplayName")),1),m(e("input",{"onUpdate:modelValue":i[91]||(i[91]=o=>n.dingtalk_connect_sync_corp_email_attr_name=o),type:"text",placeholder:C("钉钉企业邮箱","DingTalk Corporate Email"),class:"input text-sm flex-1 max-w-xs"},null,8,C1),[[b,n.dingtalk_connect_sync_corp_email_attr_name]])])])):x("",!0),n.dingtalk_connect_sync_corp_email?(r(),d("p",V1,s(a(t)("admin.settings.dingtalk.syncCorpEmailTargetHint")),1)):x("",!0)])):x("",!0),n.dingtalk_connect_corp_restriction_policy==="internal_only"?(r(),d("div",U1,[e("div",S1,[e("div",null,[e("label",P1,s(a(t)("admin.settings.dingtalk.syncDept")),1),e("p",$1,s(a(t)("admin.settings.dingtalk.syncDeptHint")),1),e("p",E1,s(a(t)("admin.settings.dingtalk.syncDeptPermissionHint")),1)]),h(S,{modelValue:n.dingtalk_connect_sync_dept,"onUpdate:modelValue":i[92]||(i[92]=o=>n.dingtalk_connect_sync_dept=o)},null,8,["modelValue"])]),n.dingtalk_connect_sync_dept?(r(),d("div",A1,[e("div",T1,[e("label",F1,s(a(t)("admin.settings.dingtalk.syncDeptTarget")),1),m(e("input",{"onUpdate:modelValue":i[93]||(i[93]=o=>n.dingtalk_connect_sync_dept_attr_key=o),type:"text",placeholder:"dingtalk_department",class:"input text-sm flex-1 max-w-xs"},null,512),[[b,n.dingtalk_connect_sync_dept_attr_key]])]),e("div",M1,[e("label",L1,s(a(t)("admin.settings.dingtalk.syncAttrDisplayName")),1),m(e("input",{"onUpdate:modelValue":i[94]||(i[94]=o=>n.dingtalk_connect_sync_dept_attr_name=o),type:"text",placeholder:C("钉钉部门","DingTalk Department"),class:"input text-sm flex-1 max-w-xs"},null,8,R1),[[b,n.dingtalk_connect_sync_dept_attr_name]])])])):x("",!0),n.dingtalk_connect_sync_dept?(r(),d("p",H1,s(a(t)("admin.settings.dingtalk.syncDeptTargetHint")),1)):x("",!0)])):x("",!0)])])):x("",!0)])]),e("div",D1,[e("div",j1,[e("h2",z1,s(a(t)("admin.settings.oidc.title")),1),e("p",O1,s(a(t)("admin.settings.oidc.description")),1)]),e("div",B1,[e("div",I1,[e("div",null,[e("label",q1,s(a(t)("admin.settings.oidc.enable")),1),e("p",N1,s(a(t)("admin.settings.oidc.enableHint")),1)]),h(S,{modelValue:n.oidc_connect_enabled,"onUpdate:modelValue":i[95]||(i[95]=o=>n.oidc_connect_enabled=o)},null,8,["modelValue"])]),n.oidc_connect_enabled?(r(),d("div",W1,[e("div",K1,[e("div",null,[e("label",G1,s(a(t)("admin.settings.oidc.providerName")),1),m(e("input",{"onUpdate:modelValue":i[96]||(i[96]=o=>n.oidc_connect_provider_name=o),type:"text",class:"input",placeholder:a(t)("admin.settings.oidc.providerNamePlaceholder")},null,8,Q1),[[b,n.oidc_connect_provider_name]])]),e("div",null,[e("label",Y1,s(a(t)("admin.settings.oidc.clientId")),1),m(e("input",{"onUpdate:modelValue":i[97]||(i[97]=o=>n.oidc_connect_client_id=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.clientIdPlaceholder")},null,8,J1),[[b,n.oidc_connect_client_id]])]),e("div",null,[e("label",Z1,s(a(t)("admin.settings.oidc.clientSecret")),1),m(e("input",{"onUpdate:modelValue":i[98]||(i[98]=o=>n.oidc_connect_client_secret=o),type:"password",class:"input font-mono text-sm",placeholder:n.oidc_connect_client_secret_configured?a(t)("admin.settings.oidc.clientSecretConfiguredPlaceholder"):a(t)("admin.settings.oidc.clientSecretPlaceholder")},null,8,X1),[[b,n.oidc_connect_client_secret]]),e("p",ef,s(n.oidc_connect_client_secret_configured?a(t)("admin.settings.oidc.clientSecretConfiguredHint"):a(t)("admin.settings.oidc.clientSecretHint")),1)])]),e("div",tf,[e("div",null,[e("label",af,s(a(t)("admin.settings.oidc.issuerUrl")),1),m(e("input",{"onUpdate:modelValue":i[99]||(i[99]=o=>n.oidc_connect_issuer_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.issuerUrlPlaceholder")},null,8,sf),[[b,n.oidc_connect_issuer_url]])]),e("div",null,[e("label",nf,s(a(t)("admin.settings.oidc.discoveryUrl")),1),m(e("input",{"onUpdate:modelValue":i[100]||(i[100]=o=>n.oidc_connect_discovery_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.discoveryUrlPlaceholder")},null,8,of),[[b,n.oidc_connect_discovery_url]])]),e("div",null,[e("label",lf,s(a(t)("admin.settings.oidc.authorizeUrl")),1),m(e("input",{"onUpdate:modelValue":i[101]||(i[101]=o=>n.oidc_connect_authorize_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.authorizeUrlPlaceholder")},null,8,rf),[[b,n.oidc_connect_authorize_url]])]),e("div",null,[e("label",df,s(a(t)("admin.settings.oidc.tokenUrl")),1),m(e("input",{"onUpdate:modelValue":i[102]||(i[102]=o=>n.oidc_connect_token_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.tokenUrlPlaceholder")},null,8,cf),[[b,n.oidc_connect_token_url]])]),e("div",null,[e("label",uf,s(a(t)("admin.settings.oidc.userinfoUrl")),1),m(e("input",{"onUpdate:modelValue":i[103]||(i[103]=o=>n.oidc_connect_userinfo_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.userinfoUrlPlaceholder")},null,8,mf),[[b,n.oidc_connect_userinfo_url]])]),e("div",null,[e("label",_f,s(a(t)("admin.settings.oidc.jwksUrl")),1),m(e("input",{"onUpdate:modelValue":i[104]||(i[104]=o=>n.oidc_connect_jwks_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.jwksUrlPlaceholder")},null,8,pf),[[b,n.oidc_connect_jwks_url]])])]),e("div",gf,[e("div",null,[e("label",yf,s(a(t)("admin.settings.oidc.scopes")),1),m(e("input",{"onUpdate:modelValue":i[105]||(i[105]=o=>n.oidc_connect_scopes=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.scopesPlaceholder")},null,8,bf),[[b,n.oidc_connect_scopes]]),e("p",hf,s(a(t)("admin.settings.oidc.scopesHint")),1)]),e("div",null,[e("label",xf,s(a(t)("admin.settings.oidc.redirectUrl")),1),m(e("input",{"onUpdate:modelValue":i[106]||(i[106]=o=>n.oidc_connect_redirect_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.redirectUrlPlaceholder")},null,8,ff),[[b,n.oidc_connect_redirect_url]]),e("div",kf,[e("button",{type:"button",class:"btn btn-secondary btn-sm w-fit",onClick:wn},s(a(t)("admin.settings.oidc.quickSetCopy")),1),Zt.value?(r(),d("code",vf,s(Zt.value),1)):x("",!0)]),e("p",wf,s(a(t)("admin.settings.oidc.redirectUrlHint")),1)]),e("div",Cf,[e("label",Vf,s(a(t)("admin.settings.oidc.frontendRedirectUrl")),1),m(e("input",{"onUpdate:modelValue":i[107]||(i[107]=o=>n.oidc_connect_frontend_redirect_url=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.frontendRedirectUrlPlaceholder")},null,8,Uf),[[b,n.oidc_connect_frontend_redirect_url]]),e("p",Sf,s(a(t)("admin.settings.oidc.frontendRedirectUrlHint")),1)])]),e("div",Pf,[e("div",null,[e("label",$f,s(a(t)("admin.settings.oidc.tokenAuthMethod")),1),m(e("select",{"onUpdate:modelValue":i[108]||(i[108]=o=>n.oidc_connect_token_auth_method=o),class:"input font-mono text-sm"},[...i[283]||(i[283]=[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),[[Je,n.oidc_connect_token_auth_method]])]),e("div",null,[e("label",Ef,s(a(t)("admin.settings.oidc.clockSkewSeconds")),1),m(e("input",{"onUpdate:modelValue":i[109]||(i[109]=o=>n.oidc_connect_clock_skew_seconds=o),type:"number",min:"0",max:"600",class:"input"},null,512),[[b,n.oidc_connect_clock_skew_seconds,void 0,{number:!0}]])]),e("div",null,[e("label",Af,s(a(t)("admin.settings.oidc.allowedSigningAlgs")),1),m(e("input",{"onUpdate:modelValue":i[110]||(i[110]=o=>n.oidc_connect_allowed_signing_algs=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.allowedSigningAlgsPlaceholder")},null,8,Tf),[[b,n.oidc_connect_allowed_signing_algs]])])]),e("div",Ff,[e("div",Mf,[e("div",null,[e("label",Lf,s(a(t)("admin.settings.oidc.usePkce")),1)]),h(S,{modelValue:n.oidc_connect_use_pkce,"onUpdate:modelValue":i[111]||(i[111]=o=>n.oidc_connect_use_pkce=o),"data-testid":"oidc-connect-use-pkce"},null,8,["modelValue"])]),e("div",Rf,[e("div",null,[e("label",Hf,s(a(t)("admin.settings.oidc.validateIdToken")),1)]),h(S,{modelValue:n.oidc_connect_validate_id_token,"onUpdate:modelValue":i[112]||(i[112]=o=>n.oidc_connect_validate_id_token=o),"data-testid":"oidc-connect-validate-id-token"},null,8,["modelValue"])]),e("div",Df,[e("div",null,[e("label",jf,s(a(t)("admin.settings.oidc.requireEmailVerified")),1)]),h(S,{modelValue:n.oidc_connect_require_email_verified,"onUpdate:modelValue":i[113]||(i[113]=o=>n.oidc_connect_require_email_verified=o)},null,8,["modelValue"])])]),e("div",zf,[e("div",null,[e("label",Of,s(a(t)("admin.settings.oidc.userinfoEmailPath")),1
12),m(e("input",{"onUpdate:modelValue":i[114]||(i[114]=o=>n.oidc_connect_userinfo_email_path=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.userinfoEmailPathPlaceholder")},null,8,Bf),[[b,n.oidc_connect_userinfo_email_path]])]),e("div",null,[e("label",If,s(a(t)("admin.settings.oidc.userinfoIdPath")),1),m(e("input",{"onUpdate:modelValue":i[115]||(i[115]=o=>n.oidc_connect_userinfo_id_path=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.userinfoIdPathPlaceholder")},null,8,qf),[[b,n.oidc_connect_userinfo_id_path]])]),e("div",null,[e("label",Nf,s(a(t)("admin.settings.oidc.userinfoUsernamePath")),1),m(e("input",{"onUpdate:modelValue":i[116]||(i[116]=o=>n.oidc_connect_userinfo_username_path=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.oidc.userinfoUsernamePathPlaceholder")},null,8,Wf),[[b,n.oidc_connect_userinfo_username_path]])])])])):x("",!0)])])],512),[[Te,U.value==="security"]]),m(e("div",Kf,[e("div",Gf,[e("div",Qf,[e("h2",Yf,s(a(t)("admin.settings.defaults.title")),1),e("p",Jf,s(a(t)("admin.settings.defaults.description")),1)]),e("div",Zf,[e("div",Xf,[e("div",null,[e("label",ek,s(a(t)("admin.settings.defaults.defaultBalance")),1),m(e("input",{"onUpdate:modelValue":i[117]||(i[117]=o=>n.default_balance=o),type:"number",step:"0.01",min:"0",class:"input",placeholder:"0.00"},null,512),[[b,n.default_balance,void 0,{number:!0}]]),e("p",tk,s(a(t)("admin.settings.defaults.defaultBalanceHint")),1)]),e("div",null,[e("label",ak,s(a(t)("admin.settings.defaults.defaultConcurrency")),1),m(e("input",{"onUpdate:modelValue":i[118]||(i[118]=o=>n.default_concurrency=o),type:"number",min:"1",class:"input",placeholder:"1"},null,512),[[b,n.default_concurrency,void 0,{number:!0}]]),e("p",sk,s(a(t)("admin.settings.defaults.defaultConcurrencyHint")),1)]),e("div",null,[e("label",nk,s(a(t)("admin.settings.defaults.defaultUserRpmLimit")),1),m(e("input",{"onUpdate:modelValue":i[119]||(i[119]=o=>n.default_user_rpm_limit=o),type:"number",min:"0",step:"1",class:"input",placeholder:"0"},null,512),[[b,n.default_user_rpm_limit,void 0,{number:!0}]]),e("p",ik,s(a(t)("admin.settings.defaults.defaultUserRpmLimitHint")),1)])]),e("div",ok,[e("div",lk,[e("div",null,[e("label",rk,s(a(t)("admin.settings.defaults.defaultSubscriptions")),1),e("p",dk,s(a(t)("admin.settings.defaults.defaultSubscriptionsHint")),1)]),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:Bn,disabled:Ue.value.length===0},s(a(t)("admin.settings.defaults.addDefaultSubscription")),9,ck)]),n.default_subscriptions.length===0?(r(),d("div",uk,s(a(t)("admin.settings.defaults.defaultSubscriptionsEmpty")),1)):(r(),d("div",mk,[(r(!0),d(M,null,B(n.default_subscriptions,(o,p)=>(r(),d("div",{key:`default-sub-${p}`,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",_k,s(a(t)("admin.settings.defaults.subscriptionGroup")),1),h(fe,{modelValue:o.group_id,"onUpdate:modelValue":_=>o.group_id=_,class:"default-sub-group-select",options:Ra.value,placeholder:a(t)("admin.settings.defaults.subscriptionGroup")},{selected:Pe(({option:_})=>[_?(r(),Be(ws,{key:0,name:_.label,platform:_.platform,"subscription-type":_.subscriptionType,"rate-multiplier":_.rate},null,8,["name","platform","subscription-type","rate-multiplier"])):(r(),d("span",pk,s(a(t)("admin.settings.defaults.subscriptionGroup")),1))]),option:Pe(({option:_,selected:L})=>[h(Cs,{name:_.label,platform:_.platform,"subscription-type":_.subscriptionType,"rate-multiplier":_.rate,description:_.description,selected:L},null,8,["name","platform","subscription-type","rate-multiplier","description","selected"])]),_:1},8,["modelValue","onUpdate:modelValue","options","placeholder"])]),e("div",null,[e("label",gk,s(a(t)("admin.settings.defaults.subscriptionValidityDays")),1),m(e("input",{"onUpdate:modelValue":_=>o.validity_days=_,type:"number",min:"1",max:"36500",class:"input h-[42px]"},null,8,yk),[[b,o.validity_days,void 0,{number:!0}]])]),e("div",bk,[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:_=>In(p)},s(a(t)("common.delete")),9,hk)])]))),128))]))]),e("div",xk,[e("div",fk,[e("label",kk,s(a(t)("admin.settings.defaults.defaultPlatformQuotas")),1),e("p",vk,s(a(t)("admin.settings.defaults.defaultPlatformQuotasHint")),1),e("p",wk,s(a(t)("admin.settings.defaults.platformQuotaNotice")),1)]),e("div",Ck,[e("table",Vk,[e("thead",null,[e("tr",Uk,[e("th",Sk,s(a(t)("admin.settings.platformQuota.platform")),1),e("th",Pk,s(a(t)("admin.settings.platformQuota.daily")),1),e("th",$k,s(a(t)("admin.settings.platformQuota.weekly")),1),e("th",Ek,s(a(t)("admin.settings.platformQuota.monthly")),1)])]),e("tbody",Ak,[(r(),d(M,null,B(["anthropic","openai","gemini","antigravity","grok"],o=>e("tr",{key:o,class:"align-top"},[e("td",Tk,[e("span",Fk,s(o),1)]),e("td",Mk,[m(e("input",{"onUpdate:modelValue":p=>n.default_platform_quotas[o].daily=p,type:"number",step:"0.01",min:"0",class:"input h-8 w-28 text-sm",placeholder:a(t)("admin.settings.platformQuota.placeholder")},null,8,Lk),[[b,n.default_platform_quotas[o].daily,void 0,{number:!0}]])]),e("td",Rk,[m(e("input",{"onUpdate:modelValue":p=>n.default_platform_quotas[o].weekly=p,type:"number",step:"0.01",min:"0",class:"input h-8 w-28 text-sm",placeholder:a(t)("admin.settings.platformQuota.placeholder")},null,8,Hk),[[b,n.default_platform_quotas[o].weekly,void 0,{number:!0}]])]),e("td",Dk,[m(e("input",{"onUpdate:modelValue":p=>n.default_platform_quotas[o].monthly=p,type:"number",step:"0.01",min:"0",class:"input h-8 w-28 text-sm",placeholder:a(t)("admin.settings.platformQuota.placeholder")},null,8,jk),[[b,n.default_platform_quotas[o].monthly,void 0,{number:!0}]])])])),64))])])])])])]),e("div",zk,[e("div",Ok,[e("h2",Bk,s(a(t)("admin.settings.authSourceDefaults.title")),1),e("p",Ik,s(a(t)("admin.settings.authSourceDefaults.description")),1)]),e("div",qk,[e("div",Nk,[e("div",null,[e("label",Wk,s(a(t)("admin.settings.authSourceDefaults.requireEmailLabel")),1),e("p",Kk,s(a(t)("admin.settings.authSourceDefaults.requireEmailHint")),1)]),h(S,{modelValue:n.force_email_on_third_party_signup,"onUpdate:modelValue":i[120]||(i[120]=o=>n.force_email_on_third_party_signup=o)},null,8,["modelValue"])]),e("div",Gk,[(r(!0),d(M,null,B(Fa.value,o=>(r(),d("div",{key:o.source,class:"rounded-xl border border-gray-200 p-4 dark:border-dark-700"},[e("div",Qk,[e("div",null,[e("div",Yk,s(o.title),1),e("p",Jk,s(o.description),1)]),h(S,{modelValue:ce[o.source].grant_on_signup,"onUpdate:modelValue":p=>ce[o.source].grant_on_signup=p,"data-testid":`auth-source-${o.source}-enabled`},null,8,["modelValue","onUpdate:modelValue","data-testid"])]),ce[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",Xk,s(a(t)("admin.settings.authSourceDefaults.enabledHint")),1),e("div",ev,[e("div",null,[e("label",tv,s(a(t)("admin.settings.defaults.defaultBalance")),1),m(e("input",{"onUpdate:modelValue":p=>ce[o.source].balance=p,type:"number",step:"0.01",min:"0",class:"input",placeholder:"0.00"},null,8,av),[[b,ce[o.source].balance,void 0,{number:!0}]])]),e("div",null,[e("label",sv,s(a(t)("admin.settings.defaults.defaultConcurrency")),1),m(e("input",{"onUpdate:modelValue":p=>ce[o.source].concurrency=p,type:"number",min:"1",class:"input",placeholder:"5"},null,8,nv),[[b,ce[o.source].concurrency,void 0,{number:!0}]])])]),e("div",iv,[e("div",null,[e("label",ov,s(a(t)("admin.settings.authSourceDefaults.grantOnFirstBindLabel")),1),e("p",lv,s(a(t)("admin.settings.authSourceDefaults.grantOnFirstBindHint")),1)]),h(S,{modelValue:ce[o.source].grant_on_first_bind,"onUpdate:modelValue":p=>ce[o.source].grant_on_first_bind=p},null,8,["modelValue","onUpdate:modelValue"])]),e("div",rv,[e("div",null,[e("label",dv,s(a(t)("admin.settings.authSourceDefaults.defaultSubscriptionsLabel")),1),e("p",cv,s(a(t)("admin.settings.authSourceDefaults.defaultSubscriptions
12Hint")),1)]),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:p=>qn(o.source),disabled:Ue.value.length===0},s(a(t)("admin.settings.defaults.addDefaultSubscription")),9,uv)]),ce[o.source].subscriptions.length===0?(r(),d("div",mv,s(a(t)("admin.settings.authSourceDefaults.noSourceSubscriptions")),1)):(r(),d("div",_v,[(r(!0),d(M,null,B(ce[o.source].subscriptions,(p,_)=>(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",pv,s(a(t)("admin.settings.defaults.subscriptionGroup")),1),h(fe,{modelValue:p.group_id,"onUpdate:modelValue":L=>p.group_id=L,class:"default-sub-group-select",options:Ra.value,placeholder:a(t)("admin.settings.defaults.subscriptionGroup")},{selected:Pe(({option:L})=>[L?(r(),Be(ws,{key:0,name:L.label,platform:L.platform,"subscription-type":L.subscriptionType,"rate-multiplier":L.rate},null,8,["name","platform","subscription-type","rate-multiplier"])):(r(),d("span",gv,s(a(t)("admin.settings.defaults.subscriptionGroup")),1))]),option:Pe(({option:L,selected:xe})=>[h(Cs,{name:L.label,platform:L.platform,"subscription-type":L.subscriptionType,"rate-multiplier":L.rate,description:L.description,selected:xe},null,8,["name","platform","subscription-type","rate-multiplier","description","selected"])]),_:1},8,["modelValue","onUpdate:modelValue","options","placeholder"])]),e("div",null,[e("label",yv,s(a(t)("admin.settings.defaults.subscriptionValidityDays")),1),m(e("input",{"onUpdate:modelValue":L=>p.validity_days=L,type:"number",min:"1",max:"36500",class:"input h-[42px]"},null,8,bv),[[b,p.validity_days,void 0,{number:!0}]])]),e("div",hv,[e("button",{type:"button",class:"btn btn-secondary w-full text-red-600 hover:text-red-700 dark:text-red-400",onClick:L=>Nn(o.source,_)},s(a(t)("common.delete")),9,xv)])]))),128))])),e("div",fv,[e("div",kv,[e("label",vv,s(a(t)("admin.settings.authSourceDefaults.platformQuotasOverride")),1),e("p",wv,s(a(t)("admin.settings.authSourceDefaults.platformQuotasOverrideHint")),1)]),e("div",Cv,[e("table",Vv,[e("thead",null,[e("tr",Uv,[e("th",Sv,s(a(t)("admin.settings.platformQuota.platform")),1),e("th",Pv,s(a(t)("admin.settings.platformQuota.daily")),1),e("th",$v,s(a(t)("admin.settings.platformQuota.weekly")),1),e("th",Ev,s(a(t)("admin.settings.platformQuota.monthly")),1)])]),e("tbody",null,[(r(),d(M,null,B(["anthropic","openai","gemini","antigravity","grok"],p=>e("tr",{key:`${o.source}-pq-${p}`,class:"align-top"},[e("td",Av,[e("span",Tv,s(p),1)]),e("td",Fv,[m(e("input",{"onUpdate:modelValue":_=>ce[o.source].platform_quotas[p].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,Mv),[[b,ce[o.source].platform_quotas[p].daily,void 0,{number:!0}]])]),e("td",Lv,[m(e("input",{"onUpdate:modelValue":_=>ce[o.source].platform_quotas[p].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,Rv),[[b,ce[o.source].platform_quotas[p].weekly,void 0,{number:!0}]])]),e("td",Hv,[m(e("input",{"onUpdate:modelValue":_=>ce[o.source].platform_quotas[p].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,Dv),[[b,ce[o.source].platform_quotas[p].monthly,void 0,{number:!0}]])])])),64))])])])])],8,Zk)):x("",!0)]))),128))])])])],512),[[Te,U.value==="users"]]),m(e("div",jv,[e("div",zv,[e("div",Ov,[e("h2",Bv,s(a(t)("admin.settings.claudeCode.title")),1),e("p",Iv,s(a(t)("admin.settings.claudeCode.description")),1)]),e("div",qv,[e("div",null,[e("label",Nv,s(a(t)("admin.settings.claudeCode.minVersion")),1),m(e("input",{"onUpdate:modelValue":i[121]||(i[121]=o=>n.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,Wv),[[b,n.min_claude_code_version]]),e("p",Kv,s(a(t)("admin.settings.claudeCode.minVersionHint")),1)]),e("div",Gv,[e("label",Qv,s(a(t)("admin.settings.claudeCode.maxVersion")),1),m(e("input",{"onUpdate:modelValue":i[122]||(i[122]=o=>n.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,Yv),[[b,n.max_claude_code_version]]),e("p",Jv,s(a(t)("admin.settings.claudeCode.maxVersionHint")),1)])])]),e("div",Zv,[e("div",Xv,[e("h2",e2,s(a(t)("admin.settings.gatewayForwarding.codexHardeningTitle")),1)]),e("div",t2,[e("div",null,[e("h3",a2,s(a(t)("admin.settings.gatewayForwarding.codexClientRestrictionTitle")),1),e("p",s2,s(a(t)("admin.settings.gatewayForwarding.codexHardeningDesc")),1
12)]),e("div",n2,[e("div",null,[e("label",i2,s(a(t)("admin.settings.gatewayForwarding.minCodexVersion")),1),m(e("input",{"onUpdate:modelValue":i[123]||(i[123]=o=>n.min_codex_version=o),type:"text",class:"input w-full font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.minCodexVersionPlaceholder")},null,8,o2),[[b,n.min_codex_version]])]),e("div",null,[e("label",l2,s(a(t)("admin.settings.gatewayForwarding.maxCodexVersion")),1),m(e("input",{"onUpdate:modelValue":i[124]||(i[124]=o=>n.max_codex_version=o),type:"text",class:"input w-full font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.maxCodexVersionPlaceholder")},null,8,r2),[[b,n.max_codex_version]])])]),e("p",d2,s(a(t)("admin.settings.gatewayForwarding.codexVersionHint")),1),e("div",null,[e("label",c2,s(a(t)("admin.settings.gatewayForwarding.codexFingerprintSignals")),1),e("p",u2,s(a(t)("admin.settings.gatewayForwarding.codexFingerprintSignalsDesc")),1),(r(!0),d(M,null,B(it.value,(o,p)=>(r(),d("div",{key:`codex-fp-${p}`,class:"mb-2 flex items-center gap-2"},[m(e("select",{"onUpdate:modelValue":_=>o.type=_,class:"input w-32 text-sm"},[e("option",_2,s(a(t)("admin.settings.gatewayForwarding.codexFpTypeHeaderExact")),1),e("option",p2,s(a(t)("admin.settings.gatewayForwarding.codexFpTypeHeaderPrefix")),1),e("option",g2,s(a(t)("admin.settings.gatewayForwarding.codexFpTypeBodyPath")),1)],8,m2),[[Je,o.type]]
12),m(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,y2),[[b,o.match]]),e("label",b2,[m(e("input",{"onUpdate:modelValue":_=>o.required=_,type:"checkbox"},null,8,h2),[[Ze,o.required]]),T(" "+s(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:_=>Ln(p)},s(a(t)("admin.settings.gatewayForwarding.codexRemoveRow")),9,x2)]))),128)),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:Mn},s(a(t)("admin.settings.gatewayForwarding.codexAddRow")),1),Fn.value?(r(),d("p",f2,s(a(t)("admin.settings.gatewayForwarding.codexFingerprintNoRequiredWarn")),1)):x("",!0)]),e("div",k2,[e("div",v2,[e("label",w2,s(a(t)("admin.settings.gatewayForwarding.codexAllowAppServer")),1),e("p",C2,s(a(t)("admin.settings.gatewayForwarding.codexAllowAppServerDesc")),1)]),h(S,{modelValue:n.codex_cli_only_allow_app_server_clients,"onUpdate:modelValue":i[125]||(i[125]=o=>n.codex_cli_only_allow_app_server_clients=o)},null,8,["modelValue"])]),e("div",null,[e("label",V2,s(a(t)("admin.settings.gatewayForwarding.codexBlacklist")),1),e("p",U2,s(a(t)("admin.settings.gatewayForwarding.codexBlacklistDesc")),1),(r(!0),d(M,null,B(_t.value,(o,p)=>(r(),d("div",{key:`codex-bl-${p}`,class:"mb-2 flex gap-2"},[m(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,S2),[[b,o.originator]]),m(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,P2),[[b,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:_=>Hn(p)},s(a(t)("admin.settings.gatewayForwarding.codexRemoveRow")),9,$2)]))),128)),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:Rn},s(a(t)("admin.settings.gatewayForwarding.codexAddRow")),1)]),e("div",null,[e("label",E2,s(a(t)("admin.settings.gatewayForwarding.codexWhitelist")),1),e("p",A2,s(a(t)("admin.settings.gatewayForwarding.codexWhitelistDesc")),1),(r(!0),d(M,null,B(pt.value,(o,p)=>(r(),d("div",{key:`codex-wl-${p}`,class:"mb-2 flex gap-2"},[m(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,T2),[[b,o.originator]]),m(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,F2),[[b,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")},[m(e("input",{"onUpdate:modelValue":_=>o.skipEngineFingerprint=_,type:"checkbox"},null,8,L2),[[Ze,o.skipEngineFingerprint]]),T(" "+s(a(t)("admin.settings.gatewayForwarding.codexWhitelistSkipFingerprint")),1)],8,M2),e("button",{type:"button",class:"btn btn-secondary btn-sm shrink-0 text-red-600 hover:text-red-700 dark:text-red-400",onClick:_=>jn(p)},s(a(t)("admin.settings.gatewayForwarding.codexRemoveRow")),9,R2)]))),128)),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:Dn},s(a(t)("admin.settings.gatewayForwarding.codexAddRow")),1)])])]),e("div",H2,[e("div",D2,[e("h2",j2,s(a(t)("admin.settings.upstreamBillingProbe.title")),1),e("p",z2,s(a(t)("admin.settings.upstreamBillingProbe.description")),1)]),e("div",O2,[Ie.value?(r(),d("div",B2,[i[284]||(i[284]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),T(" "+s(a(t)("common.loading")),1)])):(r(),d(M,{key:1},[e("div",I2,[e("div",null,[e("label",q2,s(a(t)("admin.settings.upstreamBillingProbe.enabled")),1),e("p",N2,s(a(t)("admin.settings.upstreamBillingProbe.enabledHint")),1)]),h(S,{modelValue:ve.enabled,"onUpdate:modelValue":i[126]||(i[126]=o=>ve.enabled=o),"aria-label":a(t)("admin.settings.upstreamBillingProbe.enabled"),"data-testid":"upstream-billing-probe-enabled"},null,8,["modelValue","aria-label"])]),ve.enabled?(r(),d("div",W2,[e("label",K2,s(a(t)("admin.settings.upstreamBillingProbe.intervalMinutes")),1),m(e("input",{id:"upstream-billing-probe-interval","onUpdate:modelValue":i[127]||(i[127]=o=>ve.interval_minutes=o),type:"number",min:"5",max:"1440",class:"input w-32","data-testid":"upstream-billing-probe-interval",onKeydown:Pt(Oe(ts,["prevent"]),["enter"])},null,40,G2),[[b,ve.interval_minutes,void 0,{number:!0}]]),e("p",Q2,s(a(t)("admin.settings.upstreamBillingProbe.intervalHint")),1)])):x("",!0),e("div",Y2,[e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:He.value,"data-testid":"upstream-billing-probe-save",onClick:ts},s(He.value?a(t)("common.saving"):a(t)("common.save")),9,J2)])],64))])]),e("div",Z2,[e("div",X2,[e("h2",ew,s(a(t)("admin.settings.ollamaCloudUsage.title")),1),e("p",tw,s(a(t)("admin.settings.ollamaCloudUsage.description")),1)]),e("div",aw,[Fe.value?(r(),d("div",sw,[i[285]||(i[285]=e("div",{class:"h-4 w-4 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)),T(" "+s(a(t)("common.loading")),1)])):(r(),d(M,{key:1},[e("div",nw,[e("div",null,[e("label",iw,s(a(t)("admin.settings.ollamaCloudUsage.enabled")),1),e("p",ow,s(a(t)("admin.settings.ollamaCloudUsage.enabledHint")),1)]),h(S,{modelValue:he.enabled,"onUpdate:modelValue":i[128]||(i[128]=o=>he.enabled=o),"aria-label":a(t)("admin.settings.ollamaCloudUsage.enabled"),"data-testid":"ollama-cloud-usage-global-enabled"},null,8,["modelValue","aria-label"])]),he.enabled?(r(),d("div",lw,[e("div",null,[e("label",rw,s(a(t)("admin.settings.ollamaCloudUsage.debounceMinutes")),1),m(e("input",{id:"ollama-cloud-usage-debounce","onUpdate:modelValue":i[129]||(i[129]=o=>he.debounce_minutes=o),type:"number",min:"1",max:"60",class:"input w-32","data-testid":"ollama-cloud-usage-global-debounce",onKeydown:Pt(Oe(Xt,["prevent"]),["enter"])},null,40,dw),[[b,he.debounce_minutes,void 0,{number:!0}]]),e("p",cw,s(a(t)("admin.settings.ollamaCloudUsage.debounceHint")),1)]),e("div",null,[e("label",uw,s(a(t)("admin.settings.ollamaCloudUsage.intervalMinutes")),1),m(e("input",{id:"ollama-cloud-usage-interval","onUpdate:modelValue":i[130]||(i[130]=o=>he.interval_minutes=o),type:"number",min:"15",max:"1440",class:"input w-32","data-testid":"ollama-cloud-usage-global-interval",onKeydown:Pt(Oe(Xt,["prevent"]),["enter"])},null,40,mw),[[b,he.interval_minutes,void 0,{number:!0}]]),e("p",_w,s(a(t)("admin.settings.ollamaCloudUsage.intervalHint")),1)])])):x("",!0),e("div",pw,[e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:qe.value,"data-testid":"ollama-cloud-usage-global-save",onClick:Xt},s(qe.value?a(t)("common.saving"):a(t)("common.save")),9,gw)])],64))])]),e("div",yw,[e("div",bw,[e("h2",hw,s(a(t)("admin.settings.scheduling.title")),1),e("p",xw,s(a(t)("admin.settings.scheduling.description")),1)]),e("div",fw,[e("div",kw,[e("div",null,[e("label",vw,s(a(t)("admin.settings.scheduling.allowUngroupedKey")),1),e("p",ww,s(a(t)("admin.settings.scheduling.allowUngroupedKeyHint")),1)]),h(S,{modelValue:n.allow_ungrouped_key_scheduling,"onUpdate:modelValue":i[131]||(i[131]=o=>
12n.allow_ungrouped_key_scheduling=o)},null,8,["modelValue"])]),e("div",Cw,[e("div",Vw,[e("label",Uw,s(a(t)("admin.settings.scheduling.accountSchedulingThresholdsTitle")),1),e("p",Sw,s(a(t)("admin.settings.scheduling.accountSchedulingThresholdsDescription")),1),e("p",Pw,s(a(t)("admin.settings.scheduling.accountSchedulingThresholdsGlobalHint")),1),e("p",$w,s(a(t)("admin.settings.scheduling.accountSchedulingThresholdsDisabledHint")),1)]),e("div",Ew,[(r(!0),d(M,null,B(a(Qs),o=>(r(),d("div",{key:o,class:"rounded-lg border border-gray-200 p-4 dark:border-dark-700"},[e("div",Aw,[e("div",null,[e("label",Tw,s(o),1),e("p",Fw,s(a(t)("admin.settings.scheduling.accountSchedulingThresholdsRangeHint")),1)]),i[286]||(i[286]=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))]),m(e("input",{"onUpdate:modelValue":p=>n.account_scheduling_thresholds[o]=p,type:"number",min:"1",max:"100",step:"1",class:"input mt-3","data-testid":`account-scheduling-threshold-${o}`,placeholder:"100"},null,8,Mw),[[b,n.account_scheduling_thresholds[o],void 0,{number:!0}
12]])]))),128))])]),n.openai_advanced_scheduler_enabled?x("",!0):(r(),d("div",Lw,[e("div",null,[e("label",Rw,s(a(t)("admin.settings.openaiExperimentalScheduler.lowRatePriorityTitle")),1),e("p",Hw,s(a(t)("admin.settings.openaiExperimentalScheduler.lowRatePriorityDescription")),1)]),h(S,{modelValue:n.openai_low_upstream_rate_priority_enabled,"onUpdate:modelValue":i[132]||(i[132]=o=>n.openai_low_upstream_rate_priority_enabled=o),"data-testid":"openai-low-rate-priority-toggle"},null,8,["modelValue"])])),!n.openai_advanced_scheduler_enabled&&n.openai_low_upstream_rate_priority_enabled?(r(),d("div",Dw,[e("div",jw,[e("label",zw,s(a(t)("admin.settings.openaiExperimentalScheduler.oauthRateTitle")),1),e("p",Ow,s(a(t)("admin.settings.openaiExperimentalScheduler.oauthRatePriorityDescription")),1)]),e("div",Bw,[m(e("input",{id:"openai-oauth-scheduling-rate-multiplier","onUpdate:modelValue":i[133]||(i[133]=o=>n.openai_oauth_scheduling_rate_multiplier=o),class:"input pr-8","data-testid":"openai-oauth-scheduling-rate-multiplier",min:"0",required:"",step:"0.01",type:"number"},null,512),[[b,n.openai_oauth_scheduling_rate_multiplier,void 0,{number:!0}]]),i[287]||(i[287]=e("span",{class:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-sm text-gray-400"},"x",-1))])])):x("",!0),e("div",Iw,[e("div",null,[e("label",qw,s(a(t)("admin.settings.openaiExperimentalScheduler.title")),1),e("p",Nw,s(a(t)("admin.settings.openaiExperimentalScheduler.description")),1)]),h(S,{modelValue:n.openai_advanced_scheduler_enabled,"onUpdate:modelValue":i[134]||(i[134]=o=>n.openai_advanced_scheduler_enabled=o),"data-testid":"openai-advanced-scheduler-toggle"},null,8,["modelValue"])]),n.openai_advanced_scheduler_enabled?(r(),d("div",Ww,[e("div",null,[e("label",Kw,s(a(t)("admin.settings.openaiExperimentalScheduler.stickyWeightedTitle")),1),e("p",Gw,s(a(t)("admin.settings.openaiExperimentalScheduler.stickyWeightedDescription")),1)]),h(S,{modelValue:n.openai_advanced_scheduler_sticky_weighted_enabled,"onUpdate:modelValue":i[135]||(i[135]=o=>n.openai_advanced_scheduler_sticky_weighted_enabled=o)},null,8,["modelValue"])])):x("",!0),n.openai_advanced_scheduler_enabled?(r(),d("div",Qw,[e("div",null,[e("label",Yw,s(a(t)("admin.settings.openaiExperimentalScheduler.subscriptionPriorityTitle")),1),e("p",Jw,s(a(t)("admin.settings.openaiExperimentalScheduler.subscriptionPriorityDescription")),1)]),h(S,{modelValue:n.openai_advanced_scheduler_subscription_priority_enabled,"onUpdate:modelValue":i[136]||(i[136]=o=>n.openai_advanced_scheduler_subscription_priority_enabled=o)},null,8,["modelValue"])])):x("",!0),n.openai_advanced_scheduler_enabled?(r(),d("div",Zw,[e("div",Xw,[e("label",e4,s(a(t)("admin.settings.openaiExperimentalScheduler.oauthRateTitle")),1),e("p",t4,s(a(t)("admin.settings.openaiExperimentalScheduler.oauthRateWeightedDescription")),1)]),e("div",a4,[m(e("input",{id:"openai-oauth-scheduling-rate-multiplier","onUpdate:modelValue":i[137]||(i[137]=o=>n.openai_oauth_scheduling_rate_multiplier=o),class:"input pr-8","data-testid":"openai-oauth-scheduling-rate-multiplier",min:"0",required:"",step:"0.01",type:"number"},null,512),[[b,n.openai_oauth_scheduling_rate_multiplier,void 0,{number:!0}]]),i[288]||(i[288]=e("span",{class:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-sm text-gray-400"},"x",-1))])])):x("",!0),n.openai_advanced_scheduler_enabled?(r(),d("div",s4,[e("div",null,[e("label",n4,s(a(t)("admin.settings.openaiExperimentalScheduler.weightsTitle")),1),e("p",i4,s(a(t)("admin.settings.openaiExperimentalScheduler.weightsDescription")),1)]),e("div",o4,[(r(!0),d(M,null,B(Js.value,o=>(r(),d("label",{key:o.key,class:"block"},[e("span",l4,s(o.label),1),m(e("input",{"onUpdate:modelValue":p=>n[o.key]=p,class:"input mt-1",inputmode:"decimal",placeholder:o.placeholder,type:"text"},null,8,r4),[[b,n[o.key]]])]))),128))])])):x("",!0)])]),e("div",d4,[e("div",c4,[e("h2",u4,s(a(t)("admin.settings.gatewayForwarding.title")),1),e("p",m4,s(a(t)("admin.settings.gatewayForwarding.description")),1)]),e("div",_4,[e("div",p4,[e("div",null,[e("label",g4,s(a(t)("admin.settings.gatewayForwarding.grokDefaultTextModel")),1),m(e("input",{id:"grok-default-text-model","onUpdate:modelValue":i[138]||(i[138]=o=>n.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),[[b,n.grok_default_text_model,void 0,{trim:!0}]]),i[289]||(i[289]=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",y4,s(a(t)("admin.settings.gatewayForwarding.grokDefaultTextModelHint")),1)]),e("div",b4,[e("div",null,[e("label",h4,s(a(t)("admin.settings.gatewayForwarding.grokCrossClientMap")),1),e("p",x4,s(a(t)("admin.settings.gatewayForwarding.grokCrossClientMapHint")),1)]),h(S,{modelValue:n.grok_cross_client_model_map_enabled,"onUpdate:modelValue":i[139]||(i[139]=o=>n.grok_cross_client_model_map_enabled=o),"data-testid":"grok-cross-client-model-map-toggle"},null,8,["modelValue"])])]),e("div",f4,[e("label",k4,s(a(t)("admin.settings.gatewayForwarding.grokDefaultBaseURLMode")),1),m(e("select",{id:"grok-default-base-url-mode","onUpdate:modelValue":i[140]||(i[140]=o=>n.grok_default_base_url_mode=o),class:"input mt-2 w-full","data-testid":"grok-default-base-url-mode"},[e("option",v4,s(a(t)("admin.settings.gatewayForwarding.grokBaseURLModeCLI")),1),e("option",w4,s(a(t)("admin.settings.gatewayForwarding.grokBaseURLModeAPI")),1
12),e("option",C4,s(a(t)("admin.settings.gatewayForwarding.grokBaseURLModeUSEast1")),1),e("option",V4,s(a(t)("admin.settings.gatewayForwarding.grokBaseURLModeUSWest2")),1),e("option",U4,s(a(t)("admin.settings.gatewayForwarding.grokBaseURLModeEUWest1")),1)],512),[[Je,n.grok_default_base_url_mode]]),e("p",S4,s(a(t)("admin.settings.gatewayForwarding.grokDefaultBaseURLModeHint")),1)]),e("div",P4,[e("label",$4,s(a(t)("admin.settings.gatewayForwarding.openaiTTFTMode")),1),m(e("select",{id:"openai-ttft-mode","onUpdate:modelValue":i[141]||(i[141]=o=>n.openai_ttft_mode=o),class:"input mt-2 w-full","data-testid":"openai-ttft-mode"},[e("option",E4,s(a(t)("admin.settings.gatewayForwarding.openaiTTFTModeSemantic")),1),e("option",A4,s(a(t)("admin.settings.gatewayForwarding.openaiTTFTModeVisible")),1)],512),[[Je,n.openai_ttft_mode]]),e("p",T4,s(a(t)("admin.settings.gatewayForwarding.openaiTTFTModeHint")),1)]),e("div",F4,[e("div",null,[e("label",M4,s(a(t)("admin.settings.gatewayForwarding.fingerprintUnification")),1),e("p",L4,s(a(t)("admin.settings.gatewayForwarding.fingerprintUnificationHint")),1)]),h(S,{modelValue:n.enable_fingerprint_unification,"onUpdate:modelValue":i[142]||(i[142]=o=>n.enable_fingerprint_unification=o)},null,8,["modelValue"])]),e("div",R4,[e("div",null,[e("label",H4,s(a(t)("admin.settings.gatewayForwarding.metadataPassthrough")),1),e("p",D4,s(a(t)("admin.settings.gatewayForwarding.metadataPassthroughHint")),1)]),h(S,{modelValue:n.enable_metadata_passthrough,"onUpdate:modelValue":i[143]||(i[143]=o=>n.enable_metadata_passthrough=o)},null,8,["modelValue"])]),e("div",j4,[e("div",null,[e("label",z4,s(a(t)("admin.settings.gatewayForwarding.cchSigning")),1),e("p",O4,s(a(t)("admin.settings.gatewayForwarding.cchSigningHint")),1)]),h(S,{modelValue:n.enable_cch_signing,"onUpdate:modelValue":i[144]||(i[144]=o=>n.enable_cch_signing=o)},null,8,["modelValue"])]),e("div",B4,[e("div",null,[e("label",I4,s(a(t)("admin.settings.gatewayForwarding.claudeOAuthSystemPromptInjection")),1),e("p",q4,s(a(t)("admin.settings.gatewayForwarding.claudeOAuthSystemPromptInjectionHint")),1)]),h(S,{modelValue:n.enable_claude_oauth_system_prompt_injection,"onUpdate:modelValue":i[145]||(i[145]=o=>n.enable_claude_oauth_system_prompt_injection=o)},null,8,["modelValue"])]),e("div",null,[e("label",N4,s(a(t)("admin.settings.gatewayForwarding.claudeOAuthSystemPromptBlocks")),1),e("div",W4,[(r(!0),d(M,null,B(je.value,(o,p)=>(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:q(["flex flex-wrap items-center justify-between gap-3",o.expanded&&"mb-3"])},[e("div",K4,[e("div",G4,s(a(t)("admin.settings.gatewayForwarding.systemBlockTitle",{index:p+1})),1),e("div",Q4,s(Bs(o.preset)),1)]),e("div",Y4,[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:_=>qs(p)},[h(ie,{name:o.expanded?"eyeOff":"eye",size:"xs"},null,8,["name"])],8,J4),e("button",{type:"button",class:"btn btn-secondary btn-sm px-2",disabled:p===0,onClick:_=>Aa(p,-1)},[h(ie,{name:"arrowUp",size:"xs"})],8,Z4),e("button",{type:"button",class:"btn btn-secondary btn-sm px-2",disabled:p===je.value.length-1,onClick:_=>Aa(p,1)},[h(ie,{name:"arrowDown",size:"xs"})],8,X4),h(S,{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:_=>Ns(p)},[h(ie,{name:"trash",size:"xs"})],8,e3)])],2),m(e("div",null,[e("div",t3,[e("div",null,[e("label",a3,s(a(t)("admin.settings.gatewayForwarding.systemBlockPreset")),1),h(fe,{modelValue:o.preset,"onUpdate:modelValue":_=>o.preset=_,options:Ea.value,onChange:_=>Ws(p,_)},null,8,["modelValue","onUpdate:modelValue","options","onChange"])]),e("div",null,[e("label",s3,s(a(t)("admin.settings.gatewayForwarding.systemBlockType")),1),h(fe,{modelValue:o.type,"onUpdate:modelValue":_=>o.type=_,options:zs.value},null,8,["modelValue","onUpdate:modelValue","options"])])]),e("div",n3,[e("label",i3,s(a(t)("admin.settings.gatewayForwarding.systemBlockText")),1),m(e("textarea",{"onUpdate:modelValue":_=>o.text=_,rows:"6",class:"input w-full resize-y font-mono text-xs leading-5",onInput:_=>Ks(o)},null,40,o3),[[b,o.text]])]),e("div",l3,[e("div",r3,[e("div",null,[e("label",d3,s(a(t)("admin.settings.gatewayForwarding.systemBlockCacheControl")),1)]),h(S,{modelValue:o.cacheControlEnabled,"onUpdate:modelValue":_=>o.cacheControlEnabled=_},null,8,["modelValue","onUpdate:modelValue"])]),o.cacheControlEnabled?(r(),d("div",c3,[h(fe,{modelValue:o.cacheControlTTL,"onUpdate:modelValue":_=>o.cacheControlTTL=_,options:Os.value},null,8,["modelValue","onUpdate:modelValue","options"])])):x("",!0)])],512),[[Te,o.expanded]])]))),128))]),e("div",u3,[e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:Is},[h(ie,{name:"plus",size:"xs"}),T(" "+s(a(t)("admin.settings.gatewayForwarding.addSystemBlock")),1)]),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:Gs},[h(ie,{name:"refresh",size:"xs"}),T(" "+s(a(t)("admin.settings.gatewayForwarding.resetSystemBlocks")),1)])]),e("p",m3,s(a(t)("admin.settings.gatewayForwarding.claudeOAuthSystemPromptBlocksHint")),1)]),e("div",_3,[e("div",null,[e("label",p3,s(a(t)("admin.settings.gatewayForwarding.anthropicCacheTTL1hInjection")),1),e("p",g3,s(a(t)("admin.settings.gatewayForwarding.anthropicCacheTTL1hInjectionHint")),1)]),h(S,{modelValue:n.enable_anthropic_cache_ttl_1h_injection,"onUpdate:modelValue":i[146]||(i[146]=o=>n.enable_anthropic_cache_ttl_1h_injection=o)},null,8,["modelValue"])]),e("div",y3,[e("div",null,[e("label",b3,s(a(t)("admin.settings.gatewayForwarding.rewriteMessageCacheControl")),1),e("p",h3,s(a(t)("admin.settings.gatewayForwarding.rewriteMessageCacheControlHint")),1)]),h(S,{modelValue:n.rewrite_message_cache_control,"onUpdate:modelValue":i[147]||(i[147]=o=>n.rewrite_message_cache_control=o)},null,8,["modelValue"])]),e("div",x3,[e("div",null,[e("label",f3,s(a(t)("admin.settings.gatewayForwarding.clientDatelineNormalization")),1),e("p",k3,s(a(t)("admin.settings.gatewayForwarding.clientDatelineNormalizationHint")),1)]),h(S,{modelValue:n.enable_client_dateline_normalization,"onUpdate:modelValue":i[148]||(i[148]=o=>n.enable_client_dateline_normalization=o)},null,8,["modelValue"])]),e("div",null,[e("label",v3,s(a(t)("admin.settings.gatewayForwarding.antigravityUserAgentVersion")),1),m(e("input",{"onUpdate:modelValue":i[149]||(i[149]=o=>n.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,w3),[[b,n.antigravity_user_agent_version]]),e("p",C3,s(a(t)("admin.settings.gatewayForwarding.antigravityUserAgentVersionHint")),1)]),e("div",null,[e("label",V3,s(a(t)("admin.settings.gatewayForwarding.openaiCodexUserAgent")),1),m(e("input",{"onUpdate:modelValue":i[150]||(i[150]=o=>n.openai_codex_user_agent=o),type:"text",class:"input w-full font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.openaiCodexUserAgentPlaceholder")},null,8,U3),[[b,n.openai_codex_user_agent]]),e("p",S3,s(a(t)("admin.settings.gatewayForwarding.openaiCodexUserAgentHint")),1)]),e("div",null,[e("label",P3,s(a(t)("admin.settings.gatewayForwarding.openaiCodexClientVersion")),1),m(e("input",{"onUpdate:modelValue":i[151]||(i[151]=o=>n.openai_codex_client_version=o),type:"text",class:"input w-full font-mono text-sm",placeholder:a(t)("admin.settings.gatewayForwarding.openaiCodexClientVersionPlaceholder")},null,8,$3),[[b,n.openai_codex_client_version]]),e("p",E3,s(a(t)("admin.settings.gatewayForwarding.openaiCodexClientVersionHint")),1)]),e("div",A3,[e("div",null,[e("label",T3,s(a(t)("admin.settings.gatewayForwarding.openaiCodexVersionAutoSync")),1),e("p",F3,s(a(t)("admin.settings.gatewayForwarding.openaiCodexVersionAutoSyncHint")),1),Ya.value?(r(),d("p",M3,s(Ya.value),1)):x("",!0)]),h(S,{modelValue:n.openai_codex_version_auto_sync_enabled,"onUpdate:modelValue":i[152]||(i[152]=o=>n.openai_codex_version_auto_sync_enabled=o)},null,8,["modelValue"])])])]),e("div",L3,[e("div",R3,[e("h2",H3,s(a(t)("admin.settings.webSearchEmulation.title")),1),e("p",D3,s(a(t)("admin.settings.webSearchEmulation.description")),1)]),e("div",j3,[e("div",z3,[e("div",null,[e("label",O3,s(a(t)("admin.settings.webSearchEmulation.enabled")),1),e("p",B3,s(a(t)("admin.settings.webSearchEmulation.enabledHint")),1)]),h(S,{modelValue:Ce.enabled,"onUpdate:modelValue":i[153]||(i[153]=o=>Ce.enabled=o)},null,8,["modelValue"])]),Ce.enabled?(r(),d("div",I3,[e("div",q3,[e("label",N3,s(a(t)("admin.settings.webSearchEmulation.providers")),1),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:tn},s(a(t)("admin.settings.webSearchEmulation.addProvider")),1)]),Ce.providers.length===0?(r(),d("div",W3,s(a(t)("admin.settings.webSearchEmulation.noProviders")),1)):x("",!0),(r(!0),d(M,null,B(Ce.providers,(o,p)=>(r(),d("div",{key:p,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:_=>Xs(p)},[e("div",G3,[(r(),d("svg",{class:q(["h-4 w-4 text-gray-400 transition-transform",{"rotate-90":We[p]}]),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[...i[290]||(i[290]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"},null,-1)])],2)),h(fe,{modelValue:o.type,"onUpdate:modelValue":_=>o.type=_,options:[{value:"brave",label:"Brave Search"},{value:"tavily",label:"Tavily"}],class:"w-36",onClick:i[154]||(i[154]=Oe(()=>{},["stop"]))},null,8,["modelValue","onUpdate:modelValue"]),e("span",Q3,s(o.quota_used??0)+" / "+s(o.quota_limit!=null&&o.quota_limit>0?o.quota_limit:"∞"),1),!We[p]&&o.api_key_configured?(r(),d("span",Y3,s(a(t)("admin.settings.webSearchEmulation.apiKeyConfigured")),1)):x("",!0)]),e("button",{type:"button",class:"text-red-500 hover:text-red-700 text-xs",onClick:Oe(_=>en(p),["stop"])},s(a(t)("admin.settings.webSearchEmulation.removeProvider")),9,J3)],8,K3),We[p]?(r(),d("div",Z3,[e("div",null,[e("label",X3,s(a(t)("admin.settings.webSearchEmulation.apiKey")),1),e("div",e5,[m(e("input",{"onUpdate:modelValue":_=>o.api_key=_,type:Ge[p]?"text":"password",class:q(["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,t5),[[Ps,o.api_key]]),o.api_key||o.api_key_configured?(r(),d("div",a5,[e("button",{type:"button",class:"rounded p-1 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",title:Ge[p]?a(t)("admin.settings.webSearchEmulation.hideApiKey"):a(t)("admin.settings.webSearchEmulation.showApiKey"),onClick:_=>Ge[p]=!Ge[p]},[Ge[p]?(r(),d("svg",i5,[...i[292]||(i[292]=[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",n5,[...i[291]||(i[291]=[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,s5),e("button",{type:"button",class:q(["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:_=>on(p)},[...i[293]||(i[293]=[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,o5)])):x("",!0)])]),e("div",l5,[e("div",null,[e("label",r5,s(a(t)("admin.settings.webSearchEmulation.quotaLimit")),1),m(e("input",{"onUpdate:modelValue":_=>o.quota_limit=_,type:"number",min:"1",class:"input text-sm",placeholder:"∞"},null,8,d5),[[b,o.quota_limit]]),e("p",c5,s(a(t)("admin.settings.webSearchEmulation.quotaLimitHint")),1)]),e("div",null,[e("label",u5,s(a(t)("admin.settings.webSearchEmulation.subscribedAt")),1),e("input",{value:an(o.subscribed_at),type:"date",class:"input text-sm",onInput:_=>o.subscribed_at=sn(_.target.value)},null,40,m5),e("p",_5,s(a(t)("admin.settings.webSearchEmulation.subscribedAtHint")),1)])]),e("div",p5,[e("span",g5,s(a(t)("admin.settings.webSearchEmulation.quotaUsage"))+":",1),o.quota_limit!=null&&o.quota_limit>0?(r(),d("div",y5,[e("div",{class:q(["h-full rounded-full transition-all",Nt(o)>90?"bg-red-500":Nt(o)>70?"bg-yellow-500":"bg-green-500"]),style:so({width:Math.min(Nt(o),100)+"%"})},null,6)])):(r(),d("div",b5)),e("span",h5,s(o.quota_used??0)+" / "+s(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:_=>nn(p)},s(a(t)("admin.settings.webSearchEmulation.resetUsage")),9,x5)):x("",!0)]),e("div",f5,[e("div",k5,[e("label",v5,s(a(t)("admin.settings.webSearchEmulation.proxy")),1),h(fo,{modelValue:o.proxy_id,"onUpdate:modelValue":_=>o.proxy_id=_,proxies:Ma.value},null,8,["modelValue","onUpdate:modelValue","proxies"])]),e("button",{type:"button",class:"btn btn-secondary btn-sm whitespace-nowrap",onClick:i[155]||(i[155]=_=>Zs())},s(a(t)("admin.settings.webSearchEmulation.test")),1)])])):x("",!0)]))),128))])):x("",!0)])]),wt.value?(r(),d("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:i[160]||(i[160]=Oe(o=>wt.value=!1,["self"]))},[e("div",w5,[e("h3",C5,s(a(t)("admin.settings.webSearchEmulation.testResultTitle")),1),e("div",V5,[m(e("input",{"onUpdate:modelValue":i[156]||(i[156]=o=>qt.value=o),type:"text",class:"input flex-1 text-sm",placeholder:a(t)("admin.settings.webSearchEmulation.testDefaultQuery"),onKeyup:i[157]||(i[157]=Pt(o=>La(),["enter"]))},null,40,U5),[[b,qt.value]]),e("button",{type:"button",class:"btn btn-primary btn-sm",disabled:vt.value,onClick:i[158]||(i[158]=o=>La())},s(vt.value?a(t)("admin.settings.webSearchEmulation.testing"):a(t)("admin.settings.webSearchEmulation.test")),9,S5)]),at.value?(r(),d("div",P5,[e("p",$5,s(a(t)("admin.settings.webSearchEmulation.testResultProvider"))+": "+s(at.value.provider),1),at.value.results.length===0?(r(),d("div",E5,s(a(t)("admin.settings.webSearchEmulation.testNoResults")),1)):x("",!0),(r(!0),d(M,null,B(at.value.results,(o,p)=>(r(),d("div",{key:p,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"},s(o.title),9,A5),e("p",T5,s(o.snippet),1)]))),128))])):x("",!0),e("div",F5,[e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:i[159]||(i[159]=o=>wt.value=!1)},s(a(t)("common.close")),1)])])])):x("",!0),e("div",M5,[e("div",L5,[e("h2",R5,s(a(t)("admin.settings.usageRecords.title")),1),e("p",H5,s(a(t)("admin.settings.usageRecords.description")),1)]),e("div",D5,[e("div",j5,[e("div",null,[e("label",z5,s(a(t)("admin.settings.user_error_view.label")),1),e("p",O5,s(a(t)("admin.settings.user_error_view.description")),1)]),e("label",B5,[m(e("input",{"onUpdate:modelValue":i[161]||(i[161]=o=>n.allow_user_view_error_requests=o),type:"checkbox"},null,512),[[Ze,n.allow_user_view_error_requests]]),i[294]||(i[294]=e("span",{class:"toggle-slider"},null,-1))])])])])],512),[[Te,U.value==="gateway"]]),m(e("div",I5,[e("div",q5,[e("div",N5,[e("h2",W5,s(a(t)("admin.settings.site.title")),1),e("p",K5,s(a(t)("admin.settings.site.description")),1)]),e("div",G5,[e("div",Q5,[e("div",null,[e("h3",Y5,s(a(t)("admin.settings.site.backendMode")),1),e("p",J5,s(a(t)("admin.settings.site.backendModeDescription")),1)]),h(S,{modelValue:n.backend_mode_enabled,"onUpdate:modelValue":i[162]||(i[162]=o=>n.backend_mode_enabled=o)},null,8,["modelValue"])]),e("div",Z5,[e("div",null,[e("label",X5,s(a(t)("admin.settings.site.siteName")),1),m(e("input",{"onUpdate:modelValue":i[163]||(i[163]=o=>n.site_name=o),type:"text",class:"input",placeholder:a(t)("admin.settings.site.siteNamePlaceholder")},null,8,e8),[[b,n.site_name]]),e("p",t8,s(a(t)("admin.settings.site.siteNameHint")),1)]),e("div",null,[e("label",a8,s(a(t)("admin.settings.site.siteSubtitle")),1),m(e("input",{"onUpdate:modelValue":i[164]||(i[164]=o=>n.site_subtitle=o),type:"text",class:"input",placeholder:a(t)("admin.settings.site.siteSubtitlePlaceholder")},null,8,s8),[[b,n.site_subtitle]]),e("p",n8,s(a(t)("admin.settings.site.siteSubtitleHint")),1)])]),e("div",null,[e("label",i8,s(a(t)("admin.settings.site.apiBaseUrl")),1),m(e("input",{"onUpdate:modelValue":i[165]||(i[165]=o=>n.api_base_url=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.site.apiBaseUrlPlaceholder")},null,8,o8),[[b,n.api_base_url]]),e("p",l8,s(a(t)("admin.settings.site.apiBaseUrlHint")),1)]),e("div",r8,[e("h3",d8,s(a(t)("admin.settings.site.tablePreferencesTitle")),1),e("p",c8,s(a(t)("admin.settings.site.tablePreferencesDescription")),1),e("div",u8,[e("div",null,[e("label",m8,s(a(t)("admin.settings.site.tableDefaultPageSize")),1),m(e("input",{"onUpdate:modelValue":i[166]||(i[166]=o=>n.table_default_page_size=o),type:"number",min:"5",max:"1000",step:"1",class:"input w-40"},null,512),[[b,n.table_default_page_size,void 0,{number:!0}]]),e("p",_8,s(a(t)("admin.settings.site.tableDefaultPageSizeHint")),1)]),e("div",null,[e("label",p8,s(a(t)("admin.settings.site.tablePageSizeOptions")),1),m(e("input",{"onUpdate:modelValue":i[167]||(i[167]=o=>ye.value=o),type:"text",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.site.tablePageSizeOptionsPlaceholder")},null,8,g8),[[b,ye.value]]),e("p",y8,s(a(t)("admin.settings.site.tablePageSizeOptionsHint")),1)])])]),e("div",null,[e("label",b8,s(a(t)("admin.settings.site.customEndpoints.title")),1),e("p",h8,s(a(t)("admin.settings.site.customEndpoints.description")),1),e("div",x8,[(r(!0),d(M,null,B(n.custom_endpoints,(o,p)=>(r(),d("div",{key:p,class:"rounded-lg border border-gray-200 p-4 dark:border-dark-600"},[e("div",f8,[e("span",k8,s(a(t)("admin.settings.site.customEndpoints.itemLabel",{n:p+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:_=>Sn(p)},[...i[295]||(i[295]=[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"}
12)],-1)])],8,v8)]),e("div",w8,[e("div",null,[e("label",C8,s(a(t)("admin.settings.site.customEndpoints.name")),1),m(e("input",{"onUpdate:modelValue":_=>o.name=_,type:"text",class:"input text-sm",placeholder:a(t)("admin.settings.site.customEndpoints.namePlaceholder")},null,8,V8),[[b,o.name]])]),e("div",null,[e("label",U8,s(a(t)("admin.settings.site.customEndpoints.endpointUrl")),1),m(e("input",{"onUpdate:modelValue":_=>o.endpoint=_,type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.site.customEndpoints.endpointUrlPlaceholder")},null,8,S8),[[b,o.endpoint]])]),e("div",P8,[e("label",$8,s(a(t)("admin.settings.site.customEndpoints.descriptionLabel")),1),m(e("input",{"onUpdate:modelValue":_=>o.description=_,type:"text",class:"input text-sm",placeholder:a(t)("admin.settings.site.customEndpoints.descriptionPlaceholder")},null,8,E8),[[b,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:Un},[i[296]||(i[296]=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)),T(" "+s(a(t)("admin.settings.site.customEndpoints.add")),1)])]),e("div",null,[e("label",A8,s(a(t)("admin.settings.site.contactInfo")),1),m(e("input",{"onUpdate:modelValue":i[168]||(i[168]=o=>n.contact_info=o),type:"text",class:"input",placeholder:a(t)("admin.settings.site.contactInfoPlaceholder")},null,8,T8),[[b,n.contact_info]]),e("p",F8,s(a(t)("admin.settings.site.contactInfoHint")),1)]),e("div",null,[e("label",M8,s(a(t)("admin.settings.site.docUrl")),1),m(e("input",{"onUpdate:modelValue":i[169]||(i[169]=o=>n.doc_url=o),type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.site.docUrlPlaceholder")},null,8,L8),[[b,n.doc_url]]),e("p",R8,s(a(t)("admin.settings.site.docUrlHint")),1)]),e("div",null,[e("label",H8,s(a(t)("admin.settings.site.siteLogo")),1),h(fa,{modelValue:n.site_logo,"onUpdate:modelValue":i[170]||(i[170]=o=>n.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",D8,s(a(t)("admin.settings.site.homeContent")),1),m(e("textarea",{"onUpdate:modelValue":i[171]||(i[171]=o=>n.home_content=o),rows:"6",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.site.homeContentPlaceholder")},null,8,j8),[[b,n.home_content]]),e("p",z8,s(a(t)("admin.settings.site.homeContentHint")),1),e("p",O8,s(a(t)("admin.settings.site.homeContentIframeWarning")),1)]),e("div",B8,[e("div",null,[e("label",I8,s(a(t)("admin.settings.site.compactHome")),1),e("p",q8,s(a(t)("admin.settings.site.compactHomeHint")),1)]),h(S,{modelValue:n.compact_home_enabled,"onUpdate:modelValue":i[172]||(i[172]=o=>n.compact_home_enabled=o),"data-testid":"compact-home-toggle"},null,8,["modelValue"])]),e("div",N8,[e("div",null,[e("label",W8,s(a(t)("admin.settings.site.hideCcsImportButton")),1
12),e("p",K8,s(a(t)("admin.settings.site.hideCcsImportButtonHint")),1)]),h(S,{modelValue:n.hide_ccs_import_button,"onUpdate:modelValue":i[173]||(i[173]=o=>n.hide_ccs_import_button=o)},null,8,["modelValue"])])])]),e("div",G8,[e("div",Q8,[e("h2",Y8,s(a(t)("admin.settings.customMenu.title")),1),e("p",J8,s(a(t)("admin.settings.customMenu.description")),1)]),e("div",Z8,[(r(!0),d(M,null,B(n.custom_menu_items,(o,p)=>(r(),d("div",{key:o.id||p,class:"rounded-lg border border-gray-200 p-4 dark:border-dark-600"},[e("div",X8,[e("span",e6,s(a(t)("admin.settings.customMenu.itemLabel",{n:p+1})),1),e("div",t6,[p>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:_=>Wa(p,-1)},[...i[297]||(i[297]=[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,a6)):x("",!0),p<n.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:_=>Wa(p,1)},[...i[298]||(i[298]=[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,s6)):x("",!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:_=>Vn(p)},[...i[299]||(i[299]=[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,n6)])]),e("div",i6,[e("div",null,[e("label",o6,s(a(t)("admin.settings.customMenu.name")),1),m(e("input",{"onUpdate:modelValue":_=>o.label=_,type:"text",class:"input text-sm",placeholder:a(t)("admin.settings.customMenu.namePlaceholder")},null,8,l6),[[b,o.label]])]),e("div",null,[e("label",r6,s(a(t)("admin.settings.customMenu.visibility")),1),m(e("select",{"onUpdate:modelValue":_=>o.visibility=_,class:"input text-sm"},[e("option",c6,s(a(t)("admin.settings.customMenu.visibilityUser")),1),e("option",u6,s(a(t)("admin.settings.customMenu.visibilityAdmin")),1)],8,d6),[[Je,o.visibility]])]),e("div",m6,[e("label",_6,s(a(t)("admin.settings.customMenu.url")),1),m(e("input",{"onUpdate:modelValue":_=>o.url=_,type:"url",class:"input font-mono text-sm",placeholder:a(t)("admin.settings.customMenu.urlPlaceholder")},null,8,p6),[[b,o.url]])]),e("div",g6,[e("label",y6,s(a(t)("admin.settings.customMenu.iconSvg")),1),h(fa,{"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"])])])]))),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:Cn},[i[300]||(i[300]=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)),T(" "+s(a(t)("admin.settings.customMenu.add")),1)])])])],512),[[Te,U.value==="general"]]),m(e("div",b6,[e("div",h6,[e("div",x6,[e("div",f6,[e("div",null,[e("h2",k6,s(C("登录条款确认","Login agreement")),1),e("p",v6,s(C("控制登录页是否要求用户先阅读并同意服务条款、隐私政策或其他 Markdown 文档。","Control whether the login page requires users to accept Markdown policy documents first.")),1)]),e("div",w6,[e("span",C6,s(n.login_agreement_enabled?C("已启用","Enabled"):C("未启用","Disabled")),1),h(S,{modelValue:n.login_agreement_enabled,"onUpdate:modelValue":i[174]||(i[174]=o=>n.login_agreement_enabled=o)},null,8,["modelValue"])])])]),e("div",V6,[e("div",U6,[e("div",null,[e("label",S6,s(C("展示形式","Display mode")),1),e("div",P6,[e("button",{type:"button",class:q(["inline-flex items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition",n.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[175]||(i[175]=o=>n.login_agreement_mode="modal")},[h(ie,{name:"shield",size:"sm"}),T(" "+s(C("弹窗","Modal")),1)],2),e("button",{type:"button",class:q(["inline-flex items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition",n.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[176]||(i[176]=o=>n.login_agreement_mode="checkbox")}
12,[h(ie,{name:"checkCircle",size:"sm"}),T(" "+s(C("复选框","Checkbox")),1)],2)]),e("p",$6,s(n.login_agreement_mode==="checkbox"?C("复选框会显示在登录按钮下方,未勾选前所有登录入口禁用。","The checkbox appears below the login button and gates all login actions."):C("弹窗会在登录页打开,用户拒绝后所有登录入口保持禁用。","The modal opens on the login page and gates all login actions until accepted.")),1)]),e("div",null,[e("label",E6,s(C("条款更新日期","Updated date")),1),m(e("input",{"onUpdate:modelValue":i[177]||(i[177]=o=>n.login_agreement_updated_at=o),type:"date",class:"input"},null,512),[[b,n.login_agreement_updated_at]]),e("p",A6,s(C("日期或文档内容变化后,用户需要重新同意。","Changing the date or content requires fresh consent.")),1)])]),e("div",null,[e("div",T6,[e("div",null,[e("h3",F6,s(C("协议文档","Agreement documents")),1),e("p",M6,s(C("文档名称可自定义,内容按 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:Pn},[h(ie,{name:"plus",size:"sm"}),T(" "+s(C("添加文档","Add document")),1)])]),e("div",L6,[(r(!0),d(M,null,B(n.login_agreement_documents,(o,p)=>(r(),d("div",{key:o.id||p,class:"rounded-lg border border-gray-200 bg-white p-4 dark:border-dark-700 dark:bg-dark-800/60"},[e("div",R6,[e("div",H6,[e("span",D6,[h(ie,{name:p===1?"shield":p===2?"globe":p===3?"cog":"document",size:"sm"},null,8,["name"])]),e("div",j6,[e("p",z6,s(o.title||C("未命名文档","Untitled document")),1),e("p",O6,s(Ls(o,p)),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:n.login_agreement_enabled&&n.login_agreement_documents.length<=1,onClick:_=>$n(p)},[h(ie,{name:"trash",size:"sm"})],8,B6)]),e("div",I6,[e("div",null,[e("label",q6,s(C("文档名称","Document title")),1),m(e("input",{"onUpdate:modelValue":_=>o.title=_,type:"text",class:"input text-sm",placeholder:C("例如:服务条款","Example: Terms of Service")},null,8,N6),[[b,o.title]])]),e("div",null,[e("label",W6,s(C("路由标识","Route slug")),1),e("div",K6,[i[301]||(i[301]=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)),m(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,G6),[[b,o.id]])])])]),e("div",Q6,[e("label",Y6,s(C("Markdown 内容","Markdown content")),1),m(e("textarea",{"onUpdate:modelValue":_=>o.content_md=_,rows:"8",class:"input font-mono text-sm",placeholder:C("在这里填写正式 Markdown 内容。","Write the final Markdown content here.")},null,8,J6),[[b,o.content_md]])])]))),128))])])])])],512),[[Te,U.value==="agreement"]]),m(e("div",Z6,[e("div",X6,[e("div",e7,[e("h2",t7,s(a(t)("admin.settings.features.channelMonitor.title")),1),e("p",a7,s(a(t)("admin.settings.features.channelMonitor.description")),1),e("p",s7,[h(y,{to:"/admin/channels/monitor",class:"inline-flex items-center gap-1 text-primary-600 hover:underline dark:text-primary-400"},{default:Pe(()=>[T(s(a(t)("admin.settings.features.channelMonitor.configureLink"))+" ",1),i[302]||(i[302]=e("span",{"aria-hidden":"true"},"→",-1))]),_:1})])]),e("div",n7,[e("div",i7,[e("div",null,[e("label",o7,s(a(t)("admin.settings.features.channelMonitor.enabled")),1),e("p",l7,s(a(t)("admin.settings.features.channelMonitor.enabledHint")),1)]),h(S,{modelValue:n.channel_monitor_enabled,"onUpdate:modelValue":i[178]||(i[178]=o=>n.channel_monitor_enabled=o)},null,8,["modelValue"])]),n.channel_monitor_enabled?(r(),d("div",r7,[e("div",null,[e("label",d7,s(a(t)("admin.settings.features.channelMonitor.mode")),1),e("div",c7,[e("button",{type:"button",class:q(["inline-flex flex-1 items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition",n.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[179]||(i[179]=o=>n.channel_monitor_mode="v2")},s(a(t)("admin.settings.features.channelMonitor.modeV2")),3),e("button",{type:"button",class:q(["inline-flex flex-1 items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition",n.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[180]||(i[180]=o=>n.channel_monitor_mode="v1")},s(a(t)("admin.settings.features.channelMonitor.modeV1")),3)]),e("p",u7,s(n.channel_monitor_mode==="v1"?a(t)("admin.settings.features.channelMonitor.modeV1Hint"):a(t)("admin.settings.features.channelMonitor.modeV2Hint")),1),e("p",m7,s(a(t)("admin.settings.features.channelMonitor.modeHint")),1)]),n.channel_monitor_mode==="v1"?(r(),d("div",_7,[e("label",p7,[T(s(a(t)("admin.settings.features.channelMonitor.defaultInterval"))+" ",1),i[303]||(i[303]=e("span",{class:"text-red-500"},"*",-1))]),m(e("input",{"onUpdate:modelValue":i[181]||(i[181]=o=>n.channel_monitor_default_interval_seconds=o),type:"number",min:"15",max:"3600",class:"input"},null,512),[[b,n.channel_monitor_default_interval_seconds,void 0,{number:!0}]]),e("p",g7,s(a(t)("admin.settings.features.channelMonitor.defaultIntervalHint")),1)])):x("",!0),n.channel_monitor_mode==="v2"?(r(),d("div",y7,[e("div",b7,[e("p",h7,s(a(t)("admin.settings.features.channelMonitor.hideThroughput")),1),e("p",x7,s(a(t)("admin.settings.features.channelMonitor.hideThroughputHint")),1)]),h(S,{modelValue:n.channel_monitor_hide_throughput,"onUpdate:modelValue":i[182]||(i[182]=o=>n.channel_monitor_hide_throughput=o)},null,8,["modelValue"])])):x("",!0),n.channel_monitor_mode==="v1"?(r(),d("div",f7,[e("div",k7,[e("p",v7,s(a(t)("admin.settings.features.channelMonitor.showQuota")),1),e("p",w7,s(a(t)("admin.settings.features.channelMonitor.showQuotaHint")),1)]),h(S,{modelValue:n.channel_monitor_show_quota,"onUpdate:modelValue":i[183]||(i[183]=o=>n.channel_monitor_show_quota=o)},null,8,["modelValue"])])):x("",!0)])):x("",!0)])]),e("div",C7,[e("div",V7,[e("h2",U7,s(a(t)("admin.settings.features.availableChannels.title")),1),e("p",S7,s(a(t)("admin.settings.features.availableChannels.description")),1),e("p",P7,[h(y,{to:"/admin/channels/pricing",class:"inline-flex items-center gap-1 text-primary-600 hover:underline dark:text-primary-400"},{default:Pe(()=>[T(s(a(t)("admin.settings.features.availableChannels.configureLink"))+" ",1),i[304]||(i[304]=e("span",{"aria-hidden":"true"},"→",-1))]),_:1})])]),e("div",$7,[e("div",E7,[e("div",null,[e("label",A7,s(a(t)("admin.settings.features.availableChannels.enabled")),1),e("p",T7,s(a(t)("admin.settings.features.availableChannels.enabledHint")),1)]),h(S,{modelValue:n.available_channels_enabled,"onUpdate:modelValue":i[184]||(i[184]=o=>n.available_channels_enabled=o)},null,8,["modelValue"])])])]),e("div",F7,[e("div",M7,[e("h2",L7,s(a(t)("admin.settings.features.modelPlaza.title")),1),e("p",R7,s(a(t)("admin.settings.features.modelPlaza.description")),1)]),e("div",H7,[e("div",D
127,[e("div",null,[e("label",j7,s(a(t)("admin.settings.features.modelPlaza.enabled")),1),e("p",z7,s(a(t)("admin.settings.features.modelPlaza.enabledHint")),1)]),h(S,{modelValue:n.model_plaza_enabled,"onUpdate:modelValue":i[185]||(i[185]=o=>n.model_plaza_enabled=o)},null,8,["modelValue"])]),n.model_plaza_enabled?(r(),d("div",O7,[e("div",null,[e("label",B7,s(a(t)("admin.settings.features.modelPlaza.requireAuth")),1),e("p",I7,s(a(t)("admin.settings.features.modelPlaza.requireAuthHint")),1)]),h(S,{modelValue:n.model_plaza_require_auth,"onUpdate:modelValue":i[186]||(i[186]=o=>n.model_plaza_require_auth=o)},null,8,["modelValue"])])):x("",!0),n.model_plaza_enabled?(r(),d("div",q7,[e("label",N7,s(a(t)("admin.settings.features.modelPlaza.priceDescription")),1),e("p",W7,s(a(t)("admin.settings.features.modelPlaza.priceDescriptionHint")),1),m(e("textarea",{"onUpdate:modelValue":i[187]||(i[187]=o=>n.model_plaza_description=o),rows:"6",class:"input font-mono text-sm"},null,512),[[b,n.model_plaza_description]])])):x("",!0)])]),e("div",K7,[e("div",G7,[e("h2",Q7,s(a(t)("admin.settings.features.pluginManagement.title")),1),e("p",Y7,s(a(t)("admin.settings.features.pluginManagement.description")),1)]),e("div",J7,[e("div",Z7,[e("div",null,[e("label",X7,s(a(t)("admin.settings.features.pluginManagement.enabled")),1),e("p",e9,s(a(t)("admin.settings.features.pluginManagement.enabledHint")),1)]),h(S,{modelValue:n.plugin_management_enabled,"onUpdate:modelValue":i[188]||(i[188]=o=>n.plugin_management_enabled=o)},null,8,["modelValue"])])])]),e("div",t9,[e("div",a9,[e("h2",s9,s(a(t)("admin.settings.features.riskControl.title")),1),e("p",n9,s(a(t)("admin.settings.features.riskControl.description")),1),e("p",i9,[h(y,{to:"/admin/risk-control",class:"inline-flex items-center gap-1 text-primary-600 hover:underline dark:text-primary-400"},{default:Pe(()=>[T(s(a(t)("admin.settings.features.riskControl.configureLink"))+" ",1),i[305]||(i[305]=e("span",{"aria-hidden":"true"},"→",-1))]),_:1})])]),e("div",o9,[e("div",l9,[e("div",null,[e("label",r9,s(a(t)("admin.settings.features.riskControl.enabled")),1),e("p",d9,s(a(t)("admin.settings.features.riskControl.enabledHint")),1)]),h(S,{modelValue:n.risk_control_enabled,"onUpdate:modelValue":i[189]||(i[189]=o=>n.risk_control_enabled=o)},null,8,["modelValue"])]),e("div",c9,[e("div",null,[e("label",u9,s(a(t)("admin.settings.features.riskControl.cyberSessionBlock")),1),e("p",m9,s(a(t)("admin.settings.features.riskControl.cyberSessionBlockHint")),1)]),h(S,{modelValue:n.cyber_session_block_enabled,"onUpdate:modelValue":i[190]||(i[190]=o=>n.cyber_session_block_enabled=o)},null,8,["modelValue"])]),n.cyber_session_block_enabled?(r(),d("div",_9,[e("label",p9,[T(s(a(t)("admin.settings.features.riskControl.cyberSessionBlockTTL"))+" ",1),i[306]||(i[306]=e("span",{class:"text-red-500"},"*",-1))]),m(e("input",{"onUpdate:modelValue":i[191]||(i[191]=o=>n.cyber_session_block_ttl_seconds=o),type:"number",min:"1",class:"input"},null,512),[[b,n.cyber_session_block_ttl_seconds,void 0,{number:!0}]])])):x("",!0)])]),e("div",g9,[e("div",y9,[e("h2",b9,s(a(t)("admin.settings.features.affiliate.title")),1),e("p",h9,s(a(t)("admin.settings.features.affiliate.description")),1)]),e("div",x9,[e("div",f9,[e("div",null,[e("label",k9,s(a(t)("admin.settings.features.affiliate.enabled")),1),e("p",v9,s(a(t)("admin.settings.features.affiliate.enabledHint")),1)]),h(S,{modelValue:n.affiliate_enabled,"onUpdate:modelValue":i[192]||(i[192]=o=>n.affiliate_enabled=o)},null,8,["modelValue"])]),n.affiliate_enabled?(r(),d("div",w9,[e("div",C9,[e("div",null,[e("label",V9,s(a(t)("admin.settings.features.affiliate.adminRechargeRebate")),1),e("p",U9,s(a(t)("admin.settings.features.affiliate.adminRechargeRebateHint")),1)]),h(S,{modelValue:n.affiliate_admin_recharge_enabled,"onUpdate:modelValue":i[193]||(i[193]=o=>n.affiliate_admin_recharge_enabled=o)},null,8,["modelValue"])]),e("div",null,[e("label",S9,s(a(t)("admin.settings.features.affiliate.rebateRate")),1),e("div",P9,[m(e("input",{"onUpdate:modelValue":i[194]||(i[194]=o=>n.affiliate_rebate_rate=o),type:"number",step:"0.01",min:"0",max:"100",class:"input pr-8",placeholder:"20"},null,512),[[b,n.affiliate_rebate_rate,void 0,{number:!0}]]),i[307]||(i[307]=e("span",{class:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-gray-400"},"%",-1))]),e("p",$9,s(a(t)("admin.settings.features.affiliate.rebateRateHint")),1)]),e("div",null,[e("label",E9,s(a(t)("admin.settings.features.affiliate.freezeHours")),1),m(e("input",{"onUpdate:modelValue":i[195]||(i[195]=o=>n.affiliate_rebate_freeze_hours=o),type:"number",step:"1",min:"0",max:"720",class:"input"},null,512),[[b,n.affiliate_rebate_freeze_hours,void 0,{number:!0}]]),e("p",A9,s(a(t)("admin.settings.features.affiliate.freezeHoursDesc")),1
12)]),e("div",null,[e("label",T9,s(a(t)("admin.settings.features.affiliate.durationDays")),1),m(e("input",{"onUpdate:modelValue":i[196]||(i[196]=o=>n.affiliate_rebate_duration_days=o),type:"number",step:"1",min:"0",max:"3650",class:"input"},null,512),[[b,n.affiliate_rebate_duration_days,void 0,{number:!0}]]),e("p",F9,s(a(t)("admin.settings.features.affiliate.durationDaysDesc")),1)]),e("div",null,[e("label",M9,s(a(t)("admin.settings.features.affiliate.perInviteeCap")),1),m(e("input",{"onUpdate:modelValue":i[197]||(i[197]=o=>n.affiliate_rebate_per_invitee_cap=o),type:"number",step:"0.01",min:"0",class:"input"},null,512),[[b,n.affiliate_rebate_per_invitee_cap,void 0,{number:!0}]]),e("p",L9,s(a(t)("admin.settings.features.affiliate.perInviteeCapDesc")),1)]),e("div",R9,[e("div",H9,[e("div",null,[e("h3",D9,s(a(t)("admin.settings.features.affiliate.customUsers.title")),1),e("p",j9,s(a(t)("admin.settings.features.affiliate.customUsers.description")),1)]),e("button",{type:"button",class:"btn btn-primary btn-sm",onClick:i[198]||(i[198]=o=>ms(null))}," + "+s(a(t)("admin.settings.features.affiliate.customUsers.addButton")),1)]),e("div",z9,[m(e("input",{"onUpdate:modelValue":i[199]||(i[199]=o=>O.search=o),type:"text",class:"input flex-1",placeholder:a(t)("admin.settings.features.affiliate.customUsers.searchPlaceholder"),onInput:Ii},null,40,O9),[[b,O.search]]),O.selected.length>0?(r(),d("button",{key:0,type:"button",class:"btn btn-secondary btn-sm",onClick:Ji},s(a(t)("admin.settings.features.affiliate.customUsers.batchButton",{count:O.selected.length})),1)):x("",!0)]),e("div",B9,[e("table",I9,[e("thead",q9,[e("tr",null,[e("th",N9,[e("input",{type:"checkbox",checked:O.entries.length>0&&O.selected.length===O.entries.length,onChange:qi},null,40,W9)]),e("th",K9,s(a(t)("admin.settings.features.affiliate.customUsers.col.email")),1),e("th",G9,s(a(t)("admin.settings.features.affiliate.customUsers.col.username")),1),e("th",Q9,s(a(t)("admin.settings.features.affiliate.customUsers.col.code")),1),e("th",Y9,s(a(t)("admin.settings.features.affiliate.customUsers.col.rate")),1),e("th",J9,s(a(t)("admin.settings.features.affiliate.customUsers.col.actions")),1)])]),e("tbody",Z9,[O.loading?(r(),d("tr",X9,[e("td",eC,s(a(t)("common.loading")),1)])):O.entries.length===0?(r(),d("tr",tC,[e("td",aC,s(a(t)("admin.settings.features.affiliate.customUsers.empty")),1)])):x("",!0),(r(!0),d(M,null,B(O.entries,o=>(r(),d("tr",{key:o.user_id},[e("td",sC,[e("input",{type:"checkbox",checked:O.selected.includes(o.user_id),onChange:p=>Ni(o.user_id)},null,40,nC)]),e("td",iC,s(o.email),1),e("td",oC,s(o.username),1),e("td",lC,[T(s(o.aff_code)+" ",1),o.aff_code_custom?(r(),d("span",rC,s(a(t)("admin.settings.features.affiliate.customUsers.customBadge")),1)):x("",!0)]),e("td",dC,[o.aff_rebate_rate_percent!=null?(r(),d("span",cC,s(o.aff_rebate_rate_percent)+"%",1)):(r(),d("span",uC,s(a(t)("admin.settings.features.affiliate.customUsers.useGlobal")),1))]),e("td",mC,[e("div",_C,[e("button",{type:"button",class:"text-primary-600 hover:underline",onClick:p=>ms(o)},s(a(t)("common.edit")),9,pC),e("button",{type:"button",class:"text-red-600 hover:underline",onClick:p=>Yi(o)},s(a(t)("common.delete")),9,gC)])])]))),128))])])]),O.total>O.pageSize?(r(),d("div",yC,[e("span",bC,s(a(t)("admin.settings.features.affiliate.customUsers.totalLabel",{total:O.total})),1),e("div",hC,[e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:O.page<=1,onClick:i[200]||(i[200]=o=>us(O.page-1))},s(a(t)("pagination.previous")),9,xC),e("span",fC,s(O.page)+" / "+s(Math.max(1,Math.ceil(O.total/O.pageSize))),1),e("button",{type:"button",class:"btn btn-secondary btn-sm",disabled:O.page>=Math.ceil(O.total/O.pageSize),onClick:i[201]||(i[201]=o=>us(O.page+1))},s(a(t)("pagination.next")),9,kC)])])):x("",!0)])])):x("",!0)])]),j.open?(r(),d("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:Oe(ra,["self"])},[e("div",vC,[e("h3",wC,s(j.mode==="add"?a(t)("admin.settings.features.affiliate.modal.addTitle"):a(t)("admin.settings.features.affiliate.modal.editTitle")),1),e("div",CC,[j.mode==="add"?(r(),d("div",VC,[e("label",UC,s(a(t)("admin.settings.features.affiliate.modal.userLabel")),1),j.selectedUser?(r(),d("div",SC,[e("div",PC,[e("span",$C,s(j.selectedUser.email),1),e("span",EC,"("+s(j.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:Gi}," × ",8,AC)])):(r(),d(M,{key:1},[m(e("input",{"onUpdate:modelValue":i[202]||(i[202]=o=>j.userQuery=o),type:"text",class:"input",placeholder:a(t)("admin.settings.features.affiliate.modal.userPlaceholder"),onInput:Wi},null,40,TC),[[b,j.userQuery]]),j.userResults.length>0?(r(),d("div",FC,[(r(!0),d(M,null,B(j.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:p=>Ki(o)},[T(s(o.email)+" ",1),e("span",LC,"("+s(o.username)+")",1)],8,MC))),128))])):x("",!0)],64))])):(r(),d("div",RC,[e("label",HC,s(a(t)("admin.settings.features.affiliate.modal.userLabel")),1),e("input",{type:"text",class:"input",value:j.editingEntry?j.editingEntry.email:"",disabled:""},null,8,DC)])),e("div",null,[e("label",jC,s(a(t)("admin.settings.features.affiliate.modal.codeLabel")),1),m(e("input",{"onUpdate:modelValue":i[203]||(i[203]=o=>j.code=o),type:"text",class:"input font-mono",placeholder:a(t)("admin.settings.features.affiliate.modal.codePlaceholder"),maxlength:"32"},null,8,zC),[[b,j.code]]),e("p",OC,s(a(t)("admin.settings.features.affiliate.modal.codeHint")),1)]),e("div",null,[e("label",BC,s(a(t)("admin.settings.features.affiliate.modal.rateLabel")),1),e("div",IC,[m(e("input",{"onUpdate:modelValue":i[204]||(i[204]=o=>j.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,qC),[[b,j.rate]]),i[308]||(i[308]=e("span",{class:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-gray-400"},"%",-1))]),e("p",NC,s(a(t)("admin.settings.features.affiliate.modal.rateHint")),1)])]),e("div",WC,[da.value?(r(),d("span",GC)):(r(),d("p",KC,s(a(t)("admin.settings.features.affiliate.modal.errorEmpty")),1)),e("div",QC,[e("button",{type:"button",class:"btn btn-secondary",onClick:ra},s(a(t)("common.cancel")),1),e("button",{type:"button",class:"btn btn-primary",disabled:j.saving||!da.value,onClick:Qi},s(j.saving?a(t)("common.saving"):a(t)("common.save")),9,YC)])])])])):x("",!0),Le.open?(r(),d("div",{key:1,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:i[207]||(i[207]=Oe(o=>Le.open=!1,["self"]))},[e("div",JC,[e("h3",ZC,s(a(t)("admin.settings.features.affiliate.batchModal.title",{count:O.selected.length})),1),e("p",XC,s(a(t)("admin.settings.features.affiliate.batchModal.hint")),1),e("div",eV,[m(e("input",{"onUpdate:modelValue":i[205]||(i[205]=o=>Le.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,tV),[[b,Le.rate]]),i[309]||(i[309]=e("span",{class:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-gray-400"},"%",-1))]),e("p",aV,s(a(t)("admin.settings.features.affiliate.batchModal.clearHint")),1),e("div",sV,[e("button",{type:"button",class:"btn btn-secondary",onClick:i[206]||(i[206]=o=>Le.open=!1)},s(a(t)("common.cancel")),1),e("button",{type:"button",class:"btn btn-primary",disabled:Le.saving,onClick:Zi},s(Le.saving?a(t)("common.saving"):a(t)("common.save")),9,nV)])])])):x("",!0)],512),[[Te,U.value==="features"]]),m(e("div",iV,[e("div",oV,[e("div",lV,[e("h2",rV,s(a(t)("admin.settings.payment.title")),1),e("p",dV,[T(s(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[310]||(i[310]=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)),T(" "+s(a(t)("admin.settings.payment.configGuide")),1)],8,cV)])]),e("div",uV,[e("div",mV,[e("div",null,[e("label",_V,s(a(t)("admin.settings.payment.enabled")),1),e("p",pV,s(a(t)("admin.settings.payment.enabledHint")),1)]),h(S,{modelValue:n.payment_enabled,"onUpdate:modelValue":i[208]||(i[208]=o=>n.payment_enabled=o)},null,8,["modelValue"])]),n.payment_enabled?(r(),d(M,{key:0},[e("div",gV,[e("div",null,[e("label",yV,s(a(t)("admin.settings.payment.productNamePrefix")),1),m(e("input",{"onUpdate:modelValue":i[209]||(i[209]=o=>n.payment_product_name_prefix=o),type:"text",class:"input",placeholder:"Sub2API"},null,512),[[b,n.payment_product_name_prefix]])]),e("div",null,[e("label",bV,s(a(t)("admin.settings.payment.productNameSuffix")),1),m(e("input",{"onUpdate:modelValue":i[210]||(i[210]=o=>n.payment_product_name_suffix=o),type:"text",class:"input",placeholder:"CNY"},null,512),[[b,n.payment_product_name_suffix]])]),e("div",null,[e("label",hV,s(a(t)("admin.settings.payment.preview")),1),e("div",xV,s((n.payment_product_name_prefix||"Sub2API")+" 100 "+(n.payment_product_name_suffix||"CNY")),1)])]),e("div",fV,[e("div",null,[e("label",kV,s(a(t)("admin.settings.payment.minAmount")),1),e("input",{value:n.payment_min_amount||"",onInput:i[211]||(i[211]=o=>n.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,vV)]),e("div",null,[e("label",wV,s(a(t)("admin.settings.payment.maxAmount")),1),e("input",{value:n.payment_max_amount||"",onInput:i[212]||(i[212]=o=>n.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,CV)]),e("div",null,[e("label",VV,s(a(t)("admin.settings.payment.dailyLimit")),1),e("input",{value:n.payment_daily_limit||"",onInput:i[213]||(i[213]=o=>n.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,UV)]),e("div",null,[e("label",SV,s(a(t)("admin.settings.payment.balanceRechargeMultiplier")),1),e("input",{value:n.payment_balance_recharge_multiplier||"",onInput:i[214]||(i[214]=o=>n.payment_balance_recharge_multiplier=parseFloat(o.target.value)||1),type:"number",step:"0.01",min:"0.01",class:"input"},null,40,PV),e("p",$V,s(a(t)("admin.settings.payment.balanceRechargeMultiplierHint")),1),e("p",EV,s(a(t)("admin.settings.payment.balanceRechargePreview",{usd:(Number(n.payment_balance_recharge_multiplier)||1).toFixed(2)})),1)]),e("div",null,[e("label",AV,s(a(t)("admin.settings.payment.subscriptionUsdToCnyRate")),1),e("input",{value:n.payment_subscription_usd_to_cny_rate||"",onInput:i[215]||(i[215]=o=>n.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,TV),e("p",FV,s(a(t)("admin.settings.payment.subscriptionUsdToCnyRateHint")),1)]),e("div",null,[e("label",MV,s(a(t)("admin.settings.payment.rechargeFeeRate")),1),e("div",LV,[e("input",{value:n.payment_recharge_fee_rate??"",onInput:i[216]||(i[216]=o=>n.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,RV),i[311]||(i[311]=e("span",{class:"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3 text-gray-400"},"%",-1))]),e("p",HV,s(a(t)("admin.settings.payment.rechargeFeeRateHint")),1),(Number(n.payment_recharge_fee_rate)||0)>0?(r(),d("p",DV,s(a(t)("admin.settings.payment.rechargeFeePreview",{fee:(Number(n.payment_recharge_fee_rate)||0).toFixed(2)})),1)):x("",!0)]),e("div",null,[e("label",jV,[T(s(a(t)("admin.settings.payment.orderTimeout"))+" ",1),i[312]||(i[312]=e("span",{class:"text-red-500"},"*",-1))]),m(e("input",{"onUpdate:modelValue":i[217]||(i[217]=o=>n.payment_order_timeout_minutes=o),type:"number",min:"1",class:"input",required:""},null,512),[[b,n.payment_order_timeout_minutes,void 0,{number:!0}]]),e("p",zV,s(a(t)("admin.settings.payment.orderTimeoutHint")),1)])]),e("div",OV,[e("div",BV,[e("label",IV,s(a(t)("admin.settings.payment.maxPendingOrders")),1),m(e("input",{"onUpdate:modelValue":i[218]||(i[218]=o=>n.payment_max_pending_orders=o),type:"number",min:"1",class:"input"},null,512),[[b,n.payment_max_pending_orders,void 0,{number:!0}]])]),e("div",null,[e("label",qV,s(a(t)("admin.settings.payment.loadBalanceStrategy")),1),h(fe,{modelValue:n.payment_load_balance_strategy,"onUpdate:modelValue":i[219]||(i[219]=o=>n.payment_load_balance_strategy=o),options:$i.value,class:"w-40"},null,8,["modelValue","options"])]),e("div",null,[e("label",NV,s(a(t)("admin.settings.payment.cancelRateLimit")),1),e("div",WV,[e("button",{type:"button",class:q(["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",n.payment_cancel_rate_limit_enabled?"bg-primary-500":"bg-gray-300 dark:bg-dark-600"]),onClick:i[220]||(i[220]=o=>n.payment_cancel_rate_limit_enabled=!n.payment_cancel_rate_limit_enabled)},[e("span",{class:q(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",n.payment_cancel_rate_limit_enabled?"translate-x-5":"translate-x-0"])},null,2)],2),h(fe,{modelValue:n.payment_cancel_rate_limit_window_mode,"onUpdate:modelValue":i[221]||(i[221]=o=>n.payment_cancel_rate_limit_window_mode=o),options:Ai.value,class:"w-24",disabled:!n.payment_cancel_rate_limit_enabled},null,8,["modelValue","options","disabled"]),e("span",{class:q(["text-sm whitespace-nowrap",n.payment_cancel_rate_limit_enabled?"text-gray-700 dark:text-gray-300":"text-gray-400 dark:text-gray-600"])},s(a(t)("admin.settings.payment.cancelRateLimitEvery")),3),m(e("input",{"onUpdate:modelValue":i[222]||(i[222]=o=>n.payment_cancel_rate_limit_window=o),type:"number",min:"1",required:"",class:"input w-14 text-center",disabled:!n.payment_cancel_rate_limit_enabled},null,8,KV),[[b,n.payment_cancel_rate_limit_window,void 0,{number:!0}]]),h(fe,{modelValue:n.payment_cancel_rate_limit_unit,"onUpdate:modelValue":i[223]||(i[223]=o=>n.payment_cancel_rate_limit_unit=o),options:Ei.value,class:"w-28",disabled:!n.payment_cancel_rate_limit_enabled},null,8,["modelValue","options","disabled"]),e("span",{class:q(["text-sm whitespace-nowrap",n.payment_cancel_rate_limit_enabled?"text-gray-700 dark:text-gray-300":"text-gray-400 dark:text-gray-600"])},s(a(t)("admin.settings.payment.cancelRateLimitAllowMax")),3),m(e("input",{"onUpdate:modelValue":i[224]||(i[224]=o=>n.payment_cancel_rate_limit_max=o),type:"number",min:"1",required:"",class:"input w-14 text-center",disabled:!n.payment_cancel_rate_limit_enabled},null,8,GV),[[b,n.payment_cancel_rate_limit_max,void 0,{number:!0}]]),e("span",{class:q(["text-sm whitespace-nowrap",n.payment_cancel_rate_limit_enabled?"text-gray-700 dark:text-gray-300":"text-gray-400 dark:text-gray-600"])}
12,s(a(t)("admin.settings.payment.cancelRateLimitTimes")),3)])]),e("div",null,[e("label",QV,s(a(t)("admin.settings.payment.alipayForceQRCode")),1),e("div",YV,[e("button",{type:"button",class:q(["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",n.payment_alipay_force_qrcode?"bg-primary-500":"bg-gray-300 dark:bg-dark-600"]),onClick:i[225]||(i[225]=o=>n.payment_alipay_force_qrcode=!n.payment_alipay_force_qrcode)},[e("span",{class:q(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",n.payment_alipay_force_qrcode?"translate-x-5":"translate-x-0"])},null,2)],2),e("span",JV,s(a(t)("admin.settings.payment.alipayForceQRCodeHint")),1)])]),e("div",null,[e("label",ZV,s(a(t)("admin.settings.payment.alipayMobilePrecreateDeepLink")),1),e("div",XV,[e("button",{type:"button",class:q(["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",n.payment_alipay_mobile_precreate_deep_link?"bg-primary-500":"bg-gray-300 dark:bg-dark-600"]),onClick:i[226]||(i[226]=o=>n.payment_alipay_mobile_precreate_deep_link=!n.payment_alipay_mobile_precreate_deep_link)},[e("span",{class:q(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",n.payment_alipay_mobile_precreate_deep_link?"translate-x-5":"translate-x-0"])},null,2)],2),e("span",eU,s(a(t)("admin.settings.payment.alipayMobilePrecreateDeepLinkHint")),1)])])]),e("div",null,[e("label",tU,s(a(t)("admin.settings.payment.enabledPaymentTypes")),1),e("div",aU,[(r(!0),d(M,null,B(ta.value,o=>(r(),d("button",{key:o.value,type:"button",onClick:p=>Ui(o.value),class:q(["rounded-lg border px-3 py-1.5 text-sm font-medium transition-all",Ci(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"])},s(o.label),11,sU))),128))]),e("p",nU,[T(s(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"},[T(s(a(t)("admin.settings.payment.findProvider"))+" ",1),i[313]||(i[313]=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,iU)])]),e("div",oU,[e("div",null,[e("label",lU,s(a(t)("admin.settings.payment.helpImage")),1),h(fa,{modelValue:n.payment_help_image_url,"onUpdate:modelValue":i[227]||(i[227]=o=>n.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",rU,s(a(t)("admin.settings.payment.helpText")),1),m(e("textarea",{"onUpdate:modelValue":i[228]||(i[228]=o=>n.payment_help_text=o),rows:"3",class:"input",placeholder:a(t)("admin.settings.payment.helpTextPlaceholder")},null,8,dU),[[b,n.payment_help_text]])])])],64)):x("",!0)])]),n.payment_enabled?(r(),Be(Xo,{key:0,providers:Vt.value,loading:aa.value,"can-create":Vi.value,"enabled-payment-types":n.payment_enabled_types,"all-payment-types":ta.value,"redirect-label":a(t)("admin.settings.payment.easypayRedirect"),onRefresh:Ye,onCreate:Ti,onEdit:Fi,onDelete:Hi,onToggleField:Li,onToggleType:Ri,onReorder:Di},null,8,["providers","loading","can-create","enabled-payment-types","all-payment-types","redirect-label"])):x("",!0)],512),[[Te,U.value==="payment"]]),m(e("div",cU,[n.email_verify_enabled?x("",!0):(r(),d("div",uU,[e("div",mU,[e("div",_U,[h(ie,{name:"mail",size:"md",class:"mt-0.5 flex-shrink-0 text-gray-400 dark:text-gray-500"}),e("div",null,[e("h3",pU,s(a(t)("admin.settings.emailTabDisabledTitle")),1),e("p",gU,s(a(t)("admin.settings.emailTabDisabledHint")),1)])])])])),n.email_verify_enabled?(r(),d("div",yU,[e("div",bU,[e("div",null,[e("h2",hU,s(a(t)("admin.settings.smtp.title")),1),e("p",xU,s(a(t)("admin.settings.smtp.description")),1)]),e("button",{type:"button",onClick:Wn,disabled:ue.value||oe.value,class:"btn btn-secondary btn-sm"},[ue.value?(r(),d("svg",kU,[...i[314]||(i[314]=[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)])])):x("",!0),T(" "+s(ue.value?a(t)("admin.settings.smtp.testing"):a(t)("admin.settings.smtp.testConnection")),1)],8,fU)]),e("div",vU,[e("div",wU,[e("div",null,[e("label",CU,s(a(t)("admin.settings.smtp.host")),1),m(e("input",{"onUpdate:modelValue":i[229]||(i[229]=o=>n.smtp_host=o),type:"text",class:"input",placeholder:a(t)("admin.settings.smtp.hostPlaceholder")},null,8,VU),[[b,n.smtp_host]])]),e("div",null,[e("label",UU,s(a(t)("admin.settings.smtp.port")),1),m(e("input",{"onUpdate:modelValue":i[230]||(i[230]=o=>n.smtp_port=o),type:"number",min:"1",max:"65535",class:"input",placeholder:a(t)("admin.settings.smtp.portPlaceholder")},null,8,SU),[[b,n.smtp_port,void 0,{number:!0}]])]),e("div",null,[e("label",PU,s(a(t)("admin.settings.smtp.username")),1),m(e("input",{"onUpdate:modelValue":i[231]||(i[231]=o=>n.smtp_username=o),type:"text",class:"input",placeholder:a(t)("admin.settings.smtp.usernamePlaceholder")}
12,null,8,$U),[[b,n.smtp_username]])]),e("div",null,[e("label",EU,s(a(t)("admin.settings.smtp.password")),1),m(e("input",{"onUpdate:modelValue":i[232]||(i[232]=o=>n.smtp_password=o),type:"password",class:"input",autocomplete:"new-password",autocapitalize:"off",spellcheck:"false",onKeydown:i[233]||(i[233]=o=>Q.value=!0),onPaste:i[234]||(i[234]=o=>Q.value=!0),placeholder:n.smtp_password_configured?a(t)("admin.settings.smtp.passwordConfiguredPlaceholder"):a(t)("admin.settings.smtp.passwordPlaceholder")},null,40,AU),[[b,n.smtp_password]]),e("p",TU,s(n.smtp_password_configured?a(t)("admin.settings.smtp.passwordConfiguredHint"):a(t)("admin.settings.smtp.passwordHint")),1)]),e("div",null,[e("label",FU,s(a(t)("admin.settings.smtp.fromEmail")),1),m(e("input",{"onUpdate:modelValue":i[235]||(i[235]=o=>n.smtp_from_email=o),type:"email",class:"input",placeholder:a(t)("admin.settings.smtp.fromEmailPlaceholder")},null,8,MU),[[b,n.smtp_from_email]])]),e("div",null,[e("label",LU,s(a(t)("admin.settings.smtp.fromName")),1),m(e("input",{"onUpdate:modelValue":i[236]||(i[236]=o=>n.smtp_from_name=o),type:"text",class:"input",placeholder:a(t)("admin.settings.smtp.fromNamePlaceholder")},null,8,RU),[[b,n.smtp_from_name]])])]),e("div",HU,[e("div",null,[e("label",DU,s(a(t)("admin.settings.smtp.useTls")),1),e("p",jU,s(a(t)("admin.settings.smtp.useTlsHint")),1)]),h(S,{modelValue:n.smtp_use_tls,"onUpdate:modelValue":i[237]||(i[237]=o=>n.smtp_use_tls=o)},null,8,["modelValue"])])])])):x("",!0),n.email_verify_enabled?(r(),d("div",zU,[e("div",OU,[e("h2",BU,s(a(t)("admin.settings.testEmail.title")),1),e("p",IU,s(a(t)("admin.settings.testEmail.description")),1)]),e("div",qU,[e("div",NU,[e("div",WU,[e("label",KU,s(a(t)("admin.settings.testEmail.recipientEmail")),1),m(e("input",{"onUpdate:modelValue":i[238]||(i[238]=o=>Y.value=o),type:"email",class:"input",placeholder:a(t)("admin.settings.testEmail.recipientEmailPlaceholder")},null,8,GU),[[b,Y.value]])]),e("button",{type:"button",onClick:Kn,disabled:le.value||!Y.value||oe.value,class:"btn btn-secondary"},[le.value?(r(),d("svg",YU,[...i[315]||(i[315]=[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)])])):x("",!0),T(" "+s(le.value?a(t)("admin.settings.testEmail.sending"):a(t)("admin.settings.testEmail.sendTestEmail")),1)],8,QU)])])])):x("",!0),e("div",JU,[e("div",ZU,[e("h3",XU,s(a(t)("admin.settings.subscriptionExpiryNotify.title")),1),e("p",eS,s(a(t)("admin.settings.subscriptionExpiryNotify.description")),1)]),e("div",tS,[e("div",aS,[e("div",null,[e("label",sS,s(a(t)("admin.settings.subscriptionExpiryNotify.enabled")),1),e("p",nS,s(a(t)("admin.settings.subscriptionExpiryNotify.enabledHint")),1)]),h(S,{modelValue:n.subscription_expiry_notify_enabled,"onUpdate:modelValue":i[239]||(i[239]=o=>n.subscription_expiry_notify_enabled=o)},null,8,["modelValue"])])])]),h(Du),e("div",iS,[e("div",oS,[e("h3",lS,s(a(t)("admin.settings.balanceNotify.title")),1),e("p",rS,s(a(t)("admin.settings.balanceNotify.description")),1)]),e("div",dS,[e("div",cS,[e("label",uS,s(a(t)("admin.settings.balanceNotify.enabled")),1),h(S,{modelValue:n.balance_low_notify_enabled,"onUpdate:modelValue":i[240]||(i[240]=o=>n.balance_low_notify_enabled=o)},null,8,["modelValue"])]),n.balance_low_notify_enabled?(r(),d("div",mS,[e("label",_S,s(a(t)("admin.settings.balanceNotify.threshold")),1),e("div",pS,[i[316]||(i[316]=e("span",{class:"absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"},"$",-1)),m(e("input",{"onUpdate:modelValue":i[241]||(i[241]=o=>n.balance_low_notify_threshold=o),type:"number",min:"0",step:"0.01",class:"input pl-7"},null,512),[[b,n.balance_low_notify_threshold,void 0,{number:!0}]])]),e("p",gS,s(a(t)("admin.settings.balanceNotify.thresholdHint")),1)])):x("",!0),e("div",null,[e("label",yS,s(a(t)("admin.settings.balanceNotify.rechargeUrl")),1),m(e("input",{"onUpdate:modelValue":i[242]||(i[242]=o=>n.balance_low_notify_recharge_url=o),type:"url",class:"input",placeholder:a(Kt)},null,8,bS),[[b,n.balance_low_notify_recharge_url]]),e("p",hS,s(a(t)("admin.settings.balanceNotify.rechargeUrlHint")),1)])])]),e("div",xS,[e("div",fS,[e("h3",kS,s(a(t)("admin.settings.quotaNotify.title")),1),e("p",vS,s(a(t)("admin.settings.quotaNotify.description")),1)]),e("div",wS,[e("div",CS,[e("label",VS,s(a(t)("admin.settings.quotaNotify.enabled")),1),h(S,{modelValue:n.account_quota_notify_enabled,"onUpdate:modelValue":i[243]||(i[243]=o=>n.account_quota_notify_enabled=o)},null,8,["modelValue"])]),n.account_quota_notify_enabled?(r(),d("div",US,[e("label",SS,s(a(t)("admin.settings.quotaNotify.emails")),1),e("div",PS,[(r(!0),d(M,null,B(n.account_quota_notify_emails||[],(o,p)=>(r(),d("div",{key:p,class:"flex items-center gap-2"},[e("label",$S,[e("input",{type:"checkbox",checked:!o.disabled,onChange:_=>o.disabled=!o.disabled,class:"sr-only peer"},null,40,ES),i[317]||(i[317]=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))]),m(e("input",{"onUpdate:modelValue":_=>o.email=_,type:"email",class:"input flex-1",placeholder:a(t)("admin.settings.quotaNotify.emailPlaceholder")},null,8,AS),[[b,o.email]]),e("button",{onClick:_=>n.account_quota_notify_emails.splice(p,1),class:"btn btn-secondary px-2",type:"button"},[h(ie,{name:"x",size:"xs",class:"h-4 w-4"})],8,TS)]))),128)),e("button",{onClick:bn,class:"btn btn-secondary btn-sm",type:"button"}," + "+s(a(t)("admin.settings.quotaNotify.addEmail")),1)]),e("p",FS,s(a(t)("admin.settings.quotaNotify.emailsHint")),1)])):x("",!0)])])],512),[[Te,U.value==="email"]]),m(e("div",null,[h(Kc)],512),[[Te,U.value==="backup"]]),m(e("div",MS,[e("button",{type:"submit",disabled:_e.value||oe.value,class:"btn btn-primary"},[_e.value?(r(),d("svg",RS,[...i[318]||(i[318]=[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)])])):x("",!0),T(" "+s(_e.value?a(t)("admin.settings.saving"):a(t)("admin.settings.saveSettings")),1)],8,LS)],512),[[Te,U.value!=="backup"]])],32)),h(wr,{ref_key:"providerDialogRef",ref:ia,show:gt.value,saving:sa.value,editing:Ke.value,"all-key-options":os.value,"enabled-key-options":ls.value,"all-payment-types":ta.value,"redirect-label":a(t)("admin.settings.payment.easypayRedirect"),onClose:i[244]||(i[244]=o=>gt.value=!1),onSave:Mi},null,8,["show","saving","editing","all-key-options","enabled-key-options","all-payment-types","redirect-label"]),h(ks,{show:Ut.value,title:a(t)("admin.settings.payment.deleteProvider"),message:a(t)("admin.settings.payment.deleteProviderConfirm"),"confirm-text":a(t)("common.delete"),danger:"",onConfirm:ji,onCancel:i[245]||(i[245]=o=>Ut.value=!1)},null,8,["show","title","message","confirm-text"]),h(ks,{show:Ae.show,title:Ae.title,message:Ae.message,"confirm-text":Ae.confirmText,danger:"",onConfirm:Oi,onCancel:Bi},null,8,["show","title","message","confirm-text"]),h(Ts,{controller:a(K)},null,8,["controller"])])]),_:1})}}}),mP=$s(jS,[["__scopeId","data-v-d913116c"]]);export{mP 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.