@gameap/frontend 4.1.0-dev1 → 4.1.0-dev2

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 (61) hide show
  1. package/dist/AdminClientCertificatesView-DQTMJ6LY.js +368 -0
  2. package/dist/AdminDaemonTaskListView-Bx3e0Miy.js +316 -0
  3. package/dist/AdminDaemonTaskOutputView-BJtLdoAq.js +87 -0
  4. package/dist/AdminGamesEdit-hDe3Pr-7.js +470 -0
  5. package/dist/AdminGamesList-CM1xADCW.js +500 -0
  6. package/dist/AdminModEdit-DDKd6Vga.js +526 -0
  7. package/dist/AdminNodeShowView-DMoEY2Cu.js +167 -0
  8. package/dist/AdminNodesCreateView-BXZDQIJ1.js +85 -0
  9. package/dist/AdminNodesEditView-xO7-szjJ.js +66 -0
  10. package/dist/AdminNodesView-ugTPiC4h.js +161 -0
  11. package/dist/AdminServersCreate-DOygFz_E.js +345 -0
  12. package/dist/AdminServersEdit-cZX6UGB1.js +400 -0
  13. package/dist/AdminServersList-CC50WRsv.js +165 -0
  14. package/dist/AdminUsersEditView-CXpMKFfI.js +305 -0
  15. package/dist/AdminUsersView-DGuGEHVR.js +443 -0
  16. package/dist/CreateModForm-CqhcrNFp.js +122 -0
  17. package/dist/CreateNodeModal-BvbJTKhD.js +93 -0
  18. package/dist/DsIpSelector-DN9IyT4L.js +90 -0
  19. package/dist/FileManager-8TWHezyM.js +31882 -0
  20. package/dist/GameModSelector-DRIaCbGY.js +94 -0
  21. package/dist/InputManyList-By5xECIK.js +110 -0
  22. package/dist/InputTextList-Bm2Ofq5J.js +63 -0
  23. package/dist/PluginPendingView-DHd_yijv.js +31 -0
  24. package/dist/RconConsole-DH9XeOu3.js +75 -0
  25. package/dist/RconPlayers-GrvCMJX3.js +420 -0
  26. package/dist/ServerConsole-BHHnpxJy.js +98 -0
  27. package/dist/ServerIdView-BfqrYuar.js +577 -0
  28. package/dist/ServerSelector-QMK1qiXa.js +52 -0
  29. package/dist/ServerSettings-Cz6C8Dlh.js +84 -0
  30. package/dist/ServerStatus-DBJW9C6H.js +63 -0
  31. package/dist/ServerTasks-Bs3iGYY3.js +854 -0
  32. package/dist/SettingsParameters-DCqhqxHk.js +87 -0
  33. package/dist/SmartPortSelector-DektJC6p.js +161 -0
  34. package/dist/UpdateNodeForm-CwirLUIK.js +648 -0
  35. package/dist/UserServerPrivileges-utyKdh7O.js +318 -0
  36. package/dist/_commonjsHelpers-C6fGbg64.js +6 -0
  37. package/dist/_createCompounder-DSupx5mD.js +241 -0
  38. package/dist/camelCase-WcUYdRB3.js +8 -0
  39. package/dist/capitalize-DRKkBaYR.js +40 -0
  40. package/dist/clientCertificates-BsJdUHYw.js +53 -0
  41. package/dist/favicon-32x32.png +0 -0
  42. package/dist/favicon-96x96.png +0 -0
  43. package/dist/favicon.ico +0 -0
  44. package/dist/fonts/gicon.eot +0 -0
  45. package/dist/fonts/gicon.svg +33 -0
  46. package/dist/fonts/gicon.ttf +0 -0
  47. package/dist/fonts/gicon.woff +0 -0
  48. package/dist/fonts/gicon.woff2 +0 -0
  49. package/dist/frontend.css +14 -0
  50. package/dist/gameList-DpGDCxFE.js +115 -0
  51. package/dist/images/gap_logo_white.png +0 -0
  52. package/dist/images/gap_logo_white_mini.png +0 -0
  53. package/dist/images/gicon.svg +18 -0
  54. package/dist/images/icons/save-white.svg +1 -0
  55. package/dist/images/icons/save.svg +1 -0
  56. package/dist/index-60qEjGuU.js +5371 -0
  57. package/dist/index.js +1 -0
  58. package/dist/loader-CrZTMKcy.js +131 -0
  59. package/dist/mockServiceWorker.js +349 -0
  60. package/dist/snakeCase-CTCA7tap.js +7 -0
  61. package/package.json +1 -2
