@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,87 @@
1
+ import { computed as m, onMounted as _, createElementBlock as f, openBlock as i, Fragment as k, createVNode as r, createBlock as v, createCommentVNode as b, createElementVNode as t, unref as e, normalizeClass as h, withCtx as x, toDisplayString as s } from "vue";
2
+ import { GBreadcrumbs as w, Loading as T, GStatusBadge as B } from "@gameap/ui";
3
+ import { C as N, t as n, e as C, r as S } from "./index-60qEjGuU.js";
4
+ import { NTable as V } from "naive-ui";
5
+ import { useRoute as y } from "vue-router";
6
+ import { storeToRefs as D } from "pinia";
7
+ const G = { class: "w-full mt-3" }, A = { 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" }, E = { class: "whitespace-pre-wrap mt-4 flex" }, P = {
8
+ __name: "AdminDaemonTaskOutputView",
9
+ setup(O) {
10
+ const l = N(), c = y(), g = m(() => {
11
+ let o = [
12
+ { route: "/", text: "GameAP", icon: "gicon gicon-gameap" },
13
+ { route: { name: "admin.gdaemon_tasks.index" }, text: n("gdaemon_tasks.gdaemon_tasks") }
14
+ ];
15
+ return a.value.id && o.push({
16
+ route: { name: "admin.gdaemon_tasks.output", params: { id: a.value.id } },
17
+ text: n("gdaemon_tasks." + a.value.task)
18
+ }), o;
19
+ }), { loading: u, task: a } = D(l);
20
+ _(() => {
21
+ l.setTaskId(c.params.id), l.fetchTaskOutput().catch((o) => {
22
+ C(o);
23
+ });
24
+ });
25
+ const p = m(() => a.value.output ? S(a.value.output, /(\r\n|\n|\r)/gm, `
26
+ `) : "");
27
+ return (o, d) => (i(), f(k, null, [
28
+ r(e(w), { items: g.value }, null, 8, ["items"]),
29
+ e(u) ? (i(), v(e(T), { key: 0 })) : b("", !0),
30
+ t("div", {
31
+ class: h(e(u) ? "hidden" : "")
32
+ }, [
33
+ r(e(V), {
34
+ bordered: !1,
35
+ "single-line": !0
36
+ }, {
37
+ default: x(() => [
38
+ t("tbody", null, [
39
+ t("tr", null, [
40
+ t("td", null, [
41
+ t("strong", null, s(e(n)("gdaemon_tasks.task")) + ":", 1)
42
+ ]),
43
+ t("td", null, s(e(n)("gdaemon_tasks." + e(a).task)), 1)
44
+ ]),
45
+ t("tr", null, [
46
+ t("td", null, [
47
+ t("strong", null, s(e(n)("gdaemon_tasks.status")) + ":", 1)
48
+ ]),
49
+ t("td", null, [
50
+ r(e(B), {
51
+ status: e(a).status
52
+ }, null, 8, ["status"])
53
+ ])
54
+ ]),
55
+ t("tr", null, [
56
+ t("td", null, [
57
+ t("strong", null, s(e(n)("gdaemon_tasks.created")) + ":", 1)
58
+ ]),
59
+ t("td", null, s(e(a).created_at), 1)
60
+ ]),
61
+ t("tr", null, [
62
+ t("td", null, [
63
+ t("strong", null, s(e(n)("gdaemon_tasks.created")) + ":", 1)
64
+ ]),
65
+ t("td", null, s(e(a).updated_at), 1)
66
+ ])
67
+ ])
68
+ ]),
69
+ _: 1
70
+ }),
71
+ t("div", G, [
72
+ t("div", A, [
73
+ d[0] || (d[0] = t("div", { class: "top mb-2 flex" }, [
74
+ t("div", { class: "h-3 w-3 bg-red-500 rounded-full" }),
75
+ t("div", { class: "ml-2 h-3 w-3 bg-orange-300 rounded-full" }),
76
+ t("div", { class: "ml-2 h-3 w-3 bg-green-500 rounded-full" })
77
+ ], -1)),
78
+ t("div", E, s(p.value), 1)
79
+ ])
80
+ ])
81
+ ], 2)
82
+ ], 64));
83
+ }
84
+ };
85
+ export {
86
+ P as default
87
+ };
@@ -0,0 +1,470 @@
1
+ import { mergeModels as I, ref as U, useModel as O, createElementBlock as S, openBlock as _, createVNode as a, unref as e, withCtx as d, createElementVNode as v, renderSlot as j, createBlock as w, createCommentVNode as R, normalizeClass as C, toDisplayString as B, computed as M, onMounted as H, Fragment as J, createTextVNode as K } from "vue";
2
+ import { Loading as h, GBreadcrumbs as Q, GDeletableList as X } from "@gameap/ui";
3
+ import { o as G, t, v as Y, w as Z, _ as z, q as ee, e as V, n as N } from "./index-60qEjGuU.js";
4
+ import { NForm as ae, NCard as L, NFormItem as m, NInput as p, NModal as le } from "naive-ui";
5
+ import { u as te } from "./gameList-DpGDCxFE.js";
6
+ import { _ as oe } from "./CreateModForm-CqhcrNFp.js";
7
+ import { useRoute as se, useRouter as ne } from "vue-router";
8
+ import { storeToRefs as ie } from "pinia";
9
+ const de = { class: "flex flex-wrap mt-2" }, ue = { class: "md:w-1/2 pr-8" }, re = { class: "md:w-1/2" }, me = { class: "hidden lg:inline" }, pe = {
10
+ __name: "UpdateGameForm",
11
+ props: /* @__PURE__ */ I({
12
+ loading: {
13
+ type: Boolean,
14
+ required: !1
15
+ }
16
+ }, {
17
+ modelValue: {
18
+ code: "",
19
+ name: "",
20
+ engine: "",
21
+ engineVersion: "",
22
+ remoteRepositoryLinux: "",
23
+ remoteRepositoryWindows: ""
24
+ },
25
+ modelModifiers: {}
26
+ }),
27
+ emits: /* @__PURE__ */ I(["update"], ["update:modelValue"]),
28
+ setup(c, { emit: W }) {
29
+ const b = U({}), l = O(c, "modelValue"), g = {
30
+ code: {
31
+ required: !0,
32
+ validator: Y(
33
+ G(t("labels.code")),
34
+ Z(t("labels.code"), 2, 16)
35
+ )
36
+ },
37
+ name: {
38
+ required: !0,
39
+ validator: G(t("labels.name"))
40
+ }
41
+ }, A = W, x = () => {
42
+ b.value.validate().then(() => {
43
+ A("update");
44
+ });
45
+ };
46
+ return (r, o) => (_(), S("div", null, [
47
+ a(e(ae), {
48
+ "label-placement": "top",
49
+ "label-width": "auto",
50
+ ref_key: "formRef",
51
+ ref: b,
52
+ model: l.value,
53
+ rules: g
54
+ }, {
55
+ default: d(() => [
56
+ v("div", de, [
57
+ v("div", ue, [
58
+ a(e(L), {
59
+ title: e(t)("games.basic_info"),
60
+ size: "small",
61
+ class: "mb-3",
62
+ "header-class": "g-card-header",
63
+ segmented: {
64
+ content: !0,
65
+ footer: "soft"
66
+ }
67
+ }, {
68
+ default: d(() => [
69
+ c.loading ? (_(), w(e(h), { key: 0 })) : R("", !0),
70
+ v("div", {
71
+ class: C(c.loading ? "hidden" : "")
72
+ }, [
73
+ a(e(m), {
74
+ label: e(t)("labels.code"),
75
+ path: "code"
76
+ }, {
77
+ default: d(() => [
78
+ a(e(p), {
79
+ disabled: "",
80
+ value: l.value.code,
81
+ "onUpdate:value": o[0] || (o[0] = (s) => l.value.code = s),
82
+ type: "text"
83
+ }, null, 8, ["value"])
84
+ ]),
85
+ _: 1
86
+ }, 8, ["label"]),
87
+ a(e(m), {
88
+ label: e(t)("labels.name"),
89
+ path: "name"
90
+ }, {
91
+ default: d(() => [
92
+ a(e(p), {
93
+ value: l.value.name,
94
+ "onUpdate:value": o[1] || (o[1] = (s) => l.value.name = s),
95
+ type: "text"
96
+ }, null, 8, ["value"])
97
+ ]),
98
+ _: 1
99
+ }, 8, ["label"]),
100
+ a(e(m), {
101
+ label: e(t)("labels.engine"),
102
+ path: "engine"
103
+ }, {
104
+ default: d(() => [
105
+ a(e(p), {
106
+ value: l.value.engine,
107
+ "onUpdate:value": o[2] || (o[2] = (s) => l.value.engine = s),
108
+ type: "text"
109
+ }, null, 8, ["value"])
110
+ ]),
111
+ _: 1
112
+ }, 8, ["label"]),
113
+ a(e(m), {
114
+ label: e(t)("labels.engine_version"),
115
+ path: "engineVersion"
116
+ }, {
117
+ default: d(() => [
118
+ a(e(p), {
119
+ value: l.value.engineVersion,
120
+ "onUpdate:value": o[3] || (o[3] = (s) => l.value.engineVersion = s),
121
+ type: "text"
122
+ }, null, 8, ["value"])
123
+ ]),
124
+ _: 1
125
+ }, 8, ["label"])
126
+ ], 2)
127
+ ]),
128
+ _: 1
129
+ }, 8, ["title"]),
130
+ j(r.$slots, "mods")
131
+ ]),
132
+ v("div", re, [
133
+ a(e(L), {
134
+ title: e(t)("games.steam_info"),
135
+ size: "small",
136
+ class: "mb-3",
137
+ "header-class": "g-card-header",
138
+ segmented: {
139
+ content: !0,
140
+ footer: "soft"
141
+ }
142
+ }, {
143
+ default: d(() => [
144
+ c.loading ? (_(), w(e(h), { key: 0 })) : R("", !0),
145
+ v("div", {
146
+ class: C(c.loading ? "hidden" : "")
147
+ }, [
148
+ a(e(m), {
149
+ label: e(t)("labels.steam_app_id_linux"),
150
+ path: "steamAppIdLinux"
151
+ }, {
152
+ default: d(() => [
153
+ a(e(p), {
154
+ value: l.value.steamAppIdLinux,
155
+ "onUpdate:value": o[4] || (o[4] = (s) => l.value.steamAppIdLinux = s),
156
+ type: "text"
157
+ }, null, 8, ["value"])
158
+ ]),
159
+ _: 1
160
+ }, 8, ["label"]),
161
+ a(e(m), {
162
+ label: e(t)("labels.steam_app_id_windows"),
163
+ path: "steamAppIdWindows"
164
+ }, {
165
+ default: d(() => [
166
+ a(e(p), {
167
+ value: l.value.steamAppIdWindows,
168
+ "onUpdate:value": o[5] || (o[5] = (s) => l.value.steamAppIdWindows = s),
169
+ type: "text"
170
+ }, null, 8, ["value"])
171
+ ]),
172
+ _: 1
173
+ }, 8, ["label"]),
174
+ a(e(m), {
175
+ label: e(t)("labels.steam_app_set_config"),
176
+ path: "steamAppSetConfig"
177
+ }, {
178
+ default: d(() => [
179
+ a(e(p), {
180
+ value: l.value.steamAppSetConfig,
181
+ "onUpdate:value": o[6] || (o[6] = (s) => l.value.steamAppSetConfig = s),
182
+ type: "text"
183
+ }, null, 8, ["value"])
184
+ ]),
185
+ _: 1
186
+ }, 8, ["label"])
187
+ ], 2)
188
+ ]),
189
+ _: 1
190
+ }, 8, ["title"]),
191
+ a(e(L), {
192
+ title: e(t)("games.repositories_local"),
193
+ size: "small",
194
+ class: "mb-3",
195
+ "header-class": "g-card-header",
196
+ segmented: {
197
+ content: !0,
198
+ footer: "soft"
199
+ }
200
+ }, {
201
+ default: d(() => [
202
+ c.loading ? (_(), w(e(h), { key: 0 })) : R("", !0),
203
+ v("div", {
204
+ class: C(c.loading ? "hidden" : "")
205
+ }, [
206
+ a(e(m), {
207
+ label: e(t)("labels.local_repository_linux"),
208
+ path: "localRepositoryLinux"
209
+ }, {
210
+ default: d(() => [
211
+ a(e(p), {
212
+ value: l.value.localRepositoryLinux,
213
+ "onUpdate:value": o[7] || (o[7] = (s) => l.value.localRepositoryLinux = s),
214
+ type: "text"
215
+ }, null, 8, ["value"])
216
+ ]),
217
+ _: 1
218
+ }, 8, ["label"]),
219
+ a(e(m), {
220
+ label: e(t)("labels.local_repository_windows"),
221
+ path: "localRepositoryWindows"
222
+ }, {
223
+ default: d(() => [
224
+ a(e(p), {
225
+ value: l.value.localRepositoryWindows,
226
+ "onUpdate:value": o[8] || (o[8] = (s) => l.value.localRepositoryWindows = s),
227
+ type: "text"
228
+ }, null, 8, ["value"])
229
+ ]),
230
+ _: 1
231
+ }, 8, ["label"])
232
+ ], 2)
233
+ ]),
234
+ _: 1
235
+ }, 8, ["title"]),
236
+ a(e(L), {
237
+ title: e(t)("games.repositories_remote"),
238
+ size: "small",
239
+ class: "mb-3",
240
+ "header-class": "g-card-header",
241
+ segmented: {
242
+ content: !0,
243
+ footer: "soft"
244
+ }
245
+ }, {
246
+ default: d(() => [
247
+ c.loading ? (_(), w(e(h), { key: 0 })) : R("", !0),
248
+ v("div", {
249
+ class: C(c.loading ? "hidden" : "")
250
+ }, [
251
+ a(e(m), {
252
+ label: e(t)("labels.remote_repository_linux"),
253
+ path: "remoteRepositoryLinux"
254
+ }, {
255
+ default: d(() => [
256
+ a(e(p), {
257
+ value: l.value.remoteRepositoryLinux,
258
+ "onUpdate:value": o[9] || (o[9] = (s) => l.value.remoteRepositoryLinux = s),
259
+ type: "text"
260
+ }, null, 8, ["value"])
261
+ ]),
262
+ _: 1
263
+ }, 8, ["label"]),
264
+ a(e(m), {
265
+ label: e(t)("labels.remote_repository_windows"),
266
+ path: "remoteRepositoryWindows"
267
+ }, {
268
+ default: d(() => [
269
+ a(e(p), {
270
+ value: l.value.remoteRepositoryWindows,
271
+ "onUpdate:value": o[10] || (o[10] = (s) => l.value.remoteRepositoryWindows = s),
272
+ type: "text"
273
+ }, null, 8, ["value"])
274
+ ]),
275
+ _: 1
276
+ }, 8, ["label"])
277
+ ], 2)
278
+ ]),
279
+ _: 1
280
+ }, 8, ["title"])
281
+ ])
282
+ ])
283
+ ]),
284
+ _: 3
285
+ }, 8, ["model"]),
286
+ a(z, {
287
+ color: "green",
288
+ onClick: x
289
+ }, {
290
+ default: d(() => [
291
+ o[11] || (o[11] = v("i", { class: "fa-regular fa-floppy-disk mr-0.5" }, null, -1)),
292
+ v("span", me, " " + B(e(t)("main.save")), 1)
293
+ ]),
294
+ _: 1
295
+ })
296
+ ]));
297
+ }
298
+ }, we = {
299
+ __name: "AdminGamesEdit",
300
+ setup(c) {
301
+ const W = se(), b = ne(), l = ee(), g = te(), A = M(() => [
302
+ { route: "/", text: "GameAP", icon: "gicon gicon-gameap" },
303
+ { route: { name: "admin.games.index" }, text: t("games.games") },
304
+ { text: t("games.title_edit") }
305
+ ]), { gameCode: x, game: r, mods: o } = ie(l);
306
+ H(() => {
307
+ l.setGameCode(W.params.code), i.value.code = x.value, l.fetchGame().then(() => {
308
+ i.value.name = r.value.name, i.value.engine = r.value.engine, i.value.engineVersion = r.value.engine_version, i.value.steamAppIdLinux = r.value.steam_app_id_linux, i.value.steamAppIdWindows = r.value.steam_app_id_windows, i.value.steamAppSetConfig = r.value.steam_app_set_config, i.value.localRepositoryLinux = r.value.local_repository_linux, i.value.localRepositoryWindows = r.value.local_repository_windows, i.value.remoteRepositoryLinux = r.value.remote_repository_linux, i.value.remoteRepositoryWindows = r.value.remote_repository_windows;
309
+ }), l.fetchMods();
310
+ });
311
+ const s = M(() => l.loading || g.loading), $ = M(() => {
312
+ let u = [];
313
+ return o.value.forEach((n) => {
314
+ u.push({
315
+ id: n.id,
316
+ name: n.name,
317
+ gameCode: x.value
318
+ });
319
+ }), u;
320
+ }), q = (u) => {
321
+ g.fetchGames().then(() => {
322
+ f.value = {
323
+ game: x.value,
324
+ name: "",
325
+ remoteRepositoryLinux: "",
326
+ remoteRepositoryWindows: ""
327
+ }, k.value = !0;
328
+ }).catch((n) => {
329
+ V(n);
330
+ });
331
+ }, i = U({}), k = U(!1), f = U({
332
+ game: null,
333
+ name: "",
334
+ remoteRepositoryLinux: "",
335
+ remoteRepositoryWindows: ""
336
+ }), E = () => {
337
+ const u = {
338
+ name: f.value.name,
339
+ game_code: f.value.game,
340
+ remote_repository_linux: f.value.remoteRepositoryLinux,
341
+ remote_repository_windows: f.value.remoteRepositoryWindows
342
+ };
343
+ g.createGameMod(u).then(({ id: n }) => {
344
+ N({
345
+ content: t("games.mod_create_success_msg"),
346
+ type: "success"
347
+ }, () => {
348
+ g.fetchAllGameMods();
349
+ });
350
+ }).catch((n) => {
351
+ V(n);
352
+ }).finally(() => {
353
+ k.value = !1;
354
+ });
355
+ }, F = (u, n) => {
356
+ b.push({ name: "admin.games.mods.edit", params: { code: u, id: n } });
357
+ }, T = (u) => {
358
+ window.$dialog.success({
359
+ title: t("games.delete_mod_confirm_msg"),
360
+ positiveText: t("main.yes"),
361
+ negativeText: t("main.no"),
362
+ closable: !1,
363
+ onPositiveClick: () => {
364
+ D(u);
365
+ },
366
+ onNegativeClick: () => {
367
+ }
368
+ });
369
+ }, D = (u) => {
370
+ g.deleteModById(u).then(() => {
371
+ l.fetchMods();
372
+ }).catch((n) => {
373
+ V(n);
374
+ });
375
+ }, P = () => {
376
+ const u = {
377
+ name: i.value.name,
378
+ engine: i.value.engine,
379
+ engine_version: i.value.engineVersion,
380
+ steam_app_id_linux: i.value.steamAppIdLinux,
381
+ steam_app_id_windows: i.value.steamAppIdWindows,
382
+ steam_app_set_config: i.value.steamAppSetConfig,
383
+ local_repository_linux: i.value.localRepositoryLinux,
384
+ local_repository_windows: i.value.localRepositoryWindows,
385
+ remote_repository_linux: i.value.remoteRepositoryLinux,
386
+ remote_repository_windows: i.value.remoteRepositoryWindows
387
+ };
388
+ l.saveGame(u).then(() => {
389
+ N({
390
+ content: t("games.update_success_msg"),
391
+ type: "success"
392
+ }, () => {
393
+ b.push({ name: "admin.games.index" });
394
+ });
395
+ }).catch((n) => {
396
+ V(n);
397
+ });
398
+ };
399
+ return (u, n) => (_(), S(J, null, [
400
+ a(e(Q), { items: A.value }, null, 8, ["items"]),
401
+ a(z, {
402
+ class: "mr-1",
403
+ color: "orange",
404
+ onClick: n[0] || (n[0] = (y) => q())
405
+ }, {
406
+ default: d(() => [
407
+ n[4] || (n[4] = v("i", { class: "fa-solid fa-cat" }, null, -1)),
408
+ K(" " + B(e(t)("games.add_mod")), 1)
409
+ ]),
410
+ _: 1
411
+ }),
412
+ a(pe, {
413
+ loading: s.value,
414
+ modelValue: i.value,
415
+ "onUpdate:modelValue": n[1] || (n[1] = (y) => i.value = y),
416
+ onUpdate: P
417
+ }, {
418
+ mods: d(() => [
419
+ a(e(L), {
420
+ title: e(t)("games.mods"),
421
+ size: "small",
422
+ class: "mb-3",
423
+ "header-class": "g-card-header",
424
+ segmented: {
425
+ content: !0,
426
+ footer: "soft"
427
+ }
428
+ }, {
429
+ default: d(() => [
430
+ s.value ? (_(), w(e(h), { key: 0 })) : R("", !0),
431
+ v("div", {
432
+ class: C(s.value ? "hidden" : "")
433
+ }, [
434
+ a(e(X), {
435
+ items: $.value,
436
+ deleteCallback: T,
437
+ clickCallback: F
438
+ }, null, 8, ["items"])
439
+ ], 2)
440
+ ]),
441
+ _: 1
442
+ }, 8, ["title"])
443
+ ]),
444
+ _: 1
445
+ }, 8, ["loading", "modelValue"]),
446
+ a(e(le), {
447
+ show: k.value,
448
+ "onUpdate:show": n[3] || (n[3] = (y) => k.value = y),
449
+ class: "custom-card",
450
+ preset: "card",
451
+ title: e(t)("games.title_add_mod"),
452
+ bordered: !1,
453
+ style: { width: "600px" },
454
+ segmented: { content: "soft", footer: "soft" }
455
+ }, {
456
+ default: d(() => [
457
+ a(oe, {
458
+ modelValue: f.value,
459
+ "onUpdate:modelValue": n[2] || (n[2] = (y) => f.value = y),
460
+ onCreate: E
461
+ }, null, 8, ["modelValue"])
462
+ ]),
463
+ _: 1
464
+ }, 8, ["show", "title"])
465
+ ], 64));
466
+ }
467
+ };
468
+ export {
469
+ we as default
470
+ };