@cobaltcore-dev/aurora 0.7.0 → 0.8.1

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 (108) hide show
  1. package/README.md +101 -7
  2. package/dist/client/AuroraApp.d.ts +38 -0
  3. package/dist/client/{ContentHeader-kx1Th5Sq.mjs → ContentHeader-C51H95X8.mjs} +24 -20
  4. package/dist/client/ContentHeader-C51H95X8.mjs.map +1 -0
  5. package/dist/client/{DeleteFlavorModal-C3cb7YiJ.mjs → DeleteFlavorModal-C3m7bQJu.mjs} +163 -163
  6. package/dist/client/{DeleteFlavorModal-C3cb7YiJ.mjs.map → DeleteFlavorModal-C3m7bQJu.mjs.map} +1 -1
  7. package/dist/client/{EditSecurityGroupModal-CpP54WIK.mjs → EditSecurityGroupModal-DKusxfta.mjs} +18 -18
  8. package/dist/client/{EditSecurityGroupModal-CpP54WIK.mjs.map → EditSecurityGroupModal-DKusxfta.mjs.map} +1 -1
  9. package/dist/client/{FiltersInput-DxcyR6Bp.mjs → FiltersInput-GzR4D0q6.mjs} +21 -21
  10. package/dist/client/{FiltersInput-DxcyR6Bp.mjs.map → FiltersInput-GzR4D0q6.mjs.map} +1 -1
  11. package/dist/client/{FloatingIpActionModals-BP8RWHbu.mjs → FloatingIpActionModals-CRvROJ3H.mjs} +51 -51
  12. package/dist/client/{FloatingIpActionModals-BP8RWHbu.mjs.map → FloatingIpActionModals-CRvROJ3H.mjs.map} +1 -1
  13. package/dist/client/{ImageToastNotifications-TZ3EfQg-.mjs → ImageToastNotifications-BuDXpTkl.mjs} +344 -344
  14. package/dist/client/{ImageToastNotifications-TZ3EfQg-.mjs.map → ImageToastNotifications-BuDXpTkl.mjs.map} +1 -1
  15. package/dist/client/{RouteError-QSV7qOoJ.mjs → RouteError-DVAiT0mT.mjs} +2 -2
  16. package/dist/client/{RouteError-QSV7qOoJ.mjs.map → RouteError-DVAiT0mT.mjs.map} +1 -1
  17. package/dist/client/{SortInput-CYv2_Pur.mjs → SortInput-VK7IYqQv.mjs} +6 -6
  18. package/dist/client/{SortInput-CYv2_Pur.mjs.map → SortInput-VK7IYqQv.mjs.map} +1 -1
  19. package/dist/client/{_flavorId-C2x43-6S.mjs → _flavorId-DU4gcFna.mjs} +8 -8
  20. package/dist/client/{_flavorId-C2x43-6S.mjs.map → _flavorId-DU4gcFna.mjs.map} +1 -1
  21. package/dist/client/{_flavorId-CR8ZUI-P.mjs → _flavorId-iZE2j210.mjs} +62 -62
  22. package/dist/client/{_flavorId-CR8ZUI-P.mjs.map → _flavorId-iZE2j210.mjs.map} +1 -1
  23. package/dist/client/{_floatingIpId-BCk41_Lb.mjs → _floatingIpId-B5GMSLeQ.mjs} +2 -2
  24. package/dist/client/{_floatingIpId-BCk41_Lb.mjs.map → _floatingIpId-B5GMSLeQ.mjs.map} +1 -1
  25. package/dist/client/{_floatingIpId-BGrOAmPT.mjs → _floatingIpId-C2-BeRmF.mjs} +27 -27
  26. package/dist/client/{_floatingIpId-BGrOAmPT.mjs.map → _floatingIpId-C2-BeRmF.mjs.map} +1 -1
  27. package/dist/client/_imageId-zmaSymWe.mjs +534 -0
  28. package/dist/client/{_imageId-CvfD832b.mjs.map → _imageId-zmaSymWe.mjs.map} +1 -1
  29. package/dist/client/_pcaId-BwTvJJgh.mjs +479 -0
  30. package/dist/client/_pcaId-BwTvJJgh.mjs.map +1 -0
  31. package/dist/client/{_pcaId-DOHycvCf.mjs → _pcaId-DUHQd0rB.mjs} +2 -2
  32. package/dist/client/{_pcaId-DOHycvCf.mjs.map → _pcaId-DUHQd0rB.mjs.map} +1 -1
  33. package/dist/client/{_projectId-DOgwFiqD.mjs → _projectId-B_2sZKk-.mjs} +2 -2
  34. package/dist/client/_projectId-B_2sZKk-.mjs.map +1 -0
  35. package/dist/client/_projectId-C8BaEHUj.mjs +273 -0
  36. package/dist/client/_projectId-C8BaEHUj.mjs.map +1 -0
  37. package/dist/client/_projectId-COt93OEF.mjs +84 -0
  38. package/dist/client/_projectId-COt93OEF.mjs.map +1 -0
  39. package/dist/client/{_securityGroupId-KKw4RPdH.mjs → _securityGroupId-DYxmXUOP.mjs} +319 -319
  40. package/dist/client/{_securityGroupId-KKw4RPdH.mjs.map → _securityGroupId-DYxmXUOP.mjs.map} +1 -1
  41. package/dist/client/{_securityGroupId-CJJanWiY.mjs → _securityGroupId-fhK1CuZh.mjs} +2 -2
  42. package/dist/client/{_securityGroupId-CJJanWiY.mjs.map → _securityGroupId-fhK1CuZh.mjs.map} +1 -1
  43. package/dist/client/{_storageType-DYjo-6ej.mjs → _storageType-B-qGcGUQ.mjs} +699 -698
  44. package/dist/client/_storageType-B-qGcGUQ.mjs.map +1 -0
  45. package/dist/client/{_storageType-4wSxI__0.mjs → _storageType-CepuevDG.mjs} +2 -2
  46. package/dist/client/{_storageType-4wSxI__0.mjs.map → _storageType-CepuevDG.mjs.map} +1 -1
  47. package/dist/client/{about-Bo9vxGHy.mjs → about-Nsxkyh9U.mjs} +2 -2
  48. package/dist/client/{about-Bo9vxGHy.mjs.map → about-Nsxkyh9U.mjs.map} +1 -1
  49. package/dist/client/{build-DeJcDjPi.mjs → build-BdRRmNf5.mjs} +3290 -3274
  50. package/dist/client/{build-DeJcDjPi.mjs.map → build-BdRRmNf5.mjs.map} +1 -1
  51. package/dist/client/{constants-BmcGYeR-.mjs → constants-J5nm9hbP.mjs} +15 -15
  52. package/dist/client/{constants-BmcGYeR-.mjs.map → constants-J5nm9hbP.mjs.map} +1 -1
  53. package/dist/client/{flavors-BxFVqgnb.mjs → flavors-8bZVlzzb.mjs} +2 -2
  54. package/dist/client/{flavors-BxFVqgnb.mjs.map → flavors-8bZVlzzb.mjs.map} +1 -1
  55. package/dist/client/{flavors-CfdgjsZY.mjs → flavors-BfsEBUE-.mjs} +238 -221
  56. package/dist/client/flavors-BfsEBUE-.mjs.map +1 -0
  57. package/dist/client/{floatingips-ByRb82wS.mjs → floatingips-Dq4DXQYb.mjs} +90 -90
  58. package/dist/client/{floatingips-ByRb82wS.mjs.map → floatingips-Dq4DXQYb.mjs.map} +1 -1
  59. package/dist/client/{images-CenluYV8.mjs → images-8FOgju2f.mjs} +2 -2
  60. package/dist/client/{images-CenluYV8.mjs.map → images-8FOgju2f.mjs.map} +1 -1
  61. package/dist/client/images-BPnTuKFO2.mjs +1890 -0
  62. package/dist/client/images-BPnTuKFO2.mjs.map +1 -0
  63. package/dist/client/{images-C_dX7nY6.mjs → images-Dbjo4yKn.mjs} +2 -2
  64. package/dist/client/{images-C_dX7nY6.mjs.map → images-Dbjo4yKn.mjs.map} +1 -1
  65. package/dist/client/index.d.ts +1 -1
  66. package/dist/client/index.js +382 -351
  67. package/dist/client/index.js.map +1 -1
  68. package/dist/client/{objects-gxSjvbvF.mjs → objects-DKWp9RtR.mjs} +2 -2
  69. package/dist/client/{objects-gxSjvbvF.mjs.map → objects-DKWp9RtR.mjs.map} +1 -1
  70. package/dist/client/{objects-BJM6YeuF.mjs → objects-DaCuy_CB.mjs} +1156 -1156
  71. package/dist/client/{objects-BJM6YeuF.mjs.map → objects-DaCuy_CB.mjs.map} +1 -1
  72. package/dist/client/pca-5wOBf_KI.mjs +202 -0
  73. package/dist/client/pca-5wOBf_KI.mjs.map +1 -0
  74. package/dist/client/{pca-Bl8NmoVZ.mjs → pca-dhrOFfrE.mjs} +2 -2
  75. package/dist/client/{pca-Bl8NmoVZ.mjs.map → pca-dhrOFfrE.mjs.map} +1 -1
  76. package/dist/client/{projects-D2iewAzu.mjs → projects-B_PPyZD1.mjs} +2 -2
  77. package/dist/client/{projects-D2iewAzu.mjs.map → projects-B_PPyZD1.mjs.map} +1 -1
  78. package/dist/client/{projects-pe2_dCnV.mjs → projects-CHYn7L5e.mjs} +2 -2
  79. package/dist/client/{projects-pe2_dCnV.mjs.map → projects-CHYn7L5e.mjs.map} +1 -1
  80. package/dist/client/{projects-CgclWI16.mjs → projects-Dmewygrp.mjs} +12 -12
  81. package/dist/client/projects-Dmewygrp.mjs.map +1 -0
  82. package/dist/client/routeInfo-CHiJfum5.mjs +73 -0
  83. package/dist/client/routeInfo-CHiJfum5.mjs.map +1 -0
  84. package/dist/client/{securitygroups-DahZkVYQ.mjs → securitygroups-CNFLu9zS.mjs} +112 -112
  85. package/dist/client/{securitygroups-DahZkVYQ.mjs.map → securitygroups-CNFLu9zS.mjs.map} +1 -1
  86. package/dist/client/{useListWithFiltering-DaYcu5AB.mjs → useListWithFiltering-v2A0-SZb.mjs} +9 -9
  87. package/dist/client/{useListWithFiltering-DaYcu5AB.mjs.map → useListWithFiltering-v2A0-SZb.mjs.map} +1 -1
  88. package/dist/server/index.d.ts +6 -1
  89. package/dist/server/index.js +37 -52
  90. package/package.json +4 -4
  91. package/dist/client/ContentHeader-kx1Th5Sq.mjs.map +0 -1
  92. package/dist/client/_imageId-CvfD832b.mjs +0 -534
  93. package/dist/client/_pcaId-BxBt5DXi.mjs +0 -459
  94. package/dist/client/_pcaId-BxBt5DXi.mjs.map +0 -1
  95. package/dist/client/_projectId-BDSWnMGj.mjs +0 -46
  96. package/dist/client/_projectId-BDSWnMGj.mjs.map +0 -1
  97. package/dist/client/_projectId-DOgwFiqD.mjs.map +0 -1
  98. package/dist/client/_projectId-DS4nR59B.mjs +0 -299
  99. package/dist/client/_projectId-DS4nR59B.mjs.map +0 -1
  100. package/dist/client/_projectId-MxcHrXW4.mjs +0 -84
  101. package/dist/client/_projectId-MxcHrXW4.mjs.map +0 -1
  102. package/dist/client/_storageType-DYjo-6ej.mjs.map +0 -1
  103. package/dist/client/flavors-CfdgjsZY.mjs.map +0 -1
  104. package/dist/client/images-CKqIXUq52.mjs +0 -1873
  105. package/dist/client/images-CKqIXUq52.mjs.map +0 -1
  106. package/dist/client/pca-RSiWpJs9.mjs +0 -182
  107. package/dist/client/pca-RSiWpJs9.mjs.map +0 -1
  108. package/dist/client/projects-CgclWI16.mjs.map +0 -1
