@cobaltcore-dev/aurora 0.4.0 → 0.6.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 (178) hide show
  1. package/README.md +73 -77
  2. package/dist/client/AuroraApp.d.ts +15 -0
  3. package/dist/client/{AuthProvider-D-5Jpa6F.mjs → AuthProvider-Co4d0WzB.mjs} +3 -3
  4. package/dist/client/{AuthProvider-D-5Jpa6F.mjs.map → AuthProvider-Co4d0WzB.mjs.map} +1 -1
  5. package/dist/client/{ContentHeader-BXZoN3B9.mjs → ContentHeader-kx1Th5Sq.mjs} +29 -29
  6. package/dist/client/{ContentHeader-BXZoN3B9.mjs.map → ContentHeader-kx1Th5Sq.mjs.map} +1 -1
  7. package/dist/client/DeleteFlavorModal-C3cb7YiJ.mjs +638 -0
  8. package/dist/client/DeleteFlavorModal-C3cb7YiJ.mjs.map +1 -0
  9. package/dist/client/{EditSecurityGroupModal-DK3WYikA.mjs → EditSecurityGroupModal-CpP54WIK.mjs} +22 -22
  10. package/dist/client/{EditSecurityGroupModal-DK3WYikA.mjs.map → EditSecurityGroupModal-CpP54WIK.mjs.map} +1 -1
  11. package/dist/client/{FiltersInput-OVeIJzIo.mjs → FiltersInput-DxcyR6Bp.mjs} +18 -18
  12. package/dist/client/{FiltersInput-OVeIJzIo.mjs.map → FiltersInput-DxcyR6Bp.mjs.map} +1 -1
  13. package/dist/client/{FloatingIpActionModals-Dok7fJss.mjs → FloatingIpActionModals-BP8RWHbu.mjs} +77 -77
  14. package/dist/client/{FloatingIpActionModals-Dok7fJss.mjs.map → FloatingIpActionModals-BP8RWHbu.mjs.map} +1 -1
  15. package/dist/client/ImageToastNotifications-TZ3EfQg-.mjs +1219 -0
  16. package/dist/client/ImageToastNotifications-TZ3EfQg-.mjs.map +1 -0
  17. package/dist/client/{RouteError-pDEWC_k7.mjs → RouteError-QSV7qOoJ.mjs} +6 -6
  18. package/dist/client/{RouteError-pDEWC_k7.mjs.map → RouteError-QSV7qOoJ.mjs.map} +1 -1
  19. package/dist/client/{SortInput-DXWSqSny.mjs → SortInput-CYv2_Pur.mjs} +6 -6
  20. package/dist/client/{SortInput-DXWSqSny.mjs.map → SortInput-CYv2_Pur.mjs.map} +1 -1
  21. package/dist/client/{_auth-CJj1Cnbm.mjs → _auth-DXJkv9QO.mjs} +3 -3
  22. package/dist/client/{_auth-CJj1Cnbm.mjs.map → _auth-DXJkv9QO.mjs.map} +1 -1
  23. package/dist/client/{_flavorId-BoNcxYmF.mjs → _flavorId-C2x43-6S.mjs} +15 -15
  24. package/dist/client/_flavorId-C2x43-6S.mjs.map +1 -0
  25. package/dist/client/_flavorId-CR8ZUI-P.mjs +194 -0
  26. package/dist/client/_flavorId-CR8ZUI-P.mjs.map +1 -0
  27. package/dist/client/{_floatingIpId-D33bOEmH.mjs → _floatingIpId-BCk41_Lb.mjs} +3 -3
  28. package/dist/client/{_floatingIpId-D33bOEmH.mjs.map → _floatingIpId-BCk41_Lb.mjs.map} +1 -1
  29. package/dist/client/{_floatingIpId-DF_BSJN6.mjs → _floatingIpId-BGrOAmPT.mjs} +48 -48
  30. package/dist/client/{_floatingIpId-DF_BSJN6.mjs.map → _floatingIpId-BGrOAmPT.mjs.map} +1 -1
  31. package/dist/client/_imageId-CvfD832b.mjs +534 -0
  32. package/dist/client/_imageId-CvfD832b.mjs.map +1 -0
  33. package/dist/client/_pcaId-BxBt5DXi.mjs +459 -0
  34. package/dist/client/_pcaId-BxBt5DXi.mjs.map +1 -0
  35. package/dist/client/{_pcaId-BYCoeK6_.mjs → _pcaId-DOHycvCf.mjs} +3 -3
  36. package/dist/client/{_pcaId-BYCoeK6_.mjs.map → _pcaId-DOHycvCf.mjs.map} +1 -1
  37. package/dist/client/_projectId-BDSWnMGj.mjs +46 -0
  38. package/dist/client/_projectId-BDSWnMGj.mjs.map +1 -0
  39. package/dist/client/{_projectId-OW2xkK43.mjs → _projectId-DOgwFiqD.mjs} +3 -3
  40. package/dist/client/{_projectId-OW2xkK43.mjs.map → _projectId-DOgwFiqD.mjs.map} +1 -1
  41. package/dist/client/_projectId-DS4nR59B.mjs +299 -0
  42. package/dist/client/_projectId-DS4nR59B.mjs.map +1 -0
  43. package/dist/client/{_projectId-BwLMEMGC.mjs → _projectId-MxcHrXW4.mjs} +21 -21
  44. package/dist/client/_projectId-MxcHrXW4.mjs.map +1 -0
  45. package/dist/client/{_securityGroupId-B-Z-CzLp.mjs → _securityGroupId-CJJanWiY.mjs} +3 -3
  46. package/dist/client/{_securityGroupId-B-Z-CzLp.mjs.map → _securityGroupId-CJJanWiY.mjs.map} +1 -1
  47. package/dist/client/{_securityGroupId-B1bOYRbX.mjs → _securityGroupId-KKw4RPdH.mjs} +445 -446
  48. package/dist/client/{_securityGroupId-B1bOYRbX.mjs.map → _securityGroupId-KKw4RPdH.mjs.map} +1 -1
  49. package/dist/client/{containers-BjWqjNOx.mjs → _storageType-4wSxI__0.mjs} +19 -16
  50. package/dist/client/_storageType-4wSxI__0.mjs.map +1 -0
  51. package/dist/client/_storageType-DYjo-6ej.mjs +3243 -0
  52. package/dist/client/_storageType-DYjo-6ej.mjs.map +1 -0
  53. package/dist/client/_storageType-zeSZe--V.mjs +7 -0
  54. package/dist/client/_storageType-zeSZe--V.mjs.map +1 -0
  55. package/dist/client/about-Bo9vxGHy.mjs +92 -0
  56. package/dist/client/{about-DLn1ShhF.mjs.map → about-Bo9vxGHy.mjs.map} +1 -1
  57. package/dist/client/aurora-DDzsst74.mjs +19 -0
  58. package/dist/client/{aurora-CRcxVUCo.mjs.map → aurora-DDzsst74.mjs.map} +1 -1
  59. package/dist/client/{build-BJDfnAyi.mjs → build-DeJcDjPi.mjs} +3802 -3376
  60. package/dist/client/build-DeJcDjPi.mjs.map +1 -0
  61. package/dist/client/{buildFilterParams-TeyosGyK.mjs → buildFilterParams-DoZzMKX9.mjs} +1 -1
  62. package/dist/client/{buildFilterParams-TeyosGyK.mjs.map → buildFilterParams-DoZzMKX9.mjs.map} +1 -1
  63. package/dist/client/{cn-C3laVXMm.mjs → cn-DM4Cy3jv.mjs} +1 -1
  64. package/dist/client/{cn-C3laVXMm.mjs.map → cn-DM4Cy3jv.mjs.map} +1 -1
  65. package/dist/client/constants-BmcGYeR-.mjs +153 -0
  66. package/dist/client/constants-BmcGYeR-.mjs.map +1 -0
  67. package/dist/client/{flavors-D8oElC2K.mjs → flavors-BxFVqgnb.mjs} +2 -2
  68. package/dist/client/{flavors-D8oElC2K.mjs.map → flavors-BxFVqgnb.mjs.map} +1 -1
  69. package/dist/client/flavors-CfdgjsZY.mjs +632 -0
  70. package/dist/client/flavors-CfdgjsZY.mjs.map +1 -0
  71. package/dist/client/{flavors-BXPYAFyQ.mjs → flavors-DWMZ6TuJ.mjs} +2 -2
  72. package/dist/client/{flavors-BXPYAFyQ.mjs.map → flavors-DWMZ6TuJ.mjs.map} +1 -1
  73. package/dist/client/{floatingips-Fa6ocNUu.mjs → floatingips-ByRb82wS.mjs} +138 -139
  74. package/dist/client/{floatingips-Fa6ocNUu.mjs.map → floatingips-ByRb82wS.mjs.map} +1 -1
  75. package/dist/client/{formatBytes-tQBEnPoL.mjs → formatBytes-CZv_XyCY.mjs} +1 -1
  76. package/dist/client/{formatBytes-tQBEnPoL.mjs.map → formatBytes-CZv_XyCY.mjs.map} +1 -1
  77. package/dist/client/{helpers--JWXi40U.mjs → helpers-1PpYf-fC.mjs} +1 -1
  78. package/dist/client/{helpers--JWXi40U.mjs.map → helpers-1PpYf-fC.mjs.map} +1 -1
  79. package/dist/client/hooks-dSArr2Ca.mjs +2 -0
  80. package/dist/client/images-CKqIXUq52.mjs +1873 -0
  81. package/dist/client/images-CKqIXUq52.mjs.map +1 -0
  82. package/dist/client/{images-tYfyOkX8.mjs → images-C_dX7nY6.mjs} +3 -3
  83. package/dist/client/{images-tYfyOkX8.mjs.map → images-C_dX7nY6.mjs.map} +1 -1
  84. package/dist/client/{images-CTLCY-yY.mjs → images-CenluYV8.mjs} +2 -2
  85. package/dist/client/{images-CTLCY-yY.mjs.map → images-CenluYV8.mjs.map} +1 -1
  86. package/dist/client/{images-DM9I8G0p.mjs → images-NBf2bV43.mjs} +2 -2
  87. package/dist/client/{images-DM9I8G0p.mjs.map → images-NBf2bV43.mjs.map} +1 -1
  88. package/dist/client/index.js +428 -477
  89. package/dist/client/index.js.map +1 -1
  90. package/dist/client/{md-BivyCkGC.mjs → md-CYTrL5dq.mjs} +58 -22
  91. package/dist/client/{md-BivyCkGC.mjs.map → md-CYTrL5dq.mjs.map} +1 -1
  92. package/dist/client/{network-rYLHyf15.mjs → network-DuZm76BZ.mjs} +2 -2
  93. package/dist/client/{network-rYLHyf15.mjs.map → network-DuZm76BZ.mjs.map} +1 -1
  94. package/dist/client/objects-BJM6YeuF.mjs +5708 -0
  95. package/dist/client/objects-BJM6YeuF.mjs.map +1 -0
  96. package/dist/client/objects-gxSjvbvF.mjs +101 -0
  97. package/dist/client/objects-gxSjvbvF.mjs.map +1 -0
  98. package/dist/client/objects-o2Cj_ndZ.mjs +8 -0
  99. package/dist/client/objects-o2Cj_ndZ.mjs.map +1 -0
  100. package/dist/client/{pca-COmKvp3J.mjs → pca-Bl8NmoVZ.mjs} +2 -2
  101. package/dist/client/{pca-COmKvp3J.mjs.map → pca-Bl8NmoVZ.mjs.map} +1 -1
  102. package/dist/client/pca-RSiWpJs9.mjs +182 -0
  103. package/dist/client/pca-RSiWpJs9.mjs.map +1 -0
  104. package/dist/client/projects-CgclWI16.mjs +105 -0
  105. package/dist/client/projects-CgclWI16.mjs.map +1 -0
  106. package/dist/client/{projects-DI_L4oDw.mjs → projects-D2iewAzu.mjs} +2 -2
  107. package/dist/client/{projects-DI_L4oDw.mjs.map → projects-D2iewAzu.mjs.map} +1 -1
  108. package/dist/client/{projects-Dl5XkXUP.mjs → projects-pe2_dCnV.mjs} +3 -3
  109. package/dist/client/{projects-Dl5XkXUP.mjs.map → projects-pe2_dCnV.mjs.map} +1 -1
  110. package/dist/client/{projects-HoQ0gE5Y.mjs → projects-yiK0HGSA.mjs} +2 -2
  111. package/dist/client/{projects-HoQ0gE5Y.mjs.map → projects-yiK0HGSA.mjs.map} +1 -1
  112. package/dist/client/{securitygroups-BjkmHk2J.mjs → securitygroups-DahZkVYQ.mjs} +139 -140
  113. package/dist/client/{securitygroups-BjkmHk2J.mjs.map → securitygroups-DahZkVYQ.mjs.map} +1 -1
  114. package/dist/client/{trpcClient-BxguzNYF.mjs → trpcClient-BzPUgiM2.mjs} +1 -1
  115. package/dist/client/{trpcClient-BxguzNYF.mjs.map → trpcClient-BzPUgiM2.mjs.map} +1 -1
  116. package/dist/client/{useErrorTranslation-TZVwIAzq.mjs → useErrorTranslation-Dc0eE8Zt.mjs} +1 -1
  117. package/dist/client/{useErrorTranslation-TZVwIAzq.mjs.map → useErrorTranslation-Dc0eE8Zt.mjs.map} +1 -1
  118. package/dist/client/useListWithFiltering-DaYcu5AB.mjs +157 -0
  119. package/dist/client/useListWithFiltering-DaYcu5AB.mjs.map +1 -0
  120. package/dist/client/{useModal-DxxlilRm.mjs → useModal-DCs1OJh7.mjs} +1 -1
  121. package/dist/client/{useModal-DxxlilRm.mjs.map → useModal-DCs1OJh7.mjs.map} +1 -1
  122. package/dist/client/{useProjectId-OQv2KBbG.mjs → useProjectId-DBc5lpoU.mjs} +1 -1
  123. package/dist/client/{useProjectId-OQv2KBbG.mjs.map → useProjectId-DBc5lpoU.mjs.map} +1 -1
  124. package/dist/server/index.js +1285 -435
  125. package/package.json +5 -4
  126. package/dist/client/DeleteFlavorModal-BusYn32r.mjs +0 -629
  127. package/dist/client/DeleteFlavorModal-BusYn32r.mjs.map +0 -1
  128. package/dist/client/ImageToastNotifications-BG9LPnXf.mjs +0 -1267
  129. package/dist/client/ImageToastNotifications-BG9LPnXf.mjs.map +0 -1
  130. package/dist/client/ListToolbar-BojRTNbo.mjs +0 -129
  131. package/dist/client/ListToolbar-BojRTNbo.mjs.map +0 -1
  132. package/dist/client/_flavorId-BRonXvCo.mjs +0 -188
  133. package/dist/client/_flavorId-BRonXvCo.mjs.map +0 -1
  134. package/dist/client/_flavorId-BoNcxYmF.mjs.map +0 -1
  135. package/dist/client/_imageId-BL0I5_pv.mjs +0 -527
  136. package/dist/client/_imageId-BL0I5_pv.mjs.map +0 -1
  137. package/dist/client/_pcaId-CbBhBrX1.mjs +0 -466
  138. package/dist/client/_pcaId-CbBhBrX1.mjs.map +0 -1
  139. package/dist/client/_projectId-5NiasyXm.mjs +0 -26
  140. package/dist/client/_projectId-5NiasyXm.mjs.map +0 -1
  141. package/dist/client/_projectId-BwLMEMGC.mjs.map +0 -1
  142. package/dist/client/_projectId-D35MN1kY.mjs +0 -316
  143. package/dist/client/_projectId-D35MN1kY.mjs.map +0 -1
  144. package/dist/client/about-DLn1ShhF.mjs +0 -92
  145. package/dist/client/aurora-CRcxVUCo.mjs +0 -19
  146. package/dist/client/build-BJDfnAyi.mjs.map +0 -1
  147. package/dist/client/constants-B-P2r5F1.mjs +0 -128
  148. package/dist/client/constants-B-P2r5F1.mjs.map +0 -1
  149. package/dist/client/containers-BjWqjNOx.mjs.map +0 -1
  150. package/dist/client/containers-DsRWc1L5.mjs +0 -7
  151. package/dist/client/containers-DsRWc1L5.mjs.map +0 -1
  152. package/dist/client/containers-J7WFA18U.mjs +0 -3120
  153. package/dist/client/containers-J7WFA18U.mjs.map +0 -1
  154. package/dist/client/flavors-qvgPSI7J.mjs +0 -613
  155. package/dist/client/flavors-qvgPSI7J.mjs.map +0 -1
  156. package/dist/client/hooks-DEjb9d1F.mjs +0 -2
  157. package/dist/client/images-CSFfefAu.mjs +0 -1901
  158. package/dist/client/images-CSFfefAu.mjs.map +0 -1
  159. package/dist/client/objects-BciXwZ00.mjs +0 -86
  160. package/dist/client/objects-BciXwZ00.mjs.map +0 -1
  161. package/dist/client/objects-Cdew99tK.mjs +0 -8
  162. package/dist/client/objects-Cdew99tK.mjs.map +0 -1
  163. package/dist/client/objects-DaElrban.mjs +0 -5340
  164. package/dist/client/objects-DaElrban.mjs.map +0 -1
  165. package/dist/client/overview-BMhjFMIV.mjs +0 -15
  166. package/dist/client/overview-BMhjFMIV.mjs.map +0 -1
  167. package/dist/client/overview-BYIRj7_X.mjs +0 -15
  168. package/dist/client/overview-BYIRj7_X.mjs.map +0 -1
  169. package/dist/client/overview-DRCKNBH2.mjs +0 -15
  170. package/dist/client/overview-DRCKNBH2.mjs.map +0 -1
  171. package/dist/client/overview-urYLOVQE.mjs +0 -173
  172. package/dist/client/overview-urYLOVQE.mjs.map +0 -1
  173. package/dist/client/pca-oc7J0_Xd.mjs +0 -167
  174. package/dist/client/pca-oc7J0_Xd.mjs.map +0 -1
  175. package/dist/client/projects-BUabCzvw.mjs +0 -95
  176. package/dist/client/projects-BUabCzvw.mjs.map +0 -1
  177. package/dist/client/useListWithFiltering-CbhHJO4V.mjs +0 -32
  178. package/dist/client/useListWithFiltering-CbhHJO4V.mjs.map +0 -1
