@cobaltcore-dev/aurora 1.3.0 → 2.0.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 (122) hide show
  1. package/dist/client/DeleteFlavorModal-C2MqUgGR.mjs +801 -0
  2. package/dist/client/DeleteFlavorModal-C2MqUgGR.mjs.map +1 -0
  3. package/dist/client/{FiltersInput-CKI6zWnm.mjs → FiltersInput-Becwxo_J.mjs} +36 -33
  4. package/dist/client/FiltersInput-Becwxo_J.mjs.map +1 -0
  5. package/dist/client/{FloatingIpActionModals-Ch8uozH9.mjs → FloatingIpActionModals-Cq10WljB.mjs} +2 -2
  6. package/dist/client/{FloatingIpActionModals-Ch8uozH9.mjs.map → FloatingIpActionModals-Cq10WljB.mjs.map} +1 -1
  7. package/dist/client/ImageToastNotifications-BWfzOUMc.mjs +1135 -0
  8. package/dist/client/ImageToastNotifications-BWfzOUMc.mjs.map +1 -0
  9. package/dist/client/RouteIdLevelDefaultError-CSseJ1yG.mjs +26 -0
  10. package/dist/client/RouteIdLevelDefaultError-CSseJ1yG.mjs.map +1 -0
  11. package/dist/client/{_flavorId-Dg7MS0Af.mjs → _flavorId-CaA4-Pnf.mjs} +4 -3
  12. package/dist/client/_flavorId-CaA4-Pnf.mjs.map +1 -0
  13. package/dist/client/_flavorId-DYv_StX22.mjs +276 -0
  14. package/dist/client/_flavorId-DYv_StX22.mjs.map +1 -0
  15. package/dist/client/_flavorId-YV3jCS5g.mjs +22 -0
  16. package/dist/client/_flavorId-YV3jCS5g.mjs.map +1 -0
  17. package/dist/client/{_floatingIpId-C9xfRWot.mjs → _floatingIpId-BeYElanB.mjs} +2 -2
  18. package/dist/client/{_floatingIpId-C9xfRWot.mjs.map → _floatingIpId-BeYElanB.mjs.map} +1 -1
  19. package/dist/client/{_floatingIpId-DNn6ABCB.mjs → _floatingIpId-Dpsc7GU4.mjs} +5 -5
  20. package/dist/client/{_floatingIpId-DNn6ABCB.mjs.map → _floatingIpId-Dpsc7GU4.mjs.map} +1 -1
  21. package/dist/client/_imageId-mfKp3JHn.mjs +558 -0
  22. package/dist/client/_imageId-mfKp3JHn.mjs.map +1 -0
  23. package/dist/client/_imageId-mpXUMCh_.mjs +22 -0
  24. package/dist/client/_imageId-mpXUMCh_.mjs.map +1 -0
  25. package/dist/client/{_imageId-8JIbFmGB.mjs → _imageId-pBSS0YcC.mjs} +4 -3
  26. package/dist/client/_imageId-pBSS0YcC.mjs.map +1 -0
  27. package/dist/client/{_projectId-B3wmSala.mjs → _projectId-AjgJX6Gl.mjs} +2 -2
  28. package/dist/client/_projectId-AjgJX6Gl.mjs.map +1 -0
  29. package/dist/client/{_projectId-DPzv0CCp.mjs → _projectId-BnTBxKfp.mjs} +4 -4
  30. package/dist/client/_projectId-BnTBxKfp.mjs.map +1 -0
  31. package/dist/client/{_projectId-DfeVJy0G.mjs → _projectId-CVrdJ52s.mjs} +2 -2
  32. package/dist/client/_projectId-CVrdJ52s.mjs.map +1 -0
  33. package/dist/client/_projectId-DgciZslU.mjs +92 -0
  34. package/dist/client/_projectId-DgciZslU.mjs.map +1 -0
  35. package/dist/client/{_securityGroupId-C6eHmrx_.mjs → _securityGroupId-AO3wnH8g.mjs} +2 -2
  36. package/dist/client/_securityGroupId-AO3wnH8g.mjs.map +1 -0
  37. package/dist/client/{_securityGroupId-DmplhDgt.mjs → _securityGroupId-Bq0ZyG6z.mjs} +750 -741
  38. package/dist/client/_securityGroupId-Bq0ZyG6z.mjs.map +1 -0
  39. package/dist/client/_storageType-c-DAu8qr.mjs +858 -0
  40. package/dist/client/_storageType-c-DAu8qr.mjs.map +1 -0
  41. package/dist/client/components/{Error → Errors}/RouteError.d.ts +5 -0
  42. package/dist/client/components/Errors/RouteIdLevelDefaultError.d.ts +17 -0
  43. package/dist/client/components/Errors/ServiceLevelDefaultError.d.ts +9 -0
  44. package/dist/client/components/ListToolbar/SelectedFilters.d.ts +7 -2
  45. package/dist/client/components/ListToolbar/types.d.ts +6 -0
  46. package/dist/client/components/ListToolbar/valueLabels.d.ts +11 -0
  47. package/dist/client/flavors-Bgq3KZmx.mjs +659 -0
  48. package/dist/client/flavors-Bgq3KZmx.mjs.map +1 -0
  49. package/dist/client/{flavors-B1SDOPDu.mjs → flavors-ZudiAiTU.mjs} +2 -2
  50. package/dist/client/{flavors-B1SDOPDu.mjs.map → flavors-ZudiAiTU.mjs.map} +1 -1
  51. package/dist/client/{floatingips-DrCvtXtT.mjs → floatingips-B1oLH8z6.mjs} +6 -6
  52. package/dist/client/{floatingips-DrCvtXtT.mjs.map → floatingips-B1oLH8z6.mjs.map} +1 -1
  53. package/dist/client/floatingips-BeQEkVH8.mjs +14 -0
  54. package/dist/client/floatingips-BeQEkVH8.mjs.map +1 -0
  55. package/dist/client/floatingips-BtLg3yEQ.mjs +22 -0
  56. package/dist/client/floatingips-BtLg3yEQ.mjs.map +1 -0
  57. package/dist/client/floatingips-Cz9k80cc.mjs.map +1 -1
  58. package/dist/client/{images-BGQv9kKT.mjs → images-CnTW3bpy.mjs} +810 -770
  59. package/dist/client/images-CnTW3bpy.mjs.map +1 -0
  60. package/dist/client/{images-CPmMa4SQ.mjs → images-DZHDYDQu.mjs} +2 -2
  61. package/dist/client/{images-CPmMa4SQ.mjs.map → images-DZHDYDQu.mjs.map} +1 -1
  62. package/dist/client/index.js +412 -409
  63. package/dist/client/index.js.map +1 -1
  64. package/dist/client/{objects-DVccbrL1.mjs → objects-25xsh4Ia.mjs} +2 -2
  65. package/dist/client/objects-25xsh4Ia.mjs.map +1 -0
  66. package/dist/client/objects-KXY6dgwq.mjs +82 -0
  67. package/dist/client/objects-KXY6dgwq.mjs.map +1 -0
  68. package/dist/client/objects-QryuClU3.mjs +82 -0
  69. package/dist/client/objects-QryuClU3.mjs.map +1 -0
  70. package/dist/client/{objects-BR3eeSNH.mjs → objects-jYQBFzwg.mjs} +4668 -4699
  71. package/dist/client/objects-jYQBFzwg.mjs.map +1 -0
  72. package/dist/client/projects-yiK0HGSA.mjs.map +1 -1
  73. package/dist/client/securitygroups--0PS2wbM.mjs +580 -0
  74. package/dist/client/securitygroups--0PS2wbM.mjs.map +1 -0
  75. package/dist/client/{securitygroups-DEJQBcxm.mjs → securitygroups-BRndk7wh.mjs} +2 -2
  76. package/dist/client/{securitygroups-DEJQBcxm.mjs.map → securitygroups-BRndk7wh.mjs.map} +1 -1
  77. package/dist/client/securitygroups-CdN4yAAw.mjs +14 -0
  78. package/dist/client/securitygroups-CdN4yAAw.mjs.map +1 -0
  79. package/dist/client/securitygroups-Cs2Op-tu.mjs +22 -0
  80. package/dist/client/securitygroups-Cs2Op-tu.mjs.map +1 -0
  81. package/dist/client/securitygroups-CtKne8UQ.mjs.map +1 -1
  82. package/dist/client/trpcClient.d.ts +6 -1
  83. package/dist/client/useModalTracking-BYd37pXm.mjs +37 -0
  84. package/dist/client/useModalTracking-BYd37pXm.mjs.map +1 -0
  85. package/dist/client/useSecurityGroupPermissions--hK4aR8Y.mjs +294 -0
  86. package/dist/client/useSecurityGroupPermissions--hK4aR8Y.mjs.map +1 -0
  87. package/dist/server/index.d.ts +6 -1
  88. package/dist/server/index.js +96 -30
  89. package/package.json +4 -4
  90. package/dist/client/DeleteFlavorModal-V44QCJBd.mjs +0 -773
  91. package/dist/client/DeleteFlavorModal-V44QCJBd.mjs.map +0 -1
  92. package/dist/client/FiltersInput-CKI6zWnm.mjs.map +0 -1
  93. package/dist/client/ImageToastNotifications-m6c3tVPb.mjs +0 -1152
  94. package/dist/client/ImageToastNotifications-m6c3tVPb.mjs.map +0 -1
  95. package/dist/client/_flavorId-Dg7MS0Af.mjs.map +0 -1
  96. package/dist/client/_flavorId-kHl-b8rI.mjs +0 -232
  97. package/dist/client/_flavorId-kHl-b8rI.mjs.map +0 -1
  98. package/dist/client/_imageId-8JIbFmGB.mjs.map +0 -1
  99. package/dist/client/_imageId-BBAlRioC.mjs +0 -574
  100. package/dist/client/_imageId-BBAlRioC.mjs.map +0 -1
  101. package/dist/client/_projectId-7Nl1MQTJ.mjs +0 -99
  102. package/dist/client/_projectId-7Nl1MQTJ.mjs.map +0 -1
  103. package/dist/client/_projectId-B3wmSala.mjs.map +0 -1
  104. package/dist/client/_projectId-DPzv0CCp.mjs.map +0 -1
  105. package/dist/client/_projectId-DfeVJy0G.mjs.map +0 -1
  106. package/dist/client/_securityGroupId-C6eHmrx_.mjs.map +0 -1
  107. package/dist/client/_securityGroupId-DmplhDgt.mjs.map +0 -1
  108. package/dist/client/_storageType-C5gS9eut.mjs +0 -845
  109. package/dist/client/_storageType-C5gS9eut.mjs.map +0 -1
  110. package/dist/client/flavors-D8_PzQUB.mjs +0 -628
  111. package/dist/client/flavors-D8_PzQUB.mjs.map +0 -1
  112. package/dist/client/images-BGQv9kKT.mjs.map +0 -1
  113. package/dist/client/objects-AERkhfiM.mjs +0 -66
  114. package/dist/client/objects-AERkhfiM.mjs.map +0 -1
  115. package/dist/client/objects-BR3eeSNH.mjs.map +0 -1
  116. package/dist/client/objects-DVccbrL1.mjs.map +0 -1
  117. package/dist/client/securitygroups-BjhgLBHm.mjs +0 -620
  118. package/dist/client/securitygroups-BjhgLBHm.mjs.map +0 -1
  119. package/dist/client/useModalTracking-BcOKTYRN.mjs +0 -33
  120. package/dist/client/useModalTracking-BcOKTYRN.mjs.map +0 -1
  121. package/dist/client/useSecurityGroupPermissions-BOyLQLdC.mjs +0 -227
  122. package/dist/client/useSecurityGroupPermissions-BOyLQLdC.mjs.map +0 -1
