Files
clash-for-linux/dashboard/public/_nuxt/DfiEaVJo.js
wnlen ac5a8931a6 ui
2026-01-15 21:23:41 +08:00

1 line
11 KiB
JavaScript

import{i as e,o as t,s as n,t as r}from"./Bk2nYVL8.js";import{$ as i,C as a,Dt as o,Et as s,F as c,G as l,H as u,J as d,K as f,L as p,Ot as m,P as h,Q as g,R as _,U as v,V as y,W as b,X as ee,Z as x,_t as S,at as C,ct as w,dt as T,ft as E,j as D,kt as O,ot as k,pt as A,q as j,st as M,x as te,yt as N,z as P}from"./DB3QyUG1.js";import{h as F}from"./_v7-ePgP.js";import{t as ne}from"./BGrMhtLn.js";import{F as I,I as L}from"./CdfRVy8H.js";import{a as R,i as z,n as B,o as V,r as H}from"./CEumzr83.js";import{t as U}from"./BgICMvmn.js";import{_ as W,h as G}from"./A1BmUOM0.js";import{t as re}from"./5MMMtqqF.js";import{t as ie}from"./Ca1zbqff.js";var K={class:`relative`},q=[`data-theme`],J=[`data-theme`],Y=[`onClick`],X=i({__name:`ThemeSelector`,props:{modelValue:{}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=N(null),a=N(null),c=N(!1),{floatingStyles:p}=B(i,a,{placement:`bottom-start`,middleware:[R(4),z(),V({padding:8}),{name:`sameWidth`,fn({rects:e,elements:t}){return Object.assign(t.floating.style,{width:`${e.reference.width}px`}),{}}}],whileElementsMounted:H});function h(){c.value=!c.value}function _(e){r(`update:modelValue`,e),c.value=!1}function b(e){let t=e.target;!i.value?.contains(t)&&!a.value?.contains(t)&&(c.value=!1)}return C(()=>{document.addEventListener(`click`,b)}),k(()=>{document.removeEventListener(`click`,b)}),(e,t)=>(M(),d(`div`,K,[l(`button`,{ref_key:`reference`,ref:i,class:`btn w-full justify-between btn-sm`,"data-theme":n.modelValue,onClick:y(h,[`stop`])},[l(`span`,null,O(n.modelValue),1),g(s(I),{class:o([`size-4 transition-transform`,{"rotate-180":s(c)}])},null,8,[`class`])],8,q),(M(),f(v,{to:`body`},[s(c)?(M(),d(`ul`,{key:0,ref_key:`floating`,ref:a,style:m(s(p)),class:`menu z-70 max-h-64 flex-nowrap overflow-y-auto rounded-box bg-base-300 p-2 shadow-lg`},[(M(!0),d(u,null,w(s(F),e=>(M(),d(`li`,{key:e,"data-theme":e,class:`rounded-btn`},[l(`button`,{class:o([`btn justify-between btn-xs`,{"btn-active":n.modelValue===e}]),onClick:t=>_(e)},[l(`span`,null,O(e),1),n.modelValue===e?(M(),f(s(L),{key:0,class:`size-4`})):j(``,!0)],10,Y)],8,J))),128))],4)):j(``,!0)]))]))}}),ae=Object.assign(X,{__name:`ThemeSelector`}),oe={class:`mx-auto flex h-full max-w-3xl flex-col gap-4 overflow-y-auto px-2 pb-2`},se={key:0,class:`flex h-64 items-center justify-center`},ce={class:`flex flex-col`},le={key:0,class:`flex flex-col overflow-auto p-4`},ue={class:`flex flex-col gap-4`},de={class:`grid grid-cols-3 gap-2`},fe={class:`fieldset`},pe={class:`label truncate`,for:`enable-allow-lan`},me={class:`fieldset`},he={class:`label truncate`,for:`mode`},ge=[`value`],_e={class:`fieldset`},ve={class:`label truncate`,for:`interface-name`},ye={class:`grid grid-cols-3 gap-2`},be={class:`fieldset`},xe={class:`label truncate`,for:`enable-tun-device`},Se={class:`fieldset`},Ce={class:`label truncate`,for:`tun-ip-stack`},we=[`value`],Te={class:`fieldset`},Ee={class:`label truncate`,for:`device-name`},De={class:`grid grid-cols-3 gap-2 sm:grid-cols-5`},Oe=[`for`],ke=[`id`,`onUpdate:modelValue`,`placeholder`,`onChange`],Ae={class:`grid grid-cols-2 gap-4 sm:grid-cols-2`},je={class:`grid grid-cols-1 gap-4 sm:grid-cols-2`},Me={class:`flex flex-col gap-2`},Ne={class:`flex flex-col items-center`},Pe={class:`flex flex-col items-center lg:hidden`},Fe={class:`flex flex-col items-center`},Ie={class:`h-10`},Le={class:`flex flex-col`},Re={class:`flex flex-col gap-2`},ze={class:`flex flex-col items-center`},Be={class:`h-10`},Ve={key:0,class:`flex flex-col gap-2`},He={class:`flex flex-col`},Ue={class:`flex flex-col`},We={class:`col-span-1 flex flex-col gap-2 sm:col-span-2`},Z=i({__name:`config`,setup(i){let{t:o}=te();D({title:b(()=>o(`config`))});let m=h(),v=ne(),C=a(),k=G(),F=`v${c().public.appVersion||`0.0.0`}`,{data:I,isLoading:L}=r(),{data:R,isLoading:z}=t(),B=e(),V=b(()=>R.value?.includes(`sing-box`)||!1),H=[`Mixed`,`gVisor`,`System`,`LWIP`],K=S({name:``,type:`A`}),q=N([]),J=n({mutationFn:async({name:e,type:t})=>(await W().get(`dns/query`,{searchParams:{name:e||`google.com`,type:t}}).json()).Answer?.map(({data:e})=>e)||[],onSuccess:e=>{q.value=e}});function Y(){K.name||(q.value=[])}function X(){J.mutate({name:K.name,type:K.type})}let Z=S({allowLan:!1,mode:`rule`,interfaceName:``,tunEnable:!1,tunStack:`Mixed`,tunDevice:``,mixedPort:0,port:0,socksPort:0,redirPort:0,tproxyPort:0}),Q=N([`rule`,`direct`,`global`]);T(I,e=>{e&&(Z.allowLan=e[`allow-lan`]||!1,Z.mode=e.mode||`rule`,Z.interfaceName=e[`interface-name`]||``,Z.tunEnable=e.tun?.enable||!1,Z.tunStack=e.tun?.stack||`Mixed`,Z.tunDevice=e.tun?.device||``,Z.mixedPort=e[`mixed-port`]||0,Z.port=e.port||0,Z.socksPort=e[`socks-port`]||0,Z.redirPort=e[`redir-port`]||0,Z.tproxyPort=e[`tproxy-port`]||0,Q.value=e[`mode-list`]||e.modes||[`rule`,`direct`,`global`])},{immediate:!0});let Ge=b(()=>[{label:o(`port`,{name:`Mixed`}),key:`mixedPort`,configKey:`mixed-port`},{label:o(`port`,{name:`HTTP`}),key:`port`,configKey:`port`},{label:o(`port`,{name:`Socks`}),key:`socksPort`,configKey:`socks-port`},{label:o(`port`,{name:`Redir`}),key:`redirPort`,configKey:`redir-port`},{label:o(`port`,{name:`TProxy`}),key:`tproxyPort`,configKey:`tproxy-port`}]);function Ke(e){return[`rule`,`direct`,`global`].includes(e)&&o(e)||e}function $(e,t){B.mutate({key:e,value:t})}function qe(){C.setSelectedEndpoint(``),m.push(`/setup`)}let Je=b(()=>L.value||z.value);return(e,t)=>{let n=re,r=ie,i=ae,a=U;return M(),d(`div`,oe,[s(Je)?(M(),d(`div`,se,[...t[21]||=[l(`span`,{class:`loading loading-lg loading-spinner`},null,-1)]])):(M(),d(u,{key:1},[s(V)?j(``,!0):(M(),d(u,{key:0},[g(n,{"with-divider":``},{default:E(()=>[x(O(s(o)(`dnsQuery`)),1)]),_:1}),l(`div`,ce,[l(`form`,{class:`join`,onSubmit:y(X,[`prevent`])},[A(l(`input`,{"onUpdate:modelValue":t[0]||=e=>s(K).name=e,type:`search`,class:`input join-item w-full`,placeholder:`google.com`,onInput:Y},null,544),[[P,s(K).name]]),A(l(`select`,{"onUpdate:modelValue":t[1]||=e=>s(K).type=e,class:`select join-item max-w-max`},[...t[22]||=[ee(`<option>A</option><option>AAAA</option><option>CNAME</option><option>TXT</option><option>MX</option><option>SRV</option><option>HTTPS</option><option>NS</option><option>DNSKEY</option><option>DS</option><option>SIG</option><option>SOA</option><option>RRSIG</option><option>RP</option>`,14)]],512),[[_,s(K).type]]),g(r,{type:`submit`,class:`join-item max-w-max btn-primary`,loading:s(J).isPending.value},{default:E(()=>[x(O(s(o)(`dnsQuery`)),1)]),_:1},8,[`loading`])],32),s(q).length>0?(M(),d(`div`,le,[(M(!0),d(u,null,w(s(q),e=>(M(),d(`div`,{key:e,class:`py-2`},O(e),1))),128))])):j(``,!0)])],64)),g(n,{"with-divider":``},{default:E(()=>[x(O(s(o)(`coreConfig`)),1)]),_:1}),l(`div`,ue,[l(`div`,de,[l(`fieldset`,fe,[l(`label`,pe,O(s(o)(`allowLan`)),1),A(l(`input`,{id:`enable-allow-lan`,"onUpdate:modelValue":t[2]||=e=>s(Z).allowLan=e,type:`checkbox`,class:`toggle`,onChange:t[3]||=e=>$(`allow-lan`,s(Z).allowLan)},null,544),[[p,s(Z).allowLan]])]),l(`fieldset`,me,[l(`label`,he,O(s(o)(`runningMode`)),1),A(l(`select`,{id:`mode`,"onUpdate:modelValue":t[4]||=e=>s(Z).mode=e,class:`select`,onChange:t[5]||=e=>$(`mode`,s(Z).mode)},[(M(!0),d(u,null,w(s(Q),e=>(M(),d(`option`,{key:e,value:e},O(Ke(e)),9,ge))),128))],544),[[_,s(Z).mode]])]),l(`fieldset`,_e,[l(`label`,ve,O(s(o)(`outboundInterfaceName`)),1),A(l(`input`,{id:`interface-name`,"onUpdate:modelValue":t[6]||=e=>s(Z).interfaceName=e,type:`text`,class:`input min-w-0`,onChange:t[7]||=e=>$(`interface-name`,s(Z).interfaceName)},null,544),[[P,s(Z).interfaceName]])])]),s(V)?j(``,!0):(M(),d(u,{key:0},[l(`div`,ye,[l(`fieldset`,be,[l(`label`,xe,O(s(o)(`enableTunDevice`)),1),A(l(`input`,{id:`enable-tun-device`,"onUpdate:modelValue":t[8]||=e=>s(Z).tunEnable=e,type:`checkbox`,class:`toggle`,onChange:t[9]||=e=>$(`tun`,{enable:s(Z).tunEnable})},null,544),[[p,s(Z).tunEnable]])]),l(`fieldset`,Se,[l(`label`,Ce,O(s(o)(`tunModeStack`)),1),A(l(`select`,{id:`tun-ip-stack`,"onUpdate:modelValue":t[10]||=e=>s(Z).tunStack=e,class:`select`,onChange:t[11]||=e=>$(`tun`,{stack:s(Z).tunStack})},[(M(),d(u,null,w(H,e=>l(`option`,{key:e,value:e},O(e),9,we)),64))],544),[[_,s(Z).tunStack]])]),l(`fieldset`,Te,[l(`label`,Ee,O(s(o)(`tunDeviceName`)),1),A(l(`input`,{id:`device-name`,"onUpdate:modelValue":t[12]||=e=>s(Z).tunDevice=e,type:`text`,class:`input min-w-0`,onChange:t[13]||=e=>$(`tun`,{device:s(Z).tunDevice})},null,544),[[P,s(Z).tunDevice]])])]),l(`div`,De,[(M(!0),d(u,null,w(s(Ge),e=>(M(),d(`fieldset`,{key:e.key,class:`fieldset`},[l(`label`,{class:`label truncate`,for:e.key},O(e.label),9,Oe),A(l(`input`,{id:e.key,"onUpdate:modelValue":t=>s(Z)[e.key]=t,type:`number`,class:`input min-w-0`,placeholder:e.label,onChange:t=>$(e.configKey,s(Z)[e.key])},null,40,ke),[[P,s(Z)[e.key],void 0,{number:!0}]])]))),128))])],64)),l(`div`,Ae,[g(r,{class:`btn-primary`,loading:s(k).reloadingConfigFile.value,onClick:s(k).reloadConfigFileAPI},{default:E(()=>[x(O(s(o)(`reloadConfig`)),1)]),_:1},8,[`loading`,`onClick`]),g(r,{class:`btn-warning`,loading:s(k).restartingBackend.value,onClick:s(k).restartBackendAPI},{default:E(()=>[x(O(s(o)(`restartCore`)),1)]),_:1},8,[`loading`,`onClick`]),g(r,{class:`btn-accent`,loading:s(k).flushingFakeIPData.value,onClick:s(k).flushFakeIPDataAPI},{default:E(()=>[x(O(s(o)(`flushFakeIP`)),1)]),_:1},8,[`loading`,`onClick`]),g(r,{class:`btn-info`,loading:s(k).flushingDNSCache.value,onClick:s(k).flushDNSCacheAPI},{default:E(()=>[x(O(s(o)(`flushDNSCache`)),1)]),_:1},8,[`loading`,`onClick`]),s(V)?j(``,!0):(M(),f(r,{key:0,class:`btn-secondary`,loading:s(k).updatingGEODatabases.value,onClick:s(k).updateGEODatabasesAPI},{default:E(()=>[x(O(s(o)(`updateGEODatabases`)),1)]),_:1},8,[`loading`,`onClick`]))])]),g(n,{"with-divider":``},{default:E(()=>[x(O(s(o)(`xdConfig`)),1)]),_:1}),l(`div`,je,[l(`div`,Me,[l(`div`,Ne,[g(n,null,{default:E(()=>[x(O(s(o)(`enableTwemoji`)),1)]),_:1}),A(l(`input`,{"onUpdate:modelValue":t[14]||=e=>s(v).enableTwemoji=e,type:`checkbox`,class:`toggle`},null,512),[[p,s(v).enableTwemoji]])]),l(`div`,Pe,[g(n,null,{default:E(()=>[x(O(s(o)(`useMobileBottomNav`)),1)]),_:1}),A(l(`input`,{"onUpdate:modelValue":t[15]||=e=>s(v).useMobileBottomNav=e,type:`checkbox`,class:`toggle`},null,512),[[p,s(v).useMobileBottomNav]])]),l(`div`,Fe,[g(n,null,{default:E(()=>[x(O(s(o)(`autoSwitchEndpoint`)),1)]),_:1}),l(`div`,Ie,[A(l(`input`,{"onUpdate:modelValue":t[16]||=e=>s(v).autoSwitchEndpoint=e,type:`checkbox`,class:`toggle`},null,512),[[p,s(v).autoSwitchEndpoint]])])]),l(`div`,Le,[g(n,null,{default:E(()=>[x(O(s(C).currentEndpoint?.url),1)]),_:1}),g(r,{class:`btn-info`,onClick:qe},{default:E(()=>[x(O(s(o)(`switchEndpoint`)),1)]),_:1})])]),l(`div`,Re,[l(`div`,ze,[g(n,null,{default:E(()=>[x(O(s(o)(`autoSwitchTheme`)),1)]),_:1}),l(`div`,Be,[A(l(`input`,{"onUpdate:modelValue":t[17]||=e=>s(v).autoSwitchTheme=e,type:`checkbox`,class:`toggle`},null,512),[[p,s(v).autoSwitchTheme]])])]),s(v).autoSwitchTheme?(M(),d(`div`,Ve,[l(`div`,He,[g(n,null,{default:E(()=>[x(O(s(o)(`favDayTheme`)),1)]),_:1}),g(i,{modelValue:s(v).favDayTheme,"onUpdate:modelValue":t[18]||=e=>s(v).favDayTheme=e},null,8,[`modelValue`])]),l(`div`,Ue,[g(n,null,{default:E(()=>[x(O(s(o)(`favNightTheme`)),1)]),_:1}),g(i,{modelValue:s(v).favNightTheme,"onUpdate:modelValue":t[19]||=e=>s(v).favNightTheme=e},null,8,[`modelValue`])])])):j(``,!0)]),l(`div`,We,[g(r,{class:`btn-error`,onClick:t[20]||=e=>s(v).resetXdConfig()},{default:E(()=>[x(O(s(o)(`resetSettings`)),1)]),_:1})])]),g(n,{"with-divider":``},{default:E(()=>[x(O(s(o)(`version`)),1)]),_:1}),g(a,{"frontend-version":F,"backend-version":s(R)||``},null,8,[`backend-version`])],64))])}}});export{Z as default};