@@ -0,0 +1,1890 @@
1
+ import { $ as e, D as t, E as n, G as r, H as i, J as a, L as o, N as s, Q as c, S as l, V as u, Y as d, Z as f, _ as p, ct as m, et as h, f as g, it as _, k as v, l as y, lt as b, m as x, n as ee, nt as S, ot as C, p as te, q as w, rt as T, v as E, x as ne } from "./build-BdRRmNf5.mjs";
2
+ import { n as D, r as O } from "./trpcClient-BzPUgiM2.mjs";
3
+ import { t as re } from "./cn-DM4Cy3jv.mjs";
4
+ import { t as k } from "./images-8FOgju2f.mjs";
5
+ import { t as A } from "./ContentHeader-C51H95X8.mjs";
6
+ import { t as j } from "./SortInput-VK7IYqQv.mjs";
7
+ import { A as M, C as ie, D as ae, E as oe, F as N, I as P, M as F, N as I, O as L, P as R, S as z, T as B, _ as V, a as se, b as ce, c as H, d as U, f as le, g as W, h as ue, i as de, j as fe, k as pe, l as me, m as he, n as ge, o as _e, p as ve, r as ye, s as be, t as xe, u as Se, v as Ce, w as we, x as Te, y as Ee } from "./ImageToastNotifications-BuDXpTkl.mjs";
8
+ import { t as De } from "./useProjectId-DBc5lpoU.mjs";
9
+ import "./hooks-dSArr2Ca.mjs";
10
+ import { n as Oe, t as ke } from "./FiltersInput-GzR4D0q6.mjs";
11
+ import { Fragment as G, jsx as K, jsxs as q } from "react/jsx-runtime";
12
+ import { Suspense as Ae, startTransition as je, use as Me, useCallback as Ne, useEffect as Pe, useMemo as Fe, useRef as Ie, useState as J } from "react";
13
+ import { useNavigate as Le, useParams as Re, useSearch as Y } from "@tanstack/react-router";
14
+ import { TRPCClientError as ze } from "@trpc/client";
15
+ import { Trans as X, useLingui as Z } from "@lingui/react";
16
+ import { i18n as Be } from "@lingui/core";
17
+ import { ErrorBoundary as Ve } from "react-error-boundary";
18
+ import "@trpc/server";
19
+ //#region src/client/routes/_auth/projects/$projectId/compute/-components/Images/-components/ImageTableRow.tsx
20
+ function He({ image: e, isSelected: n, isPending: a, isAccepted: o, permissions: c, onEditDetails: l, onEditMetadata: u, onDelete: d, onSelect: f, onActivationStatusChange: p, onManageAccess: m, onUpdateVisibility: h, setToastData: g, uploadId: y, uploadProgressPercent: b, onMemberStatusChanged: x, showSelectColumn: ee = !1 }) {
21
+ let { i18n: S, _: te } = Z(), { id: w, name: T, status: E, visibility: ne, size: D, disk_format: re, created_at: k, owner: A } = e, j = T || S._({ id: "MEIAzV" }), { projectId: M } = Re({ from: "/_auth/projects/$projectId/compute/images/" }), ie = Le(), ae = O.useUtils(), oe = O.compute.updateImageMember.useMutation({ onSuccess: () => {
22
+ ae.compute.listImagesWithPagination.invalidate(), ae.compute.listSharedImagesByMemberStatus.invalidate();
23
+ } }), F = async (e) => {
24
+ try {
25
+ await oe.mutateAsync({
26
+ project_id: M,
27
+ imageId: w,
28
+ memberId: M,
29
+ status: e
30
+ }), g(U(e, { onDismiss: () => g(null) })), x?.();
31
+ } catch (e) {
32
+ let t = e?.message;
33
+ g(Se(t, { onDismiss: () => g(null) }));
34
+ }
35
+ }, L = M === A, z = a || o, B = oe.isPending;
36
+ return /*#__PURE__*/ q(s, {
37
+ "data-testid": `image-row-${w}`,
38
+ onClick: () => ie({
39
+ to: "/projects/$projectId/compute/images/$imageId",
40
+ params: {
41
+ projectId: M,
42
+ imageId: w
43
+ }
44
+ }),
45
+ children: [
46
+ ee && /*#__PURE__*/ K(r, {
47
+ onClick: (e) => e.stopPropagation(),
48
+ children: /*#__PURE__*/ K(_, {
49
+ checked: n,
50
+ onChange: () => f(e)
51
+ })
52
+ }),
53
+ /*#__PURE__*/ K(r, { children: E }),
54
+ /*#__PURE__*/ K(r, { children: j }),
55
+ /*#__PURE__*/ K(r, { children: ne }),
56
+ /*#__PURE__*/ K(r, { children: e.protected ? S._({ id: "l75CjT" }) : S._({ id: "1UzENP" }) }),
57
+ /*#__PURE__*/ K(r, { children: y && y === w ? `${b}%` : /*#__PURE__*/ K(P, { size: D }) }),
58
+ /*#__PURE__*/ K(r, { children: re || S._({ id: "fj5byd" }) }),
59
+ /*#__PURE__*/ K(r, { children: k ? new Date(k).toLocaleDateString() : S._({ id: "fj5byd" }) }),
60
+ /*#__PURE__*/ K(r, {
61
+ onClick: (e) => e.stopPropagation(),
62
+ children: B ? /*#__PURE__*/ K(i, {
63
+ variant: "primary",
64
+ size: "small"
65
+ }) : /*#__PURE__*/ K(t, { children: /*#__PURE__*/ q(C, { children: [
66
+ /*#__PURE__*/ K(v, {
67
+ label: S._({ id: "v0hPHE" }),
68
+ onClick: () => ie({
69
+ to: "/projects/$projectId/compute/images/$imageId",
70
+ params: {
71
+ projectId: M,
72
+ imageId: w
73
+ }
74
+ })
75
+ }),
76
+ z && c.canUpdateMember && /*#__PURE__*/ q(G, { children: [a && /*#__PURE__*/ K(v, {
77
+ label: S._({ id: "g3UF2V" }),
78
+ onClick: () => F(N.ACCEPTED)
79
+ }), /*#__PURE__*/ K(v, {
80
+ label: S._({ id: "1t/NnN" }),
81
+ onClick: () => F(N.REJECTED)
82
+ })] }),
83
+ !z && c.canUpdate && /*#__PURE__*/ q(G, { children: [
84
+ /*#__PURE__*/ K(v, {
85
+ label: S._({ id: "Y1YKad" }),
86
+ onClick: () => l(e)
87
+ }),
88
+ /*#__PURE__*/ K(v, {
89
+ label: S._({ id: "SIfYq6" }),
90
+ onClick: () => u(e)
91
+ }),
92
+ /*#__PURE__*/ K(v, {
93
+ label: e.status === I.DEACTIVATED ? S._({ id: "FQBaXG" }) : S._({ id: "5y3O+A" }),
94
+ onClick: () => p(e)
95
+ }),
96
+ e.visibility === R.SHARED && L && (c.canCreateMember || c.canDeleteMember) && /*#__PURE__*/ K(v, {
97
+ label: S._({ id: "cWbW6w" }),
98
+ onClick: () => m(e)
99
+ }),
100
+ e.visibility === R.PRIVATE && /*#__PURE__*/ K(v, {
101
+ label: S._({ id: "gMYsdZ" }),
102
+ onClick: () => h(e.id, R.SHARED, j)
103
+ })
104
+ ] }),
105
+ !z && c.canDelete && !e.protected && /*#__PURE__*/ K(v, {
106
+ label: S._({ id: "cnGeoo" }),
107
+ onClick: () => d(e)
108
+ })
109
+ ] }) })
110
+ })
111
+ ]
112
+ }, w);
113
+ }
114
+ //#endregion
115
+ //#region src/server/Compute/helpers/imageHelpers.ts
116
+ var Ue = {
117
+ qcow2: [
118
+ "bare",
119
+ "ova",
120
+ "docker"
121
+ ],
122
+ raw: [
123
+ "bare",
124
+ "ova",
125
+ "docker"
126
+ ],
127
+ vmdk: ["bare", "ova"],
128
+ vhd: ["bare", "ova"],
129
+ vhdx: ["bare", "ova"],
130
+ vdi: ["bare", "ova"],
131
+ iso: ["bare"],
132
+ ami: ["ami"],
133
+ aki: ["aki"],
134
+ ari: ["ari"],
135
+ ploop: ["bare"]
136
+ }, We = {
137
+ qcow2: "bare",
138
+ raw: "bare",
139
+ vmdk: "bare",
140
+ vhd: "bare",
141
+ vhdx: "bare",
142
+ vdi: "bare",
143
+ iso: "bare",
144
+ ami: "ami",
145
+ aki: "aki",
146
+ ari: "ari",
147
+ ploop: "bare"
148
+ };
149
+ function Ge(e) {
150
+ return Ue[e] || [];
151
+ }
152
+ function Ke(e) {
153
+ return We[e] || "";
154
+ }
155
+ function qe(e, t) {
156
+ return Ge(e).includes(t);
157
+ }
158
+ //#endregion
159
+ //#region src/client/routes/_auth/projects/$projectId/compute/-components/Images/-components/CreateImageModal.tsx
160
+ var Je = {
161
+ name: "",
162
+ tags: [],
163
+ visibility: R.PRIVATE,
164
+ disk_format: void 0,
165
+ container_format: void 0,
166
+ protected: !1,
167
+ min_disk: 0,
168
+ min_ram: 0
169
+ }, Ye = ({ isOpen: e, onClose: t, onCreate: n, isLoading: r = !1, isUploadPending: o = !1, uploadProgressPercent: s }) => {
170
+ let { i18n: c, _: u } = Z(), [f, h] = J({ ...Je }), [g, v] = J(""), [b, S] = J(null), [C, w] = J({}), [T, D] = J(!1), [O, k] = J(null), A = f.name.trim() !== "" && b !== null && f.disk_format !== void 0 && f.disk_format.trim() !== "" && f.container_format !== void 0 && f.container_format.trim() !== "" && f.min_disk >= 0 && f.min_ram >= 0, j = Fe(() => f.disk_format ? Ge(f.disk_format) : [], [f.disk_format]), M = [
171
+ ".qcow2",
172
+ ".raw",
173
+ ".vmdk",
174
+ ".vhd",
175
+ ".vhdx",
176
+ ".vdi",
177
+ ".ami",
178
+ ".ari",
179
+ ".aki",
180
+ ".iso",
181
+ ".ploop",
182
+ ".img"
183
+ ], ie = M.join(", "), ae = (e) => {
184
+ let { name: t, value: n, type: r, checked: i } = e.target;
185
+ h((e) => ({
186
+ ...e,
187
+ [t]: r === "checkbox" ? i : n
188
+ })), C[t] && w((e) => {
189
+ let n = { ...e };
190
+ return delete n[t], n;
191
+ });
192
+ }, oe = (e) => {
193
+ let { name: t, value: n } = e.target;
194
+ t === "name" && (!n || n.trim() === "") && w((e) => ({
195
+ ...e,
196
+ name: c._({ id: "wyIOMP" })
197
+ }));
198
+ }, N = (e, t) => {
199
+ if (e === "disk_format") {
200
+ let e = t, n = Ke(e);
201
+ h((t) => ({
202
+ ...t,
203
+ disk_format: e,
204
+ container_format: n
205
+ }));
206
+ } else h((n) => ({
207
+ ...n,
208
+ [e]: t
209
+ }));
210
+ C[e] && w((t) => {
211
+ let n = { ...t };
212
+ return delete n[e], n;
213
+ });
214
+ }, P = (e, t) => {
215
+ let n = t === "" ? 0 : parseInt(t, 10);
216
+ isNaN(n) || (h((t) => ({
217
+ ...t,
218
+ [e]: n
219
+ })), C[e] && w((t) => {
220
+ let n = { ...t };
221
+ return delete n[e], n;
222
+ }));
223
+ }, I = (e, t) => {
224
+ t < 0 && (e === "min_disk" ? w((e) => ({
225
+ ...e,
226
+ min_disk: c._({ id: "K3bUTE" })
227
+ })) : e === "min_ram" && w((e) => ({
228
+ ...e,
229
+ min_ram: c._({ id: "PEGvy+" })
230
+ })));
231
+ }, L = (e) => {
232
+ let t = e.name.toLowerCase();
233
+ M.some((e) => t.endsWith(e)) ? (S(e), C.file && w((e) => {
234
+ let t = { ...e };
235
+ return delete t.file, t;
236
+ })) : w((e) => ({
237
+ ...e,
238
+ file: c._({
239
+ id: "qzIZOL",
240
+ values: { supportedFileFormats: ie }
241
+ })
242
+ }));
243
+ }, z = (e) => {
244
+ let t = e.target.files?.[0];
245
+ t && L(t);
246
+ }, B = (e) => {
247
+ e.preventDefault(), e.stopPropagation(), D(!0);
248
+ }, V = (e) => {
249
+ e.preventDefault(), e.stopPropagation(), D(!1);
250
+ }, se = (e) => {
251
+ e.preventDefault(), e.stopPropagation(), D(!1);
252
+ let t = e.dataTransfer.files;
253
+ t && t.length > 0 && L(t[0]);
254
+ }, ce = (e) => {
255
+ v(e.target.value);
256
+ }, H = () => {
257
+ let e = g.trim();
258
+ if (e !== "") {
259
+ if (f.tags.includes(e)) {
260
+ v("");
261
+ return;
262
+ }
263
+ h((t) => ({
264
+ ...t,
265
+ tags: [...t.tags, e]
266
+ })), v("");
267
+ }
268
+ }, U = (e) => {
269
+ e.key === "Enter" && (e.preventDefault(), H());
270
+ }, le = (e) => {
271
+ h((t) => ({
272
+ ...t,
273
+ tags: t.tags.filter((t) => t !== e)
274
+ }));
275
+ }, W = () => {
276
+ let e = {};
277
+ return (!f.name || f.name.trim() === "") && (e.name = c._({ id: "wyIOMP" })), b || (e.file = c._({ id: "aTqCTq" })), (!f.disk_format || f.disk_format.trim() === "") && (e.disk_format = c._({ id: "LK0pQN" })), (!f.container_format || f.container_format.trim() === "") && (e.container_format = c._({ id: "J4DKSM" })), f.disk_format && f.container_format && (qe(f.disk_format, f.container_format) || (e.container_format = c._({ id: "BgMp/T" }))), f.min_disk < 0 && (e.min_disk = c._({ id: "K3bUTE" })), f.min_ram < 0 && (e.min_ram = c._({ id: "PEGvy+" })), w(e), Object.keys(e).length === 0;
278
+ }, ue = async (e) => {
279
+ if (e.preventDefault(), k(null), !W()) {
280
+ k(c._({ id: "CBFSfX" }));
281
+ return;
282
+ }
283
+ try {
284
+ await n({
285
+ name: f.name.trim(),
286
+ tags: f.tags,
287
+ visibility: f.visibility,
288
+ disk_format: f.disk_format,
289
+ container_format: f.container_format,
290
+ protected: f.protected,
291
+ min_disk: f.min_disk,
292
+ min_ram: f.min_ram
293
+ }, b), de();
294
+ } catch (e) {
295
+ k(e instanceof Error ? e.message : c._({ id: "TQn3hH" }));
296
+ }
297
+ }, de = () => {
298
+ h({ ...Je }), v(""), S(null), w({}), k(null), t();
299
+ };
300
+ return /*#__PURE__*/ q(m, {
301
+ open: e,
302
+ onCancel: r ? void 0 : de,
303
+ size: "large",
304
+ title: c._({ id: "xw2UtT" }),
305
+ onConfirm: ue,
306
+ confirmButtonLabel: c._({ id: "a/nTb8" }),
307
+ cancelButtonLabel: c._({ id: "dEgA5A" }),
308
+ disableConfirmButton: r || !A,
309
+ closeable: !r,
310
+ closeOnEsc: !r,
311
+ children: [
312
+ r && !s && /*#__PURE__*/ q(d, {
313
+ distribution: "center",
314
+ alignment: "center",
315
+ className: "mt-4",
316
+ children: [
317
+ /*#__PURE__*/ K(i, { variant: "primary" }),
318
+ !o && /*#__PURE__*/ K(X, { id: "98Fs4G" }),
319
+ o && /*#__PURE__*/ K(X, { id: "3q1GLx" })
320
+ ]
321
+ }),
322
+ r && !!s && /*#__PURE__*/ K("div", {
323
+ className: "bg-neutral-quaternary mt-4 w-full rounded-full",
324
+ children: /*#__PURE__*/ q("div", {
325
+ className: "bg-theme-info flex h-4 items-center justify-center rounded-full p-0.5 text-center text-xs leading-none font-medium text-white",
326
+ style: { width: `${s}%` },
327
+ children: [s, "%"]
328
+ })
329
+ }),
330
+ !r && /*#__PURE__*/ q(ne, {
331
+ className: "mb-6",
332
+ children: [
333
+ O && /*#__PURE__*/ K(a, {
334
+ variant: "error",
335
+ className: "mb-6",
336
+ children: O
337
+ }),
338
+ /*#__PURE__*/ K(te, {
339
+ className: "mb-6",
340
+ children: /*#__PURE__*/ K(l, { children: /*#__PURE__*/ q("div", {
341
+ className: "w-full",
342
+ children: [
343
+ /*#__PURE__*/ q("label", {
344
+ htmlFor: "image-file",
345
+ className: "mb-2 block text-sm font-medium text-gray-900",
346
+ children: [c._({ id: "UKwOYH" }), /*#__PURE__*/ K("span", {
347
+ className: "ml-1 text-red-500",
348
+ children: "*"
349
+ })]
350
+ }),
351
+ /*#__PURE__*/ K("div", {
352
+ className: "flex w-full items-center justify-center",
353
+ children: /*#__PURE__*/ q("label", {
354
+ htmlFor: "image-file",
355
+ onDragOver: B,
356
+ onDragLeave: V,
357
+ onDrop: se,
358
+ className: re("flex h-24 w-full cursor-pointer flex-col items-center justify-center rounded-lg border-2 border-dashed transition-all", T ? "border-blue-500 bg-blue-50" : "border-gray-300 bg-gray-50 hover:bg-gray-100"),
359
+ children: [/*#__PURE__*/ q("div", {
360
+ className: "flex flex-col items-center justify-center pt-3 pb-3",
361
+ children: [
362
+ /*#__PURE__*/ K("svg", {
363
+ className: re("mb-1 h-6 w-6 transition-colors", T ? "text-blue-500" : "text-gray-500"),
364
+ "aria-hidden": "true",
365
+ xmlns: "http://www.w3.org/2000/svg",
366
+ fill: "none",
367
+ viewBox: "0 0 20 16",
368
+ children: /*#__PURE__*/ K("path", {
369
+ stroke: "currentColor",
370
+ strokeLinecap: "round",
371
+ strokeLinejoin: "round",
372
+ strokeWidth: "2",
373
+ d: "M13 13h3a3 3 0 0 0 0-6h-.025A5.56 5.56 0 0 0 16 5.5 5.5 5.5 0 0 0 5.207 5.021C5.137 5.017 5.071 5 5 5a4 4 0 0 0 0 8h2.167M10 15V6m0 0L8 8m2-2 2 2"
374
+ })
375
+ }),
376
+ /*#__PURE__*/ K("p", {
377
+ className: re("text-xs transition-colors", T ? "font-semibold text-blue-600" : "text-gray-500"),
378
+ children: T ? /*#__PURE__*/ K("span", { children: c._({ id: "vXmL4D" }) }) : /*#__PURE__*/ q(G, { children: [
379
+ /*#__PURE__*/ K("span", {
380
+ className: "font-semibold",
381
+ children: c._({ id: "gYe+hC" })
382
+ }),
383
+ " ",
384
+ c._({ id: "Np28ib" })
385
+ ] })
386
+ }),
387
+ /*#__PURE__*/ K("p", {
388
+ className: "text-xs text-gray-400",
389
+ children: c._({ id: "jBIkmi" })
390
+ })
391
+ ]
392
+ }), /*#__PURE__*/ K("input", {
393
+ id: "image-file",
394
+ type: "file",
395
+ className: "hidden",
396
+ onChange: z,
397
+ accept: ie,
398
+ disabled: r
399
+ })]
400
+ })
401
+ }),
402
+ b && /*#__PURE__*/ q("div", {
403
+ className: "mt-2 flex items-center justify-between rounded-lg border border-green-200 bg-green-50 p-2 text-xs",
404
+ children: [/*#__PURE__*/ q("div", {
405
+ className: "flex items-center",
406
+ children: [/*#__PURE__*/ K("svg", {
407
+ className: "mr-2 h-4 w-4 text-green-600",
408
+ fill: "currentColor",
409
+ viewBox: "0 0 20 20",
410
+ children: /*#__PURE__*/ K("path", {
411
+ fillRule: "evenodd",
412
+ d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",
413
+ clipRule: "evenodd"
414
+ })
415
+ }), /*#__PURE__*/ K("span", {
416
+ className: "text-gray-700",
417
+ children: b.name
418
+ })]
419
+ }), /*#__PURE__*/ K("button", {
420
+ type: "button",
421
+ onClick: () => {
422
+ S(null), C.file && w((e) => {
423
+ let t = { ...e };
424
+ return delete t.file, t;
425
+ });
426
+ },
427
+ className: "font-medium text-red-600 hover:text-red-800",
428
+ disabled: r,
429
+ children: c._({ id: "t/YqKh" })
430
+ })]
431
+ }),
432
+ C.file && /*#__PURE__*/ K("p", {
433
+ className: "text-theme-error mt-1 text-xs text-red-600",
434
+ children: C.file
435
+ })
436
+ ]
437
+ }) })
438
+ }),
439
+ /*#__PURE__*/ q(te, {
440
+ className: "mb-6",
441
+ children: [
442
+ /*#__PURE__*/ K(l, {
443
+ className: "mb-6",
444
+ children: /*#__PURE__*/ K(x, {
445
+ id: "name",
446
+ name: "name",
447
+ label: c._({ id: "ExLULX" }),
448
+ value: f.name,
449
+ onChange: ae,
450
+ onBlur: oe,
451
+ required: !0,
452
+ errortext: C.name,
453
+ placeholder: c._({ id: "PsEGri" }),
454
+ disabled: r
455
+ })
456
+ }),
457
+ /*#__PURE__*/ K(l, {
458
+ className: "mb-6",
459
+ children: /*#__PURE__*/ q("div", {
460
+ className: "w-full",
461
+ children: [/*#__PURE__*/ q(d, {
462
+ gap: "1",
463
+ direction: "horizontal",
464
+ alignment: "start",
465
+ children: [/*#__PURE__*/ K("div", {
466
+ className: "flex-1",
467
+ children: /*#__PURE__*/ K(x, {
468
+ id: "tags",
469
+ name: "tags",
470
+ label: c._({ id: "OYHzN1" }),
471
+ value: g,
472
+ onChange: ce,
473
+ onKeyDown: U,
474
+ helptext: c._({ id: "AN0DBJ" }),
475
+ placeholder: c._({ id: "tmpGvt" }),
476
+ disabled: r
477
+ })
478
+ }), /*#__PURE__*/ K(p, {
479
+ variant: "primary",
480
+ onClick: H,
481
+ disabled: r || g.trim() === "",
482
+ children: /*#__PURE__*/ K(X, { id: "m16xKo" })
483
+ })]
484
+ }), f.tags.length > 0 && /*#__PURE__*/ K(d, {
485
+ gap: "1",
486
+ wrap: !0,
487
+ alignment: "center",
488
+ className: "mt-1",
489
+ children: f.tags.map((e) => /*#__PURE__*/ K(ee, {
490
+ closeable: !0,
491
+ pillKey: "",
492
+ pillValue: e,
493
+ onClose: () => le(e)
494
+ }, e))
495
+ })]
496
+ })
497
+ }),
498
+ /*#__PURE__*/ K(l, {
499
+ className: "mb-6",
500
+ children: /*#__PURE__*/ q(E, {
501
+ id: "visibility",
502
+ name: "visibility",
503
+ label: c._({ id: "2q/Q7x" }),
504
+ value: f.visibility,
505
+ onChange: (e) => N("visibility", e),
506
+ disabled: r,
507
+ loading: r,
508
+ children: [
509
+ /*#__PURE__*/ K(y, {
510
+ value: R.PUBLIC,
511
+ label: c._({ id: "7d1a0d" })
512
+ }),
513
+ /*#__PURE__*/ K(y, {
514
+ value: R.PRIVATE,
515
+ label: c._({ id: "zwBp5t" })
516
+ }),
517
+ /*#__PURE__*/ K(y, {
518
+ value: R.SHARED,
519
+ label: c._({ id: "0Gd0NU" })
520
+ }),
521
+ /*#__PURE__*/ K(y, {
522
+ value: R.COMMUNITY,
523
+ label: c._({ id: "chL5IG" })
524
+ })
525
+ ]
526
+ })
527
+ }),
528
+ /*#__PURE__*/ K(l, {
529
+ className: "mb-6",
530
+ children: /*#__PURE__*/ q(d, {
531
+ direction: "horizontal",
532
+ gap: "3",
533
+ distribution: "evenly",
534
+ className: "w-full",
535
+ children: [/*#__PURE__*/ K("div", {
536
+ className: "flex-1",
537
+ children: /*#__PURE__*/ q(E, {
538
+ id: "disk_format",
539
+ name: "disk_format",
540
+ label: c._({ id: "NopYGU" }),
541
+ value: f.disk_format,
542
+ onChange: (e) => N("disk_format", e),
543
+ disabled: r,
544
+ loading: r,
545
+ required: !0,
546
+ errortext: C.disk_format,
547
+ children: [
548
+ /*#__PURE__*/ K(y, {
549
+ value: F.QCOW2,
550
+ label: "QCOW2 - QEMU Emulator"
551
+ }),
552
+ /*#__PURE__*/ K(y, {
553
+ value: F.RAW,
554
+ label: "Raw"
555
+ }),
556
+ /*#__PURE__*/ K(y, {
557
+ value: F.VMDK,
558
+ label: "VMDK - Virtual Machine Disk"
559
+ }),
560
+ /*#__PURE__*/ K(y, {
561
+ value: F.VHD,
562
+ label: "VHD - Virtual Hard Disk"
563
+ }),
564
+ /*#__PURE__*/ K(y, {
565
+ value: F.VHDX,
566
+ label: "VHDX - Virtual Hard Disk Extended"
567
+ }),
568
+ /*#__PURE__*/ K(y, {
569
+ value: F.VDI,
570
+ label: "VDI - Virtual Disk Image"
571
+ }),
572
+ /*#__PURE__*/ K(y, {
573
+ value: F.AMI,
574
+ label: "AMI - Amazon Machine Image"
575
+ }),
576
+ /*#__PURE__*/ K(y, {
577
+ value: F.ARI,
578
+ label: "ARI - Amazon Ramdisk Image"
579
+ }),
580
+ /*#__PURE__*/ K(y, {
581
+ value: F.AKI,
582
+ label: "AKI - Amazon Kernel Image"
583
+ }),
584
+ /*#__PURE__*/ K(y, {
585
+ value: F.ISO,
586
+ label: "ISO - Optical Disk Image"
587
+ }),
588
+ /*#__PURE__*/ K(y, {
589
+ value: F.PLOOP,
590
+ label: "PLOOP - Virtuozzo/Parallels Loopback Disk"
591
+ })
592
+ ]
593
+ })
594
+ }), /*#__PURE__*/ K("div", {
595
+ className: "flex-1",
596
+ children: /*#__PURE__*/ K(E, {
597
+ id: "container_format",
598
+ name: "container_format",
599
+ label: c._({ id: "6/xipy" }),
600
+ value: f.container_format,
601
+ onChange: (e) => N("container_format", e),
602
+ disabled: r || !f.disk_format || !j.length,
603
+ required: !0,
604
+ errortext: C.container_format,
605
+ helptext: !j.length && c._({ id: "A7CVME" }),
606
+ children: j.map((e) => /*#__PURE__*/ K(y, {
607
+ value: e,
608
+ label: e.toUpperCase()
609
+ }, e))
610
+ })
611
+ })]
612
+ })
613
+ }),
614
+ /*#__PURE__*/ K(l, {
615
+ className: "mb-0",
616
+ children: /*#__PURE__*/ K(_, {
617
+ id: "protected",
618
+ name: "protected",
619
+ label: c._({ id: "644xgx" }),
620
+ checked: f.protected,
621
+ onChange: ae,
622
+ helptext: c._({ id: "aV6KPH" }),
623
+ disabled: r
624
+ })
625
+ })
626
+ ]
627
+ }),
628
+ /*#__PURE__*/ K(te, {
629
+ className: "mb-6",
630
+ children: /*#__PURE__*/ K(l, {
631
+ className: "mb-0",
632
+ children: /*#__PURE__*/ q(d, {
633
+ direction: "horizontal",
634
+ gap: "3",
635
+ distribution: "evenly",
636
+ className: "w-full",
637
+ children: [/*#__PURE__*/ K("div", {
638
+ className: "flex-1",
639
+ children: /*#__PURE__*/ K(x, {
640
+ id: "min_disk",
641
+ name: "min_disk",
642
+ label: c._({ id: "NixRmA" }),
643
+ type: "number",
644
+ value: String(f.min_disk),
645
+ onChange: (e) => P("min_disk", e.target.value),
646
+ onBlur: () => I("min_disk", f.min_disk),
647
+ helptext: c._({ id: "4fh0Wj" }),
648
+ errortext: C.min_disk,
649
+ disabled: r
650
+ })
651
+ }), /*#__PURE__*/ K("div", {
652
+ className: "flex-1",
653
+ children: /*#__PURE__*/ K(x, {
654
+ id: "min_ram",
655
+ name: "min_ram",
656
+ label: c._({ id: "CgZxr7" }),
657
+ type: "number",
658
+ value: String(f.min_ram),
659
+ onChange: (e) => P("min_ram", e.target.value),
660
+ onBlur: () => I("min_ram", f.min_ram),
661
+ helptext: c._({ id: "KsIM0b" }),
662
+ errortext: C.min_ram,
663
+ disabled: r
664
+ })
665
+ })]
666
+ })
667
+ })
668
+ })
669
+ ]
670
+ })
671
+ ]
672
+ });
673
+ }, Xe = ({ deletableImages: e, protectedImages: t, isOpen: n, isLoading: r, onClose: o, onDelete: s }) => {
674
+ let { i18n: c, _: l } = Z(), u = e.length, f = t.length;
675
+ return /*#__PURE__*/ q(m, {
676
+ onCancel: o,
677
+ size: "small",
678
+ title: c._({ id: "JtHgVz" }),
679
+ open: n,
680
+ modalFooter: /*#__PURE__*/ K(g, {
681
+ className: "flex justify-end",
682
+ children: /*#__PURE__*/ q(b, { children: [/*#__PURE__*/ K(p, {
683
+ variant: "default",
684
+ onClick: o,
685
+ children: /*#__PURE__*/ K(X, { id: "dEgA5A" })
686
+ }), /*#__PURE__*/ K(p, {
687
+ variant: "primary-danger",
688
+ onClick: (t) => {
689
+ t.preventDefault(), s(e);
690
+ },
691
+ disabled: r,
692
+ "data-testid": "delete-image-button",
693
+ children: /*#__PURE__*/ K(X, { id: "cnGeoo" })
694
+ })] })
695
+ }),
696
+ children: [r && /*#__PURE__*/ K(d, {
697
+ distribution: "center",
698
+ alignment: "center",
699
+ children: /*#__PURE__*/ K(i, { variant: "primary" })
700
+ }), !r && /*#__PURE__*/ q("div", {
701
+ className: "my-6",
702
+ children: [
703
+ u > 0 && /*#__PURE__*/ q(G, { children: [/*#__PURE__*/ K(a, {
704
+ text: c._({
705
+ id: "Dh1qvV",
706
+ values: { deletableCount: u }
707
+ }),
708
+ variant: "danger",
709
+ className: "mb-6"
710
+ }), /*#__PURE__*/ q("div", {
711
+ className: "mb-6",
712
+ children: [/*#__PURE__*/ K("h3", {
713
+ className: "jn:text-theme-high mb-3 font-semibold",
714
+ children: /*#__PURE__*/ K(X, {
715
+ id: "rwBVXS",
716
+ values: { deletableCount: u }
717
+ })
718
+ }), /*#__PURE__*/ K("div", {
719
+ className: "jn:bg-theme-background-lvl-1 max-h-24 overflow-y-auto rounded p-4",
720
+ children: /*#__PURE__*/ K("ul", {
721
+ className: "space-y-2",
722
+ children: e.map((e) => /*#__PURE__*/ K("li", {
723
+ className: "jn:text-theme-default font-mono",
724
+ children: e
725
+ }, e))
726
+ })
727
+ })]
728
+ })] }),
729
+ f > 0 && /*#__PURE__*/ q("div", {
730
+ className: "mb-6",
731
+ children: [/*#__PURE__*/ K("h3", {
732
+ className: "jn:text-theme-high mb-3 font-semibold",
733
+ children: /*#__PURE__*/ K(X, { id: "jtnAf8" })
734
+ }), /*#__PURE__*/ K("div", {
735
+ className: "jn:bg-theme-warning/10 max-h-24 overflow-y-auto rounded border border-yellow-500/20 p-4",
736
+ children: /*#__PURE__*/ K("ul", {
737
+ className: "space-y-2",
738
+ children: t.map((e) => /*#__PURE__*/ K("li", {
739
+ className: "jn:text-theme-default font-mono",
740
+ children: e
741
+ }, e))
742
+ })
743
+ })]
744
+ }),
745
+ /*#__PURE__*/ q("div", {
746
+ className: "jn:bg-theme-background-lvl-2 mb-6 rounded p-4",
747
+ children: [u > 0 && /*#__PURE__*/ q("div", {
748
+ className: "mb-2 flex justify-between",
749
+ children: [/*#__PURE__*/ K("span", {
750
+ className: "jn:text-theme-default",
751
+ children: /*#__PURE__*/ K(X, { id: "MJtNLd" })
752
+ }), /*#__PURE__*/ K("span", {
753
+ className: "jn:text-theme-highest font-semibold",
754
+ children: u
755
+ })]
756
+ }), f > 0 && /*#__PURE__*/ q("div", {
757
+ className: "flex justify-between",
758
+ children: [/*#__PURE__*/ K("span", {
759
+ className: "jn:text-theme-default",
760
+ children: /*#__PURE__*/ K(X, { id: "QxBGbh" })
761
+ }), /*#__PURE__*/ K("span", {
762
+ className: "jn:text-theme-warning font-semibold",
763
+ children: f
764
+ })]
765
+ })]
766
+ })
767
+ ]
768
+ })]
769
+ });
770
+ }, Ze = ({ activeImages: e, deactivatedImages: t, isOpen: n, isLoading: r, onClose: a, onDeactivate: o }) => {
771
+ let { i18n: s, _: c } = Z(), l = e.length, u = t.length, f = (t) => {
772
+ t.preventDefault(), o(e);
773
+ };
774
+ return /*#__PURE__*/ q(m, {
775
+ onCancel: a,
776
+ size: "small",
777
+ title: s._({ id: "+9CXS9" }),
778
+ open: n,
779
+ onConfirm: (e) => {
780
+ f(e), a();
781
+ },
782
+ confirmButtonLabel: s._({ id: "5y3O+A" }),
783
+ cancelButtonLabel: s._({ id: "dEgA5A" }),
784
+ disableConfirmButton: r,
785
+ children: [r && /*#__PURE__*/ K(d, {
786
+ distribution: "center",
787
+ alignment: "center",
788
+ children: /*#__PURE__*/ K(i, { variant: "primary" })
789
+ }), !r && /*#__PURE__*/ q("div", {
790
+ className: "my-6",
791
+ children: [
792
+ l > 0 && /*#__PURE__*/ q(G, { children: [/*#__PURE__*/ K("p", {
793
+ className: "mb-6",
794
+ children: /*#__PURE__*/ K(X, {
795
+ id: "zm7+/D",
796
+ values: { activeCount: l },
797
+ components: { 0: /*#__PURE__*/ K("strong", {}) }
798
+ })
799
+ }), /*#__PURE__*/ q("div", {
800
+ className: "mb-6",
801
+ children: [/*#__PURE__*/ K("h3", {
802
+ className: "jn:text-theme-high mb-3 font-semibold",
803
+ children: /*#__PURE__*/ K(X, {
804
+ id: "ryxYVo",
805
+ values: { activeCount: l }
806
+ })
807
+ }), /*#__PURE__*/ K("div", {
808
+ className: "jn:bg-theme-background-lvl-1 max-h-24 overflow-y-auto rounded p-4",
809
+ children: /*#__PURE__*/ K("ul", {
810
+ className: "space-y-2",
811
+ children: e.map((e) => /*#__PURE__*/ K("li", {
812
+ className: "jn:text-theme-default font-mono",
813
+ children: e
814
+ }, e))
815
+ })
816
+ })]
817
+ })] }),
818
+ u > 0 && /*#__PURE__*/ q("div", {
819
+ className: "mb-6",
820
+ children: [/*#__PURE__*/ K("h3", {
821
+ className: "jn:text-theme-high mb-3 font-semibold",
822
+ children: /*#__PURE__*/ K(X, { id: "JpZn1L" })
823
+ }), /*#__PURE__*/ K("div", {
824
+ className: "jn:bg-theme-background-lvl-1 max-h-24 overflow-y-auto rounded p-4",
825
+ children: /*#__PURE__*/ K("ul", {
826
+ className: "space-y-2",
827
+ children: t.map((e) => /*#__PURE__*/ K("li", {
828
+ className: "jn:text-theme-default font-mono",
829
+ children: e
830
+ }, e))
831
+ })
832
+ })]
833
+ }),
834
+ /*#__PURE__*/ q("div", {
835
+ className: "jn:bg-theme-background-lvl-2 mb-6 rounded p-4",
836
+ children: [l > 0 && /*#__PURE__*/ q("div", {
837
+ className: "mb-2 flex justify-between",
838
+ children: [/*#__PURE__*/ K("span", {
839
+ className: "jn:text-theme-default",
840
+ children: /*#__PURE__*/ K(X, { id: "rD9yV1" })
841
+ }), /*#__PURE__*/ K("span", {
842
+ className: "jn:text-theme-highest font-semibold",
843
+ children: l
844
+ })]
845
+ }), u > 0 && /*#__PURE__*/ q("div", {
846
+ className: "flex justify-between",
847
+ children: [/*#__PURE__*/ K("span", {
848
+ className: "jn:text-theme-default",
849
+ children: /*#__PURE__*/ K(X, { id: "NH2fsP" })
850
+ }), /*#__PURE__*/ K("span", {
851
+ className: "jn:text-theme-warning font-semibold",
852
+ children: u
853
+ })]
854
+ })]
855
+ })
856
+ ]
857
+ })]
858
+ });
859
+ }, Qe = ({ deactivatedImages: e, activeImages: t, isOpen: n, isLoading: r, onClose: a, onActivate: o }) => {
860
+ let { i18n: s, _: c } = Z(), l = e.length, u = t.length;
861
+ return /*#__PURE__*/ q(m, {
862
+ onCancel: a,
863
+ size: "small",
864
+ title: s._({ id: "UdcGJu" }),
865
+ open: n,
866
+ onConfirm: (t) => {
867
+ t.preventDefault(), o(e);
868
+ },
869
+ confirmButtonLabel: s._({ id: "FQBaXG" }),
870
+ cancelButtonLabel: s._({ id: "dEgA5A" }),
871
+ disableConfirmButton: r,
872
+ children: [r && /*#__PURE__*/ K(d, {
873
+ distribution: "center",
874
+ alignment: "center",
875
+ children: /*#__PURE__*/ K(i, { variant: "primary" })
876
+ }), !r && /*#__PURE__*/ q("div", {
877
+ className: "my-6",
878
+ children: [
879
+ l > 0 && /*#__PURE__*/ q(G, { children: [/*#__PURE__*/ K("p", {
880
+ className: "mb-6",
881
+ children: /*#__PURE__*/ K(X, {
882
+ id: "MgZyuJ",
883
+ values: { deactivatedCount: l },
884
+ components: { 0: /*#__PURE__*/ K("strong", {}) }
885
+ })
886
+ }), /*#__PURE__*/ q("div", {
887
+ className: "mb-6",
888
+ children: [/*#__PURE__*/ K("h3", {
889
+ className: "jn:text-theme-high mb-3 font-semibold",
890
+ children: /*#__PURE__*/ K(X, {
891
+ id: "shKIZu",
892
+ values: { deactivatedCount: l }
893
+ })
894
+ }), /*#__PURE__*/ K("div", {
895
+ className: "jn:bg-theme-background-lvl-1 max-h-24 overflow-y-auto rounded p-4",
896
+ children: /*#__PURE__*/ K("ul", {
897
+ className: "space-y-2",
898
+ children: e.map((e) => /*#__PURE__*/ K("li", {
899
+ className: "jn:text-theme-default font-mono",
900
+ children: e
901
+ }, e))
902
+ })
903
+ })]
904
+ })] }),
905
+ u > 0 && /*#__PURE__*/ q("div", {
906
+ className: "mb-6",
907
+ children: [/*#__PURE__*/ K("h3", {
908
+ className: "jn:text-theme-high mb-3 font-semibold",
909
+ children: /*#__PURE__*/ K(X, { id: "pOPvlj" })
910
+ }), /*#__PURE__*/ K("div", {
911
+ className: "jn:bg-theme-warning/10 max-h-24 overflow-y-auto rounded border border-yellow-500/20 p-4",
912
+ children: /*#__PURE__*/ K("ul", {
913
+ className: "space-y-2",
914
+ children: t.map((e) => /*#__PURE__*/ K("li", {
915
+ className: "jn:text-theme-default font-mono",
916
+ children: e
917
+ }, e))
918
+ })
919
+ })]
920
+ }),
921
+ /*#__PURE__*/ q("div", {
922
+ className: "jn:bg-theme-background-lvl-2 mb-6 rounded p-4",
923
+ children: [l > 0 && /*#__PURE__*/ q("div", {
924
+ className: "mb-2 flex justify-between",
925
+ children: [/*#__PURE__*/ K("span", {
926
+ className: "jn:text-theme-default",
927
+ children: /*#__PURE__*/ K(X, { id: "4fvDRe" })
928
+ }), /*#__PURE__*/ K("span", {
929
+ className: "jn:text-theme-highest font-semibold",
930
+ children: l
931
+ })]
932
+ }), u > 0 && /*#__PURE__*/ q("div", {
933
+ className: "flex justify-between",
934
+ children: [/*#__PURE__*/ K("span", {
935
+ className: "jn:text-theme-default",
936
+ children: /*#__PURE__*/ K(X, { id: "x5l/TK" })
937
+ }), /*#__PURE__*/ K("span", {
938
+ className: "jn:text-theme-warning font-semibold",
939
+ children: u
940
+ })]
941
+ })]
942
+ })
943
+ ]
944
+ })]
945
+ });
946
+ }, $e = ({ isOpen: e, onClose: t, image: n, permissions: { canCreateMember: r, canDeleteMember: i } }) => {
947
+ let { i18n: o, _: s } = Z(), c = De(), [l, u] = J(null), [d, f] = J(!1), { data: p, isLoading: h } = O.compute.listImageMembers.useQuery({
948
+ project_id: c,
949
+ imageId: n?.id || ""
950
+ }, { enabled: e && !!n?.id }), g = () => {
951
+ u(null), f(!1), t();
952
+ };
953
+ if (!e || !n) return null;
954
+ let _ = n.name || n.id;
955
+ return /*#__PURE__*/ K(m, {
956
+ onCancel: g,
957
+ title: o._({
958
+ id: "UQ7Wyv",
959
+ values: { imageName: _ }
960
+ }),
961
+ open: e,
962
+ size: "xl",
963
+ children: /*#__PURE__*/ q("div", { children: [l && /*#__PURE__*/ K(a, {
964
+ onDismiss: () => u(null),
965
+ text: l.text,
966
+ variant: l.type,
967
+ className: "mb-4"
968
+ }), /*#__PURE__*/ K(M, {
969
+ projectId: c,
970
+ image: n,
971
+ imageMembers: p,
972
+ isMembersLoading: h,
973
+ canAdd: r,
974
+ canRemove: i,
975
+ isAddingMember: d,
976
+ setIsAddingMember: f,
977
+ setMessage: u
978
+ })] })
979
+ });
980
+ };
981
+ //#endregion
982
+ //#region src/client/routes/_auth/projects/$projectId/compute/-components/Images/-components/ImageListView.tsx
983
+ function et({ images: t, suggestedImages: a, acceptedImages: l, permissions: u, isFetching: f, currentPage: p = 1, totalPages: m = 1, onPageChange: g, children: v, selectedImages: y, setSelectedImages: b, deleteAllModalOpen: x, setDeleteAllModalOpen: ee, deactivateAllModalOpen: S, setDeactivateAllModalOpen: C, activateAllModalOpen: te, setActivateAllModalOpen: w, createModalOpen: T, setCreateModalOpen: E, deletableImages: ne, protectedImages: re, activeImages: k, deactivatedImages: A, onImageUpdated: j, onImageDeleted: M, onMemberStatusChanged: N, hasAnyBulkAction: P }) {
984
+ let F = De(), [R, U] = J(null), [fe, Se] = J(!1), [Oe, ke] = J(!1), [Ae, je] = J(!1), [Me, Ne] = J(!1), [Fe, Ie] = J(!1), [Le, Re] = J(!1), [Y, Z] = J(null), [Ve, Ue] = J(!1), [We, Ge] = J(null), [Ke, qe] = J(!1), [Je, et] = J(p.toString());
985
+ Pe(() => {
986
+ et(p.toString());
987
+ }, [p]);
988
+ let Q = O.useUtils(), tt = O.compute.deleteImage.useMutation({ onSuccess: () => {
989
+ Q.compute.listImagesWithPagination.invalidate();
990
+ } }), nt = O.compute.deactivateImage.useMutation({ onSuccess: () => {
991
+ Q.compute.listImagesWithPagination.invalidate(), Q.compute.getImageById.invalidate();
992
+ } }), rt = O.compute.reactivateImage.useMutation({ onSuccess: () => {
993
+ Q.compute.listImagesWithPagination.invalidate(), Q.compute.getImageById.invalidate();
994
+ } }), it = O.compute.deleteImages.useMutation({ onSuccess: () => {
995
+ Q.compute.listImagesWithPagination.invalidate(), b([]);
996
+ } }), at = O.compute.activateImages.useMutation({ onSuccess: () => {
997
+ Q.compute.listImagesWithPagination.invalidate(), b([]);
998
+ } }), ot = O.compute.deactivateImages.useMutation({ onSuccess: () => {
999
+ Q.compute.listImagesWithPagination.invalidate(), b([]);
1000
+ } }), st = O.compute.updateImage.useMutation({ onSuccess: (e) => {
1001
+ Q.compute.listImagesWithPagination.invalidate(), Q.compute.getImageById.setData({
1002
+ project_id: F,
1003
+ imageId: e.id
1004
+ }, e);
1005
+ } }), ct = O.compute.createImage.useMutation({ onSuccess: () => {
1006
+ Q.compute.listImagesWithPagination.invalidate();
1007
+ } }), lt = O.compute.updateImageVisibility.useMutation({ onSuccess: (e) => {
1008
+ j(e);
1009
+ } }), { data: ut } = O.compute.watchUploadProgress.useSubscription({
1010
+ project_id: F,
1011
+ uploadId: We || ""
1012
+ }, { enabled: !!We && Ke }), dt = tt.isPending || nt.isPending || rt.isPending || it.isPending || at.isPending || ot.isPending || st.isPending, $ = () => U(null), ft = async (e, t, n) => {
1013
+ try {
1014
+ await lt.mutateAsync({
1015
+ project_id: F,
1016
+ imageId: e,
1017
+ visibility: t
1018
+ }), U(we(n, t, { onDismiss: $ }));
1019
+ } catch (e) {
1020
+ U(ie(n, e?.message || Be._({
1021
+ id: "J9cmxx",
1022
+ values: { newVisibility: t }
1023
+ }), { onDismiss: $ }));
1024
+ }
1025
+ }, pt = (e, t) => {
1026
+ let n = [];
1027
+ return Object.entries(e).forEach(([e, r]) => {
1028
+ let i = `/${e}`;
1029
+ r == null ? e in t && n.push({
1030
+ op: "remove",
1031
+ path: i
1032
+ }) : e in t ? n.push({
1033
+ op: "replace",
1034
+ path: i,
1035
+ value: r
1036
+ }) : n.push({
1037
+ op: "add",
1038
+ path: i,
1039
+ value: r
1040
+ });
1041
+ }), n;
1042
+ }, mt = async (e) => {
1043
+ if (!Y) return !1;
1044
+ let t = Y.id, n = e.name || Y.name || t;
1045
+ try {
1046
+ let r = pt(e, Y), i = await st.mutateAsync({
1047
+ project_id: F,
1048
+ imageId: t,
1049
+ operations: r
1050
+ });
1051
+ return Se(!1), U(z(n, { onDismiss: $ })), Z(i), j(i), !0;
1052
+ } catch (e) {
1053
+ let { message: t } = e;
1054
+ return U(Te(n, t, { onDismiss: $ })), Z(null), !1;
1055
+ }
1056
+ }, ht = async (e, t) => {
1057
+ let n = e.name || "Unnamed";
1058
+ try {
1059
+ Ue(!0);
1060
+ let r = await ct.mutateAsync({
1061
+ project_id: F,
1062
+ ...e
1063
+ });
1064
+ Ge(r.id), qe(!0), await D.compute.uploadImage.mutate(t, { context: { headers: {
1065
+ "x-project-id": F,
1066
+ "x-upload-id": r.id,
1067
+ "x-upload-size": String(t.size)
1068
+ } } }), U(ue(n, { onDismiss: $ })), Q.compute.listImagesWithPagination.invalidate();
1069
+ } catch (e) {
1070
+ if (e instanceof ze && e.data.path === "compute.createImage") U(he(n, e.message, { onDismiss: $ }));
1071
+ else {
1072
+ let { message: n } = e;
1073
+ U(ce(t.name, n, { onDismiss: $ }));
1074
+ }
1075
+ } finally {
1076
+ Ue(!1), E(!1), qe(!1), Ge(null);
1077
+ }
1078
+ }, gt = async (e) => {
1079
+ Se(!1), ke(!1);
1080
+ let t = e.name || e.id, n = e.id;
1081
+ try {
1082
+ await tt.mutateAsync({
1083
+ project_id: F,
1084
+ imageId: n
1085
+ }), U(Ee(t, { onDismiss: $ })), M(n);
1086
+ } catch (e) {
1087
+ let { message: t } = e;
1088
+ U(Ce(n, t, { onDismiss: $ }));
1089
+ }
1090
+ Z(null);
1091
+ }, _t = async (e) => {
1092
+ e.status === I.DEACTIVATED ? (Z(e), Ie(!0)) : (Z(e), Ne(!0));
1093
+ }, vt = async (e) => {
1094
+ let t = e.name || e.id, n = e.id;
1095
+ try {
1096
+ await rt.mutateAsync({
1097
+ project_id: F,
1098
+ imageId: n
1099
+ }), Ie(!1), Z(null), U(le(t, { onDismiss: $ }));
1100
+ } catch (e) {
1101
+ let { message: t } = e;
1102
+ U(ve(n, t, { onDismiss: $ }));
1103
+ }
1104
+ }, yt = async (e) => {
1105
+ let t = e.name || e.id, n = e.id;
1106
+ try {
1107
+ await nt.mutateAsync({
1108
+ project_id: F,
1109
+ imageId: n
1110
+ }), Ne(!1), Z(null), U(W(t, { onDismiss: $ }));
1111
+ } catch (e) {
1112
+ let { message: t } = e;
1113
+ U(V(n, t, { onDismiss: $ }));
1114
+ }
1115
+ }, bt = (e) => {
1116
+ Z(e), Se(!0);
1117
+ }, xt = (e) => {
1118
+ Z(e), ke(!0);
1119
+ }, St = (e) => {
1120
+ Z(e), je(!0);
1121
+ }, Ct = (e) => {
1122
+ Z(e), Re(!0);
1123
+ }, wt = () => {
1124
+ Z(null), Se(!1);
1125
+ }, Tt = () => {
1126
+ Z(null), ke(!1);
1127
+ }, Et = () => {
1128
+ Z(null), je(!1);
1129
+ }, Dt = () => {
1130
+ Z(null), Ne(!1);
1131
+ }, Ot = () => {
1132
+ Z(null), Ie(!1);
1133
+ }, kt = () => {
1134
+ Z(null), Re(!1);
1135
+ }, At = async (e) => {
1136
+ ee(!1);
1137
+ try {
1138
+ let t = await it.mutateAsync({
1139
+ project_id: F,
1140
+ imageIds: e
1141
+ }), n = t.successful.length, r = t.failed.length, i = e.length;
1142
+ U(r === 0 ? me(n, i, { onDismiss: $ }) : n === 0 ? be(r, i, { onDismiss: $ }) : H(n, r, { onDismiss: $ })), t.successful.length > 0 && M(t.successful);
1143
+ } catch (t) {
1144
+ let { message: n } = t;
1145
+ console.log("Bulk delete error: ", n), U(be(e.length, e.length, { onDismiss: $ }));
1146
+ }
1147
+ }, jt = async (e) => {
1148
+ w(!1);
1149
+ try {
1150
+ let t = await at.mutateAsync({
1151
+ project_id: F,
1152
+ imageIds: e
1153
+ }), n = t.successful.length, r = t.failed.length, i = e.length;
1154
+ U(r === 0 ? ye(n, i, { onDismiss: $ }) : n === 0 ? xe(r, i, { onDismiss: $ }) : ge(n, r, { onDismiss: $ }));
1155
+ } catch (t) {
1156
+ let { message: n } = t;
1157
+ console.log("Bulk activate error: ", n), U(xe(e.length, e.length, { onDismiss: $ }));
1158
+ }
1159
+ }, Mt = async (e) => {
1160
+ C(!1);
1161
+ try {
1162
+ let t = await ot.mutateAsync({
1163
+ project_id: F,
1164
+ imageIds: e
1165
+ }), n = t.successful.length, r = t.failed.length, i = e.length;
1166
+ U(r === 0 ? _e(n, i, { onDismiss: $ }) : n === 0 ? de(r, i, { onDismiss: $ }) : se(n, r, { onDismiss: $ }));
1167
+ } catch (t) {
1168
+ let { message: n } = t;
1169
+ console.log("Bulk deactivate error: ", n), U(de(e.length, e.length, { onDismiss: $ }));
1170
+ }
1171
+ }, Nt = (e) => {
1172
+ e >= 1 && e <= m && (g?.(e), et(e.toString()));
1173
+ };
1174
+ return dt ? /*#__PURE__*/ K("div", {
1175
+ "data-testid": "loading",
1176
+ children: /*#__PURE__*/ K(s, { children: /*#__PURE__*/ K(r, {
1177
+ colSpan: 3,
1178
+ children: /*#__PURE__*/ q(d, {
1179
+ distribution: "center",
1180
+ alignment: "center",
1181
+ children: [/*#__PURE__*/ K(i, { variant: "primary" }), /*#__PURE__*/ K(X, { id: "Z3FXyt" })]
1182
+ })
1183
+ }) })
1184
+ }) : /*#__PURE__*/ q(G, { children: [
1185
+ /*#__PURE__*/ K(G, { children: v }),
1186
+ /*#__PURE__*/ q("div", {
1187
+ className: "relative",
1188
+ children: [
1189
+ f && /*#__PURE__*/ K("div", {
1190
+ className: "bg-theme-background-lvl-0/50 absolute inset-0 z-10 flex items-center justify-center backdrop-blur-sm",
1191
+ children: /*#__PURE__*/ q(d, {
1192
+ direction: "vertical",
1193
+ alignment: "center",
1194
+ gap: "2",
1195
+ children: [/*#__PURE__*/ K(i, {
1196
+ variant: "primary",
1197
+ size: "large"
1198
+ }), /*#__PURE__*/ K("span", {
1199
+ className: "text-theme-high font-medium",
1200
+ children: /*#__PURE__*/ K(X, { id: "sihD20" })
1201
+ })]
1202
+ })
1203
+ }),
1204
+ t.length > 0 ? /*#__PURE__*/ q(G, { children: [/*#__PURE__*/ q(h, {
1205
+ columns: P ? 9 : 8,
1206
+ minContentColumns: P ? [0, 8] : [7],
1207
+ className: "images",
1208
+ "data-testid": "images-table",
1209
+ children: [/*#__PURE__*/ q(s, { children: [
1210
+ P && /*#__PURE__*/ K(o, { children: /*#__PURE__*/ K(_, {
1211
+ checked: (() => {
1212
+ let e = t.map((e) => e.id);
1213
+ return e.length > 0 && e.every((e) => y.includes(e));
1214
+ })(),
1215
+ onChange: () => {
1216
+ let e = t.map((e) => e.id);
1217
+ return e.every((e) => y.includes(e)) ? b(y.filter((t) => !e.includes(t))) : b([...new Set([...y, ...e])]);
1218
+ }
1219
+ }) }),
1220
+ /*#__PURE__*/ K(o, { children: /*#__PURE__*/ K(X, { id: "uAQUqI" }) }),
1221
+ /*#__PURE__*/ K(o, { children: /*#__PURE__*/ K(X, { id: "ExLULX" }) }),
1222
+ /*#__PURE__*/ K(o, { children: /*#__PURE__*/ K(X, { id: "2q/Q7x" }) }),
1223
+ /*#__PURE__*/ K(o, { children: /*#__PURE__*/ K(X, { id: "644xgx" }) }),
1224
+ /*#__PURE__*/ K(o, { children: /*#__PURE__*/ K(X, { id: "Cj2Gtd" }) }),
1225
+ /*#__PURE__*/ K(o, { children: /*#__PURE__*/ K(X, { id: "NopYGU" }) }),
1226
+ /*#__PURE__*/ K(o, { children: /*#__PURE__*/ K(X, { id: "d+F6q9" }) }),
1227
+ /*#__PURE__*/ K(o, {})
1228
+ ] }), t.map((e) => /*#__PURE__*/ K(He, {
1229
+ image: e,
1230
+ isSelected: y.includes(e.id),
1231
+ isPending: !!a.find(({ id: t }) => t === e.id),
1232
+ isAccepted: !!l.find(({ id: t }) => t === e.id),
1233
+ permissions: u,
1234
+ onEditDetails: bt,
1235
+ onEditMetadata: xt,
1236
+ onDelete: St,
1237
+ onManageAccess: Ct,
1238
+ showSelectColumn: P,
1239
+ onSelect: (e) => {
1240
+ if (y.includes(e.id)) return b(y.filter((t) => t !== e.id));
1241
+ b([...y, e.id]);
1242
+ },
1243
+ onActivationStatusChange: _t,
1244
+ onUpdateVisibility: ft,
1245
+ setToastData: U,
1246
+ uploadId: We,
1247
+ uploadProgressPercent: ut?.percent,
1248
+ onMemberStatusChanged: N
1249
+ }, e.id))]
1250
+ }), m > 1 && /*#__PURE__*/ K("div", {
1251
+ className: "flex justify-center py-4",
1252
+ children: /*#__PURE__*/ K(n, {
1253
+ variant: "input",
1254
+ currentPage: p,
1255
+ pages: m,
1256
+ onPressPrevious: () => Nt(Math.max(p - 1, 1)),
1257
+ onPressNext: () => Nt(Math.min(p + 1, m)),
1258
+ onSelectChange: (e) => {
1259
+ Nt(e);
1260
+ },
1261
+ onInputChange: (e) => {
1262
+ et(e === void 0 ? "" : String(e));
1263
+ },
1264
+ onKeyDown: (e) => {
1265
+ if (e.key === "Enter" && Je !== "") {
1266
+ let e = parseInt(Je, 10);
1267
+ !isNaN(e) && e >= 1 && e <= m && Nt(e);
1268
+ }
1269
+ }
1270
+ })
1271
+ })] }) : /*#__PURE__*/ K(h, {
1272
+ columns: 7,
1273
+ minContentColumns: [0, 6],
1274
+ className: "images",
1275
+ "data-testid": "no-images",
1276
+ children: /*#__PURE__*/ K(s, { children: /*#__PURE__*/ q(r, {
1277
+ colSpan: 7,
1278
+ children: [/*#__PURE__*/ K(c, { children: /*#__PURE__*/ K(X, { id: "eYlnXt" }) }), /*#__PURE__*/ K("p", { children: /*#__PURE__*/ K(X, { id: "qvF2D8" }) })]
1279
+ }) })
1280
+ }),
1281
+ Y && /*#__PURE__*/ q(G, { children: [
1282
+ /*#__PURE__*/ K(pe, {
1283
+ isOpen: fe,
1284
+ onClose: wt,
1285
+ image: Y,
1286
+ onSave: mt,
1287
+ isLoading: st.isPending
1288
+ }),
1289
+ /*#__PURE__*/ K(L, {
1290
+ isOpen: Oe,
1291
+ onClose: Tt,
1292
+ image: Y,
1293
+ onSave: mt,
1294
+ isLoading: st.isPending
1295
+ }),
1296
+ /*#__PURE__*/ K(ae, {
1297
+ image: Y,
1298
+ isOpen: Ae,
1299
+ isLoading: dt,
1300
+ isDisabled: Y.protected || !u.canDelete,
1301
+ onClose: Et,
1302
+ onDelete: gt
1303
+ }),
1304
+ /*#__PURE__*/ K(B, {
1305
+ image: Y,
1306
+ isOpen: Me,
1307
+ isLoading: nt.isPending,
1308
+ onClose: Dt,
1309
+ onDeactivate: yt
1310
+ }),
1311
+ /*#__PURE__*/ K(oe, {
1312
+ image: Y,
1313
+ isOpen: Fe,
1314
+ isLoading: rt.isPending,
1315
+ onClose: Ot,
1316
+ onActivate: vt
1317
+ }),
1318
+ /*#__PURE__*/ K($e, {
1319
+ image: Y,
1320
+ isOpen: Le,
1321
+ onClose: kt,
1322
+ permissions: u
1323
+ })
1324
+ ] }),
1325
+ /*#__PURE__*/ K(Xe, {
1326
+ isOpen: x,
1327
+ deletableImages: ne,
1328
+ protectedImages: re,
1329
+ isLoading: dt,
1330
+ onClose: () => ee(!1),
1331
+ onDelete: At
1332
+ }),
1333
+ /*#__PURE__*/ K(Ze, {
1334
+ isOpen: S,
1335
+ activeImages: k,
1336
+ deactivatedImages: A,
1337
+ isLoading: dt,
1338
+ onClose: () => C(!1),
1339
+ onDeactivate: Mt
1340
+ }),
1341
+ /*#__PURE__*/ K(Qe, {
1342
+ isOpen: te,
1343
+ deactivatedImages: A,
1344
+ activeImages: k,
1345
+ isLoading: dt,
1346
+ onClose: () => w(!1),
1347
+ onActivate: jt
1348
+ }),
1349
+ /*#__PURE__*/ K(Ye, {
1350
+ isOpen: T,
1351
+ onClose: () => {
1352
+ We && Q.compute.listImagesWithPagination.invalidate(), E(!1);
1353
+ },
1354
+ onCreate: ht,
1355
+ isLoading: ct.isPending || Ke || Ve,
1356
+ isUploadPending: Ke && !!We,
1357
+ uploadProgressPercent: ut?.percent
1358
+ })
1359
+ ]
1360
+ }),
1361
+ R && /*#__PURE__*/ K(e, {
1362
+ ...R,
1363
+ className: "border-theme-light fixed top-5 right-5 z-50 rounded-lg border shadow-lg"
1364
+ })
1365
+ ] });
1366
+ }
1367
+ //#endregion
1368
+ //#region src/client/routes/_auth/projects/$projectId/compute/-components/Images/urlHelpers.ts
1369
+ var Q = (e) => {
1370
+ let t = [];
1371
+ return e.status && (e.status.startsWith("in:") ? e.status.replace("in:", "").split(",") : [e.status]).forEach((e) => {
1372
+ t.push({
1373
+ name: "status",
1374
+ value: e
1375
+ });
1376
+ }), e.visibility && t.push({
1377
+ name: "visibility",
1378
+ value: e.visibility
1379
+ }), e.disk_format && (e.disk_format.startsWith("in:") ? e.disk_format.replace("in:", "").split(",") : [e.disk_format]).forEach((e) => {
1380
+ t.push({
1381
+ name: "disk_format",
1382
+ value: e
1383
+ });
1384
+ }), e.container_format && (e.container_format.startsWith("in:") ? e.container_format.replace("in:", "").split(",") : [e.container_format]).forEach((e) => {
1385
+ t.push({
1386
+ name: "container_format",
1387
+ value: e
1388
+ });
1389
+ }), e.protected && t.push({
1390
+ name: "protected",
1391
+ value: e.protected
1392
+ }), t;
1393
+ }, tt = (e, t) => {
1394
+ let n = {};
1395
+ if (!e?.length) return n;
1396
+ let r = e.filter((e) => !e.inactive).reduce((e, t) => (e[t.name] || (e[t.name] = []), e[t.name].push(t.value), e), {});
1397
+ return Object.entries(r).forEach(([e, r]) => {
1398
+ t.find((t) => t.filterName === e)?.supportsMultiValue && r.length > 1 ? n[e] = `in:${r.join(",")}` : n[e] = r[0];
1399
+ }), n;
1400
+ }, nt = (e, t, n) => e.some((e) => e.name === t.name && e.value === t.value) ? e : n.find((e) => e.filterName === t.name)?.supportsMultiValue ? [...e, t] : [...e.filter((e) => e.name !== t.name), t], rt = (e, t, n) => {
1401
+ let r = {
1402
+ search: n.search,
1403
+ sortBy: n.sortBy,
1404
+ sortDirection: n.sortDirection,
1405
+ memberStatus: n.memberStatus === "all" ? void 0 : n.memberStatus
1406
+ };
1407
+ if (!e?.length) return r;
1408
+ let i = e.filter((e) => !e.inactive).reduce((e, t) => (e[t.name] || (e[t.name] = []), e[t.name].push(t.value), e), {});
1409
+ return Object.entries(i).forEach(([e, n]) => {
1410
+ t.find((t) => t.filterName === e)?.supportsMultiValue && n.length > 1 ? r[e] = `in:${n.join(",")}` : r[e] = n[0];
1411
+ }), r;
1412
+ }, it = {
1413
+ images: [],
1414
+ first: void 0,
1415
+ next: void 0,
1416
+ schema: "/v2/schemas/images",
1417
+ listError: void 0
1418
+ }, at = (e, t, n, r, i, a) => a.member_status && a.member_status !== "all" ? e.compute.listSharedImagesByMemberStatus.query({
1419
+ project_id: t,
1420
+ memberStatus: a.member_status,
1421
+ name: i || void 0,
1422
+ status: a.status,
1423
+ disk_format: a.disk_format,
1424
+ container_format: a.container_format,
1425
+ protected: a.protected,
1426
+ sort: `${n}:${r}`
1427
+ }).then((e) => ({
1428
+ ...it,
1429
+ images: e
1430
+ })).catch((e) => {
1431
+ if (e instanceof ze && e.data?.code === "FORBIDDEN") return {
1432
+ ...it,
1433
+ listError: e.message
1434
+ };
1435
+ throw e;
1436
+ }) : e.compute.listImagesWithSearch.query({
1437
+ project_id: t,
1438
+ sort: `${n}:${r}`,
1439
+ name: i || void 0,
1440
+ ...a,
1441
+ member_status: void 0
1442
+ }).then((e) => ({
1443
+ ...e,
1444
+ listError: void 0
1445
+ })).catch((e) => {
1446
+ if (e instanceof ze && e.data?.code === "FORBIDDEN") return {
1447
+ ...it,
1448
+ listError: e.message
1449
+ };
1450
+ throw e;
1451
+ }), ot = (e, t) => e.compute.canUser.query({
1452
+ project_id: t,
1453
+ permission: [
1454
+ "images:create",
1455
+ "images:delete",
1456
+ "images:update",
1457
+ "images:create_member",
1458
+ "images:delete_member",
1459
+ "images:update_member"
1460
+ ]
1461
+ }).then(([e, t, n, r, i, a]) => ({
1462
+ canCreate: e,
1463
+ canDelete: t,
1464
+ canUpdate: n,
1465
+ canCreateMember: r,
1466
+ canDeleteMember: i,
1467
+ canUpdateMember: a ?? !1
1468
+ })), st = 50;
1469
+ function ct({ imagesPromise: e, imageOverrides: n, deletedImageIds: r, permissionsPromise: i, searchTerm: a, setSearchTerm: o, sortSettings: s, handleSortChange: c, filterSettings: l, handleFilterChange: m, selectedImages: h, setSelectedImages: g, createModalOpen: y, setCreateModalOpen: b, deleteAllModalOpen: x, setDeleteAllModalOpen: ee, deactivateAllModalOpen: te, setDeactivateAllModalOpen: E, activateAllModalOpen: ne, setActivateAllModalOpen: D, memberStatusView: O, setMemberStatusView: re, isFetching: k, currentPage: A, onPageChange: M, onImageUpdated: ie, onImageDeleted: ae, onMemberStatusChanged: oe }) {
1470
+ let { i18n: N, _: P } = Z(), F = Me(e), L = Me(i), [R, z] = J(a), B = Ie(void 0);
1471
+ if (Pe(() => () => clearTimeout(B.current), []), F.listError) return /*#__PURE__*/ K("p", { children: F.listError });
1472
+ let V = F.images.filter((e) => !r.has(e.id)).map((e) => n.get(e.id) ?? e), se = Math.max(1, Math.ceil(V.length / st)), ce = Math.min(A, se), H = V.slice((ce - 1) * st, ce * st);
1473
+ Pe(() => {
1474
+ A !== 1 && A > se && M(1);
1475
+ }, [
1476
+ se,
1477
+ A,
1478
+ M
1479
+ ]);
1480
+ let U = O === "pending" || O === "accepted" ? {
1481
+ ...l,
1482
+ filters: l.filters.filter((e) => e.filterName !== "visibility"),
1483
+ selectedFilters: (l.selectedFilters || []).filter((e) => e.name !== "visibility")
1484
+ } : l, le = new Set(V.map((e) => e.id)), W = h.filter((e) => le.has(e)), ue = W.filter((e) => {
1485
+ let t = V.find((t) => t.id === e);
1486
+ return t && !t.protected;
1487
+ }), de = W.filter((e) => {
1488
+ let t = V.find((t) => t.id === e);
1489
+ return t && t.protected;
1490
+ }), fe = W.filter((e) => {
1491
+ let t = V.find((t) => t.id === e);
1492
+ return t && t.status === I.ACTIVE;
1493
+ }), pe = W.filter((e) => {
1494
+ let t = V.find((t) => t.id === e);
1495
+ return t && t.status === I.DEACTIVATED;
1496
+ }), me = !L.canDelete || W.length === 0 || V.filter((e) => W.includes(e.id)).every((e) => e.protected), he = !L.canUpdate || W.length === 0 || V.filter((e) => W.includes(e.id)).every((e) => e.status === I.DEACTIVATED), ge = !L.canUpdate || W.length === 0 || V.filter((e) => W.includes(e.id)).every((e) => e.status === I.ACTIVE), _e = {
1497
+ items: [
1498
+ {
1499
+ label: N._({ id: "SFo0kK" }),
1500
+ value: "all"
1501
+ },
1502
+ {
1503
+ label: N._({ id: "thHAVL" }),
1504
+ value: "accepted"
1505
+ },
1506
+ {
1507
+ label: N._({ id: "E4QYe7" }),
1508
+ value: "pending"
1509
+ }
1510
+ ],
1511
+ activeItem: O,
1512
+ onActiveItemChange: (e) => re(e)
1513
+ };
1514
+ return /*#__PURE__*/ q(G, { children: [
1515
+ /*#__PURE__*/ q(d, {
1516
+ distribution: "between",
1517
+ alignment: "center",
1518
+ gap: "2",
1519
+ children: [/*#__PURE__*/ K(f, {
1520
+ activeItem: O,
1521
+ onActiveItemChange: _e.onActiveItemChange,
1522
+ children: _e.items.map((e) => /*#__PURE__*/ K(w, {
1523
+ label: e.label,
1524
+ value: e.value
1525
+ }, e.value))
1526
+ }), /*#__PURE__*/ q(d, {
1527
+ gap: "0.5",
1528
+ alignment: "center",
1529
+ children: [/*#__PURE__*/ K(j, {
1530
+ options: s.options,
1531
+ sortBy: s.sortBy,
1532
+ sortDirection: s.sortDirection ?? "desc",
1533
+ onSortByChange: (e) => c({
1534
+ ...s,
1535
+ sortBy: e,
1536
+ sortDirection: s.sortDirection
1537
+ }),
1538
+ onSortDirectionChange: (e) => c({
1539
+ ...s,
1540
+ sortDirection: e
1541
+ })
1542
+ }), L.canCreate && /*#__PURE__*/ K(p, {
1543
+ onClick: () => b(!0),
1544
+ variant: "primary",
1545
+ children: /*#__PURE__*/ K(X, { id: "a/nTb8" })
1546
+ })]
1547
+ })]
1548
+ }),
1549
+ /*#__PURE__*/ K(T, { children: /*#__PURE__*/ q(d, {
1550
+ direction: "vertical",
1551
+ gap: "2",
1552
+ children: [/*#__PURE__*/ q(d, {
1553
+ distribution: "between",
1554
+ alignment: "center",
1555
+ children: [/*#__PURE__*/ K(ke, {
1556
+ filters: U.filters,
1557
+ onChange: (e) => {
1558
+ let t = nt(U.selectedFilters || [], e, U.filters);
1559
+ t !== (U.selectedFilters || []) && m({
1560
+ ...l,
1561
+ selectedFilters: t
1562
+ });
1563
+ }
1564
+ }), /*#__PURE__*/ K(u, {
1565
+ placeholder: N._({ id: "0cl0a5" }),
1566
+ "data-testid": "searchbar",
1567
+ value: R,
1568
+ onInput: (e) => {
1569
+ let t = e.currentTarget.value;
1570
+ z(t), clearTimeout(B.current), B.current = window.setTimeout(() => o(t), 500);
1571
+ },
1572
+ onSearch: (e) => {
1573
+ clearTimeout(B.current), o(typeof e == "string" ? e : "");
1574
+ },
1575
+ onClear: () => {
1576
+ clearTimeout(B.current), z(""), o("");
1577
+ }
1578
+ })]
1579
+ }), U.selectedFilters && U.selectedFilters.length > 0 && /*#__PURE__*/ K(Oe, {
1580
+ selectedFilters: U.selectedFilters,
1581
+ onDelete: (e) => m({
1582
+ ...l,
1583
+ selectedFilters: (l.selectedFilters || []).filter((t) => !(t.name === e.name && t.value === e.value))
1584
+ }),
1585
+ onClear: () => m({
1586
+ ...l,
1587
+ selectedFilters: []
1588
+ })
1589
+ })]
1590
+ }) }),
1591
+ (L.canDelete || L.canUpdate) && /*#__PURE__*/ K(T, { children: /*#__PURE__*/ K(d, {
1592
+ distribution: "between",
1593
+ alignment: "center",
1594
+ children: /*#__PURE__*/ q(d, {
1595
+ gap: "2",
1596
+ alignment: "center",
1597
+ children: [/*#__PURE__*/ K(_, {
1598
+ checked: W.length > 0 && H.every((e) => W.includes(e.id)),
1599
+ indeterminate: W.length > 0 && !H.every((e) => W.includes(e.id)),
1600
+ onChange: () => {
1601
+ let e = H.map((e) => e.id);
1602
+ e.every((e) => W.includes(e)) ? g(W.filter((t) => !e.includes(t))) : g([...new Set([...W, ...e])]);
1603
+ }
1604
+ }), /*#__PURE__*/ q(t, { children: [/*#__PURE__*/ K(S, {
1605
+ as: "div",
1606
+ children: /*#__PURE__*/ K(p, {
1607
+ size: "small",
1608
+ icon: "moreVert",
1609
+ label: N._({ id: "7L01XJ" })
1610
+ })
1611
+ }), /*#__PURE__*/ q(C, { children: [
1612
+ L.canDelete && /*#__PURE__*/ K(v, {
1613
+ disabled: me,
1614
+ label: N._({ id: "c6b6fz" }),
1615
+ onClick: () => ee(!0)
1616
+ }),
1617
+ L.canUpdate && /*#__PURE__*/ K(v, {
1618
+ disabled: he,
1619
+ label: N._({ id: "UmQ3/m" }),
1620
+ onClick: () => E(!0)
1621
+ }),
1622
+ L.canUpdate && /*#__PURE__*/ K(v, {
1623
+ disabled: ge,
1624
+ label: N._({ id: "d/I0J3" }),
1625
+ onClick: () => D(!0)
1626
+ })
1627
+ ] })] })]
1628
+ })
1629
+ }) }),
1630
+ /*#__PURE__*/ K(et, {
1631
+ images: H,
1632
+ suggestedImages: O === "pending" ? H : [],
1633
+ acceptedImages: O === "accepted" ? H : [],
1634
+ permissions: L,
1635
+ isFetching: k,
1636
+ currentPage: ce,
1637
+ totalPages: se,
1638
+ onPageChange: M,
1639
+ selectedImages: h,
1640
+ setSelectedImages: g,
1641
+ deleteAllModalOpen: x,
1642
+ setDeleteAllModalOpen: ee,
1643
+ deactivateAllModalOpen: te,
1644
+ setDeactivateAllModalOpen: E,
1645
+ activateAllModalOpen: ne,
1646
+ setActivateAllModalOpen: D,
1647
+ createModalOpen: y,
1648
+ setCreateModalOpen: b,
1649
+ deletableImages: ue,
1650
+ protectedImages: de,
1651
+ activeImages: fe,
1652
+ deactivatedImages: pe,
1653
+ onImageUpdated: ie,
1654
+ onImageDeleted: ae,
1655
+ onMemberStatusChanged: oe,
1656
+ hasAnyBulkAction: L.canDelete || L.canUpdate
1657
+ })
1658
+ ] });
1659
+ }
1660
+ var lt = ({ client: e, project: t }) => {
1661
+ let { i18n: n, _: r } = Z(), o = Le(), s = Y({ strict: !1 }), [c, l] = J({
1662
+ options: [
1663
+ {
1664
+ label: n._({ id: "88kg0+" }),
1665
+ value: "created_at"
1666
+ },
1667
+ {
1668
+ label: n._({ id: "Llcakz" }),
1669
+ value: "updated_at"
1670
+ },
1671
+ {
1672
+ label: n._({ id: "6YtxFj" }),
1673
+ value: "name"
1674
+ },
1675
+ {
1676
+ label: n._({ id: "Cj2Gtd" }),
1677
+ value: "size"
1678
+ },
1679
+ {
1680
+ label: n._({ id: "uAQUqI" }),
1681
+ value: "status"
1682
+ }
1683
+ ],
1684
+ sortBy: s.sortBy || "created_at",
1685
+ sortDirection: s.sortDirection || "desc"
1686
+ }), [u, f] = J({
1687
+ filters: [
1688
+ {
1689
+ displayName: n._({ id: "uAQUqI" }),
1690
+ filterName: "status",
1691
+ values: Object.values(I),
1692
+ supportsMultiValue: !0
1693
+ },
1694
+ {
1695
+ displayName: n._({ id: "2q/Q7x" }),
1696
+ filterName: "visibility",
1697
+ values: Object.values(R),
1698
+ supportsMultiValue: !1
1699
+ },
1700
+ {
1701
+ displayName: n._({ id: "NopYGU" }),
1702
+ filterName: "disk_format",
1703
+ values: Object.values(F),
1704
+ supportsMultiValue: !0
1705
+ },
1706
+ {
1707
+ displayName: n._({ id: "6/xipy" }),
1708
+ filterName: "container_format",
1709
+ values: Object.values(fe),
1710
+ supportsMultiValue: !0
1711
+ },
1712
+ {
1713
+ displayName: n._({ id: "644xgx" }),
1714
+ filterName: "protected",
1715
+ values: ["true", "false"],
1716
+ supportsMultiValue: !1
1717
+ }
1718
+ ],
1719
+ selectedFilters: Q(s)
1720
+ }), [p, m] = J(s.search || ""), h = s.page ?? 1, [g, _] = J([]), [v, y] = J(!1), [b, x] = J(!1), [ee, S] = J(!1), [C, te] = J(!1), w = s.memberStatus ?? "all", [T, E] = J(!0), [ne, D] = J(/* @__PURE__ */ new Map()), [O, re] = J(/* @__PURE__ */ new Set()), [k, A] = J(() => new Promise(() => {})), [j] = J(() => ot(e, t)), M = Ne((e) => {
1721
+ D((t) => new Map(t).set(e.id, e));
1722
+ }, []), ie = Ne((e) => {
1723
+ re((t) => {
1724
+ let n = new Set(t);
1725
+ return Array.isArray(e) ? e.forEach((e) => n.add(e)) : n.add(e), n;
1726
+ });
1727
+ }, []), ae = Ne(() => {
1728
+ D(/* @__PURE__ */ new Map()), E(!0);
1729
+ let n = s.memberStatus ?? "all", r = n === "all" ? void 0 : n;
1730
+ je(() => {
1731
+ let i = n === "pending" || n === "accepted" ? (u.selectedFilters || []).filter((e) => e.name !== "visibility") : u.selectedFilters || [], a = at(e, t, c.sortBy, c.sortDirection, p, {
1732
+ ...tt(i, u.filters),
1733
+ member_status: r
1734
+ });
1735
+ a.catch(() => {}).finally(() => E(!1)), A(a);
1736
+ });
1737
+ }, [
1738
+ e,
1739
+ c,
1740
+ p,
1741
+ u,
1742
+ s.memberStatus
1743
+ ]);
1744
+ Pe(() => {
1745
+ let n = Q(s), r = s.sortBy || "created_at", i = s.sortDirection || "desc", a = s.search || "";
1746
+ f((e) => ({
1747
+ ...e,
1748
+ selectedFilters: n
1749
+ })), l((e) => ({
1750
+ ...e,
1751
+ sortBy: r,
1752
+ sortDirection: i
1753
+ })), m(a), _([]), D(/* @__PURE__ */ new Map()), E(!0);
1754
+ let o = s.memberStatus ?? "all", c = o === "all" ? void 0 : o;
1755
+ je(() => {
1756
+ let s = at(e, t, r, i, a, {
1757
+ ...tt(o === "pending" || o === "accepted" ? (n || []).filter((e) => e.name !== "visibility") : n || [], u.filters),
1758
+ member_status: c
1759
+ });
1760
+ s.catch(() => {}).finally(() => E(!1)), A(s);
1761
+ });
1762
+ }, [
1763
+ s.status,
1764
+ s.visibility,
1765
+ s.disk_format,
1766
+ s.container_format,
1767
+ s.protected,
1768
+ s.sortBy,
1769
+ s.sortDirection,
1770
+ s.search,
1771
+ s.memberStatus
1772
+ ]);
1773
+ let oe = (e) => {
1774
+ let t = {
1775
+ options: e.options,
1776
+ sortBy: e.sortBy?.toString() || "created_at",
1777
+ sortDirection: e.sortDirection || "desc"
1778
+ };
1779
+ l(t), o({
1780
+ search: (e) => ({
1781
+ ...e,
1782
+ sortBy: t.sortBy,
1783
+ sortDirection: t.sortDirection,
1784
+ page: void 0
1785
+ }),
1786
+ replace: !0
1787
+ });
1788
+ }, N = (e) => {
1789
+ f(e), o({
1790
+ search: (t) => rt(e.selectedFilters || [], e.filters, {
1791
+ search: t.search,
1792
+ sortBy: t.sortBy,
1793
+ sortDirection: t.sortDirection,
1794
+ memberStatus: t.memberStatus
1795
+ }),
1796
+ replace: !0
1797
+ });
1798
+ }, P = (e) => {
1799
+ let t = typeof e == "string" ? e : "";
1800
+ m(t), o({
1801
+ search: (e) => ({
1802
+ ...e,
1803
+ search: t || void 0,
1804
+ page: void 0
1805
+ }),
1806
+ replace: !0
1807
+ });
1808
+ }, L = (e) => {
1809
+ o({ search: (t) => ({
1810
+ sortBy: t.sortBy,
1811
+ sortDirection: t.sortDirection,
1812
+ search: t.search,
1813
+ memberStatus: e === "all" ? void 0 : e
1814
+ }) });
1815
+ }, z = Ne((e) => {
1816
+ o({ search: (t) => ({
1817
+ ...t,
1818
+ page: e === 1 ? void 0 : e
1819
+ }) });
1820
+ }, [o]);
1821
+ return /*#__PURE__*/ K("div", {
1822
+ className: "relative",
1823
+ children: /*#__PURE__*/ K(Ve, {
1824
+ fallbackRender: ({ error: e }) => /*#__PURE__*/ K(a, {
1825
+ variant: "error",
1826
+ text: e instanceof Error ? e.message : n._({ id: "W5A0Ly" })
1827
+ }),
1828
+ children: /*#__PURE__*/ K(Ae, {
1829
+ fallback: /*#__PURE__*/ q(d, {
1830
+ className: "fixed inset-0",
1831
+ distribution: "center",
1832
+ alignment: "center",
1833
+ direction: "vertical",
1834
+ children: [/*#__PURE__*/ K(i, {
1835
+ variant: "primary",
1836
+ size: "large",
1837
+ className: "mb-2"
1838
+ }), /*#__PURE__*/ K(X, { id: "HBpi4q" })]
1839
+ }),
1840
+ children: /*#__PURE__*/ K(ct, {
1841
+ imagesPromise: k,
1842
+ imageOverrides: ne,
1843
+ deletedImageIds: O,
1844
+ permissionsPromise: j,
1845
+ searchTerm: p,
1846
+ setSearchTerm: P,
1847
+ sortSettings: c,
1848
+ handleSortChange: oe,
1849
+ filterSettings: u,
1850
+ handleFilterChange: N,
1851
+ selectedImages: g,
1852
+ setSelectedImages: _,
1853
+ createModalOpen: v,
1854
+ setCreateModalOpen: y,
1855
+ deleteAllModalOpen: b,
1856
+ setDeleteAllModalOpen: x,
1857
+ deactivateAllModalOpen: ee,
1858
+ setDeactivateAllModalOpen: S,
1859
+ activateAllModalOpen: C,
1860
+ setActivateAllModalOpen: te,
1861
+ memberStatusView: w,
1862
+ setMemberStatusView: L,
1863
+ isFetching: T,
1864
+ currentPage: h,
1865
+ onPageChange: z,
1866
+ onImageUpdated: M,
1867
+ onImageDeleted: ie,
1868
+ onMemberStatusChanged: ae
1869
+ })
1870
+ })
1871
+ })
1872
+ });
1873
+ };
1874
+ //#endregion
1875
+ //#region src/client/routes/_auth/projects/$projectId/compute/images/index.tsx?tsr-split=component
1876
+ function ut() {
1877
+ let { i18n: e, _: t } = Z(), { projectId: n } = k.useParams(), { trpcClient: r } = k.useRouteContext();
1878
+ if (!r) throw Error("trpcClient is not available in route context");
1879
+ return /*#__PURE__*/ q(G, { children: [/*#__PURE__*/ K(A, {
1880
+ title: e._({ id: "an5hVd" }),
1881
+ projectId: n
1882
+ }), /*#__PURE__*/ K(lt, {
1883
+ client: r,
1884
+ project: n
1885
+ })] });
1886
+ }
1887
+ //#endregion
1888
+ export { ut as component };
1889
+
1890
+ //# sourceMappingURL=images-BPnTuKFO2.mjs.map