@gameap/frontend 4.1.0-dev1 → 4.1.0-dev10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/AdminClientCertificatesView-Bg8X_Ouc.js +370 -0
  2. package/dist/AdminDaemonTaskListView-DbJp0aqQ.js +316 -0
  3. package/dist/AdminDaemonTaskOutputView-DNCHQfxx.js +87 -0
  4. package/dist/AdminGamesEdit-jco7cBfk.js +473 -0
  5. package/dist/AdminGamesList-CMjsgEpx.js +518 -0
  6. package/dist/AdminModEdit-BlRu_09M.js +529 -0
  7. package/dist/AdminNodeShowView-BHxJkjYJ.js +175 -0
  8. package/dist/AdminNodesCreateView-DihmM46W.js +87 -0
  9. package/dist/AdminNodesEditView-CVACSido.js +65 -0
  10. package/dist/AdminNodesView-CHtiU6dZ.js +167 -0
  11. package/dist/AdminPluginsView-CRjF3BPs.js +984 -0
  12. package/dist/AdminServersCreate-5f8x6eZO.js +342 -0
  13. package/dist/AdminServersEdit-CA7711nJ.js +400 -0
  14. package/dist/AdminServersList-De5ZMEGZ.js +168 -0
  15. package/dist/AdminUsersEditView-DeYo98vi.js +308 -0
  16. package/dist/AdminUsersView-C8fKEhpr.js +446 -0
  17. package/dist/CreateModForm-CqkvVLfN.js +123 -0
  18. package/dist/CreateNodeModal-DOXVtVLQ.js +100 -0
  19. package/dist/DsIpSelector-C676Y19X.js +90 -0
  20. package/dist/EmptyView-Bf6zmQQt.js +9 -0
  21. package/dist/FileManager-DSa9v4Ex.js +5932 -0
  22. package/dist/GameIcon-DaYNlnur.js +87 -0
  23. package/dist/GameModSelector-CQBT8ZLu.js +95 -0
  24. package/dist/InputManyList-DUOtepb8.js +110 -0
  25. package/dist/InputTextList-lPhVIV04.js +63 -0
  26. package/dist/PluginPendingView-DaDaN30Q.js +34 -0
  27. package/dist/ProfileView-Dw2T3X8m.js +295 -0
  28. package/dist/RconConsole-CvxNBv0B.js +74 -0
  29. package/dist/RconPlayers-odUKa0Ps.js +424 -0
  30. package/dist/ServerConsole-B9v2PcWb.js +99 -0
  31. package/dist/ServerControlButton-D_zJbxr6.js +186 -0
  32. package/dist/ServerIdView-_vGQRk7y.js +609 -0
  33. package/dist/ServerSelector-6fCqL3e9.js +52 -0
  34. package/dist/ServerSettings-C6-tkLTH.js +84 -0
  35. package/dist/ServerStatus-CcqB0h1r.js +63 -0
  36. package/dist/ServerTasks-BcaZzvz7.js +857 -0
  37. package/dist/ServersView-S_G_kuGj.js +313 -0
  38. package/dist/SettingsParameters-u3Awy4Vf.js +89 -0
  39. package/dist/SmartPortSelector-BRSQFVqT.js +174 -0
  40. package/dist/TokensView-C1RFJSB5.js +392 -0
  41. package/dist/UpdateNodeForm-BAhzQLt-.js +652 -0
  42. package/dist/UserServerPrivileges-Q2wQMyHi.js +319 -0
  43. package/dist/_createCompounder-CXjx5-CF.js +241 -0
  44. package/dist/camelCase-CSrB2MWj.js +8 -0
  45. package/dist/capitalize-BZSBvd6d.js +40 -0
  46. package/dist/clientCertificates-C0FlDwsb.js +53 -0
  47. package/dist/favicon-32x32.png +0 -0
  48. package/dist/favicon-96x96.png +0 -0
  49. package/dist/favicon.ico +0 -0
  50. package/dist/fonts/gicon.eot +0 -0
  51. package/dist/fonts/gicon.svg +33 -0
  52. package/dist/fonts/gicon.ttf +0 -0
  53. package/dist/fonts/gicon.woff +0 -0
  54. package/dist/fonts/gicon.woff2 +0 -0
  55. package/dist/frontend.css +6 -0
  56. package/dist/gameList-kucszmx0.js +115 -0
  57. package/dist/gameap.svg +3 -0
  58. package/dist/gameap_full.svg +9 -0
  59. package/dist/images/gap_logo_white.png +0 -0
  60. package/dist/images/gap_logo_white_mini.png +0 -0
  61. package/dist/images/gicon.svg +18 -0
  62. package/dist/images/icons/save-white.svg +1 -0
  63. package/dist/images/icons/save.svg +1 -0
  64. package/dist/index-9fvX7FD-.js +3840 -0
  65. package/dist/index.js +1 -0
  66. package/dist/isEmpty-D0Z8Rneq.js +263 -0
  67. package/dist/join-CmlzL0H9.js +7 -0
  68. package/dist/loader-qtG-Lf6M.js +131 -0
  69. package/dist/mockServiceWorker.js +349 -0
  70. package/dist/snakeCase-nnM4dAra.js +7 -0
  71. package/dist/validators-ChBGsKft.js +65 -0
  72. package/package.json +6 -4