@@ -0,0 +1,659 @@
1
+ import { C as e, D as t, L as n, Q as r, S as i, T as a, V as o, X as s, ft as c, g as l, h as u, i as d, l as f, m as p, o as m, ot as h, p as g, r as _, rt as v, st as y, t as b, x } from "./build-WuxXRAqf.mjs";
2
+ import { t as S } from "./flavors-ZudiAiTU.mjs";
3
+ import { t as C } from "./SortInput-4g7nSTHW.mjs";
4
+ import { t as w } from "./ContentHeader-CPJbgYWn.mjs";
5
+ import { a as T, i as E, n as D, o as O, r as k, t as A } from "./DeleteFlavorModal-C2MqUgGR.mjs";
6
+ import { Fragment as j, jsx as M, jsxs as N } from "react/jsx-runtime";
7
+ import { Suspense as P, startTransition as F, use as I, useCallback as L, useEffect as R, useRef as z, useState as B } from "react";
8
+ import { useNavigate as V, useParams as H, useSearch as U } from "@tanstack/react-router";
9
+ import { TRPCClientError as W } from "@trpc/client";
10
+ import { Trans as G, useLingui as K } from "@lingui/react";
11
+ import { ErrorBoundary as q } from "react-error-boundary";
12
+ //#region src/client/routes/_auth/projects/$projectId/compute/flavors/-components/FlavorListContainer.tsx
13
+ var J = ({ flavors: e, isLoading: n, client: r, project: s, onFlavorDeleted: c, canDeleteFlavor: u, canMangageAccess: d, canManageSpecs: f, currentPage: p = 1, totalPages: h = 1, onPageChange: g }) => {
14
+ let { i18n: y, _: S } = K(), C = V(), [w, E] = B(!1), [O, k] = B(!1), [P, F] = B(!1), [I, L] = B(null), [z, U] = B(p.toString());
15
+ R(() => {
16
+ U(p.toString());
17
+ }, [p]);
18
+ let { projectId: W } = H({ from: "/_auth/projects/$projectId/compute/flavors/" }), q = (e) => {
19
+ L(e), E(!0);
20
+ }, J = (e) => {
21
+ L(e), k(!0);
22
+ }, Y = (e) => {
23
+ L(e), F(!0);
24
+ }, X = () => {
25
+ E(!1), L(null);
26
+ }, Z = () => {
27
+ I && c && c(I.name || ""), X();
28
+ }, Q = (e) => {
29
+ e >= 1 && e <= h && (g?.(e), U(e.toString()));
30
+ };
31
+ return n ? /*#__PURE__*/ M(v, {
32
+ status: "progress",
33
+ title: y._({ id: "Z3FXyt" })
34
+ }) : /*#__PURE__*/ N(j, { children: [
35
+ /*#__PURE__*/ N(m, {
36
+ columns: 7,
37
+ minContentColumns: [6],
38
+ className: "flavors",
39
+ "data-testid": "flavors-table",
40
+ children: [/*#__PURE__*/ N(a, { children: [
41
+ /*#__PURE__*/ M(i, { children: /*#__PURE__*/ M(G, { id: "6YtxFj" }) }),
42
+ /*#__PURE__*/ M(i, { children: /*#__PURE__*/ M(G, { id: "k5nYwm" }) }),
43
+ /*#__PURE__*/ M(i, { children: /*#__PURE__*/ M(G, { id: "K+e/0e" }) }),
44
+ /*#__PURE__*/ M(i, { children: /*#__PURE__*/ M(G, { id: "n0ZttO" }) }),
45
+ /*#__PURE__*/ M(i, { children: /*#__PURE__*/ M(G, { id: "p4nMut" }) }),
46
+ /*#__PURE__*/ M(i, { children: /*#__PURE__*/ M(G, { id: "HyyJ83" }) }),
47
+ /*#__PURE__*/ M(i, {})
48
+ ] }), e && e.length > 0 ? e.map((e) => /*#__PURE__*/ N(a, {
49
+ "data-testid": `flavor-row-${e.id}`,
50
+ onClick: () => C({
51
+ to: "/projects/$projectId/compute/flavors/$flavorId",
52
+ params: {
53
+ projectId: W,
54
+ flavorId: e.id
55
+ }
56
+ }),
57
+ children: [
58
+ /*#__PURE__*/ M(b, { children: e.name || e.id }),
59
+ /*#__PURE__*/ M(b, { children: e.vcpus || "–" }),
60
+ /*#__PURE__*/ M(b, { children: e.ram || "–" }),
61
+ /*#__PURE__*/ M(b, { children: e.disk || "–" }),
62
+ /*#__PURE__*/ M(b, { children: e.swap || "–" }),
63
+ /*#__PURE__*/ M(b, { children: e["os-flavor-access:is_public"] === !1 ? y._({ id: "zwBp5t" }) : y._({ id: "7d1a0d" }) }),
64
+ /*#__PURE__*/ M(b, {
65
+ onClick: (e) => e.stopPropagation(),
66
+ children: /*#__PURE__*/ M(t, { children: /*#__PURE__*/ N(l, { children: [
67
+ f && /*#__PURE__*/ M(x, {
68
+ label: y._({ id: "SIfYq6" }),
69
+ onClick: () => J(e)
70
+ }),
71
+ d && e["os-flavor-access:is_public"] === !1 && /*#__PURE__*/ M(x, {
72
+ label: y._({ id: "cWbW6w" }),
73
+ onClick: () => Y(e)
74
+ }),
75
+ /*#__PURE__*/ M(x, {
76
+ label: y._({ id: "v0hPHE" }),
77
+ onClick: () => C({
78
+ to: "/projects/$projectId/compute/flavors/$flavorId",
79
+ params: {
80
+ projectId: W,
81
+ flavorId: e.id
82
+ }
83
+ })
84
+ }),
85
+ u && /*#__PURE__*/ N(j, { children: [/*#__PURE__*/ M(_, {}), /*#__PURE__*/ M(x, {
86
+ label: y._({ id: "JT3I1g" }),
87
+ onClick: () => q(e)
88
+ })] })
89
+ ] }) })
90
+ })
91
+ ]
92
+ }, e.id)) : /*#__PURE__*/ M(a, { children: /*#__PURE__*/ M(b, {
93
+ colSpan: 7,
94
+ children: /*#__PURE__*/ M(v, {
95
+ status: "empty",
96
+ title: y._({ id: "PiyQJ/" }),
97
+ body: y._({ id: "KSW/GC" })
98
+ })
99
+ }) })]
100
+ }),
101
+ h > 1 && /*#__PURE__*/ M("div", {
102
+ className: "flex justify-center py-4",
103
+ children: /*#__PURE__*/ M(o, {
104
+ variant: "input",
105
+ currentPage: p,
106
+ pages: h,
107
+ onPressPrevious: () => Q(Math.max(p - 1, 1)),
108
+ onPressNext: () => Q(Math.min(p + 1, h)),
109
+ onSelectChange: (e) => {
110
+ Q(e);
111
+ },
112
+ onInputChange: (e) => {
113
+ U(e === void 0 ? "" : String(e));
114
+ },
115
+ onKeyDown: (e) => {
116
+ if (e.key === "Enter" && z !== "") {
117
+ let e = parseInt(z, 10);
118
+ !isNaN(e) && e >= 1 && e <= h && Q(e);
119
+ }
120
+ }
121
+ })
122
+ }),
123
+ /*#__PURE__*/ M(A, {
124
+ client: r,
125
+ isOpen: w,
126
+ onClose: X,
127
+ project: s,
128
+ flavor: I,
129
+ onSuccess: Z
130
+ }),
131
+ /*#__PURE__*/ M(T, {
132
+ client: r,
133
+ isOpen: O,
134
+ onClose: () => k(!1),
135
+ project: s,
136
+ flavor: I
137
+ }),
138
+ /*#__PURE__*/ M(D, {
139
+ client: r,
140
+ isOpen: P,
141
+ onClose: () => F(!1),
142
+ project: s,
143
+ flavor: I
144
+ })
145
+ ] });
146
+ }, Y = (e, t, n) => {
147
+ switch (e) {
148
+ case "id":
149
+ if (!t) return;
150
+ {
151
+ let e = String(t).trim();
152
+ return /^[a-zA-Z0-9.\-_]*$/.test(e) ? void 0 : n({ id: "AX9Juz" });
153
+ }
154
+ case "name": {
155
+ let e = String(t || "").trim();
156
+ return e.length >= 2 && e.length <= 50 ? void 0 : n({ id: "zDS0JC" });
157
+ }
158
+ case "vcpus": {
159
+ let e = Number(t);
160
+ return !isNaN(e) && e >= 1 ? void 0 : n({ id: "uSdnuQ" });
161
+ }
162
+ case "ram": {
163
+ let e = Number(t);
164
+ return !isNaN(e) && e >= 128 ? void 0 : n({ id: "g1IxCo" });
165
+ }
166
+ case "disk": {
167
+ let e = Number(t);
168
+ return !isNaN(e) && e >= 0 ? void 0 : n({ id: "AJRhSM" });
169
+ }
170
+ case "swap":
171
+ if (t === "" || t == null) return;
172
+ {
173
+ let e = Number(t);
174
+ return !isNaN(e) && e >= 0 ? void 0 : n({ id: "g3BSCe" });
175
+ }
176
+ case "rxtx_factor": {
177
+ let e = Number(t);
178
+ return !isNaN(e) && e >= 1 ? void 0 : n({ id: "PIbPRX" });
179
+ }
180
+ case "description": return t ? String(t).length < 65535 ? void 0 : n({ id: "uuKb0T" }) : void 0;
181
+ case "OS-FLV-EXT-DATA:ephemeral": {
182
+ let e = Number(t);
183
+ return !isNaN(e) && e >= 0 ? void 0 : n({ id: "tLerHy" });
184
+ }
185
+ case "os-flavor-access:is_public": return t == null || typeof t == "boolean" || typeof t == "string" && (t === "true" || t === "false") ? void 0 : n({ id: "MmtQVF" });
186
+ default: return;
187
+ }
188
+ }, X = (e) => {
189
+ let t = {
190
+ name: String(e.name),
191
+ vcpus: Number(e.vcpus),
192
+ ram: Number(e.ram),
193
+ disk: Number(e.disk)
194
+ }, n = (e) => e != null && e !== "" && String(e).trim() !== "", r = (e) => e != null && e !== "" && String(e).trim() !== "" && !isNaN(Number(e));
195
+ return n(e.id) && (t.id = String(e.id).trim()), n(e.description) && (t.description = String(e.description).trim()), r(e.swap) && (t.swap = Number(e.swap)), r(e.rxtx_factor) && (t.rxtx_factor = Number(e.rxtx_factor)), r(e["OS-FLV-EXT-DATA:ephemeral"]) && (t["OS-FLV-EXT-DATA:ephemeral"] = Number(e["OS-FLV-EXT-DATA:ephemeral"])), e["os-flavor-access:is_public"] !== void 0 && (t["os-flavor-access:is_public"] = !!e["os-flavor-access:is_public"]), t;
196
+ }, Z = ({ client: e, isOpen: t, onClose: r, project: i, onSuccess: a }) => {
197
+ let { i18n: o, _: l } = K(), { translateError: d } = O(), [f, m] = B({ "os-flavor-access:is_public": !0 }), [h, _] = B({}), [b, x] = B(!1), [S, C] = B(null), w = (e) => {
198
+ let { name: t, value: n, type: r, checked: i } = e.target;
199
+ m((e) => ({
200
+ ...e,
201
+ [t]: r === "checkbox" ? i : n
202
+ })), _((e) => ({
203
+ ...e,
204
+ [t]: void 0
205
+ })), S && C(null);
206
+ }, T = (e, t) => {
207
+ m((n) => ({
208
+ ...n,
209
+ [e]: t
210
+ })), _((t) => ({
211
+ ...t,
212
+ [e]: void 0
213
+ })), S && C(null);
214
+ }, E = (e) => {
215
+ let { name: t, value: n } = e.target, r = Y(t, n, l);
216
+ _((e) => ({
217
+ ...e,
218
+ [t]: r
219
+ }));
220
+ }, D = async (t) => {
221
+ t.preventDefault(), C(null);
222
+ let n = {};
223
+ if ([
224
+ "name",
225
+ "vcpus",
226
+ "ram",
227
+ "disk"
228
+ ].forEach((e) => {
229
+ let t = Y(e, f[e], l);
230
+ t && (n[e] = t);
231
+ }), [
232
+ "id",
233
+ "swap",
234
+ "OS-FLV-EXT-DATA:ephemeral",
235
+ "rxtx_factor",
236
+ "description",
237
+ "os-flavor-access:is_public"
238
+ ].forEach((e) => {
239
+ let t = f[e];
240
+ if (t !== void 0 && t !== "" && t !== null) {
241
+ let r = Y(e, t, l);
242
+ r && (n[e] = r);
243
+ }
244
+ }), Object.keys(n).length > 0) {
245
+ _(n), C(o._({ id: "CBFSfX" }));
246
+ return;
247
+ }
248
+ try {
249
+ x(!0);
250
+ let t = X(f);
251
+ await e.compute.createFlavor.mutate({
252
+ project_id: i,
253
+ flavor: t
254
+ }), a(t.name), k();
255
+ } catch (e) {
256
+ let t = e?.message ? d(e.message) : o._({ id: "OxDN2m" });
257
+ C(t);
258
+ } finally {
259
+ x(!1);
260
+ }
261
+ }, k = () => {
262
+ m({ "os-flavor-access:is_public": !0 }), _({}), C(null), r();
263
+ };
264
+ return /*#__PURE__*/ N(s, {
265
+ onCancel: k,
266
+ size: "large",
267
+ title: o._({ id: "Rlp5zj" }),
268
+ open: t,
269
+ onConfirm: D,
270
+ cancelButtonLabel: o._({ id: "dEgA5A" }),
271
+ confirmButtonLabel: o._({ id: "wEfZld" }),
272
+ disableConfirmButton: !(() => {
273
+ for (let e of [
274
+ "name",
275
+ "vcpus",
276
+ "ram",
277
+ "disk"
278
+ ]) {
279
+ let t = f[e];
280
+ if (t === void 0 || t === "" || t === null || Y(e, t, l)) return !1;
281
+ }
282
+ for (let e of [
283
+ "id",
284
+ "swap",
285
+ "OS-FLV-EXT-DATA:ephemeral",
286
+ "rxtx_factor",
287
+ "description"
288
+ ]) {
289
+ let t = f[e];
290
+ if (t !== void 0 && t !== "" && t !== null && Y(e, t, l)) return !1;
291
+ }
292
+ return !0;
293
+ })() || b,
294
+ disableCancelButton: b,
295
+ disableCloseButton: b,
296
+ children: [b && /*#__PURE__*/ M(v, {
297
+ status: "progress",
298
+ title: o._({ id: "XgBuun" }),
299
+ className: "mt-0"
300
+ }), !b && /*#__PURE__*/ N(c, { children: [
301
+ S && /*#__PURE__*/ M(u, { children: /*#__PURE__*/ M(n, {
302
+ onDismiss: () => {
303
+ C(null);
304
+ },
305
+ text: S,
306
+ variant: "error"
307
+ }) }),
308
+ /*#__PURE__*/ N(g, {
309
+ title: o._({ id: "JlSgnX" }),
310
+ children: [
311
+ /*#__PURE__*/ M(u, { children: /*#__PURE__*/ M(p, {
312
+ id: "id",
313
+ name: "id",
314
+ label: o._({ id: "s2ubkU" }),
315
+ value: f.id || "",
316
+ onChange: w,
317
+ onBlur: E,
318
+ errortext: h.id,
319
+ helptext: o._({ id: "hv2CnP" })
320
+ }) }),
321
+ /*#__PURE__*/ M(u, { children: /*#__PURE__*/ M(p, {
322
+ id: "name",
323
+ name: "name",
324
+ label: o._({ id: "lWxDDh" }),
325
+ value: f.name || "",
326
+ onChange: w,
327
+ onBlur: E,
328
+ errortext: h.name,
329
+ helptext: o._({ id: "nq24is" }),
330
+ required: !0
331
+ }) }),
332
+ /*#__PURE__*/ M(u, { children: /*#__PURE__*/ M(p, {
333
+ id: "description",
334
+ name: "description",
335
+ label: o._({ id: "Nu4oKW" }),
336
+ value: f.description || "",
337
+ onChange: w,
338
+ onBlur: E,
339
+ errortext: h.description
340
+ }) }),
341
+ /*#__PURE__*/ M(u, { children: /*#__PURE__*/ M(y, {
342
+ name: "os-flavor-access:is_public",
343
+ label: o._({ id: "vbajgL" }),
344
+ helptext: o._({ id: "Y8TptA" }),
345
+ checked: !!f["os-flavor-access:is_public"],
346
+ onChange: w
347
+ }) })
348
+ ]
349
+ }),
350
+ /*#__PURE__*/ N(g, {
351
+ title: o._({ id: "qQ1QBh" }),
352
+ children: [
353
+ /*#__PURE__*/ M(u, { children: /*#__PURE__*/ M(p, {
354
+ id: "vcpus",
355
+ name: "vcpus",
356
+ label: o._({ id: "k5nYwm" }),
357
+ value: String(f.vcpus || ""),
358
+ onChange: (e) => T("vcpus", Number(e.target.value)),
359
+ onBlur: E,
360
+ errortext: h.vcpus,
361
+ type: "number",
362
+ required: !0
363
+ }) }),
364
+ /*#__PURE__*/ M(u, { children: /*#__PURE__*/ M(p, {
365
+ id: "ram",
366
+ name: "ram",
367
+ label: o._({ id: "K+e/0e" }),
368
+ value: String(f.ram || ""),
369
+ onChange: (e) => T("ram", Number(e.target.value)),
370
+ onBlur: E,
371
+ errortext: h.ram,
372
+ helptext: o._({ id: "9DrU1K" }),
373
+ type: "number",
374
+ required: !0
375
+ }) }),
376
+ /*#__PURE__*/ M(u, { children: /*#__PURE__*/ M(p, {
377
+ id: "disk",
378
+ name: "disk",
379
+ label: o._({ id: "n0ZttO" }),
380
+ value: String(f.disk || ""),
381
+ onChange: (e) => T("disk", Number(e.target.value)),
382
+ onBlur: E,
383
+ errortext: h.disk,
384
+ type: "number",
385
+ required: !0
386
+ }) }),
387
+ /*#__PURE__*/ M(u, { children: /*#__PURE__*/ M(p, {
388
+ id: "OS-FLV-EXT-DATA:ephemeral",
389
+ name: "OS-FLV-EXT-DATA:ephemeral",
390
+ label: o._({ id: "X2OnDx" }),
391
+ value: String(f["OS-FLV-EXT-DATA:ephemeral"] || ""),
392
+ onChange: (e) => T("OS-FLV-EXT-DATA:ephemeral", Number(e.target.value)),
393
+ onBlur: E,
394
+ errortext: h["OS-FLV-EXT-DATA:ephemeral"],
395
+ type: "number"
396
+ }) }),
397
+ /*#__PURE__*/ M(u, { children: /*#__PURE__*/ M(p, {
398
+ id: "swap",
399
+ name: "swap",
400
+ label: o._({ id: "p4nMut" }),
401
+ value: String(f.swap || ""),
402
+ onChange: (e) => T("swap", e.target.value ? Number(e.target.value) : void 0),
403
+ onBlur: E,
404
+ errortext: h.swap,
405
+ type: "number"
406
+ }) }),
407
+ /*#__PURE__*/ M(u, { children: /*#__PURE__*/ M(p, {
408
+ id: "rxtx_factor",
409
+ name: "rxtx_factor",
410
+ label: o._({ id: "u5HztT" }),
411
+ defaultValue: 1,
412
+ value: String(f.rxtx_factor || ""),
413
+ onChange: (e) => T("rxtx_factor", Number(e.target.value)),
414
+ onBlur: E,
415
+ errortext: h.rxtx_factor,
416
+ helptext: o._({ id: "IVw5fS" }),
417
+ type: "number"
418
+ }) })
419
+ ]
420
+ })
421
+ ] })]
422
+ });
423
+ }, Q = 50, $ = (e, t, n, r, i) => e.compute.getFlavorsByProjectId.query({
424
+ project_id: t,
425
+ sortBy: n,
426
+ sortDirection: r,
427
+ searchTerm: i
428
+ }).then((e) => ({
429
+ ...e,
430
+ listError: void 0
431
+ })).catch((e) => {
432
+ if (e instanceof W && e.data?.code === "FORBIDDEN") return {
433
+ flavors: [],
434
+ privateFlavorError: void 0,
435
+ listError: e.message
436
+ };
437
+ throw e;
438
+ }), ee = (e, t) => e.compute.canUser.query({
439
+ project_id: t,
440
+ permission: [
441
+ "flavors:create",
442
+ "flavors:delete",
443
+ "flavors:add_project",
444
+ "flavors:remove_project",
445
+ "flavor_specs:create",
446
+ "flavor_specs:delete"
447
+ ]
448
+ }).then(([e, t, n, r, i, a]) => ({
449
+ canCreate: e,
450
+ canDelete: t,
451
+ canManageAccess: n || r,
452
+ canManageSpecs: i || a
453
+ }));
454
+ function te({ flavorsPromise: t, permissionsPromise: i, client: a, project: o, onFlavorDeleted: s, onFlavorCreated: c, searchTerm: l, setSearchTerm: u, sortSettings: p, handleSortChange: m, createModalOpen: h, setCreateModalOpen: g, currentPage: _, onPageChange: v }) {
455
+ let { i18n: y, _: b } = K(), { flavors: x, privateFlavorError: S, listError: w } = I(t), T = I(i), [E, D] = B(l), O = z(void 0);
456
+ if (R(() => () => clearTimeout(O.current), []), w) return /*#__PURE__*/ M("p", { children: w });
457
+ let k = Math.max(1, Math.ceil(x.length / Q)), A = Math.min(_, k), P = x.slice((A - 1) * Q, A * Q);
458
+ return R(() => {
459
+ _ > k && v(1);
460
+ }, [
461
+ k,
462
+ _,
463
+ v
464
+ ]), /*#__PURE__*/ N(j, { children: [
465
+ /*#__PURE__*/ M(Z, {
466
+ client: a,
467
+ isOpen: h,
468
+ project: o,
469
+ onClose: () => g(!1),
470
+ onSuccess: c
471
+ }),
472
+ S && /*#__PURE__*/ M(n, {
473
+ className: "mb-4",
474
+ text: y._({ id: "3oc18/" }),
475
+ variant: "warning"
476
+ }),
477
+ /*#__PURE__*/ M(r, {
478
+ distribution: "end",
479
+ alignment: "center",
480
+ gap: "2",
481
+ className: "pb-2",
482
+ children: /*#__PURE__*/ N(r, {
483
+ gap: "2",
484
+ children: [/*#__PURE__*/ M(C, {
485
+ options: p.options,
486
+ sortBy: p.sortBy,
487
+ sortDirection: p.sortDirection ?? "asc",
488
+ selectClassName: "min-w-45",
489
+ selectWidth: "auto",
490
+ onSortByChange: (e) => m({
491
+ ...p,
492
+ sortBy: e,
493
+ sortDirection: p.sortDirection
494
+ }),
495
+ onSortDirectionChange: (e) => m({
496
+ ...p,
497
+ sortDirection: e
498
+ })
499
+ }), T.canCreate && /*#__PURE__*/ M(d, {
500
+ variant: "primary",
501
+ label: y._({ id: "Rlp5zj" }),
502
+ onClick: () => g(!0)
503
+ })]
504
+ })
505
+ }),
506
+ /*#__PURE__*/ M(f, { children: /*#__PURE__*/ M(r, {
507
+ distribution: "end",
508
+ alignment: "center",
509
+ children: /*#__PURE__*/ M(e, {
510
+ placeholder: y._({ id: "U0sPCo" }),
511
+ "data-testid": "searchbar",
512
+ value: E,
513
+ onInput: (e) => {
514
+ let t = e.currentTarget.value;
515
+ D(t), clearTimeout(O.current), O.current = window.setTimeout(() => u(t), 500);
516
+ },
517
+ onSearch: (e) => {
518
+ clearTimeout(O.current), u(typeof e == "string" ? e : "");
519
+ },
520
+ onClear: () => {
521
+ clearTimeout(O.current), D(""), u("");
522
+ }
523
+ })
524
+ }) }),
525
+ /*#__PURE__*/ M(J, {
526
+ flavors: P,
527
+ isLoading: !1,
528
+ client: a,
529
+ project: o,
530
+ onFlavorDeleted: s,
531
+ canDeleteFlavor: T.canDelete,
532
+ canMangageAccess: T.canManageAccess,
533
+ canManageSpecs: T.canManageSpecs,
534
+ currentPage: A,
535
+ totalPages: k,
536
+ onPageChange: v
537
+ })
538
+ ] });
539
+ }
540
+ var ne = ({ client: e, project: t }) => {
541
+ let { i18n: n, _: r } = K(), i = V(), a = U({ strict: !1 }), [o, s] = B({
542
+ options: [
543
+ {
544
+ label: n._({ id: "6YtxFj" }),
545
+ value: "name"
546
+ },
547
+ {
548
+ label: n._({ id: "k5nYwm" }),
549
+ value: "vcpus"
550
+ },
551
+ {
552
+ label: n._({ id: "K+e/0e" }),
553
+ value: "ram"
554
+ },
555
+ {
556
+ label: n._({ id: "n0ZttO" }),
557
+ value: "disk"
558
+ },
559
+ {
560
+ label: n._({ id: "p4nMut" }),
561
+ value: "swap"
562
+ }
563
+ ],
564
+ sortBy: a.sortBy || "name",
565
+ sortDirection: a.sortDirection || "asc"
566
+ }), [c, l] = B(a.search || ""), u = a.page ?? 1, [d, f] = B(!1), [p, m] = B(() => $(e, t, o.sortBy, o.sortDirection, c)), [g] = B(() => ee(e, t)), _ = () => {
567
+ F(() => {
568
+ m($(e, t, o.sortBy, o.sortDirection, c));
569
+ });
570
+ }, y = (e) => {
571
+ let { message: t, ...n } = E(e);
572
+ h.success(t, n), _();
573
+ }, b = (e) => {
574
+ let { message: t, ...n } = k(e);
575
+ h.success(t, n), _();
576
+ }, x = (n) => {
577
+ let r = {
578
+ options: n.options,
579
+ sortBy: n.sortBy?.toString() || "name",
580
+ sortDirection: n.sortDirection || "asc"
581
+ };
582
+ s(r), i({
583
+ search: (e) => ({
584
+ ...e,
585
+ sortBy: r.sortBy,
586
+ sortDirection: r.sortDirection,
587
+ page: void 0
588
+ }),
589
+ replace: !0
590
+ }), F(() => {
591
+ m($(e, t, r.sortBy, r.sortDirection, c));
592
+ });
593
+ }, S = (n) => {
594
+ let r = typeof n == "string" ? n : "";
595
+ l(r), i({
596
+ search: (e) => ({
597
+ ...e,
598
+ search: r || void 0,
599
+ page: void 0
600
+ }),
601
+ replace: !0
602
+ }), F(() => {
603
+ m($(e, t, o.sortBy, o.sortDirection, r));
604
+ });
605
+ }, C = L((e) => {
606
+ i({ search: (t) => ({
607
+ ...t,
608
+ page: e === 1 ? void 0 : e
609
+ }) });
610
+ }, [i]);
611
+ return /*#__PURE__*/ M("div", {
612
+ className: "relative",
613
+ children: /*#__PURE__*/ M(q, {
614
+ fallbackRender: ({ error: e }) => /*#__PURE__*/ M(v, {
615
+ status: "error",
616
+ title: n._({ id: "ZllCCx" }),
617
+ body: e instanceof Error ? e.message : n._({ id: "W5A0Ly" })
618
+ }),
619
+ children: /*#__PURE__*/ M(P, {
620
+ fallback: /*#__PURE__*/ M(v, {
621
+ status: "progress",
622
+ title: n._({ id: "EqSPkP" })
623
+ }),
624
+ children: /*#__PURE__*/ M(te, {
625
+ flavorsPromise: p,
626
+ permissionsPromise: g,
627
+ client: e,
628
+ project: t,
629
+ onFlavorDeleted: y,
630
+ onFlavorCreated: b,
631
+ searchTerm: c,
632
+ setSearchTerm: S,
633
+ sortSettings: o,
634
+ handleSortChange: x,
635
+ createModalOpen: d,
636
+ setCreateModalOpen: f,
637
+ currentPage: u,
638
+ onPageChange: C
639
+ })
640
+ })
641
+ })
642
+ });
643
+ };
644
+ //#endregion
645
+ //#region src/client/routes/_auth/projects/$projectId/compute/flavors/index.tsx?tsr-split=component
646
+ function re() {
647
+ let { i18n: e, _: t } = K(), { projectId: n } = S.useParams(), { trpcClient: r } = S.useRouteContext();
648
+ return /*#__PURE__*/ N(j, { children: [/*#__PURE__*/ M(w, {
649
+ title: e._({ id: "neiJm0" }),
650
+ projectId: n
651
+ }), /*#__PURE__*/ M(ne, {
652
+ project: n,
653
+ client: r
654
+ })] });
655
+ }
656
+ //#endregion
657
+ export { re as component };
658
+
659
+ //# sourceMappingURL=flavors-Bgq3KZmx.mjs.map