@cobaltcore-dev/aurora 2.0.0 → 2.1.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 (128) hide show
  1. package/dist/client/ContentHeader-fKKZVu-o.mjs +116 -0
  2. package/dist/client/ContentHeader-fKKZVu-o.mjs.map +1 -0
  3. package/dist/client/DeleteFlavorModal-C4nAi7gY.mjs +724 -0
  4. package/dist/client/DeleteFlavorModal-C4nAi7gY.mjs.map +1 -0
  5. package/dist/client/{RouteIdLevelDefaultError-CSseJ1yG.mjs → RouteIdLevelDefaultError-DPF_x2tG.mjs} +9 -9
  6. package/dist/client/RouteIdLevelDefaultError-DPF_x2tG.mjs.map +1 -0
  7. package/dist/client/StorageNotFound-B-zVinVD.mjs +30 -0
  8. package/dist/client/StorageNotFound-B-zVinVD.mjs.map +1 -0
  9. package/dist/client/_flavorId-BPvssEzn.mjs +277 -0
  10. package/dist/client/_flavorId-BPvssEzn.mjs.map +1 -0
  11. package/dist/client/{_flavorId-CaA4-Pnf.mjs → _flavorId-CFUBcU-l.mjs} +3 -3
  12. package/dist/client/{_flavorId-CaA4-Pnf.mjs.map → _flavorId-CFUBcU-l.mjs.map} +1 -1
  13. package/dist/client/{_flavorId-YV3jCS5g.mjs → _flavorId-CZcIp0Ih.mjs} +3 -3
  14. package/dist/client/{_flavorId-YV3jCS5g.mjs.map → _flavorId-CZcIp0Ih.mjs.map} +1 -1
  15. package/dist/client/{_floatingIpId-Dpsc7GU4.mjs → _floatingIpId-B8r64AL9.mjs} +3 -3
  16. package/dist/client/{_floatingIpId-Dpsc7GU4.mjs.map → _floatingIpId-B8r64AL9.mjs.map} +1 -1
  17. package/dist/client/{_floatingIpId-BeYElanB.mjs → _floatingIpId-lEobpOER.mjs} +2 -2
  18. package/dist/client/{_floatingIpId-BeYElanB.mjs.map → _floatingIpId-lEobpOER.mjs.map} +1 -1
  19. package/dist/client/_imageId-BAezmV0Y.mjs +526 -0
  20. package/dist/client/_imageId-BAezmV0Y.mjs.map +1 -0
  21. package/dist/client/{_imageId-pBSS0YcC.mjs → _imageId-D-jqz3e3.mjs} +3 -3
  22. package/dist/client/_imageId-D-jqz3e3.mjs.map +1 -0
  23. package/dist/client/{_imageId-mpXUMCh_.mjs → _imageId-gMdrdnVt.mjs} +3 -3
  24. package/dist/client/_imageId-gMdrdnVt.mjs.map +1 -0
  25. package/dist/client/{_projectId-BnTBxKfp.mjs → _projectId-BYccdAtX.mjs} +3 -3
  26. package/dist/client/{_projectId-BnTBxKfp.mjs.map → _projectId-BYccdAtX.mjs.map} +1 -1
  27. package/dist/client/{_projectId-AjgJX6Gl.mjs → _projectId-CBjZC1tv.mjs} +85 -83
  28. package/dist/client/_projectId-CBjZC1tv.mjs.map +1 -0
  29. package/dist/client/{_projectId-CVrdJ52s.mjs → _projectId-CLEa1zgw.mjs} +2 -2
  30. package/dist/client/{_projectId-CVrdJ52s.mjs.map → _projectId-CLEa1zgw.mjs.map} +1 -1
  31. package/dist/client/_projectId-D3VOH5lN.mjs +94 -0
  32. package/dist/client/_projectId-D3VOH5lN.mjs.map +1 -0
  33. package/dist/client/{_securityGroupId-AO3wnH8g.mjs → _securityGroupId-BwgZnoiR.mjs} +2 -2
  34. package/dist/client/{_securityGroupId-AO3wnH8g.mjs.map → _securityGroupId-BwgZnoiR.mjs.map} +1 -1
  35. package/dist/client/{_securityGroupId-Bq0ZyG6z.mjs → _securityGroupId-Cz2NUHdB.mjs} +3 -3
  36. package/dist/client/{_securityGroupId-Bq0ZyG6z.mjs.map → _securityGroupId-Cz2NUHdB.mjs.map} +1 -1
  37. package/dist/client/{_storageType-CzZ4u9x_.mjs → _storageType-BNpP1A2N.mjs} +3 -2
  38. package/dist/client/_storageType-BNpP1A2N.mjs.map +1 -0
  39. package/dist/client/_storageType-BxSGKhAI.mjs +15 -0
  40. package/dist/client/_storageType-BxSGKhAI.mjs.map +1 -0
  41. package/dist/client/_storageType-DZYCmiLt.mjs +30 -0
  42. package/dist/client/_storageType-DZYCmiLt.mjs.map +1 -0
  43. package/dist/client/{_storageType-c-DAu8qr.mjs → _storageType-UqAMP-8d.mjs} +286 -285
  44. package/dist/client/_storageType-UqAMP-8d.mjs.map +1 -0
  45. package/dist/client/_storageType-u51_7OwJ.mjs +7 -0
  46. package/dist/client/_storageType-u51_7OwJ.mjs.map +1 -0
  47. package/dist/client/components/Errors/RouteIdLevelDefaultError.d.ts +2 -1
  48. package/dist/client/{flavors-ZudiAiTU.mjs → flavors-CJVSNz6R.mjs} +2 -2
  49. package/dist/client/{flavors-ZudiAiTU.mjs.map → flavors-CJVSNz6R.mjs.map} +1 -1
  50. package/dist/client/{flavors-Bgq3KZmx.mjs → flavors-CflJDIEH.mjs} +90 -82
  51. package/dist/client/flavors-CflJDIEH.mjs.map +1 -0
  52. package/dist/client/{floatingips-B1oLH8z6.mjs → floatingips-DXnRlLvV.mjs} +2 -2
  53. package/dist/client/{floatingips-B1oLH8z6.mjs.map → floatingips-DXnRlLvV.mjs.map} +1 -1
  54. package/dist/client/{floatingips-BtLg3yEQ.mjs → floatingips-HRbuLxiN.mjs} +3 -3
  55. package/dist/client/{floatingips-BtLg3yEQ.mjs.map → floatingips-HRbuLxiN.mjs.map} +1 -1
  56. package/dist/client/{floatingips-BeQEkVH8.mjs → floatingips-nN1kQmsu.mjs} +2 -2
  57. package/dist/client/{floatingips-BeQEkVH8.mjs.map → floatingips-nN1kQmsu.mjs.map} +1 -1
  58. package/dist/client/imageHelpers-DBhL2ebL.mjs +1272 -0
  59. package/dist/client/imageHelpers-DBhL2ebL.mjs.map +1 -0
  60. package/dist/client/{images-CnTW3bpy.mjs → images-BsylWUiH.mjs} +837 -849
  61. package/dist/client/images-BsylWUiH.mjs.map +1 -0
  62. package/dist/client/{images-DZHDYDQu.mjs → images-zQq1nSVv.mjs} +2 -2
  63. package/dist/client/{images-DZHDYDQu.mjs.map → images-zQq1nSVv.mjs.map} +1 -1
  64. package/dist/client/index.js +200 -198
  65. package/dist/client/index.js.map +1 -1
  66. package/dist/client/{objects-jYQBFzwg.mjs → objects-BudUAfWY.mjs} +4265 -4275
  67. package/dist/client/objects-BudUAfWY.mjs.map +1 -0
  68. package/dist/client/objects-Dc7sKUr8.mjs +67 -0
  69. package/dist/client/objects-Dc7sKUr8.mjs.map +1 -0
  70. package/dist/client/objects-Dw7oeTq2.mjs +80 -0
  71. package/dist/client/objects-Dw7oeTq2.mjs.map +1 -0
  72. package/dist/client/objects-_g7nGIn5.mjs +25 -0
  73. package/dist/client/objects-_g7nGIn5.mjs.map +1 -0
  74. package/dist/client/objects-eBxvY6_n.mjs +78 -0
  75. package/dist/client/objects-eBxvY6_n.mjs.map +1 -0
  76. package/dist/client/projects-yiK0HGSA.mjs.map +1 -1
  77. package/dist/client/{securitygroups--0PS2wbM.mjs → securitygroups-CSmsBzUb.mjs} +105 -104
  78. package/dist/client/securitygroups-CSmsBzUb.mjs.map +1 -0
  79. package/dist/client/{securitygroups-BRndk7wh.mjs → securitygroups-T7kaNFEp.mjs} +2 -2
  80. package/dist/client/{securitygroups-BRndk7wh.mjs.map → securitygroups-T7kaNFEp.mjs.map} +1 -1
  81. package/dist/client/{securitygroups-Cs2Op-tu.mjs → securitygroups-WLB1_IM6.mjs} +3 -3
  82. package/dist/client/{securitygroups-Cs2Op-tu.mjs.map → securitygroups-WLB1_IM6.mjs.map} +1 -1
  83. package/dist/client/{securitygroups-CdN4yAAw.mjs → securitygroups-o0IXZM6S.mjs} +2 -2
  84. package/dist/client/{securitygroups-CdN4yAAw.mjs.map → securitygroups-o0IXZM6S.mjs.map} +1 -1
  85. package/dist/client/serviceCatalog-B3lKWC9V.mjs +6 -0
  86. package/dist/client/serviceCatalog-B3lKWC9V.mjs.map +1 -0
  87. package/dist/client/storageProviders-CJ5rOh13.mjs +15 -0
  88. package/dist/client/storageProviders-CJ5rOh13.mjs.map +1 -0
  89. package/dist/client/trpcClient.d.ts +96 -4
  90. package/dist/client/useErrorTranslation-Dc0eE8Zt.mjs +83 -0
  91. package/dist/client/useErrorTranslation-Dc0eE8Zt.mjs.map +1 -0
  92. package/dist/client/utils/serviceCatalog.d.ts +9 -0
  93. package/dist/client/utils/storageProviders.d.ts +44 -0
  94. package/dist/server/index.d.ts +96 -4
  95. package/dist/server/index.js +1993 -904
  96. package/package.json +2 -2
  97. package/dist/client/ContentHeader-CPJbgYWn.mjs +0 -115
  98. package/dist/client/ContentHeader-CPJbgYWn.mjs.map +0 -1
  99. package/dist/client/DeleteFlavorModal-C2MqUgGR.mjs +0 -801
  100. package/dist/client/DeleteFlavorModal-C2MqUgGR.mjs.map +0 -1
  101. package/dist/client/ImageToastNotifications-BWfzOUMc.mjs +0 -1135
  102. package/dist/client/ImageToastNotifications-BWfzOUMc.mjs.map +0 -1
  103. package/dist/client/RouteIdLevelDefaultError-CSseJ1yG.mjs.map +0 -1
  104. package/dist/client/_flavorId-DYv_StX22.mjs +0 -276
  105. package/dist/client/_flavorId-DYv_StX22.mjs.map +0 -1
  106. package/dist/client/_imageId-mfKp3JHn.mjs +0 -558
  107. package/dist/client/_imageId-mfKp3JHn.mjs.map +0 -1
  108. package/dist/client/_imageId-mpXUMCh_.mjs.map +0 -1
  109. package/dist/client/_imageId-pBSS0YcC.mjs.map +0 -1
  110. package/dist/client/_projectId-AjgJX6Gl.mjs.map +0 -1
  111. package/dist/client/_projectId-DgciZslU.mjs +0 -92
  112. package/dist/client/_projectId-DgciZslU.mjs.map +0 -1
  113. package/dist/client/_storageType-BRWWJtow.mjs +0 -14
  114. package/dist/client/_storageType-BRWWJtow.mjs.map +0 -1
  115. package/dist/client/_storageType-CzZ4u9x_.mjs.map +0 -1
  116. package/dist/client/_storageType-c-DAu8qr.mjs.map +0 -1
  117. package/dist/client/_storageType-zeSZe--V.mjs +0 -7
  118. package/dist/client/_storageType-zeSZe--V.mjs.map +0 -1
  119. package/dist/client/flavors-Bgq3KZmx.mjs.map +0 -1
  120. package/dist/client/images-CnTW3bpy.mjs.map +0 -1
  121. package/dist/client/objects-25xsh4Ia.mjs +0 -66
  122. package/dist/client/objects-25xsh4Ia.mjs.map +0 -1
  123. package/dist/client/objects-KXY6dgwq.mjs +0 -82
  124. package/dist/client/objects-KXY6dgwq.mjs.map +0 -1
  125. package/dist/client/objects-QryuClU3.mjs +0 -82
  126. package/dist/client/objects-QryuClU3.mjs.map +0 -1
  127. package/dist/client/objects-jYQBFzwg.mjs.map +0 -1
  128. package/dist/client/securitygroups--0PS2wbM.mjs.map +0 -1
