@cobaltcore-dev/aurora 0.7.0 → 0.8.0

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 (101) 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-DqsGNvtD.mjs} +17 -17
  4. package/dist/client/{ContentHeader-kx1Th5Sq.mjs.map → ContentHeader-DqsGNvtD.mjs.map} +1 -1
  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-B9Vqkraj.mjs} +8 -8
  20. package/dist/client/{_flavorId-C2x43-6S.mjs.map → _flavorId-B9Vqkraj.mjs.map} +1 -1
  21. package/dist/client/{_flavorId-CR8ZUI-P.mjs → _flavorId-CFpNGz52.mjs} +62 -62
  22. package/dist/client/{_flavorId-CR8ZUI-P.mjs.map → _flavorId-CFpNGz52.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-9NZytfNs.mjs +534 -0
  28. package/dist/client/{_imageId-CvfD832b.mjs.map → _imageId-9NZytfNs.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-DOgwFiqD.mjs.map → _projectId-B_2sZKk-.mjs.map} +1 -1
  35. package/dist/client/{_projectId-MxcHrXW4.mjs → _projectId-CLgClx24.mjs} +3 -3
  36. package/dist/client/{_projectId-MxcHrXW4.mjs.map → _projectId-CLgClx24.mjs.map} +1 -1
  37. package/dist/client/_projectId-cW9aQ4Ag.mjs +271 -0
  38. package/dist/client/_projectId-cW9aQ4Ag.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-2_fau4B5.mjs} +698 -698
  44. package/dist/client/{_storageType-DYjo-6ej.mjs.map → _storageType-2_fau4B5.mjs.map} +1 -1
  45. package/dist/client/{_storageType-4wSxI__0.mjs → _storageType-dRTFMKG3.mjs} +2 -2
  46. package/dist/client/{_storageType-4wSxI__0.mjs.map → _storageType-dRTFMKG3.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-_P7R-CeT.mjs} +2 -2
  54. package/dist/client/{flavors-BxFVqgnb.mjs.map → flavors-_P7R-CeT.mjs.map} +1 -1
  55. package/dist/client/{flavors-CfdgjsZY.mjs → flavors-m1qDHzeS.mjs} +238 -221
  56. package/dist/client/flavors-m1qDHzeS.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-CpM-T_jM.mjs} +2 -2
  60. package/dist/client/{images-CenluYV8.mjs.map → images-CpM-T_jM.mjs.map} +1 -1
  61. package/dist/client/images-DHmVgQAh2.mjs +1890 -0
  62. package/dist/client/images-DHmVgQAh2.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-Bl8NmoVZ.mjs → pca-C8zWTSSt.mjs} +2 -2
  73. package/dist/client/{pca-Bl8NmoVZ.mjs.map → pca-C8zWTSSt.mjs.map} +1 -1
  74. package/dist/client/pca-CK5-j7Kk.mjs +202 -0
  75. package/dist/client/pca-CK5-j7Kk.mjs.map +1 -0
  76. package/dist/client/{projects-pe2_dCnV.mjs → projects-CHYn7L5e.mjs} +2 -2
  77. package/dist/client/{projects-pe2_dCnV.mjs.map → projects-CHYn7L5e.mjs.map} +1 -1
  78. package/dist/client/{projects-D2iewAzu.mjs → projects-CeLhtLvf.mjs} +2 -2
  79. package/dist/client/{projects-D2iewAzu.mjs.map → projects-CeLhtLvf.mjs.map} +1 -1
  80. package/dist/client/{projects-CgclWI16.mjs → projects-ClViaUuv.mjs} +11 -11
  81. package/dist/client/{projects-CgclWI16.mjs.map → projects-ClViaUuv.mjs.map} +1 -1
  82. package/dist/client/{_projectId-BDSWnMGj.mjs → routeInfo-DlDJZnpg.mjs} +34 -8
  83. package/dist/client/routeInfo-DlDJZnpg.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 -12
  90. package/package.json +4 -4
  91. package/dist/client/_imageId-CvfD832b.mjs +0 -534
  92. package/dist/client/_pcaId-BxBt5DXi.mjs +0 -459
  93. package/dist/client/_pcaId-BxBt5DXi.mjs.map +0 -1
  94. package/dist/client/_projectId-BDSWnMGj.mjs.map +0 -1
  95. package/dist/client/_projectId-DS4nR59B.mjs +0 -299
  96. package/dist/client/_projectId-DS4nR59B.mjs.map +0 -1
  97. package/dist/client/flavors-CfdgjsZY.mjs.map +0 -1
  98. package/dist/client/images-CKqIXUq52.mjs +0 -1873
  99. package/dist/client/images-CKqIXUq52.mjs.map +0 -1
  100. package/dist/client/pca-RSiWpJs9.mjs +0 -182
  101. package/dist/client/pca-RSiWpJs9.mjs.map +0 -1
