import{d as le,c as f,br as ve,h as te,f as ge,Z as c,$ as C,a0 as i,T as s,a7 as x,n as l,bs as ae,a8 as S,a5 as p,bt as be,aQ as N,M as he,a4 as oe,aD as se,a1 as k,a3 as xe,a6 as ke,a2 as O,a9 as V,bu as ne,b4 as _e,bv as we,bc as h,bw as Se,b0 as Fe,bx as Ce,by as je,bz as Ae,bA as Ie,at as Me}from"./index-1f7267da.js";import"./dayjs-919e6097.js";import{M as Te}from"./index-a6fa52b3.js";const Ne={class:"flex flex-col h-full"},Oe={class:"flex justify-between items-center p-8px mb-12px",style:{background:"var(--layout-background)","border-radius":"4px"}},Ve={class:"flex items-center gap-2"},Be={class:"flex flex-1 overflow-hidden"},Le={class:"plugin-list h-full overflow-y-auto overflow-x-hidden relative flex-1 p-16px"},Pe={key:1,class:"absolute top-40% left-50%"},ze={key:0,class:"yaml-editor-container"},Ke={key:1,class:"absolute top-40% left-50%"},$e=le({name:"Config"}),De=le({...$e,setup(Ee){const y=f("form");function B(t,e){return t===e?!0:t==null||e==null?t==e:typeof t!=typeof e?!1:typeof t=="object"?JSON.stringify(t)===JSON.stringify(e):!1}function L(t){const e={};for(const a of t)a&&typeof a=="object"&&"mkey"in a&&"mvalue"in a&&(e[a.mkey]=a.mvalue);return e}function P(t){const e={};for(const a of Object.keys(t)){const o=t[a];o&&typeof o=="object"&&"mkey"in o&&"mvalue"in o&&(e[o.mkey]=o.mvalue)}return e}function z(t){return!Array.isArray(t)||t.length===0?!1:t.every(e=>e&&typeof e=="object"&&"mkey"in e&&"mvalue"in e)}function K(t){if(!t||typeof t!="object"||Array.isArray(t))return!1;const e=Object.keys(t);return e.length===0?!1:e.every(a=>/^\d+$/.test(a))&&Object.values(t).every(a=>a&&typeof a=="object"&&"mkey"in a&&"mvalue"in a)}function $(t,e){if(!t)return;const a=e.split(".");let o=t;for(const n of a){if(!o)return;if(o.properties&&o.properties[n])o=o.properties[n],o?.title||o?.type;else{Object.keys(o.properties||{});return}}return o?.["x-default-value"],o?.["x-value-source"],{defaultValue:o?.["x-default-value"],valueSource:o?.["x-value-source"]||"default",isDefault:o?.["x-is-default"]??!0}}function re(t,e){const a={},o=new Set;return t.query("*").forEach(n=>{if(!n)return;const r=n;if(r.value===void 0||r.displayName==="ObjectField")return;const u=r.path.toString(),w=r.address?.toString()||u;if(/\.\d+\./.test(u)||/\.\d+$/.test(u)){const b=u.replace(/\.\d+.*$/,"");if(!o.has(b)){o.add(b);const v=t.query(b).take();if(v&&v.value!==void 0){const Q=v.address?.toString()||b,Z=E(Q);if(Z){let m=v.value;if(z(m)?m=L(m):K(m)&&(m=P(m)),!D(m)){const H=$(e,Q),W=v.modified===!0;let T=!0;if(H){const{valueSource:X,defaultValue:ee}=H;(X==="default"||X==="global")&&!W&&(T=!1),W&&ee!==void 0&&B(m,ee)&&(T=!1)}T&&R(a,Z,m)}}}}return}const J=E(w);if(!J)return;const U=$(e,w);let d=r.value;z(d)?d=L(d):K(d)&&(d=P(d));const G=r.modified===!0;if(U){const{valueSource:b,defaultValue:v}=U;if((b==="default"||b==="global")&&!G||G&&v!==void 0&&B(d,v))return}D(d)||R(a,J,d)}),a}function D(t){return!!(t==null||t===""||Array.isArray(t)&&t.length===0||typeof t=="object"&&Object.keys(t).length===0)}function E(t){const e=t.split("."),a=new Set(["layout","tabs","pluginTab","commonTab","pluginInnerTabs","commonInnerTabs"]);let o=[];for(let n=0;n0?o.join("."):null}function R(t,e,a){const o=e.split(".");let n=t;for(let r=0;r{t?.plugins?.length&&(Y.value=t.plugins.map(e=>({name:e.name,version:`版本: ${e.name}`,disabled:e.disabled})))});const j=f(null),F=f(),q=f(null),A=f(!1),ie=f(["global-sub","plugin-sub"]),g=f(["global"]),I=async t=>{A.value=!0;try{const e=await Se({name:t});let a=e;if(e?.merged)try{a=JSON.parse(e.merged)}catch(r){console.error("解析配置 schema 失败",r),a=e}a?.properties,q.value=a;const{FormilyForm:o,form:n}=Fe({schema:a});j.value=o,F.value=n}finally{A.value=!1}};te(g,t=>{y.value==="form"&&I(t[0])},{immediate:!0});const ue=async()=>{if(!F.value.modified)return h.warning("您尚未修改过任何配置,无需保存!");await F.value.submit();const t=re(F.value,q.value);await Ce({name:g.value[0]},t),h.success("保存成功"),await I(g.value[0])},_=f(""),M=f(!1),fe=async()=>{M.value=!0;try{_.value=await je()}catch(t){h.error("获取配置文件失败:"+t.message)}finally{M.value=!1}},ce=async()=>{try{Ae.parse(_.value),await Ie(_.value),h.success("保存成功")}catch(t){h.error("配置文件格式错误:"+t.message)}};te(y,t=>{t==="yaml"?fe():t==="form"&&I(g.value[0])});const de=()=>{const t=y.value==="yaml"?"https://monibuca.com/develop/config.html":"https://monibuca.com/docs/guide/plugins/"+g.value[0].toLowerCase()+".html";window.open(t,"_blank")},me=async()=>{try{await we(),h.success("热重启成功")}catch(t){h.error("热重启失败:"+t.message)}},pe=ge(()=>y.value==="form"),ye=()=>{y.value==="form"?ue():ce()};return(t,e)=>(c(),C(s(_e),{class:"h-100% overflow-hidden",bodyStyle:{height:"100%",padding:"12px"}},{default:i(()=>[x("div",Ne,[x("div",Oe,[x("div",Ve,[l(s(be),{value:y.value,"onUpdate:value":e[0]||(e[0]=a=>y.value=a),size:"small"},{default:i(()=>[l(s(ae),{value:"form",class:"form-radio-btn"},{default:i(()=>[l(s(S),{icon:"mdi:form-select",class:"v-text-bottom mr-1"}),e[3]||(e[3]=p(" 可视化 ")),e[4]||(e[4]=x("span",{class:"beta-ribbon"},"Beta",-1))]),_:1}),l(s(ae),{value:"yaml"},{default:i(()=>[l(s(S),{icon:"mdi:code-braces",class:"v-text-bottom mr-1"}),e[5]||(e[5]=p(" YAML "))]),_:1})]),_:1},8,["value"]),l(s(N),{type:"link",onClick:ye},{default:i(()=>[l(s(S),{icon:"tabler:hand-click",class:"v-text-bottom"}),e[6]||(e[6]=p(" 点我保存配置 "))]),_:1}),l(s(N),{type:"link",onClick:me},{default:i(()=>[l(s(S),{icon:"mdi:restart",class:"v-text-bottom"}),e[7]||(e[7]=p(" 热重启 "))]),_:1})]),l(s(N),{type:"link",onClick:de},{default:i(()=>[e[8]||(e[8]=p(" 配置文档 ")),l(s(S),{icon:"fluent:window-new-16-filled",class:"v-text-bottom"})]),_:1})]),x("div",Be,[pe.value?(c(),C(s(he),{key:0,selectedKeys:g.value,openKeys:ie.value,mode:"inline",inlineCollapsed:!1,onSelect:e[1]||(e[1]=({key:a})=>g.value=[a]),class:"w-180px h-100% overflow-y-auto overflow-x-hidden flex-shrink-0"},{default:i(()=>[l(s(se),{key:"global-sub"},{title:i(()=>e[9]||(e[9]=[p("全局配置")])),default:i(()=>[l(s(oe),{key:"global"},{default:i(()=>e[10]||(e[10]=[p(" global ")])),_:1})]),_:1}),l(s(se),{key:"plugin-sub"},{title:i(()=>e[11]||(e[11]=[p("插件配置")])),default:i(()=>[(c(!0),k(O,null,xe(Y.value,a=>(c(),C(s(oe),{key:a.name,disabled:a.disabled},{default:i(()=>[p(ke(a.name),1)]),_:2},1032,["disabled"]))),128))]),_:1})]),_:1},8,["selectedKeys","openKeys"])):V("",!0),x("div",Le,[y.value==="form"?(c(),k(O,{key:0},[j.value?(c(),C(s(j),{key:0})):V("",!0),A.value?(c(),k("div",Pe,[l(s(ne),{class:"zIndex-100",size:"large"})])):V("",!0)],64)):(c(),k(O,{key:1},[M.value?(c(),k("div",Ke,[l(s(ne),{class:"zIndex-100",size:"large"})])):(c(),k("div",ze,[l(Te,{class:"yaml-editor",value:_.value,"onUpdate:value":e[2]||(e[2]=a=>_.value=a),language:"yaml",options:{minimap:{enabled:!1},lineNumbers:"on",automaticLayout:!0}},null,8,["value"])]))],64))])])])]),_:1}))}});const Je=Me(De,[["__scopeId","data-v-ca42caf8"]]);export{Je as default}; //# sourceMappingURL=index-5057b5f8.js.map