@@ -0,0 +1,632 @@
1
+ import { B as e, F as t, G as n, H as r, P as i, Q as a, R as o, U as s, a as c, at as l, ct as u, it as d, k as f, n as p, ot as m, q as h, r as g, s as _, tt as v, w as y, x as b } from "./build-DeJcDjPi.mjs";
2
+ import { t as x } from "./useErrorTranslation-Dc0eE8Zt.mjs";
3
+ import { t as S } from "./flavors-BxFVqgnb.mjs";
4
+ import { t as C } from "./ContentHeader-kx1Th5Sq.mjs";
5
+ import { n as w, r as T, t as E } from "./DeleteFlavorModal-C3cb7YiJ.mjs";
6
+ import { t as D } from "./SortInput-CYv2_Pur.mjs";
7
+ import { Fragment as O, jsx as k, jsxs as A } from "react/jsx-runtime";
8
+ import { Suspense as j, startTransition as M, use as N, useCallback as P, useEffect as F, useRef as I, useState as L } from "react";
9
+ import { useNavigate as R, useParams as z, useSearch as B } from "@tanstack/react-router";
10
+ import { TRPCClientError as V } from "@trpc/client";
11
+ import { Trans as H, useLingui as U } from "@lingui/react";
12
+ import { ErrorBoundary as W } from "react-error-boundary";
13
+ //#region src/client/routes/_auth/projects/$projectId/compute/-components/Flavors/-components/FlavorListContainer.tsx
14
+ var G = ({ flavors: e, isLoading: r, client: s, project: c, onFlavorDeleted: l, canDeleteFlavor: u, canMangageAccess: p, canManageSpecs: m, canListSpecs: g, currentPage: _ = 1, totalPages: x = 1, onPageChange: S }) => {
15
+ let { i18n: C, _: D } = U(), j = R(), [M, N] = L(!1), [P, F] = L(!1), [I, B] = L(!1), [V, W] = L(null), { projectId: G } = z({ from: "/_auth/projects/$projectId/compute/flavors/" }), K = (e) => {
16
+ W(e), N(!0);
17
+ }, q = (e) => {
18
+ W(e), F(!0);
19
+ }, J = (e) => {
20
+ W(e), B(!0);
21
+ }, Y = () => {
22
+ N(!1), W(null);
23
+ };
24
+ return r ? /*#__PURE__*/ k("div", {
25
+ "data-testid": "loading",
26
+ children: /*#__PURE__*/ k("div", {
27
+ "data-testid": "loading",
28
+ children: /*#__PURE__*/ k(y, { children: /*#__PURE__*/ k(n, {
29
+ colSpan: 3,
30
+ children: /*#__PURE__*/ A(a, {
31
+ distribution: "center",
32
+ alignment: "center",
33
+ children: [/*#__PURE__*/ k(o, { variant: "primary" }), /*#__PURE__*/ k(H, { id: "Z3FXyt" })]
34
+ })
35
+ }) })
36
+ })
37
+ }) : !e || e.length === 0 ? /*#__PURE__*/ k(f, {
38
+ columns: 7,
39
+ className: "flavors",
40
+ "data-testid": "no-flavors",
41
+ children: /*#__PURE__*/ k(y, { children: /*#__PURE__*/ A(n, {
42
+ colSpan: 7,
43
+ children: [/*#__PURE__*/ k(h, { children: /*#__PURE__*/ k(H, { id: "PiyQJ/" }) }), /*#__PURE__*/ k("p", { children: /*#__PURE__*/ k(H, { id: "KSW/GC" }) })]
44
+ }) })
45
+ }) : /*#__PURE__*/ A(O, { children: [
46
+ /*#__PURE__*/ A(f, {
47
+ columns: 7,
48
+ minContentColumns: [6],
49
+ className: "flavors",
50
+ "data-testid": "flavors-table",
51
+ children: [/*#__PURE__*/ A(y, { children: [
52
+ /*#__PURE__*/ k(t, { children: /*#__PURE__*/ k(H, { id: "6YtxFj" }) }),
53
+ /*#__PURE__*/ k(t, { children: /*#__PURE__*/ k(H, { id: "k5nYwm" }) }),
54
+ /*#__PURE__*/ k(t, { children: /*#__PURE__*/ k(H, { id: "K+e/0e" }) }),
55
+ /*#__PURE__*/ k(t, { children: /*#__PURE__*/ k(H, { id: "n0ZttO" }) }),
56
+ /*#__PURE__*/ k(t, { children: /*#__PURE__*/ k(H, { id: "p4nMut" }) }),
57
+ /*#__PURE__*/ k(t, { children: /*#__PURE__*/ k(H, { id: "HyyJ83" }) }),
58
+ /*#__PURE__*/ k(t, {})
59
+ ] }), e.map((e) => /*#__PURE__*/ A(y, {
60
+ "data-testid": `flavor-row-${e.id}`,
61
+ onClick: () => j({
62
+ to: "/projects/$projectId/compute/flavors/$flavorId",
63
+ params: {
64
+ projectId: G,
65
+ flavorId: e.id
66
+ }
67
+ }),
68
+ children: [
69
+ /*#__PURE__*/ k(n, { children: e.name || e.id }),
70
+ /*#__PURE__*/ k(n, { children: e.vcpus || "–" }),
71
+ /*#__PURE__*/ k(n, { children: e.ram || "–" }),
72
+ /*#__PURE__*/ k(n, { children: e.disk || "–" }),
73
+ /*#__PURE__*/ k(n, { children: e.swap || "–" }),
74
+ /*#__PURE__*/ k(n, { children: e["os-flavor-access:is_public"] === !1 ? C._({ id: "zwBp5t" }) : C._({ id: "7d1a0d" }) }),
75
+ /*#__PURE__*/ k(n, {
76
+ onClick: (e) => e.stopPropagation(),
77
+ children: /*#__PURE__*/ k(i, { children: /*#__PURE__*/ A(v, { children: [
78
+ /*#__PURE__*/ k(d, {
79
+ label: C._({ id: "URmyfc" }),
80
+ onClick: () => j({
81
+ to: "/projects/$projectId/compute/flavors/$flavorId",
82
+ params: {
83
+ projectId: G,
84
+ flavorId: e.id
85
+ }
86
+ })
87
+ }),
88
+ (m || g) && /*#__PURE__*/ k(d, {
89
+ label: m ? C._({ id: "SIfYq6" }) : C._({ id: "6GBt0m" }),
90
+ onClick: () => q(e)
91
+ }),
92
+ p && /*#__PURE__*/ k(d, {
93
+ label: C._({ id: "cWbW6w" }),
94
+ onClick: () => J(e),
95
+ disabled: e["os-flavor-access:is_public"] !== !1
96
+ }),
97
+ u && /*#__PURE__*/ k(d, {
98
+ label: C._({ id: "JT3I1g" }),
99
+ onClick: () => K(e)
100
+ })
101
+ ] }) })
102
+ })
103
+ ]
104
+ }, e.id))]
105
+ }),
106
+ x > 1 && /*#__PURE__*/ k("div", {
107
+ className: "flex justify-center py-4",
108
+ children: /*#__PURE__*/ k(b, {
109
+ variant: "input",
110
+ currentPage: _,
111
+ pages: x,
112
+ onPressPrevious: () => S?.(Math.max(_ - 1, 1)),
113
+ onPressNext: () => S?.(Math.min(_ + 1, x)),
114
+ onSelectChange: (e) => S?.(e)
115
+ })
116
+ }),
117
+ /*#__PURE__*/ k(E, {
118
+ client: s,
119
+ isOpen: M,
120
+ onClose: Y,
121
+ project: c,
122
+ flavor: V,
123
+ onSuccess: () => {
124
+ V && l && l(V.name || ""), Y();
125
+ }
126
+ }),
127
+ /*#__PURE__*/ k(T, {
128
+ client: s,
129
+ isOpen: P,
130
+ onClose: () => F(!1),
131
+ project: c,
132
+ flavor: V,
133
+ canEdit: m
134
+ }),
135
+ /*#__PURE__*/ k(w, {
136
+ client: s,
137
+ isOpen: I,
138
+ onClose: () => B(!1),
139
+ project: c,
140
+ flavor: V
141
+ })
142
+ ] });
143
+ }, K = (e, t, n) => {
144
+ switch (e) {
145
+ case "id":
146
+ if (!t) return;
147
+ {
148
+ let e = String(t).trim();
149
+ return /^[a-zA-Z0-9.\-_]*$/.test(e) ? void 0 : n({ id: "AX9Juz" });
150
+ }
151
+ case "name": {
152
+ let e = String(t || "").trim();
153
+ return e.length >= 2 && e.length <= 50 ? void 0 : n({ id: "zDS0JC" });
154
+ }
155
+ case "vcpus": {
156
+ let e = Number(t);
157
+ return !isNaN(e) && e >= 1 ? void 0 : n({ id: "uSdnuQ" });
158
+ }
159
+ case "ram": {
160
+ let e = Number(t);
161
+ return !isNaN(e) && e >= 128 ? void 0 : n({ id: "g1IxCo" });
162
+ }
163
+ case "disk": {
164
+ let e = Number(t);
165
+ return !isNaN(e) && e >= 0 ? void 0 : n({ id: "AJRhSM" });
166
+ }
167
+ case "swap":
168
+ if (t === "" || t == null) return;
169
+ {
170
+ let e = Number(t);
171
+ return !isNaN(e) && e >= 0 ? void 0 : n({ id: "g3BSCe" });
172
+ }
173
+ case "rxtx_factor": {
174
+ let e = Number(t);
175
+ return !isNaN(e) && e >= 1 ? void 0 : n({ id: "PIbPRX" });
176
+ }
177
+ case "description": return t ? String(t).length < 65535 ? void 0 : n({ id: "uuKb0T" }) : void 0;
178
+ case "OS-FLV-EXT-DATA:ephemeral": {
179
+ let e = Number(t);
180
+ return !isNaN(e) && e >= 0 ? void 0 : n({ id: "tLerHy" });
181
+ }
182
+ case "os-flavor-access:is_public": return t == null || typeof t == "boolean" || typeof t == "string" && (t === "true" || t === "false") ? void 0 : n({ id: "MmtQVF" });
183
+ default: return;
184
+ }
185
+ }, q = (e) => {
186
+ let t = {
187
+ name: String(e.name),
188
+ vcpus: Number(e.vcpus),
189
+ ram: Number(e.ram),
190
+ disk: Number(e.disk)
191
+ }, n = (e) => e != null && e !== "" && String(e).trim() !== "", r = (e) => e != null && e !== "" && String(e).trim() !== "" && !isNaN(Number(e));
192
+ 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;
193
+ }, J = ({ client: t, isOpen: n, onClose: i, project: l, onSuccess: u }) => {
194
+ let { i18n: d, _: f } = U(), { translateError: p } = x(), [h, v] = L({ "os-flavor-access:is_public": !0 }), [y, b] = L({}), [S, C] = L(!1), [w, T] = L(null), E = (e) => {
195
+ let { name: t, value: n, type: r, checked: i } = e.target;
196
+ v((e) => ({
197
+ ...e,
198
+ [t]: r === "checkbox" ? i : n
199
+ })), w && T(null);
200
+ }, D = (e, t) => {
201
+ v((n) => ({
202
+ ...n,
203
+ [e]: t
204
+ })), w && T(null);
205
+ }, O = (e) => {
206
+ let { name: t, value: n } = e.target, r = K(t, n, f);
207
+ b((e) => ({
208
+ ...e,
209
+ [t]: r
210
+ }));
211
+ }, j = async (e) => {
212
+ e.preventDefault(), T(null);
213
+ let n = {};
214
+ if ([
215
+ "name",
216
+ "vcpus",
217
+ "ram",
218
+ "disk"
219
+ ].forEach((e) => {
220
+ let t = K(e, h[e], f);
221
+ t && (n[e] = t);
222
+ }), [
223
+ "id",
224
+ "swap",
225
+ "OS-FLV-EXT-DATA:ephemeral",
226
+ "rxtx_factor",
227
+ "description",
228
+ "os-flavor-access:is_public"
229
+ ].forEach((e) => {
230
+ let t = h[e];
231
+ if (t !== void 0 && t !== "" && t !== null) {
232
+ let r = K(e, t, f);
233
+ r && (n[e] = r);
234
+ }
235
+ }), Object.keys(n).length > 0) {
236
+ b(n), T(d._({ id: "CBFSfX" }));
237
+ return;
238
+ }
239
+ try {
240
+ C(!0);
241
+ let e = q(h);
242
+ await t.compute.createFlavor.mutate({
243
+ project_id: l,
244
+ flavor: e
245
+ }), u(e.name), M();
246
+ } catch (e) {
247
+ T(e?.message ? p(e.message) : d._({ id: "OxDN2m" }));
248
+ } finally {
249
+ C(!1);
250
+ }
251
+ }, M = () => {
252
+ v({ "os-flavor-access:is_public": !0 }), b({}), T(null), i();
253
+ };
254
+ return /*#__PURE__*/ A(g, {
255
+ onCancel: M,
256
+ size: "large",
257
+ title: d._({ id: "Rlp5zj" }),
258
+ open: n,
259
+ onConfirm: j,
260
+ cancelButtonLabel: d._({ id: "dEgA5A" }),
261
+ confirmButtonLabel: d._({ id: "wEfZld" }),
262
+ children: [S && /*#__PURE__*/ k(a, {
263
+ distribution: "center",
264
+ alignment: "center",
265
+ children: /*#__PURE__*/ k(o, { variant: "primary" })
266
+ }), !S && /*#__PURE__*/ A(c, { children: [w && /*#__PURE__*/ k(_, { children: /*#__PURE__*/ k(e, {
267
+ onDismiss: () => {
268
+ T(null);
269
+ },
270
+ text: w,
271
+ variant: "error"
272
+ }) }), /*#__PURE__*/ A(r, { children: [
273
+ /*#__PURE__*/ k(_, { children: /*#__PURE__*/ k(s, {
274
+ id: "id",
275
+ name: "id",
276
+ label: d._({ id: "s2ubkU" }),
277
+ value: h.id || "",
278
+ onChange: E,
279
+ onBlur: O,
280
+ errortext: y.id
281
+ }) }),
282
+ /*#__PURE__*/ k(_, { children: /*#__PURE__*/ k(s, {
283
+ id: "name",
284
+ name: "name",
285
+ label: d._({ id: "lWxDDh" }),
286
+ value: h.name || "",
287
+ onChange: E,
288
+ onBlur: O,
289
+ errortext: y.name,
290
+ required: !0
291
+ }) }),
292
+ /*#__PURE__*/ k(_, { children: /*#__PURE__*/ k(s, {
293
+ id: "description",
294
+ name: "description",
295
+ label: d._({ id: "Nu4oKW" }),
296
+ value: h.description || "",
297
+ onChange: E,
298
+ onBlur: O,
299
+ errortext: y.description
300
+ }) }),
301
+ /*#__PURE__*/ k(_, { children: /*#__PURE__*/ k(s, {
302
+ id: "vcpus",
303
+ name: "vcpus",
304
+ label: d._({ id: "MZGbkp" }),
305
+ value: String(h.vcpus || ""),
306
+ onChange: (e) => D("vcpus", Number(e.target.value)),
307
+ onBlur: O,
308
+ errortext: y.vcpus,
309
+ type: "number",
310
+ required: !0
311
+ }) }),
312
+ /*#__PURE__*/ k(_, { children: /*#__PURE__*/ k(s, {
313
+ id: "ram",
314
+ name: "ram",
315
+ label: d._({ id: "K+e/0e" }),
316
+ value: String(h.ram || ""),
317
+ onChange: (e) => D("ram", Number(e.target.value)),
318
+ onBlur: O,
319
+ errortext: y.ram,
320
+ type: "number",
321
+ required: !0
322
+ }) }),
323
+ /*#__PURE__*/ k(_, { children: /*#__PURE__*/ k(s, {
324
+ id: "disk",
325
+ name: "disk",
326
+ label: d._({ id: "AxZkIr" }),
327
+ value: String(h.disk || ""),
328
+ onChange: (e) => D("disk", Number(e.target.value)),
329
+ onBlur: O,
330
+ errortext: y.disk,
331
+ type: "number",
332
+ required: !0
333
+ }) }),
334
+ /*#__PURE__*/ k(_, { children: /*#__PURE__*/ k(s, {
335
+ id: "OS-FLV-EXT-DATA:ephemeral",
336
+ name: "OS-FLV-EXT-DATA:ephemeral",
337
+ label: d._({ id: "X2OnDx" }),
338
+ value: String(h["OS-FLV-EXT-DATA:ephemeral"] || ""),
339
+ onChange: (e) => D("OS-FLV-EXT-DATA:ephemeral", Number(e.target.value)),
340
+ onBlur: O,
341
+ errortext: y["OS-FLV-EXT-DATA:ephemeral"],
342
+ type: "number"
343
+ }) }),
344
+ /*#__PURE__*/ k(_, { children: /*#__PURE__*/ k(s, {
345
+ id: "swap",
346
+ name: "swap",
347
+ label: d._({ id: "p4nMut" }),
348
+ value: String(h.swap || ""),
349
+ onChange: (e) => D("swap", e.target.value ? Number(e.target.value) : void 0),
350
+ onBlur: O,
351
+ errortext: y.swap,
352
+ type: "number"
353
+ }) }),
354
+ /*#__PURE__*/ k(_, { children: /*#__PURE__*/ k(s, {
355
+ id: "rxtx_factor",
356
+ name: "rxtx_factor",
357
+ label: d._({ id: "u5HztT" }),
358
+ defaultValue: 1,
359
+ value: String(h.rxtx_factor || ""),
360
+ onChange: (e) => D("rxtx_factor", Number(e.target.value)),
361
+ onBlur: O,
362
+ errortext: y.rxtx_factor,
363
+ type: "number"
364
+ }) }),
365
+ /*#__PURE__*/ k(_, { children: /*#__PURE__*/ k(m, {
366
+ name: "os-flavor-access:is_public",
367
+ label: d._({ id: "vbajgL" }),
368
+ helptext: d._({ id: "3nh/7E" }),
369
+ checked: !!h["os-flavor-access:is_public"],
370
+ onChange: E
371
+ }) })
372
+ ] })] })]
373
+ });
374
+ }, Y = 50, X = (e, t, n, r, i) => e.compute.getFlavorsByProjectId.query({
375
+ project_id: t,
376
+ sortBy: n,
377
+ sortDirection: r,
378
+ searchTerm: i
379
+ }).then((e) => ({
380
+ ...e,
381
+ listError: void 0
382
+ })).catch((e) => {
383
+ if (e instanceof V && e.data?.code === "FORBIDDEN") return {
384
+ flavors: [],
385
+ privateFlavorError: void 0,
386
+ listError: e.message
387
+ };
388
+ throw e;
389
+ }), Z = (e, t) => e.compute.canUser.query({
390
+ project_id: t,
391
+ permission: [
392
+ "flavors:create",
393
+ "flavors:delete",
394
+ "flavors:list_projects",
395
+ "flavor_specs:create",
396
+ "flavor_specs:delete",
397
+ "flavor_specs:list"
398
+ ]
399
+ }).then(([e, t, n, r, i, a]) => ({
400
+ canCreate: e,
401
+ canDelete: t,
402
+ canManageAccess: n,
403
+ canManageSpecs: r || i,
404
+ canListSpecs: a
405
+ }));
406
+ function Q({ flavorsPromise: t, permissionsPromise: n, client: r, project: i, onFlavorDeleted: o, onFlavorCreated: s, searchTerm: c, setSearchTerm: d, sortSettings: f, handleSortChange: m, createModalOpen: h, setCreateModalOpen: g, currentPage: _, onPageChange: v }) {
407
+ let { i18n: y, _: b } = U(), { flavors: x, privateFlavorError: S, listError: C } = N(t), w = N(n), [T, E] = L(c), j = I(void 0);
408
+ if (F(() => () => clearTimeout(j.current), []), C) return /*#__PURE__*/ k("p", { children: C });
409
+ let M = Math.max(1, Math.ceil(x.length / Y)), P = Math.min(_, M), R = x.slice((P - 1) * Y, P * Y);
410
+ return F(() => {
411
+ _ > M && v(1);
412
+ }, [
413
+ M,
414
+ _,
415
+ v
416
+ ]), /*#__PURE__*/ A(O, { children: [
417
+ /*#__PURE__*/ k(J, {
418
+ client: r,
419
+ isOpen: h,
420
+ project: i,
421
+ onClose: () => g(!1),
422
+ onSuccess: s
423
+ }),
424
+ S && /*#__PURE__*/ k(e, {
425
+ className: "mb-4",
426
+ text: y._({ id: "3oc18/" }),
427
+ variant: "warning"
428
+ }),
429
+ /*#__PURE__*/ A(a, {
430
+ distribution: "end",
431
+ alignment: "center",
432
+ gap: "2",
433
+ className: "pb-2",
434
+ children: [/*#__PURE__*/ k(a, {
435
+ gap: "0.5",
436
+ children: /*#__PURE__*/ k(D, {
437
+ options: f.options,
438
+ sortBy: f.sortBy,
439
+ sortDirection: f.sortDirection ?? "asc",
440
+ onSortByChange: (e) => m({
441
+ ...f,
442
+ sortBy: e,
443
+ sortDirection: f.sortDirection
444
+ }),
445
+ onSortDirectionChange: (e) => m({
446
+ ...f,
447
+ sortDirection: e
448
+ })
449
+ })
450
+ }), w.canCreate && /*#__PURE__*/ k(u, {
451
+ variant: "primary",
452
+ label: y._({ id: "Rlp5zj" }),
453
+ onClick: () => g(!0)
454
+ })]
455
+ }),
456
+ /*#__PURE__*/ k(l, { children: /*#__PURE__*/ k(a, {
457
+ distribution: "end",
458
+ alignment: "center",
459
+ children: /*#__PURE__*/ k(p, {
460
+ placeholder: y._({ id: "U0sPCo" }),
461
+ "data-testid": "searchbar",
462
+ value: T,
463
+ onInput: (e) => {
464
+ let t = e.currentTarget.value;
465
+ E(t), clearTimeout(j.current), j.current = window.setTimeout(() => d(t), 500);
466
+ },
467
+ onSearch: (e) => {
468
+ clearTimeout(j.current), d(typeof e == "string" ? e : "");
469
+ },
470
+ onClear: () => {
471
+ clearTimeout(j.current), E(""), d("");
472
+ }
473
+ })
474
+ }) }),
475
+ /*#__PURE__*/ k(G, {
476
+ flavors: R,
477
+ isLoading: !1,
478
+ client: r,
479
+ project: i,
480
+ onFlavorDeleted: o,
481
+ canDeleteFlavor: w.canDelete,
482
+ canMangageAccess: w.canManageAccess,
483
+ canManageSpecs: w.canManageSpecs,
484
+ canListSpecs: w.canListSpecs,
485
+ currentPage: P,
486
+ totalPages: M,
487
+ onPageChange: v
488
+ })
489
+ ] });
490
+ }
491
+ var $ = ({ client: t, project: n }) => {
492
+ let { i18n: r, _: i } = U(), s = R(), c = B({ strict: !1 }), [l, u] = L({
493
+ options: [
494
+ {
495
+ label: r._({ id: "6YtxFj" }),
496
+ value: "name"
497
+ },
498
+ {
499
+ label: r._({ id: "MZGbkp" }),
500
+ value: "vcpus"
501
+ },
502
+ {
503
+ label: r._({ id: "RGhYAo" }),
504
+ value: "ram"
505
+ },
506
+ {
507
+ label: r._({ id: "cJDQIO" }),
508
+ value: "disk"
509
+ },
510
+ {
511
+ label: r._({ id: "vH2C/2" }),
512
+ value: "swap"
513
+ }
514
+ ],
515
+ sortBy: c.sortBy || "name",
516
+ sortDirection: c.sortDirection || "asc"
517
+ }), [d, f] = L(c.search || ""), p = c.page ?? 1, [m, h] = L(), [g, _] = L(!1), [v, y] = L(() => X(t, n, l.sortBy, l.sortDirection, d)), [b] = L(() => Z(t, n)), x = () => {
518
+ M(() => {
519
+ y(X(t, n, l.sortBy, l.sortDirection, d));
520
+ });
521
+ }, S = (e) => {
522
+ h({
523
+ message: r._({
524
+ id: "20Kpaw",
525
+ values: { flavorName: e }
526
+ }),
527
+ timestamp: Date.now()
528
+ }), setTimeout(() => h(void 0), 5e3), x();
529
+ }, C = (e) => {
530
+ h({
531
+ message: r._({
532
+ id: "eChIh7",
533
+ values: { flavorName: e }
534
+ }),
535
+ timestamp: Date.now()
536
+ }), setTimeout(() => h(void 0), 5e3), x();
537
+ }, w = (e) => {
538
+ let r = {
539
+ options: e.options,
540
+ sortBy: e.sortBy?.toString() || "name",
541
+ sortDirection: e.sortDirection || "asc"
542
+ };
543
+ u(r), s({
544
+ search: (e) => ({
545
+ ...e,
546
+ sortBy: r.sortBy,
547
+ sortDirection: r.sortDirection,
548
+ page: void 0
549
+ }),
550
+ replace: !0
551
+ }), M(() => {
552
+ y(X(t, n, r.sortBy, r.sortDirection, d));
553
+ });
554
+ }, T = (e) => {
555
+ let r = typeof e == "string" ? e : "";
556
+ f(r), s({
557
+ search: (e) => ({
558
+ ...e,
559
+ search: r || void 0,
560
+ page: void 0
561
+ }),
562
+ replace: !0
563
+ }), M(() => {
564
+ y(X(t, n, l.sortBy, l.sortDirection, r));
565
+ });
566
+ }, E = P((e) => {
567
+ s({ search: (t) => ({
568
+ ...t,
569
+ page: e === 1 ? void 0 : e
570
+ }) });
571
+ }, [s]);
572
+ return /*#__PURE__*/ A("div", {
573
+ className: "relative",
574
+ children: [m && /*#__PURE__*/ k(e, {
575
+ className: "absolute -top-14 right-0 left-0 z-50",
576
+ text: m.message,
577
+ variant: "info",
578
+ onDismiss: () => h(void 0),
579
+ dismissible: !0
580
+ }), /*#__PURE__*/ k(W, {
581
+ fallbackRender: ({ error: t }) => /*#__PURE__*/ k(e, {
582
+ variant: "error",
583
+ text: t instanceof Error ? t.message : r._({ id: "W5A0Ly" })
584
+ }),
585
+ children: /*#__PURE__*/ k(j, {
586
+ fallback: /*#__PURE__*/ A(a, {
587
+ className: "fixed inset-0",
588
+ distribution: "center",
589
+ alignment: "center",
590
+ direction: "vertical",
591
+ children: [/*#__PURE__*/ k(o, {
592
+ variant: "primary",
593
+ size: "large",
594
+ className: "mb-2"
595
+ }), /*#__PURE__*/ k(H, { id: "EqSPkP" })]
596
+ }),
597
+ children: /*#__PURE__*/ k(Q, {
598
+ flavorsPromise: v,
599
+ permissionsPromise: b,
600
+ client: t,
601
+ project: n,
602
+ onFlavorDeleted: S,
603
+ onFlavorCreated: C,
604
+ searchTerm: d,
605
+ setSearchTerm: T,
606
+ sortSettings: l,
607
+ handleSortChange: w,
608
+ createModalOpen: g,
609
+ setCreateModalOpen: _,
610
+ currentPage: p,
611
+ onPageChange: E
612
+ })
613
+ })
614
+ })]
615
+ });
616
+ };
617
+ //#endregion
618
+ //#region src/client/routes/_auth/projects/$projectId/compute/flavors/index.tsx?tsr-split=component
619
+ function ee() {
620
+ let { i18n: e, _: t } = U(), { projectId: n } = S.useParams(), { trpcClient: r } = S.useRouteContext();
621
+ return /*#__PURE__*/ A(O, { children: [/*#__PURE__*/ k(C, {
622
+ title: e._({ id: "neiJm0" }),
623
+ projectId: n
624
+ }), /*#__PURE__*/ k($, {
625
+ project: n,
626
+ client: r
627
+ })] });
628
+ }
629
+ //#endregion
630
+ export { ee as component };
631
+
632
+ //# sourceMappingURL=flavors-CfdgjsZY.mjs.map