fix(push): load full server list for accurate category selection

Push page previously fetched only 200 servers by ID order, so large categories
like 机器人 showed a handful of machines. Also decouple unset-path panel from
the main category chip filter and align category labels with the servers page.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Nexus Agent
2026-06-09 08:12:50 +08:00
parent 664efb9ed5
commit c366ed5adc
64 changed files with 1093 additions and 17 deletions
@@ -0,0 +1,28 @@
# 2026-06-09 — 推送页按分类全量加载 + 未设路径区独立筛选
## 变更摘要
修复「未设路径服务器改分类后推送不准」:推送页拉取全部子机(不再仅前 200 台);未设路径区块不再继承顶部分类 chip 过滤。
## 动机
- 推送页 `usePushServers` 只请求 `per_page=200`,舰队 >200 台时按分类勾选会漏机或计数错误
- 未设路径列表共用 `listQueryParams()``category`,批量改分类后机器从面板消失,用户误以为未生效,推送页分类也与预期不一致
## 涉及文件
- `frontend/src/composables/push/usePushServers.ts``fetchPagePerPage(..., -1)` 全量;分类 key 与服务器页对齐
- `frontend/src/components/push/PushServerGrid.vue` — 展示 `label`(未分类)
- `frontend/src/pages/ServersPage.vue``unsetListQueryParams()`;批量任务后 `invalidateCachedQuery`
## 迁移 / 重启
无。前端 build 部署即可。
## 验证
```bash
cd frontend && npm run type-check && npx vite build
# 推送页:某分类台数应与服务器页分类 chip 一致(>200 台时尤其)
# 未设路径区:顶部分类筛选时仍显示全部未设路径机器;改分类后仍留在列表直至配置路径
```
@@ -46,7 +46,7 @@
<v-icon size="16" class="mr-1">
{{ isCategoryAllSelected(group.category) ? 'mdi-checkbox-marked' : 'mdi-checkbox-blank-outline' }}
</v-icon>
{{ group.category }}
{{ group.label }}
</v-btn>
<span class="text-caption text-medium-emphasis ml-1">
({{ group.servers.filter(s => selectedIds.has(s.id)).length }}/{{ group.servers.length }})
@@ -100,7 +100,7 @@ defineProps<{
selectAll: boolean
serverSearch: string
serversLoading: boolean
serversByCategory: { category: string; servers: PushServerItem[] }[]
serversByCategory: { category: string; label: string; servers: PushServerItem[] }[]
selectedIds: Set<number>
pushStatus: Record<number, string>
isCategoryAllSelected: (category: string) => boolean
@@ -1,5 +1,6 @@
import { ref, computed, type Ref } from 'vue'
import { http } from '@/api'
import { categoryDisplayLabel } from '@/composables/useServerCategories'
import { fetchPagePerPage } from '@/utils/paginatedFetch'
import type { PushServerItem } from './types'
export function usePushServers(pushStatus: Ref<Record<number, string>>) {
@@ -13,8 +14,8 @@ export function usePushServers(pushStatus: Ref<Record<number, string>>) {
async function loadServers(silent = false) {
if (!silent) serversLoading.value = true
try {
const res = await http.get<{ items: PushServerItem[] }>('/servers/', { per_page: 200 })
servers.value = res.items || []
const res = await fetchPagePerPage<PushServerItem>('/servers/', {}, 1, -1)
servers.value = res.items
} catch {
servers.value = []
} finally {
@@ -55,11 +56,21 @@ export function usePushServers(pushStatus: Ref<Record<number, string>>) {
const serversByCategory = computed(() => {
const groups: Record<string, PushServerItem[]> = {}
for (const s of filteredServers.value) {
const cat = s.category || '未分类'
if (!groups[cat]) groups[cat] = []
groups[cat].push(s)
const key = s.category?.trim() || 'uncategorized'
if (!groups[key]) groups[key] = []
groups[key].push(s)
}
return Object.entries(groups).map(([category, list]) => ({ category, servers: list }))
return Object.entries(groups)
.map(([category, list]) => ({
category,
label: categoryDisplayLabel(category),
servers: list,
}))
.sort((a, b) => {
if (a.category === 'uncategorized') return 1
if (b.category === 'uncategorized') return -1
return a.label.localeCompare(b.label, 'zh')
})
})
function isCategoryAllSelected(category: string): boolean {
+15 -7
View File
@@ -589,7 +589,8 @@
import { ref, computed, watch, onMounted, onBeforeUnmount, type Ref } from 'vue'
import { usePageAutoRefresh } from '@/composables/usePageAutoRefresh'
import { usePageActivateRefresh } from '@/composables/usePageActivateRefresh'
import { CACHE_KEYS, cachedFetch } from '@/composables/useCachedQuery'
import { CACHE_KEYS, cachedFetch, invalidateCachedQuery } from '@/composables/useCachedQuery'
import { toServerApiSort } from '@/utils/serverTableSort'
import { useRouter, useRoute } from 'vue-router'
import { http } from '@/api'
import { useSnackbar } from '@/composables/useSnackbar'
@@ -649,6 +650,7 @@ async function submitServerBatchJob(
onMounted(() => {
offBatchComplete = onScriptExecutionComplete((alert) => {
if (alert.taskKind !== 'server_batch') return
invalidateCachedQuery(CACHE_KEYS.serverCategories)
void Promise.all([loadServers(true), loadUnsetPathServers(true), loadCategories(), loadStats(true)])
})
})
@@ -719,10 +721,19 @@ function batchSelection(scope: BatchScope) {
const scopedSelectedCount = computed(() => batchSelection(batchScope.value).ids.value.size)
/** 未设路径区块独立列表:不受顶部分类 chip 过滤,避免改分类后机器从面板消失 */
function unsetListQueryParams(): Record<string, unknown> {
return {
search: search.value || undefined,
...toServerApiSort(sortBy.value),
target_path_unset: true,
}
}
async function loadAllUnsetPathServers(): Promise<ServerApiItem[]> {
const res = await fetchPagePerPage<ServerApiItem>(
'/servers/',
{ ...listQueryParams(), target_path_unset: true },
unsetListQueryParams(),
1,
-1,
)
@@ -748,7 +759,7 @@ async function loadUnsetPathServers(silent = false) {
try {
const res = await fetchPagePerPage<ServerApiItem>(
'/servers/',
{ ...listQueryParams(), target_path_unset: true },
unsetListQueryParams(),
unsetPathPage.value,
unsetPathItemsPerPage.value,
)
@@ -927,11 +938,8 @@ function toggleGroupAll(groupServers: ServerApiItem[]) {
watch(categoryFilter, () => {
selectedItems.value = []
unsetSelectedItems.value = []
expandedMainIds.value = []
expandedUnsetIds.value = []
unsetPathPage.value = 1
void loadUnsetPathServers()
void loadServers()
})
watch(sortBy, () => {
selectedItems.value = []
+1
View File
@@ -0,0 +1 @@
import{n as e,t}from"./useSnackbar-B9Ji8a2I.js";import{n,t as r}from"./VRow-qy3FYYmr.js";import{Cr as i,Gr as a,Ir as o,Qr as s,Qt as c,Rr as l,Sr as u,Wt as d,X as f,_ as p,_r as m,br as h,ci as g,h as _,ii as v,l as y,m as b,pr as x,vr as S,wr as C,y as w}from"./index-jg6n1uIt.js";import{t as T}from"./usePageActivateRefresh-BDQD0Qsi.js";import{n as E,t as D}from"./dataTable-esDY4cOk.js";import{n as O}from"./paginatedFetch-FUU3igQC.js";import{r as k,t as A}from"./VCard-OsBQX9_f.js";import{t as j}from"./VSelect-BNBaMFHI.js";import{t as M}from"./VDataTableServer-K9P-_xb2.js";var N={class:`font-weight-medium`},P={class:`text-body-2`},F={class:`text-caption text-medium-emphasis`},I=C({name:`AlertsPage`,__name:`AlertsPage`,setup(C){let I=t(),L=s(!1),R=s([]),z=s(0),B=s(1),V=s(20),H=D,U=s(null),W=s(null),G=s([{label:`今日告警`,value:`0`,color:`blue`,icon:`mdi-alert`},{label:`活跃告警`,value:`0`,color:`orange`,icon:`mdi-bell-ring`},{label:`已恢复`,value:`0`,color:`green`,icon:`mdi-check-circle`},{label:`Top 服务器`,value:``,color:`red`,icon:`mdi-server`}]),K=[{label:`CPU`,value:`cpu`},{label:`内存`,value:`memory`},{label:`磁盘`,value:`disk`},{label:`连接`,value:`connection`}],q=[{label:`活跃`,value:`active`},{label:`已恢复`,value:`recovered`}],J=E([{title:`类型`,key:`alert_type`,width:100},{title:`服务器`,key:`server_name`},{title:`详情`,key:`value`},{title:`状态`,key:`is_recovery`,width:100},{title:`时间`,key:`created_at`,width:160}]);async function Y(){try{let e=await c.get(`/alert-history/stats`);G.value[0].value=String(e.today||0),G.value[1].value=String(e.active||0),G.value[2].value=String(e.recovered||0),G.value[3].value=e.top_server||``}catch{I(`加载统计失败`,`error`)}}function X(e){B.value=e,Q()}function Z(e){V.value=e,B.value=1,Q()}async function Q(e=!1){e||(L.value=!0);try{let e=await O(`/alert-history/`,{type:U.value||void 0,status:W.value||void 0},B.value,V.value);R.value=e.items,z.value=e.total,V.value===-1&&(B.value=1)}catch{R.value=[],z.value=0,I(`加载告警列表失败`,`error`)}finally{e||(L.value=!1)}}function $(e){return e===`cpu`||e===`CPU`?`error`:e===`memory`||e===`内存`?`warning`:e===`disk`||e===`磁盘`?`info`:`primary`}function ee(e){return e===`cpu`||e===`CPU`?`mdi-chip`:e===`memory`||e===`内存`?`mdi-memory`:e===`disk`||e===`磁盘`?`mdi-harddisk`:`mdi-lan-disconnect`}async function te(e=!1){await Promise.all([Y(),Q(e)])}return T(e=>te(e)),(t,s)=>(o(),S(e,{fluid:``,class:`pa-6`},{default:a(()=>[i(r,{class:`mb-4`},{default:a(()=>[(o(!0),h(x,null,l(G.value,e=>(o(),S(n,{cols:`12`,sm:`6`,lg:`3`,key:e.label},{default:a(()=>[i(y,{elevation:`0`,lines:`two`,rounded:`lg`,border:``},{default:a(()=>[i(b,null,{append:a(()=>[i(f,{color:e.color,size:`30`},{default:a(()=>[u(g(e.icon),1)]),_:2},1032,[`color`])]),default:a(()=>[i(_,{class:`text-body-small`},{default:a(()=>[u(g(e.label),1)]),_:2},1024),i(_,null,{default:a(()=>[u(g(e.value),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1}),i(A,{elevation:`0`,border:``,rounded:`lg`},{default:a(()=>[i(k,{class:`d-flex align-center`},{default:a(()=>[s[4]||=u(` 告警历史 `,-1),i(p),i(j,{modelValue:U.value,"onUpdate:modelValue":[s[0]||=e=>U.value=e,s[1]||=e=>{B.value=1,Q()}],items:K,"item-title":`label`,"item-value":`value`,label:`类型`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},clearable:``},null,8,[`modelValue`]),i(j,{modelValue:W.value,"onUpdate:modelValue":[s[2]||=e=>W.value=e,s[3]||=e=>{B.value=1,Q()}],items:q,"item-title":`label`,"item-value":`value`,label:`状态`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},class:`ml-3`,clearable:``},null,8,[`modelValue`])]),_:1}),i(M,{items:R.value,headers:v(J),"items-length":z.value,loading:L.value,page:B.value,"items-per-page":V.value,"items-per-page-options":v(H),hover:``,density:`comfortable`,"onUpdate:page":X,"onUpdate:itemsPerPage":Z},{"item.alert_type":a(({item:e})=>[i(w,{color:$(e.alert_type),size:`small`,variant:`tonal`,label:``},{prepend:a(()=>[i(f,{size:`12`},{default:a(()=>[u(g(ee(e.alert_type)),1)]),_:2},1024)]),default:a(()=>[u(` `+g(e.alert_type),1)]),_:2},1032,[`color`])]),"item.server_name":a(({item:e})=>[m(`span`,N,g(e.server_name),1)]),"item.value":a(({item:e})=>[m(`span`,P,g(e.value),1)]),"item.is_recovery":a(({item:e})=>[e.is_recovery?(o(),S(w,{key:0,color:`success`,size:`small`,variant:`tonal`,label:``},{default:a(()=>[...s[5]||=[u(`已恢复`,-1)]]),_:1})):(o(),S(w,{key:1,color:`error`,size:`small`,variant:`tonal`,label:``},{default:a(()=>[...s[6]||=[u(`告警中`,-1)]]),_:1}))]),"item.created_at":a(({item:e})=>[m(`span`,F,g(v(d)(e.created_at)),1)]),"no-data":a(()=>[...s[7]||=[m(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`,`items-per-page-options`])]),_:1})]),_:1}))}});export{I as default};
+1
View File
@@ -0,0 +1 @@
import{n as e,t}from"./useSnackbar-B9Ji8a2I.js";import{Cr as n,Et as r,Gr as i,Ir as a,P as o,Qr as s,Qt as c,Sr as l,Wt as u,_ as d,_r as f,ci as p,fr as m,ii as h,vr as g,wr as _,y as v,yr as y}from"./index-jg6n1uIt.js";import{t as b}from"./usePageActivateRefresh-BDQD0Qsi.js";import{n as x}from"./dataTable-esDY4cOk.js";import{r as S,t as C}from"./VCard-OsBQX9_f.js";import{t as w}from"./VSelect-BNBaMFHI.js";import{t as T}from"./VTextField-aYfLTeRp.js";import{t as E}from"./VDataTableServer-K9P-_xb2.js";import{a as D,n as O,r as k,t as A}from"./auditNormalize-DWYIxo0q.js";var j=new Set([`batch_install_agent`,`batch_upgrade_agent`,`batch_uninstall_agent`,`batch_detect_path`,`batch_health_check`,`batch_update_category`,`batch_server_op`]);function M(e){return j.has(e)}function N(e){let t=(e||``).trim();if(!t.startsWith(`{`))return null;try{let e=JSON.parse(t);return typeof e.job_id!=`number`||!e.summary?null:e}catch{return null}}function P(e){let t=[e.summary],n=e.failures||[];if(n.length){let e=n.slice(0,3).map(e=>e.server_name).join(``);t.push(`失败: ${e}${n.length>3?``:``}`)}return t.join(` · `)}var F={class:`font-weight-medium`},I={class:`text-body-2`},L={class:`d-flex align-center ga-2 flex-wrap`},R={class:`text-body-2 text-medium-emphasis`,style:{"max-width":`360px`}},z={class:`text-caption text-medium-emphasis`},B={class:`text-caption text-medium-emphasis`},V=_({name:`AuditPage`,__name:`AuditPage`,setup(_){let j=t(),V=s(!1),H=s([]),U=s(0),W=s(1),G=s(null),K=s(``),q=s(``),J=O,Y=x([{title:`操作`,key:`action`,width:100},{title:`用户`,key:`admin_username`,width:100},{title:`目标`,key:`target`,width:140},{title:`详情`,key:`detail`},{title:`IP`,key:`ip_address`,width:120},{title:`时间`,key:`created_at`,width:160}]);async function X(e=!1){e||(V.value=!0);try{let e=(W.value-1)*50,t=await c.get(`/audit/`,{limit:50,offset:e,action:G.value||void 0,admin_username:K.value||void 0,date_from:q.value||void 0});H.value=A(t.items||[]),U.value=t.total||0}catch{H.value=[],e||j(`加载审计日志失败`,`error`)}finally{e||(V.value=!1)}}function Z(e){return e.startsWith(`create`)||e===`login`?`success`:e.startsWith(`update`)?`info`:e.startsWith(`delete`)||e===`logout`?`error`:e.includes(`execute`)||e.includes(`push`)||e.includes(`retry`)?`warning`:`primary`}function Q(e){return M(e.action)?N(e.detail):null}function $(e){let t=Q(e);return t?P(t):(e.detail||``).trim()||``}function ee(e){r(e.job_id,e.summary)}return b(e=>X(e)),(t,r)=>(a(),g(e,{fluid:``,class:`pa-6`},{default:i(()=>[n(C,{elevation:`0`,border:``,rounded:`lg`},{default:i(()=>[n(S,{class:`d-flex align-center`},{default:i(()=>[r[7]||=l(` 审计日志 `,-1),n(d),n(w,{modelValue:G.value,"onUpdate:modelValue":[r[0]||=e=>G.value=e,r[1]||=e=>{W.value=1,X()}],items:h(J),"item-title":`label`,"item-value":`value`,label:`操作类型`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`200px`},clearable:``},null,8,[`modelValue`,`items`]),n(T,{modelValue:K.value,"onUpdate:modelValue":[r[2]||=e=>K.value=e,r[3]||=e=>{W.value=1,X()}],"prepend-inner-icon":`mdi-account`,label:`用户`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},class:`ml-3`,clearable:``},null,8,[`modelValue`]),n(T,{modelValue:q.value,"onUpdate:modelValue":[r[4]||=e=>q.value=e,r[5]||=e=>{W.value=1,X()}],"prepend-inner-icon":`mdi-calendar`,label:`日期`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`160px`},class:`ml-3`,type:`date`,clearable:``},null,8,[`modelValue`])]),_:1}),n(E,{items:H.value,headers:h(Y),"items-length":U.value,loading:V.value,page:W.value,"items-per-page":50,hover:``,density:`compact`,"onUpdate:page":r[6]||=e=>{W.value=e,X()}},{"item.action":i(({item:e})=>[n(v,{color:Z(e.action),size:`small`,variant:`tonal`,label:``},{default:i(()=>[l(p(h(k)(e.action)),1)]),_:2},1032,[`color`])]),"item.admin_username":i(({item:e})=>[f(`span`,F,p(e.admin_username),1)]),"item.target":i(({item:e})=>[f(`span`,I,p(h(D)(e.resource_type))+p(e.resource_id?` #${e.resource_id}`:``),1)]),"item.detail":i(({item:e})=>[f(`div`,L,[f(`span`,R,p($(e)),1),Q(e)?(a(),g(o,{key:0,size:`x-small`,variant:`tonal`,color:`primary`,onClick:m(t=>ee(Q(e)),[`stop`])},{default:i(()=>[...r[8]||=[l(` 查看结果 `,-1)]]),_:1},8,[`onClick`])):y(``,!0)])]),"item.ip_address":i(({item:e})=>[f(`span`,z,p(e.ip_address||``),1)]),"item.created_at":i(({item:e})=>[f(`span`,B,p(h(u)(e.created_at)),1)]),"no-data":i(()=>[...r[9]||=[f(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`])]),_:1})]),_:1}))}});export{V as default};
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{Ir as e,Pr as t,br as n,rn as r,wr as i}from"./index-jg6n1uIt.js";var a=i({name:`CredentialsPage`,__name:`CredentialsPage`,setup(i){let a=r();return t(()=>{a.replace({path:`/servers`,query:{credentials:`1`}})}),(t,r)=>(e(),n(`div`))}});export{a as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2
View File
@@ -0,0 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-D76RrnmD.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/index-jg6n1uIt.js","assets/index-DUUkodzN.css","assets/VCard-OsBQX9_f.js","assets/VCard-BCYbpv-w.css","assets/VRow-qy3FYYmr.js","assets/VRow-DIr3-SqU.css","assets/useSnackbar-B9Ji8a2I.js","assets/useSnackbar-ku9EbwM-.css","assets/VSkeletonLoader-FEUUGoub.js","assets/VSkeletonLoader-B03HMi2d.css","assets/usePageActivateRefresh-BDQD0Qsi.js","assets/auditNormalize-DWYIxo0q.js","assets/DashboardPage-BQwD7zA1.css"])))=>i.map(i=>d[i]);
import{Cr as e,Fr as t,Gr as n,Ir as r,Jt as i,N as a,P as o,Pr as s,Qr as c,Qt as l,Sr as u,Ur as d,Xt as f,Yt as p,_r as m,br as h,ci as g,fr as _,gr as v,nn as ee,qt as y,rn as b,si as x,vr as S,wr as C,y as w,yr as T}from"./index-jg6n1uIt.js";import{t as E}from"./VCard-OsBQX9_f.js";import{t as D}from"./VTextField-aYfLTeRp.js";import{t as O}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as k}from"./VForm-D64lkuZh.js";var A={class:`login-page`},j={key:0,class:`login-center`},M={key:2,class:`text-center mt-4`},N=O(C({name:`LoginPage`,__name:`LoginPage`,setup(C){let O=ee(),N=b(),te=i(),P=c(`checking`),F=c(``),I=c(``),L=c(``),R=c(!1),z=c(!1),B=c(``),V=c(!1),H=c(0),U=c(null),W=c([]),G=c(0),K=null,q=v(()=>P.value===`checking`?{backgroundColor:`#0a0a12`}:W.value.length===0?{backgroundImage:`linear-gradient(135deg, #1a237e 0%, #0d47a1 40%, #1565c0 100%)`}:{backgroundImage:`url(${W.value[G.value]})`});async function J(){try{let e=await l.get(`/settings/bing-wallpapers`);e?.urls?.length&&(W.value=e.urls,G.value=Math.floor(Math.random()*e.urls.length))}catch{}}function Y(){K&&clearInterval(K),!(W.value.length<=1)&&(K=setInterval(()=>{G.value=(G.value+1)%W.value.length},36e5))}async function X(){P.value=`checking`;try{return await l.get(`/auth/login-access`),P.value=`form`,!0}catch{return P.value=`blocked`,!1}}function Z(){P.value===`form`&&y(()=>import(`./DashboardPage-D76RrnmD.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]))}d(P,e=>{e===`form`&&Z()}),s(async()=>{await X(),await J(),Y()}),t(()=>{K&&clearInterval(K),$&&clearInterval($)});let Q=c(Date.now()),$=null,ne=v(()=>{if(!U.value)return 0;let e=new Date(U.value).getTime()-Q.value;return Math.max(0,Math.ceil(e/6e4))});d(U,e=>{$&&=(clearInterval($),null),e&&($=setInterval(()=>{Q.value=Date.now()},3e4))});async function re(){if(!F.value||!I.value){B.value=`请输入用户名和密码`;return}z.value=!0,B.value=``;try{await te.login(F.value,I.value,V.value?L.value:void 0);let e=O.query.redirect||`/`,t=e.startsWith(`/`)&&!e.startsWith(`//`)?e:`/`;await N.replace(t)}catch(e){if(e instanceof f)V.value=!0,B.value=e.message;else if(e instanceof p){if(e.status===403){P.value=`blocked`;return}e.status===429?(U.value=new Date(Date.now()+900*1e3).toISOString(),B.value=`登录尝试过多,账户已锁定 15 分钟`):(H.value++,B.value=e.message)}else B.value=`网络错误,请重试`}finally{z.value=!1}}return(t,i)=>(r(),h(`div`,A,[m(`div`,{class:`wallpaper-bg`,style:x(q.value)},null,4),i[6]||=m(`div`,{class:`wallpaper-overlay`},null,-1),P.value===`form`?(r(),h(`div`,j,[e(E,{elevation:`0`,rounded:`xl`,class:`login-card pa-10`,border:``},{default:n(()=>[B.value?(r(),S(a,{key:0,type:`error`,density:`compact`,class:`mb-4`,closable:``,"onClick:close":i[0]||=e=>B.value=``,rounded:`lg`,variant:`tonal`},{default:n(()=>[u(g(B.value),1)]),_:1})):T(``,!0),U.value?(r(),S(a,{key:1,type:`warning`,density:`compact`,class:`mb-4`,rounded:`lg`,variant:`tonal`},{default:n(()=>[u(` 账户已锁定,请 `+g(ne.value)+` 分钟后重试 `,1)]),_:1})):T(``,!0),e(k,{onSubmit:_(re,[`prevent`])},{default:n(()=>[e(D,{modelValue:F.value,"onUpdate:modelValue":i[1]||=e=>F.value=e,label:`用户名`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-account-outline`,disabled:z.value,class:`mb-4`,autocomplete:`username`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`disabled`]),e(D,{modelValue:I.value,"onUpdate:modelValue":i[2]||=e=>I.value=e,label:`密码`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-lock-outline`,"append-inner-icon":R.value?`mdi-eye`:`mdi-eye-off`,type:R.value?`text`:`password`,"onClick:appendInner":i[3]||=e=>R.value=!R.value,disabled:z.value,class:`mb-4`,autocomplete:`current-password`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`append-inner-icon`,`type`,`disabled`]),V.value?(r(),S(D,{key:0,modelValue:L.value,"onUpdate:modelValue":i[4]||=e=>L.value=e,label:`TOTP 验证码`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-shield-key-outline`,disabled:z.value,class:`mb-4`,autocomplete:`one-time-code`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`disabled`])):T(``,!0),e(o,{type:`submit`,color:`primary`,variant:`flat`,block:``,size:`large`,loading:z.value,disabled:!!U.value,rounded:`lg`,class:`mt-2`,height:`48`},{default:n(()=>[...i[5]||=[u(` 登录 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1}),H.value>0&&!U.value?(r(),h(`div`,M,[e(w,{size:`small`,variant:`tonal`,color:`warning`,label:``},{default:n(()=>[u(` 已失败 `+g(H.value)+``,1)]),_:1})])):T(``,!0)]),_:1})])):T(``,!0)]))}}),[[`__scopeId`,`data-v-5c1d22f2`]]);export{N as default};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{n as e,t}from"./useSnackbar-B9Ji8a2I.js";import{Cr as n,Gr as r,Ir as i,P as a,Qr as o,Qt as s,Sr as c,Wt as l,_ as u,_r as d,ci as f,ii as p,vr as m,wr as h,y as g,yr as _}from"./index-jg6n1uIt.js";import{t as v}from"./usePageActivateRefresh-BDQD0Qsi.js";import{n as y}from"./dataTable-esDY4cOk.js";import{a as b,n as x,r as S,t as C}from"./VCard-OsBQX9_f.js";import{t as w}from"./VSelect-BNBaMFHI.js";import{t as T}from"./VDataTableServer-K9P-_xb2.js";import{t as E}from"./VDialog-CVCmUpeB.js";import{t as D}from"./usePageAutoRefresh-I6VQMBJ4.js";var O={class:`font-weight-medium text-truncate d-inline-block`,style:{"max-width":`240px`}},k={class:`text-medium-emphasis`},A={class:`text-medium-emphasis`},j={class:`text-caption text-medium-emphasis`},M={class:`text-caption text-medium-emphasis`},N=h({name:`RetriesPage`,__name:`RetriesPage`,setup(h){let N=t(),P=o(!1),F=o([]),I=o(0),L=o(1),R=o(null),z=o(!1),B=o(null),V=[{label:`待重试`,value:`pending`},{label:`重试中`,value:`retrying`},{label:`成功`,value:`success`},{label:`失败`,value:`failed`}],H=y([{title:`状态`,key:`status`,width:100},{title:`任务`,key:`operation`},{title:`服务器`,key:`server_name`},{title:`次数`,key:`retry_count`,width:100},{title:`下次重试`,key:`next_retry_at`,width:140},{title:`创建时间`,key:`created_at`,width:160},{title:``,key:`actions`,width:120,align:`end`}]);async function U(e=!1){e||(P.value=!0);try{let e=(await s.getList(`/retries/`,{limit:200})).items||[];R.value&&(e=e.filter(e=>e.status===R.value)),I.value=e.length;let t=(L.value-1)*20;F.value=e.slice(t,t+20)}catch(t){e||(F.value=[],I.value=0,N(t instanceof Error?t.message:`加载重试队列失败`,`error`))}finally{e||(P.value=!1)}}async function W(e){try{await s.post(`/retries/${e.id}/retry`),U(),N(`重试已触发`)}catch(e){N(e.message||`操作失败`,`error`)}}function G(e){B.value=e.id,z.value=!0}async function K(){if(B.value)try{await s.delete(`/retries/${B.value}`),z.value=!1,U(),N(`已删除`)}catch(e){N(e.message||`删除失败`,`error`)}}function q(e){return e===`success`?`success`:e===`failed`?`error`:e===`retrying`?`warning`:`info`}function J(e){return e===`pending`?`待重试`:e===`retrying`?`重试中`:e===`success`?`成功`:e===`failed`?`失败`:e}function Y(e){return e.source_path&&e.target_path?`${e.source_path}${e.target_path}`:e.source_path||e.target_path||`文件推送`}return D(()=>U(!0),15e3),v(e=>U(e)),(t,o)=>(i(),m(e,{fluid:``,class:`pa-6`},{default:r(()=>[n(C,{elevation:`0`,border:``,rounded:`lg`},{default:r(()=>[n(S,{class:`d-flex align-center text-h6`},{default:r(()=>[o[5]||=c(` 重试队列 `,-1),n(u),n(w,{modelValue:R.value,"onUpdate:modelValue":[o[0]||=e=>R.value=e,o[1]||=e=>{L.value=1,U()}],items:V,"item-title":`label`,"item-value":`value`,label:`状态筛选`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`160px`},clearable:``},null,8,[`modelValue`])]),_:1}),n(T,{items:F.value,headers:p(H),"items-length":I.value,loading:P.value,page:L.value,"items-per-page":20,hover:``,density:`comfortable`,"onUpdate:page":o[2]||=e=>{L.value=e,U()}},{"item.status":r(({item:e})=>[n(g,{color:q(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:r(()=>[c(f(J(e.status)),1)]),_:2},1032,[`color`])]),"item.operation":r(({item:e})=>[d(`span`,O,f(Y(e)),1)]),"item.server_name":r(({item:e})=>[d(`span`,k,f(e.server_name||``),1)]),"item.retry_count":r(({item:e})=>[d(`span`,A,f(e.retry_count||0)+` / `+f(e.max_retries||3),1)]),"item.next_retry_at":r(({item:e})=>[d(`span`,j,f(p(l)(e.next_retry_at)),1)]),"item.created_at":r(({item:e})=>[d(`span`,M,f(p(l)(e.created_at)),1)]),"item.actions":r(({item:e})=>[e.status===`pending`||e.status===`failed`?(i(),m(a,{key:0,variant:`text`,size:`x-small`,color:`primary`,density:`compact`,onClick:t=>W(e)},{default:r(()=>[...o[6]||=[c(` 重试 `,-1)]]),_:1},8,[`onClick`])):_(``,!0),n(a,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>G(e)},{default:r(()=>[...o[7]||=[c(` 删除 `,-1)]]),_:1},8,[`onClick`])]),"no-data":r(()=>[...o[8]||=[d(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`])]),_:1}),n(E,{modelValue:z.value,"onUpdate:modelValue":o[4]||=e=>z.value=e,"max-width":`400`},{default:r(()=>[n(C,{border:``},{default:r(()=>[n(S,null,{default:r(()=>[...o[9]||=[c(`确认删除`,-1)]]),_:1}),n(x,null,{default:r(()=>[...o[10]||=[c(`确定要删除此重试任务吗?`,-1)]]),_:1}),n(b,null,{default:r(()=>[n(u),n(a,{variant:`text`,onClick:o[3]||=e=>z.value=!1},{default:r(()=>[...o[11]||=[c(`取消`,-1)]]),_:1}),n(a,{color:`error`,variant:`flat`,onClick:K},{default:r(()=>[...o[12]||=[c(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{N as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{n as e,t}from"./VRow-qy3FYYmr.js";import{Cr as n,Dr as r,Gr as i,Hr as a,Ir as o,P as s,Qr as c,Rr as l,Sr as u,X as d,Y as f,_r as p,br as m,ci as h,gr as g,ii as _,pr as v,si as y,vr as b,wr as x,y as S,yr as C}from"./index-jg6n1uIt.js";import{t as w}from"./VCard-OsBQX9_f.js";import{t as T}from"./VCheckbox-DGNE5HeD.js";import{t as E}from"./VTextField-aYfLTeRp.js";import{o as D}from"./labels-C-A2d08W.js";import{t as O}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as k}from"./useServerCategories-CoKjlTlC.js";var A={class:`server-category-picker`},j={class:`d-flex align-center flex-wrap ga-2 mb-2`},M={key:0,class:`text-center text-medium-emphasis py-4`},N={class:`d-flex align-center px-1 mb-1`},P={class:`text-caption text-medium-emphasis ml-1`},F={class:`d-flex align-center ga-2`},I={class:`text-body-2 font-weight-medium text-truncate`},L={class:`text-caption text-medium-emphasis text-truncate`},R=O(x({__name:`ServerCategoryPicker`,props:r({servers:{},loading:{type:Boolean,default:!1},maxHeight:{default:`280px`}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:[`update:modelValue`],setup(r){let x=a(r,`modelValue`),O=r,R=c(``),z=g(()=>new Set(x.value)),B=g(()=>{let e=R.value.trim().toLowerCase();return e?O.servers.filter(t=>t.name.toLowerCase().includes(e)||(t.domain||``).toLowerCase().includes(e)||(t.category||``).toLowerCase().includes(e)):O.servers}),V=g(()=>{let e={};for(let t of B.value){let n=t.category?.trim()||`uncategorized`;e[n]||(e[n]=[]),e[n].push(t)}return Object.entries(e).map(([e,t])=>({category:e,label:k(e),servers:[...t].sort((e,t)=>e.name.localeCompare(t.name,`zh`))})).sort((e,t)=>e.category===`uncategorized`?1:t.category===`uncategorized`?-1:e.label.localeCompare(t.label,`zh`))}),H=g(()=>{let e=B.value;return e.length>0&&e.every(e=>z.value.has(e.id))});function U(e){return e.servers.filter(e=>z.value.has(e.id)).length}function W(e){let t=V.value.find(t=>t.category===e);return!t||t.servers.length===0?!1:t.servers.every(e=>z.value.has(e.id))}function G(e){x.value=[...e]}function K(e){let t=new Set(x.value);t.has(e)?t.delete(e):t.add(e),G(t)}function q(e){let t=V.value.find(t=>t.category===e);if(!t)return;let n=new Set(x.value),r=t.servers.every(e=>n.has(e.id));for(let e of t.servers)r?n.delete(e.id):n.add(e.id);G(n)}function J(){let e=B.value,t=new Set(x.value),n=e.length>0&&e.every(e=>t.has(e.id));for(let r of e)n?t.delete(r.id):t.add(r.id);G(t)}return(a,c)=>(o(),m(`div`,A,[p(`div`,j,[n(T,{"model-value":H.value,label:`全选`,density:`compact`,"hide-details":``,"onUpdate:modelValue":J},null,8,[`model-value`]),n(E,{modelValue:R.value,"onUpdate:modelValue":c[0]||=e=>R.value=e,"prepend-inner-icon":`mdi-magnify`,label:`搜索服务器`,density:`compact`,"hide-details":``,variant:`outlined`,rounded:``,style:{"max-width":`220px`},clearable:``},null,8,[`modelValue`]),x.value.length>0?(o(),b(S,{key:0,size:`small`,color:`primary`,variant:`tonal`,label:``},{default:i(()=>[u(` 已选 `+h(x.value.length)+``,1)]),_:1})):C(``,!0),r.loading?(o(),b(f,{key:1,indeterminate:``,size:`18`,width:`2`})):C(``,!0)]),p(`div`,{class:`picker-scroll`,style:y({maxHeight:r.maxHeight})},[!r.loading&&V.value.length===0?(o(),m(`div`,M,` 暂无服务器 `)):C(``,!0),(o(!0),m(v,null,l(V.value,r=>(o(),m(`div`,{key:r.category,class:`mb-3`},[p(`div`,N,[n(s,{size:`x-small`,variant:`text`,color:W(r.category)?`primary`:`default`,onClick:e=>q(r.category)},{default:i(()=>[n(d,{size:`16`,class:`mr-1`},{default:i(()=>[u(h(W(r.category)?`mdi-checkbox-marked`:`mdi-checkbox-blank-outline`),1)]),_:2},1024),u(` `+h(r.label),1)]),_:2},1032,[`color`,`onClick`]),p(`span`,P,` (`+h(U(r))+`/`+h(r.servers.length)+`) `,1)]),n(t,{dense:``},{default:i(()=>[(o(!0),m(v,null,l(r.servers,t=>(o(),b(e,{key:t.id,cols:`12`,sm:`6`},{default:i(()=>[n(w,{color:z.value.has(t.id)?`primary`:void 0,variant:z.value.has(t.id)?`tonal`:`outlined`,rounded:`lg`,class:`pa-2 cursor-pointer`,onClick:e=>K(t.id)},{default:i(()=>[p(`div`,F,[n(d,{color:_(D)(t.is_online),size:`10`},{default:i(()=>[...c[1]||=[u(`mdi-circle`,-1)]]),_:1},8,[`color`]),p(`span`,I,h(t.name),1)]),p(`div`,L,h(t.domain),1)]),_:2},1032,[`color`,`variant`,`onClick`])]),_:2},1024))),128))]),_:2},1024)]))),128))],4)]))}}),[[`__scopeId`,`data-v-4d1df917`]]);export{R as t};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
@layer vuetify-components{.v-combobox--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:0}.v-combobox .v-field .v-text-field__prefix,.v-combobox .v-field .v-text-field__suffix,.v-combobox .v-field .v-field__input,.v-combobox .v-field .v-field__input>input,.v-combobox .v-field.v-field{cursor:text}.v-combobox .v-field .v-field__input>input{flex:1}.v-combobox .v-field input{min-width:64px}.v-combobox .v-field:not(.v-field--focused) input{min-width:0}.v-combobox .v-field--dirty .v-combobox__selection{margin-inline-end:2px}.v-combobox .v-combobox__selection-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.v-combobox__content{box-shadow:0px 1px 2px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity,.3)), 0px 2px 6px 2px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity,.15));--v-elevation-overlay:color-mix(in srgb, var(--v-elevation-overlay-color) 4%, transparent);overflow:hidden}.v-menu>.v-overlay__content.v-combobox__content{border-radius:4px}.v-combobox__content>.v-sheet{flex-direction:column;display:flex}.v-combobox__mask{background:rgb(var(--v-theme-surface-light))}.v-combobox__selection{height:1.5rem;letter-spacing:inherit;line-height:inherit;align-items:center;max-width:calc(100% - 4px);display:inline-flex}.v-combobox__selection:first-child{margin-inline-start:0}.v-combobox--selecting-index .v-combobox__selection{opacity:var(--v-medium-emphasis-opacity)}.v-combobox--selecting-index .v-combobox__selection--selected{opacity:1}.v-combobox--selecting-index .v-field__input>input{caret-color:#0000}.v-combobox--single:not(.v-combobox--selection-slot).v-text-field input{width:100%;padding-inline:inherit;flex:1;position:absolute;left:0;right:0}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--active input{transition:none}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--dirty:not(.v-field--focused) input,.v-combobox--single:not(.v-combobox--selection-slot) .v-field--focused .v-combobox__selection{opacity:0}.v-combobox__menu-icon{margin-inline-start:4px;transition:all .2s cubic-bezier(.4,0,.2,1)}.v-combobox--active-menu .v-combobox__menu-icon{transform:rotate(180deg)}}.server-inline-detail[data-v-599683b3]{background:color-mix(in srgb, rgb(var(--v-theme-surface)) 95%, rgb(var(--v-theme-on-surface)));color:rgb(var(--v-theme-on-surface))}.server-inline-detail[data-v-599683b3] .v-list-item-title{color:rgb(var(--v-theme-on-surface))}.server-inline-detail[data-v-599683b3] .v-list-item-subtitle{color:rgba(var(--v-theme-on-surface), .72)}.server-unset-path-table[data-v-ffa01e2f] .v-data-table__td--expand-column,.server-unset-path-table[data-v-ffa01e2f] .v-data-table-column--expand,.server-unset-path-table[data-v-ffa01e2f] th.v-data-table__th--expand{width:0!important;padding:0!important;display:none!important}.server-unset-path-table[data-v-ffa01e2f] tr.v-data-table__expanded__row>td{border-bottom:none;background:0 0!important}.server-main-table[data-v-0b152f8f] .v-data-table__td--expand-column,.server-main-table[data-v-0b152f8f] .v-data-table-column--expand,.server-main-table[data-v-0b152f8f] th.v-data-table__th--expand{width:0!important;padding:0!important;display:none!important}.server-main-table[data-v-0b152f8f] tr.v-data-table__expanded__row>td{border-bottom:none;background:0 0!important}.servers-category-panels[data-v-0b152f8f] .v-expansion-panel-text__wrapper{background:color-mix(in srgb, rgb(var(--v-theme-surface)) 95%, rgb(var(--v-theme-on-surface)));color:rgb(var(--v-theme-on-surface))}.servers-category-panels[data-v-0b152f8f] .v-table{color:rgb(var(--v-theme-on-surface));background:0 0}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{Bn as e,Cr as t,En as n,Or as r,Qr as i,Vr as a,er as o,fn as s,hn as c,r as l,xn as u}from"./index-jg6n1uIt.js";import{d,f}from"./VSelect-BNBaMFHI.js";import{l as p,m,u as h}from"./VTextField-aYfLTeRp.js";var g=n({...o(h(),[`direction`]),...o(f(),[`inline`])},`VCheckbox`),_=u()({name:`VCheckbox`,inheritAttrs:!1,props:g(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(n,{attrs:o,slots:u}){let f=s(n,`modelValue`),{isFocused:h,focus:g,blur:_}=m(n),v=i(),y=a();return c(()=>{let[i,a]=e(o),s=p.filterProps(n),c=d.filterProps(n);return t(p,r({ref:v,class:[`v-checkbox`,n.class]},i,s,{modelValue:f.value,"onUpdate:modelValue":e=>f.value=e,id:n.id||`checkbox-${y}`,focused:h.value,style:n.style}),{...u,default:({id:e,messagesId:n,isDisabled:i,isReadonly:o,isValid:s})=>t(d,r(c,{id:e.value,"aria-describedby":n.value,disabled:i.value,readonly:o.value},a,{error:s.value===!1,modelValue:f.value,"onUpdate:modelValue":e=>f.value=e,onFocus:g,onBlur:_}),u)})}),l({},v)}});export{_ as t};
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l as ee,m as l,n as u,o as d,p as f,r as te,s as p,u as m,v as h,y as g}from"./VDataTable-Duw_t2F4.js";import{Cr as _,En as v,Lr as ne,Or as y,Sn as b,_r as x,er as S,gr as C,hn as w,ni as T,pr as E,ti as D,v as O,xn as k}from"./index-jg6n1uIt.js";var A=v({itemsLength:{type:[Number,String],required:!0},...g(),...u(),...e()},`VDataTableServer`),j=k()({name:`VDataTableServer`,props:A(),emits:{"update:modelValue":e=>!0,"update:page":e=>!0,"update:itemsPerPage":e=>!0,"update:sortBy":e=>!0,"update:options":e=>!0,"update:expanded":e=>!0,"update:groupBy":e=>!0},setup(e,{attrs:u,slots:g}){let{groupBy:v}=r(e),{initialSortOrder:k,sortBy:A,multiSort:j,mustSort:M}=a(e),{page:N,itemsPerPage:P}=h(e),{disableSort:F}=T(e),I=C(()=>parseInt(e.itemsLength,10)),{columns:L,headers:R}=s(e,{groupBy:v,showSelect:D(()=>e.showSelect),showExpand:D(()=>e.showExpand)}),{items:z}=c(e,L),{toggleSort:B}=f({initialSortOrder:k,sortBy:A,multiSort:j,mustSort:M,page:N}),{opened:V,isGroupOpen:H,toggleGroup:re,extractRows:U}=ee({groupBy:v,sortBy:A,disableSort:F}),{pageCount:W,setItemsPerPage:G,prevPage:K,nextPage:q,setPage:J}=n({page:N,itemsPerPage:P,itemsLength:I}),{flatItems:Y}=m(z,v,V,()=>!!g[`group-summary`]),{isSelected:X,select:ie,selectAll:Z,toggleSelect:ae,someSelected:oe,allSelected:se}=l(e,{allItems:z,currentPage:z}),{isExpanded:ce,toggleExpand:le}=p(e),Q=C(()=>U(z.value));te({page:N,itemsPerPage:P,sortBy:A,groupBy:v,search:D(()=>e.search)}),ne(`v-data-table`,{toggleSort:B,sortBy:A}),b({VDataTableRows:{hideNoData:D(()=>e.hideNoData),noDataText:D(()=>e.noDataText),loading:D(()=>e.loading),loadingText:D(()=>e.loadingText)}});let $=C(()=>({page:N.value,itemsPerPage:P.value,sortBy:A.value,pageCount:W.value,toggleSort:B,setItemsPerPage:G,prevPage:K,nextPage:q,setPage:J,someSelected:oe.value,allSelected:se.value,isSelected:X,select:ie,selectAll:Z,toggleSelect:ae,isExpanded:ce,toggleExpand:le,isGroupOpen:H,toggleGroup:re,items:Q.value.map(e=>e.raw),internalItems:Q.value,groupedItems:Y.value,columns:L.value,headers:R.value}));w(()=>{let n=o.filterProps(e),r=i.filterProps(S(e,[`multiSort`])),a=d.filterProps(e),s=t.filterProps(e);return _(t,y({class:[`v-data-table`,{"v-data-table--loading":e.loading},e.class],style:e.style},s,{fixedHeader:e.fixedHeader||e.sticky}),{top:()=>g.top?.($.value),default:()=>g.default?g.default($.value):x(E,null,[g.colgroup?.($.value),!e.hideDefaultHeader&&x(`thead`,{key:`thead`,class:`v-data-table__thead`,role:`rowgroup`},[_(i,y(r,{multiSort:!!e.multiSort}),g)]),g.thead?.($.value),!e.hideDefaultBody&&x(`tbody`,{class:`v-data-table__tbody`,role:`rowgroup`},[g[`body.prepend`]?.($.value),g.body?g.body($.value):_(d,y(u,a,{items:Y.value}),g),g[`body.append`]?.($.value)]),g.tbody?.($.value),g.tfoot?.($.value)]),bottom:()=>g.bottom?g.bottom($.value):!e.hideDefaultFooter&&x(E,null,[_(O,null,null),_(o,n,{prepend:g[`footer.prepend`]})])})})}});export{j as t};
+1
View File
@@ -0,0 +1 @@
import{Cr as e,En as t,M as n,Or as r,Q as i,Qr as a,Ur as o,a as s,er as c,fn as l,hn as u,i as d,kr as f,o as p,r as m,xn as h}from"./index-jg6n1uIt.js";var g=t({fullscreen:Boolean,scrollable:Boolean,...c(s({captureFocus:!0,origin:`center center`,scrollStrategy:`block`,transition:{component:n},zIndex:2400,retainFocus:!0}),[`disableInitialFocus`])},`VDialog`),_=h()({name:`VDialog`,props:g(),emits:{"update:modelValue":e=>!0,afterEnter:()=>!0,afterLeave:()=>!0},setup(t,{emit:n,slots:s}){let c=l(t,`modelValue`),{scopeId:h}=p(),g=a();function _(){n(`afterEnter`),(t.scrim||t.retainFocus)&&g.value?.contentEl&&!g.value.contentEl.contains(document.activeElement)&&g.value.contentEl.focus({preventScroll:!0})}function v(){n(`afterLeave`)}return o(c,async e=>{e||(await f(),g.value.activatorEl?.focus({preventScroll:!0}))}),u(()=>{let n=d.filterProps(t),a=r({"aria-haspopup":`dialog`},t.activatorProps),o=r({tabindex:-1},t.contentProps);return e(d,r({ref:g,class:[`v-dialog`,{"v-dialog--fullscreen":t.fullscreen,"v-dialog--scrollable":t.scrollable},t.class],style:t.style},n,{modelValue:c.value,"onUpdate:modelValue":e=>c.value=e,"aria-modal":`true`,activatorProps:a,contentProps:o,height:t.fullscreen?void 0:t.height,width:t.fullscreen?void 0:t.width,maxHeight:t.fullscreen?void 0:t.maxHeight,maxWidth:t.fullscreen?void 0:t.maxWidth,role:`dialog`,onAfterEnter:_,onAfterLeave:v},h),{activator:s.activator,default:(...t)=>e(i,{root:`VDialog`},{default:()=>[s.default?.(...t)]})})}),m({},g)}});export{_ as t};
@@ -0,0 +1 @@
import{Cr as e,En as t,Er as n,I as r,J as i,Kr as a,Lr as o,O as s,Q as c,Sn as l,Tn as u,X as d,_r as f,an as p,c as m,dt as h,et as g,ft as _,gr as v,hn as y,lt as b,mn as x,nt as S,oi as C,on as w,pt as T,q as E,rt as D,s as O,si as k,st as A,ti as j,tr as M,tt as N,ur as P,ut as F,xn as I}from"./index-jg6n1uIt.js";var L=Symbol.for(`vuetify:v-expansion-panel`),R=t({...u(),...O()},`VExpansionPanelText`),z=I()({name:`VExpansionPanelText`,props:R(),setup(t,{slots:r}){let i=n(L);if(!i)throw Error(`[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel`);let{hasContent:o,onAfterLeave:c}=m(t,i.isSelected);return y(()=>e(s,{onAfterLeave:c},{default:()=>[a(f(`div`,{class:C([`v-expansion-panel-text`,t.class]),style:k(t.style)},[r.default&&o.value&&f(`div`,{class:`v-expansion-panel-text__wrapper`},[r.default?.()])]),[[P,i.isSelected.value]])]})),{}}}),B=t({color:String,expandIcon:{type:x,default:`$expand`},collapseIcon:{type:x,default:`$collapse`},hideActions:Boolean,focusable:Boolean,static:Boolean,ripple:{type:[Boolean,Object],default:!1},readonly:Boolean,...u(),...E()},`VExpansionPanelTitle`),V=I()({name:`VExpansionPanelTitle`,directives:{vRipple:r},props:B(),setup(t,{slots:o}){let s=n(L);if(!s)throw Error(`[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel`);let{backgroundColorClasses:l,backgroundColorStyles:u}=A(()=>t.color),{dimensionStyles:p}=i(t),m=v(()=>({collapseIcon:t.collapseIcon,disabled:s.disabled.value,expanded:s.isSelected.value,expandIcon:t.expandIcon,readonly:t.readonly})),h=j(()=>s.isSelected.value?t.collapseIcon:t.expandIcon);return y(()=>a(f(`button`,{class:C([`v-expansion-panel-title`,{"v-expansion-panel-title--active":s.isSelected.value,"v-expansion-panel-title--focusable":t.focusable,"v-expansion-panel-title--static":t.static},l.value,t.class]),style:k([u.value,p.value,t.style]),type:`button`,tabindex:s.disabled.value?-1:void 0,disabled:s.disabled.value,"aria-expanded":s.isSelected.value,onClick:t.readonly?void 0:s.toggle},[f(`span`,{class:`v-expansion-panel-title__overlay`},null),o.default?.(m.value),!t.hideActions&&e(c,{defaults:{VIcon:{icon:h.value}}},{default:()=>[f(`span`,{class:`v-expansion-panel-title__icon`},[o.actions?.(m.value)??e(d,null,null)])]})]),[[r,t.ripple]])),{}}}),H=t({title:String,text:String,bgColor:String,..._(),...g(),...F(),...b(),...B(),...R()},`VExpansionPanel`),U=I()({name:`VExpansionPanel`,props:H(),emits:{"group:selected":e=>!0},setup(t,{slots:n}){let r=D(t,L),{backgroundColorClasses:i,backgroundColorStyles:a}=A(()=>t.bgColor),{elevationClasses:s}=T(t),{roundedClasses:l}=h(t),u=j(()=>r?.disabled.value||t.disabled),d=v(()=>r.group.items.value.reduce((e,t,n)=>(r.group.selected.value.includes(t.id)&&e.push(n),e),[])),p=v(()=>{let e=r.group.items.value.findIndex(e=>e.id===r.id);return!r.isSelected.value&&d.value.some(t=>t-e===1)}),m=v(()=>{let e=r.group.items.value.findIndex(e=>e.id===r.id);return!r.isSelected.value&&d.value.some(t=>t-e===-1)});return o(L,r),y(()=>{let o=!!(n.text||t.text),d=!!(n.title||t.title),h=V.filterProps(t),g=z.filterProps(t);return e(t.tag,{class:C([`v-expansion-panel`,{"v-expansion-panel--active":r.isSelected.value,"v-expansion-panel--before-active":p.value,"v-expansion-panel--after-active":m.value,"v-expansion-panel--disabled":u.value},l.value,i.value,t.class]),style:k([a.value,t.style])},{default:()=>[f(`div`,{class:C([`v-expansion-panel__shadow`,...s.value])},null),e(c,{defaults:{VExpansionPanelTitle:{...h},VExpansionPanelText:{...g}}},{default:()=>[d&&e(V,{key:`title`},{default:()=>[n.title?n.title():t.title]}),o&&e(z,{key:`text`},{default:()=>[n.text?n.text():t.text]}),n.default?.()]})]})}),{groupItem:r}}}),W=[`default`,`accordion`,`inset`,`popout`],G=t({flat:Boolean,...N(),...M(H(),[`bgColor`,`collapseIcon`,`color`,`eager`,`elevation`,`expandIcon`,`focusable`,`hideActions`,`readonly`,`ripple`,`static`]),...F(),...p(),...u(),...b(),variant:{type:String,default:`default`,validator:e=>W.includes(e)}},`VExpansionPanels`),K=I()({name:`VExpansionPanels`,props:G(),emits:{"update:modelValue":e=>!0},setup(t,{slots:n}){let{next:r,prev:i}=S(t,L),{themeClasses:a}=w(t),{roundedClasses:o}=h(t),s=j(()=>t.variant&&`v-expansion-panels--variant-${t.variant}`);return l({VExpansionPanel:{bgColor:j(()=>t.bgColor),collapseIcon:j(()=>t.collapseIcon),color:j(()=>t.color),eager:j(()=>t.eager),elevation:j(()=>t.elevation),expandIcon:j(()=>t.expandIcon),focusable:j(()=>t.focusable),hideActions:j(()=>t.hideActions),readonly:j(()=>t.readonly),ripple:j(()=>t.ripple),static:j(()=>t.static)}}),y(()=>e(t.tag,{class:C([`v-expansion-panels`,{"v-expansion-panels--flat":t.flat,"v-expansion-panels--tile":t.tile},a.value,o.value,s.value,t.class]),style:k(t.style)},{default:()=>[n.default?.({prev:i,next:r})]})),{next:r,prev:i}}});export{z as i,U as n,V as r,K as t};
+1
View File
@@ -0,0 +1 @@
import{En as e,Qr as t,Tn as n,_r as r,hn as i,oi as a,r as o,si as s,xn as c}from"./index-jg6n1uIt.js";import{d as l,f as u}from"./VTextField-aYfLTeRp.js";var d=e({...n(),...u()},`VForm`),f=c()({name:`VForm`,props:d(),emits:{"update:modelValue":e=>!0,submit:e=>!0},setup(e,{slots:n,emit:c}){let u=l(e),d=t();function f(e){e.preventDefault(),u.reset()}function p(e){let t=e,n=u.validate();t.then=n.then.bind(n),t.catch=n.catch.bind(n),t.finally=n.finally.bind(n),c(`submit`,t),t.defaultPrevented||n.then(({valid:e})=>{e&&d.value?.submit()}),t.preventDefault()}return i(()=>r(`form`,{ref:d,class:a([`v-form`,e.class]),style:s(e.style),novalidate:!0,onReset:f,onSubmit:p},[n.default?.({get errors(){return u.errors.value},get isDisabled(){return u.isDisabled.value},get isReadonly(){return u.isReadonly.value},get isValidating(){return u.isValidating.value},get isValid(){return u.isValid.value},get items(){return u.items.value},validate:u.validate,reset:u.reset,resetValidation:u.resetValidation})])),o(u,d)}});export{f as t};
+1
View File
@@ -0,0 +1 @@
import{En as e,Fn as t,Tn as n,Tr as r,Zn as i,ai as a,cr as o,gr as s,lt as c,mt as l,sn as u,xn as d}from"./index-jg6n1uIt.js";var f=u.reduce((e,t)=>(e[t]={type:[Boolean,String,Number],default:!1},e),{}),p=u.reduce((e,t)=>{let n=`offset`+a(t);return e[n]={type:[String,Number],default:null},e},{}),m={col:i(f),offset:i(p),order:[`order`,`orderSm`,`orderMd`,`orderLg`,`orderXl`,`orderXxl`]};function h(e){if(typeof e==`string`&&e.includes(`/`)){let[t,n]=e.split(`/`);return{cols:Number(t),size:Number(n)}}return{cols:e}}function g(e,t,n){if(n==null||n===!1)return{};let{cols:r,size:i}=h(n),a=t.replace(e,``).toLowerCase();return e===`offset`?{className:`v-col--offset-${a}-${r}`,variables:[{[`--v-col-offset-base-${a}`]:i}]}:e===`order`?{className:`order-${a}-${r}`}:{className:r===``||r===!0?`v-col--${a}`:`v-col--cols-${a}-${r}`,variables:[{[`--v-col-size-base-${a}`]:i}]}}var _=[`auto`,`start`,`end`,`center`,`baseline`,`stretch`],v=e=>_.includes(e),y=e({cols:{type:[Boolean,String,Number],default:!1},...f,offset:{type:[String,Number],default:null},...p,order:{type:[String,Number],default:null},orderSm:{type:[String,Number],default:null},orderMd:{type:[String,Number],default:null},orderLg:{type:[String,Number],default:null},orderXl:{type:[String,Number],default:null},orderXxl:{type:[String,Number],default:null},alignSelf:{type:String,default:null,validator:v},...n(),...c()},`VCol`),b=d()({name:`VCol`,props:y(),setup(e,{slots:t}){let n=s(()=>h(e.cols).size),i=s(()=>h(e.offset).size),a=s(()=>{let t=[`v-col`],n=[],r;for(r in m)m[r].forEach(i=>{let a=e[i],{className:o,variables:s}=g(r,i,a);o&&t.push(o),s&&n.push(...s)});let{cols:i}=h(e.cols),{cols:a}=h(e.offset);return t.push({[`v-col--cols-${i}`]:i,[`v-col--offset-${a}`]:a,[`order-${e.order}`]:e.order,[`align-self-${e.alignSelf}`]:e.alignSelf}),{classes:t,variables:n}});return()=>r(e.tag,{class:[a.value.classes,e.class],style:[{"--v-col-size-base":n.value},{"--v-col-offset-base":i.value},a.value.variables,e.style]},t.default?.())}}),x=[`start`,`end`,`center`],S=[`space-between`,`space-around`,`space-evenly`],C=[...x,`baseline`,`stretch`],w=e=>C.includes(e),T=[...x,...S],E=e=>T.includes(e),D=[...x,...S,`stretch`],O=e=>D.includes(e),k={align:[`align`,`alignSm`,`alignMd`,`alignLg`,`alignXl`,`alignXxl`],justify:[`justify`,`justifySm`,`justifyMd`,`justifyLg`,`justifyXl`,`justifyXxl`],alignContent:[`alignContent`,`alignContentSm`,`alignContentMd`,`alignContentLg`,`alignContentXl`,`alignContentXxl`]},A={align:`align`,justify:`justify`,alignContent:`align-content`};function j(e,t,n){let r=A[e];if(n!=null){if(t){let n=t.replace(e,``);r+=`-${n}`}return r+=`-${n}`,r.toLowerCase()}}var M=e({dense:Boolean,align:{type:String,default:null,validator:w},alignSm:{type:String,default:null,validator:w},alignMd:{type:String,default:null,validator:w},alignLg:{type:String,default:null,validator:w},alignXl:{type:String,default:null,validator:w},alignXxl:{type:String,default:null,validator:w},justify:{type:String,default:null,validator:E},justifySm:{type:String,default:null,validator:E},justifyMd:{type:String,default:null,validator:E},justifyLg:{type:String,default:null,validator:E},justifyXl:{type:String,default:null,validator:E},justifyXxl:{type:String,default:null,validator:E},alignContent:{type:String,default:null,validator:O},alignContentSm:{type:String,default:null,validator:O},alignContentMd:{type:String,default:null,validator:O},alignContentLg:{type:String,default:null,validator:O},alignContentXl:{type:String,default:null,validator:O},alignContentXxl:{type:String,default:null,validator:O},noGutters:Boolean,gap:[Number,String,Array],size:[Number,String],...n(),...l(),...c()},`VRow`),N=d()({name:`VRow`,props:M(),setup(e,{slots:n}){e.dense&&o(`dense`,`density="comfortable"`);let i=s(()=>{let t=[],n;for(n in k)k[n].forEach(r=>{let i=e[r],a=j(n,r,i);a&&t.push(a)});return t.push({"v-row--no-gutters":e.noGutters,"v-row--density-default":e.density===`default`&&!e.noGutters&&!e.dense,"v-row--density-compact":e.density===`compact`,"v-row--density-comfortable":e.density===`comfortable`||e.dense,[`align-${e.align}`]:e.align,[`justify-${e.justify}`]:e.justify,[`align-content-${e.alignContent}`]:e.alignContent}),t}),a=s(()=>Array.isArray(e.gap)?t(e.gap[0]||0):t(e.gap)),c=s(()=>Array.isArray(e.gap)?t(e.gap[1]||0):a.value);return()=>r(e.tag,{class:[`v-row`,i.value,e.class],style:[{"--v-col-gap-x":a.value,"--v-col-gap-y":c.value,"--v-row-columns":e.size},e.style]},n.default?.())}});export{b as n,N as t};
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{n as e,t}from"./VRow-qy3FYYmr.js";import{Cr as n,En as r,Gr as i,Gt as a,Ir as o,J as s,Or as c,Rr as l,S as u,X as d,_r as f,an as p,br as m,ci as h,ft as g,gr as _,hn as v,nr as y,oi as b,on as x,pr as S,pt as C,q as w,st as T,un as E,vr as D,wr as O,xn as k}from"./index-jg6n1uIt.js";import{n as A,t as j}from"./VCard-OsBQX9_f.js";import{t as M}from"./_plugin-vue_export-helper-BDNMzG2s.js";function N(e){switch(e){case`online`:return`success`;case`offline`:return`error`;default:return`warning`}}function P(e){switch(e){case`online`:return`在线`;case`offline`:return`离线`;default:return`未知`}}function F(e){if(!e)return``;let t=a(e);if(!t)return``;let n=Date.now()-t.getTime();return n<6e4?`刚刚`:n<36e5?`${Math.floor(n/6e4)} 分钟前`:n<864e5?`${Math.floor(n/36e5)} 小时前`:`${Math.floor(n/864e5)} 天前`}var I={class:`text-caption text-medium-emphasis mb-1`,style:{"font-size":`14px`,"letter-spacing":`0.5px`,"text-transform":`uppercase`}},L=M(O({__name:`StatCardsRow`,props:{items:{}},setup(r){return(a,s)=>(o(),D(t,null,{default:i(()=>[(o(!0),m(S,null,l(r.items,(t,r)=>(o(),D(e,{key:r,cols:`6`,sm:`3`},{default:i(()=>[n(j,{elevation:`0`,rounded:`xl`,border:``,class:`stat-card`},{default:i(()=>[n(A,{class:`pa-4 d-flex align-center justify-space-between`},{default:i(()=>[f(`div`,null,[f(`div`,I,h(t.subtitle),1),f(`div`,{class:b([`font-weight-bold`,`text-`+t.color]),style:{"font-size":`36px`,"line-height":`1.1`}},h(t.title),3)]),n(u,{color:t.color,size:`48`,rounded:`lg`,class:`stat-icon`},{default:i(()=>[n(d,{icon:t.icon,size:`24`,color:`white`},null,8,[`icon`])]),_:2},1032,[`color`])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1}))}}),[[`__scopeId`,`data-v-68b984da`]]),R={actions:`button@2`,article:`heading, paragraph`,avatar:`avatar`,button:`button`,card:`image, heading`,"card-avatar":`image, list-item-avatar`,chip:`chip`,"date-picker":`list-item, heading, divider, date-picker-options, date-picker-days, actions`,"date-picker-options":`text, avatar@2`,"date-picker-days":`avatar@28`,divider:`divider`,heading:`heading`,image:`image`,"list-item":`text`,"list-item-avatar":`avatar, text`,"list-item-two-line":`sentences`,"list-item-avatar-two-line":`avatar, sentences`,"list-item-three-line":`paragraph`,"list-item-avatar-three-line":`avatar, paragraph`,ossein:`ossein`,paragraph:`text@3`,sentences:`text@2`,subtitle:`text`,table:`table-heading, table-thead, table-tbody, table-tfoot`,"table-heading":`chip, text`,"table-thead":`heading@6`,"table-tbody":`table-row-divider@6`,"table-row-divider":`table-row, divider`,"table-row":`text@6`,"table-tfoot":`text@2, avatar@2`,text:`text`};function z(e,t=[]){return f(`div`,{class:b([`v-skeleton-loader__bone`,`v-skeleton-loader__${e}`])},[t])}function B(e){let[t,n]=e.split(`@`);return Array.from({length:n}).map(()=>V(t))}function V(e){let t=[];if(!e)return t;let n=R[e];if(e!==n){if(e.includes(`,`))return H(e);if(e.includes(`@`))return B(e);n.includes(`,`)?t=H(n):n.includes(`@`)?t=B(n):n&&t.push(V(n))}return[z(e,t)]}function H(e){return e.replace(/\s/g,``).split(`,`).map(V)}var U=r({boilerplate:Boolean,color:String,loading:Boolean,loadingText:{type:String,default:`$vuetify.loading`},type:{type:[String,Array],default:`ossein`},...w(),...g(),...p()},`VSkeletonLoader`),W=k()({name:`VSkeletonLoader`,inheritAttrs:!1,props:U(),setup(e,{attrs:t,slots:n}){let{backgroundColorClasses:r,backgroundColorStyles:i}=T(()=>e.color),{dimensionStyles:a}=s(e),{elevationClasses:o}=C(e),{themeClasses:l}=x(e),{t:u}=E(),d=_(()=>V(y(e.type).join(`,`)));return v(()=>{let s=!n.default||e.loading,p=e.boilerplate||!s?{}:{ariaLive:`polite`,ariaLabel:u(e.loadingText),role:`alert`};return s?f(`div`,c({class:[`v-skeleton-loader`,{"v-skeleton-loader--boilerplate":e.boilerplate},l.value,r.value,o.value],style:[i.value,a.value]},p,t),[d.value]):f(S,null,[n.default?.()])}),{}}});export{P as a,N as i,L as n,F as r,W as t};
+1
View File
@@ -0,0 +1 @@
import{A as e,Bn as t,Cr as n,En as r,Or as i,Q as a,Qr as o,U as s,V as c,Vr as l,X as u,Y as d,_r as f,ar as p,fn as m,hn as h,oi as g,pr as _,r as v,si as y,ti as b,xn as x}from"./index-jg6n1uIt.js";import{m as S,p as C}from"./VSelect-BNBaMFHI.js";import{l as w,m as T,u as E}from"./VTextField-aYfLTeRp.js";var D=r({indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...E(),...S()},`VSwitch`),O=x()({name:`VSwitch`,inheritAttrs:!1,props:D(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(r,{attrs:x,slots:S}){let E=m(r,`indeterminate`),D=m(r,`modelValue`),{loaderClasses:O}=s(r),{isFocused:k,focus:A,blur:j}=T(r),M=o(),N=o(),P=p&&window.matchMedia(`(forced-colors: active)`).matches,F=b(()=>typeof r.loading==`string`&&r.loading!==``?r.loading:r.color),I=l(),L=b(()=>r.id||`switch-${I}`);function R(){E.value&&=!1}function z(e){e.stopPropagation(),e.preventDefault(),M.value?.input?.click()}return h(()=>{let[o,s]=t(x),l=w.filterProps(r),p=C.filterProps(r);return n(w,i({ref:N,class:[`v-switch`,{"v-switch--flat":r.flat},{"v-switch--inset":r.inset},{"v-switch--indeterminate":E.value},O.value,r.class]},o,l,{modelValue:D.value,"onUpdate:modelValue":e=>D.value=e,id:L.value,focused:k.value,style:r.style}),{...S,default:({id:t,messagesId:o,isDisabled:l,isReadonly:m,isValid:h})=>{let v={model:D,isValid:h};return n(C,i({ref:M},p,{modelValue:D.value,"onUpdate:modelValue":[e=>D.value=e,R],id:t.value,"aria-describedby":o.value,type:`checkbox`,"aria-checked":E.value?`mixed`:void 0,disabled:l.value,readonly:m.value,onFocus:A,onBlur:j},s),{...S,default:({backgroundColorClasses:e,backgroundColorStyles:t})=>f(`div`,{class:g([`v-switch__track`,P?void 0:e.value]),style:y(t.value),onClick:z},[S[`track-true`]&&f(`div`,{key:`prepend`,class:`v-switch__track-true`},[S[`track-true`](v)]),S[`track-false`]&&f(`div`,{key:`append`,class:`v-switch__track-false`},[S[`track-false`](v)])]),input:({inputNode:t,icon:i,backgroundColorClasses:o,backgroundColorStyles:s})=>f(_,null,[t,f(`div`,{class:g([`v-switch__thumb`,{"v-switch__thumb--filled":i||r.loading},r.inset||P?void 0:o.value]),style:y(r.inset?void 0:s.value)},[S.thumb?n(a,{defaults:{VIcon:{icon:i,size:`x-small`}}},{default:()=>[S.thumb({...v,icon:i})]}):n(e,null,{default:()=>[r.loading?n(c,{name:`v-switch`,active:!0,color:h.value===!1?void 0:F.value},{default:e=>S.loader?S.loader(e):n(d,{active:e.isActive,color:e.color,indeterminate:!0,size:`16`,width:`2`},null)}):i&&n(u,{key:String(i),icon:i,size:`x-small`},null)]})])])})}})}),v({},N)}});export{O as t};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{$t as e,Yt as t}from"./index-jg6n1uIt.js";function n(n,r){return n instanceof t?e(n.detail??n.message,n.message||r):n instanceof Error&&n.message.trim()||r}export{n as t};
+1
View File
@@ -0,0 +1 @@
import{p as e,s as t}from"./initMonaco-DeGfY2YT.js";import{_ as n,a as r,c as i,d as a,f as o,g as s,h as c,i as l,l as u,m as d,n as f,o as p,p as m,r as h,s as g,t as _,u as v,v as y}from"./lspLanguageFeatures-CvHAEJHp.js";var b=120*1e3,x=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>b&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||=(this._worker=t({moduleId:`vs/language/css/cssWorker`,createWorker:()=>new Worker(new URL(`/app/assets/css.worker-CvXBzhp8.js`,``+import.meta.url),{type:`module`}),label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}};function S(t){let n=[],s=[],c=new x(t);n.push(c);let g=(...e)=>c.getLanguageServiceWorker(...e);function y(){let{languageId:n,modeConfiguration:c}=t;w(s),c.completionItems&&s.push(e.registerCompletionItemProvider(n,new _(g,[`/`,`-`,`:`]))),c.hovers&&s.push(e.registerHoverProvider(n,new a(g))),c.documentHighlights&&s.push(e.registerDocumentHighlightProvider(n,new p(g))),c.definitions&&s.push(e.registerDefinitionProvider(n,new f(g))),c.references&&s.push(e.registerReferenceProvider(n,new o(g))),c.documentSymbols&&s.push(e.registerDocumentSymbolProvider(n,new u(g))),c.rename&&s.push(e.registerRenameProvider(n,new m(g))),c.colors&&s.push(e.registerColorProvider(n,new l(g))),c.foldingRanges&&s.push(e.registerFoldingRangeProvider(n,new v(g))),c.diagnostics&&s.push(new h(n,g,t.onDidChange)),c.selectionRanges&&s.push(e.registerSelectionRangeProvider(n,new d(g))),c.documentFormattingEdits&&s.push(e.registerDocumentFormattingEditProvider(n,new r(g))),c.documentRangeFormattingEdits&&s.push(e.registerDocumentRangeFormattingEditProvider(n,new i(g)))}return y(),n.push(C(s)),C(n)}function C(e){return{dispose:()=>w(e)}}function w(e){for(;e.length;)e.pop().dispose()}export{_ as CompletionAdapter,f as DefinitionAdapter,h as DiagnosticsAdapter,l as DocumentColorAdapter,r as DocumentFormattingEditProvider,p as DocumentHighlightAdapter,g as DocumentLinkAdapter,i as DocumentRangeFormattingEditProvider,u as DocumentSymbolAdapter,v as FoldingRangeAdapter,a as HoverAdapter,o as ReferenceAdapter,m as RenameAdapter,d as SelectionRangeAdapter,x as WorkerManager,c as fromPosition,s as fromRange,S as setupMode,n as toRange,y as toTextEdit};
@@ -0,0 +1,2 @@
import{Mr as e,Pt as t,jt as n}from"./index-jg6n1uIt.js";import{t as r}from"./usePageAutoRefresh-I6VQMBJ4.js";var i=8e3,a=3e4;function o(o,s){let{runningItems:c}=t();r(async()=>{s?.enabled&&!s.enabled()||await o(!0)},()=>c.value.length>0?i:a);let l=n(()=>{s?.enabled&&!s.enabled()||o(!1)});e(()=>{l()})}function s(e){return e.replace(/\b\d{1,3}(?:\.\d{1,3}){3}\b/g,`<ip>`).replace(/:\d{2,5}\b/g,`:<port>`).replace(/\/[^\s'"]+/g,`/<path>`).replace(/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi,`<uuid>`).replace(/\s+/g,` `).trim()}function c(e){let t=e.trim();return!t||t===``?`未知错误`:s(t.split(`
`)[0]?.trim()||t).slice(0,200)||`未知错误`}function l(e){let t=new Map;for(let n of e){if(!n.failed)continue;let e=c(n.summary),r=t.get(e);r?r.push(n):t.set(e,[n])}return[...t.entries()].map(([e,t])=>({errorKey:e,rows:t.sort((e,t)=>e.serverName.localeCompare(t.serverName,`zh`)),count:t.length})).sort((e,t)=>t.count-e.count||e.errorKey.localeCompare(t.errorKey,`zh`))}export{o as n,l as t};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{p as e}from"./initMonaco-DeGfY2YT.js";var t=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`menuitem`,`meta`,`param`,`source`,`track`,`wbr`],n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[`<!--`,`-->`]},brackets:[[`<!--`,`-->`],[`<`,`>`],[`{`,`}`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`"`,close:`"`},{open:`'`,close:`'`},{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`<`,close:`>`}],onEnterRules:[{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}],folding:{markers:{start:RegExp(`^\\s*<!--\\s*#region\\b.*-->`),end:RegExp(`^\\s*<!--\\s*#endregion\\b.*-->`)}}},r={defaultToken:``,tokenPostfix:`.html`,ignoreCase:!0,tokenizer:{root:[[/<!DOCTYPE/,`metatag`,`@doctype`],[/<!--/,`comment`,`@comment`],[/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/,[`delimiter`,`tag`,``,`delimiter`]],[/(<)(script)/,[`delimiter`,{token:`tag`,next:`@script`}]],[/(<)(style)/,[`delimiter`,{token:`tag`,next:`@style`}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,[`delimiter`,{token:`tag`,next:`@otherTag`}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,[`delimiter`,{token:`tag`,next:`@otherTag`}]],[/</,`delimiter`],[/[^<]+/]],doctype:[[/[^>]+/,`metatag.content`],[/>/,`metatag`,`@pop`]],comment:[[/-->/,`comment`,`@pop`],[/[^-]+/,`comment.content`],[/./,`comment.content`]],otherTag:[[/\/?>/,`delimiter`,`@pop`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/]],script:[[/type/,`attribute.name`,`@scriptAfterType`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/>/,{token:`delimiter`,next:`@scriptEmbedded`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,[`delimiter`,`tag`,{token:`delimiter`,next:`@pop`}]]],scriptAfterType:[[/=/,`delimiter`,`@scriptAfterTypeEquals`],[/>/,{token:`delimiter`,next:`@scriptEmbedded`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptAfterTypeEquals:[[/"module"/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.text/javascript`}],[/'module'/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.text/javascript`}],[/"([^"]*)"/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.$1`}],[/'([^']*)'/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.$1`}],[/>/,{token:`delimiter`,next:`@scriptEmbedded`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptWithCustomType:[[/>/,{token:`delimiter`,next:`@scriptEmbedded.$S2`,nextEmbedded:`$S2`}],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptEmbedded:[[/<\/script/,{token:`@rematch`,next:`@pop`,nextEmbedded:`@pop`}],[/[^<]+/,``]],style:[[/type/,`attribute.name`,`@styleAfterType`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/>/,{token:`delimiter`,next:`@styleEmbedded`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,[`delimiter`,`tag`,{token:`delimiter`,next:`@pop`}]]],styleAfterType:[[/=/,`delimiter`,`@styleAfterTypeEquals`],[/>/,{token:`delimiter`,next:`@styleEmbedded`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:`attribute.value`,switchTo:`@styleWithCustomType.$1`}],[/'([^']*)'/,{token:`attribute.value`,switchTo:`@styleWithCustomType.$1`}],[/>/,{token:`delimiter`,next:`@styleEmbedded`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleWithCustomType:[[/>/,{token:`delimiter`,next:`@styleEmbedded.$S2`,nextEmbedded:`$S2`}],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleEmbedded:[[/<\/style/,{token:`@rematch`,next:`@pop`,nextEmbedded:`@pop`}],[/[^<]+/,``]]}};export{n as conf,r as language};
+1
View File
@@ -0,0 +1 @@
import{p as e,s as t}from"./initMonaco-DeGfY2YT.js";import{_ as n,a as r,c as i,d as a,f as o,g as s,h as c,i as l,l as u,m as d,n as f,o as p,p as m,r as h,s as g,t as _,u as v,v as y}from"./lspLanguageFeatures-CvHAEJHp.js";var b=120*1e3,x=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>b&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||=(this._worker=t({moduleId:`vs/language/html/htmlWorker`,createWorker:()=>new Worker(new URL(`/app/assets/html.worker-BO6WuOEO.js`,``+import.meta.url),{type:`module`}),createData:{languageSettings:this._defaults.options,languageId:this._defaults.languageId},label:this._defaults.languageId}),this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}},S=class extends _{constructor(e){super(e,[`.`,`:`,`<`,`"`,`=`,`/`])}};function C(t){let n=new x(t),o=(...e)=>n.getLanguageServiceWorker(...e),s=t.languageId;e.registerCompletionItemProvider(s,new S(o)),e.registerHoverProvider(s,new a(o)),e.registerDocumentHighlightProvider(s,new p(o)),e.registerLinkProvider(s,new g(o)),e.registerFoldingRangeProvider(s,new v(o)),e.registerDocumentSymbolProvider(s,new u(o)),e.registerSelectionRangeProvider(s,new d(o)),e.registerRenameProvider(s,new m(o)),s===`html`&&(e.registerDocumentFormattingEditProvider(s,new r(o)),e.registerDocumentRangeFormattingEditProvider(s,new i(o)))}function w(t){let n=[],o=[],s=new x(t);n.push(s);let c=(...e)=>s.getLanguageServiceWorker(...e);function l(){let{languageId:n,modeConfiguration:s}=t;E(o),s.completionItems&&o.push(e.registerCompletionItemProvider(n,new S(c))),s.hovers&&o.push(e.registerHoverProvider(n,new a(c))),s.documentHighlights&&o.push(e.registerDocumentHighlightProvider(n,new p(c))),s.links&&o.push(e.registerLinkProvider(n,new g(c))),s.documentSymbols&&o.push(e.registerDocumentSymbolProvider(n,new u(c))),s.rename&&o.push(e.registerRenameProvider(n,new m(c))),s.foldingRanges&&o.push(e.registerFoldingRangeProvider(n,new v(c))),s.selectionRanges&&o.push(e.registerSelectionRangeProvider(n,new d(c))),s.documentFormattingEdits&&o.push(e.registerDocumentFormattingEditProvider(n,new r(c))),s.documentRangeFormattingEdits&&o.push(e.registerDocumentRangeFormattingEditProvider(n,new i(c)))}return l(),n.push(T(o)),T(n)}function T(e){return{dispose:()=>E(e)}}function E(e){for(;e.length;)e.pop().dispose()}export{_ as CompletionAdapter,f as DefinitionAdapter,h as DiagnosticsAdapter,l as DocumentColorAdapter,r as DocumentFormattingEditProvider,p as DocumentHighlightAdapter,g as DocumentLinkAdapter,i as DocumentRangeFormattingEditProvider,u as DocumentSymbolAdapter,v as FoldingRangeAdapter,a as HoverAdapter,o as ReferenceAdapter,m as RenameAdapter,d as SelectionRangeAdapter,x as WorkerManager,c as fromPosition,s as fromRange,w as setupMode,C as setupMode1,n as toRange,y as toTextEdit};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{conf as e,language as t}from"./typescript-PthvYu2d.js";var n=e,r={defaultToken:`invalid`,tokenPostfix:`.js`,keywords:`break.case.catch.class.continue.const.constructor.debugger.default.delete.do.else.export.extends.false.finally.for.from.function.get.if.import.in.instanceof.let.new.null.return.set.static.super.switch.symbol.this.throw.true.try.typeof.undefined.var.void.while.with.yield.async.await.of`.split(`.`),typeKeywords:[],operators:t.operators,symbols:t.symbols,escapes:t.escapes,digits:t.digits,octaldigits:t.octaldigits,binarydigits:t.binarydigits,hexdigits:t.hexdigits,regexpctl:t.regexpctl,regexpesc:t.regexpesc,tokenizer:t.tokenizer};export{n as conf,r as language};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{p as e}from"./initMonaco-DeGfY2YT.js";var t=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`menuitem`,`meta`,`param`,`source`,`track`,`wbr`],n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,brackets:[[`<!--`,`-->`],[`<`,`>`],[`{{`,`}}`],[`{%`,`%}`],[`{`,`}`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`%`,close:`%`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`<`,close:`>`},{open:`"`,close:`"`},{open:`'`,close:`'`}],onEnterRules:[{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},r={defaultToken:``,tokenPostfix:``,builtinTags:`if.else.elseif.endif.render.assign.capture.endcapture.case.endcase.comment.endcomment.cycle.decrement.for.endfor.include.increment.layout.raw.endraw.render.tablerow.endtablerow.unless.endunless`.split(`.`),builtinFilters:`abs.append.at_least.at_most.capitalize.ceil.compact.date.default.divided_by.downcase.escape.escape_once.first.floor.join.json.last.lstrip.map.minus.modulo.newline_to_br.plus.prepend.remove.remove_first.replace.replace_first.reverse.round.rstrip.size.slice.sort.sort_natural.split.strip.strip_html.strip_newlines.times.truncate.truncatewords.uniq.upcase.url_decode.url_encode.where`.split(`.`),constants:[`true`,`false`],operators:[`==`,`!=`,`>`,`<`,`>=`,`<=`],symbol:/[=><!]+/,identifier:/[a-zA-Z_][\w]*/,tokenizer:{root:[[/\{\%\s*comment\s*\%\}/,`comment.start.liquid`,`@comment`],[/\{\{/,{token:`@rematch`,switchTo:`@liquidState.root`}],[/\{\%/,{token:`@rematch`,switchTo:`@liquidState.root`}],[/(<)([\w\-]+)(\/>)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/(<)([:\w]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/(<\/)([\w\-]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/</,`delimiter.html`],[/\{/,`delimiter.html`],[/[^<{]+/]],comment:[[/\{\%\s*endcomment\s*\%\}/,`comment.end.liquid`,`@pop`],[/./,`comment.content.liquid`]],otherTag:[[/\{\{/,{token:`@rematch`,switchTo:`@liquidState.otherTag`}],[/\{\%/,{token:`@rematch`,switchTo:`@liquidState.otherTag`}],[/\/?>/,`delimiter.html`,`@pop`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/]],liquidState:[[/\{\{/,`delimiter.output.liquid`],[/\}\}/,{token:`delimiter.output.liquid`,switchTo:`@$S2.$S3`}],[/\{\%/,`delimiter.tag.liquid`],[/raw\s*\%\}/,`delimiter.tag.liquid`,`@liquidRaw`],[/\%\}/,{token:`delimiter.tag.liquid`,switchTo:`@$S2.$S3`}],{include:`liquidRoot`}],liquidRaw:[[/^(?!\{\%\s*endraw\s*\%\}).+/],[/\{\%/,`delimiter.tag.liquid`],[/@identifier/],[/\%\}/,{token:`delimiter.tag.liquid`,next:`@root`}]],liquidRoot:[[/\d+(\.\d+)?/,`number.liquid`],[/"[^"]*"/,`string.liquid`],[/'[^']*'/,`string.liquid`],[/\s+/],[/@symbol/,{cases:{"@operators":`operator.liquid`,"@default":``}}],[/\./],[/@identifier/,{cases:{"@constants":`keyword.liquid`,"@builtinFilters":`predefined.liquid`,"@builtinTags":`predefined.liquid`,"@default":`variable.liquid`}}],[/[^}|%]/,`variable.liquid`]]}};export{n as conf,r as language};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{p as e}from"./initMonaco-DeGfY2YT.js";var t={comments:{blockComment:[`{/*`,`*/}`]},brackets:[[`{`,`}`]],autoClosingPairs:[{open:`"`,close:`"`},{open:`'`,close:`'`},{open:``,close:``},{open:``,close:``},{open:"`",close:"`"},{open:`{`,close:`}`},{open:`(`,close:`)`},{open:`_`,close:`_`},{open:`**`,close:`**`},{open:`<`,close:`>`}],onEnterRules:[{beforeText:/^\s*- .+/,action:{indentAction:e.IndentAction.None,appendText:`- `}},{beforeText:/^\s*\+ .+/,action:{indentAction:e.IndentAction.None,appendText:`+ `}},{beforeText:/^\s*\* .+/,action:{indentAction:e.IndentAction.None,appendText:`* `}},{beforeText:/^> /,action:{indentAction:e.IndentAction.None,appendText:`> `}},{beforeText:/<\w+/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/\s+>\s*$/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/<\/\w+>/,action:{indentAction:e.IndentAction.Outdent}},...Array.from({length:100},(t,n)=>({beforeText:RegExp(`^${n}\\. .+`),action:{indentAction:e.IndentAction.None,appendText:`${n+1}. `}}))]},n={defaultToken:``,tokenPostfix:`.mdx`,control:/[!#()*+.[\\\]_`{}\-]/,escapes:/\\@control/,tokenizer:{root:[[/^---$/,{token:`meta.content`,next:`@frontmatter`,nextEmbedded:`yaml`}],[/^\s*import/,{token:`keyword`,next:`@import`,nextEmbedded:`js`}],[/^\s*export/,{token:`keyword`,next:`@export`,nextEmbedded:`js`}],[/<\w+/,{token:`type.identifier`,next:`@jsx`}],[/<\/?\w+>/,`type.identifier`],[/^(\s*)(>*\s*)(#{1,6}\s)/,[{token:`white`},{token:`comment`},{token:`keyword`,next:`@header`}]],[/^(\s*)(>*\s*)([*+-])(\s+)/,[`white`,`comment`,`keyword`,`white`]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,[`white`,`comment`,`number`,`white`]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,[`white`,`comment`,`number`,`white`]],[/^(\s*)(>*\s*)(-{3,}|\*{3,}|_{3,})$/,[`white`,`comment`,`keyword`]],[/`{3,}(\s.*)?$/,{token:`string`,next:`@codeblock_backtick`}],[/~{3,}(\s.*)?$/,{token:`string`,next:`@codeblock_tilde`}],[/`{3,}(\S+).*$/,{token:`string`,next:`@codeblock_highlight_backtick`,nextEmbedded:`$1`}],[/~{3,}(\S+).*$/,{token:`string`,next:`@codeblock_highlight_tilde`,nextEmbedded:`$1`}],[/^(\s*)(-{4,})$/,[`white`,`comment`]],[/^(\s*)(>+)/,[`white`,`comment`]],{include:`content`}],content:[[/(\[)(.+)(]\()(.+)(\s+".*")(\))/,[``,`string.link`,``,`type.identifier`,`string.link`,``]],[/(\[)(.+)(]\()(.+)(\))/,[``,`type.identifier`,``,`string.link`,``]],[/(\[)(.+)(]\[)(.+)(])/,[``,`type.identifier`,``,`type.identifier`,``]],[/(\[)(.+)(]:\s+)(\S*)/,[``,`type.identifier`,``,`string.link`]],[/(\[)(.+)(])/,[``,`type.identifier`,``]],[/`.*`/,`variable.source`],[/_/,{token:`emphasis`,next:`@emphasis_underscore`}],[/\*(?!\*)/,{token:`emphasis`,next:`@emphasis_asterisk`}],[/\*\*/,{token:`strong`,next:`@strong`}],[/{/,{token:`delimiter.bracket`,next:`@expression`,nextEmbedded:`js`}]],import:[[/'\s*(;|$)/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}]],expression:[[/{/,{token:`delimiter.bracket`,next:`@expression`}],[/}/,{token:`delimiter.bracket`,next:`@pop`,nextEmbedded:`@pop`}]],export:[[/^\s*$/,{token:`delimiter.bracket`,next:`@pop`,nextEmbedded:`@pop`}]],jsx:[[/\s+/,``],[/(\w+)(=)("(?:[^"\\]|\\.)*")/,[`attribute.name`,`operator`,`string`]],[/(\w+)(=)('(?:[^'\\]|\\.)*')/,[`attribute.name`,`operator`,`string`]],[/(\w+(?=\s|>|={|$))/,[`attribute.name`]],[/={/,{token:`delimiter.bracket`,next:`@expression`,nextEmbedded:`js`}],[/>/,{token:`type.identifier`,next:`@pop`}]],header:[[/.$/,{token:`keyword`,next:`@pop`}],{include:`content`},[/./,{token:`keyword`}]],strong:[[/\*\*/,{token:`strong`,next:`@pop`}],{include:`content`},[/./,{token:`strong`}]],emphasis_underscore:[[/_/,{token:`emphasis`,next:`@pop`}],{include:`content`},[/./,{token:`emphasis`}]],emphasis_asterisk:[[/\*(?!\*)/,{token:`emphasis`,next:`@pop`}],{include:`content`},[/./,{token:`emphasis`}]],frontmatter:[[/^---$/,{token:`meta.content`,nextEmbedded:`@pop`,next:`@pop`}]],codeblock_highlight_backtick:[[/\s*`{3,}\s*$/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}],[/.*$/,`variable.source`]],codeblock_highlight_tilde:[[/\s*~{3,}\s*$/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}],[/.*$/,`variable.source`]],codeblock_backtick:[[/\s*`{3,}\s*$/,{token:`string`,next:`@pop`}],[/.*$/,`variable.source`]],codeblock_tilde:[[/\s*~{3,}\s*$/,{token:`string`,next:`@pop`}],[/.*$/,`variable.source`]]}};export{t as conf,n as language};
@@ -0,0 +1 @@
import{Qt as e}from"./index-jg6n1uIt.js";var t=200;async function n(n,r,i,a){if(a!==-1){let t=await e.get(n,{...r,page:i,per_page:a});return{items:t.items||[],total:t.total??0}}let o=[],s=1,c=1,l=0;do{let i=await e.get(n,{...r,page:s,per_page:t});o.push(...i.items||[]),l=i.total??o.length,c=i.pages??1,s+=1}while(s<=c);return{items:o,total:l}}async function r(e,n,r){if(r!==-1)return e(r,(n-1)*r);let i=[],a=0,o=0;do{let n=await e(t,a);if(i.push(...n.items||[]),o=n.total??i.length,!n.items.length||i.length>=o)break;a+=t}while(!0);return{items:i,total:o}}export{n,r as t};
+1
View File
@@ -0,0 +1 @@
import{p as e}from"./initMonaco-DeGfY2YT.js";var t={comments:{lineComment:`#`,blockComment:[`'''`,`'''`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`,notIn:[`string`]},{open:`'`,close:`'`,notIn:[`string`,`comment`]}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],onEnterRules:[{beforeText:RegExp(`^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\s*$`),action:{indentAction:e.IndentAction.Indent}}],folding:{offSide:!0,markers:{start:RegExp(`^\\s*#region\\b`),end:RegExp(`^\\s*#endregion\\b`)}}},n={defaultToken:``,tokenPostfix:`.python`,keywords:`False.None.True._.and.as.assert.async.await.break.case.class.continue.def.del.elif.else.except.exec.finally.for.from.global.if.import.in.is.lambda.match.nonlocal.not.or.pass.print.raise.return.try.type.while.with.yield.int.float.long.complex.hex.abs.all.any.apply.basestring.bin.bool.buffer.bytearray.callable.chr.classmethod.cmp.coerce.compile.complex.delattr.dict.dir.divmod.enumerate.eval.execfile.file.filter.format.frozenset.getattr.globals.hasattr.hash.help.id.input.intern.isinstance.issubclass.iter.len.locals.list.map.max.memoryview.min.next.object.oct.open.ord.pow.print.property.reversed.range.raw_input.reduce.reload.repr.reversed.round.self.set.setattr.slice.sorted.staticmethod.str.sum.super.tuple.type.unichr.unicode.vars.xrange.zip.__dict__.__methods__.__members__.__class__.__bases__.__name__.__mro__.__subclasses__.__init__.__import__`.split(`.`),brackets:[{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.bracket`},{open:`(`,close:`)`,token:`delimiter.parenthesis`}],tokenizer:{root:[{include:`@whitespace`},{include:`@numbers`},{include:`@strings`},[/[,:;]/,`delimiter`],[/[{}\[\]()]/,`@brackets`],[/@[a-zA-Z_]\w*/,`tag`],[/[a-zA-Z_]\w*/,{cases:{"@keywords":`keyword`,"@default":`identifier`}}]],whitespace:[[/\s+/,`white`],[/(^#.*$)/,`comment`],[/'''/,`string`,`@endDocString`],[/"""/,`string`,`@endDblDocString`]],endDocString:[[/[^']+/,`string`],[/\\'/,`string`],[/'''/,`string`,`@popall`],[/'/,`string`]],endDblDocString:[[/[^"]+/,`string`],[/\\"/,`string`],[/"""/,`string`,`@popall`],[/"/,`string`]],numbers:[[/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/,`number.hex`],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/,`number`]],strings:[[/'$/,`string.escape`,`@popall`],[/f'{1,3}/,`string.escape`,`@fStringBody`],[/'/,`string.escape`,`@stringBody`],[/"$/,`string.escape`,`@popall`],[/f"{1,3}/,`string.escape`,`@fDblStringBody`],[/"/,`string.escape`,`@dblStringBody`]],fStringBody:[[/[^\\'\{\}]+$/,`string`,`@popall`],[/[^\\'\{\}]+/,`string`],[/\{[^\}':!=]+/,`identifier`,`@fStringDetail`],[/\\./,`string`],[/'/,`string.escape`,`@popall`],[/\\$/,`string`]],stringBody:[[/[^\\']+$/,`string`,`@popall`],[/[^\\']+/,`string`],[/\\./,`string`],[/'/,`string.escape`,`@popall`],[/\\$/,`string`]],fDblStringBody:[[/[^\\"\{\}]+$/,`string`,`@popall`],[/[^\\"\{\}]+/,`string`],[/\{[^\}':!=]+/,`identifier`,`@fStringDetail`],[/\\./,`string`],[/"/,`string.escape`,`@popall`],[/\\$/,`string`]],dblStringBody:[[/[^\\"]+$/,`string`,`@popall`],[/[^\\"]+/,`string`],[/\\./,`string`],[/"/,`string.escape`,`@popall`],[/\\$/,`string`]],fStringDetail:[[/[:][^}]+/,`string`],[/[!][ars]/,`string`],[/=/,`string`],[/\}/,`identifier`,`@pop`]]}};export{t as conf,n as language};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{Kt as e}from"./index-jg6n1uIt.js";export{e as default};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{p as e}from"./initMonaco-DeGfY2YT.js";var t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:e.IndentAction.IndentOutdent,appendText:` * `}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:e.IndentAction.None,appendText:` * `}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:e.IndentAction.None,appendText:`* `}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:e.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`,notIn:[`string`]},{open:`'`,close:`'`,notIn:[`string`,`comment`]},{open:"`",close:"`",notIn:[`string`,`comment`]},{open:`/**`,close:` */`,notIn:[`string`]}],folding:{markers:{start:RegExp(`^\\s*//\\s*#?region\\b`),end:RegExp(`^\\s*//\\s*#?endregion\\b`)}}},n={defaultToken:`invalid`,tokenPostfix:`.ts`,keywords:`abstract.any.as.asserts.bigint.boolean.break.case.catch.class.continue.const.constructor.debugger.declare.default.delete.do.else.enum.export.extends.false.finally.for.from.function.get.if.implements.import.in.infer.instanceof.interface.is.keyof.let.module.namespace.never.new.null.number.object.out.package.private.protected.public.override.readonly.require.global.return.satisfies.set.static.string.super.switch.symbol.this.throw.true.try.type.typeof.undefined.unique.unknown.var.void.while.with.yield.async.await.of`.split(`.`),operators:`<=.>=.==.!=.===.!==.=>.+.-.**.*./.%.++.--.<<.</.>>.>>>.&.|.^.!.~.&&.||.??.?.:.=.+=.-=.*=.**=./=.%=.<<=.>>=.>>>=.&=.|=.^=.@`.split(`.`),symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,`delimiter.bracket`],{include:`common`}],common:[[/#?[a-z_$][\w$]*/,{cases:{"@keywords":`keyword`,"@default":`identifier`}}],[/[A-Z][\w\$]*/,`type.identifier`],{include:`@whitespace`},[/\/(?=([^\\\/]|\\.)+\/([dgimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:`regexp`,bracket:`@open`,next:`@regexp`}],[/[()\[\]]/,`@brackets`],[/[<>](?!@symbols)/,`@brackets`],[/!(?=([^=]|$))/,`delimiter`],[/@symbols/,{cases:{"@operators":`delimiter`,"@default":``}}],[/(@digits)[eE]([\-+]?(@digits))?/,`number.float`],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,`number.float`],[/0[xX](@hexdigits)n?/,`number.hex`],[/0[oO]?(@octaldigits)n?/,`number.octal`],[/0[bB](@binarydigits)n?/,`number.binary`],[/(@digits)n?/,`number`],[/[;,.]/,`delimiter`],[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/"/,`string`,`@string_double`],[/'/,`string`,`@string_single`],[/`/,`string`,`@string_backtick`]],whitespace:[[/[ \t\r\n]+/,``],[/\/\*\*(?!\/)/,`comment.doc`,`@jsdoc`],[/\/\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`]],comment:[[/[^\/*]+/,`comment`],[/\*\//,`comment`,`@pop`],[/[\/*]/,`comment`]],jsdoc:[[/[^\/*]+/,`comment.doc`],[/\*\//,`comment.doc`,`@pop`],[/[\/*]/,`comment.doc`]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,[`regexp.escape.control`,`regexp.escape.control`,`regexp.escape.control`]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,[`regexp.escape.control`,{token:`regexp.escape.control`,next:`@regexrange`}]],[/(\()(\?:|\?=|\?!)/,[`regexp.escape.control`,`regexp.escape.control`]],[/[()]/,`regexp.escape.control`],[/@regexpctl/,`regexp.escape.control`],[/[^\\\/]/,`regexp`],[/@regexpesc/,`regexp.escape`],[/\\\./,`regexp.invalid`],[/(\/)([dgimsuy]*)/,[{token:`regexp`,bracket:`@close`,next:`@pop`},`keyword.other`]]],regexrange:[[/-/,`regexp.escape.control`],[/\^/,`regexp.invalid`],[/@regexpesc/,`regexp.escape`],[/[^\]]/,`regexp`],[/\]/,{token:`regexp.escape.control`,next:`@pop`,bracket:`@close`}]],string_double:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],string_single:[[/[^\\']+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/'/,`string`,`@pop`]],string_backtick:[[/\$\{/,{token:`delimiter.bracket`,next:`@bracketCounting`}],[/[^\\`$]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/`/,`string`,`@pop`]],bracketCounting:[[/\{/,`delimiter.bracket`,`@bracketCounting`],[/\}/,`delimiter.bracket`,`@pop`],{include:`common`}]}};export{t as conf,n as language};
@@ -0,0 +1 @@
import{Ar as e,Pr as t,Qr as n}from"./index-jg6n1uIt.js";function r(r){let i=n(!1);t(async()=>{await r(!1),i.value=!0}),e(()=>{i.value&&r(!0)})}export{r as t};
@@ -0,0 +1 @@
import{Mr as e,Pr as t}from"./index-jg6n1uIt.js";function n(n,r,i={}){let{pauseWhenHidden:a=!0,immediate:o=!1}=i,s=null,c=!1,l=!1;function u(){let e=typeof r==`function`?r():r;return Math.max(1e3,e)}function d(){s&&=(clearTimeout(s),null)}function f(){d(),!c&&(s=setTimeout(()=>{p()},u()))}async function p(){if(!c){if(a&&document.visibilityState===`hidden`){f();return}if(l){f();return}l=!0;try{await n()}finally{l=!1,f()}}}function m(){c||!a||document.visibilityState===`visible`&&p()}return t(()=>{o?p():f(),a&&document.addEventListener(`visibilitychange`,m)}),e(()=>{c=!0,d(),a&&document.removeEventListener(`visibilitychange`,m)}),{refresh:p,stop:()=>{c=!0,d()}}}export{n as t};
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{Qr as e,Qt as t,vt as n,yt as r}from"./index-jg6n1uIt.js";function i(e){return e===`uncategorized`?`未分类`:e}function a(){let a=e([]),o=e(!1),s=e(0);async function c(e=!1){e||(o.value=!0);try{let{data:e}=await r(n.serverCategories,()=>t.get(`/servers/categories`)),o=e.categories||[];s.value=o.reduce((e,t)=>e+(t.count||0),0),a.value=o.map(e=>({name:e.name,label:i(e.name),count:e.count})).sort((e,t)=>e.name===`uncategorized`?1:t.name===`uncategorized`?-1:e.label.localeCompare(t.label,`zh`))}catch{a.value=[],s.value=0}finally{e||(o.value=!1)}}return{categories:a,loading:o,totalCount:s,loadCategories:c}}export{a as n,i as t};
+1
View File
@@ -0,0 +1 @@
import{t as e}from"./useSnackbar-B9Ji8a2I.js";import{Qr as t,Qt as n}from"./index-jg6n1uIt.js";import{t as r}from"./apiError-BPTeRP4A.js";function i(){let i=t([]),a=t(!1),o=e();async function s(e){a.value=!0;try{let t=e?.perPage??200;if(!e?.all){i.value=(await n.getList(`/servers/`,{per_page:t})).items;return}let r=[],a=1,o=1;do{let e=await n.get(`/servers/`,{page:a,per_page:t});r.push(...e.items||[]),o=e.pages??1,a+=1}while(a<=o);i.value=r}catch(e){i.value=[],o(r(e,`加载服务器列表失败`),`error`)}finally{a.value=!1}}return{servers:i,loading:a,loadServers:s}}export{i as t};
+1
View File
@@ -0,0 +1 @@
import{Cr as e,En as t,J as n,Tn as r,dn as i,hn as a,lt as o,oi as s,q as c,si as l,xn as u}from"./index-jg6n1uIt.js";var d=t({fluid:{type:Boolean,default:!1},...r(),...c(),...o()},`VContainer`),f=u()({name:`VContainer`,props:d(),setup(t,{slots:r}){let{rtlClasses:o}=i(),{dimensionStyles:c}=n(t);return a(()=>e(t.tag,{class:s([`v-container`,{"v-container--fluid":t.fluid},o.value,t.class]),style:l([c.value,t.style])},r)),{}}});function p(){return(e,t=`success`)=>{let n=(e||``).trim()||(t===`error`?`操作失败`:`操作完成`);window.$snackbar?.(n,t)}}export{f as n,p as t};
@@ -0,0 +1,2 @@
import{Br as e,Ir as t,Qr as n,Qt as r,br as i,gr as a,kr as o,oi as s,vr as c,wr as l,yr as u}from"./index-jg6n1uIt.js";import{t as d}from"./_plugin-vue_export-helper-BDNMzG2s.js";var f=new Set(`if.then.else.elif.fi.for.while.do.done.case.esac.in.function.return.break.continue.select.until.cd.ls.grep.egrep.fgrep.find.cat.chmod.chown.docker.podman.kubectl.apt.apt-get.yum.dnf.apk.pip.pip3.npm.npx.ssh.scp.rsync.curl.wget.tar.gzip.gunzip.kill.ps.top.htop.nano.vim.vi.journalctl.systemctl.service.supervisorctl.crontab.nginx.df.du.free.mount.uname.hostname.whoami.id.pwd.head.tail.wc.sort.uniq.awk.sed.cut.tr.xargs.tee.netstat.ss.ip.ping.dig.git.make.nohup.timeout.watch`.split(`.`)),p=new Set([`echo`,`printf`,`test`,`read`,`pushd`,`popd`,`exit`,`set`,`unset`,`export`,`source`,`alias`,`type`,`command`,`hash`,`help`,`history`]);function m(e){return e===`sudo`?`sudo`:f.has(e)?`keyword`:p.has(e)?`builtin`:/^[/~]/.test(e)||e.startsWith(`./`)||e.startsWith(`../`)?`path`:/^\d+(?:\.\d+)?$/.test(e)?`number`:`text`}function h(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r===`#`){let r=n+1;for(;r<e.length&&e[r]!==`
`;)r++;t.push({type:`comment`,value:e.slice(n,r)}),n=r;continue}if(r===`'`||r===`"`){let i=r,a=n+1;for(;a<e.length;){if(e[a]===`\\`&&i===`"`){a+=2;continue}if(e[a]===i){a++;break}a++}t.push({type:`string`,value:e.slice(n,a)}),n=a;continue}if(r==="`"){let r=n+1;for(;r<e.length&&e[r]!=="`";)r++;r<e.length&&r++,t.push({type:`backtick`,value:e.slice(n,r)}),n=r;continue}if(r===`$`){let r=n+1;if(e[r]===`{`){for(;r<e.length&&e[r]!==`}`;)r++;r<e.length&&r++}else if(e[r]===`(`)r++;else for(;r<e.length&&/[\w]/.test(e[r]);)r++;t.push({type:`variable`,value:e.slice(n,r)}),n=r;continue}if(r===`|`||r===`&`||r===`;`){let r=n;e[r]===`|`&&e[r+1]===`|`||e[r]===`&`&&e[r+1]===`&`?r+=2:r+=1;let i=e.slice(n,r);t.push({type:i===`|`||i===`||`?`pipe`:`operator`,value:i}),n=r;continue}if(r===`>`||r===`<`){let r=n;e[r]===`>`&&e[r+1]===`>`||e[r]===`<`&&e[r+1]===`<`?r+=2:r+=1,e[r]===`&`&&r++,t.push({type:`redirect`,value:e.slice(n,r)}),n=r;continue}if(/\s/.test(r)){let r=n;for(;r<e.length&&/\s/.test(e[r]);)r++;t.push({type:`text`,value:e.slice(n,r)}),n=r;continue}if(r===`-`&&e[n+1]===`-`){let r=n+2;for(;r<e.length&&/[\w-]/.test(e[r]);)r++;t.push({type:`flag`,value:e.slice(n,r)}),n=r;continue}if(r===`-`&&/[a-zA-Z]/.test(e[n+1]||``)){let r=n+1;for(;r<e.length&&/[a-zA-Z]/.test(e[r]);)r++;t.push({type:`flag`,value:e.slice(n,r)}),n=r;continue}let i=n;for(;i<e.length&&!/[\s#"'`$|;&<>]/.test(e[i]);)i++;let a=e.slice(n,i);t.push({type:m(a),value:a}),n=i}return t}function g(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}var _={keyword:`sh-keyword`,builtin:`sh-builtin`,sudo:`sh-sudo`,pipe:`sh-pipe`,operator:`sh-operator`,redirect:`sh-redirect`,string:`sh-string`,flag:`sh-flag`,variable:`sh-variable`,backtick:`sh-backtick`,comment:`sh-comment`,number:`sh-number`,path:`sh-path`,text:`sh-text`};function v(e){return e?h(e).map(e=>`<span class="${_[e.type]}">${g(e.value)}</span>`).join(``):``}var y=[`innerHTML`],b=d(l({__name:`ShellHighlightField`,props:{modelValue:{},placeholder:{default:``},disabled:{type:Boolean,default:!1},multiline:{type:Boolean,default:!1},rows:{default:3},size:{default:`default`}},emits:[`update:modelValue`,`keydown`],setup(r,{expose:l,emit:d}){let f=n(null),p=r,m=d,h=a(()=>v(p.modelValue));function g(e){let t=e.target;m(`update:modelValue`,t.value)}function _(e){m(`keydown`,e)}function b(){return f.value}function x(){f.value?.focus()}function S(){let e=f.value;return e?e.value.substring(e.selectionStart??0,e.selectionEnd??0):``}function C(){let e=f.value;e&&(e.focus(),e.select())}async function w(e){let t=f.value;if(!t)return;let n=t.selectionStart??t.value.length,r=t.selectionEnd??n;m(`update:modelValue`,t.value.slice(0,n)+e+t.value.slice(r)),await o(),t.focus();let i=n+e.length;t.setSelectionRange(i,i)}return l({getInputEl:b,focusInput:x,getSelectionText:S,selectAllInput:C,insertAtSelection:w}),(n,a)=>(t(),i(`div`,{class:s([`sh-field position-relative`,{"sh-field--disabled":r.disabled,"sh-field--empty":!r.modelValue,"sh-field--large":r.size===`large`}])},[r.modelValue?(t(),i(`div`,{key:0,class:s([`sh-field__highlight font-mono`,r.multiline?`sh-field__highlight--multi`:`sh-field__highlight--single`]),"aria-hidden":`true`,innerHTML:h.value},null,10,y)):u(``,!0),(t(),c(e(r.multiline?`textarea`:`input`),{ref_key:`inputRef`,ref:f,value:r.modelValue,placeholder:r.placeholder,disabled:r.disabled,rows:r.multiline?r.rows:void 0,class:s([`sh-field__input font-mono`,r.multiline?`sh-field__input--multi`:`sh-field__input--single`]),spellcheck:`false`,autocomplete:`off`,onInput:g,onKeydown:_},null,40,[`value`,`placeholder`,`disabled`,`rows`,`class`]))],2))}}),[[`__scopeId`,`data-v-b73e3452`]]);function x(e){return[...e].sort((e,t)=>e.is_builtin===t.is_builtin?e.sort_order===t.sort_order?e.id-t.id:e.sort_order-t.sort_order:e.is_builtin?1:-1)}function S(){let e=n([]),t=n(!1);async function i(){t.value=!0;try{e.value=x(await r.get(`/terminal/quick-commands`)||[])}catch{throw e.value=[],Error(``)}finally{t.value=!1}}async function a(e,t){await r.post(`/terminal/quick-commands`,{name:e.trim(),cmd:t.trim()}),await i()}async function o(e,t,n){await r.put(`/terminal/quick-commands/${e}`,{name:t.trim(),cmd:n.trim()}),await i()}async function s(e){await r.delete(`/terminal/quick-commands/${e}`),await i()}async function c(t){e.value=x((await r.put(`/terminal/quick-commands/reorder`,{ids:t})).items||[])}return{commands:e,loading:t,load:i,create:a,update:o,remove:s,reorder:c,customCommands:()=>e.value.filter(e=>!e.is_builtin),builtinCommands:()=>e.value.filter(e=>e.is_builtin)}}export{S as n,b as r,x as t};
+1
View File
@@ -0,0 +1 @@
import{p as e}from"./initMonaco-DeGfY2YT.js";var t={comments:{blockComment:[`<!--`,`-->`]},brackets:[[`<`,`>`]],autoClosingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],surroundingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],onEnterRules:[{beforeText:RegExp(`<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},n={defaultToken:``,tokenPostfix:`.xml`,ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,``],{include:`@whitespace`},[/(<)(@qualifiedName)/,[{token:`delimiter`},{token:`tag`,next:`@tag`}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:`delimiter`},{token:`tag`},``,{token:`delimiter`}]],[/(<\?)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/(<\!)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/<\!\[CDATA\[/,{token:`delimiter.cdata`,next:`@cdata`}],[/&\w+;/,`string.escape`]],cdata:[[/[^\]]+/,``],[/\]\]>/,{token:`delimiter.cdata`,next:`@pop`}],[/\]/,``]],tag:[[/[ \t\r\n]+/,``],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,[`attribute.name`,``,`attribute.value`]],[/@qualifiedName/,`attribute.name`],[/\?>/,{token:`delimiter`,next:`@pop`}],[/(\/)(>)/,[{token:`tag`},{token:`delimiter`,next:`@pop`}]],[/>/,{token:`delimiter`,next:`@pop`}]],whitespace:[[/[ \t\r\n]+/,``],[/<!--/,{token:`comment`,next:`@comment`}]],comment:[[/[^<\-]+/,`comment.content`],[/-->/,{token:`comment`,next:`@pop`}],[/<!--/,`comment.content.invalid`],[/[<\-]/,`comment.content`]]}};export{t as conf,n as language};
+1
View File
@@ -0,0 +1 @@
import{p as e}from"./initMonaco-DeGfY2YT.js";var t={comments:{lineComment:`#`},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:e.IndentAction.Indent}}]},n={tokenPostfix:`.yaml`,brackets:[{token:`delimiter.bracket`,open:`{`,close:`}`},{token:`delimiter.square`,open:`[`,close:`]`}],keywords:[`true`,`True`,`TRUE`,`false`,`False`,`FALSE`,`null`,`Null`,`Null`,`~`],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:`@whitespace`},{include:`@comment`},[/%[^ ]+.*$/,`meta.directive`],[/---/,`operators.directivesEnd`],[/\.{3}/,`operators.documentEnd`],[/[-?:](?= )/,`operators`],{include:`@anchor`},{include:`@tagHandle`},{include:`@flowCollections`},{include:`@blockStyle`},[/@numberInteger(?![ \t]*\S+)/,`number`],[/@numberFloat(?![ \t]*\S+)/,`number.float`],[/@numberOctal(?![ \t]*\S+)/,`number.octal`],[/@numberHex(?![ \t]*\S+)/,`number.hex`],[/@numberInfinity(?![ \t]*\S+)/,`number.infinity`],[/@numberNaN(?![ \t]*\S+)/,`number.nan`],[/@numberDate(?![ \t]*\S+)/,`number.date`],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,[`type`,`white`,`operators`,`white`]],{include:`@flowScalars`},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],object:[{include:`@whitespace`},{include:`@comment`},[/\}/,`@brackets`,`@pop`],[/,/,`delimiter.comma`],[/:(?= )/,`operators`],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,`type`],{include:`@flowCollections`},{include:`@flowScalars`},{include:`@tagHandle`},{include:`@anchor`},{include:`@flowNumber`},[/[^\},]+/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],array:[{include:`@whitespace`},{include:`@comment`},[/\]/,`@brackets`,`@pop`],[/,/,`delimiter.comma`],{include:`@flowCollections`},{include:`@flowScalars`},{include:`@tagHandle`},{include:`@anchor`},{include:`@flowNumber`},[/[^\],]+/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],multiString:[[/^( +).+$/,`string`,`@multiStringContinued.$1`]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":`string`,"@default":{token:`@rematch`,next:`@popall`}}}]],whitespace:[[/[ \t\r\n]+/,`white`]],comment:[[/#.*$/,`comment`]],flowCollections:[[/\[/,`@brackets`,`@array`],[/\{/,`@brackets`,`@object`]],flowScalars:[[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/'[^']*'/,`string`],[/"/,`string`,`@doubleQuotedString`]],doubleQuotedString:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],blockStyle:[[/[>|][0-9]*[+-]?$/,`operators`,`@multiString`]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,`number`],[/@numberFloat(?=[ \t]*[,\]\}])/,`number.float`],[/@numberOctal(?=[ \t]*[,\]\}])/,`number.octal`],[/@numberHex(?=[ \t]*[,\]\}])/,`number.hex`],[/@numberInfinity(?=[ \t]*[,\]\}])/,`number.infinity`],[/@numberNaN(?=[ \t]*[,\]\}])/,`number.nan`],[/@numberDate(?=[ \t]*[,\]\}])/,`number.date`]],tagHandle:[[/\![^ ]*/,`tag`]],anchor:[[/[&*][^ ]+/,`namespace`]]}};export{t as conf,n as language};
+1 -1
View File
@@ -5,7 +5,7 @@
<link rel="icon" href="/app/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Nexus</title>
<script type="module" crossorigin src="/app/assets/index-DpeY2r4a.js"></script>
<script type="module" crossorigin src="/app/assets/index-jg6n1uIt.js"></script>
<link rel="stylesheet" crossorigin href="/app/assets/index-DUUkodzN.css">
</head>
<body>