Files
infra/ru-vps/mihomo/config/ui/_nuxt/CAiAuG3x2.js
T
Dmitry 59a7749b18
Deploy ru-vps / deploy (push) Successful in 22s
Убрать всё, кроме mihomo
2026-06-08 23:05:05 +03:00

3 lines
46 KiB
JavaScript

import{r as e}from"./QTnfLwEv.js";import{A as t,B as n,Ct as r,D as i,G as a,H as o,K as s,L as c,Q as l,S as u,T as d,Y as f,Z as p,_ as m,a as h,b as g,c as _,d as v,lt as y,m as b,mt as x,n as S,s as C,u as w,v as T,vt as E,w as D,wt as O,x as k,xt as A,y as j}from"./CaGtQlYh.js";import{Bt as M,D as ee,Ft as N,Ot as te,R as P,Wt as ne,Y as F,et as I,f as re,h as ie,i as L,s as ae,t as R,x as z,zt as oe}from"#entry";import{d as B,f as V,m as H,u as U}from"./CIa-1CJu.js";import{t as W}from"./CJgAejf_.js";import{a as se,i as ce,n as le,o as ue,r as de,t as G}from"./DNKnP_p9.js";import{v as K}from"./DohEsvF1.js";import{_ as fe,b as pe,c as me,d as q,g as J,i as Y,l as he,n as ge,p as _e,r as ve,v as ye,x as be,y as xe}from"./CsU6pgHx.js";import{t as Se}from"./DhTvfVif.js";import{t as Ce}from"./BShnNZNf.js";import{t as X}from"./CX_RojMw.js";import{t as we}from"./taTi6IIU.js";import{t as Te}from"./DAvMhUmu.js";import{t as Ee}from"./DBeOglbT.js";import{t as Z}from"./Hw_CdiGx.js";var De={key:0,class:`h-4 w-4 animate-spin rounded-full border-2 border-current/30 border-t-current`},Q=Object.assign(R(i({__name:`Latency`,props:{proxyName:{},testUrl:{},providerName:{default:``},groupName:{default:``},class:{}},emits:[`click`],setup(e){let t=e,n=Z(),r=W(),i=m(()=>t.class||``),a=m(()=>n.getLatencyByName(t.proxyName,t.testUrl)),s=m(()=>t.providerName&&n.proxyProviderLatencyTestingMap[t.providerName]||!1),c=m(()=>t.groupName&&n.proxyGroupLatencyTestingMap[t.groupName]||!1),l=m(()=>n.proxyLatencyTestingMap[t.proxyName]||s.value||c.value),u=m(()=>q(a.value,r.latencyQualityMap)),d=m(()=>a.value||`---`);return(e,t)=>(o(),k(`span`,{class:A([`latency-pill flex w-11 cursor-pointer items-center justify-center rounded-md px-1.5 py-1 text-xs font-semibold whitespace-nowrap tabular-nums`,[E(u),E(i)]]),onClick:t[0]||=t=>e.$emit(`click`,t)},[E(l)?(o(),k(`span`,De)):(o(),j(S,{key:1,name:`latency-flip`,mode:`out-in`},{default:p(()=>[(o(),k(`span`,{key:E(d)},O(E(d)),1))]),_:1}))],2))}}),[[`__scopeId`,`data-v-226babb1`]]),{__name:`Latency`}),Oe={class:`flex items-center gap-2`},ke={class:`my-1 flex flex-1 items-center justify-center overflow-hidden rounded-2xl`},Ae=Object.assign(i({__name:`ProxyPreviewBar`,props:{proxyNameList:{},testUrl:{},now:{}},setup(e){let t=e,n=Z(),i=W(),a=m(()=>t.proxyNameList.map(e=>n.getLatencyByName(e,t.testUrl))),s=m(()=>a.value.length||1),c=m(()=>a.value.filter(e=>e>i.latencyQualityMap.NOT_CONNECTED&&e<=i.latencyQualityMap.MEDIUM).length),l=m(()=>a.value.filter(e=>e>i.latencyQualityMap.MEDIUM&&e<=i.latencyQualityMap.HIGH).length),u=m(()=>a.value.filter(e=>e>i.latencyQualityMap.HIGH).length),d=m(()=>a.value.filter(e=>e===i.latencyQualityMap.NOT_CONNECTED).length),f=m(()=>c.value*100/s.value),p=m(()=>l.value*100/s.value),h=m(()=>u.value*100/s.value),_=m(()=>d.value*100/s.value);return(t,n)=>{let i=Q;return o(),k(`div`,Oe,[T(`div`,ke,[T(`div`,{class:`h-2 bg-green-600`,style:r({width:`${E(f)}%`})},null,4),T(`div`,{class:`h-2 bg-yellow-500`,style:r({width:`${E(p)}%`})},null,4),T(`div`,{class:`h-2 bg-red-500`,style:r({width:`${E(h)}%`})},null,4),T(`div`,{class:`h-2 bg-[var(--color-neutral)]`,style:r({width:`${E(_)}%`})},null,4)]),e.now?(o(),j(i,{key:0,"proxy-name":e.now,"test-url":e.testUrl},null,8,[`proxy-name`,`test-url`])):g(``,!0)])}}}),{__name:`ProxyPreviewBar`}),je={class:`flex items-center gap-2`},Me={class:`flex flex-1 flex-wrap items-center gap-1`},Ne=[`title`,`onClick`],Pe=Object.assign(R(i({__name:`ProxyPreviewDots`,props:{proxyNameList:{},testUrl:{},now:{},onSelect:{type:Function}},setup(e){let t=e,n=Z(),r=W(),i=m(()=>t.proxyNameList.map(e=>[e,n.getLatencyByName(e,t.testUrl)]));function s(e,t){let n=r.latencyQualityMap.NOT_CONNECTED,i=r.latencyQualityMap.MEDIUM,a=r.latencyQualityMap.HIGH;return typeof e!=`number`||e===n?t?`dot-neutral-selected`:`dot-neutral`:e>a?t?`dot-slow-selected`:`dot-slow`:e>i?t?`dot-medium-selected`:`dot-medium`:t?`dot-good-selected`:`dot-good`}return(t,n)=>{let r=Q;return o(),k(`div`,je,[T(`div`,Me,[(o(!0),k(v,null,a(E(i),([t,n])=>(o(),k(`div`,{key:t,class:A([`size-4 rounded-full transition-transform duration-200 ease-out`,[s(n,t===e.now),e.onSelect&&`cursor-pointer hover:scale-125`]]),title:t,onClick:w(n=>e.onSelect&&e.onSelect(t),[`stop`])},null,10,Ne))),128))]),e.now?(o(),j(r,{key:0,"proxy-name":e.now,"test-url":e.testUrl},null,8,[`proxy-name`,`test-url`])):g(``,!0)])}}}),[[`__scopeId`,`data-v-476aafa9`]]),{__name:`ProxyPreviewDots`}),Fe=Object.assign(i({__name:`ProxyNodePreview`,props:{proxyNameList:{},testUrl:{},now:{},onSelect:{type:Function}},setup(e){let t=e,n=W(),r=m(()=>n.proxiesPreviewType===H.OFF),i=m(()=>t.proxyNameList.length<=n.proxiesPreviewAutoThreshold),a=m(()=>{let e=n.proxiesPreviewType;return e===H.BAR||e===H.Auto&&!i.value}),s=m(()=>{let e=n.proxiesPreviewType;return e===H.DOTS||e===H.Auto&&i.value});return(t,n)=>{let i=Ae,c=Pe;return E(r)?g(``,!0):(o(),k(v,{key:0},[E(a)?(o(),j(i,{key:0,"proxy-name-list":e.proxyNameList,"test-url":e.testUrl,now:e.now},null,8,[`proxy-name-list`,`test-url`,`now`])):E(s)?(o(),j(c,{key:1,"proxy-name-list":e.proxyNameList,"test-url":e.testUrl,now:e.now,"on-select":e.onSelect},null,8,[`proxy-name-list`,`test-url`,`now`,`on-select`])):g(``,!0)],64))}}}),{__name:`ProxyNodePreview`}),Ie=Object.assign(i({__name:`ProxyNodeTooltip`,props:{reference:{}},emits:[`mouseEnter`,`mouseLeave`],setup(e){let t=x(e,`reference`),n=y(null),i=y(null),{floatingStyles:a,middlewareData:c,placement:l}=le(t,n,{placement:`top`,strategy:`fixed`,transform:!1,middleware:[se(10),ce(),ue({padding:8}),G({element:i})],whileElementsMounted:de}),u=m(()=>{let e=c.value.arrow,t={top:`bottom`,right:`left`,bottom:`top`,left:`right`}[l.value.split(`-`)[0]||`top`]||`bottom`;return{left:e?.x==null?``:`${e.x}px`,top:e?.y==null?``:`${e.y}px`,[t]:`-4px`}});return(e,t)=>(o(),j(b,{to:`body`},[T(`div`,{ref_key:`floating`,ref:n,"data-proxy-tooltip":``,style:r(E(a)),class:`animate-pop-in z-50 w-max max-w-80 rounded-xl bg-primary p-3 text-primary-content shadow-[0_10px_40px_color-mix(in_oklch,var(--color-base-content)_30%,transparent)]`,onMouseenter:t[0]||=t=>e.$emit(`mouseEnter`),onMouseleave:t[1]||=t=>e.$emit(`mouseLeave`)},[T(`div`,{ref_key:`floatingArrow`,ref:i,class:`absolute size-2 rotate-45 bg-primary`,style:r(E(u))},null,4),s(e.$slots,`default`)],36)]))}}),{__name:`ProxyNodeTooltip`}),Le=e(pe(),1),$=null;function Re(e){if($&&$!==e){let e=$;$=null,e()}$=e}function ze(e){$===e&&($=null)}var Be={class:`line-clamp-1 min-w-0 flex-1 text-sm font-medium break-all`},Ve={key:1,class:`shrink-0 rounded bg-info px-1.5 py-0.5 text-[0.625rem] font-semibold text-info-content`},He={key:2,class:`hidden text-xs uppercase opacity-60 sm:inline`},Ue={class:`hidden text-xs uppercase opacity-75 sm:inline`},We={class:`flex shrink-0 flex-col items-end gap-1`},Ge={key:0,class:`flex h-[3px] w-full max-w-[44px] gap-px overflow-hidden rounded-full`},Ke={class:`flex flex-col items-center gap-2`},qe={class:`text-lg font-bold`},Je={key:0,class:`w-full text-xs uppercase`},Ye={key:1,class:`flex max-h-60 w-full flex-col gap-2 overflow-y-auto`},Xe={class:`flex flex-col gap-1`},Ze={class:`text-sm italic`},Qe={key:2,class:`text-sm opacity-75`},$e=Object.assign(i({__name:`ProxyNodeListItem`,props:{proxyName:{},testUrl:{},timeout:{},isSelected:{type:Boolean,default:!1},providerName:{default:``}},emits:[`click`],setup(e,{emit:t}){let n=e,r=t,i=Z(),s=W(),{t:l}=te(),u=m(()=>i.proxyNodeMap[n.proxyName]),f=m(()=>me(u.value?.type||``,l)),h=m(()=>u.value?.xudp||u.value?.udp),_=m(()=>n.providerName&&i.proxyProviderLatencyTestingMap[n.providerName]||!1),b=m(()=>i.proxyLatencyTestingMap[n.proxyName]||_.value),x=m(()=>!u.value||!Y(u.value.type)?null:[u.value.xudp&&`xudp`,u.value.udp&&`udp`,u.value.tfo&&`TFO`].filter(Boolean).join(` / `)),S=m(()=>i.getLatencyHistoryByName(n.proxyName,n.testUrl).toReversed()),C=m(()=>i.getLatencyHistoryByName(n.proxyName,n.testUrl).map(e=>({colorClass:e.delay?q(e.delay,s.latencyQualityMap):`text-neutral-content/30`}))),D=y(null),M=y(!1),ee=null,N=null;function P(){ee&&=(clearTimeout(ee),null),N&&=(clearTimeout(N),null)}function ne(){Re(F),M.value=!0}function F(){M.value=!1,ze(F)}function I(){P(),ee=setTimeout(()=>{ne()},300)}function re(){P(),N=setTimeout(()=>{F()},100)}function ie(){P()}function ae(){P(),F()}function R(){r(`click`)}function z(){P(),ne(),i.proxyLatencyTest(n.proxyName,u.value?.provider||``,n.testUrl,n.timeout)}return c(()=>{P(),ze(F)}),(t,n)=>{let r=Q,i=Ie;return o(),k(`div`,{class:A([`relative z-0`,e.isSelected?`z-10`:``])},[T(`div`,{ref_key:`reference`,ref:D,class:A([`relative rounded-lg transition-all duration-300`,e.isSelected?`animate-glow-pulse bg-primary text-primary-content`:`bg-neutral text-neutral-content hover:shadow-md`]),onMouseenter:I,onMouseleave:re},[T(`div`,{class:A([`flex items-center gap-2 px-3 py-1.5`,{"cursor-pointer hover:opacity-80":!!R}]),onClick:R},[e.isSelected?(o(),j(E(L),{key:0,class:`size-4 shrink-0`})):g(``,!0),T(`span`,Be,O(e.proxyName),1),E(h)?(o(),k(`span`,Ve,`U`)):g(``,!0),E(x)?(o(),k(`span`,He,O(E(x)),1)):g(``,!0),T(`span`,Ue,O(E(f)),1),T(`div`,We,[d(r,{"proxy-name":e.proxyName,"test-url":e.testUrl,"provider-name":e.providerName,class:A({"animate-pulse":E(b)}),onClick:w(z,[`stop`])},null,8,[`proxy-name`,`test-url`,`provider-name`,`class`]),E(C).length>0?(o(),k(`div`,Ge,[(o(!0),k(v,null,a(E(C),(e,t)=>(o(),k(`div`,{key:t,class:A([`h-full flex-1 bg-current first:rounded-l-full last:rounded-r-full`,e.colorClass])},null,2))),128))])):g(``,!0)])],2),E(M)?(o(),j(i,{key:0,reference:E(D),onMouseEnter:ie,onMouseLeave:ae},{default:p(()=>[T(`div`,Ke,[T(`h2`,qe,O(e.proxyName),1),E(x)?(o(),k(`div`,Je,` (`+O(E(x))+`) `,1)):g(``,!0),E(S).length>0?(o(),k(`div`,Ye,[(o(!0),k(v,null,a(E(S),(e,t)=>(o(),k(`div`,{key:t,class:`flex items-start gap-2`},[n[0]||=T(`div`,{class:`mt-1.5 size-2 rounded-full bg-current opacity-50`},null,-1),T(`div`,Xe,[T(`time`,Ze,O(E(Le.default)(e.time).format(`YYYY-MM-DD HH:mm:ss`)),1),T(`div`,{class:A([`inline-block rounded px-2 py-0.5 text-xs`,E(q)(e.delay,E(s).latencyQualityMap)])},O(e.delay||`---`),3)])]))),128))])):(o(),k(`div`,Qe,O(E(l)(`noLatencyHistory`)),1))])]),_:1},8,[`reference`])):g(``,!0)],34)],2)}}}),{__name:`ProxyNodeListItem`}),et={key:0,class:`absolute -top-1 -right-1 z-1 flex size-4 items-center justify-center rounded-full bg-info text-[0.625rem] font-bold text-info-content`},tt=[`title`],nt={class:`m-0 line-clamp-1 text-start text-sm leading-tight font-semibold break-all`},rt={class:`flex items-end justify-between gap-1`},it={class:`flex flex-col gap-0.5`},at={class:`text-xs font-semibold uppercase opacity-75`},ot={key:0,class:`flex items-center gap-1 text-[0.625rem]`},st={key:0,class:`opacity-50`},ct={class:`mt-auto min-h-[0.375rem]`},lt={key:0,class:`flex h-1.5 w-full gap-px overflow-hidden rounded-full`},ut={key:1,class:`h-1.5 w-full rounded-full bg-current opacity-[0.15]`,"aria-hidden":`true`},dt={class:`flex flex-col items-center gap-2`},ft={class:`m-0 text-lg font-bold`},pt={key:0,class:`w-full text-center text-xs uppercase opacity-80`},mt={key:1,class:`w-full rounded-lg bg-[color-mix(in_oklch,var(--color-primary-content)_10%,transparent)] p-2`},ht={class:`mb-1 flex items-center justify-between text-[0.625rem] opacity-70`},gt={viewBox:`0 0 100 50`,class:`h-8 w-full`,preserveAspectRatio:`none`},_t=[`d`],vt=[`cx`,`cy`],yt={class:`mt-1 flex items-center justify-between text-[0.625rem] opacity-70`},bt={key:2,class:`m-0 max-h-48 w-full [scrollbar-width:thin] [scrollbar-color:color-mix(in_oklch,var(--color-primary-content)_30%,transparent)_transparent] list-none overflow-y-auto p-0 pr-2 [&::-webkit-scrollbar]:block [&::-webkit-scrollbar]:w-1 [&::-webkit-scrollbar-thumb]:rounded-sm [&::-webkit-scrollbar-thumb]:bg-[color-mix(in_oklch,var(--color-primary-content)_30%,transparent)] [&::-webkit-scrollbar-track]:bg-transparent`},xt={class:`flex items-start gap-2 border-b border-[color-mix(in_oklch,var(--color-primary-content)_15%,transparent)] py-1.5 last:border-b-0`},St={class:`shrink-0 opacity-80`},Ct={class:`flex min-w-0 flex-1 flex-col gap-1`},wt={class:`text-xs italic opacity-80`},Tt={class:`flex items-center gap-2`},Et={key:0,class:`h-1.5 flex-1 overflow-hidden rounded-full bg-[color-mix(in_oklch,var(--color-primary-content)_15%,transparent)]`},Dt={key:3,class:`text-center text-sm opacity-75`},Ot=10,kt=Object.assign(i({__name:`ProxyNodeCard`,props:{proxyName:{},testUrl:{},timeout:{},isSelected:{type:Boolean,default:!1},isRecommended:{type:Boolean,default:!1},providerName:{default:``},groupName:{default:``}},emits:[`click`],setup(e,{emit:t}){let n=e,i=t,s=Z(),l=W(),u=we(),{t:f}=te(),h=m(()=>s.proxyNodeMap[n.proxyName]),_=m(()=>me(h.value?.type||``,f)),b=m(()=>h.value?.xudp||h.value?.udp),x=m(()=>u.getNodePerformance(n.proxyName)),S=m(()=>{let e=x.value;return!e||e.history.length===0?null:J(e,u.scoringWeights)}),C=m(()=>{let e=x.value;return e?ye(e.lastTestTime):null}),D=m(()=>{let e=s.getLatencyHistoryByName(n.proxyName,n.testUrl);if(e.length===0)return null;let t=e.filter(e=>e.delay>0).map(e=>e.delay);if(t.length<2)return null;let r=Math.min(...t),i=Math.max(...t),a=i-r||1,o=Math.round(t.reduce((e,t)=>e+t,0)/t.length),c=t.reduce((e,t)=>e+(t-o)**2,0)/t.length,l=Math.round(Math.sqrt(c)),u=e.length,d=t.length,f=Math.round(d/u*100);return{points:t.map((e,n)=>({x:n/(t.length-1)*100,y:50-(e-r)/a*40-5})),min:r,max:i,avg:o,jitter:l,successRate:f,totalTests:u,successTests:d}}),M=m(()=>{if(!D.value)return``;let{points:e}=D.value;return e.map((e,t)=>`${t===0?`M`:`L`} ${e.x} ${e.y}`).join(` `)}),ee=m(()=>S.value===null?``:xe(S.value)),N=m(()=>n.providerName&&s.proxyProviderLatencyTestingMap[n.providerName]||!1),P=m(()=>n.groupName&&s.proxyGroupLatencyTestingMap[n.groupName]||!1),ne=m(()=>s.proxyLatencyTestingMap[n.proxyName]||N.value||P.value),F=m(()=>Y(h.value?.type)?`(${[h.value?.xudp&&`xudp`,h.value?.udp&&`udp`,h.value?.tfo&&`TFO`].filter(Boolean).join(` / `)})`:null),I=m(()=>s.getLatencyHistoryByName(n.proxyName,n.testUrl).toReversed()),ie=m(()=>s.getLatencyHistoryByName(n.proxyName,n.testUrl).map(e=>({colorClass:e.delay?q(e.delay,l.latencyQualityMap):`text-neutral-content/30`}))),ae=y(null),R=y(!1),z=null,oe=null;function B(){z&&=(clearTimeout(z),null),oe&&=(clearTimeout(oe),null)}function V(){Re(H),R.value=!0,document.addEventListener(`click`,U,!0),document.addEventListener(`touchstart`,U,!0)}function H(){R.value=!1,document.removeEventListener(`click`,U,!0),document.removeEventListener(`touchstart`,U,!0),ze(H)}function U(e){let t=e.target;ae.value?.contains(t)||t instanceof Element&&t.closest(`[data-proxy-tooltip]`)||H()}function se(){B(),z=setTimeout(()=>{V()},300)}function ce(){B(),oe=setTimeout(()=>{H()},100)}function le(){B()}function ue(){B(),H()}let de=0,G=0,K=!1;function fe(e){if(R.value)return;let t=e.touches[0];t&&(de=t.clientX,G=t.clientY,K=!1)}function pe(e){if(K)return;let t=e.touches[0];if(!t)return;let n=Math.abs(t.clientX-de),r=Math.abs(t.clientY-G);(n>Ot||r>Ot)&&(K=!0)}function he(){!K&&!R.value&&V()}c(()=>{B(),document.removeEventListener(`click`,U,!0),document.removeEventListener(`touchstart`,U,!0),ze(H)});function ge(){i(`click`)}function _e(){B(),V(),s.proxyLatencyTest(n.proxyName,h.value?.provider||``,n.testUrl,n.timeout)}return(t,n)=>{let i=Q,s=Ie;return o(),k(`div`,{class:A([`relative h-full p-0.5`,e.isSelected?`z-10`:`z-0`])},[T(`div`,{ref_key:`reference`,ref:ae,class:A([`proxy-card relative h-full w-full rounded-[0.625rem]`,[e.isSelected?`proxy-card--selected animate-[glowPulse_2s_ease-in-out_infinite] bg-primary text-primary-content`:`bg-neutral text-neutral-content`,E(ne)?`animate-[testingPulse_1.5s_ease-in-out_infinite] border border-[color-mix(in_oklch,var(--color-success)_50%,transparent)]`:``]]),onMouseenter:se,onMouseleave:ce,onTouchstart:fe,onTouchmove:pe,onTouchend:he},[n[1]||=T(`span`,{"aria-hidden":`true`,class:`proxy-card__highlight`},null,-1),E(b)?(o(),k(`div`,et,` U `)):g(``,!0),e.isRecommended?(o(),k(`div`,{key:1,class:`absolute -top-1 -left-1 z-1 flex size-4 items-center justify-center rounded-full bg-warning text-warning-content`,title:E(f)(`recommendation.recommended`,`Recommended`)},[d(E(re),{class:`size-3`})],8,tt)):g(``,!0),T(`div`,{class:A([`flex h-full flex-col gap-2 p-[0.625rem]`,{"cursor-pointer":!!ge}]),onClick:ge},[T(`h2`,nt,O(e.proxyName),1),T(`div`,rt,[T(`div`,it,[T(`div`,at,O(E(_)),1),E(S)===null?g(``,!0):(o(),k(`div`,ot,[T(`span`,{class:A([E(ee),`font-bold`])},O(E(S)),3),E(C)?(o(),k(`span`,st,O(E(C)),1)):g(``,!0)]))]),d(i,{"proxy-name":e.proxyName,"test-url":e.testUrl,"provider-name":e.providerName,"group-name":e.groupName,class:A({"animate-pulse":E(ne)}),onClick:w(_e,[`stop`])},null,8,[`proxy-name`,`test-url`,`provider-name`,`group-name`,`class`])]),T(`div`,ct,[E(ie).length>0?(o(),k(`div`,lt,[(o(!0),k(v,null,a(E(ie),(e,t)=>(o(),k(`div`,{key:t,class:A([`h-full flex-1 bg-current first:rounded-l-full last:rounded-r-full`,e.colorClass])},null,2))),128))])):(o(),k(`div`,ut))])],2),E(R)?(o(),j(s,{key:2,reference:E(ae),onMouseEnter:le,onMouseLeave:ue},{default:p(()=>[T(`div`,dt,[T(`h2`,ft,O(e.proxyName),1),E(F)?(o(),k(`div`,pt,O(E(F)),1)):g(``,!0),E(D)?(o(),k(`div`,mt,[T(`div`,ht,[T(`span`,null,O(E(D).min)+`ms`,1),T(`span`,null,`avg: `+O(E(D).avg)+`ms`,1),T(`span`,null,O(E(D).max)+`ms`,1)]),(o(),k(`svg`,gt,[n[0]||=T(`line`,{x1:`0`,y1:`25`,x2:`100`,y2:`25`,stroke:`currentColor`,"stroke-opacity":`0.1`,"stroke-dasharray":`2,2`},null,-1),T(`path`,{d:E(M),fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,class:`opacity-80`},null,8,_t),(o(!0),k(v,null,a(E(D).points,(e,t)=>(o(),k(`circle`,{key:t,cx:e.x,cy:e.y,r:`2`,fill:`currentColor`,class:`opacity-60`},null,8,vt))),128))])),T(`div`,yt,[T(`span`,null,`jitter: `+O(E(D).jitter)+`ms`,1),T(`span`,null,O(E(D).successTests)+`/`+O(E(D).totalTests)+` (`+O(E(D).successRate)+`%)`,1)])])):g(``,!0),E(I).length>0?(o(),k(`ul`,bt,[(o(!0),k(v,null,a(E(I),(e,t)=>(o(),k(`li`,{key:t},[T(`div`,xt,[T(`div`,St,[d(E(L),{class:`size-4`})]),T(`div`,Ct,[T(`time`,wt,O(E(Le.default)(e.time).format(`YYYY-MM-DD HH:mm:ss`)),1),T(`div`,Tt,[T(`div`,{class:A([`inline-block rounded-full px-2 py-0.5 text-xs font-semibold`,E(q)(e.delay,E(l).latencyQualityMap)])},O(e.delay||`---`),3),e.delay&&E(D)?(o(),k(`div`,Et,[T(`div`,{class:A([`h-full rounded-full bg-current transition-all duration-300`,E(q)(e.delay,E(l).latencyQualityMap)]),style:r({width:`${Math.min(e.delay/E(D).max*100,100)}%`})},null,6)])):g(``,!0)])])])]))),128))])):(o(),k(`div`,Dt,O(E(f)(`noLatencyHistory`)),1))])]),_:1},8,[`reference`])):g(``,!0)],34)],2)}}}),{__name:`ProxyNodeCard`}),At={class:`flex items-center gap-2 pt-1`},jt={class:`h-2 flex-1 overflow-hidden rounded-full bg-base-content/15`},Mt={class:`flex items-center justify-center rounded-full bg-secondary px-2 py-0.5 text-xs font-semibold text-secondary-content`},Nt={class:`mt-1.5 flex flex-wrap items-center justify-between gap-2`},Pt={class:`text-sm text-base-content/60`},Ft={class:`text-sm text-base-content/60`},It=Object.assign(i({__name:`SubscriptionInfo`,props:{subscriptionInfo:{}},setup(e){let t=e,{t:n}=te(),i=m(()=>t.subscriptionInfo?be(t.subscriptionInfo.Total||0,{units:`iec`}).toString():`0 B`),a=m(()=>{if(!t.subscriptionInfo)return`0 B`;let{Download:e=0,Upload:n=0}=t.subscriptionInfo;return be(e+n,{units:`iec`}).toString()}),s=m(()=>{if(!t.subscriptionInfo?.Total)return 0;let{Download:e=0,Upload:n=0,Total:r=1}=t.subscriptionInfo;return Math.min(Number(((e+n)/r*100).toFixed(1)),999)}),c=m(()=>t.subscriptionInfo?.Expire?(0,Le.default)(t.subscriptionInfo.Expire*1e3).format(`YYYY-MM-DD`):n(`noExpire`));return(t,l)=>e.subscriptionInfo?(o(),k(v,{key:0},[T(`div`,At,[T(`div`,jt,[T(`div`,{class:`h-full rounded-full transition-[width] duration-500 ease-out`,style:r({width:`${E(s)}%`,background:`linear-gradient(90deg, var(--color-primary), var(--color-secondary))`})},null,4)]),T(`div`,Mt,O(E(s))+`% `,1)]),T(`div`,Nt,[T(`div`,Pt,O(E(a))+` / `+O(E(i)),1),T(`div`,Ft,O(E(n)(`expire`))+`: `+O(E(c)),1)])],64)):g(``,!0)}}),{__name:`SubscriptionInfo`}),Lt={class:`rounded-xl transition-[background,border-color] duration-200 ease-out select-none hover:border-[color-mix(in_oklch,var(--color-primary)_40%,transparent)] hover:bg-[color-mix(in_oklch,var(--color-base-200)_95%,transparent)]`,style:{background:`color-mix(in oklch, var(--color-base-200) 80%, transparent)`,border:`1px solid
color-mix(in oklch, var(--color-secondary) 30%, transparent)`,"box-shadow":`0 2px 8px
color-mix(in oklch, var(--color-base-content) 5%, transparent)`}},Rt=Object.assign(i({__name:`Collapse`,props:{isOpen:{type:Boolean,default:!1}},emits:[`collapse`],setup(e,{emit:t}){let n=t,i=W(),a=m(()=>i.proxiesDisplayMode===V.LIST),c=m(()=>({gridTemplateColumns:`repeat(auto-fill, minmax(${B[i.proxiesCardSize]}px, 1fr))`,gap:`${U[i.proxiesCardSize]}px`}));return(t,l)=>(o(),k(`div`,Lt,[T(`div`,{class:A([`flex cursor-pointer items-center justify-between p-4 pr-3 text-xl font-medium text-[var(--color-base-content)]`,E(i).stickyGroupHeader&&e.isOpen?`sticky top-0 z-20 rounded-t-xl backdrop-blur-sm`:``]),style:r(E(i).stickyGroupHeader&&e.isOpen?{background:`color-mix(in oklch, var(--color-base-200) 80%, transparent)`}:void 0),onClick:l[0]||=t=>n(`collapse`,!e.isOpen)},[s(t.$slots,`title`),T(`div`,{class:A([`flex h-6 w-6 items-center justify-center text-[color-mix(in_oklch,var(--color-base-content)_50%,transparent)] transition-transform duration-300 ease-[cubic-bezier(0.4,0,0.2,1)]`,e.isOpen?`rotate-180`:``])},[...l[1]||=[T(`svg`,{class:`h-4 w-4`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[T(`path`,{d:`m6 9 6 6 6-6`})],-1)]],2)],6),T(`div`,{class:A([`px-4 pt-2 pb-4 transition-opacity duration-300 ease-out`,[e.isOpen?`opacity-100`:`hidden opacity-0`,E(a)?`flex flex-col gap-3`:`grid`]]),style:r(E(a)?void 0:E(c))},[e.isOpen?s(t.$slots,`default`,{key:0}):g(``,!0)],6)]))}}),{__name:`Collapse`}),zt={key:0,class:`flex gap-2`},Bt={class:`isolate flex flex-1 flex-col gap-2`},Vt={class:`isolate flex flex-1 flex-col gap-2`},Ht={key:1,class:`isolate flex flex-col gap-2`},Ut=Object.assign(i({__name:`ProxiesRenderWrapper`,setup(e,{expose:t}){let n=W(),{width:r}=M(),i=m(()=>r.value>480),a=m(()=>n.renderProxiesInTwoColumns&&i.value);return t({isTwoColumns:a}),(e,t)=>E(a)?(o(),k(`div`,zt,[T(`div`,Bt,[s(e.$slots,`even`)]),T(`div`,Vt,[s(e.$slots,`odd`)])])):(o(),k(`div`,Ht,[s(e.$slots,`default`)]))}}),{__name:`ProxiesRenderWrapper`}),Wt=10,Gt=200;function Kt(e){return e?.aborted?Promise.resolve():new Promise(t=>{let n=setTimeout(()=>{e?.removeEventListener(`abort`,r),t()},Gt);function r(){clearTimeout(n),e?.removeEventListener(`abort`,r),t()}e?.addEventListener(`abort`,r,{once:!0})})}function qt(){let e=W(),t=Z(),n=we(),r=y(!1),i=y({completed:0,total:0,current:``}),a=y(null),o=async(e,t,n,r)=>{try{return{proxyName:e,delay:(await K().get(`proxies/${encodeURIComponent(e)}/delay`,{searchParams:{url:t,timeout:n},signal:r}).json()).delay}}catch{return{proxyName:e,delay:0}}},s=async(e,t,n)=>{try{return await K().get(`group/${encodeURIComponent(e)}/delay`,{searchParams:{url:t,timeout:n},timeout:Math.max(3e4,n*2+1e4)}).json()}catch{return{}}},c=async(e,s)=>{let{url:c,timeout:l,onProgress:u,onNodeComplete:d}=s,f={};r.value=!0,i.value={completed:0,total:e.length,current:``},a.value=new AbortController,t.clearLatencyTestStateForNodes?.(e,c),n.batchTestProgress={total:e.length,completed:0,current:null,isRunning:!0};try{for(let r=0;r<e.length&&!a.value?.signal.aborted;r+=Wt){let s=e.slice(r,r+Wt).map(async r=>{i.value.current=r,n.batchTestProgress.current=r;let s=await o(r,c,l,a.value?.signal);return f[r]=s.delay,t.recordLatencyTestResult?.(r,c,s.delay),i.value.completed++,n.batchTestProgress.completed++,u?.(i.value.completed,e.length,r),d?.(r,s.delay),n.recordTestResult(r,s.delay>0?s.delay:null,s.delay>0),s});await Promise.all(s),r+Wt<e.length&&!a.value?.signal.aborted&&await Kt(a.value?.signal)}}finally{r.value=!1,i.value.current=``,n.batchTestProgress={total:e.length,completed:i.value.completed,current:null,isRunning:!1},a.value=null,await t.fetchProxies()}return f},l=async(i,a,o=!0)=>{let c=a?.url??e.urlForLatencyTest,l=a?.timeout??e.latencyTestTimeoutDuration;o&&(r.value=!0,n.batchTestProgress={total:1,completed:0,current:i,isRunning:!0});try{let e=await s(i,c,l);n.recordBatchResults(e);try{await t.fetchProxies()}catch{}return t.recordLatencyTestResults?.(e,c),e}finally{o&&(r.value=!1,n.batchTestProgress={total:1,completed:1,current:null,isRunning:!1})}};return{isRunning:r,progress:i,batchTestNodes:c,testGroupNodes:l,testMultipleGroups:async(e,t)=>{let i={};r.value=!0,n.batchTestProgress={total:e.length,completed:0,current:null,isRunning:!0};try{for(let r=0;r<e.length;r++){let a=e[r];a&&(n.batchTestProgress.current=a,n.batchTestProgress.completed=r,i[a]=await l(a,t,!1),r<e.length-1&&await new Promise(e=>setTimeout(e,Gt)))}}finally{r.value=!1,n.batchTestProgress={total:e.length,completed:e.length,current:null,isRunning:!1}}return i},abortTest:()=>{a.value?.abort()}}}var Jt={class:`flex h-full min-h-0 flex-col gap-3`},Yt={class:`animate-fade-slide-in flex shrink-0 flex-wrap items-center gap-3`},Xt={class:`flex gap-1 rounded-xl border border-base-content/8 bg-base-200/60 p-1 backdrop-blur-sm`},Zt=[`onClick`],Qt={class:`font-medium`},$t={class:`flex items-center gap-2`},en={class:`hidden text-sm font-medium sm:inline`},tn={key:1,class:`flex items-center gap-2 rounded-lg bg-success/10 px-3 py-1.5 text-sm text-success`},nn={key:0,class:`max-w-24 truncate text-xs opacity-70`},rn={class:`ml-auto`},an={class:`flex flex-col gap-4`},on={class:`flex w-full justify-center`},sn={class:`flex flex-col`},cn=[`placeholder`],ln=[`placeholder`],un={value:`orderNatural`},dn={value:`orderLatency_asc`},fn={value:`orderLatency_desc`},pn={value:`orderQuality_asc`},mn={value:`orderQuality_desc`},hn={value:`orderName_asc`},gn={value:`orderName_desc`},_n={class:`flex w-full justify-center`},vn={class:`flex w-full justify-center`},yn={value:`comfortable`},bn={value:`compact`},xn={value:`tight`},Sn={class:`flex w-full justify-center`},Cn={value:`cardMode`},wn={value:`listMode`},Tn={value:`auto`},En={value:`dots`},Dn={value:`bar`},On={value:`off`},kn=50,An=50,jn=R(i({__name:`proxies`,setup(e){let{t:s,locale:c}=te();ne({title:m(()=>s(`proxies`))});let b=Z(),x=Se(),S=W(),w=we(),{isRunning:M,testMultipleGroups:re}=qt(),L=y(`proxies`),R=y(),B=y(),V=y(),U=y(null),se=y(null),ce=e=>be(e).toString(),le=e=>fe(e.all??[],w.performanceData,w.excludedNodes,w.scoringWeights),ue=async()=>{await re(G.value.map(e=>e.name))},de=e=>{let t=le(e);t&&b.selectProxyInGroup(e,t)},G=m(()=>b.proxies.filter(e=>!e.hidden)),K=m(()=>[{type:`proxies`,name:s(`proxies`),count:G.value.length},{type:`proxyProviders`,name:s(`proxyProviders`),count:b.proxyProviders.length}]);function pe(e){let t=S.proxiesOrderingType;return ve({proxyNames:_e({proxyNames:e.all??[],orderingType:t,testUrl:e.testUrl||null,getLatencyByName:b.getLatencyByName,isProxyGroup:b.isProxyGroup,latencyQualityMap:S.latencyQualityMap,urlForLatencyTest:S.urlForLatencyTest,performanceData:w.performanceData}),enabled:S.hideUnAvailableProxies,testUrl:e.testUrl||null,getLatencyByName:b.getLatencyByName,isProxyGroup:b.isProxyGroup,latencyQualityMap:S.latencyQualityMap,urlForLatencyTest:S.urlForLatencyTest})}function q(e){return _e({proxyNames:e.proxies.map(e=>e.name),orderingType:S.proxiesOrderingType,testUrl:e.testUrl,getLatencyByName:b.getLatencyByName,isProxyGroup:b.isProxyGroup,latencyQualityMap:S.latencyQualityMap,urlForLatencyTest:S.urlForLatencyTest,performanceData:w.performanceData})}let J=m(()=>{let e={};for(let t of G.value)e[t.name]=pe(t);return e}),Y=m(()=>{let e={};for(let t of b.proxyProviders)e[t.name]=q(t);return e});n(()=>{b.fetchProxies()}),f(oe(),Ce(e=>{e&&b.fetchProxies()},3e4));let ye=i({props:{proxyGroup:{type:Object,required:!0},sortedProxyNames:{type:Array,required:!0}},setup(e){let n=m(()=>le(e.proxyGroup)),r=m(()=>e.proxyGroup.all?.length??0),i=m(()=>e.proxyGroup.all?.filter(e=>b.proxyNodeMap[e]?.alive===!0).length??0),a=m(()=>n.value!==null&&n.value!==e.proxyGroup.now);return()=>t(`div`,{class:`flex flex-col gap-3 flex-1 min-w-0`},[t(`div`,{class:`flex items-center justify-between gap-2 w-full flex-nowrap`},[t(`div`,{class:`flex flex-wrap items-center gap-2 flex-1 min-w-0`},[e.proxyGroup.icon&&(e.proxyGroup.icon.startsWith(`data:image/svg+xml`)?t(`div`,{style:{height:`${S.iconHeight}px`,width:`${S.iconHeight}px`,color:`var(--color-primary)`,backgroundColor:`currentColor`,marginRight:`${S.iconMarginRight}px`,maskImage:`url('${ge(e.proxyGroup.icon)}')`,maskSize:`100% 100%`}}):t(`img`,{src:e.proxyGroup.icon,style:{height:`${S.iconHeight}px`,marginRight:`${S.iconMarginRight}px`}})),t(`span`,{class:`text-lg font-semibold tracking-tight line-clamp-1 break-all text-base-content`},e.proxyGroup.name),t(`div`,{class:`badge badge-sm text-[0.7rem] font-semibold px-2 py-1 rounded-md bg-primary/12 text-primary border border-primary/20`},`${i.value} / ${r.value}`)]),t(`div`,{class:`flex items-center gap-1.5 shrink-0`},[a.value&&t(X,{class:`flex items-center justify-center w-9 h-9 rounded-lg bg-warning/10 border border-warning/20 text-warning transition-all duration-200 hover:bg-warning/20 hover:border-warning/40 hover:-translate-y-px hover:shadow-lg hover:shadow-warning/15 active:translate-y-0`,title:s(`recommendation.switchToRecommended`,`Switch to Recommended: `)+n.value,onClick:t=>{t.stopPropagation(),de(e.proxyGroup)}},{default:()=>t(ae,{size:18})}),!!e.proxyGroup.fixed&&t(X,{class:`flex items-center justify-center w-9 h-9 rounded-lg bg-warning/10 border border-warning/20 text-warning transition-all duration-200 hover:bg-warning/20 hover:border-warning/40 hover:-translate-y-px hover:shadow-lg hover:shadow-warning/15 active:translate-y-0`,title:s(`unfixProxy`),onClick:t=>{t.stopPropagation(),b.unfixProxyInGroup(e.proxyGroup.name)}},{default:()=>t(ee,{size:18})}),t(X,{class:`flex items-center justify-center w-9 h-9 rounded-lg bg-base-content/6 border border-base-content/8 text-base-content/60 transition-all duration-200 hover:bg-primary/15 hover:border-primary/30 hover:text-primary hover:-translate-y-px hover:shadow-lg hover:shadow-primary/15 active:translate-y-0 disabled:bg-success/15 disabled:border-success/30 disabled:cursor-not-allowed disabled:opacity-100`,disabled:b.proxyGroupLatencyTestingMap[e.proxyGroup.name],onClick:t=>{t.stopPropagation(),b.proxyGroupLatencyTest(e.proxyGroup.name)}},{default:()=>t(I,{size:18,class:{"animate-pulse text-success":b.proxyGroupLatencyTestingMap[e.proxyGroup.name]}})})])]),t(`div`,{class:`flex flex-col gap-2.5 pt-1`},[t(`div`,{class:`badge badge-primary badge-sm inline-flex items-center gap-1`},[t(`span`,{class:`font-bold`},me(e.proxyGroup.type,s)),e.proxyGroup.now?.length>0&&[t(F,{size:18}),t(`span`,{class:`whitespace-nowrap`},e.proxyGroup.now)]]),t(`div`,{class:`badge badge-secondary badge-sm`},`${ce(x.speedGroupByName[e.proxyGroup.name]||0)}/s`)]),!b.collapsedMap[e.proxyGroup.name]&&t(Fe,{proxyNameList:e.sortedProxyNames,now:e.proxyGroup.now,testUrl:e.proxyGroup.testUrl||null,onSelect:t=>b.selectProxyInGroup(e.proxyGroup,t)})])}}),xe=i({props:{proxyGroup:{type:Object,required:!0},sortedProxyNames:{type:Array,required:!0}},setup(e){let n=m(()=>le(e.proxyGroup)),r=y(kn),i=y(null);return f(()=>[e.sortedProxyNames,e.proxyGroup.now],([e,t])=>{let n=e.indexOf(t);n>=r.value&&(r.value=n+An)},{immediate:!0}),N(i,t=>{t[0]?.isIntersecting&&r.value<e.sortedProxyNames.length&&(r.value=Math.min(r.value+An,e.sortedProxyNames.length))},{root:U,rootMargin:`600px`}),()=>{let a=e.sortedProxyNames,o=a.slice(0,r.value).map(r=>S.proxiesDisplayMode===`listMode`?t($e,{key:r,proxyName:r,testUrl:e.proxyGroup.testUrl||null,timeout:e.proxyGroup.timeout??null,isSelected:e.proxyGroup.now===r,onClick:()=>b.selectProxyInGroup(e.proxyGroup,r)}):t(kt,{key:r,proxyName:r,testUrl:e.proxyGroup.testUrl||null,timeout:e.proxyGroup.timeout??null,isSelected:e.proxyGroup.now===r,isRecommended:n.value===r,groupName:e.proxyGroup.name,onClick:()=>b.selectProxyInGroup(e.proxyGroup,r)}));return r.value<a.length&&o.push(t(`div`,{ref:i,key:`__load_more__`,"aria-hidden":`true`,class:`h-px w-full`,style:{gridColumn:`1 / -1`}})),o}}}),De=i({props:{provider:{type:Object,required:!0},sortedProxyNames:{type:Array,required:!0}},setup(e){return()=>t(`div`,{class:`flex flex-col gap-3 flex-1 min-w-0`},[t(`div`,{class:`flex items-center justify-between gap-2 w-full flex-nowrap`},[t(`div`,{class:`flex flex-wrap items-center gap-2 flex-1 min-w-0`},[t(`span`,{class:`text-lg font-semibold tracking-tight line-clamp-1 break-all text-base-content`},e.provider.name),t(`div`,{class:`badge badge-sm text-[0.7rem] font-semibold px-2 py-1 rounded-md bg-primary/12 text-primary border border-primary/20`},e.provider.proxies.length),t(`div`,{class:`badge badge-sm text-[0.7rem] font-semibold px-2 py-1 rounded-md bg-primary/12 text-primary border border-primary/20`},e.provider.vehicleType)]),t(`div`,{class:`flex items-center gap-1.5 shrink-0`},[t(X,{class:`flex items-center justify-center w-9 h-9 rounded-lg bg-base-content/6 border border-base-content/8 text-base-content/60 transition-all duration-200 hover:bg-primary/15 hover:border-primary/30 hover:text-primary hover:-translate-y-px hover:shadow-lg hover:shadow-primary/15 active:translate-y-0 disabled:bg-success/15 disabled:border-success/30 disabled:cursor-not-allowed disabled:opacity-100`,disabled:b.updatingMap[e.provider.name],onClick:t=>{t.stopPropagation(),b.updateProviderByProviderName(e.provider.name)}},{default:()=>t(z,{size:18,class:{"animate-spin text-success":b.updatingMap[e.provider.name]}})}),t(X,{class:`flex items-center justify-center w-9 h-9 rounded-lg bg-base-content/6 border border-base-content/8 text-base-content/60 transition-all duration-200 hover:bg-primary/15 hover:border-primary/30 hover:text-primary hover:-translate-y-px hover:shadow-lg hover:shadow-primary/15 active:translate-y-0 disabled:bg-success/15 disabled:border-success/30 disabled:cursor-not-allowed disabled:opacity-100`,disabled:b.proxyProviderLatencyTestingMap[e.provider.name],onClick:t=>{t.stopPropagation(),b.proxyProviderLatencyTest(e.provider.name)}},{default:()=>t(I,{size:18,class:{"animate-pulse text-success":b.proxyProviderLatencyTestingMap[e.provider.name]}})})])]),t(It,{subscriptionInfo:e.provider.subscriptionInfo}),t(`div`,{class:`flex flex-col gap-2.5 pt-1`},[t(`div`,{class:`inline-flex items-center gap-1.5 text-xs font-medium text-base-content/45 px-2.5 py-1 bg-base-content/5 rounded-full w-fit`},`${s(`updated`)} ${he(e.provider.updatedAt,c.value)}`),!b.collapsedMap[e.provider.name]&&t(Fe,{proxyNameList:e.sortedProxyNames,testUrl:e.provider.testUrl})])])}}),Q=i({props:{provider:{type:Object,required:!0},sortedProxyNames:{type:Array,required:!0}},setup(e){let n=y(kn),r=y(null);return N(r,t=>{t[0]?.isIntersecting&&n.value<e.sortedProxyNames.length&&(n.value=Math.min(n.value+An,e.sortedProxyNames.length))},{root:se,rootMargin:`600px`}),()=>{let i=e.sortedProxyNames,a=i.slice(0,n.value).map(n=>S.proxiesDisplayMode===`listMode`?t($e,{key:n,proxyName:n,testUrl:e.provider.testUrl,timeout:e.provider.timeout??null,providerName:e.provider.name}):t(kt,{key:n,proxyName:n,testUrl:e.provider.testUrl,timeout:e.provider.timeout??null,providerName:e.provider.name}));return n.value<i.length&&a.push(t(`div`,{ref:r,key:`__load_more__`,"aria-hidden":`true`,class:`h-px w-full`,style:{gridColumn:`1 / -1`}})),a}}});return(e,t)=>{let n=Rt,i=Ut,c=Te,f=Ee;return o(),k(`div`,Jt,[T(`div`,Yt,[T(`div`,Xt,[(o(!0),k(v,null,a(E(K),e=>(o(),k(`button`,{key:e.type,class:A([`flex items-center gap-2 rounded-lg px-3 py-1.5 text-sm text-base-content/70 transition-all duration-200 hover:bg-base-content/5`,{"bg-primary text-primary-content shadow-md shadow-primary/30 hover:bg-primary":E(L)===e.type}]),onClick:t=>L.value=e.type},[T(`span`,Qt,O(e.name),1),T(`span`,{class:A([`rounded-md bg-base-content/10 px-1.5 py-0.5 text-xs font-semibold`,{"bg-primary-content/20":E(L)===e.type}])},O(e.count),3)],10,Zt))),128))]),T(`div`,$t,[E(L)===`proxies`?(o(),j(X,{key:0,class:`flex h-9 items-center gap-1.5 rounded-[0.625rem] border border-base-content/10 bg-base-200/80 px-3 transition-all duration-200 hover:border-primary/30 hover:bg-primary/15 hover:text-primary`,disabled:E(M),title:E(s)(`recommendation.testAllGroups`,`Test All Groups`),onClick:ue},{default:p(()=>[d(E(I),{size:18,class:A({"animate-pulse text-success":E(M)})},null,8,[`class`]),T(`span`,en,O(E(s)(`recommendation.testAll`,`Test All`)),1)]),_:1},8,[`disabled`,`title`])):g(``,!0),E(M)?(o(),k(`div`,tn,[t[17]||=T(`span`,{class:`loading loading-xs loading-spinner`},null,-1),T(`span`,null,O(E(w).batchTestProgress.completed)+`/`+O(E(w).batchTestProgress.total),1),E(w).batchTestProgress.current?(o(),k(`span`,nn,O(E(w).batchTestProgress.current),1)):g(``,!0)])):g(``,!0),E(L)===`proxyProviders`?(o(),j(X,{key:2,class:`flex h-9 w-9 items-center justify-center rounded-[0.625rem] border border-base-content/10 bg-base-200/80 transition-all duration-200 hover:border-primary/30 hover:bg-primary/15 hover:text-primary`,disabled:E(b).isAllProviderUpdating,onClick:E(b).updateAllProvider},{default:p(()=>[d(E(z),{size:18,class:A({"animate-spin text-success":E(b).isAllProviderUpdating})},null,8,[`class`])]),_:1},8,[`disabled`,`onClick`])):g(``,!0)]),T(`div`,rn,[d(X,{class:`flex h-9 w-9 items-center justify-center rounded-[0.625rem] border border-base-content/10 bg-primary/10 text-primary transition-all duration-200 hover:border-primary/30 hover:bg-primary/15`,onClick:t[0]||=e=>E(R)?.open()},{default:p(()=>[d(E(ie),{size:18})]),_:1})])]),E(L)===`proxies`?(o(),k(`div`,{key:0,ref_key:`proxiesScrollEl`,ref:U,class:`min-h-0 flex-1 overflow-y-auto`},[d(i,{ref_key:`proxyGroupsWrapper`,ref:B},u({_:2},[E(B)?.isTwoColumns?{name:`even`,fn:p(()=>[(o(!0),k(v,null,a(E(G).filter((e,t)=>t%2==0),(e,t)=>(o(),j(n,{key:e.name,class:`animate-fade-slide-in`,style:r({animationDelay:`${t*50}ms`}),"is-open":E(b).collapsedMap[e.name]||!1,onCollapse:t=>E(b).collapsedMap[e.name]=t},{title:p(()=>[d(E(ye),{"proxy-group":e,"sorted-proxy-names":E(J)[e.name]||[]},null,8,[`proxy-group`,`sorted-proxy-names`])]),default:p(()=>[d(E(xe),{"proxy-group":e,"sorted-proxy-names":E(J)[e.name]||[]},null,8,[`proxy-group`,`sorted-proxy-names`])]),_:2},1032,[`style`,`is-open`,`onCollapse`]))),128))]),key:`0`}:void 0,E(B)?.isTwoColumns?{name:`odd`,fn:p(()=>[(o(!0),k(v,null,a(E(G).filter((e,t)=>t%2==1),(e,t)=>(o(),j(n,{key:e.name,class:`animate-fade-slide-in`,style:r({animationDelay:`${t*50+25}ms`}),"is-open":E(b).collapsedMap[e.name]||!1,onCollapse:t=>E(b).collapsedMap[e.name]=t},{title:p(()=>[d(E(ye),{"proxy-group":e,"sorted-proxy-names":E(J)[e.name]||[]},null,8,[`proxy-group`,`sorted-proxy-names`])]),default:p(()=>[d(E(xe),{"proxy-group":e,"sorted-proxy-names":E(J)[e.name]||[]},null,8,[`proxy-group`,`sorted-proxy-names`])]),_:2},1032,[`style`,`is-open`,`onCollapse`]))),128))]),key:`1`}:void 0,E(B)?.isTwoColumns?void 0:{name:`default`,fn:p(()=>[(o(!0),k(v,null,a(E(G),(e,t)=>(o(),j(n,{key:e.name,class:`animate-fade-slide-in`,style:r({animationDelay:`${t*40}ms`}),"is-open":E(b).collapsedMap[e.name]||!1,onCollapse:t=>E(b).collapsedMap[e.name]=t},{title:p(()=>[d(E(ye),{"proxy-group":e,"sorted-proxy-names":E(J)[e.name]||[]},null,8,[`proxy-group`,`sorted-proxy-names`])]),default:p(()=>[d(E(xe),{"proxy-group":e,"sorted-proxy-names":E(J)[e.name]||[]},null,8,[`proxy-group`,`sorted-proxy-names`])]),_:2},1032,[`style`,`is-open`,`onCollapse`]))),128))]),key:`2`}]),1536)],512)):(o(),k(`div`,{key:1,ref_key:`providersScrollEl`,ref:se,class:`min-h-0 flex-1 overflow-y-auto`},[d(i,{ref_key:`providersWrapper`,ref:V},u({_:2},[E(V)?.isTwoColumns?{name:`even`,fn:p(()=>[(o(!0),k(v,null,a(E(b).proxyProviders.filter((e,t)=>t%2==0),(e,t)=>(o(),j(n,{key:e.name,class:`animate-fade-slide-in`,style:r({animationDelay:`${t*50}ms`}),"is-open":E(b).collapsedMap[e.name]||!1,onCollapse:t=>E(b).collapsedMap[e.name]=t},{title:p(()=>[d(E(De),{provider:e,"sorted-proxy-names":E(Y)[e.name]||[]},null,8,[`provider`,`sorted-proxy-names`])]),default:p(()=>[d(E(Q),{provider:e,"sorted-proxy-names":E(Y)[e.name]||[]},null,8,[`provider`,`sorted-proxy-names`])]),_:2},1032,[`style`,`is-open`,`onCollapse`]))),128))]),key:`0`}:void 0,E(V)?.isTwoColumns?{name:`odd`,fn:p(()=>[(o(!0),k(v,null,a(E(b).proxyProviders.filter((e,t)=>t%2==1),(e,t)=>(o(),j(n,{key:e.name,class:`animate-fade-slide-in`,style:r({animationDelay:`${t*50+25}ms`}),"is-open":E(b).collapsedMap[e.name]||!1,onCollapse:t=>E(b).collapsedMap[e.name]=t},{title:p(()=>[d(E(De),{provider:e,"sorted-proxy-names":E(Y)[e.name]||[]},null,8,[`provider`,`sorted-proxy-names`])]),default:p(()=>[d(E(Q),{provider:e,"sorted-proxy-names":E(Y)[e.name]||[]},null,8,[`provider`,`sorted-proxy-names`])]),_:2},1032,[`style`,`is-open`,`onCollapse`]))),128))]),key:`1`}:void 0,E(V)?.isTwoColumns?void 0:{name:`default`,fn:p(()=>[(o(!0),k(v,null,a(E(b).proxyProviders,(e,t)=>(o(),j(n,{key:e.name,class:`animate-fade-slide-in`,style:r({animationDelay:`${t*40}ms`}),"is-open":E(b).collapsedMap[e.name]||!1,onCollapse:t=>E(b).collapsedMap[e.name]=t},{title:p(()=>[d(E(De),{provider:e,"sorted-proxy-names":E(Y)[e.name]||[]},null,8,[`provider`,`sorted-proxy-names`])]),default:p(()=>[d(E(Q),{provider:e,"sorted-proxy-names":E(Y)[e.name]||[]},null,8,[`provider`,`sorted-proxy-names`])]),_:2},1032,[`style`,`is-open`,`onCollapse`]))),128))]),key:`2`}]),1536)],512)),d(f,{ref_key:`settingsModal`,ref:R,title:E(s)(`proxiesSettings`)},{icon:p(()=>[d(E(P),{size:24})]),default:p(()=>[T(`div`,an,[T(`div`,null,[d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`autoCloseConns`)),1)]),_:1}),T(`div`,on,[l(T(`input`,{"onUpdate:modelValue":t[1]||=e=>E(S).autoCloseConns=e,class:`toggle toggle-primary`,type:`checkbox`},null,512),[[h,E(S).autoCloseConns]])])]),T(`div`,sn,[d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`urlForLatencyTest`)),1)]),_:1}),l(T(`input`,{"onUpdate:modelValue":t[2]||=e=>E(S).urlForLatencyTest=e,class:`input-bordered input w-full`,type:`text`},null,512),[[_,E(S).urlForLatencyTest]])]),T(`div`,null,[d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`latencyTestTimeoutDuration`))+` (`+O(E(s)(`ms`))+`) `,1)]),_:1}),l(T(`input`,{"onUpdate:modelValue":t[3]||=e=>E(S).latencyTestTimeoutDuration=e,class:`input-bordered input w-full`,type:`number`},null,512),[[_,E(S).latencyTestTimeoutDuration,void 0,{number:!0}]])]),T(`div`,null,[d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`latencyMediumThreshold`))+` (`+O(E(s)(`ms`))+`) `,1)]),_:1}),l(T(`input`,{"onUpdate:modelValue":t[4]||=e=>E(S).latencyMediumThreshold=e,placeholder:E(s)(`thresholdAutoPlaceholder`),class:`input-bordered input w-full`,type:`number`,min:`0`},null,8,cn),[[_,E(S).latencyMediumThreshold,void 0,{number:!0}]])]),T(`div`,null,[d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`latencyHighThreshold`))+` (`+O(E(s)(`ms`))+`) `,1)]),_:1}),l(T(`input`,{"onUpdate:modelValue":t[5]||=e=>E(S).latencyHighThreshold=e,placeholder:E(s)(`thresholdAutoPlaceholder`),class:`input-bordered input w-full`,type:`number`,min:`0`},null,8,ln),[[_,E(S).latencyHighThreshold,void 0,{number:!0}]])]),T(`div`,null,[d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`proxiesSorting`)),1)]),_:1}),l(T(`select`,{"onUpdate:modelValue":t[6]||=e=>E(S).proxiesOrderingType=e,class:`select-bordered select w-full`},[T(`option`,un,O(E(s)(`orderNatural`)),1),T(`option`,dn,O(E(s)(`orderLatency_asc`)),1),T(`option`,fn,O(E(s)(`orderLatency_desc`)),1),T(`option`,pn,O(E(s)(`orderQuality_asc`)),1),T(`option`,mn,O(E(s)(`orderQuality_desc`)),1),T(`option`,hn,O(E(s)(`orderName_asc`)),1),T(`option`,gn,O(E(s)(`orderName_desc`)),1)],512),[[C,E(S).proxiesOrderingType]])]),T(`div`,null,[d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`hideUnavailableProxies`)),1)]),_:1}),T(`div`,_n,[l(T(`input`,{"onUpdate:modelValue":t[7]||=e=>E(S).hideUnAvailableProxies=e,class:`toggle toggle-primary`,type:`checkbox`},null,512),[[h,E(S).hideUnAvailableProxies]])])]),T(`div`,null,[d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`renderInTwoColumns`)),1)]),_:1}),T(`div`,vn,[l(T(`input`,{"onUpdate:modelValue":t[8]||=e=>E(S).renderProxiesInTwoColumns=e,class:`toggle toggle-primary`,type:`checkbox`},null,512),[[h,E(S).renderProxiesInTwoColumns]])])]),T(`div`,null,[d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`proxiesCardSize`)),1)]),_:1}),l(T(`select`,{"onUpdate:modelValue":t[9]||=e=>E(S).proxiesCardSize=e,class:`select-bordered select w-full`},[T(`option`,yn,O(E(s)(`cardSizeComfortable`)),1),T(`option`,bn,O(E(s)(`cardSizeCompact`)),1),T(`option`,xn,O(E(s)(`cardSizeTight`)),1)],512),[[C,E(S).proxiesCardSize]])]),T(`div`,null,[d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`stickyGroupHeader`)),1)]),_:1}),T(`div`,Sn,[l(T(`input`,{"onUpdate:modelValue":t[10]||=e=>E(S).stickyGroupHeader=e,class:`toggle toggle-primary`,type:`checkbox`},null,512),[[h,E(S).stickyGroupHeader]])])]),T(`div`,null,[d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`proxiesDisplayMode`)),1)]),_:1}),l(T(`select`,{"onUpdate:modelValue":t[11]||=e=>E(S).proxiesDisplayMode=e,class:`select-bordered select w-full`},[T(`option`,Cn,O(E(s)(`cardMode`)),1),T(`option`,wn,O(E(s)(`listMode`)),1)],512),[[C,E(S).proxiesDisplayMode]])]),T(`div`,null,[d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`proxiesPreviewType`)),1)]),_:1}),l(T(`select`,{"onUpdate:modelValue":t[12]||=e=>E(S).proxiesPreviewType=e,class:`select-bordered select w-full`},[T(`option`,Tn,O(E(s)(`auto`)),1),T(`option`,En,O(E(s)(`dots`)),1),T(`option`,Dn,O(E(s)(`bar`)),1),T(`option`,On,O(E(s)(`off`)),1)],512),[[C,E(S).proxiesPreviewType]]),E(S).proxiesPreviewType===(`PROXIES_PREVIEW_TYPE`in e?e.PROXIES_PREVIEW_TYPE:E(H)).Auto?(o(),k(v,{key:0},[d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`proxiesPreviewAutoThreshold`)),1)]),_:1}),l(T(`input`,{"onUpdate:modelValue":t[13]||=e=>E(S).proxiesPreviewAutoThreshold=e,class:`input-bordered input w-full`,type:`number`,min:`1`},null,512),[[_,E(S).proxiesPreviewAutoThreshold,void 0,{number:!0}]])],64)):g(``,!0)]),T(`div`,null,[d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`iconHeight`)),1)]),_:1}),l(T(`input`,{"onUpdate:modelValue":t[14]||=e=>E(S).iconHeight=e,class:`input-bordered input w-full`,type:`number`},null,512),[[_,E(S).iconHeight,void 0,{number:!0}]]),d(c,{"with-divider":``},{default:p(()=>[D(O(E(s)(`iconMarginRight`)),1)]),_:1}),l(T(`input`,{"onUpdate:modelValue":t[15]||=e=>E(S).iconMarginRight=e,class:`input-bordered input w-full`,type:`number`},null,512),[[_,E(S).iconMarginRight,void 0,{number:!0}]])]),T(`div`,null,[T(`button`,{class:`btn w-full btn-error`,onClick:t[16]||=e=>E(S).resetProxiesSettings()},O(E(s)(`resetSettings`)),1)])])]),_:1},8,[`title`])])}}}),[[`__scopeId`,`data-v-c081b9f4`]]);export{jn as default};