Files
wordpress-theme-aksrt/assets/admin/build/SchemaPage.DUnjy3YN.js
T
kate522 39bafb65c4 fix(icons): render FA glyphs in the SPA picker grid and harden item clicks
The server catalog ships bare glyph names, but the SPA grid preview
composed "fas home" instead of "fas fa-home" — every FA icon rendered
blank (the old curated lists carried the fa- prefix, so the regression
appeared with the catalog switch).

Item clicks move from per-element @click to a delegated panel handler
reading data-icon (immunity to DOM-replacing extensions/userscripts,
matching the PHP picker's pattern), and selecting now closes the
popover so the choice is visible in the field immediately.
2026-09-06 15:48:52 +08:00

2 lines
20 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{aa as q,a1 as i,W as _,a2 as b,a3 as s,a4 as l,f,Y as I,a5 as K,ab as Y,c as z,w as Z,b as ve,X as E,ac as _e,R as ee,N as R,ad as ye,I as ge,Z as ke,r as B,$ as we,F as be,a6 as he,l as Se,ae as Ce,af as xe,n as Ae}from"./vendor-vue.BxZIRU0_.js";import{u as Te,A as Ie,n as ze,g as te}from"./shared-api.DieGsdVx.js";import{a as O}from"./shared-api.DnsQ5cxS.js";import{_ as Ue}from"./index.js";import{u as Pe}from"./vendor-naive.CKYCZmXD.js";import"./FaIcon.NZ6TDkNu.js";import"./FaIconPicker.C_p6xA0k.js";import"./vendor-misc.bELTaXdf.js";import"./level.E3ANSDAX.js";import"./badge.CKTsmH1z.js";const Ve={__name:"TencentConfig",props:{modelValue:{type:Object,default:()=>({})},modelModifiers:{}},emits:Y(["clear-secret","restore-secret"],["update:modelValue"]),setup(U,{emit:P}){const n=q(U,"modelValue"),k=P;function A(u){k("clear-secret",u),n.value={...n.value,[u]:""}}function y(u,e){e!==""&&k("restore-secret",u)}const d=z(()=>{const u=n.value;return!!(u.secret_id&&u.secret_key&&u.app_id&&u.app_secret_key)});return(u,e)=>{const w=i("n-divider"),m=i("n-a"),g=i("n-alert"),v=i("n-input"),C=i("n-form-item"),x=i("n-button"),h=i("n-tag"),$=i("n-space"),M=i("n-form");return _(),b(M,{"label-placement":"left","label-width":"130"},{default:s(()=>[l($,{vertical:"",style:{width:"100%"}},{default:s(()=>[l(w,{"title-placement":"left"},{default:s(()=>[...e[8]||(e[8]=[f("云 API 密钥(用于 TC3 签名)",-1)])]),_:1}),l(g,{type:"warning",style:{"margin-bottom":"12px"}},{default:s(()=>[e[10]||(e[10]=f(" 请从 ",-1)),l(m,{href:"https://console.cloud.tencent.com/cam/capi",target:"_blank"},{default:s(()=>[...e[9]||(e[9]=[f("访问管理控制台 → API 密钥管理",-1)])]),_:1}),e[11]||(e[11]=f(" 获取。建议使用子账号密钥并仅授予 ",-1)),e[12]||(e[12]=I("code",null,"QcloudCaptchaFullAccess",-1)),e[13]||(e[13]=f(" 权限。 ",-1))]),_:1}),l(C,{label:"SecretId"},{default:s(()=>[l(v,{value:n.value.secret_id,"onUpdate:value":e[0]||(e[0]=o=>n.value.secret_id=o),placeholder:"腾讯云 API SecretId",autocomplete:"off"},null,8,["value"])]),_:1}),l(C,{label:"SecretKey"},{default:s(()=>[l(v,{value:n.value.secret_key,"onUpdate:value":[e[1]||(e[1]=o=>n.value.secret_key=o),e[2]||(e[2]=o=>y("secret_key",o))],type:"password",placeholder:"腾讯云 API SecretKey",autocomplete:"new-password","show-password-on":"click"},null,8,["value"]),n.value.secret_key==="***"?(_(),b(x,{key:0,size:"tiny",type:"error",ghost:"",style:{"margin-left":"8px"},onClick:e[3]||(e[3]=o=>A("secret_key"))},{default:s(()=>[...e[14]||(e[14]=[f("清除",-1)])]),_:1})):K("",!0)]),_:1}),l(w,{"title-placement":"left"},{default:s(()=>[...e[15]||(e[15]=[f("验证码密钥",-1)])]),_:1}),l(C,{label:"CaptchaAppId"},{default:s(()=>[l(v,{value:n.value.app_id,"onUpdate:value":e[4]||(e[4]=o=>n.value.app_id=o),placeholder:"从验证码控制台获取 CaptchaAppId",autocomplete:"off"},null,8,["value"])]),_:1}),l(C,{label:"AppSecretKey"},{feedback:s(()=>[...e[17]||(e[17]=[f("请从「验证管理 → 基础配置」完整复制,注意区分 I/l/1/O/0",-1)])]),default:s(()=>[l(v,{value:n.value.app_secret_key,"onUpdate:value":[e[5]||(e[5]=o=>n.value.app_secret_key=o),e[6]||(e[6]=o=>y("app_secret_key",o))],type:"password",placeholder:"从验证码控制台获取 AppSecretKey",autocomplete:"new-password","show-password-on":"click"},null,8,["value"]),n.value.app_secret_key==="***"?(_(),b(x,{key:0,size:"tiny",type:"error",ghost:"",style:{"margin-left":"8px"},onClick:e[7]||(e[7]=o=>A("app_secret_key"))},{default:s(()=>[...e[16]||(e[16]=[f("清除",-1)])]),_:1})):K("",!0)]),_:1}),l(g,{type:"info",style:{"margin-bottom":"12px"}},{default:s(()=>[...e[18]||(e[18]=[f(" 腾讯云验证码 2.0 — 验证类型(滑动拼图、文字点选、空间语义等)请在",-1),I("a",{href:"https://console.cloud.tencent.com/captcha/graphical",target:"_blank"},"验证码控制台",-1),f("配置。 ",-1)])]),_:1}),d.value?(_(),b(h,{key:0,type:"success",size:"small"},{default:s(()=>[...e[19]||(e[19]=[f("✓ 已完整配置",-1)])]),_:1})):(_(),b(h,{key:1,type:"warning",size:"small"},{default:s(()=>[...e[20]||(e[20]=[f("未完成配置",-1)])]),_:1}))]),_:1})]),_:1})}}},De={__name:"AliyunConfig",props:{modelValue:{type:Object,default:()=>({})},modelModifiers:{}},emits:Y(["clear-secret","restore-secret"],["update:modelValue"]),setup(U,{emit:P}){const n=q(U,"modelValue"),k=P;function A(u){k("clear-secret",u),n.value={...n.value,[u]:""}}function y(u,e){e!==""&&k("restore-secret",u)}const d=z(()=>{const u=n.value;return!!(u.region&&u.prefix&&u.scene_id&&u.access_key_id&&u.access_key_secret)});return(u,e)=>{const w=i("n-divider"),m=i("n-select"),g=i("n-form-item"),v=i("n-input"),C=i("n-button"),x=i("n-alert"),h=i("n-tag"),$=i("n-space"),M=i("n-form");return _(),b(M,{"label-placement":"left","label-width":"130"},{default:s(()=>[l($,{vertical:"",style:{width:"100%"}},{default:s(()=>[l(w,{"title-placement":"left"},{default:s(()=>[...e[7]||(e[7]=[f("前端配置",-1)])]),_:1}),l(g,{label:"所属地区"},{default:s(()=>[l(m,{value:n.value.region,"onUpdate:value":e[0]||(e[0]=o=>n.value.region=o),options:[{label:"中国内地 (cn)",value:"cn"},{label:"新加坡 (sgp)",value:"sgp"}],placeholder:"选择地区"},null,8,["value"])]),_:1}),l(g,{label:"身份标 (prefix)"},{default:s(()=>[l(v,{value:n.value.prefix,"onUpdate:value":e[1]||(e[1]=o=>n.value.prefix=o),placeholder:"从概览页获取身份标",autocomplete:"off"},null,8,["value"])]),_:1}),l(g,{label:"场景ID"},{default:s(()=>[l(v,{value:n.value.scene_id,"onUpdate:value":e[2]||(e[2]=o=>n.value.scene_id=o),placeholder:"从验证码场景列表获取 SceneId",autocomplete:"off"},null,8,["value"])]),_:1}),l(w,{"title-placement":"left"},{default:s(()=>[...e[8]||(e[8]=[f("后端 API 密钥(用于服务端验签)",-1)])]),_:1}),l(g,{label:"AccessKey ID"},{default:s(()=>[l(v,{value:n.value.access_key_id,"onUpdate:value":e[3]||(e[3]=o=>n.value.access_key_id=o),placeholder:"阿里云 RAM 用户 AccessKey ID",autocomplete:"off"},null,8,["value"])]),_:1}),l(g,{label:"AccessKey Secret"},{default:s(()=>[l(v,{value:n.value.access_key_secret,"onUpdate:value":[e[4]||(e[4]=o=>n.value.access_key_secret=o),e[5]||(e[5]=o=>y("access_key_secret",o))],type:"password","show-password-on":"click",autocomplete:"new-password",placeholder:"阿里云 RAM 用户 AccessKey Secret"},null,8,["value"]),n.value.access_key_secret==="***"?(_(),b(C,{key:0,size:"tiny",type:"error",ghost:"",style:{"margin-left":"8px"},onClick:e[6]||(e[6]=o=>A("access_key_secret"))},{default:s(()=>[...e[9]||(e[9]=[f("清除",-1)])]),_:1})):K("",!0)]),_:1}),l(x,{type:"warning",style:{"margin-bottom":"8px"}},{default:s(()=>[...e[10]||(e[10]=[f(" 请使用 RAM 子账号密钥并授权 ",-1),I("code",null,"AliyunYundunAFSFullAccess",-1),f(" 权限,切勿使用主账号密钥。 ",-1)])]),_:1}),d.value?(_(),b(h,{key:0,type:"success",size:"small"},{default:s(()=>[...e[11]||(e[11]=[f("✓ 已完整配置",-1)])]),_:1})):(_(),b(h,{key:1,type:"warning",size:"small"},{default:s(()=>[...e[12]||(e[12]=[f("未完成配置",-1)])]),_:1}))]),_:1})]),_:1})}}},Ke={__name:"CloudflareConfig",props:{modelValue:{type:Object,default:()=>({})},modelModifiers:{}},emits:Y(["clear-secret","restore-secret"],["update:modelValue"]),setup(U,{emit:P}){const n=q(U,"modelValue"),k=P;function A(w){k("clear-secret",w),n.value={...n.value,[w]:""}}function y(w,m){m!==""&&k("restore-secret",w)}const d=z(()=>{const w=n.value;return!!(w.site_key&&w.secret_key)}),u=[{label:"自动",value:"auto"},{label:"浅色",value:"light"},{label:"深色",value:"dark"}],e=[{label:"正常",value:"normal"},{label:"紧凑",value:"compact"}];return(w,m)=>{const g=i("n-input"),v=i("n-form-item"),C=i("n-button"),x=i("n-select"),h=i("n-tag"),$=i("n-space"),M=i("n-form");return _(),b(M,{"label-placement":"left","label-width":"130"},{default:s(()=>[l($,{vertical:"",style:{width:"100%"}},{default:s(()=>[l(v,{label:"Site Key"},{default:s(()=>[l(g,{value:n.value.site_key,"onUpdate:value":m[0]||(m[0]=o=>n.value.site_key=o),placeholder:"Cloudflare Turnstile Site Key",autocomplete:"off"},null,8,["value"])]),_:1}),l(v,{label:"Secret Key"},{default:s(()=>[l(g,{value:n.value.secret_key,"onUpdate:value":[m[1]||(m[1]=o=>n.value.secret_key=o),m[2]||(m[2]=o=>y("secret_key",o))],type:"password","show-password-on":"click",autocomplete:"new-password"},null,8,["value"]),n.value.secret_key==="***"?(_(),b(C,{key:0,size:"tiny",type:"error",ghost:"",style:{"margin-left":"8px"},onClick:m[3]||(m[3]=o=>A("secret_key"))},{default:s(()=>[...m[6]||(m[6]=[f("清除",-1)])]),_:1})):K("",!0)]),_:1}),l(v,{label:"主题"},{default:s(()=>[l(x,{value:n.value.theme,"onUpdate:value":m[4]||(m[4]=o=>n.value.theme=o),options:u,clearable:""},null,8,["value"])]),_:1}),l(v,{label:"尺寸"},{default:s(()=>[l(x,{value:n.value.size,"onUpdate:value":m[5]||(m[5]=o=>n.value.size=o),options:e,clearable:""},null,8,["value"])]),_:1}),d.value?(_(),b(h,{key:0,type:"success",size:"small"},{default:s(()=>[...m[7]||(m[7]=[f("✓ 已完整配置",-1)])]),_:1})):(_(),b(h,{key:1,type:"warning",size:"small"},{default:s(()=>[...m[8]||(m[8]=[f("未完成配置",-1)])]),_:1}))]),_:1})]),_:1})}}},Re={__name:"GeetestConfig",props:{modelValue:{type:Object,default:()=>({product:"bind"})},modelModifiers:{}},emits:Y(["clear-secret","restore-secret"],["update:modelValue"]),setup(U,{emit:P}){const n=q(U,"modelValue"),k=P;function A(u){k("clear-secret",u),n.value={...n.value,[u]:""}}function y(u,e){e!==""&&k("restore-secret",u)}const d=z(()=>{const u=n.value;return!!(u.captcha_id&&u.captcha_key)});return(u,e)=>{const w=i("n-input"),m=i("n-form-item"),g=i("n-button"),v=i("n-tag"),C=i("n-space"),x=i("n-form");return _(),b(x,{"label-placement":"left","label-width":"130"},{default:s(()=>[l(C,{vertical:"",style:{width:"100%"}},{default:s(()=>[l(m,{label:"Captcha ID"},{default:s(()=>[l(w,{value:n.value.captcha_id,"onUpdate:value":e[0]||(e[0]=h=>n.value.captcha_id=h),placeholder:"极验 GeeTest CaptchaID",autocomplete:"off"},null,8,["value"])]),_:1}),l(m,{label:"Captcha Key"},{default:s(()=>[l(w,{value:n.value.captcha_key,"onUpdate:value":[e[1]||(e[1]=h=>n.value.captcha_key=h),e[2]||(e[2]=h=>y("captcha_key",h))],type:"password","show-password-on":"click",autocomplete:"new-password"},null,8,["value"]),n.value.captcha_key==="***"?(_(),b(g,{key:0,size:"tiny",type:"error",ghost:"",style:{"margin-left":"8px"},onClick:e[3]||(e[3]=h=>A("captcha_key"))},{default:s(()=>[...e[4]||(e[4]=[f("清除",-1)])]),_:1})):K("",!0)]),_:1}),d.value?(_(),b(v,{key:0,type:"success",size:"small"},{default:s(()=>[...e[5]||(e[5]=[f("✓ 已完整配置",-1)])]),_:1})):(_(),b(v,{key:1,type:"warning",size:"small"},{default:s(()=>[...e[6]||(e[6]=[f("未完成配置",-1)])]),_:1}))]),_:1})]),_:1})}}},$e={class:"aksrt-schema-page"},Me={key:0,class:"aksrt-schema-page__tool-actions"},Ee={class:"captcha-test-panel"},Fe={class:"captcha-test-body"},Be={key:0,style:{"text-align":"center",padding:"40px"}},Le={style:{"font-size":"16px",margin:"0"}},je={key:2,id:"captcha-test-box",style:{"min-height":"150px"}},Ne={__name:"SchemaPage",props:{domain:{type:String,default:""},section:{type:String,default:""},showSearch:{type:Boolean,default:!0}},setup(U){const P=U,n=we(),k=Pe(),A=B(!1),y=B(!1),d=B(null),u=B(null),e=B(new Set),w=[{key:"tencent",label:"腾讯云 Captcha",component:Ve},{key:"aliyun",label:"阿里云 CAPTCHA2.0",component:De},{key:"cloudflare",label:"Cloudflare Turnstile",component:Ke},{key:"geetest",label:"极验 Geetest",component:Re}],m=B("tencent"),g=z(()=>{var a,t;return ze(P.domain||((a=n.meta)==null?void 0:a.canonicalDomain)||((t=n.meta)==null?void 0:t.schemaDomain)||$(n.path))}),v=z(()=>{var a,t;return P.section||((a=n.meta)==null?void 0:a.section)||((t=n.meta)==null?void 0:t.schemaSection)||M(n.path)}),C=z(()=>g.value==="global"&&v.value==="email"),x=z(()=>g.value==="permissions"&&v.value==="login"),h=z(()=>g.value==="permissions"&&v.value==="moderation");function $(a){return a.split("/").filter(Boolean)[0]||"global"}function M(a){const t=a.split("/").filter(Boolean);return t[t.length-1]||"common"}const o=z(()=>{var t,p;const a=C.value||g.value==="page_display"?u.value:te(g.value,v.value);return a&&a.groups&&a.groups.length>0?{title:a.title||"",description:a.description||"",icon:a.icon||"",groups:a.groups}:{title:((t=n.meta)==null?void 0:t.title)||"",description:((p=n.meta)==null?void 0:p.desc)||"",icon:"",groups:[]}}),ae=z(()=>{const a=C.value||g.value==="page_display"?u.value:te(g.value,v.value);if(!a)return{};const t={};for(const p of a.groups||[])for(const r of p.fields||[])r.default!==void 0&&(t[r.key]=r.default);return t}),{formData:T,loading:J,saving:ne,loadError:se,dirty:H,save:le,reload:Q}=Te({fetch:async()=>{const a=await O.getSchemaPage(g.value,v.value);return u.value=(a==null?void 0:a.schema)||u.value,a},submit:async a=>{const t={...a},p=[];Object.keys(t).forEach(c=>{t[c]==="__AKSRT_CLEAR_SECRET__"&&(p.push(c),delete t[c])}),p.length&&(t.__clear_secrets=p),x.value&&e.value.size&&(t.__clear_secrets=[...t.__clear_secrets||[],...e.value]);const r=await O.saveSchemaPage(g.value,v.value,t);return p.forEach(c=>{a[c]=""}),x.value&&(e.value=new Set),r},defaults:ae.value,onSaved:()=>{k.success("设置已保存")}});async function oe(a){var p;if(a!=="email_test_send"||!C.value)return;const t=String(((p=T.value)==null?void 0:p.email_test_to)||"").trim();if(!t){k.warning("请先填写测试收件地址");return}if(H.value){k.warning("请先保存当前配置,再发送测试邮件");return}try{const r=await O.testMail(t);k.success((r==null?void 0:r.message)||"测试邮件已发送")}catch(r){k.error((r==null?void 0:r.message)||"测试邮件发送失败")}}async function re(){try{await le()}catch(a){k.error("保存失败: "+((a==null?void 0:a.message)||"未知错误"))}}async function ue(){L(),e.value=new Set,await Q(),W(),k.info("已放弃更改")}function ce(a,t){const p=`${a}.${t}`,r=new Set(e.value);r.add(p),e.value=r}function ie(a,t){const p=`${a}.${t}`;if(!e.value.has(p))return;const r=new Set(e.value);r.delete(p),e.value=r}function pe(a,t){T.value={...T.value,[a]:t||{}}}function W(){var t;const a=(t=T.value)==null?void 0:t.active_provider;m.value=w.some(({key:p})=>p===a)?a:"tencent"}function X(a){if(!T.value||!a)return{};const t=T.value[a];return t&&typeof t=="object"?t:{}}function de(){var c;const a=(c=T.value)==null?void 0:c.active_provider;if(!a)return;const t=X(a),r=({tencent:["secret_id","secret_key","app_id","app_secret_key"],aliyun:["region","prefix","scene_id","access_key_id","access_key_secret"],cloudflare:["site_key","secret_key"],geetest:["captcha_id","captcha_key"]}[a]||[]).filter(F=>!t[F]);if(r.length){k.warning(`请先填写必填字段: ${r.join(", ")}`);return}if(H.value){k.warning("请先保存当前配置,再执行真实服务端验签。");return}A.value=!0,d.value=null,y.value=!0,Ae(()=>{me(a,t)})}async function N(a,t){y.value=!0;try{const p=await O.testCaptcha(a,t);d.value={success:!0,message:(p==null?void 0:p.message)||"服务端同源验签通过"}}catch(p){d.value={success:!1,message:(p==null?void 0:p.message)||"服务端验签失败"}}finally{y.value=!1}}function me(a,t){const p=document.getElementById("captcha-test-sdk");if(p&&p.remove(),window.__gtTestCaptcha){try{window.__gtTestCaptcha.destroy()}catch{}window.__gtTestCaptcha=null}const r=document.createElement("script");switch(r.id="captcha-test-sdk",a){case"tencent":r.src="https://turing.captcha.qcloud.com/TJCaptcha.js",r.onload=function(){y.value=!1;try{new window.TencentCaptcha(t.app_id,function(c){c.ret===0?N("tencent",{tencent_ticket:c.ticket||"",tencent_randstr:c.randstr||""}):d.value={success:!1,message:"验证已取消。"}},{userLanguage:"zh-cn"}).show()}catch(c){d.value={success:!1,message:"初始化失败: "+c.message}}},r.onerror=function(){y.value=!1,d.value={success:!1,message:"加载SDK失败"}};break;case"cloudflare":window.onTurnstileTestLoad=function(){y.value=!1;try{window.turnstile.render("#captcha-test-box",{sitekey:t.site_key,theme:t.theme||"auto",size:t.size||"normal",action:"aksrt-admin-test",cdata:"admin-captcha-test",callback:function(c){N("cloudflare",{cf_turnstile_response:c})},"error-callback":function(){d.value={success:!1,message:"验证失败"}}})}catch(c){d.value={success:!1,message:"初始化失败: "+c.message}}},r.src="https://challenges.cloudflare.com/turnstile/v0/api.js?onload=onTurnstileTestLoad",r.onerror=function(){y.value=!1,d.value={success:!1,message:"加载SDK失败"}};break;case"geetest":r.src="https://static.geetest.com/v4/gt4.js",r.onload=function(){y.value=!1;try{window.initGeetest4({captchaId:t.captcha_id,product:t.product||"float"},function(c){window.__gtTestCaptcha=c;const F=function(){const V=c.getValidate?c.getValidate():null;if(!V){d.value={success:!1,message:"未取得极验验证参数"};return}N("geetest",{geetest_lot_number:V.lot_number||"",geetest_captcha_output:V.captcha_output||"",geetest_pass_token:V.pass_token||"",geetest_gen_time:V.gen_time||""})},G=function(V){d.value={success:!1,message:"出错: "+(V.msg||"?")}},j=function(){d.value||(d.value={success:!1,message:"已关闭"})};(t.product||"float")==="bind"?c.onReady(()=>c.showCaptcha()).onSuccess(F).onError(G).onClose(j):c.appendTo("#captcha-test-box").onReady(()=>{}).onSuccess(F).onError(G).onClose(j)})}catch(c){d.value={success:!1,message:"初始化失败: "+c.message}}},r.onerror=function(){y.value=!1,d.value={success:!1,message:"加载SDK失败"}};break;case"aliyun":window.AliyunCaptchaConfig={region:t.region||"cn",prefix:t.prefix},r.src="https://o.alicdn.com/captcha-frontend/aliyunCaptcha/AliyunCaptcha.js",r.onload=function(){y.value=!1;try{window.initAliyunCaptcha({SceneId:t.scene_id,mode:"embed",element:"#captcha-test-box",success:function(c){N("aliyun",{aliyun_captcha_verify_param:String(c||"")})},fail:function(c){d.value={success:!1,message:String(c)}},getInstance:function(){},slideStyle:{width:360,height:40},language:"cn"})}catch(c){d.value={success:!1,message:"初始化失败: "+c.message}}},r.onerror=function(){y.value=!1,d.value={success:!1,message:"加载SDK失败"}};break;default:d.value={success:!1,message:"未知服务商"};return}document.head.appendChild(r)}function L(){if(A.value=!1,d.value=null,y.value=!1,window.__gtTestCaptcha){try{window.__gtTestCaptcha.destroy()}catch{}window.__gtTestCaptcha=null}const a=document.getElementById("captcha-test-sdk");if(a&&a.remove(),window.onTurnstileTestLoad)try{delete window.onTurnstileTestLoad}catch{}}return Z(()=>{var a;return(a=T.value)==null?void 0:a.active_provider},W),Z([g,v],([a,t],[p,r])=>{(a!==p||t!==r)&&(L(),u.value=null,Q())}),ve(()=>{L()}),(a,t)=>{var j,V;const p=i("n-tab-pane"),r=i("n-tabs"),c=i("n-dynamic-tags"),F=i("n-button"),G=i("n-spin");return _(),E("div",$e,[l(Ie,{title:o.value.title,description:o.value.description,icon:o.value.icon,schema:o.value.groups,"form-data":R(T),dirty:R(H),loading:R(J),saving:R(ne),"load-error":R(se),"show-search":U.showSearch,"onUpdate:formData":t[1]||(t[1]=S=>T.value=S),onSave:re,onReload:ue,onFieldAction:oe},_e({_:2},[x.value?{name:"group-providers",fn:s(()=>[l(r,{value:m.value,"onUpdate:value":t[0]||(t[0]=S=>m.value=S),type:"segment",animated:"",class:"aksrt-tabs aksrt-captcha-provider-tabs"},{default:s(()=>[(_(),E(be,null,ee(w,S=>l(p,{key:S.key,name:S.key,tab:S.label},{default:s(()=>[(_(),b(he(S.component),{"model-value":X(S.key),"onUpdate:modelValue":D=>pe(S.key,D),onClearSecret:D=>ce(S.key,D),onRestoreSecret:D=>ie(S.key,D)},null,40,["model-value","onUpdate:modelValue","onClearSecret","onRestoreSecret"]))]),_:2},1032,["name","tab"])),64))]),_:1},8,["value"])]),key:"0"}:void 0,h.value?{name:"field-geoip_block_countries",fn:s(({value:S,setValue:D})=>[l(c,{value:Array.isArray(S)?S:[],"onUpdate:value":D},null,8,["value","onUpdate:value"]),t[2]||(t[2]=I("p",{class:"aksrt-schema-page__field-hint"},"使用 ISO 国家代码,如 CN / US / RU。",-1))]),key:"1"}:void 0,ee(a.$slots,(S,D)=>({name:D,fn:s(fe=>[Se(a.$slots,D,Ce(xe(fe)),void 0,!0)])}))]),1032,["title","description","icon","schema","form-data","dirty","loading","saving","load-error","show-search"]),x.value&&!R(J)?(_(),E("div",Me,[l(F,{disabled:!((j=R(T))!=null&&j.enabled)||!((V=R(T))!=null&&V.active_provider),onClick:de},{default:s(()=>[...t[3]||(t[3]=[f(" 测试验证 ",-1)])]),_:1},8,["disabled"])])):K("",!0),A.value?(_(),E("div",{key:1,class:"captcha-test-overlay",onClick:ye(L,["self"])},[I("div",Ee,[I("div",{class:"captcha-test-header"},[t[4]||(t[4]=I("span",null,"测试验证码",-1)),I("button",{class:"captcha-test-close",onClick:L},"×")]),I("div",Fe,[y.value?(_(),E("div",Be,[l(G),t[5]||(t[5]=I("p",{style:{"margin-top":"10px",color:"#999"}},"加载中...",-1))])):K("",!0),d.value&&!y.value?(_(),E("div",{key:1,style:ge({color:d.value.success?"var(--aksrt-color-primary)":"#d03050",textAlign:"center",padding:"20px"})},[I("p",Le,ke(d.value.message),1)],4)):K("",!0),!y.value&&!d.value?(_(),E("div",je)):K("",!0)])])])):K("",!0)])}}},et=Ue(Ne,[["__scopeId","data-v-62325927"]]);export{et as default};