@@ -0,0 +1,724 @@
1
+ import { E as e, L as t, Q as n, X as r, ft as i, i as a, m as o, n as s, ot as c, p as l, rt as u, s as d } from "./build-WuxXRAqf.mjs";
2
+ import { t as f } from "./useModalTracking-BYd37pXm.mjs";
3
+ import { t as p } from "./useErrorTranslation-Dc0eE8Zt.mjs";
4
+ import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
5
+ import _, { useEffect as v, useMemo as y, useState as b } from "react";
6
+ import { Trans as x, useLingui as S } from "@lingui/react";
7
+ import { z as C } from "zod";
8
+ import { useForm as w, useStore as T } from "@tanstack/react-form";
9
+ //#region src/client/routes/_auth/projects/$projectId/compute/flavors/-components/EditSpecModal.tsx
10
+ function E(e) {
11
+ return Object.entries(e).map(([e, t]) => ({
12
+ key: e,
13
+ value: t,
14
+ isEditing: !1
15
+ }));
16
+ }
17
+ var D = (e, t, n) => e.compute.getExtraSpecs.query({
18
+ project_id: t,
19
+ flavorId: n
20
+ });
21
+ function O({ client: i, project: l, flavor: f, isLoading: v, onClose: y, initialSpecs: x }) {
22
+ let { i18n: C, _: w } = S(), { translateError: T } = p(), [E, D] = b(x), [O, k] = b({}), [A, j] = b(!1), [M, N] = b(""), [P, F] = b(""), [I, L] = b(!1), [R, z] = b(null), B = I || A || E.some((e) => e.isEditing), V = (e, t) => {
23
+ let n = e?.trim();
24
+ return n ? E.some((e, r) => e.key.trim() === n && r !== t) ? C._({ id: "i6/ygf" }) : null : C._({ id: "QV1ZPO" });
25
+ }, H = async () => {
26
+ let e = V(M, E.length);
27
+ if (e) {
28
+ k({ newKey: "error" }), z(e);
29
+ return;
30
+ }
31
+ if (!P.trim()) {
32
+ k({ newValue: "error" }), z(C._({ id: "hXUWyd" }));
33
+ return;
34
+ }
35
+ L(!0);
36
+ try {
37
+ await i.compute.createExtraSpecs.mutate({
38
+ project_id: l,
39
+ flavorId: f.id,
40
+ extra_specs: { [M.trim()]: P.trim() }
41
+ }), D([...E, {
42
+ key: M.trim(),
43
+ value: P.trim(),
44
+ isEditing: !1
45
+ }]), N(""), F(""), j(!1), k({}), z(null), c.success(C._({ id: "OhoNl2" }), { description: C._({ id: "De+cs2" }) });
46
+ } catch (e) {
47
+ let t = T(e instanceof Error ? e.message : "Failed to create property");
48
+ z(t);
49
+ } finally {
50
+ L(!1);
51
+ }
52
+ }, U = () => {
53
+ N(""), F(""), j(!1), k({}), z(null);
54
+ }, W = (e) => {
55
+ D(E.map((t, n) => n === e ? {
56
+ ...t,
57
+ isEditing: !0,
58
+ editingValue: t.value
59
+ } : {
60
+ ...t,
61
+ isEditing: !1
62
+ })), j(!1);
63
+ }, G = async (e) => {
64
+ let t = E[e];
65
+ if (!t.value.trim()) {
66
+ k({ [`edit-value-${e}`]: "error" }), z(C._({ id: "hXUWyd" }));
67
+ return;
68
+ }
69
+ L(!0);
70
+ try {
71
+ let n = t.value.trim();
72
+ await i.compute.createExtraSpecs.mutate({
73
+ project_id: l,
74
+ flavorId: f.id,
75
+ extra_specs: { [t.key]: n }
76
+ }), D(E.map((r, i) => i === e ? {
77
+ key: t.key,
78
+ value: n,
79
+ isEditing: !1
80
+ } : r)), k({}), z(null), c.success(C._({ id: "6/z5tA" }), { description: C._({ id: "qXyZuV" }) });
81
+ } catch (e) {
82
+ let t = T(e instanceof Error ? e.message : "Failed to update property");
83
+ z(t);
84
+ } finally {
85
+ L(!1);
86
+ }
87
+ }, K = (e) => {
88
+ D(E.map((t, n) => n === e ? {
89
+ key: t.key,
90
+ value: t.editingValue ?? t.value,
91
+ isEditing: !1
92
+ } : t)), k({}), z(null);
93
+ }, q = async (e) => {
94
+ let t = E[e];
95
+ L(!0);
96
+ try {
97
+ await i.compute.deleteExtraSpec.mutate({
98
+ project_id: l,
99
+ flavorId: f.id,
100
+ key: t.key
101
+ }), D(E.filter((t, n) => n !== e)), k({}), z(null), c.success(C._({ id: "Sjuoog" }), { description: C._({ id: "6Ur0UX" }) });
102
+ } catch (e) {
103
+ let t = T(e instanceof Error ? e.message : "Failed to delete property");
104
+ z(t);
105
+ } finally {
106
+ L(!1);
107
+ }
108
+ }, J = (e, t) => {
109
+ D(E.map((n, r) => r === e ? {
110
+ ...n,
111
+ value: t
112
+ } : n)), O[`edit-value-${e}`] && (k((t) => {
113
+ let n = { ...t };
114
+ return delete n[`edit-value-${e}`], n;
115
+ }), z(null));
116
+ };
117
+ return /*#__PURE__*/ h(r, {
118
+ open: !0,
119
+ onCancel: () => {
120
+ I || (j(!1), N(""), F(""), k({}), z(null), y());
121
+ },
122
+ size: "xl",
123
+ title: C._({ id: "SIfYq6" }),
124
+ cancelButtonLabel: C._({ id: "yz7wBu" }),
125
+ disableCancelButton: I,
126
+ children: v ? /*#__PURE__*/ h(u, {
127
+ status: "progress",
128
+ title: C._({ id: "USQ/Wg" }),
129
+ className: "mt-0"
130
+ }) : /*#__PURE__*/ g("div", { children: [
131
+ R && /*#__PURE__*/ h(t, {
132
+ variant: "error",
133
+ text: R,
134
+ className: "mb-4"
135
+ }),
136
+ /*#__PURE__*/ h(n, {
137
+ direction: "horizontal",
138
+ className: "mb-4 justify-end",
139
+ children: /*#__PURE__*/ h(a, {
140
+ label: C._({ id: "sWBLli" }),
141
+ onClick: () => j(!0),
142
+ disabled: B
143
+ })
144
+ }),
145
+ E.length === 0 && !A ? /*#__PURE__*/ h(u, {
146
+ status: "empty",
147
+ title: C._({ id: "qTRcSX" }),
148
+ body: C._({ id: "PVTJPk" }),
149
+ className: "m-0"
150
+ }) : /*#__PURE__*/ g(d, {
151
+ className: "mb-6 grid-cols-2",
152
+ alignTerms: "left",
153
+ children: [/*#__PURE__*/ h(m, { children: A && /*#__PURE__*/ g(m, { children: [/*#__PURE__*/ h(s, {
154
+ className: "col-span-1",
155
+ children: /*#__PURE__*/ h(o, {
156
+ value: M,
157
+ onChange: (e) => {
158
+ N(e.target.value), O.newKey && (k((e) => {
159
+ let t = { ...e };
160
+ return delete t.newKey, t;
161
+ }), z(null));
162
+ },
163
+ placeholder: C._({ id: "x9AdZ8" }),
164
+ invalid: !!O.newKey,
165
+ autoFocus: !0,
166
+ disabled: I
167
+ })
168
+ }), /*#__PURE__*/ g(e, {
169
+ className: "col-span-1 flex items-center gap-2",
170
+ children: [/*#__PURE__*/ h("div", {
171
+ className: "flex-1",
172
+ children: /*#__PURE__*/ h(o, {
173
+ value: P,
174
+ onChange: (e) => {
175
+ F(e.target.value), O.newValue && (k((e) => {
176
+ let t = { ...e };
177
+ return delete t.newValue, t;
178
+ }), z(null));
179
+ },
180
+ placeholder: C._({ id: "wMHvYH" }),
181
+ invalid: !!O.newValue,
182
+ disabled: I
183
+ })
184
+ }), /*#__PURE__*/ g(n, {
185
+ direction: "horizontal",
186
+ gap: "2",
187
+ className: "shrink-0",
188
+ children: [/*#__PURE__*/ h(a, {
189
+ size: "small",
190
+ variant: "primary",
191
+ onClick: H,
192
+ icon: "check",
193
+ title: C._({ id: "tfDRzk" }),
194
+ "aria-label": C._({ id: "tfDRzk" }),
195
+ disabled: I
196
+ }), /*#__PURE__*/ h(a, {
197
+ size: "small",
198
+ variant: "subdued",
199
+ onClick: U,
200
+ icon: "close",
201
+ title: C._({ id: "bzSI52" }),
202
+ "aria-label": C._({ id: "bzSI52" }),
203
+ disabled: I
204
+ })]
205
+ })]
206
+ })] }) }), /*#__PURE__*/ h(m, { children: E.map((t, r) => /*#__PURE__*/ g(_.Fragment, { children: [/*#__PURE__*/ h(s, {
207
+ className: "col-span-1",
208
+ children: (t.isEditing, /*#__PURE__*/ h("span", {
209
+ className: "jn:text-theme-high block break-all",
210
+ title: t.key,
211
+ children: t.key
212
+ }))
213
+ }), /*#__PURE__*/ h(e, {
214
+ className: "col-span-1 flex items-center gap-2",
215
+ children: t.isEditing ? /*#__PURE__*/ g(m, { children: [/*#__PURE__*/ h("div", {
216
+ className: "flex-1",
217
+ children: /*#__PURE__*/ h(o, {
218
+ value: t.value,
219
+ onChange: (e) => J(r, e.target.value),
220
+ invalid: !!O[`edit-value-${r}`],
221
+ disabled: I
222
+ })
223
+ }), /*#__PURE__*/ g(n, {
224
+ direction: "horizontal",
225
+ gap: "2",
226
+ className: "shrink-0",
227
+ children: [/*#__PURE__*/ h(a, {
228
+ size: "small",
229
+ variant: "primary",
230
+ onClick: () => G(r),
231
+ icon: "check",
232
+ title: C._({ id: "tfDRzk" }),
233
+ "aria-label": C._({ id: "tfDRzk" }),
234
+ disabled: I
235
+ }), /*#__PURE__*/ h(a, {
236
+ size: "small",
237
+ variant: "subdued",
238
+ onClick: () => K(r),
239
+ icon: "close",
240
+ title: C._({ id: "bzSI52" }),
241
+ "aria-label": C._({ id: "bzSI52" }),
242
+ disabled: I
243
+ })]
244
+ })] }) : /*#__PURE__*/ g(m, { children: [/*#__PURE__*/ h("span", {
245
+ className: "jn:text-theme-default flex-1 break-all",
246
+ title: t.value,
247
+ children: t.value
248
+ }), /*#__PURE__*/ g(n, {
249
+ direction: "horizontal",
250
+ gap: "2",
251
+ className: "shrink-0",
252
+ children: [/*#__PURE__*/ h(a, {
253
+ size: "small",
254
+ variant: "subdued",
255
+ onClick: () => W(r),
256
+ icon: "edit",
257
+ "data-testid": `edit-${t.key}`,
258
+ title: C._({ id: "ePK91l" }),
259
+ disabled: B
260
+ }), /*#__PURE__*/ h(a, {
261
+ size: "small",
262
+ onClick: () => q(r),
263
+ icon: "deleteForever",
264
+ "data-testid": `delete-${t.key}`,
265
+ title: C._({ id: "cnGeoo" }),
266
+ "aria-label": C._({ id: "cnGeoo" }),
267
+ disabled: B
268
+ })]
269
+ })] })
270
+ })] }, r)) })]
271
+ })
272
+ ] })
273
+ });
274
+ }
275
+ var k = ({ client: e, isOpen: t, onClose: n, project: i, flavor: a }) => {
276
+ let { i18n: o, _: s } = S(), { translateError: c } = p(), [l, d] = b(null), [f, m] = b(!1), [g, _] = b(null);
277
+ v(() => {
278
+ if (!t || !a?.id) {
279
+ d(null), _(null);
280
+ return;
281
+ }
282
+ let n = !1;
283
+ return m(!0), _(null), (async () => {
284
+ try {
285
+ let t = await D(e, i, a.id);
286
+ if (n) return;
287
+ d(t);
288
+ } catch (e) {
289
+ if (n) return;
290
+ _(e instanceof Error ? e.message : "Failed to Load Metadata");
291
+ } finally {
292
+ n || m(!1);
293
+ }
294
+ })(), () => {
295
+ n = !0;
296
+ };
297
+ }, [
298
+ t,
299
+ a?.id,
300
+ e,
301
+ i
302
+ ]);
303
+ let x = y(() => l ? E(l) : [], [l]);
304
+ return !t || !a ? null : f ? /*#__PURE__*/ h(r, {
305
+ open: !0,
306
+ onCancel: n,
307
+ size: "xl",
308
+ title: o._({ id: "SIfYq6" }),
309
+ children: /*#__PURE__*/ h(u, {
310
+ status: "progress",
311
+ title: o._({ id: "USQ/Wg" }),
312
+ className: "mt-0"
313
+ })
314
+ }) : g ? /*#__PURE__*/ h(r, {
315
+ open: !0,
316
+ onCancel: n,
317
+ size: "xl",
318
+ title: o._({ id: "SIfYq6" }),
319
+ children: /*#__PURE__*/ h(u, {
320
+ status: "error",
321
+ title: o._({ id: "mXHHga" }),
322
+ body: c(g),
323
+ className: "mt-0"
324
+ })
325
+ }) : /*#__PURE__*/ h(O, {
326
+ client: e,
327
+ project: i,
328
+ flavor: a,
329
+ isLoading: !1,
330
+ onClose: n,
331
+ initialSpecs: x
332
+ }, a.id);
333
+ }, A = (e) => ({
334
+ message: /*#__PURE__*/ h(x, { id: "82AGsl" }),
335
+ description: /*#__PURE__*/ h(x, {
336
+ id: "/BrQY5",
337
+ values: { name: e }
338
+ })
339
+ }), j = (e) => ({
340
+ message: /*#__PURE__*/ h(x, { id: "AXvHUK" }),
341
+ description: /*#__PURE__*/ h(x, {
342
+ id: "zLKgq7",
343
+ values: { name: e }
344
+ })
345
+ }), M = (e, t) => ({
346
+ message: /*#__PURE__*/ h(x, { id: "f5ua4b" }),
347
+ description: /*#__PURE__*/ h(x, {
348
+ id: "uWOaBO",
349
+ values: {
350
+ projectId: e,
351
+ flavorName: t
352
+ }
353
+ })
354
+ }), N = (e, t) => ({
355
+ message: /*#__PURE__*/ h(x, { id: "8las2k" }),
356
+ description: /*#__PURE__*/ h(x, {
357
+ id: "pVIs7q",
358
+ values: {
359
+ projectId: e,
360
+ flavorName: t
361
+ }
362
+ })
363
+ }), P = (e, t) => ({
364
+ message: /*#__PURE__*/ h(x, { id: "m1kN9i" }),
365
+ description: /*#__PURE__*/ h(x, {
366
+ id: "x4oeph",
367
+ values: {
368
+ projectId: e,
369
+ errorMessage: t
370
+ }
371
+ })
372
+ });
373
+ //#endregion
374
+ //#region src/client/routes/_auth/projects/$projectId/compute/flavors/-components/ManageAccessModal.tsx
375
+ function F(e) {
376
+ return e.map((e) => ({ projectId: e.tenant_id }));
377
+ }
378
+ var I = (e, t) => e.compute.canUser.query({
379
+ project_id: t,
380
+ permission: ["flavors:add_project", "flavors:remove_project"]
381
+ }).then(([e, t]) => ({
382
+ canAdd: e,
383
+ canRemove: t
384
+ })), L = (e, t, n) => e.compute.getFlavorAccess.query({
385
+ project_id: t,
386
+ flavorId: n
387
+ });
388
+ function R({ client: i, project: l, flavor: f, isLoading: v, onClose: y, initialAccess: x, canAdd: C, canRemove: w }) {
389
+ let { i18n: T, _: E } = S(), { translateError: D } = p(), [O, k] = b(x), [A, j] = b({}), [F, I] = b(!1), [L, R] = b(""), [z, B] = b(/* @__PURE__ */ new Set()), [V, H] = b(!1), U = f["os-flavor-access:is_public"] !== !1, W = (e) => {
390
+ let t = e?.trim();
391
+ return t ? O.some((e) => e.projectId.trim() === t) ? T._({ id: "8gXJTW" }) : null : T._({ id: "sMpIRo" });
392
+ }, G = async () => {
393
+ let e = W(L);
394
+ if (e) {
395
+ j({ newProjectId: e });
396
+ return;
397
+ }
398
+ let t = L.trim();
399
+ H(!0), j({});
400
+ try {
401
+ await i.compute.addTenantAccess.mutate({
402
+ project_id: l,
403
+ flavorId: f.id,
404
+ targetProjectId: t
405
+ }), k((e) => [...e, { projectId: t }]), R(""), I(!1);
406
+ let { message: e, ...n } = M(t, f.name);
407
+ c.success(e, n);
408
+ } catch (e) {
409
+ let t = D(e instanceof Error ? e.message : "Failed to add access");
410
+ j({ newProjectId: t });
411
+ } finally {
412
+ H(!1);
413
+ }
414
+ }, K = () => {
415
+ R(""), I(!1), j({});
416
+ }, q = async (e) => {
417
+ j({}), B((t) => new Set(t).add(e));
418
+ try {
419
+ await i.compute.removeTenantAccess.mutate({
420
+ project_id: l,
421
+ flavorId: f.id,
422
+ targetProjectId: e
423
+ }), k((t) => t.filter((t) => t.projectId !== e));
424
+ let { message: t, ...n } = N(e, f.name);
425
+ c.success(t, n);
426
+ } catch (t) {
427
+ let { message: n, ...r } = P(e, D(t instanceof Error ? t.message : "Failed to remove access"));
428
+ c.error(n, r);
429
+ } finally {
430
+ B((t) => {
431
+ let n = new Set(t);
432
+ return n.delete(e), n;
433
+ });
434
+ }
435
+ }, J = () => {
436
+ I(!1), R(""), j({}), y();
437
+ };
438
+ if (U) {
439
+ let e = f.name;
440
+ return /*#__PURE__*/ h(r, {
441
+ open: !0,
442
+ onCancel: J,
443
+ size: "large",
444
+ title: T._({
445
+ id: "6Rnrsz",
446
+ values: { flavorName: e }
447
+ }),
448
+ children: /*#__PURE__*/ h("p", {
449
+ className: "jn:text-theme-light py-8 text-center",
450
+ children: T._({ id: "gzPLLI" })
451
+ })
452
+ });
453
+ }
454
+ let Y = f.name, X = V || z.size > 0;
455
+ return /*#__PURE__*/ h(r, {
456
+ open: !0,
457
+ onCancel: J,
458
+ size: "large",
459
+ title: T._({
460
+ id: "6Rnrsz",
461
+ values: { flavorName: Y }
462
+ }),
463
+ children: v ? /*#__PURE__*/ h(u, {
464
+ status: "progress",
465
+ title: T._({ id: "Z+2zIa" }),
466
+ className: "mt-0"
467
+ }) : /*#__PURE__*/ g("div", { children: [
468
+ A.newProjectId && /*#__PURE__*/ h(t, {
469
+ variant: "error",
470
+ text: A.newProjectId,
471
+ className: "mb-4"
472
+ }),
473
+ C && /*#__PURE__*/ h(n, {
474
+ direction: "horizontal",
475
+ className: "mb-4 justify-end",
476
+ children: /*#__PURE__*/ h(a, {
477
+ label: T._({ id: "zmHcLu" }),
478
+ onClick: () => I(!0),
479
+ disabled: F || X
480
+ })
481
+ }),
482
+ O.length === 0 && !F ? /*#__PURE__*/ h("p", {
483
+ className: "jn:text-theme-light py-8 text-center",
484
+ children: C ? T._({ id: "R8o5/x" }) : T._({ id: "PonzUM" })
485
+ }) : /*#__PURE__*/ g(d, {
486
+ className: "mb-6",
487
+ children: [/*#__PURE__*/ h(m, { children: F && /*#__PURE__*/ g(m, { children: [/*#__PURE__*/ h(s, {
488
+ className: "flex items-center justify-end",
489
+ children: /*#__PURE__*/ h("span", {
490
+ className: "jn:text-theme-high",
491
+ children: T._({ id: "e0NrBM" })
492
+ })
493
+ }), /*#__PURE__*/ h(e, { children: /*#__PURE__*/ g("div", {
494
+ className: "flex w-full items-center gap-2",
495
+ children: [/*#__PURE__*/ h("div", {
496
+ className: "flex-1",
497
+ children: /*#__PURE__*/ h(o, {
498
+ value: L,
499
+ onChange: (e) => {
500
+ R(e.target.value), A.newProjectId && j({});
501
+ },
502
+ placeholder: T._({ id: "vlyDm2" }),
503
+ invalid: !!A.newProjectId,
504
+ autoFocus: !0,
505
+ wrapperClassName: "w-full",
506
+ disabled: V
507
+ })
508
+ }), /*#__PURE__*/ g("div", {
509
+ className: "flex shrink-0 gap-2",
510
+ children: [/*#__PURE__*/ h(a, {
511
+ size: "small",
512
+ variant: "primary",
513
+ onClick: G,
514
+ icon: "check",
515
+ title: T._({ id: "m16xKo" }),
516
+ disabled: V,
517
+ progress: V
518
+ }), /*#__PURE__*/ h(a, {
519
+ size: "small",
520
+ variant: "subdued",
521
+ onClick: K,
522
+ icon: "close",
523
+ title: T._({ id: "dEgA5A" }),
524
+ disabled: V
525
+ })]
526
+ })]
527
+ }) })] }) }), /*#__PURE__*/ h(m, { children: O.map((t) => {
528
+ let r = z.has(t.projectId);
529
+ return /*#__PURE__*/ g(_.Fragment, { children: [/*#__PURE__*/ h(s, { children: /*#__PURE__*/ h("span", {
530
+ className: "jn:text-theme-high",
531
+ children: T._({ id: "e0NrBM" })
532
+ }) }), /*#__PURE__*/ h(e, { children: /*#__PURE__*/ g(n, {
533
+ direction: "horizontal",
534
+ gap: "2",
535
+ alignment: "center",
536
+ className: "justify-between",
537
+ children: [/*#__PURE__*/ h("span", {
538
+ className: "jn:text-theme-high block max-w-xs truncate",
539
+ title: t.projectId,
540
+ children: t.projectId
541
+ }), w && /*#__PURE__*/ h(a, {
542
+ size: "small",
543
+ onClick: () => q(t.projectId),
544
+ icon: "deleteForever",
545
+ "data-testid": `delete-${t.projectId}`,
546
+ title: T._({ id: "t/YqKh" }),
547
+ disabled: r || F,
548
+ progress: r
549
+ })]
550
+ }) })] }, t.projectId);
551
+ }) })]
552
+ })
553
+ ] })
554
+ });
555
+ }
556
+ var z = ({ client: e, isOpen: t, onClose: n, project: i, flavor: a }) => {
557
+ let { i18n: o, _: s } = S(), { translateError: c } = p(), [l, d] = b(null), [f, m] = b(null), [g, _] = b(!0), [x, C] = b(null);
558
+ v(() => {
559
+ if (!t || !a?.id) {
560
+ d(null), m(null), C(null);
561
+ return;
562
+ }
563
+ let n = !1;
564
+ return _(!0), C(null), (async () => {
565
+ try {
566
+ let [t, r] = await Promise.all([L(e, i, a.id), I(e, i)]);
567
+ if (n) return;
568
+ let o = t.filter((e, t, n) => n.findIndex((t) => t.tenant_id === e.tenant_id) === t);
569
+ d(o), m(r);
570
+ } catch (e) {
571
+ if (n) return;
572
+ C(e instanceof Error ? e.message : "Failed to Load Access Data");
573
+ } finally {
574
+ n || _(!1);
575
+ }
576
+ })(), () => {
577
+ n = !0;
578
+ };
579
+ }, [
580
+ t,
581
+ a?.id,
582
+ e,
583
+ i
584
+ ]);
585
+ let w = y(() => l ? F(l) : [], [l]);
586
+ if (!t || !a) return null;
587
+ let T = a.name;
588
+ return g ? /*#__PURE__*/ h(r, {
589
+ open: !0,
590
+ onCancel: n,
591
+ size: "large",
592
+ title: o._({
593
+ id: "6Rnrsz",
594
+ values: { flavorName: T }
595
+ }),
596
+ children: /*#__PURE__*/ h(u, {
597
+ status: "progress",
598
+ title: o._({ id: "Z+2zIa" }),
599
+ className: "mt-0"
600
+ })
601
+ }) : x ? /*#__PURE__*/ h(r, {
602
+ open: !0,
603
+ onCancel: n,
604
+ size: "large",
605
+ title: o._({
606
+ id: "6Rnrsz",
607
+ values: { flavorName: T }
608
+ }),
609
+ children: /*#__PURE__*/ h(u, {
610
+ status: "error",
611
+ title: o._({ id: "LMKSWT" }),
612
+ body: c(x),
613
+ className: "mt-0"
614
+ })
615
+ }) : /*#__PURE__*/ h(R, {
616
+ client: e,
617
+ project: i,
618
+ flavor: a,
619
+ isLoading: !1,
620
+ onClose: n,
621
+ initialAccess: w,
622
+ canAdd: f?.canAdd ?? !1,
623
+ canRemove: f?.canRemove ?? !1
624
+ }, a.id);
625
+ }, B = ({ client: a, isOpen: c, onClose: u, project: m, flavor: _, onSuccess: v }) => {
626
+ let { i18n: y, _: E } = S(), { translateError: D } = p(), [O, k] = b(!1), [A, j] = b(null), { trackClose: M, markSubmitted: N, resetTracking: P } = f({
627
+ isOpen: c,
628
+ actionPrefix: "compute.flavor.delete"
629
+ }), F = C.object({ confirm: C.string().refine((e) => e === "delete", { message: y._({ id: "QytzQr" }) }) }), I = w({
630
+ defaultValues: { confirm: "" },
631
+ validators: { onSubmit: F },
632
+ onSubmit: async () => {
633
+ if (!_?.id) {
634
+ j(y._({ id: "NlcF/v" }));
635
+ return;
636
+ }
637
+ if (!O) {
638
+ N(), j(null);
639
+ try {
640
+ k(!0), await a.compute.deleteFlavor.mutate({
641
+ project_id: m,
642
+ flavorId: _.id
643
+ }), v(), R();
644
+ } catch (e) {
645
+ let t = e?.message ? D(e.message) : y._({ id: "8zAn1f" });
646
+ j(t);
647
+ } finally {
648
+ k(!1);
649
+ }
650
+ }
651
+ }
652
+ }), L = T(I.store, (e) => e.isSubmitting || e.values.confirm !== "delete"), R = () => {
653
+ M(), k(!1), j(null), I.reset(), P(), u();
654
+ }, z = O ? y._({ id: "EF2EU9" }) : y._({ id: "JT3I1g" }), B = _?.name;
655
+ return /*#__PURE__*/ h(r, {
656
+ open: c,
657
+ onCancel: R,
658
+ title: y._({
659
+ id: "W3mNTY",
660
+ values: { flavorName: B }
661
+ }),
662
+ size: "small",
663
+ confirmButtonLabel: z,
664
+ confirmButtonVariant: "primary-danger",
665
+ onConfirm: I.handleSubmit,
666
+ cancelButtonLabel: y._({ id: "dEgA5A" }),
667
+ disableConfirmButton: L || O,
668
+ disableCancelButton: O,
669
+ disableCloseButton: O,
670
+ children: /*#__PURE__*/ g(n, {
671
+ direction: "vertical",
672
+ gap: "4",
673
+ children: [
674
+ A && /*#__PURE__*/ h(t, {
675
+ variant: "error",
676
+ children: A
677
+ }),
678
+ /*#__PURE__*/ h("p", {
679
+ className: "text-theme-default",
680
+ children: /*#__PURE__*/ h(x, { id: "QQ8wUG" })
681
+ }),
682
+ _ && /*#__PURE__*/ g(d, { children: [
683
+ /*#__PURE__*/ h(s, { children: y._({ id: "6YtxFj" }) }),
684
+ /*#__PURE__*/ h(e, { children: _.name }),
685
+ /*#__PURE__*/ h(s, { children: y._({ id: "S0kLOH" }) }),
686
+ /*#__PURE__*/ h(e, { children: _.id }),
687
+ /*#__PURE__*/ h(s, { children: y._({ id: "MZGbkp" }) }),
688
+ /*#__PURE__*/ h(e, { children: _.vcpus }),
689
+ /*#__PURE__*/ h(s, { children: y._({ id: "RGhYAo" }) }),
690
+ /*#__PURE__*/ g(e, { children: [_.ram, " MiB"] }),
691
+ /*#__PURE__*/ h(s, { children: y._({ id: "sPFHpI" }) }),
692
+ /*#__PURE__*/ g(e, { children: [_.disk, " GiB"] }),
693
+ /*#__PURE__*/ h(s, { children: y._({ id: "vH2C/2" }) }),
694
+ /*#__PURE__*/ h(e, { children: _.swap === 0 || _.swap === "" ? /*#__PURE__*/ h(x, { id: "EdQY6l" }) : `${Number(_.swap)} MiB` })
695
+ ] }),
696
+ /*#__PURE__*/ h(i, {
697
+ className: "mb-0",
698
+ id: "delete-flavor-form",
699
+ onSubmit: (e) => {
700
+ e.preventDefault(), I.handleSubmit();
701
+ },
702
+ children: /*#__PURE__*/ h(l, { children: /*#__PURE__*/ h(I.Field, {
703
+ name: "confirm",
704
+ children: (e) => /*#__PURE__*/ h(o, {
705
+ id: e.name,
706
+ name: e.name,
707
+ label: y._({ id: "QytzQr" }),
708
+ value: e.state.value,
709
+ onChange: (t) => e.handleChange(t.target.value),
710
+ placeholder: "delete",
711
+ autoFocus: !0,
712
+ disabled: O,
713
+ required: !0
714
+ })
715
+ }) })
716
+ })
717
+ ]
718
+ })
719
+ });
720
+ };
721
+ //#endregion
722
+ export { k as a, j as i, z as n, A as r, B as t };
723
+
724
+ //# sourceMappingURL=DeleteFlavorModal-C4nAi7gY.mjs.map