@@ -0,0 +1,94 @@
1
+ import { mergeModels as x, useModel as p, onUnmounted as C, computed as c, watch as r, resolveComponent as N, createElementBlock as O, openBlock as P, createElementVNode as s, withDirectives as b, createVNode as n, vModelText as f, unref as u, withCtx as M, h as V } from "vue";
2
+ import { storeToRefs as w } from "pinia";
3
+ import { q as D, t as h, g as j } from "./index-60qEjGuU.js";
4
+ import { u as k } from "./gameList-DpGDCxFE.js";
5
+ import { NFormItem as G } from "naive-ui";
6
+ const y = { class: "mb-3" }, B = { class: "mb-3" }, R = {
7
+ __name: "GameModSelector",
8
+ props: /* @__PURE__ */ x({
9
+ games: Object,
10
+ gamePath: "game",
11
+ gameModPath: "gameMod",
12
+ gameSelectDisabled: !1
13
+ }, {
14
+ game: {},
15
+ gameModifiers: {},
16
+ gameMod: {},
17
+ gameModModifiers: {}
18
+ }),
19
+ emits: ["update:game", "update:gameMod"],
20
+ setup(m) {
21
+ const S = m, o = p(m, "game"), l = p(m, "gameMod"), g = D(), d = k(), { gameModsList: v } = w(d);
22
+ C(() => {
23
+ d.setSelectedGameMod(null), g.setGameCode(null);
24
+ });
25
+ const L = (a) => [
26
+ V(j, { game: a.value, class: "mr-2" }),
27
+ a.label
28
+ ], U = c(() => Object.entries(S.games).map(([a, e]) => ({ value: a, label: e }))), _ = c(() => v.value.map((a) => ({ value: Number(a.id), label: a.name })));
29
+ return r(o, () => {
30
+ g.setGameCode(o.value), d.fetchGameModsList(o.value);
31
+ }), r(l, () => {
32
+ d.setSelectedGameMod(l.value);
33
+ }), r(v, (a) => {
34
+ let e = null;
35
+ a.length > 0 && (e = a[0].id), a.find((t) => t.id === l.value) && (e = l.value), l.value = e;
36
+ }), (a, e) => {
37
+ const i = N("n-select");
38
+ return P(), O("div", null, [
39
+ s("div", y, [
40
+ b(s("input", {
41
+ type: "hidden",
42
+ name: "game_id",
43
+ "onUpdate:modelValue": e[0] || (e[0] = (t) => o.value = t)
44
+ }, null, 512), [
45
+ [f, o.value]
46
+ ]),
47
+ n(u(G), {
48
+ label: u(h)("labels.game_id"),
49
+ path: m.gamePath
50
+ }, {
51
+ default: M(() => [
52
+ n(i, {
53
+ filterable: "",
54
+ disabled: m.gameSelectDisabled,
55
+ value: o.value,
56
+ "onUpdate:value": e[1] || (e[1] = (t) => o.value = t),
57
+ options: U.value,
58
+ "render-label": L
59
+ }, null, 8, ["disabled", "value", "options"])
60
+ ]),
61
+ _: 1
62
+ }, 8, ["label", "path"])
63
+ ]),
64
+ s("div", B, [
65
+ b(s("input", {
66
+ type: "hidden",
67
+ name: "game_mod_id",
68
+ "onUpdate:modelValue": e[2] || (e[2] = (t) => l.value = t)
69
+ }, null, 512), [
70
+ [f, l.value]
71
+ ]),
72
+ n(u(G), {
73
+ label: u(h)("labels.game_mod_id"),
74
+ path: m.gameModPath
75
+ }, {
76
+ default: M(() => [
77
+ n(i, {
78
+ filterable: "",
79
+ value: l.value,
80
+ "onUpdate:value": e[3] || (e[3] = (t) => l.value = t),
81
+ disabled: !o.value,
82
+ options: _.value
83
+ }, null, 8, ["value", "disabled", "options"])
84
+ ]),
85
+ _: 1
86
+ }, 8, ["label", "path"])
87
+ ])
88
+ ]);
89
+ };
90
+ }
91
+ };
92
+ export {
93
+ R as default
94
+ };
@@ -0,0 +1,110 @@
1
+ import { mergeModels as h, useModel as b, reactive as g, computed as x, h as a, createElementBlock as V, openBlock as _, normalizeClass as N, createElementVNode as n, createVNode as u, withCtx as f, unref as y, createTextVNode as w, toDisplayString as C } from "vue";
2
+ import { t as r, _ as c } from "./index-60qEjGuU.js";
3
+ import { NSwitch as I, NInput as z, NDataTable as M } from "naive-ui";
4
+ const T = { class: "mb-3" }, A = { class: "flex justify-center mt-2" }, D = {
5
+ __name: "InputManyList",
6
+ props: /* @__PURE__ */ h({
7
+ labels: Array,
8
+ keys: Array,
9
+ inputTypes: Array,
10
+ name: String
11
+ }, {
12
+ modelValue: {},
13
+ modelModifiers: {}
14
+ }),
15
+ emits: ["update:modelValue"],
16
+ setup(m) {
17
+ const t = m, s = b(m, "modelValue");
18
+ g({
19
+ text: "form-control",
20
+ checkbox: ""
21
+ });
22
+ const k = (l) => {
23
+ s.value.splice(l, 1);
24
+ }, d = () => {
25
+ let l = {};
26
+ t.keys.forEach((e) => {
27
+ l[e] = "";
28
+ }), s.value.push(l);
29
+ }, v = x(() => {
30
+ let l = [];
31
+ for (let e = 0; e < t.labels.length; e++)
32
+ l.push({
33
+ title: t.labels[e],
34
+ key: t.keys[e],
35
+ render(o, p) {
36
+ switch (t.inputTypes[e]) {
37
+ case "text":
38
+ return a(z, {
39
+ value: o[t.keys[e]],
40
+ onUpdateValue(i) {
41
+ s.value[p][t.keys[e]] = i;
42
+ }
43
+ });
44
+ case "checkbox":
45
+ return a(I, {
46
+ value: o[t.keys[e]],
47
+ onUpdateValue(i) {
48
+ s.value[p][t.keys[e]] = i;
49
+ }
50
+ });
51
+ }
52
+ }
53
+ });
54
+ return l.push({
55
+ title: r("main.actions"),
56
+ render(e, o) {
57
+ return [
58
+ a(c, {
59
+ color: "red",
60
+ size: "small",
61
+ text: r("main.delete"),
62
+ onClick: () => {
63
+ k(o);
64
+ }
65
+ }, [
66
+ a("i", { class: "fa-solid fa-times mr-0.5" }),
67
+ a("span", { class: "hidden lg:inline" }, r("main.delete"))
68
+ ])
69
+ ];
70
+ }
71
+ }), l;
72
+ });
73
+ return (l, e) => (_(), V("div", {
74
+ class: N(["block w-full overflow-auto scrolling-touch", l.$attrs.class])
75
+ }, [
76
+ n("div", T, [
77
+ u(c, {
78
+ color: "green",
79
+ size: "small",
80
+ onClick: d
81
+ }, {
82
+ default: f(() => [...e[0] || (e[0] = [
83
+ n("span", { class: "fa-solid fa-plus" }, null, -1)
84
+ ])]),
85
+ _: 1
86
+ })
87
+ ]),
88
+ u(y(M), {
89
+ columns: v.value,
90
+ data: s.value
91
+ }, null, 8, ["columns", "data"]),
92
+ n("div", A, [
93
+ u(c, {
94
+ color: "green",
95
+ size: "small",
96
+ onClick: d
97
+ }, {
98
+ default: f(() => [
99
+ e[1] || (e[1] = n("span", { class: "fa-solid fa-plus" }, null, -1)),
100
+ w(" " + C(y(r)("main.add")), 1)
101
+ ]),
102
+ _: 1
103
+ })
104
+ ])
105
+ ], 2));
106
+ }
107
+ };
108
+ export {
109
+ D as default
110
+ };
@@ -0,0 +1,63 @@
1
+ import { mergeModels as p, useModel as v, createElementBlock as a, openBlock as o, createElementVNode as l, Fragment as _, renderList as k, createVNode as u, unref as x, withCtx as i } from "vue";
2
+ import { _ as m } from "./index-60qEjGuU.js";
3
+ import { NInput as g } from "naive-ui";
4
+ const V = { class: "flex flex-wrap" }, w = { class: "md:w-full pr-4 pl-4 relative flex items-stretch w-full" }, C = { class: "flex justify-center mt-2" }, M = {
5
+ __name: "InputTextList",
6
+ props: /* @__PURE__ */ p({
7
+ label: String,
8
+ name: String
9
+ }, {
10
+ modelValue: {},
11
+ modelModifiers: {}
12
+ }),
13
+ emits: ["update:modelValue"],
14
+ setup(d) {
15
+ const e = v(d, "modelValue"), c = (n) => {
16
+ e.value.splice(n, 1);
17
+ }, f = () => {
18
+ e.value ? e.value.push("") : e.value = [""];
19
+ };
20
+ return (n, t) => (o(), a("div", null, [
21
+ (o(!0), a(_, null, k(e.value, (I, s) => (o(), a("div", {
22
+ class: "mb-3 deletable",
23
+ key: s
24
+ }, [
25
+ l("div", V, [
26
+ l("div", w, [
27
+ u(x(g), {
28
+ type: "text",
29
+ value: e.value[s],
30
+ "onUpdate:value": (r) => e.value[s] = r
31
+ }, null, 8, ["value", "onUpdate:value"]),
32
+ u(m, {
33
+ color: "red",
34
+ size: "small",
35
+ class: "ml-1",
36
+ onClick: (r) => c(s)
37
+ }, {
38
+ default: i(() => [...t[0] || (t[0] = [
39
+ l("span", { class: "fa-solid fa-times" }, null, -1)
40
+ ])]),
41
+ _: 1
42
+ }, 8, ["onClick"])
43
+ ])
44
+ ])
45
+ ]))), 128)),
46
+ l("div", C, [
47
+ u(m, {
48
+ color: "green",
49
+ size: "small",
50
+ onClick: f
51
+ }, {
52
+ default: i(() => [...t[1] || (t[1] = [
53
+ l("span", { class: "fa-solid fa-plus" }, null, -1)
54
+ ])]),
55
+ _: 1
56
+ })
57
+ ])
58
+ ]));
59
+ }
60
+ };
61
+ export {
62
+ M as default
63
+ };
@@ -0,0 +1,31 @@
1
+ import { ref as c, watch as p, onMounted as f, createElementBlock as d, createBlock as g, openBlock as r, createElementVNode as s } from "vue";
2
+ import { useRoute as m, useRouter as _ } from "vue-router";
3
+ import { f as x, D as P } from "./index-60qEjGuU.js";
4
+ const R = {
5
+ key: 0,
6
+ class: "flex items-center justify-center h-64"
7
+ }, z = {
8
+ __name: "PluginPendingView",
9
+ setup(h) {
10
+ const i = m(), o = _(), e = x(), a = c(!e.initialized);
11
+ function l() {
12
+ const t = i.params.pluginId;
13
+ e.registeredRoutes.some(
14
+ (u) => u.startsWith(`plugin.${t}.`)
15
+ ) ? (o.removeRoute("plugin.pending"), o.replace(i.fullPath)) : a.value = !1;
16
+ }
17
+ return p(() => e.initialized, (t) => {
18
+ t && l();
19
+ }), f(() => {
20
+ e.initialized && l();
21
+ }), (t, n) => a.value ? (r(), d("div", R, [...n[0] || (n[0] = [
22
+ s("div", { class: "text-center" }, [
23
+ s("i", { class: "fas fa-spinner fa-spin text-4xl text-stone-400" }),
24
+ s("p", { class: "mt-4 text-stone-600 dark:text-stone-400" }, "Loading plugin...")
25
+ ], -1)
26
+ ])])) : (r(), g(P, { key: 1 }));
27
+ }
28
+ };
29
+ export {
30
+ z as default
31
+ };
@@ -0,0 +1,75 @@
1
+ import { ref as _, computed as g, onMounted as h, createElementBlock as e, openBlock as o, createElementVNode as t, createCommentVNode as x, createVNode as c, unref as l, toDisplayString as m, Fragment as k, renderList as b, withKeys as y, withCtx as w } from "vue";
2
+ import { NInput as C } from "naive-ui";
3
+ import { Loading as R } from "@gameap/ui";
4
+ import { storeToRefs as N } from "pinia";
5
+ import { _ as S, e as V } from "./index-60qEjGuU.js";
6
+ import { u as B } from "./ServerIdView-BfqrYuar.js";
7
+ const E = { id: "rcon-console-component" }, F = { class: "coding inverse-toggle px-5 pt-4 shadow-lg text-stone-100 text-sm font-mono subpixel-antialiased bg-stone-800 dark:bg-stone-900 pb-6 pt-4 rounded-lg leading-normal overflow-hidden" }, I = {
8
+ ref: "consoleRef",
9
+ class: "whitespace-pre-wrap mt-4 flex h-[40vh] overflow-y-scroll overscroll-contain"
10
+ }, K = {
11
+ key: 0,
12
+ class: "flex w-full items-center justify-center"
13
+ }, L = { key: 1 }, $ = {
14
+ key: 0,
15
+ class: "gap-x-2 mt-2"
16
+ }, j = ["onClick"], z = { class: "grid grid-cols-8 gap-x-2 mt-2" }, A = { class: "col-span-7 w-full" }, D = { class: "hidden lg:inline" }, P = {
17
+ __name: "RconConsole",
18
+ props: {
19
+ serverId: null
20
+ },
21
+ setup(M) {
22
+ const r = B(), { output: f, fastRcon: u } = N(r), n = _(""), p = g(() => r.loading), d = () => {
23
+ r.sendCommand(n.value).then(() => {
24
+ n.value = "";
25
+ }).catch((s) => {
26
+ V(s);
27
+ });
28
+ }, v = (s) => {
29
+ n.value = s, d();
30
+ };
31
+ return h(() => {
32
+ r.fetchFastRcon();
33
+ }), (s, a) => (o(), e("div", E, [
34
+ t("div", F, [
35
+ t("div", I, [
36
+ p.value ? (o(), e("div", K, [
37
+ c(l(R))
38
+ ])) : (o(), e("div", L, m(l(f)), 1))
39
+ ], 512)
40
+ ]),
41
+ l(u) ? (o(), e("div", $, [
42
+ (o(!0), e(k, null, b(l(u), (i) => (o(), e("span", {
43
+ onClick: (T) => v(i.command),
44
+ class: "bg-stone-100 hover:bg-stone-200 text-stone-800 text-xs font-medium me-2 px-2.5 py-1 rounded dark:bg-stone-700 dark:text-stone-300 cursor-pointer"
45
+ }, m(i.info), 9, j))), 256))
46
+ ])) : x("", !0),
47
+ t("div", z, [
48
+ t("div", A, [
49
+ c(l(C), {
50
+ value: n.value,
51
+ "onUpdate:value": a[0] || (a[0] = (i) => n.value = i),
52
+ onKeyup: y(d, ["enter"]),
53
+ disabled: p.value,
54
+ type: "text",
55
+ placeholder: ""
56
+ }, null, 8, ["value", "disabled"])
57
+ ]),
58
+ c(S, {
59
+ color: "black",
60
+ size: "small",
61
+ onClick: d
62
+ }, {
63
+ default: w(() => [
64
+ a[1] || (a[1] = t("i", { class: "fa-solid fa-terminal" }, null, -1)),
65
+ t("span", D, " " + m(s.trans("main.send")), 1)
66
+ ]),
67
+ _: 1
68
+ })
69
+ ])
70
+ ]));
71
+ }
72
+ };
73
+ export {
74
+ P as default
75
+ };