@cobaltcore-dev/aurora 0.1.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 (142) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +141 -0
  3. package/dist/client/AuroraApp.d.ts +7 -0
  4. package/dist/client/AuthProvider-D-5Jpa6F.mjs +100 -0
  5. package/dist/client/AuthProvider-D-5Jpa6F.mjs.map +1 -0
  6. package/dist/client/ContentHeader-H8KGY3Wd.mjs +81 -0
  7. package/dist/client/ContentHeader-H8KGY3Wd.mjs.map +1 -0
  8. package/dist/client/DeleteFlavorModal-B98oiHWx.mjs +629 -0
  9. package/dist/client/DeleteFlavorModal-B98oiHWx.mjs.map +1 -0
  10. package/dist/client/EditSecurityGroupModal-wQVNIVg1.mjs +137 -0
  11. package/dist/client/EditSecurityGroupModal-wQVNIVg1.mjs.map +1 -0
  12. package/dist/client/FloatingIpActionModals-qu1NMI5a.mjs +417 -0
  13. package/dist/client/FloatingIpActionModals-qu1NMI5a.mjs.map +1 -0
  14. package/dist/client/ImageToastNotifications-wsQDNEh7.mjs +1267 -0
  15. package/dist/client/ImageToastNotifications-wsQDNEh7.mjs.map +1 -0
  16. package/dist/client/ListToolbar-CHlkZrpl.mjs +223 -0
  17. package/dist/client/ListToolbar-CHlkZrpl.mjs.map +1 -0
  18. package/dist/client/RouteError-BwgDIwJE.mjs +25 -0
  19. package/dist/client/RouteError-BwgDIwJE.mjs.map +1 -0
  20. package/dist/client/_auth-CsliQdkJ.mjs +11 -0
  21. package/dist/client/_auth-CsliQdkJ.mjs.map +1 -0
  22. package/dist/client/_flavorId-D_A53VYa.mjs +56 -0
  23. package/dist/client/_flavorId-D_A53VYa.mjs.map +1 -0
  24. package/dist/client/_flavorId-DbhYLFxY.mjs +190 -0
  25. package/dist/client/_flavorId-DbhYLFxY.mjs.map +1 -0
  26. package/dist/client/_floatingIpId-BGgftRBQ.mjs +21 -0
  27. package/dist/client/_floatingIpId-BGgftRBQ.mjs.map +1 -0
  28. package/dist/client/_floatingIpId-D5myuLFz.mjs +228 -0
  29. package/dist/client/_floatingIpId-D5myuLFz.mjs.map +1 -0
  30. package/dist/client/_imageId-BoHX155h.mjs +27 -0
  31. package/dist/client/_imageId-BoHX155h.mjs.map +1 -0
  32. package/dist/client/_imageId-CTa0c3Av.mjs +530 -0
  33. package/dist/client/_imageId-CTa0c3Av.mjs.map +1 -0
  34. package/dist/client/_pcaId-C7Lrv1H_.mjs +242 -0
  35. package/dist/client/_pcaId-C7Lrv1H_.mjs.map +1 -0
  36. package/dist/client/_pcaId-DBgz5V_9.mjs +21 -0
  37. package/dist/client/_pcaId-DBgz5V_9.mjs.map +1 -0
  38. package/dist/client/_projectId-B9fln31N.mjs +8 -0
  39. package/dist/client/_projectId-B9fln31N.mjs.map +1 -0
  40. package/dist/client/_projectId-Be1Erj68.mjs +300 -0
  41. package/dist/client/_projectId-Be1Erj68.mjs.map +1 -0
  42. package/dist/client/_projectId-C-E4NNgo.mjs +84 -0
  43. package/dist/client/_projectId-C-E4NNgo.mjs.map +1 -0
  44. package/dist/client/_projectId-INhedXor.mjs +26 -0
  45. package/dist/client/_projectId-INhedXor.mjs.map +1 -0
  46. package/dist/client/_securityGroupId-DQoRQ-yA.mjs +1647 -0
  47. package/dist/client/_securityGroupId-DQoRQ-yA.mjs.map +1 -0
  48. package/dist/client/_securityGroupId-ihjy8Lcd.mjs +21 -0
  49. package/dist/client/_securityGroupId-ihjy8Lcd.mjs.map +1 -0
  50. package/dist/client/about-oT6ccz8T.mjs +92 -0
  51. package/dist/client/about-oT6ccz8T.mjs.map +1 -0
  52. package/dist/client/aurora-D_NPTbo-.mjs +19 -0
  53. package/dist/client/aurora-D_NPTbo-.mjs.map +1 -0
  54. package/dist/client/build-eu9eg0zF.mjs +14619 -0
  55. package/dist/client/build-eu9eg0zF.mjs.map +1 -0
  56. package/dist/client/buildFilterParams-BDOIRDeD.mjs +15 -0
  57. package/dist/client/buildFilterParams-BDOIRDeD.mjs.map +1 -0
  58. package/dist/client/cn-C3laVXMm.mjs +10 -0
  59. package/dist/client/cn-C3laVXMm.mjs.map +1 -0
  60. package/dist/client/constants-ByHCdNsI.mjs +128 -0
  61. package/dist/client/constants-ByHCdNsI.mjs.map +1 -0
  62. package/dist/client/containers-B_ozmVlx.mjs +74 -0
  63. package/dist/client/containers-B_ozmVlx.mjs.map +1 -0
  64. package/dist/client/containers-Dx7TYruP.mjs +7 -0
  65. package/dist/client/containers-Dx7TYruP.mjs.map +1 -0
  66. package/dist/client/containers-rn_ntCJu.mjs +3029 -0
  67. package/dist/client/containers-rn_ntCJu.mjs.map +1 -0
  68. package/dist/client/flavors-CT4auvLO.mjs +565 -0
  69. package/dist/client/flavors-CT4auvLO.mjs.map +1 -0
  70. package/dist/client/flavors-DRZb9LJP.mjs +8 -0
  71. package/dist/client/flavors-DRZb9LJP.mjs.map +1 -0
  72. package/dist/client/flavors-DtgMd0Ii.mjs +12 -0
  73. package/dist/client/flavors-DtgMd0Ii.mjs.map +1 -0
  74. package/dist/client/floatingips-DG5cFJSZ.mjs +12 -0
  75. package/dist/client/floatingips-DG5cFJSZ.mjs.map +1 -0
  76. package/dist/client/floatingips-iCMR0ZiL.mjs +436 -0
  77. package/dist/client/floatingips-iCMR0ZiL.mjs.map +1 -0
  78. package/dist/client/formatBytes-GYujK0dP.mjs +38 -0
  79. package/dist/client/formatBytes-GYujK0dP.mjs.map +1 -0
  80. package/dist/client/helpers--JWXi40U.mjs +6 -0
  81. package/dist/client/helpers--JWXi40U.mjs.map +1 -0
  82. package/dist/client/hooks-s-I8vWww.mjs +2 -0
  83. package/dist/client/images-BTqRflJv2.mjs +1794 -0
  84. package/dist/client/images-BTqRflJv2.mjs.map +1 -0
  85. package/dist/client/images-DRTfx8k2.mjs +8 -0
  86. package/dist/client/images-DRTfx8k2.mjs.map +1 -0
  87. package/dist/client/images-xBfsjxkX.mjs +12 -0
  88. package/dist/client/images-xBfsjxkX.mjs.map +1 -0
  89. package/dist/client/index.d.ts +1 -0
  90. package/dist/client/index.js +1033 -0
  91. package/dist/client/index.js.map +1 -0
  92. package/dist/client/md-CI9FmfYv.mjs +390 -0
  93. package/dist/client/md-CI9FmfYv.mjs.map +1 -0
  94. package/dist/client/network-DFVVVNS5.mjs +8 -0
  95. package/dist/client/network-DFVVVNS5.mjs.map +1 -0
  96. package/dist/client/objects-CKk6cST_.mjs +4762 -0
  97. package/dist/client/objects-CKk6cST_.mjs.map +1 -0
  98. package/dist/client/objects-DkDKVSmQ.mjs +8 -0
  99. package/dist/client/objects-DkDKVSmQ.mjs.map +1 -0
  100. package/dist/client/objects-r_Vl31oj.mjs +80 -0
  101. package/dist/client/objects-r_Vl31oj.mjs.map +1 -0
  102. package/dist/client/overview-B7pXx6bt.mjs +173 -0
  103. package/dist/client/overview-B7pXx6bt.mjs.map +1 -0
  104. package/dist/client/overview-CKGLIu6W.mjs +12 -0
  105. package/dist/client/overview-CKGLIu6W.mjs.map +1 -0
  106. package/dist/client/overview-Ca8r3SAz.mjs +16 -0
  107. package/dist/client/overview-Ca8r3SAz.mjs.map +1 -0
  108. package/dist/client/overview-DkPM0Od5.mjs +12 -0
  109. package/dist/client/overview-DkPM0Od5.mjs.map +1 -0
  110. package/dist/client/overview-Dxm7Ef3X.mjs +12 -0
  111. package/dist/client/overview-Dxm7Ef3X.mjs.map +1 -0
  112. package/dist/client/overview-ag4Envez.mjs +16 -0
  113. package/dist/client/overview-ag4Envez.mjs.map +1 -0
  114. package/dist/client/pca-BGv7Mprl.mjs +12 -0
  115. package/dist/client/pca-BGv7Mprl.mjs.map +1 -0
  116. package/dist/client/pca-DpULpMu5.mjs +167 -0
  117. package/dist/client/pca-DpULpMu5.mjs.map +1 -0
  118. package/dist/client/projects-BuN69cxO.mjs +144 -0
  119. package/dist/client/projects-BuN69cxO.mjs.map +1 -0
  120. package/dist/client/projects-D1pP0XdA.mjs +12 -0
  121. package/dist/client/projects-D1pP0XdA.mjs.map +1 -0
  122. package/dist/client/projects-MbS1USl2.mjs +7 -0
  123. package/dist/client/projects-MbS1USl2.mjs.map +1 -0
  124. package/dist/client/projects-_Dfn6eQT.mjs +22 -0
  125. package/dist/client/projects-_Dfn6eQT.mjs.map +1 -0
  126. package/dist/client/securitygroups-DURjFfYK.mjs +12 -0
  127. package/dist/client/securitygroups-DURjFfYK.mjs.map +1 -0
  128. package/dist/client/securitygroups-KC2qvmH8.mjs +442 -0
  129. package/dist/client/securitygroups-KC2qvmH8.mjs.map +1 -0
  130. package/dist/client/trpcClient-BxguzNYF.mjs +57 -0
  131. package/dist/client/trpcClient-BxguzNYF.mjs.map +1 -0
  132. package/dist/client/useErrorTranslation-TZVwIAzq.mjs +83 -0
  133. package/dist/client/useErrorTranslation-TZVwIAzq.mjs.map +1 -0
  134. package/dist/client/useListWithFiltering-mMX_EfyI.mjs +32 -0
  135. package/dist/client/useListWithFiltering-mMX_EfyI.mjs.map +1 -0
  136. package/dist/client/useModal-Dg4CBeqL.mjs +12 -0
  137. package/dist/client/useModal-Dg4CBeqL.mjs.map +1 -0
  138. package/dist/client/useProjectId-BWaeJZOy.mjs +11 -0
  139. package/dist/client/useProjectId-BWaeJZOy.mjs.map +1 -0
  140. package/dist/server/index.d.ts +35 -0
  141. package/dist/server/index.js +36514 -0
  142. package/package.json +129 -0