@@ -0,0 +1,534 @@
1
+ import { $ as e, D as t, F as n, H as r, J as i, K as a, O as o, Q as s, Y as c, _ as l, g as u, k as d, lt as f, nt as p, ot as m, tt as h } from "./build-BdRRmNf5.mjs";
2
+ import { r as g } from "./trpcClient-BzPUgiM2.mjs";
3
+ import { n as _, t as ee } from "./ContentHeader-DqsGNvtD.mjs";
4
+ import { A as v, D as te, E as ne, F as y, I as b, N as re, O as ie, P as x, T as ae, d as oe, k as se, u as ce } from "./ImageToastNotifications-BuDXpTkl.mjs";
5
+ import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
6
+ import T, { useState as E } from "react";
7
+ import { useNavigate as le, useParams as ue, useSearch as de } from "@tanstack/react-router";
8
+ import { Trans as D, useLingui as O } from "@lingui/react";
9
+ //#region src/client/routes/_auth/projects/$projectId/compute/-components/Images/-components/ImageDetailsView.tsx
10
+ var k = ({ image: e, myMemberData: t, canUpdateMember: n, onStatusChange: r, isLoading: i }) => {
11
+ let { i18n: a, _: o } = O(), s = t.status === y.PENDING, c = t.status === y.REJECTED, d = t.created_at ? new Date(t.created_at).toLocaleString() : a._({ id: "fj5byd" }), p = t.updated_at ? new Date(t.updated_at).toLocaleString() : a._({ id: "fj5byd" }), m = e.owner ?? "";
12
+ return /*#__PURE__*/ w(u, { children: [
13
+ s && /*#__PURE__*/ C("p", {
14
+ className: "text-theme-highest font-semibold",
15
+ children: /*#__PURE__*/ C(D, { id: "/EcdUM" })
16
+ }),
17
+ /*#__PURE__*/ C("p", { children: /*#__PURE__*/ C(D, {
18
+ id: "Uwo8Xw",
19
+ values: {
20
+ ownerProject: m,
21
+ sharedAt: d
22
+ },
23
+ components: { 0: /*#__PURE__*/ C("span", { className: "font-semibold" }) }
24
+ }) }),
25
+ /*#__PURE__*/ w("ul", { children: [
26
+ /*#__PURE__*/ w("li", { children: [
27
+ /*#__PURE__*/ C("span", {
28
+ className: "font-semibold",
29
+ children: /*#__PURE__*/ C(D, { id: "azXlY+" })
30
+ }),
31
+ " ",
32
+ t.status
33
+ ] }),
34
+ /*#__PURE__*/ w("li", { children: [
35
+ /*#__PURE__*/ C("span", {
36
+ className: "font-semibold",
37
+ children: /*#__PURE__*/ C(D, { id: "G6AP+o" })
38
+ }),
39
+ " ",
40
+ d
41
+ ] }),
42
+ /*#__PURE__*/ w("li", { children: [
43
+ /*#__PURE__*/ C("span", {
44
+ className: "font-semibold",
45
+ children: /*#__PURE__*/ C(D, { id: "pFg+7w" })
46
+ }),
47
+ " ",
48
+ p
49
+ ] })
50
+ ] }),
51
+ n && (s || c) && /*#__PURE__*/ w(f, { children: [/*#__PURE__*/ C(l, {
52
+ onClick: () => r(y.ACCEPTED),
53
+ disabled: i,
54
+ children: /*#__PURE__*/ C(D, { id: "g3UF2V" })
55
+ }), s && /*#__PURE__*/ C(l, {
56
+ onClick: () => r(y.REJECTED),
57
+ disabled: i,
58
+ children: /*#__PURE__*/ C(D, { id: "1t/NnN" })
59
+ })] })
60
+ ] });
61
+ }, A = ({ image: e }) => {
62
+ let { i18n: t, _: r } = O();
63
+ return /*#__PURE__*/ w(o, {
64
+ px: !1,
65
+ py: !0,
66
+ children: [/*#__PURE__*/ C(s, { children: t._({ id: "nW/hX9" }) }), /*#__PURE__*/ w(h, {
67
+ alignTerms: "right",
68
+ children: [
69
+ /*#__PURE__*/ C(a, { children: t._({ id: "S0kLOH" }) }),
70
+ /*#__PURE__*/ C(n, { children: /*#__PURE__*/ C(_, { text: e.id }) }),
71
+ /*#__PURE__*/ C(a, { children: t._({ id: "6YtxFj" }) }),
72
+ /*#__PURE__*/ C(n, { children: e.name }),
73
+ /*#__PURE__*/ C(a, { children: t._({ id: "uAQUqI" }) }),
74
+ /*#__PURE__*/ C(n, { children: e.status }),
75
+ /*#__PURE__*/ C(a, { children: t._({ id: "Cj2Gtd" }) }),
76
+ /*#__PURE__*/ C(n, { children: /*#__PURE__*/ C(b, { size: e.size }) }),
77
+ /*#__PURE__*/ C(a, { children: t._({ id: "Cxgv2U" }) }),
78
+ /*#__PURE__*/ w(n, { children: [e.min_disk, " GB"] }),
79
+ /*#__PURE__*/ C(a, { children: t._({ id: "B2Czeb" }) }),
80
+ /*#__PURE__*/ w(n, { children: [e.min_ram, " MB"] }),
81
+ /*#__PURE__*/ C(a, { children: t._({ id: "NopYGU" }) }),
82
+ /*#__PURE__*/ C(n, { children: /*#__PURE__*/ C("span", {
83
+ className: "uppercase",
84
+ children: e.disk_format
85
+ }) }),
86
+ /*#__PURE__*/ C(a, { children: t._({ id: "6/xipy" }) }),
87
+ /*#__PURE__*/ C(n, { children: /*#__PURE__*/ C("span", {
88
+ className: "uppercase",
89
+ children: e.container_format
90
+ }) }),
91
+ /*#__PURE__*/ C(a, { children: t._({ id: "88kg0+" }) }),
92
+ /*#__PURE__*/ C(n, { children: e.created_at ? new Date(e.created_at).toLocaleDateString() : t._({ id: "fj5byd" }) }),
93
+ /*#__PURE__*/ C(a, { children: t._({ id: "Llcakz" }) }),
94
+ /*#__PURE__*/ C(n, { children: e.updated_at ? new Date(e.updated_at).toLocaleDateString() : t._({ id: "fj5byd" }) })
95
+ ]
96
+ })]
97
+ });
98
+ }, j = ({ image: e, currentProjectId: t }) => {
99
+ let { i18n: r, _: i } = O(), c = e.visibility === "shared" && e.owner !== void 0 && e.owner !== t;
100
+ return /*#__PURE__*/ w(o, {
101
+ px: !1,
102
+ py: !0,
103
+ children: [/*#__PURE__*/ C(s, { children: r._({ id: "a3LDKx" }) }), /*#__PURE__*/ w(h, {
104
+ alignTerms: "right",
105
+ children: [
106
+ /*#__PURE__*/ C(a, { children: c ? r._({ id: "20axE5" }) : r._({ id: "YsrbQh" }) }),
107
+ /*#__PURE__*/ C(n, { children: e.owner ? /*#__PURE__*/ C(_, { text: e.owner }) : "" }),
108
+ /*#__PURE__*/ C(a, { children: r._({ id: "2q/Q7x" }) }),
109
+ /*#__PURE__*/ C(n, { children: e.visibility }),
110
+ /*#__PURE__*/ C(a, { children: r._({ id: "644xgx" }) }),
111
+ /*#__PURE__*/ C(n, { children: e.protected ? r._({ id: "l75CjT" }) : r._({ id: "1UzENP" }) }),
112
+ /*#__PURE__*/ C(a, { children: r._({ id: "PzgYM9" }) }),
113
+ /*#__PURE__*/ C(n, { children: e?.checksum ? e.checksum : "" })
114
+ ]
115
+ })]
116
+ });
117
+ }, M = ({ image: e }) => {
118
+ let { i18n: t, _: r } = O(), i = new Set([
119
+ "id",
120
+ "name",
121
+ "status",
122
+ "visibility",
123
+ "size",
124
+ "disk_format",
125
+ "container_format",
126
+ "min_disk",
127
+ "min_ram",
128
+ "owner",
129
+ "protected",
130
+ "created_at",
131
+ "updated_at",
132
+ "checksum"
133
+ ]), c = Object.entries(e).filter(([e]) => !i.has(e)).sort(([e], [t]) => e.localeCompare(t)), l = c.length > 0;
134
+ return /*#__PURE__*/ w(o, {
135
+ px: !1,
136
+ py: !0,
137
+ children: [/*#__PURE__*/ C(s, { children: t._({ id: "bc67JN" }) }), l ? /*#__PURE__*/ C(h, {
138
+ alignTerms: "right",
139
+ className: "grid-cols-4",
140
+ children: c.map(([e, r]) => /*#__PURE__*/ w(T.Fragment, { children: [/*#__PURE__*/ C(a, {
141
+ className: "col-span-1",
142
+ children: e
143
+ }), /*#__PURE__*/ C(n, {
144
+ className: "col-span-1",
145
+ children: r == null ? /*#__PURE__*/ C("span", { children: "null" }) : typeof r == "object" ? /*#__PURE__*/ C("span", {
146
+ className: "break-all",
147
+ children: JSON.stringify(r)
148
+ }) : typeof r == "boolean" ? r ? t._({ id: "c+xCSz" }) : t._({ id: "ocUvR+" }) : /*#__PURE__*/ C("span", {
149
+ className: "break-all",
150
+ children: String(r)
151
+ })
152
+ })] }, e))
153
+ }) : /*#__PURE__*/ C("p", {
154
+ className: "text-theme-light",
155
+ children: t._({ id: "9v5VLp" })
156
+ })]
157
+ });
158
+ }, N = (e) => {
159
+ let t = "px-6 py-3 font-semibold border-b-2 transition-colors";
160
+ return e ? `${t} border-theme-accent text-theme-highest` : `${t} border-transparent text-theme-secondary hover:text-theme-high`;
161
+ }, P = ({ image: e, permissions: t, currentProjectId: n }) => {
162
+ let [r, a] = E(!1), [s, c] = E(null), { data: l, isLoading: u } = g.compute.listImageMembers.useQuery({
163
+ project_id: n,
164
+ imageId: e.id
165
+ }, { enabled: !!e.id && !!n });
166
+ return /*#__PURE__*/ w(o, {
167
+ px: !1,
168
+ py: !0,
169
+ children: [s && /*#__PURE__*/ C(i, {
170
+ text: s.text,
171
+ variant: s.type,
172
+ onDismiss: () => c(null),
173
+ className: "mb-4"
174
+ }), /*#__PURE__*/ C(v, {
175
+ image: e,
176
+ imageMembers: l,
177
+ isMembersLoading: u,
178
+ canAdd: t?.canCreateMember ?? !1,
179
+ canRemove: t?.canDeleteMember ?? !1,
180
+ isAddingMember: r,
181
+ setIsAddingMember: a,
182
+ setMessage: c,
183
+ projectId: n
184
+ })]
185
+ });
186
+ }, fe = ({ image: e, currentProjectId: t, activeTab: n = "details", onTabChange: r, permissions: i, myMemberData: a, onMemberStatusChange: o, isMemberStatusChanging: s, actions: l }) => {
187
+ let { i18n: u, _: d } = O(), f = e.visibility === "shared" && e.owner !== void 0 && e.owner !== t, p = e.owner === t && e.visibility === "shared";
188
+ return /*#__PURE__*/ w(c, {
189
+ direction: "vertical",
190
+ gap: "6",
191
+ children: [
192
+ f && a && o && /*#__PURE__*/ C(k, {
193
+ image: e,
194
+ myMemberData: a,
195
+ canUpdateMember: i?.canUpdateMember ?? !1,
196
+ onStatusChange: o,
197
+ isLoading: s ?? !1
198
+ }),
199
+ p && /*#__PURE__*/ C("div", {
200
+ className: "border-theme-background-lvl-3 border-b",
201
+ children: /*#__PURE__*/ w(c, {
202
+ direction: "horizontal",
203
+ gap: "0",
204
+ children: [/*#__PURE__*/ C("button", {
205
+ className: N(n === "details"),
206
+ onClick: () => r?.("details"),
207
+ children: u._({ id: "URmyfc" })
208
+ }), /*#__PURE__*/ C("button", {
209
+ className: N(n === "sharing"),
210
+ onClick: () => r?.("sharing"),
211
+ children: u._({ id: "aG9OiI" })
212
+ })]
213
+ })
214
+ }),
215
+ (n === "details" || !p) && /*#__PURE__*/ w(S, { children: [
216
+ l,
217
+ /*#__PURE__*/ C(A, { image: e }),
218
+ /*#__PURE__*/ C(j, {
219
+ image: e,
220
+ currentProjectId: t
221
+ }),
222
+ /*#__PURE__*/ C(M, { image: e })
223
+ ] }),
224
+ n === "sharing" && p && /*#__PURE__*/ C(P, {
225
+ image: e,
226
+ permissions: i
227
+ })
228
+ ]
229
+ });
230
+ };
231
+ //#endregion
232
+ //#region src/client/routes/_auth/projects/$projectId/compute/images/$imageId.tsx?tsr-split=component
233
+ function F() {
234
+ let { projectId: n, imageId: i } = ue({ from: "/_auth/projects/$projectId/compute/images/$imageId" }), { tab: a } = de({ from: "/_auth/projects/$projectId/compute/images/$imageId" }), o = le(), { i18n: s, _: u } = O(), { data: h, status: _, error: v } = g.compute.getImageById.useQuery({
235
+ project_id: n,
236
+ imageId: i
237
+ }), { data: y } = g.compute.canUser.useQuery({
238
+ project_id: n,
239
+ permission: [
240
+ "images:delete",
241
+ "images:update",
242
+ "images:create_member",
243
+ "images:delete_member",
244
+ "images:update_member"
245
+ ]
246
+ }), b = {
247
+ canDelete: y?.[0] ?? !1,
248
+ canUpdate: y?.[1] ?? !1,
249
+ canCreateMember: y?.[2] ?? !1,
250
+ canDeleteMember: y?.[3] ?? !1,
251
+ canUpdateMember: y?.[4] ?? !1
252
+ }, T = g.useUtils(), [k, A] = E(!1), [j, M] = E(!1), [N, P] = E(!1), [F, I] = E(!1), [L, R] = E(!1), [z, B] = E(null), V = g.compute.updateImage.useMutation({ onSuccess: (e) => {
253
+ T.compute.getImageById.setData({
254
+ project_id: n,
255
+ imageId: i
256
+ }, e), T.compute.listImagesWithPagination.invalidate();
257
+ } }), H = g.compute.deleteImage.useMutation({ onSuccess: () => {
258
+ T.compute.listImagesWithPagination.invalidate();
259
+ } }), U = g.compute.deactivateImage.useMutation({ onSuccess: () => {
260
+ T.compute.getImageById.invalidate({
261
+ project_id: n,
262
+ imageId: i
263
+ });
264
+ } }), W = g.compute.reactivateImage.useMutation({ onSuccess: () => {
265
+ T.compute.getImageById.invalidate({
266
+ project_id: n,
267
+ imageId: i
268
+ });
269
+ } }), G = g.compute.updateImageVisibility.useMutation({ onSuccess: (e) => {
270
+ T.compute.getImageById.setData({
271
+ project_id: n,
272
+ imageId: i
273
+ }, e);
274
+ } }), K = h?.visibility === x.SHARED && h?.owner !== void 0 && h?.owner !== n, { data: q } = g.compute.getImageMember.useQuery({
275
+ project_id: n,
276
+ imageId: i,
277
+ memberId: n
278
+ }, { enabled: K && !!i && !!n }), J = g.compute.updateImageMember.useMutation({ onSuccess: () => {
279
+ T.compute.getImageMember.invalidate({
280
+ project_id: n,
281
+ imageId: i,
282
+ memberId: n
283
+ }), T.compute.listImageMembers.invalidate({
284
+ project_id: n,
285
+ imageId: i
286
+ }), T.compute.listImagesWithPagination.invalidate(), T.compute.listSharedImagesByMemberStatus.invalidate();
287
+ } }), Y = async (e) => {
288
+ try {
289
+ await J.mutateAsync({
290
+ project_id: n,
291
+ imageId: i,
292
+ memberId: n,
293
+ status: e
294
+ }), B(oe(e, { onDismiss: () => B(null) }));
295
+ } catch (e) {
296
+ let t = e?.message;
297
+ B(ce(t, { onDismiss: () => B(null) }));
298
+ }
299
+ }, X = () => {
300
+ o({
301
+ to: "/projects/$projectId/compute/images",
302
+ params: { projectId: n }
303
+ });
304
+ }, Z = V.isPending || H.isPending || U.isPending || W.isPending || G.isPending, pe = (e, t) => {
305
+ let n = [];
306
+ return Object.entries(e).forEach(([e, r]) => {
307
+ let i = `/${e}`;
308
+ if (r == null) e in t && n.push({
309
+ op: "remove",
310
+ path: i
311
+ });
312
+ else {
313
+ let a = e in t;
314
+ n.push({
315
+ op: a ? "replace" : "add",
316
+ path: i,
317
+ value: r
318
+ });
319
+ }
320
+ }), n;
321
+ }, Q = async (e) => {
322
+ if (!h) return !1;
323
+ let t = pe(e, h);
324
+ try {
325
+ return await V.mutateAsync({
326
+ project_id: n,
327
+ imageId: i,
328
+ operations: t
329
+ }), A(!1), !0;
330
+ } catch {
331
+ return !1;
332
+ }
333
+ }, me = async (e) => {
334
+ try {
335
+ await H.mutateAsync({
336
+ project_id: n,
337
+ imageId: e.id
338
+ }), P(!1), X();
339
+ } catch {
340
+ P(!1);
341
+ }
342
+ }, he = async (e) => {
343
+ try {
344
+ await W.mutateAsync({
345
+ project_id: n,
346
+ imageId: e.id
347
+ }), I(!1);
348
+ } catch {
349
+ I(!1);
350
+ }
351
+ }, ge = async (e) => {
352
+ try {
353
+ await U.mutateAsync({
354
+ project_id: n,
355
+ imageId: e.id
356
+ }), R(!1);
357
+ } catch {
358
+ R(!1);
359
+ }
360
+ }, _e = async (e) => {
361
+ if (h) try {
362
+ await G.mutateAsync({
363
+ project_id: n,
364
+ imageId: h.id,
365
+ visibility: e
366
+ });
367
+ } catch {}
368
+ };
369
+ if (_ === "pending") return /*#__PURE__*/ w(c, {
370
+ className: "fixed inset-0",
371
+ distribution: "center",
372
+ alignment: "center",
373
+ direction: "vertical",
374
+ children: [/*#__PURE__*/ C(r, {
375
+ variant: "primary",
376
+ size: "large",
377
+ className: "mb-2"
378
+ }), /*#__PURE__*/ C(D, { id: "hH3kDo" })]
379
+ });
380
+ if (_ === "error") {
381
+ let e = v?.message || "Unknown error";
382
+ return /*#__PURE__*/ w(c, {
383
+ className: "fixed inset-0",
384
+ distribution: "center",
385
+ alignment: "center",
386
+ direction: "vertical",
387
+ gap: "5",
388
+ children: [
389
+ /*#__PURE__*/ C("p", {
390
+ className: "text-theme-error font-semibold",
391
+ children: /*#__PURE__*/ C(D, { id: "Jh4rAZ" })
392
+ }),
393
+ /*#__PURE__*/ C("p", {
394
+ className: "text-theme-highest",
395
+ children: e
396
+ }),
397
+ /*#__PURE__*/ C(l, {
398
+ onClick: X,
399
+ variant: "primary",
400
+ children: /*#__PURE__*/ C(D, { id: "bnql/K" })
401
+ })
402
+ ]
403
+ });
404
+ }
405
+ if (!h) return /*#__PURE__*/ w(c, {
406
+ className: "fixed inset-0",
407
+ distribution: "center",
408
+ alignment: "center",
409
+ direction: "vertical",
410
+ gap: "5",
411
+ children: [/*#__PURE__*/ C("p", {
412
+ className: "text-theme-highest",
413
+ children: /*#__PURE__*/ C(D, { id: "1pdLQw" })
414
+ }), /*#__PURE__*/ C(l, {
415
+ onClick: X,
416
+ variant: "primary",
417
+ children: /*#__PURE__*/ C(D, { id: "bnql/K" })
418
+ })]
419
+ });
420
+ let $ = h.status === re.DEACTIVATED, ve = h.visibility === x.PRIVATE, ye = q?.status === "accepted", be = h.owner === n, xe = K && ye && b.canUpdateMember, Se = !K && b.canUpdate, Ce = !K && b.canDelete && !h.protected, we = !K && be && h.visibility === x.SHARED && (b.canCreateMember || b.canDeleteMember), Te = xe || Se || Ce || we, Ee = Te || !K && b.canUpdate ? /*#__PURE__*/ w(f, { children: [
421
+ Te && /*#__PURE__*/ w(t, { children: [/*#__PURE__*/ C(p, {
422
+ as: "div",
423
+ children: /*#__PURE__*/ C(l, {
424
+ icon: "moreVert",
425
+ disabled: Z,
426
+ children: /*#__PURE__*/ C(D, { id: "PgNNGl" })
427
+ })
428
+ }), /*#__PURE__*/ w(m, { children: [
429
+ xe && /*#__PURE__*/ C(d, {
430
+ label: s._({ id: "1t/NnN" }),
431
+ onClick: () => Y("rejected")
432
+ }),
433
+ !K && b.canUpdate && /*#__PURE__*/ C(d, {
434
+ label: $ ? s._({ id: "FQBaXG" }) : s._({ id: "5y3O+A" }),
435
+ onClick: () => $ ? I(!0) : R(!0)
436
+ }),
437
+ !K && b.canUpdate && ve && /*#__PURE__*/ C(d, {
438
+ label: s._({ id: "gMYsdZ" }),
439
+ onClick: () => _e("shared")
440
+ }),
441
+ !K && be && h.visibility === x.SHARED && (b.canCreateMember || b.canDeleteMember) && /*#__PURE__*/ C(d, {
442
+ label: s._({ id: "cWbW6w" }),
443
+ onClick: () => o({
444
+ to: "/projects/$projectId/compute/images/$imageId",
445
+ params: {
446
+ projectId: n,
447
+ imageId: h.id
448
+ },
449
+ search: { tab: "sharing" }
450
+ })
451
+ }),
452
+ !K && b.canDelete && !h.protected && /*#__PURE__*/ C(d, {
453
+ label: s._({ id: "cnGeoo" }),
454
+ onClick: () => P(!0)
455
+ })
456
+ ] })] }),
457
+ !K && b.canUpdate && /*#__PURE__*/ C(l, {
458
+ onClick: () => M(!0),
459
+ disabled: Z,
460
+ children: /*#__PURE__*/ C(D, { id: "SIfYq6" })
461
+ }),
462
+ !K && b.canUpdate && /*#__PURE__*/ C(l, {
463
+ onClick: () => A(!0),
464
+ variant: "primary",
465
+ disabled: Z,
466
+ children: /*#__PURE__*/ C(D, { id: "Y1YKad" })
467
+ })
468
+ ] }) : void 0;
469
+ return /*#__PURE__*/ w(S, { children: [
470
+ /*#__PURE__*/ C(ee, {
471
+ title: String(h.name ?? h.id),
472
+ projectId: n,
473
+ actions: Ee
474
+ }),
475
+ /*#__PURE__*/ C("div", {
476
+ className: "mt-3",
477
+ children: /*#__PURE__*/ C(fe, {
478
+ image: h,
479
+ currentProjectId: n,
480
+ activeTab: a ?? "details",
481
+ onTabChange: (e) => o({ search: { tab: e === "details" ? void 0 : e } }),
482
+ permissions: {
483
+ canCreateMember: b.canCreateMember,
484
+ canDeleteMember: b.canDeleteMember,
485
+ canUpdateMember: b.canUpdateMember
486
+ },
487
+ myMemberData: q,
488
+ onMemberStatusChange: Y,
489
+ isMemberStatusChanging: J.isPending
490
+ }, h.id)
491
+ }),
492
+ z && /*#__PURE__*/ C(e, { ...z }),
493
+ k && /*#__PURE__*/ C(se, {
494
+ image: h,
495
+ isOpen: k,
496
+ isLoading: V.isPending,
497
+ onClose: () => A(!1),
498
+ onSave: Q
499
+ }),
500
+ j && /*#__PURE__*/ C(ie, {
501
+ image: h,
502
+ isOpen: j,
503
+ isLoading: V.isPending,
504
+ onClose: () => M(!1),
505
+ onSave: Q
506
+ }),
507
+ N && /*#__PURE__*/ C(te, {
508
+ image: h,
509
+ isOpen: N,
510
+ isLoading: H.isPending,
511
+ isDisabled: !!h.protected,
512
+ onClose: () => P(!1),
513
+ onDelete: me
514
+ }),
515
+ F && /*#__PURE__*/ C(ne, {
516
+ image: h,
517
+ isOpen: F,
518
+ isLoading: W.isPending,
519
+ onClose: () => I(!1),
520
+ onActivate: he
521
+ }),
522
+ L && /*#__PURE__*/ C(ae, {
523
+ image: h,
524
+ isOpen: L,
525
+ isLoading: U.isPending,
526
+ onClose: () => R(!1),
527
+ onDeactivate: ge
528
+ })
529
+ ] });
530
+ }
531
+ //#endregion
532
+ export { F as component };
533
+
534
+ //# sourceMappingURL=_imageId-9NZytfNs.mjs.map