1import{z as j,b as os,C as Be,u as ze,A as rs,c as g,e as b,f as ls,h as ns,g as is,i as r,p as C,j as e,l as h,k as c,t,n as ds,D as Te,B as se,m as ae,F as T,y as G,w as O,s as P,o,E as cs,a as N,q,G as us,H as hs,I as ps}from"./index-BHTMErf9.js";import{a as vs,g as _s,b as ms,c as fs,d as Oe,r as Ee,e as bs,f as ys,h as gs,i as ks,j as ws}from"./user-CAmOVogg.js";import{d as be}from"./marked.esm-DajSjiQI.js";import{Z as Cs}from"./zap-off-DxYQ7Wco.js";import{A as Ss}from"./activity-D9xbdvtl.js";import{C as F}from"./calendar-DBfQpa_o.js";import{R as $s}from"./refresh-cw-DR-bsj_a.js";import{Z as te}from"./zap-CfDD922N.js";import{C as Ns}from"./copy-Df0ta2DO.js";import{C as Rs}from"./check-BhV7-f7k.js";import{C as xs}from"./circle-check-B_lqTr7_.js";import{C as Ae}from"./credit-card-D7JwR7rW.js";import"./request-BDShSQSj.js";/** 2 * @license lucide-vue-next v0.562.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const Le=j("ban",[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** 7 * @license lucide-vue-next v0.562.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const Ie=j("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]);/** 12 * @license lucide-vue-next v0.562.0 - ISC 13 * 14 * This source code is licensed under the ISC license. 15 * See the LICENSE file in the root directory of this source tree. 16 */const ye=j("gift",[["rect",{x:"3",y:"8",width:"18",height:"4",rx:"1",key:"bkv52"}],["path",{d:"M12 8v13",key:"1c76mn"}],["path",{d:"M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7",key:"6wjy6b"}],["path",{d:"M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5",key:"1ihvrl"}]]);/** 17 * @license lucide-vue-next v0.562.0 - ISC 18 * 19 * This source code is licensed under the ISC license. 20 * See the LICENSE file in the root directory of this source tree. 21 */const Ds=j("history",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);/** 22 * @license lucide-vue-next v0.562.0 - ISC 23 * 24 * This source code is licensed under the ISC license. 25 * See the LICENSE file in the root directory of this source tree. 26 */const ge=j("shopping-bag",[["path",{d:"M16 10a4 4 0 0 1-8 0",key:"1ltviw"}],["path",{d:"M3.103 6.034h17.794",key:"awc11p"}],["path",{d:"M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z",key:"o988cm"}]]);/** 27 * @license lucide-vue-next v0.562.0 - ISC 28 * 29 * This source code is licensed under the ISC license. 30 * See the LICENSE file in the root directory of this source tree. 31 */const Ms=j("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),zs="/images/clients/Clash.webp",Ts="/images/clients/Shadowrocket.webp",Os="/images/clients/Singbox.svg",Es="/images/clients/Surfboard.svg",As="/images/clients/Surge.svg",Ls="/images/clients/Quantumult.webp",Is={class:"dark-tech-dashboard"},Bs={key:0,class:"status-alerts animate-fade-in"},Us={key:0,class:"alert-banner info"},Js={class:"alert-content"},Vs={class:"alert-text"},Ps={class:"alert-title"},qs={class:"alert-desc"},Fs={key:1,class:"alert-banner error"},Hs={class:"alert-content"},Ks={class:"alert-text"},Gs={class:"alert-title"},js={class:"alert-desc"},Ws={key:2,class:"alert-banner error"},Qs={class:"alert-content"},Xs={class:"alert-text"},Ys={class:"alert-title"},Zs={class:"alert-desc"},ea={key:3,class:"alert-banner warning"},sa={class:"alert-content"},aa={class:"alert-text"},ta={class:"alert-title"},oa={class:"alert-desc"},ra={key:4,class:"alert-banner warning"},la={class:"alert-content"},na={class:"alert-text"},ia={class:"alert-title"},da={class:"alert-desc"},ca={class:"bento-grid"},ua={class:"subscription-hero glass-card bento-item lg:col-span-8"},ha={key:0,class:"hero-content"},pa={class:"user-meta"},va={class:"user-titles"},_a={class:"greeting"},ma={class:"user-info-row"},fa={class:"plan-tag"},ba={class:"c-text"},ya={class:"c-text"},ga={class:"metric-grid"},ka={class:"metric-item glass-card"},wa={class:"m-header"},Ca={class:"m-label"},Sa={class:"m-value"},$a={key:0,class:"m-footer"},Na={class:"m-subtext"},Ra={class:"metric-item glass-card"},xa={class:"m-header"},Da={class:"m-label"},Ma={class:"m-value"},za={key:0,class:"m-footer"},Ta={class:"m-subtext"},Oa={key:1,class:"m-footer"},Ea={class:"m-subtext"},Aa={class:"metric-item glass-card highlight"},La={class:"m-header"},Ia={class:"m-label"},Ba={class:"m-value text-primary"},Ua={class:"m-footer"},Ja={class:"m-subtext"},Va={key:1,class:"hero-skeleton-wrap"},Pa={key:2,class:"hero-empty-state"},qa={class:"notification-wall glass-card bento-item lg:col-span-4"},Fa={class:"card-header"},Ha={key:0,class:"notice-list"},Ka=["onClick"],Ga={class:"n-body"},ja={class:"n-title"},Wa={class:"n-time"},Qa={key:1,class:"notice-empty"},Xa={class:"subscribe-section glass-card bento-item lg:col-span-12"},Ya={class:"sub-layout"},Za={class:"sub-left"},et={class:"sub-section"},st={class:"link-input-group"},at=["value"],tt={class:"sub-section"},ot={class:"quick-icons"},rt={class:"qr-code-box"},lt={class:"sub-right"},nt={class:"client-downloads"},it=["href"],dt=["src","alt"],ct={class:"dl-info"},ut={class:"dl-name"},ht={class:"dl-platform"},pt=["onClick"],vt={class:"modal-title-custom"},_t={class:"title-icon"},mt={class:"title-text"},ft={class:"promo-card"},bt={class:"promo-header"},yt=["innerHTML"],gt={class:"promo-body"},kt={class:"promo-desc"},wt={key:0,class:"promo-code-box"},Ct={class:"code-label"},St={class:"code-val"},$t={key:0,class:"promo-action"},Nt=["innerHTML"],Rt={class:"notice-detail-footer"},xt={class:"info-badge"},Dt={class:"checkin-modal-content"},Mt={class:"checkin-header"},zt={class:"checkin-icon-wrap"},Tt={class:"checkin-title"},Ot={class:"checkin-subtitle"},Et={class:"checkin-stats"},At={class:"stat-card"},Lt={class:"stat-val"},It={class:"stat-lab"},Bt={key:0,class:"streak-track"},Ut={class:"dot-inner"},Jt={key:1},Vt={key:1,class:"reward-box animate-bounce-in"},Pt={class:"reward-content"},qt={class:"reward-icon-container"},Ft={class:"reward-info"},Ht={class:"reward-header-row"},Kt={class:"reward-label"},Gt={key:0,class:"bonus-tag"},jt={class:"reward-value"},Wt={class:"checkin-actions"},Qt={class:"redeem-modal-content"},Xt={class:"redeem-tabs"},Yt={key:0,class:"redeem-pane"},Zt={class:"redeem-header"},eo={class:"redeem-icon-wrap"},so={key:0,class:"redeem-title"},ao={key:1,class:"redeem-title success"},to={key:0,class:"redeem-form-area"},oo={class:"redeem-input-section"},ro=["placeholder","disabled"],lo={class:"redeem-actions"},no={key:1,class:"redeem-result-area animate-in"},io={class:"result-badge"},co={class:"result-desc"},uo={class:"reward-list-mini"},ho={class:"reward-val"},po={key:1,class:"reward-item-simple"},vo={key:1,class:"history-pane"},_o={key:0,class:"history-loading"},mo={key:1,class:"history-empty"},fo={key:2,class:"history-empty"},bo={key:3,class:"history-list"},yo={class:"h-icon"},go={class:"h-info"},ko={class:"h-top"},wo={class:"h-name"},Co={class:"h-time"},So={class:"h-bottom"},$o={class:"h-code"},No={class:"modal-title"},Ro={key:0,class:"doc-loading"},xo=["innerHTML"],Do={components:{AQrcode:Be}},Mo=Object.assign(Do,{__name:"Dashboard",setup(zo){be.setOptions({breaks:!0,gfm:!0,headerIds:!0,mangle:!1});const D=ds(),{t:u}=ze(),Ue=rs(),ke=g(()=>Ue.theme==="dark"),ie=is(),l=b(JSON.parse(localStorage.getItem("xboard_subscribe_info")||"null")),W=ls(JSON.parse(localStorage.getItem("xboard_user_info")||'{"email":""}')),oe=b({}),L=b(JSON.parse(localStorage.getItem("xboard_notices")||"[]")),R=b(null),Q=b(!1),de=b(!1),y=b(null),ce=b(!1),ue=b(!1),M=b(null),he=b(!1),S=b(""),X=b(!1),I=b("redeem"),re=b([]),pe=b(!1),E=b(!0),we=b(!1),z=b(null),Y=b(!1),ve=b(!1),B=b(null),Ce=b(!1),{locale:Je}=ze(),le=g(()=>!l.value||!l.value.plan_id),Se=g(()=>!l.value||!l.value.expired_at||l.value.expired_at===0?!1:l.value.expired_at<Date.now()/1e3),_e=g(()=>{var s;return!((s=l.value)!=null&&s.expired_at)||l.value.expired_at===0?0:Math.ceil((l.value.expired_at-Date.now()/1e3)/(24*3600))}),$e=g(()=>_e.value>0&&_e.value<=3),me=g(()=>l.value?l.value.transfer_enable-(l.value.u+l.value.d)<=0:!1),Ne=g(()=>!l.value||me.value?!1:l.value.transfer_enable-(l.value.u+l.value.d)<1024*1024*1024),Re=s=>{if(s===0)return"0 B";
31const a=1024,i=["B","KB","MB","GB","TB"],_=Math.floor(Math.log(s)/Math.log(a));return parseFloat((s/Math.pow(a,_)).toFixed(2))+" "+i[_]},Ve=g(()=>{if(le.value)return u("dashboard.home.noPlan");if(!l.value||!l.value.expired_at)return u("dashboard.home.forever");const s=l.value.expired_at-Date.now()/1e3;return s<=0?u("dashboard.home.expired"):Math.ceil(s/(24*3600))+" "+u("dashboard.home.daysLaterResetShort")}),Pe=g(()=>{if(le.value)return u("dashboard.home.noPlan");let s=l.value.reset_day;if(s!=null&&s!==0){s=Number(s);const a=new Date,i=a.getFullYear(),_=a.getMonth(),f=(w,$,J)=>{const V=new Date(w,$+1,0).getDate();return new Date(w,$,Math.min(J,V))};let k=f(i,_,s);if(a>=k){let w=_+1,$=i;w>11&&(w=0,$++),k=f($,w,s)}const U=k-a;return Math.ceil(U/(1e3*60*60*24))+" "+u("dashboard.home.daysLaterResetShort")}return u("dashboard.home.forever")}),xe=g(()=>{if(!l.value||!l.value.plan_id)return"";const s=l.value.reset_day;return s!=null&&s!==0?u("dashboard.home.resetDayNumberedShort",{day:s}):""}),De=g(()=>{if(!l.value||!l.value.plan)return u("dashboard.home.trafficNoReset");const s=l.value.plan.reset_traffic_method;return u(s===0?"dashboard.home.trafficNoReset":s===1?"dashboard.home.trafficResetMonthly":s===2?"dashboard.home.trafficResetYearly":"dashboard.home.trafficReset")}),x=g(()=>{var s;if(!((s=R.value)!=null&&s.content))return null;try{const a=R.value.content.trim();if(a.startsWith("{")&&a.endsWith("}")){const i=JSON.parse(a);if(i&&i.cardComponent)return i}}catch{}return null}),qe=g(()=>{var s;if(!((s=R.value)!=null&&s.content)||x.value)return"";try{return be.parse(R.value.content)}catch(a){return console.error("Markdown parsing error:",a),R.value.content}}),Fe=s=>{R.value=s,Q.value=!0},He=s=>{s&&(s.startsWith("http")?window.open(s,"_blank"):(D.push(s),Q.value=!1))},Ke=()=>{if(Ce.value||(Ce.value=!0,!L.value||L.value.length===0))return;const s=JSON.parse(localStorage.getItem("xboard_popup_notice_read")||"{}"),a=L.value.find(i=>{if(s[i.id])return!1;if(i.tags){let _="";return typeof i.tags=="string"?_=i.tags:Array.isArray(i.tags)&&(_=i.tags.join(",")),_.includes("å¼¹çª")||_.includes("popup")||_.includes("Popup")||_.includes("POPUP")}return!1});a&&setTimeout(()=>{R.value=a,Q.value=!0,Ge(a.id)},500)},Ge=s=>{const a=JSON.parse(localStorage.getItem("xboard_popup_notice_read")||"{}");a[s]=Date.now(),localStorage.setItem("xboard_popup_notice_read",JSON.stringify(a))};ns(async()=>{l.value||(de.value=!0),await fe(),ie.enableDailyCheckin&&await Qe(),Ze(),Ke(),de.value=!1;try{const s=localStorage.getItem("xboard_client_config");s&&(oe.value=JSON.parse(s));const i=await(await fetch("/clientConfig.json")).json();i.downloads&&(oe.value=i.downloads,localStorage.setItem("xboard_client_config",JSON.stringify(i.downloads)))}catch{oe.value={windows_android:{title:"Windows / Android",clients:[{name:"Clash Verge",platform:"Windows",icon:"/images/clients/Clash.webp",url:"https://clashverge.dev/",tutorial_url:"",tutorial_id:""},{name:"Surfboard",platform:"Android",icon:"/images/clients/Surfboard.svg",url:"https://manual.getsurfboard.com/",tutorial_url:"",tutorial_id:""}]},macos_ios:{title:"macOS / iOS",clients:[{name:"Clash Verge",platform:"macOS",icon:"/images/clients/Clash.webp",url:"https://clashverge.dev/",tutorial_url:"",tutorial_id:""},{name:"Shadowrocket",platform:"iOS",icon:"/images/clients/Shadowrocket.webp",url:"https://apps.apple.com/app/shadowrocket/id932747118",tutorial_url:"",tutorial_id:""}]}}}});const je=async s=>{if(s.tutorial_url){window.open(s.tutorial_url,"_blank");return}if(s.tutorial_id){B.value=null,Y.value=!0,ve.value=!0;try{const a=await bs({language:Je.value==="zh-CN"?"zh-CN":"en"});if(a.data){let i=null;if(Object.keys(a.data).forEach(_=>{const f=a.data[_].find(k=>k.id==s.tutorial_id);f&&(i=f)}),i){B.value=i;try{const _=await ys({id:i.id});if(_.data){const f=_.data;B.value={...i,...f,body:f.body||f.content||i.body||i.content||""}}}catch(_){console.error("Fetch article detail failed:",_)}}else D.push({name:"Knowledge",query:{id:s.tutorial_id}}),Y.value=!1}}catch{D.push({name:"Knowledge",query:{id:s.tutorial_id}}),Y.value=!1}finally{ve.value=!1}}else D.push("/knowledge")},We=g(()=>{var s;if(!((s=B.value)!=null&&s.body))return"";try{return be.parse(B.value.body)}catch{return B.value.body}}),fe=async()=>{try{const[s,a,i]=await Promise.all([vs(),_s(),ms()]);s.data&&JSON.stringify(s.data)!==JSON.stringify(l.value)&&(l.value=s.data,localStorage.setItem("xboard_subscribe_info",JSON.stringify(s.data))),a.data&&JSON.stringify(a.data)!==JSON.stringify(W)&&(Object.assign(W,a.data),localStorage.setItem("xboard_user_info",JSON.stringify(a.data))),i.data&&JSON.stringify(i.data)!==JSON.stringify(L.value)&&(L.value=i.data,localStorage.setItem("xboard_notices",JSON.stringify(i.data)))}catch{}},Qe=async()=>{try{const s=await fs();s.data&&(y.value=s.data,s.data.checked_in_today&&(s.data.reward_type==="traffic"?M.value={type:"traffic",value:s.data.reward_traffic,unit:"MB"}:s.data.reward_type==="days"&&(M.value={type:"days",value:s.data.reward_days,unit:u("dashboard.home.checkinDays")})))}catch(s){console.error("Fetch checkin status error:",s)}},Xe=()=>{ce.value=!0},Ye=async()=>{var s;if(!((s=y.value)!=null&&s.checked_in_today)){ue.value=!0;try{const a=await gs();a.data&&(y.value={checked_in_today:!0,streak_days:a.data.streak_days,reward_type:a.data.reward_type,reward_traffic:a.data.reward_traffic,reward_days:a.data.reward_days},a.data.reward_type==="traffic"?M.value={type:"traffic",value:a.data.reward_traffic,unit:"MB"}:M.value={type:"days",value:a.data.reward_days,unit:u("dashboard.home.checkinDays")},P.success(u("dashboard.home.checkinSuccess")),await fe())}catch{}finally{ue.value=!1}}},Ze=async()=>{var i,_;let s=!1,a=!1;try{await Oe({page:1,per_page:1},{hideError:!0}),s=!0,E.value=!0}catch(f){((i=f.response)==null?void 0:i.status)===404||f.code==="ERR_NETWORK"||!f.response?(s=!1,E.value=!1):(s=!0,E.value=!0)}try{await Ee({code:""},{hideError:!0}),a=!0}catch(f){((_=f.response)==null?void 0:_.status)===404||f.code==="ERR_NETWORK"||!f.response?a=!1:a=!0}we.value=s||a},es=async()=>{var s;if(!(!E.value&&re.value.length===0)){pe.value=!0;try{const a=await Oe({page:1,per_page:20},{hideError:!0});a.data&&(re.value=Array.isArray(a.data)?a.data:a.data.data||[],E.value=!0)}catch(a){(((s=a.response)==null?void 0:s.status)===404||a.code==="ERR_NETWORK"||!a.response)&&(E.value=!1,I.value==="history"&&(I.value="redeem"))}finally{pe.value=!1}}},Me=async()=>{var f,k,U,K,w,$,J,V,Z,ee,d,p;if(!S.value)return;const s=W.balance||0,a=((f=l.value)==null?void 0:f.transfer_enable)||0,i=((k=l.value)==null?void 0:k.expired_at)||0,_=((U=l.value)==null?void 0:U.plan_id)||null;X.value=!0;try{let v;try{v=await ks({code:S.value},{hideError:!0})}catch(n){const m=((K=n.response)==null?void 0:K.status)===404,ne=!n.response&&(n.code==="ERR_NETWORK"||n.message==="Network Error");
31if(m||ne)try{v=await Ee({code:S.value,giftcard:S.value},{hideError:!0})}catch(A){const as=((w=A.response)==null?void 0:w.status)===404,ts=!A.response&&(A.code==="ERR_NETWORK"||A.message==="Network Error");if(as||ts)v=await ws({code:S.value,giftcard:S.value},{hideError:!0});else throw A}else throw n}if(v.data){if(await fe(),v.data===!0){const n=[],m=(W.balance||0)-s;m>0&&n.push({type:"balance",value:m,label:u("dashboard.settings.rewards.balance")});const ne=((($=l.value)==null?void 0:$.transfer_enable)||0)-a;ne>0&&n.push({type:"traffic",value:ne,label:u("dashboard.settings.rewards.traffic")});const A=(((J=l.value)==null?void 0:J.expired_at)||0)-i;A>0&&n.push({type:"expire",value:Math.ceil(A/86400),label:u("dashboard.settings.rewards.expire")}),((V=l.value)==null?void 0:V.plan_id)!==_&&n.push({type:"plan",label:u("dashboard.settings.rewards.plan")}),z.value=n.length>0?{rewards:n}:{success:!0}}else if(v.data.rewards&&typeof v.data.rewards=="object"&&!Array.isArray(v.data.rewards)){const n=v.data.rewards,m=[];n.balance&&n.balance>0&&m.push({type:"balance",value:n.balance,label:u("dashboard.settings.rewards.balance")}),n.transfer_enable&&n.transfer_enable>0&&m.push({type:"traffic",value:n.transfer_enable,label:u("dashboard.settings.rewards.traffic")}),n.expire_days&&n.expire_days>0&&m.push({type:"expire",value:n.expire_days,label:u("dashboard.settings.rewards.expire")}),n.device_limit&&n.device_limit>0&&m.push({type:"device",value:n.device_limit,label:"è®¾å¤æ°é"}),n.plan_id&&m.push({type:"plan",value:v.data.template_name||"订é
å¥é¤",label:u("dashboard.settings.rewards.plan")}),z.value={...v.data,rewards:m}}else if(v.data.data){console.log("[礼åå¡] æ£æµå°XBoardç°ä»£APIè¿åæ ¼å¼");const n=v.data.data.rewards||{},m=[];n.balance&&n.balance>0&&m.push({type:"balance",value:n.balance,label:u("dashboard.settings.rewards.balance")}),n.transfer_enable&&n.transfer_enable>0&&m.push({type:"traffic",value:n.transfer_enable,label:u("dashboard.settings.rewards.traffic")}),n.expire_days&&n.expire_days>0&&m.push({type:"expire",value:n.expire_days,label:u("dashboard.settings.rewards.expire")}),n.plan_id&&m.push({type:"plan",value:v.data.data.template_name||"订é
å¥é¤",label:u("dashboard.settings.rewards.plan")}),z.value={...v.data.data,rewards:m}}else z.value=v.data;P.success(u("dashboard.settings.redeemSuccess")),S.value=""}}catch(v){const n=((ee=(Z=v.response)==null?void 0:Z.data)==null?void 0:ee.message)||((p=(d=v.response)==null?void 0:d.data)==null?void 0:p.error),m={"The gift card has already been used by this user":u("dashboard.settings.giftCardUsedByUser"),"The gift card does not exist":u("dashboard.settings.giftCardNotFound"),"The gift card is not yet valid":u("dashboard.settings.giftCardNotValid"),"The gift card has expired":u("dashboard.settings.giftCardExpired"),"The gift card usage limit has been reached":u("dashboard.settings.giftCardUsedUp"),"Not suitable gift card type":"该礼åå¡ç±»åä¸éç¨äºæ¨å½åç订é
ç¶æ","Unknown gift card type":"æªç¥ç礼åå¡ç±»å"};m[n]?P.error(m[n]):P.error(n||u("common.error"))}finally{X.value=!1}},ss=()=>{var s;(s=l.value)!=null&&s.subscribe_url&&(navigator.clipboard.writeText(l.value.subscribe_url),P.success(u("dashboard.home.copySuccess")))},H=s=>{var f;if(!((f=l.value)!=null&&f.subscribe_url)){P.warning(u("dashboard.home.linkNotReady"));return}const a=encodeURIComponent(l.value.subscribe_url),i=ie.siteName,_={clash:`clash://install-config?url=${a}&name=${encodeURIComponent(i)}`,shadowrocket:`shadowrocket://add/sub://${btoa(l.value.subscribe_url)}?remarks=${encodeURIComponent(i)}`,"quantumult-x":`quantumult-x:///add-resource?remote-resource=%7B%22server_remote%22:%5B%22${a},tag=${encodeURIComponent(i)}%22%5D%7D`,singbox:`sing-box://import-remote-profile?url=${a}#${encodeURIComponent(i)}`,surfboard:`surfboard:///install-config?url=${a}`,surge:`surge:///install-config?url=${a}`};_[s]&&(window.location.href=_[s],P.success(u("dashboard.home.jumpingToClient")))};return(s,a)=>{var K,w,$,J,V,Z,ee;const i=ae("a-skeleton"),_=ae("BookOpen"),f=ae("a-modal"),k=ae("a-button"),U=ae("a-spin");return o(),r("div",Is,[le.value||Se.value||me.value||$e.value||Ne.value?(o(),r("div",Bs,[le.value?(o(),r("div",Us,[e("div",Js,[h(c(ge),{size:20,class:"alert-icon"}),e("div",Vs,[e("span",Ps,t(s.$t("dashboard.home.noSubscriptionTitle")),1),e("span",qs,t(s.$t("dashboard.home.noSubscriptionDesc")),1
31)])]),e("button",{class:"alert-action",onClick:a[0]||(a[0]=d=>c(D).push("/plans"))},t(s.$t("dashboard.home.buyPlan")),1)])):Se.value?(o(),r("div",Fs,[e("div",Hs,[h(c(Te),{size:20,class:"alert-icon"}),e("div",Ks,[e("span",Gs,t(s.$t("dashboard.home.planExpiredTitle")),1),e("span",js,t(s.$t("dashboard.home.planExpiredDesc")),1)])]),e("button",{class:"alert-action",onClick:a[1]||(a[1]=d=>c(D).push("/plans"))},t(s.$t("dashboard.home.renewPlan")),1)])):me.value?(o(),r("div",Ws,[e("div",Qs,[h(c(Cs),{size:20,class:"alert-icon"}),e("div",Xs,[e("span",Ys,t(s.$t("dashboard.home.trafficOutTitle")),1),e("span",Zs,t(s.$t("dashboard.home.trafficOutDesc")),1)])]),e("button",{class:"alert-action",onClick:a[2]||(a[2]=d=>c(D).push("/plans"))},t(s.$t("dashboard.home.resetTraffic")),1)])):$e.value?(o(),r("div",ea,[e("div",sa,[h(c(Te),{size:20,class:"alert-icon"}),e("div",aa,[e("span",ta,t(s.$t("dashboard.home.expiringSoonTitle")),1),e("span",oa,t(s.$t("dashboard.home.expiringSoonDesc",{days:_e.value})),1)])]),e("button",{class:"alert-action",onClick:a[3]||(a[3]=d=>c(D).push("/plans"))},t(s.$t("dashboard.home.renewPlan")),1)])):Ne.value?(o(),r("div",ra,[e("div",la,[h(c(Ms),{size:20,class:"alert-icon"}),e("div",na,[e("span",ia,t(s.$t("dashboard.home.trafficLowTitle")),1),e("span",da,t(s.$t("dashboard.home.trafficLowDesc")),1)])]),e("button",{class:"alert-action",onClick:a[4]||(a[4]=d=>c(D).push("/plans"))},t(s.$t("dashboard.home.renewPlan")),1)])):C("",!0)])):C("",!0),e("div",ca,[e("div",ua,[a[24]||(a[24]=e("div",{class:"mesh-glow"},null,-1)),l.value?(o(),r("div",ha,[e("div",pa,[e("div",va,[e("span",_a,t(s.$t("dashboard.home.greeting",{name:((K=W.email)==null?void 0:K.split("@")[0])||"User"})),1),e("div",ma,[e("div",fa,[a[21]||(a[21]=e("div",{class:"shine-effect"},null,-1)),h(c(Ss),{size:14,class:"c-icon"}),e("span",null,t(((w=l.value.plan)==null?void 0:w.name)||s.$t("dashboard.home.noPlan")),1)]),c(ie).enableDailyCheckin?(o(),r("div",{key:0,class:se(["checkin-badge-new",{checked:($=y.value)==null?void 0:$.checked_in_today}]),onClick:Xe},[a[22]||(a[22]=e("div",{class:"shine-effect"},null,-1)),h(c(F),{size:14,class:"c-icon"}),e("span",ba,t((J=y.value)!=null&&J.checked_in_today?s.$t("dashboard.home.alreadyCheckin"):s.$t("dashboard.home.checkinNow")),1)],2)):C("",!0),we.value?(o(),r("div",{key:1,class:"redeem-badge-new",onClick:a[5]||(a[5]=d=>he.value=!0)},[a[23]||(a[23]=e("div",{class:"shine-effect"},null,-1)),h(c(ye),{size:14,class:"c-icon"}),e("span",ya,t(s.$t("dashboard.settings.redeemGiftCard")),1)])):C("",!0)])])]),e("div",ga,[e("div",ka,[e("div",wa,[h(c(F),{size:18,class:"text-accent-purple"}),e("span",Ca,t(s.$t("dashboard.home.expireTime")),1)]),e("span",Sa,t(Ve.value),1),l.value.expired_at?(o(),r("div",$a,[e("span",Na,t(new Date(l.value.expired_at*1e3).toLocaleDateString()),1)])):C("",!0)]),e("div",Ra,[e("div",xa,[h(c($s),{size:18,class:"text-accent-blue"}),e("span",Da,t(s.$t("dashboard.home.resetTime")),1)]),e("span",Ma,t(Pe.value),1),xe.value?(o(),r("div",za,[e("span",Ta,t(xe.value)+" | "+t(De.value),1)])):(o(),r("div",Oa,[e("span",Ea,t(De.value),1)]))]),e("div",Aa,[e("div",La,[h(c(te),{size:18,class:"text-primary"}
31),e("span",Ia,t(s.$t("dashboard.home.remainingTraffic")),1)]),e("span",Ba,t(Re(l.value.transfer_enable-(l.value.u+l.value.d))),1),e("div",Ua,[e("span",Ja,t(s.$t("dashboard.home.availableQuota")),1)])])])])):de.value&&!l.value?(o(),r("div",Va,[h(i,{active:"",paragraph:{rows:3}})])):(o(),r("div",Pa,[e("span",null,t(s.$t("dashboard.home.noDataAvailable")),1)]))]),e("div",qa,[e("div",Fa,[h(c(Ie),{size:18}),e("h3",null,t(s.$t("dashboard.home.importantNotices")),1)]),L.value.length>0?(o(),r("div",Ha,[(o(!0),r(T,null,G(L.value,d=>(o(),r("div",{class:"notice-item",key:d.id,onClick:p=>Fe(d)},[a[25]||(a[25]=e("div",{class:"n-icon"},"ð",-1)),e("div",Ga,[e("span",ja,t(d.title),1),e("span",Wa,t(new Date(d.created_at*1e3).toLocaleDateString()),1)]),h(c(cs),{size:16,class:"n-arrow"})],8,Ka))),128))])):(o(),r("div",Qa,[e("span",null,t(s.$t("dashboard.home.noNotices")),1)]))]),e("div",Xa,[e("div",Ya,[e("div",Za,[e("div",et,[e("h4",null,t(s.$t("dashboard.home.subscribeLink")),1),e("div",st,[e("input",{readonly:"",value:((V=l.value)==null?void 0:V.subscribe_url)||"https://link.example.com/...",class:"link-input"},null,8,at),e("button",{onClick:ss,class:"copy-btn"},[h(c(Ns),{size:16})])])]),e("div",tt,[e("h4",null,t(s.$t("dashboard.home.oneClickImport")),1),e("div",ot,[e("div",{class:"import-item",onClick:a[6]||(a[6]=d=>H("clash"))},[...a[26]||(a[26]=[e("div",{class:"q-icon",title:"Clash"},[e("img",{src:zs,alt:"Clash"})],-1),e("span",null,"Clash",-1)])]),e("div",{class:"import-item",onClick:a[7]||(a[7]=d=>H("shadowrocket"))},[...a[27]||(a[27]=[e("div",{class:"q-icon",title:"Shadowrocket"},[e("img",{src:Ts,alt:"Shadowrocket"})],-1),e("span",null,"Shadowrocket",-1)])]),e("div",{class:"import-item",onClick:a[8]||(a[8]=d=>H("singbox"))},[...a[28]||(a[28]=[e("div",{class:"q-icon",title:"Singbox"},[e("img",{src:Os,alt:"Singbox"})],-1),e("span",null,"Singbox",-1)])]),e("div",{class:"import-item",onClick:a[9]||(a[9]=d=>H("surfboard"))},[...a[29]||(a[29]=[e("div",{class:"q-icon",title:"Surfboard"},[e("img",{src:Es,alt:"Surfboard"})],-1),e("span",null,"Surfboard",-1)])]),e("div",{class:"import-item",onClick:a[10]||(a[10]=d=>H("surge"))},[...a[30]||(a[30]=[e("div",{class:"q-icon",title:"Surge"},[e("img",{src:As,alt:"Surge"})],-1),e("span",null,"Surge",-1)])]),e("div",{class:"import-item",onClick:a[11]||(a[11]=d=>H("quantumult-x"))},[...a[31]||(a[31]=[e("div",{class:"q-icon",title:"Quantumult X"},[e("img",{src:Ls,alt:"Quantumult X"})],-1),e("span",null,"Quantumult X",-1)])]),e("div",rt,[h(c(Be),{value:((Z=l.value)==null?void 0:Z.subscribe_url)||"https://xboard.link/placeholder",size:88,color:(ke.value,"#1E293B"),"bg-color":ke.value?"#FFFFFF":"transparent",status:(ee=l.value)!=null&&ee.subscribe_url?"active":"loading"},null,8,["value","color","bg-color","status"]),e("p",null,t(s.$t("dashboard.home.scanToImport")),1)])])])]),e("div",lt,[e("h4",null,t(s.$t("dashboard.home.clientDownload")),1),e("div",nt,[(o(!0),r(T,null,G(oe.value,(d,p)=>(o(),r("div",{key:p,class:"platform-group"},[(o(!0),r(T,null,G(d.clients,v=>(o(),r("div",{key:v.name,class:"client-item-row"},[e("a",{href:v.url,target:"_blank",class:"download-link"},[e("img",{src:v.icon,alt:v.name},null,8,dt),e("div",ct,[e("span",ut,t(v.name),1),e("span",ht,t(v.platform),1)])],8,it),e("a",{onClick:n=>je(v),class:"doc-btn-small"},[h(_,{size:18}),e("span",null,t(s.$t("dashboard.home.usageDocs")),1)],8,pt)]))),128))]))),128))])])])])]),h(f,{open:Q.value,"onUpdate:open":a[13]||(a[13]=d=>Q.value=d),footer:null,width:650,class:"notice-modal",centered:""},{title:O(()=>{var d;return[e("div",vt,[e("div",_t,[h(c(Ie),{size:18})]),e("span",mt,t((d=R.value)==null?void 0:d.title),1)])]}),default:O(()=>{var d;return[a[32]||(a[32]=e("div",{class:"modal-mesh"},null,-1)),x.value?(o(),r("div",{key:0,class:se(["promo-card-wrapper",x.value.theme||"default"])},[e("div",ft,[e("div",bt,[e("h2",{class:"promo-title",innerHTML:(d=x.value.title)==null?void 0:d.replace(/\\n
31/g,"<br>")},null,8,yt)]),e("div",gt,[e("p",kt,t(x.value.content),1),x.value.code?(o(),r("div",wt,[e("span",Ct,t(s.$t("dashboard.home.recommendCode")),1),e("span",St,t(x.value.code),1)])):C("",!0)]),x.value.btnText?(o(),r("div",$t,[e("button",{class:"promo-btn",onClick:a[12]||(a[12]=p=>He(x.value.btnRoute))},t(x.value.btnText),1)])):C("",!0)])],2)):(o(),r("div",{key:1,class:"notice-detail-content markdown-body",innerHTML:qe.value},null,8,Nt)),e("div",Rt,[e("div",xt,[h(c(F),{size:12}),e("span",null,t(R.value?new Date(R.value.created_at*1e3).toLocaleString():""),1)])])]}),_:1},8,["open"]),h(f,{open:ce.value,"onUpdate:open":a[14]||(a[14]=d=>ce.value=d),footer:null,width:420,class:"checkin-modal",centered:""},{default:O(()=>{var d,p,v,n;return[e("div",Dt,[e("div",Mt,[e("div",zt,[a[33]||(a[33]=e("div",{class:"ripple"},null,-1)),h(c(F),{size:48,class:"main-icon"})]),e("h2",Tt,t((d=y.value)!=null&&d.checked_in_today?s.$t("dashboard.home.checkinSuccess"):s.$t("dashboard.home.dailyCheckin")),1),e("p",Ot,t(s.$t("dashboard.home.checkinRulesDesc")),1
31)]),e("div",Et,[e("div",At,[e("span",Lt,t(((p=y.value)==null?void 0:p.streak_days)||0),1),e("span",It,t(s.$t("dashboard.home.consecutiveDays")),1)])]),y.value?(o(),r("div",Bt,[(o(),r(T,null,G(7,m=>e("div",{key:m,class:se(["streak-dot",{active:m<=(y.value.streak_days-1)%7+1,today:m===(y.value.streak_days-1)%7+1&&y.value.checked_in_today}])},[e("div",Ut,[m<(y.value.streak_days-1)%7+1||m===(y.value.streak_days-1)%7+1&&y.value.checked_in_today?(o(),N(c(Rs),{key:0,size:10})):(o(),r("span",Jt,t(m),1))])],2)),64))])):C("",!0),M.value?(o(),r("div",Vt,[a[34]||(a[34]=e("div",{class:"reward-glow"},null,-1)),e("div",Pt,[e("div",qt,[M.value.type==="traffic"?(o(),N(c(te),{key:0,size:28,class:"reward-icon traffic"})):(o(),N(c(F),{key:1,size:28,class:"reward-icon days"}))]),e("div",Ft,[e("div",Ht,[e("span",Kt,t(M.value.type==="traffic"?s.$t("dashboard.home.trafficReward"):s.$t("dashboard.home.dayReward")),1),((v=y.value)==null?void 0:v.streak_days)>1?(o(),r("span",Gt,"STREAK BONUS")):C("",!0)]),e("span",jt,"+"+t(M.value.value)+" "+t(M.value.unit),1)])])])):C("",!0),e("div",Wt,[h(k,{type:"primary",block:"",size:"large",class:"do-checkin-btn",loading:ue.value,disabled:(n=y.value)==null?void 0:n.checked_in_today,onClick:Ye},{default:O(()=>{var m;return[q(t((m=y.value)!=null&&m.checked_in_today?s.$t("dashboard.home.alreadyCheckin"):s.$t("dashboard.home.checkinNow")),1)]}),_:1},8,["loading","disabled"])])])]}),_:1},8,["open"]),h(f,{open:he.value,"onUpdate:open":a[19]||(a[19]=d=>he.value=d),footer:null,width:460,class:"redeem-modal",centered:""},{default:O(()=>{var d;return[e("div",Qt,[e("div",Xt,[e("div",{class:se(["tab-item",{active:I.value==="redeem"}]),onClick:a[15]||(a[15]=p=>I.value="redeem")},[h(c(ye),{size:16}),e("span",null,t(s.$t("dashboard.settings.redeem")),1)],2),E.value?(o(),r("div",{key:0,class:se(["tab-item",{active:I.value==="history"}]),onClick:a[16]||(a[16]=p=>{I.value="history",es()})},[h(c(Ds),{size:16}),e("span",null,t(s.$t("dashboard.settings.history")),1)],2)):C("",!0)]),I.value==="redeem"?(o(),r("div",Yt,[e("div",Zt,[e("div",eo,[a[35]||(a[35]=e("div",{class:"ripple"},null,-1)),h(c(ye),{size:48,class:"main-icon"})]),z.value?(o(),r("h2",ao,t(s.$t("dashboard.settings.redeemSuccess")),1)):(o(),r("h2",so,t(s.$t("dashboard.settings.redeemGiftCard")),1))]),z.value?(o(),r("div",no,[e("div",io,[h(c(xs),{size:20}),a[36]||(a[36]=e("span",null,"OK",-1))]),e("p",co,t(s.$t("dashboard.settings.redeemSuccess")),1),e("div",uo,[(d=z.value)!=null&&d.rewards?(o(!0),r(T,{key:0},G(z.value.rewards,(p,v)=>(o(),r("div",{key:v,class:"reward-item-simple"},[p.type==="balance"?(o(),N(c(Ae),{key:0,size:16,class:"text-accent-blue"})):p.type==="traffic"?(o(),N(c(te),{key:1,size:16,class:"text-accent-blue"})):p.type==="expire"?(o(),N(c(F),{key:2,size:16,class:"text-accent-blue"})):(o(),N(c(ge),{key:3,size:16,class:"text-accent-blue"})),e("span",ho,[p.type==="balance"?(o(),r(T,{key:0},[q("Â¥"+t(p.value/100),1)],64)):p.type==="traffic"?(o(),r(T,{key:1},[q(t(Re(p.value)),1)],64)):p.type==="expire"?(o(),r(T,{key:2},[q(t(p.value)+t(s.$t("dashboard.home.daysLaterResetShort")),1)],64)):C("",!0),q(" "+t(p.label),1)])]))),128)):(o(),r("div",po,[h(c(te),{size:16}),e("span",null,t(s.$t("dashboard.settings.redeemSuccess")),1)]))]),h(k,{block:"",type:"primary",onClick:a[18]||(a[18]=p=>{z.value=null,S.value=""}),class:"close-result-btn"},{default:O(()=>[q(t(s.$t("common.confirm")),1)]),_:1})])):(o(),r("div",to,[e("div",oo,[us(e("input",{"onUpdate:modelValue":a[17]||(a[17]=p=>S.value=p),type:"text",placeholder:s.$t("dashboard.settings.giftCardPlaceholder"),class:"redeem-input",disabled:X.value,onKeyup:hs(Me,["enter"])},null,40,ro),[[ps,S.value]])]),e("div",lo,[h(k,{type:"primary",block:"",size:"large",class:"do-redeem-btn",loading:X.value,disabled:!S.value,onClick:Me},{default:O(()=>[q(t(X.value?s.$t("dashboard.settings.redeeming"):s.$t("dashboard.settings.redeemBtn")),1)]),_:1},8,["loading","disabled"])])]))])):(o(),r("div",vo,[pe.value?(o(),r("div",_o,[h(U)])):E.value?re.value.length===0?(o(),r("div",fo,[h(c(Le),{size:40}),e("p",null,t(s.$t("dashboard.settings.noHistory")),1)])):(o(),r("div",bo,[(o(!0),r(T,null,G(re.value,p=>(o(),r("div",{key:p.id,class:"history-item glass-card"},[e("div",yo,[p.template_type==="balance"?(o(),N(c(Ae),{key:0,size:18})):p.template_type==="traffic"?(o(),N(c(te),{key:1,size:18})):p.template_type==="expire"?(o(),N(c(F),{key:2,size:18})):(o(),N(c(ge),{key:3,size:18}))]),e("div",go,[e("div",ko,[e("span",wo,t(p.template_name),1),e("span",Co,t(new Date(p.created_at*1e3).toLocaleDateString()),1)]),e("div",So,[e("span",$o,t(p.code),1)])])]))),128))])):(o(),r("div",mo,[h(c(Le),{size:40}),e("p",null,t(s.$t("dashboard.settings.notSupported")),1)]))]))])]}),_:1},8,["open"]),h(f,{open:Y.value,"onUpdate:open":a[20]||(a[20]=d=>Y.value=d),footer:null,width:800,centered:"",class:"knowledge-modal"},{title:O(()=>{var d;return[e("div",No,[h(_,{size:20}),e("span",null,t((d=B.value)==null?void 0:d.title),1)])]}),default:O(()=>[ve.value?(o(),r("div",Ro,[h(U)])):(o(),r("div",{key:1,class:"modal-content markdown-body",innerHTML:We.value},null,8,xo))]),_:1},8,["open"])])}}}),Ho=os(Mo,[["__scopeId","data-v-6f80298f"]]);export{Ho 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.