1import{_ as ve}from"./FilterChip-pqElUCIU.js";import{G as K,al as f,az as t,ae as d,o as I,aP as g,A as i,p as c,aE as fe,aI as _e,aJ as ye,q as _,n as u,au as o,z as y,F as h,ao as be,aR as j,X as Y,l as r}from"./vendor-vue-IyrjVwZg.js";import{y as b,b5 as G}from"./app-CCPzP51L.js";import{_ as ge}from"./ServerStatus.vue_vue_type_script_setup_true_lang-g-RVBTed.js";import{u as xe}from"./useAlert-DSD6kk5F.js";import{a as Ve}from"./providerData-B42b8erI.js";import{_ as Se}from"./Alert.vue_vue_type_script_setup_true_lang-DhJjvSE7.js";import{_ as w}from"./SelectInput.vue_vue_type_script_setup_true_lang-DHFwK5Vo.js";import{i as ke,k as he,l as we,a as Ie}from"./server-Bb1fi3Pt.js";import{_ as Ce,a as $e}from"./ActionMenu.vue_vue_type_script_setup_true_lang-ImS9ZqJC.js";import{a as Ne,O as qe}from"./serverTablePages-Ba59RKBr.js";import{d as Pe}from"./locations-BGh0ESxx.js";import{h as Re}from"./lines-7baSo4Yw.js";import{ab as Te,j as H,a3 as De,l as J,z as Ue,a9 as Le,a1 as Be,t as ze}from"./vendor-vuetify-BgpDp5oD.js";import{_ as Me,f as Ae,p as Ee,g as Fe}from"./find-BIRhNNWQ.js";import"./vendor-utils-BLTdPet_.js";import"./types-DbDS2BTV.js";import"./ConfirmDlg.vue_vue_type_script_setup_true_lang-D7LH8xOC.js";import"./nth-sL9-DoGu.js";import"./zh-BzGZHSau.js";var Oe=Me(function(e,p,m){return Ae(p,Ee(e,m))});const Qe=K({__name:"ActionMenu",props:{itemId:{},ctx:{},kind:{}},setup(x){const e=x,p=f(e.itemId),m=ke(p,e.ctx);return(C,W)=>{const P=$e;return t(m).length>0?(d(),I(P,{key:0,kind:e.kind},{default:g(()=>[i(Ce,{id:t(p),actions:t(m),ctx:e.ctx},null,8,["id","actions","ctx"])]),_:1},8,["kind"])):c("",!0)}}}),je={class:"d-flex align-center mb-6"},Ye={class:"text-h5"},Ge={class:"mb-6"},He={class:"text-body-1 text-medium-emphasis mb-4"},Je={class:"d-flex align-center ga-2"},Xe={class:"flex-grow-1 text-truncate"},Ke={class:"text-body-2 font-weight-medium"},We={class:"text-caption text-medium-emphasis ml-2"},Ze={class:"text-caption text-medium-emphasis text-no-wrap"},et={key:3,class:"d-flex align-center justify-space-between"},tt={class:"d-flex align-center ga-2"},st={class:"text-caption text-medium-emphasis"},at={class:"text-caption text-medium-emphasis"},lt=K({__name:"servers",setup(x){const{t:e}=fe(),p=_e(),m=ye(),C=f();xe(C);const P={loading:f(!1),error:C},{providerDatas:Z}=Ve(),L=p.query.site==="null"?null:b(p.query.site),R=f(L),B=b(p.query.status),T=f(B),z=b(p.query.type),V=f(z),M=p.query.line==="null"?null:b(p.query.line),$=f(M),D=f(),ee=r(()=>[{title:e("VPN Server"),value:null},{title:e("Relay Server"),value:"relay"}]),te=r(()=>({filters:{isDeleted:{eq:!1},location:{eq:R.value},lines:{id:{eq:$.value?`${$.value}`:void 0}},role:{eq:D.value},fsm:{eq:T.value},info:{notNull:V.value?V.value===1:V.value}}})),{loading:A,onError:se,items:ae,total:S,updateFn:le,pageSize:k,page:N}=Ne(Ie,qe.Plain,te);se(a=>{C.value=a});const oe=r(()=>ae.value.map(a=>{var v,q;const s=Fe(Oe("id",(v=a.info)==null?void 0:v.regionId))(((q=Z.value[(a==null?void 0:a.provider)??""])==null?void 0:q.regions)??[]),n=s?s.city:"",l=a.maxUsed>0?Math.round((a.usedCount??0)/a.maxUsed*100):0;return{...a,label:`${a.label}`,typeDisplay:a.provider?`${e("Cloud Server")} · ${a.provider}`:e("Bring Your Own Server"),regionDisplay:n,roleDisplay:a.role==="relay"?e("Relay Server"):e("VPN Server"),usageRate:l}}));function ie(a){m.push(`/dashboard/products/server/${a}`)}const E=r(()=>{const a=t(k)||10;return Math.max(1,Math.ceil(t(S)/a))}),ne=r(()=>{const a=t(N),s=t(k),n=t(S),l=(a-1)*s+1,v=Math.min(a*s,n);return`${l}â${v} of ${n}`}),re=Pe(),U=r(()=>re.value.map(a=>({title:a.label,value:b(a.id)}))),ue=r(()=>{var a,s;return(s=(a=U.value)==null?void 0:a.find(n=>n.value===L))==null?void 0:s.title}),de=Re(),F=r(()=>{var a;return(a=de.value)==null?void 0:a.map(s=>({title:s.label,value:b(s.id)}))}),pe=r(()=>{var a,s;return(s=(a=F.value)==null?void 0:a.find(n=>n.value===M))==null?void 0:s.title}),O=r(()=>[{title:e("on"),value:10002},{title:e("off"),value:10003},{title:e("inactive"),value:10001}]),ce=r(()=>{var a;return(a=O.value.find(s=>s.value===B))==null?void 0:a.title}),Q=r(()=>[{title:e("Cloud Server"),value:1},{title:e("Bring Your Own Server"),value:2}]),me=r(()=>{var a;return(a=Q.value.find(s=>
1s.value===z))==null?void 0:a.title});return he(),we(),(a,s)=>{const n=ve;return d(),_(h,null,[i(Se),i(ze,{class:"pa-4 pa-md-8",style:{"max-width":"960px"}},{default:g(()=>[u("div",je,[u("h2",Ye,o(t(e)("VPN Servers List")),1),i(Te),i(H,{color:"primary",variant:"flat",rounded:"lg","prepend-icon":t(G),onClick:s[0]||(s[0]=l=>t(m).push("/dashboard/products/create-server"))},{default:g(()=>[y(o(t(e)("New Server")),1)]),_:1},8,["prepend-icon"])]),u("div",Ge,[i(n,{modelValue:R.value,"onUpdate:modelValue":s[1]||(s[1]=l=>R.value=l),input:w,init:ue.value,label:t(e)("Site"),"input-props":{title:t(e)("filter-l",{name:t(e)("Site")}),label:t(e)("Site"),items:U.value}},null,8,["modelValue","init","label","input-props"]),i(n,{modelValue:$.value,"onUpdate:modelValue":s[2]||(s[2]=l=>$.value=l),input:w,init:pe.value,label:t(e)("Line"),"input-props":{title:t(e)("filter-l",{name:t(e)("Line")}),label:t(e)("Line"),items:F.value}},null,8,["modelValue","init","label","input-props"]),i(n,{modelValue:D.value,"onUpdate:modelValue":s[3]||(s[3]=l=>D.value=l),input:w,label:t(e)("Role"),"input-props":{title:t(e)("filter-l",{name:t(e)("Role")}),label:t(e)("Role"),items:ee.value}},null,8,["modelValue","label","input-props"]),i(n,{modelValue:T.value,"onUpdate:modelValue":s[4]||(s[4]=l=>T.value=l),input:w,init:ce.value,label:t(e)("Status"),"input-props":{title:t(e)("filter-l",{name:t(e)("Status")}),label:t(e)("Status"),items:O.value}},null,8,["modelValue","init","label","input-props"]),i(n,{modelValue:V.value,"onUpdate:modelValue":s[5]||(s[5]=l=>V.value=l),input:w,init:me.value,label:t(e)("Type"),"input-props":{title:t(e)("filter-l",{name:t(e)("Type")}),label:t(e)("Type"),items:Q.value}},null,8,["modelValue","init","label","input-props"])]),t(A)?(d(),I(De,{key:0,indeterminate:"",color:"primary",rounded:"",class:"mb-4"})):c("",!0),!t(A)&&t(S)===0?(d(),I(J,{key:1,variant:"flat",border:"",rounded:"lg",class:"pa-6 text-center"},{default:g(()=>[u("div",He,o(t(e)("no_servers")),1),i(H,{color:"primary",rounded:"lg","prepend-icon":t(G),onClick:s[6]||(s[6]=l=>t(m).push("/dashboard/products/create-server"))},{default:g(()=>[y(o(t(e)("create_first_server")),1)]),_:1},8,["prepend-icon"])]),_:1})):c("",!0),(d(!0),_(h,null,be(oe.value,l=>(d(),_("div",{key:l.id,class:"mb-3"},[i(J,{variant:"flat",border:"",rounded:"lg",class:"pa-3 cursor-pointer",onClick:v=>ie(l.id)},{default:g(()=>{var v;return[u("div",Je,[i(ge,{id:l.id,size:28,onClick:s[7]||(s[7]=j(()=>{},["stop"]))},null,8,["id"]),u("div",Xe,[u("span",Ke,o(l.label),1),u("span",We,[y(o(l.roleDisplay)+" · "+o(l.typeDisplay)+" ",1),l.regionDisplay?(d(),_(h,{key:0},[y("/"+o(l.regionDisplay),1)],64)):c("",!0),l.location?(d(),_(h,{key:1},[y(" · "+o((v=U.value.find(q=>q.value===l.location))==null?void 0:v.title),1)],64)):c("",!0)])]),u("div",Ze,[y(o(l.usedCount??0)+"/"+o(l.maxUsed??0)+" "+o(t(e)("devices"))+" ",1),l.usageRate>0?(d(),_(h,{key:0},[y(" · "+o(l.usageRate)+"% ",1)],64)):c("",!0)]),i(Qe,{"item-id":l.id,ctx:P,kind:"icon",onClick:s[8]||(s[8]=j(()=>{},["stop"]))},null,8,["item-id"])])]}),_:2},1032,["onClick"])]))),128)),t(S)>0?(d(),I(Ue,{key:2,class:"mt-4 mb-3"})):c("",!0),t(S)>0?(d(),_("div",et,[u("div",tt,[u("span",st,o(t(e)("rows_per_page")),1),i(Le,{modelValue:t(k),"onUpdate:modelValue":[s[9]||(s[9]=l=>Y(k)?k.value=l:null),s[10]||(s[10]=l=>t(le)({page:1,itemsPerPage:l}))],items:[3,10,25,50],density:"compact",variant:"outlined","hide-details":"",style:{"min-width":"80px"}},null,8,["modelValue"])]),E.value>1?(d(),I(Be,{key:0,modelValue:t(N),"onUpdate:modelValue":s[11]||(s[11]=l=>Y(N)?N.value=l:null),length:E.value,"total-visible":5,variant:"text",density:"comfortable",rounded:"lg"},null,8,["modelValue","length"])):c("",!0),u("span",at,o(ne.value),1)])):c("",!0)]),_:1})],64)}}});function X(x){const e=x;e.__i18n=e.__i18n||[],e.__i18n.push({locale:"",resource:{en:{"VPN Servers List":{t:0,b:{t:2,i:[{t:3}],s:"Servers"}},"New Server":{t:0,b:{t:2,i:[{t:3}],s:"New Server"}},no_servers:{t:0,b:{t:2,i:[{t:3}],s:"No servers yet"}},create_first_server:{t:0,b:{t:2,i:[{t:3}],s:"Create your first server"}},devices:{t:0,b:{t:2,i:[{t:3}],s:"devices"}},rows_per_page:{t:0,b:{t:2,i:[{t:3}],s:"Rows"}}},"zh-Hans":{"VPN Servers List":{t:0,b:{t:2,i:[{t:3}],s:"æå¡å¨"}}
1,"New Server":{t:0,b:{t:2,i:[{t:3}],s:"æ°å»ºæå¡å¨"}},no_servers:{t:0,b:{t:2,i:[{t:3}],s:"è¿æ²¡ææå¡å¨"}},create_first_server:{t:0,b:{t:2,i:[{t:3}],s:"å建第ä¸å°æå¡å¨"}},devices:{t:0,b:{t:2,i:[{t:3}],s:"设å¤"}},rows_per_page:{t:0,b:{t:2,i:[{t:3}],s:"æ¯é¡µ"}}}}})}typeof X=="function"&&X(lt);export{lt 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.