@@ -0,0 +1,175 @@
1
+ import { ref as k, computed as B, onMounted as I, createElementBlock as y, openBlock as _, Fragment as L, createVNode as s, createCommentVNode as D, unref as e, withCtx as i, createElementVNode as n, toDisplayString as o, createBlock as h } from "vue";
2
+ import { i as S, t as a, e as N, m as U, _ as v, a as b, B as V, l as A, b as P } from "./index-9fvX7FD-.js";
3
+ import { NCard as T, NTable as j } from "naive-ui";
4
+ import { storeToRefs as F } from "pinia";
5
+ import { useRoute as M } from "vue-router";
6
+ const O = {
7
+ key: 0,
8
+ class: "mb-5"
9
+ }, Q = {
10
+ __name: "AdminNodeShowView",
11
+ setup(E) {
12
+ const m = M(), f = S(), { daemonInfo: t, loading: x } = F(f), r = k(!1), c = k(0);
13
+ async function w(d, u) {
14
+ r.value = !0, c.value = 0;
15
+ try {
16
+ const g = await P.get(d, {
17
+ responseType: "blob",
18
+ onDownloadProgress: (p) => {
19
+ p.total && (c.value = Math.round(p.loaded * 100 / p.total));
20
+ }
21
+ }), $ = new Blob([g.data]), l = document.createElement("a");
22
+ l.href = window.URL.createObjectURL($), l.setAttribute("download", u), document.body.appendChild(l), l.click(), document.body.removeChild(l), window.URL.revokeObjectURL(l.href);
23
+ } catch (g) {
24
+ N(g);
25
+ } finally {
26
+ r.value = !1, c.value = 0;
27
+ }
28
+ }
29
+ function z() {
30
+ w(`/api/dedicated_servers/${m.params.id}/logs.zip`, "logs.zip");
31
+ }
32
+ function C() {
33
+ w("/api/dedicated_servers/certificates.zip", "certificates.zip");
34
+ }
35
+ const R = B(() => {
36
+ let d = [
37
+ { route: "/", text: "GameAP", icon: "gicon gicon-gameap" },
38
+ { route: { name: "admin.nodes.index" }, text: a("dedicated_servers.dedicated_servers") }
39
+ ];
40
+ return t.value.name && d.push({ text: t.value.name }), d;
41
+ });
42
+ return I(() => {
43
+ f.setNodeId(m.params.id), f.fetchDaemonInfo().catch((d) => {
44
+ N(d);
45
+ });
46
+ }), (d, u) => (_(), y(L, null, [
47
+ s(e(U), { items: R.value }, null, 8, ["items"]),
48
+ s(v, {
49
+ color: "blue",
50
+ size: "middle",
51
+ class: "mb-5 mr-1",
52
+ route: { name: "admin.nodes.edit", params: { id: e(m).params.id } }
53
+ }, {
54
+ default: i(() => [
55
+ s(e(b), {
56
+ name: "edit",
57
+ class: "mr-0.5"
58
+ }),
59
+ n("span", null, o(e(a)("main.edit")), 1)
60
+ ]),
61
+ _: 1
62
+ }, 8, ["route"]),
63
+ s(v, {
64
+ color: "orange",
65
+ size: "middle",
66
+ class: "mb-5 mr-1",
67
+ disabled: r.value,
68
+ onClick: z
69
+ }, {
70
+ default: i(() => [
71
+ s(e(b), {
72
+ name: "download",
73
+ class: "mr-0.5"
74
+ }),
75
+ n("span", null, o(e(a)("dedicated_servers.download_logs")), 1)
76
+ ]),
77
+ _: 1
78
+ }, 8, ["disabled"]),
79
+ s(v, {
80
+ color: "green",
81
+ size: "middle",
82
+ class: "mb-5 mr-1",
83
+ disabled: r.value,
84
+ onClick: C
85
+ }, {
86
+ default: i(() => [
87
+ s(e(b), {
88
+ name: "download",
89
+ class: "mr-0.5"
90
+ }),
91
+ n("span", null, o(e(a)("dedicated_servers.download_certificates")), 1)
92
+ ]),
93
+ _: 1
94
+ }, 8, ["disabled"]),
95
+ r.value ? (_(), y("div", O, [
96
+ s(e(V), { progress: c.value }, null, 8, ["progress"])
97
+ ])) : D("", !0),
98
+ s(e(T), {
99
+ size: "small",
100
+ class: "mb-3",
101
+ "header-class": "g-card-header",
102
+ segmented: {
103
+ content: !0,
104
+ footer: "soft"
105
+ }
106
+ }, {
107
+ default: i(() => [
108
+ e(x) ? (_(), h(e(A), { key: 0 })) : (_(), h(e(j), {
109
+ key: 1,
110
+ bordered: !1,
111
+ "single-line": !0
112
+ }, {
113
+ default: i(() => [
114
+ n("tbody", null, [
115
+ n("tr", null, [
116
+ u[0] || (u[0] = n("td", null, [
117
+ n("strong", null, "ID:")
118
+ ], -1)),
119
+ n("td", null, o(e(t).id), 1)
120
+ ]),
121
+ n("tr", null, [
122
+ n("td", null, [
123
+ n("strong", null, o(e(a)("dedicated_servers.name")) + ":", 1)
124
+ ]),
125
+ n("td", null, o(e(t).name), 1)
126
+ ]),
127
+ n("tr", null, [
128
+ n("td", null, [
129
+ n("strong", null, o(e(a)("dedicated_servers.gdaemon_api_key")) + ":", 1)
130
+ ]),
131
+ n("td", null, o(e(t).api_key), 1)
132
+ ]),
133
+ n("tr", null, [
134
+ n("td", null, [
135
+ n("strong", null, o(e(a)("dedicated_servers.gdaemon_version")) + ":", 1)
136
+ ]),
137
+ n("td", null, o(e(t).version && e(t).version.version ? e(t).version.version + " (" + e(t).version.compile_date + ")" : e(a)("dedicated_servers.gdaemon_empty_info")), 1)
138
+ ]),
139
+ n("tr", null, [
140
+ n("td", null, [
141
+ n("strong", null, o(e(a)("dedicated_servers.gdaemon_uptime")) + ":", 1)
142
+ ]),
143
+ n("td", null, o(e(t).base_info && e(t).base_info.uptime ? e(t).base_info.uptime : e(a)("dedicated_servers.gdaemon_empty_info")), 1)
144
+ ]),
145
+ n("tr", null, [
146
+ n("td", null, [
147
+ n("strong", null, o(e(a)("dedicated_servers.gdaemon_online_servers_count")) + ":", 1)
148
+ ]),
149
+ n("td", null, o(e(t).base_info && e(t).base_info.online_servers_count ? e(t).base_info.online_servers_count : e(a)("dedicated_servers.gdaemon_empty_info")), 1)
150
+ ]),
151
+ n("tr", null, [
152
+ n("td", null, [
153
+ n("strong", null, o(e(a)("dedicated_servers.gdaemon_working_tasks_count")) + ":", 1)
154
+ ]),
155
+ n("td", null, o(e(t).base_info && e(t).base_info.working_tasks_count ? e(t).base_info.working_tasks_count : e(a)("dedicated_servers.gdaemon_empty_info")), 1)
156
+ ]),
157
+ n("tr", null, [
158
+ n("td", null, [
159
+ n("strong", null, o(e(a)("dedicated_servers.gdaemon_waiting_tasks_count")) + ":", 1)
160
+ ]),
161
+ n("td", null, o(e(t).base_info && e(t).base_info.waiting_tasks_count ? e(t).base_info.waiting_tasks_count : e(a)("dedicated_servers.gdaemon_empty_info")), 1)
162
+ ])
163
+ ])
164
+ ]),
165
+ _: 1
166
+ }))
167
+ ]),
168
+ _: 1
169
+ })
170
+ ], 64));
171
+ }
172
+ };
173
+ export {
174
+ Q as default
175
+ };
@@ -0,0 +1,87 @@
1
+ import { computed as d, onMounted as x, ref as S, resolveComponent as N, createElementBlock as b, openBlock as V, Fragment as M, createVNode as n, unref as a, withCtx as f, createElementVNode as $, toDisplayString as w } from "vue";
2
+ import { x as y, t as r, e as m, m as A, _ as D, a as E, n as F } from "./index-9fvX7FD-.js";
3
+ import { u as O } from "./clientCertificates-C0FlDwsb.js";
4
+ import { useRoute as R, useRouter as j } from "vue-router";
5
+ import { storeToRefs as p } from "pinia";
6
+ import { _ as B } from "./UpdateNodeForm-BAhzQLt-.js";
7
+ import { s as L } from "./snakeCase-nnM4dAra.js";
8
+ const q = { class: "hidden lg:inline" }, K = {
9
+ __name: "AdminNodesCreateView",
10
+ setup(G) {
11
+ R();
12
+ const _ = j(), s = y(), i = O(), v = d(() => [
13
+ { route: "/", text: "GameAP", icon: "gicon gicon-gameap" },
14
+ { route: { name: "admin.nodes.index" }, text: r("dedicated_servers.dedicated_servers") },
15
+ { text: r("dedicated_servers.create") }
16
+ ]);
17
+ x(() => {
18
+ i.fetchClientCertificates().catch((e) => {
19
+ m(e);
20
+ }), s.fetchAutoSetupData().catch((e) => {
21
+ m(e);
22
+ });
23
+ });
24
+ const { certificates: C } = p(i), { autoSetupData: c } = p(s), g = d(() => i.loading.value), h = d(() => C.value.map((e) => ({
25
+ label: e.fingerprint,
26
+ value: e.id
27
+ }))), t = S({
28
+ name: "",
29
+ description: "",
30
+ location: ""
31
+ }), u = async () => {
32
+ t.value.serverCertificateFile ? t.value.gdaemonServerCert = await t.value.serverCertificateFile.text() : t.value.gdaemonServerCert = "";
33
+ const e = Object.fromEntries(
34
+ Object.entries(t.value).map(([o, l]) => [L(o), l])
35
+ );
36
+ s.createNode(e).then(() => {
37
+ F({
38
+ content: r("dedicated_servers.create_success_msg"),
39
+ type: "success"
40
+ }, () => {
41
+ _.push({ name: "admin.nodes.index" });
42
+ });
43
+ }).catch((o) => {
44
+ m(o);
45
+ });
46
+ };
47
+ return (e, o) => {
48
+ const l = N("CreateNodeModal");
49
+ return V(), b(M, null, [
50
+ n(a(A), { items: v.value }, null, 8, ["items"]),
51
+ n(B, {
52
+ loading: g.value,
53
+ modelValue: t.value,
54
+ "onUpdate:modelValue": o[0] || (o[0] = (k) => t.value = k),
55
+ onSend: u,
56
+ "client-certificate-options": h.value
57
+ }, {
58
+ button: f(() => [
59
+ n(D, {
60
+ class: "mt-2",
61
+ color: "green",
62
+ onClick: u
63
+ }, {
64
+ default: f(() => [
65
+ n(a(E), {
66
+ name: "add-square",
67
+ class: "mr-0.5"
68
+ }),
69
+ $("span", q, " " + w(a(r)("main.create")), 1)
70
+ ]),
71
+ _: 1
72
+ })
73
+ ]),
74
+ _: 1
75
+ }, 8, ["loading", "modelValue", "client-certificate-options"]),
76
+ n(l, {
77
+ link: a(c).link,
78
+ token: a(c).token,
79
+ host: a(c).host
80
+ }, null, 8, ["link", "token", "host"])
81
+ ], 64);
82
+ };
83
+ }
84
+ };
85
+ export {
86
+ K as default
87
+ };
@@ -0,0 +1,65 @@
1
+ import { computed as s, onMounted as x, ref as b, createElementBlock as h, openBlock as N, Fragment as S, createVNode as d, unref as O } from "vue";
2
+ import { i as V, t as i, e as c, m as j, n as E } from "./index-9fvX7FD-.js";
3
+ import { u as k } from "./clientCertificates-C0FlDwsb.js";
4
+ import { useRoute as F, useRouter as R } from "vue-router";
5
+ import { storeToRefs as l } from "pinia";
6
+ import { _ as U } from "./UpdateNodeForm-BAhzQLt-.js";
7
+ import { c as w } from "./camelCase-CSrB2MWj.js";
8
+ import { s as y } from "./snakeCase-nnM4dAra.js";
9
+ const z = {
10
+ __name: "AdminNodesEditView",
11
+ setup(A) {
12
+ const u = F(), m = R(), a = V(), r = k(), f = s(() => [
13
+ { route: "/", text: "GameAP", icon: "gicon gicon-gameap" },
14
+ { route: { name: "admin.nodes.index" }, text: i("dedicated_servers.dedicated_servers") },
15
+ { text: i("dedicated_servers.edit") }
16
+ ]);
17
+ x(() => {
18
+ a.setNodeId(u.params.id), a.fetchNode().then(() => {
19
+ t.value = Object.fromEntries(
20
+ Object.entries(p.value).map(([e, o]) => [w(e), o])
21
+ );
22
+ }).catch((e) => {
23
+ c(e);
24
+ }), r.fetchClientCertificates().catch((e) => {
25
+ c(e);
26
+ });
27
+ });
28
+ const { node: p } = l(a), { certificates: v } = l(r), _ = s(() => a.loading.value || r.loading.value), g = s(() => v.value.map((e) => ({
29
+ label: e.fingerprint,
30
+ value: e.id
31
+ }))), t = b({
32
+ name: "",
33
+ description: "",
34
+ location: ""
35
+ }), C = async () => {
36
+ t.value.serverCertificateFile ? t.value.gdaemonServerCert = await t.value.serverCertificateFile.text() : t.value.gdaemonServerCert = "";
37
+ const e = Object.fromEntries(
38
+ Object.entries(t.value).map(([o, n]) => [y(o), n])
39
+ );
40
+ a.saveNode(e).then(() => {
41
+ E({
42
+ content: i("dedicated_servers.update_success_msg"),
43
+ type: "success"
44
+ }, () => {
45
+ m.push({ name: "admin.nodes.index" });
46
+ });
47
+ }).catch((o) => {
48
+ c(o);
49
+ });
50
+ };
51
+ return (e, o) => (N(), h(S, null, [
52
+ d(O(j), { items: f.value }, null, 8, ["items"]),
53
+ d(U, {
54
+ loading: _.value,
55
+ modelValue: t.value,
56
+ "onUpdate:modelValue": o[0] || (o[0] = (n) => t.value = n),
57
+ onSend: C,
58
+ "client-certificate-options": g.value
59
+ }, null, 8, ["loading", "modelValue", "client-certificate-options"])
60
+ ], 64));
61
+ }
62
+ };
63
+ export {
64
+ z as default
65
+ };
@@ -0,0 +1,167 @@
1
+ import { computed as m, ref as b, onMounted as z, createElementBlock as C, openBlock as w, Fragment as $, createVNode as s, unref as i, withCtx as o, createElementVNode as u, toDisplayString as p, h as a } from "vue";
2
+ import { x as D, t as e, e as _, m as S, _ as n, a as r, l as T, n as B } from "./index-9fvX7FD-.js";
3
+ import { storeToRefs as E } from "pinia";
4
+ import { NDataTable as V, NEmpty as j } from "naive-ui";
5
+ import { j as A } from "./join-CmlzL0H9.js";
6
+ const M = {
7
+ __name: "AdminNodesView",
8
+ setup(F) {
9
+ const d = D(), f = m(() => [
10
+ { route: "/", text: "GameAP", icon: "gicon gicon-gameap" },
11
+ { route: { name: "admin.nodes.index" }, text: e("sidebar.dedicated_servers") }
12
+ ]), v = () => [
13
+ {
14
+ title: e("dedicated_servers.name"),
15
+ key: "name"
16
+ },
17
+ {
18
+ title: e("dedicated_servers.location"),
19
+ key: "location"
20
+ },
21
+ {
22
+ title: e("dedicated_servers.provider"),
23
+ key: "provider"
24
+ },
25
+ {
26
+ title: e("dedicated_servers.ip"),
27
+ key: "ip",
28
+ render(t) {
29
+ return A(t.ip, ", ");
30
+ }
31
+ },
32
+ {
33
+ title: e("dedicated_servers.os"),
34
+ key: "os"
35
+ },
36
+ {
37
+ title: e("main.actions"),
38
+ render(t) {
39
+ return [
40
+ a(n, {
41
+ color: "green",
42
+ size: "small",
43
+ class: "mr-0.5",
44
+ route: { name: "admin.nodes.view", params: { id: t.id } }
45
+ }, { default: () => [
46
+ a(r, { name: "view" }),
47
+ a("span", { class: "hidden lg:inline" }, e("main.view"))
48
+ ] }),
49
+ a(n, {
50
+ color: "blue",
51
+ size: "small",
52
+ class: "mr-0.5",
53
+ route: { name: "admin.nodes.edit", params: { id: t.id } }
54
+ }, { default: () => [
55
+ a(r, { name: "edit" }),
56
+ a("span", { class: "hidden lg:inline" }, e("main.edit"))
57
+ ] }),
58
+ a(n, {
59
+ color: "red",
60
+ size: "small",
61
+ text: e("main.delete"),
62
+ onClick: () => {
63
+ N(t.id);
64
+ }
65
+ }, { default: () => [
66
+ a(r, { name: "delete" }),
67
+ a("span", { class: "hidden lg:inline" }, e("main.delete"))
68
+ ] })
69
+ ];
70
+ }
71
+ }
72
+ ], { loading: g, nodes: y } = E(d), h = b(v()), k = {
73
+ pageSize: 20
74
+ };
75
+ z(() => {
76
+ l();
77
+ });
78
+ const l = () => {
79
+ d.fetchNodesByFilter([]).catch((t) => {
80
+ _(t);
81
+ });
82
+ }, x = m(() => y.value.map((t) => ({
83
+ id: t.id,
84
+ name: t.name,
85
+ location: t.location,
86
+ provider: t.provider,
87
+ ip: t.ip,
88
+ os: t.os
89
+ }))), N = (t) => {
90
+ window.$dialog.success({
91
+ title: e("dedicated_servers.delete_confirm_msg"),
92
+ positiveText: e("main.yes"),
93
+ negativeText: e("main.no"),
94
+ closable: !1,
95
+ onPositiveClick: () => {
96
+ d.deleteNode(t).then(() => {
97
+ B({
98
+ content: e("dedicated_servers.delete_success_msg"),
99
+ type: "success"
100
+ }, () => {
101
+ l();
102
+ });
103
+ }).catch((c) => {
104
+ _(c);
105
+ });
106
+ },
107
+ onNegativeClick: () => {
108
+ }
109
+ });
110
+ };
111
+ return (t, c) => (w(), C($, null, [
112
+ s(i(S), { items: f.value }, null, 8, ["items"]),
113
+ s(n, {
114
+ color: "green",
115
+ size: "middle",
116
+ class: "mb-5 mr-1",
117
+ route: { name: "admin.nodes.create" }
118
+ }, {
119
+ default: o(() => [
120
+ s(i(r), {
121
+ name: "add-square",
122
+ class: "mr-0.5"
123
+ }),
124
+ u("span", null, p(i(e)("dedicated_servers.create")), 1)
125
+ ]),
126
+ _: 1
127
+ }),
128
+ s(n, {
129
+ color: "orange",
130
+ size: "middle",
131
+ class: "mb-5",
132
+ route: { name: "admin.client_certificates.index" }
133
+ }, {
134
+ default: o(() => [
135
+ s(i(r), {
136
+ name: "certificate",
137
+ class: "mr-0.5"
138
+ }),
139
+ u("span", null, p(i(e)("client_certificates.client_certificates")), 1)
140
+ ]),
141
+ _: 1
142
+ }),
143
+ s(i(V), {
144
+ ref: "tableRef",
145
+ bordered: !1,
146
+ "single-line": !0,
147
+ columns: h.value,
148
+ data: x.value,
149
+ loading: i(g),
150
+ pagination: k
151
+ }, {
152
+ loading: o(() => [
153
+ s(i(T))
154
+ ]),
155
+ empty: o(() => [
156
+ s(i(j), {
157
+ description: i(e)("servers.empty_list")
158
+ }, null, 8, ["description"])
159
+ ]),
160
+ _: 1
161
+ }, 8, ["columns", "data", "loading"])
162
+ ], 64));
163
+ }
164
+ };
165
+ export {
166
+ M as default
167
+ };