@@ -0,0 +1,565 @@
1
+ import { $ as e, D as t, I as n, K as r, N as i, Q as a, W as o, _ as s, b as c, g as l, i as u, it as d, j as f, k as p, n as m, q as h, rt as g, s as _, w as v } from "./build-eu9eg0zF.mjs";
2
+ import { t as y } from "./useErrorTranslation-TZVwIAzq.mjs";
3
+ import { t as b } from "./flavors-DtgMd0Ii.mjs";
4
+ import { n as x, r as S, t as C } from "./DeleteFlavorModal-B98oiHWx.mjs";
5
+ import { t as w } from "./ContentHeader-H8KGY3Wd.mjs";
6
+ import { t as T } from "./ListToolbar-CHlkZrpl.mjs";
7
+ import { Fragment as E, jsx as D, jsxs as O } from "react/jsx-runtime";
8
+ import { Suspense as k, startTransition as A, use as j, useCallback as M, useEffect as N, useState as P } from "react";
9
+ import { Link as F, useNavigate as I, useParams as L, useSearch as R } from "@tanstack/react-router";
10
+ import { Trans as z, useLingui as B } from "@lingui/react";
11
+ //#region src/client/routes/_auth/projects/$projectId/compute/-components/Flavors/-components/FlavorListContainer.tsx
12
+ var V = ({ flavors: e, isLoading: t, client: a, project: c, onFlavorDeleted: l, canDeleteFlavor: u, canMangageAccess: f, currentPage: _ = 1, totalPages: y = 1, onPageChange: b }) => {
13
+ let { i18n: w, _: T } = B(), k = I(), [A, j] = P(!1), [M, N] = P(!1), [R, V] = P(!1), [H, U] = P(null), { projectId: W } = L({ from: "/_auth/projects/$projectId/compute/flavors/" }), G = (e) => {
14
+ U(e), j(!0);
15
+ }, K = (e) => {
16
+ U(e), N(!0);
17
+ }, q = (e) => {
18
+ U(e), V(!0);
19
+ }, J = () => {
20
+ j(!1), U(null);
21
+ };
22
+ return t ? /* @__PURE__ */ D("div", {
23
+ "data-testid": "loading",
24
+ children: /* @__PURE__ */ D("div", {
25
+ "data-testid": "loading",
26
+ children: /* @__PURE__ */ D(n, { children: /* @__PURE__ */ D(i, {
27
+ colSpan: 3,
28
+ children: /* @__PURE__ */ O(h, {
29
+ distribution: "center",
30
+ alignment: "center",
31
+ children: [/* @__PURE__ */ D(o, { variant: "primary" }), /* @__PURE__ */ D(z, { id: "Z3FXyt" })]
32
+ })
33
+ }) })
34
+ })
35
+ }) : !e || e.length === 0 ? /* @__PURE__ */ D(p, {
36
+ columns: 7,
37
+ className: "flavors",
38
+ "data-testid": "no-flavors",
39
+ children: /* @__PURE__ */ D(n, { children: /* @__PURE__ */ O(i, {
40
+ colSpan: 7,
41
+ children: [/* @__PURE__ */ D(v, { children: /* @__PURE__ */ D(z, { id: "PiyQJ/" }) }), /* @__PURE__ */ D("p", { children: /* @__PURE__ */ D(z, { id: "KSW/GC" }) })]
42
+ }) })
43
+ }) : /* @__PURE__ */ O(E, { children: [
44
+ /* @__PURE__ */ O(p, {
45
+ columns: 6,
46
+ minContentColumns: [5],
47
+ className: "flavors",
48
+ "data-testid": "flavors-table",
49
+ children: [/* @__PURE__ */ O(n, { children: [
50
+ /* @__PURE__ */ D(d, { children: /* @__PURE__ */ D(z, { id: "6YtxFj" }) }),
51
+ /* @__PURE__ */ D(d, { children: /* @__PURE__ */ D(z, { id: "k5nYwm" }) }),
52
+ /* @__PURE__ */ D(d, { children: /* @__PURE__ */ D(z, { id: "K+e/0e" }) }),
53
+ /* @__PURE__ */ D(d, { children: /* @__PURE__ */ D(z, { id: "n0ZttO" }) }),
54
+ /* @__PURE__ */ D(d, { children: /* @__PURE__ */ D(z, { id: "p4nMut" }) }),
55
+ /* @__PURE__ */ D(d, {})
56
+ ] }), e.map((e) => /* @__PURE__ */ O(n, {
57
+ "data-testid": `flavor-row-${e.id}`,
58
+ onClick: () => k({
59
+ to: "/projects/$projectId/compute/flavors/$flavorId",
60
+ params: {
61
+ projectId: W,
62
+ flavorId: e.id
63
+ }
64
+ }),
65
+ children: [
66
+ /* @__PURE__ */ D(i, { children: e.name || e.id }),
67
+ /* @__PURE__ */ D(i, { children: e.vcpus || "–" }),
68
+ /* @__PURE__ */ D(i, { children: e.ram || "–" }),
69
+ /* @__PURE__ */ D(i, { children: e.disk || "–" }),
70
+ /* @__PURE__ */ D(i, { children: e.swap || "–" }),
71
+ /* @__PURE__ */ D(i, {
72
+ onClick: (e) => e.stopPropagation(),
73
+ children: /* @__PURE__ */ D(m, { children: /* @__PURE__ */ O(g, { children: [
74
+ /* @__PURE__ */ D(r, { children: /* @__PURE__ */ D(F, {
75
+ to: "/projects/$projectId/compute/flavors/$flavorId",
76
+ params: {
77
+ projectId: W,
78
+ flavorId: e.id
79
+ },
80
+ className: "text-theme-default",
81
+ children: w._({ id: "URmyfc" })
82
+ }) }),
83
+ /* @__PURE__ */ D(r, {
84
+ label: w._({ id: "6GBt0m" }),
85
+ onClick: () => K(e)
86
+ }),
87
+ f && /* @__PURE__ */ D(r, {
88
+ label: w._({ id: "cWbW6w" }),
89
+ onClick: () => q(e)
90
+ }),
91
+ u && /* @__PURE__ */ D(r, {
92
+ label: w._({ id: "JT3I1g" }),
93
+ onClick: () => G(e)
94
+ })
95
+ ] }) })
96
+ })
97
+ ]
98
+ }, e.id))]
99
+ }),
100
+ y > 1 && /* @__PURE__ */ D("div", {
101
+ className: "flex justify-center py-4",
102
+ children: /* @__PURE__ */ D(s, {
103
+ variant: "input",
104
+ currentPage: _,
105
+ pages: y,
106
+ onPressPrevious: () => b?.(Math.max(_ - 1, 1)),
107
+ onPressNext: () => b?.(Math.min(_ + 1, y)),
108
+ onSelectChange: (e) => b?.(e)
109
+ })
110
+ }),
111
+ /* @__PURE__ */ D(C, {
112
+ client: a,
113
+ isOpen: A,
114
+ onClose: J,
115
+ project: c,
116
+ flavor: H,
117
+ onSuccess: () => {
118
+ H && l && l(H.name || ""), J();
119
+ }
120
+ }),
121
+ /* @__PURE__ */ D(S, {
122
+ client: a,
123
+ isOpen: M,
124
+ onClose: () => N(!1),
125
+ project: c,
126
+ flavor: H
127
+ }),
128
+ /* @__PURE__ */ D(x, {
129
+ client: a,
130
+ isOpen: R,
131
+ onClose: () => V(!1),
132
+ project: c,
133
+ flavor: H
134
+ })
135
+ ] });
136
+ }, H = (e, t, n) => {
137
+ switch (e) {
138
+ case "id":
139
+ if (!t) return;
140
+ {
141
+ let e = String(t).trim();
142
+ return /^[a-zA-Z0-9.\-_]*$/.test(e) ? void 0 : n({ id: "AX9Juz" });
143
+ }
144
+ case "name": {
145
+ let e = String(t || "").trim();
146
+ return e.length >= 2 && e.length <= 50 ? void 0 : n({ id: "zDS0JC" });
147
+ }
148
+ case "vcpus": {
149
+ let e = Number(t);
150
+ return !isNaN(e) && e >= 1 ? void 0 : n({ id: "uSdnuQ" });
151
+ }
152
+ case "ram": {
153
+ let e = Number(t);
154
+ return !isNaN(e) && e >= 128 ? void 0 : n({ id: "g1IxCo" });
155
+ }
156
+ case "disk": {
157
+ let e = Number(t);
158
+ return !isNaN(e) && e >= 0 ? void 0 : n({ id: "AJRhSM" });
159
+ }
160
+ case "swap":
161
+ if (t === "" || t == null) return;
162
+ {
163
+ let e = Number(t);
164
+ return !isNaN(e) && e >= 0 ? void 0 : n({ id: "g3BSCe" });
165
+ }
166
+ case "rxtx_factor": {
167
+ let e = Number(t);
168
+ return !isNaN(e) && e >= 1 ? void 0 : n({ id: "PIbPRX" });
169
+ }
170
+ case "description": return t ? String(t).length < 65535 ? void 0 : n({ id: "uuKb0T" }) : void 0;
171
+ case "OS-FLV-EXT-DATA:ephemeral": {
172
+ let e = Number(t);
173
+ return !isNaN(e) && e >= 0 ? void 0 : n({ id: "tLerHy" });
174
+ }
175
+ case "os-flavor-access:is_public": return t == null || typeof t == "boolean" || typeof t == "string" && (t === "true" || t === "false") ? void 0 : n({ id: "MmtQVF" });
176
+ default: return;
177
+ }
178
+ }, U = (e) => {
179
+ let t = {
180
+ name: String(e.name),
181
+ vcpus: Number(e.vcpus),
182
+ ram: Number(e.ram),
183
+ disk: Number(e.disk)
184
+ }, n = (e) => e != null && e !== "" && String(e).trim() !== "", r = (e) => e != null && e !== "" && String(e).trim() !== "" && !isNaN(Number(e));
185
+ 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;
186
+ }, W = ({ client: n, isOpen: r, onClose: i, project: s, onSuccess: l }) => {
187
+ let { i18n: d, _: p } = B(), { translateError: m } = y(), [g, v] = P({ "os-flavor-access:is_public": !0 }), [b, x] = P({}), [S, C] = P(!1), [w, T] = P(null), E = (e) => {
188
+ let { name: t, value: n, type: r, checked: i } = e.target;
189
+ v((e) => ({
190
+ ...e,
191
+ [t]: r === "checkbox" ? i : n
192
+ })), w && T(null);
193
+ }, k = (e, t) => {
194
+ v((n) => ({
195
+ ...n,
196
+ [e]: t
197
+ })), w && T(null);
198
+ }, A = (e) => {
199
+ let { name: t, value: n } = e.target, r = H(t, n, p);
200
+ x((e) => ({
201
+ ...e,
202
+ [t]: r
203
+ }));
204
+ }, j = async (e) => {
205
+ e.preventDefault(), T(null);
206
+ let t = {};
207
+ if ([
208
+ "name",
209
+ "vcpus",
210
+ "ram",
211
+ "disk"
212
+ ].forEach((e) => {
213
+ let n = H(e, g[e], p);
214
+ n && (t[e] = n);
215
+ }), [
216
+ "id",
217
+ "swap",
218
+ "OS-FLV-EXT-DATA:ephemeral",
219
+ "rxtx_factor",
220
+ "description",
221
+ "os-flavor-access:is_public"
222
+ ].forEach((e) => {
223
+ let n = g[e];
224
+ if (n !== void 0 && n !== "" && n !== null) {
225
+ let r = H(e, n, p);
226
+ r && (t[e] = r);
227
+ }
228
+ }), Object.keys(t).length > 0) {
229
+ x(t), T(d._({ id: "CBFSfX" }));
230
+ return;
231
+ }
232
+ try {
233
+ C(!0);
234
+ let e = U(g);
235
+ await n.compute.createFlavor.mutate({
236
+ project_id: s,
237
+ flavor: e
238
+ }), l(e.name), M();
239
+ } catch (e) {
240
+ T(e?.message ? m(e.message) : d._({ id: "OxDN2m" }));
241
+ } finally {
242
+ C(!1);
243
+ }
244
+ }, M = () => {
245
+ v({ "os-flavor-access:is_public": !0 }), x({}), T(null), i();
246
+ };
247
+ return /* @__PURE__ */ O(_, {
248
+ onCancel: M,
249
+ size: "large",
250
+ title: d._({ id: "Rlp5zj" }),
251
+ open: r,
252
+ onConfirm: j,
253
+ cancelButtonLabel: d._({ id: "dEgA5A" }),
254
+ confirmButtonLabel: d._({ id: "wEfZld" }),
255
+ children: [S && /* @__PURE__ */ D(h, {
256
+ distribution: "center",
257
+ alignment: "center",
258
+ children: /* @__PURE__ */ D(o, { variant: "primary" })
259
+ }), !S && /* @__PURE__ */ O(t, { children: [w && /* @__PURE__ */ D(f, { children: /* @__PURE__ */ D(c, {
260
+ onDismiss: () => {
261
+ T(null);
262
+ },
263
+ text: w,
264
+ variant: "error"
265
+ }) }), /* @__PURE__ */ O(u, { children: [
266
+ /* @__PURE__ */ D(f, { children: /* @__PURE__ */ D(e, {
267
+ id: "id",
268
+ name: "id",
269
+ label: d._({ id: "s2ubkU" }),
270
+ value: g.id || "",
271
+ onChange: E,
272
+ onBlur: A,
273
+ errortext: b.id
274
+ }) }),
275
+ /* @__PURE__ */ D(f, { children: /* @__PURE__ */ D(e, {
276
+ id: "name",
277
+ name: "name",
278
+ label: d._({ id: "lWxDDh" }),
279
+ value: g.name || "",
280
+ onChange: E,
281
+ onBlur: A,
282
+ errortext: b.name,
283
+ required: !0
284
+ }) }),
285
+ /* @__PURE__ */ D(f, { children: /* @__PURE__ */ D(e, {
286
+ id: "description",
287
+ name: "description",
288
+ label: d._({ id: "Nu4oKW" }),
289
+ value: g.description || "",
290
+ onChange: E,
291
+ onBlur: A,
292
+ errortext: b.description
293
+ }) }),
294
+ /* @__PURE__ */ D(f, { children: /* @__PURE__ */ D(e, {
295
+ id: "vcpus",
296
+ name: "vcpus",
297
+ label: d._({ id: "MZGbkp" }),
298
+ value: String(g.vcpus || ""),
299
+ onChange: (e) => k("vcpus", Number(e.target.value)),
300
+ onBlur: A,
301
+ errortext: b.vcpus,
302
+ type: "number",
303
+ required: !0
304
+ }) }),
305
+ /* @__PURE__ */ D(f, { children: /* @__PURE__ */ D(e, {
306
+ id: "ram",
307
+ name: "ram",
308
+ label: d._({ id: "K+e/0e" }),
309
+ value: String(g.ram || ""),
310
+ onChange: (e) => k("ram", Number(e.target.value)),
311
+ onBlur: A,
312
+ errortext: b.ram,
313
+ type: "number",
314
+ required: !0
315
+ }) }),
316
+ /* @__PURE__ */ D(f, { children: /* @__PURE__ */ D(e, {
317
+ id: "disk",
318
+ name: "disk",
319
+ label: d._({ id: "AxZkIr" }),
320
+ value: String(g.disk || ""),
321
+ onChange: (e) => k("disk", Number(e.target.value)),
322
+ onBlur: A,
323
+ errortext: b.disk,
324
+ type: "number",
325
+ required: !0
326
+ }) }),
327
+ /* @__PURE__ */ D(f, { children: /* @__PURE__ */ D(e, {
328
+ id: "OS-FLV-EXT-DATA:ephemeral",
329
+ name: "OS-FLV-EXT-DATA:ephemeral",
330
+ label: d._({ id: "X2OnDx" }),
331
+ value: String(g["OS-FLV-EXT-DATA:ephemeral"] || ""),
332
+ onChange: (e) => k("OS-FLV-EXT-DATA:ephemeral", Number(e.target.value)),
333
+ onBlur: A,
334
+ errortext: b["OS-FLV-EXT-DATA:ephemeral"],
335
+ type: "number"
336
+ }) }),
337
+ /* @__PURE__ */ D(f, { children: /* @__PURE__ */ D(e, {
338
+ id: "swap",
339
+ name: "swap",
340
+ label: d._({ id: "p4nMut" }),
341
+ value: String(g.swap || ""),
342
+ onChange: (e) => k("swap", e.target.value ? Number(e.target.value) : void 0),
343
+ onBlur: A,
344
+ errortext: b.swap,
345
+ type: "number"
346
+ }) }),
347
+ /* @__PURE__ */ D(f, { children: /* @__PURE__ */ D(e, {
348
+ id: "rxtx_factor",
349
+ name: "rxtx_factor",
350
+ label: d._({ id: "u5HztT" }),
351
+ defaultValue: 1,
352
+ value: String(g.rxtx_factor || ""),
353
+ onChange: (e) => k("rxtx_factor", Number(e.target.value)),
354
+ onBlur: A,
355
+ errortext: b.rxtx_factor,
356
+ type: "number"
357
+ }) }),
358
+ /* @__PURE__ */ D(f, { children: /* @__PURE__ */ D(a, {
359
+ name: "os-flavor-access:is_public",
360
+ label: d._({ id: "vbajgL" }),
361
+ helptext: d._({ id: "3nh/7E" }),
362
+ checked: !!g["os-flavor-access:is_public"],
363
+ onChange: E
364
+ }) })
365
+ ] })] })]
366
+ });
367
+ }, G = 50, K = (e, t, n, r, i) => e.compute.getFlavorsByProjectId.query({
368
+ project_id: t,
369
+ sortBy: n,
370
+ sortDirection: r,
371
+ searchTerm: i
372
+ }), q = (e, t) => e.compute.canUser.query({
373
+ project_id: t,
374
+ permission: [
375
+ "flavors:create",
376
+ "flavors:delete",
377
+ "flavors:list_projects"
378
+ ]
379
+ }).then(([e, t, n]) => ({
380
+ canCreate: e,
381
+ canDelete: t,
382
+ canManageAccess: n
383
+ }));
384
+ function J({ flavorsPromise: e, permissionsPromise: t, client: n, project: r, onFlavorDeleted: i, onFlavorCreated: a, searchTerm: o, setSearchTerm: s, sortSettings: u, handleSortChange: d, createModalOpen: f, setCreateModalOpen: p, currentPage: m, onPageChange: h }) {
385
+ let { i18n: g, _ } = B(), { flavors: v, privateFlavorError: y } = j(e), b = j(t), x = Math.max(1, Math.ceil(v.length / G)), S = Math.min(m, x), C = v.slice((S - 1) * G, S * G);
386
+ return N(() => {
387
+ m > x && h(1);
388
+ }, [
389
+ x,
390
+ m,
391
+ h
392
+ ]), /* @__PURE__ */ O(E, { children: [
393
+ /* @__PURE__ */ D(W, {
394
+ client: n,
395
+ isOpen: f,
396
+ project: r,
397
+ onClose: () => p(!1),
398
+ onSuccess: a
399
+ }),
400
+ y && /* @__PURE__ */ D(c, {
401
+ className: "mb-4",
402
+ text: g._({ id: "3oc18/" }),
403
+ variant: "warning"
404
+ }),
405
+ /* @__PURE__ */ D(T, {
406
+ sortSettings: u,
407
+ searchTerm: o,
408
+ onSort: d,
409
+ onSearch: s,
410
+ actions: b.canCreate ? /* @__PURE__ */ D(l, {
411
+ variant: "primary",
412
+ label: g._({ id: "Rlp5zj" }),
413
+ onClick: () => p(!0)
414
+ }) : null
415
+ }),
416
+ /* @__PURE__ */ D(V, {
417
+ flavors: C,
418
+ isLoading: !1,
419
+ client: n,
420
+ project: r,
421
+ onFlavorDeleted: i,
422
+ canDeleteFlavor: b.canDelete,
423
+ canMangageAccess: b.canManageAccess,
424
+ currentPage: S,
425
+ totalPages: x,
426
+ onPageChange: h
427
+ })
428
+ ] });
429
+ }
430
+ var Y = ({ client: e, project: t }) => {
431
+ let { i18n: n, _: r } = B(), i = I(), a = R({ strict: !1 }), [s, l] = P({
432
+ options: [
433
+ {
434
+ label: n._({ id: "6YtxFj" }),
435
+ value: "name"
436
+ },
437
+ {
438
+ label: n._({ id: "MZGbkp" }),
439
+ value: "vcpus"
440
+ },
441
+ {
442
+ label: n._({ id: "RGhYAo" }),
443
+ value: "ram"
444
+ },
445
+ {
446
+ label: n._({ id: "cJDQIO" }),
447
+ value: "disk"
448
+ },
449
+ {
450
+ label: n._({ id: "vH2C/2" }),
451
+ value: "swap"
452
+ }
453
+ ],
454
+ sortBy: a.sortBy || "name",
455
+ sortDirection: a.sortDirection || "asc"
456
+ }), [u, d] = P(a.search || ""), f = a.page ?? 1, [p, m] = P(), [g, _] = P(!1), [v, y] = P(() => K(e, t, s.sortBy, s.sortDirection, u)), [b] = P(() => q(e, t)), x = () => {
457
+ A(() => {
458
+ y(K(e, t, s.sortBy, s.sortDirection, u));
459
+ });
460
+ }, S = (e) => {
461
+ m({
462
+ message: n._({
463
+ id: "20Kpaw",
464
+ values: { flavorName: e }
465
+ }),
466
+ timestamp: Date.now()
467
+ }), setTimeout(() => m(void 0), 5e3), x();
468
+ }, C = (e) => {
469
+ m({
470
+ message: n._({
471
+ id: "eChIh7",
472
+ values: { flavorName: e }
473
+ }),
474
+ timestamp: Date.now()
475
+ }), setTimeout(() => m(void 0), 5e3), x();
476
+ }, w = (n) => {
477
+ let r = {
478
+ options: n.options,
479
+ sortBy: n.sortBy?.toString() || "name",
480
+ sortDirection: n.sortDirection || "asc"
481
+ };
482
+ l(r), i({
483
+ search: (e) => ({
484
+ ...e,
485
+ sortBy: r.sortBy,
486
+ sortDirection: r.sortDirection,
487
+ page: void 0
488
+ }),
489
+ replace: !0
490
+ }), A(() => {
491
+ y(K(e, t, r.sortBy, r.sortDirection, u));
492
+ });
493
+ }, T = (n) => {
494
+ let r = typeof n == "string" ? n : "";
495
+ d(r), i({
496
+ search: (e) => ({
497
+ ...e,
498
+ search: r || void 0,
499
+ page: void 0
500
+ }),
501
+ replace: !0
502
+ }), A(() => {
503
+ y(K(e, t, s.sortBy, s.sortDirection, r));
504
+ });
505
+ }, E = M((e) => {
506
+ i({ search: (t) => ({
507
+ ...t,
508
+ page: e === 1 ? void 0 : e
509
+ }) });
510
+ }, [i]);
511
+ return /* @__PURE__ */ O("div", {
512
+ className: "relative",
513
+ children: [p && /* @__PURE__ */ D(c, {
514
+ className: "absolute -top-14 right-0 left-0 z-50",
515
+ text: p.message,
516
+ variant: "info",
517
+ onDismiss: () => m(void 0),
518
+ dismissible: !0
519
+ }), /* @__PURE__ */ D(k, {
520
+ fallback: /* @__PURE__ */ O(h, {
521
+ className: "fixed inset-0",
522
+ distribution: "center",
523
+ alignment: "center",
524
+ direction: "vertical",
525
+ children: [/* @__PURE__ */ D(o, {
526
+ variant: "primary",
527
+ size: "large",
528
+ className: "mb-2"
529
+ }), /* @__PURE__ */ D(z, { id: "EqSPkP" })]
530
+ }),
531
+ children: /* @__PURE__ */ D(J, {
532
+ flavorsPromise: v,
533
+ permissionsPromise: b,
534
+ client: e,
535
+ project: t,
536
+ onFlavorDeleted: S,
537
+ onFlavorCreated: C,
538
+ searchTerm: u,
539
+ setSearchTerm: T,
540
+ sortSettings: s,
541
+ handleSortChange: w,
542
+ createModalOpen: g,
543
+ setCreateModalOpen: _,
544
+ currentPage: f,
545
+ onPageChange: E
546
+ })
547
+ })]
548
+ });
549
+ };
550
+ //#endregion
551
+ //#region src/client/routes/_auth/projects/$projectId/compute/flavors/index.tsx?tsr-split=component
552
+ function X() {
553
+ let { i18n: e, _: t } = B(), { projectId: n } = b.useParams(), { trpcClient: r, setPageTitle: i } = b.useRouteContext();
554
+ return i(e._({ id: "neiJm0" })), /* @__PURE__ */ O(E, { children: [/* @__PURE__ */ D(w, {
555
+ title: e._({ id: "neiJm0" }),
556
+ projectId: n
557
+ }), /* @__PURE__ */ D(Y, {
558
+ project: n,
559
+ client: r
560
+ })] });
561
+ }
562
+ //#endregion
563
+ export { X as component };
564
+
565
+ //# sourceMappingURL=flavors-CT4auvLO.mjs.map