@cobaltcore-dev/aurora 1.0.0 → 1.2.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 (205) hide show
  1. package/README.md +59 -9
  2. package/dist/client/App.d.ts +2 -1
  3. package/dist/client/AuroraApp.d.ts +45 -0
  4. package/dist/client/{AuthProvider-5TyZKZkx.mjs → AuthProvider-CVSAwW9f.mjs} +23 -9
  5. package/dist/client/AuthProvider-CVSAwW9f.mjs.map +1 -0
  6. package/dist/client/{ContentHeader-D64NtKvo.mjs → ContentHeader-CPJbgYWn.mjs} +18 -18
  7. package/dist/client/{ContentHeader-D64NtKvo.mjs.map → ContentHeader-CPJbgYWn.mjs.map} +1 -1
  8. package/dist/client/DeleteFlavorModal-V44QCJBd.mjs +773 -0
  9. package/dist/client/DeleteFlavorModal-V44QCJBd.mjs.map +1 -0
  10. package/dist/client/DynamicBreadcrumbContext-CVcUQFou.mjs +26 -0
  11. package/dist/client/DynamicBreadcrumbContext-CVcUQFou.mjs.map +1 -0
  12. package/dist/client/{FiltersInput-Bw8TFfwb.mjs → FiltersInput-CKI6zWnm.mjs} +22 -22
  13. package/dist/client/{FiltersInput-Bw8TFfwb.mjs.map → FiltersInput-CKI6zWnm.mjs.map} +1 -1
  14. package/dist/client/FloatingIpActionModals-CwEC5GR-.mjs +460 -0
  15. package/dist/client/FloatingIpActionModals-CwEC5GR-.mjs.map +1 -0
  16. package/dist/client/ImageToastNotifications-m6c3tVPb.mjs +1152 -0
  17. package/dist/client/ImageToastNotifications-m6c3tVPb.mjs.map +1 -0
  18. package/dist/client/{SortInput-DysAXpB3.mjs → SortInput-4g7nSTHW.mjs} +14 -14
  19. package/dist/client/SortInput-4g7nSTHW.mjs.map +1 -0
  20. package/dist/client/{TwoColumnDescriptionList-B3xunXmz.mjs → TwoColumnDescriptionList-NvgvErua.mjs} +6 -6
  21. package/dist/client/{TwoColumnDescriptionList-B3xunXmz.mjs.map → TwoColumnDescriptionList-NvgvErua.mjs.map} +1 -1
  22. package/dist/client/_-CAsCx-Ay.mjs +6 -0
  23. package/dist/client/_-CAsCx-Ay.mjs.map +1 -0
  24. package/dist/client/_auth-SrDjHL6j.mjs +12 -0
  25. package/dist/client/_auth-SrDjHL6j.mjs.map +1 -0
  26. package/dist/client/_flavorId-9PcBBW52.mjs +231 -0
  27. package/dist/client/_flavorId-9PcBBW52.mjs.map +1 -0
  28. package/dist/client/{_flavorId-Zj7LNL-R.mjs → _flavorId-a9Gu66R1.mjs} +3 -9
  29. package/dist/client/_flavorId-a9Gu66R1.mjs.map +1 -0
  30. package/dist/client/_floatingIpId-AE9Fu8l6.mjs +210 -0
  31. package/dist/client/_floatingIpId-AE9Fu8l6.mjs.map +1 -0
  32. package/dist/client/{_floatingIpId-DCQQpNO-.mjs → _floatingIpId-AZ11Ksmu.mjs} +3 -9
  33. package/dist/client/_floatingIpId-AZ11Ksmu.mjs.map +1 -0
  34. package/dist/client/_imageId-BtAql2Kr.mjs +570 -0
  35. package/dist/client/_imageId-BtAql2Kr.mjs.map +1 -0
  36. package/dist/client/_imageId-D76BxvFY.mjs +39 -0
  37. package/dist/client/_imageId-D76BxvFY.mjs.map +1 -0
  38. package/dist/client/_projectId-7Nl1MQTJ.mjs +99 -0
  39. package/dist/client/_projectId-7Nl1MQTJ.mjs.map +1 -0
  40. package/dist/client/_projectId-B3wmSala.mjs +281 -0
  41. package/dist/client/_projectId-B3wmSala.mjs.map +1 -0
  42. package/dist/client/_projectId-DPzv0CCp.mjs +77 -0
  43. package/dist/client/_projectId-DPzv0CCp.mjs.map +1 -0
  44. package/dist/client/_projectId-DfeVJy0G.mjs +30 -0
  45. package/dist/client/_projectId-DfeVJy0G.mjs.map +1 -0
  46. package/dist/client/_securityGroupId-C5huJNfO.mjs +1810 -0
  47. package/dist/client/_securityGroupId-C5huJNfO.mjs.map +1 -0
  48. package/dist/client/{_securityGroupId-Mj8NJT2-.mjs → _securityGroupId-D85mSigA.mjs} +3 -9
  49. package/dist/client/_securityGroupId-D85mSigA.mjs.map +1 -0
  50. package/dist/client/_serviceType-DS8DxsrP.mjs +20 -0
  51. package/dist/client/_serviceType-DS8DxsrP.mjs.map +1 -0
  52. package/dist/client/_serviceType-M8d9rOT6.mjs +6 -0
  53. package/dist/client/_serviceType-M8d9rOT6.mjs.map +1 -0
  54. package/dist/client/_storageType-BRWWJtow.mjs +14 -0
  55. package/dist/client/_storageType-BRWWJtow.mjs.map +1 -0
  56. package/dist/client/_storageType-CzZ4u9x_.mjs +12 -0
  57. package/dist/client/_storageType-CzZ4u9x_.mjs.map +1 -0
  58. package/dist/client/_storageType-Dy9uCVXr.mjs +845 -0
  59. package/dist/client/_storageType-Dy9uCVXr.mjs.map +1 -0
  60. package/dist/client/_storageType-zeSZe--V.mjs.map +1 -1
  61. package/dist/client/{about-WLyShNgE.mjs → about-BmQTyLWc.mjs} +2 -2
  62. package/dist/client/{about-WLyShNgE.mjs.map → about-BmQTyLWc.mjs.map} +1 -1
  63. package/dist/client/assets/{objectDownload.worker-BXFQIIU_.js.map → objectDownload.worker-CWWLPDyb.js.map} +1 -1
  64. package/dist/client/assets/{objectDownload.worker-ECvFtmOF.js.map → objectDownload.worker-kZlQuo3F.js.map} +1 -1
  65. package/dist/client/{aurora-IMO9HhqJ.mjs → aurora-CIml-f2f.mjs} +2 -2
  66. package/dist/client/{aurora-IMO9HhqJ.mjs.map → aurora-CIml-f2f.mjs.map} +1 -1
  67. package/dist/client/{build-DnD-T35u.mjs → build-WuxXRAqf.mjs} +2335 -2667
  68. package/dist/client/{build-DnD-T35u.mjs.map → build-WuxXRAqf.mjs.map} +1 -1
  69. package/dist/client/components/Breadcrumbs.d.ts +1 -0
  70. package/dist/client/components/ListToolbar/SortInput.d.ts +3 -0
  71. package/dist/client/context/BreadcrumbExtensionContext.d.ts +9 -0
  72. package/dist/client/context/DynamicBreadcrumbContext.d.ts +9 -0
  73. package/dist/client/{flavors-Cp0LEGOH.mjs → flavors-B0rbqffG.mjs} +3 -5
  74. package/dist/client/flavors-B0rbqffG.mjs.map +1 -0
  75. package/dist/client/flavors-DWMZ6TuJ.mjs.map +1 -1
  76. package/dist/client/flavors-Rl20bxVU.mjs +628 -0
  77. package/dist/client/flavors-Rl20bxVU.mjs.map +1 -0
  78. package/dist/client/floatingips-Cz9k80cc.mjs +8 -0
  79. package/dist/client/floatingips-Cz9k80cc.mjs.map +1 -0
  80. package/dist/client/floatingips-xbO_mu4f.mjs +576 -0
  81. package/dist/client/floatingips-xbO_mu4f.mjs.map +1 -0
  82. package/dist/client/hooks/useBreadcrumbs.d.ts +16 -0
  83. package/dist/client/hooks/usePushBreadcrumbs.d.ts +10 -0
  84. package/dist/client/hooks/useSetBreadcrumb.d.ts +11 -0
  85. package/dist/client/{hooks-CrriowRk.mjs → hooks-D0yKIumu.mjs} +2 -2
  86. package/dist/client/{hooks-CrriowRk.mjs.map → hooks-D0yKIumu.mjs.map} +1 -1
  87. package/dist/client/images-BGQv9kKT.mjs +1983 -0
  88. package/dist/client/images-BGQv9kKT.mjs.map +1 -0
  89. package/dist/client/{images-DWiM_72I.mjs → images-CPmMa4SQ.mjs} +3 -5
  90. package/dist/client/images-CPmMa4SQ.mjs.map +1 -0
  91. package/dist/client/images-NBf2bV43.mjs.map +1 -1
  92. package/dist/client/index.d.ts +9 -2
  93. package/dist/client/index.js +567 -695
  94. package/dist/client/index.js.map +1 -1
  95. package/dist/client/{md-DNzcRhmz.mjs → md-kvaGCNAK.mjs} +4 -22
  96. package/dist/client/{md-DNzcRhmz.mjs.map → md-kvaGCNAK.mjs.map} +1 -1
  97. package/dist/client/objects-BE_u5yRt.mjs +12950 -0
  98. package/dist/client/objects-BE_u5yRt.mjs.map +1 -0
  99. package/dist/client/objects-BN-59Th0.mjs +66 -0
  100. package/dist/client/objects-BN-59Th0.mjs.map +1 -0
  101. package/dist/client/objects-D9Luf9KB.mjs +66 -0
  102. package/dist/client/objects-D9Luf9KB.mjs.map +1 -0
  103. package/dist/client/projects-yiK0HGSA.mjs.map +1 -1
  104. package/dist/client/routeInfo-DP3v74Wg.mjs +19 -0
  105. package/dist/client/routeInfo-DP3v74Wg.mjs.map +1 -0
  106. package/dist/client/router.d.ts +2 -1
  107. package/dist/client/{routes-B05u5bk4.mjs → routes-CJj7SR_K.mjs} +2 -2
  108. package/dist/client/routes-CJj7SR_K.mjs.map +1 -0
  109. package/dist/client/routes-xofA3ksU.mjs +110 -0
  110. package/dist/client/routes-xofA3ksU.mjs.map +1 -0
  111. package/dist/client/securitygroups-BjhgLBHm.mjs +620 -0
  112. package/dist/client/securitygroups-BjhgLBHm.mjs.map +1 -0
  113. package/dist/client/securitygroups-CtKne8UQ.mjs +8 -0
  114. package/dist/client/securitygroups-CtKne8UQ.mjs.map +1 -0
  115. package/dist/client/{securitygroups-_7SYN2jN.mjs → securitygroups-DEJQBcxm.mjs} +3 -5
  116. package/dist/client/securitygroups-DEJQBcxm.mjs.map +1 -0
  117. package/dist/client/services-D1PbooD1.mjs +6 -0
  118. package/dist/client/services-D1PbooD1.mjs.map +1 -0
  119. package/dist/client/services-DEMVtFyn.mjs +9 -0
  120. package/dist/client/services-DEMVtFyn.mjs.map +1 -0
  121. package/dist/client/trpcClient.d.ts +153 -370
  122. package/dist/client/useBreadcrumbs-ha3IlaxX.mjs +54 -0
  123. package/dist/client/useBreadcrumbs-ha3IlaxX.mjs.map +1 -0
  124. package/dist/client/useModalTracking-BcOKTYRN.mjs +33 -0
  125. package/dist/client/useModalTracking-BcOKTYRN.mjs.map +1 -0
  126. package/dist/client/{useSecurityGroupPermissions-qPwm4mFt.mjs → useSecurityGroupPermissions-BOyLQLdC.mjs} +78 -12
  127. package/dist/client/useSecurityGroupPermissions-BOyLQLdC.mjs.map +1 -0
  128. package/dist/client/useSetBreadcrumb-tn7lBaQV.mjs +19 -0
  129. package/dist/client/useSetBreadcrumb-tn7lBaQV.mjs.map +1 -0
  130. package/dist/client/utils/formatSwiftDate.d.ts +30 -0
  131. package/dist/server/index.d.ts +179 -373
  132. package/dist/server/index.js +910 -530
  133. package/package.json +37 -38
  134. package/dist/client/AuthProvider-5TyZKZkx.mjs.map +0 -1
  135. package/dist/client/DeleteFlavorModal-C2K43ABZ.mjs +0 -732
  136. package/dist/client/DeleteFlavorModal-C2K43ABZ.mjs.map +0 -1
  137. package/dist/client/DeletePcaModal-D9v8E0Ki.mjs +0 -92
  138. package/dist/client/DeletePcaModal-D9v8E0Ki.mjs.map +0 -1
  139. package/dist/client/DetailsInfo-h7rPJ4Jf.mjs +0 -61
  140. package/dist/client/DetailsInfo-h7rPJ4Jf.mjs.map +0 -1
  141. package/dist/client/FloatingIpActionModals-BfEDfYg9.mjs +0 -417
  142. package/dist/client/FloatingIpActionModals-BfEDfYg9.mjs.map +0 -1
  143. package/dist/client/ImageToastNotifications-C0Tluzq-.mjs +0 -1125
  144. package/dist/client/ImageToastNotifications-C0Tluzq-.mjs.map +0 -1
  145. package/dist/client/RouteError-B-NPGIv7.mjs +0 -25
  146. package/dist/client/RouteError-B-NPGIv7.mjs.map +0 -1
  147. package/dist/client/SortInput-DysAXpB3.mjs.map +0 -1
  148. package/dist/client/StatusError-DX-GvLjq.mjs +0 -39
  149. package/dist/client/StatusError-DX-GvLjq.mjs.map +0 -1
  150. package/dist/client/_auth-R5H2yKFf.mjs +0 -11
  151. package/dist/client/_auth-R5H2yKFf.mjs.map +0 -1
  152. package/dist/client/_flavorId-Dit5mM8I.mjs +0 -210
  153. package/dist/client/_flavorId-Dit5mM8I.mjs.map +0 -1
  154. package/dist/client/_flavorId-Zj7LNL-R.mjs.map +0 -1
  155. package/dist/client/_floatingIpId-B0MCoqE3.mjs +0 -215
  156. package/dist/client/_floatingIpId-B0MCoqE3.mjs.map +0 -1
  157. package/dist/client/_floatingIpId-DCQQpNO-.mjs.map +0 -1
  158. package/dist/client/_imageId-CZYzBAVx.mjs +0 -558
  159. package/dist/client/_imageId-CZYzBAVx.mjs.map +0 -1
  160. package/dist/client/_pcaId-CHRRsWmO.mjs +0 -605
  161. package/dist/client/_pcaId-CHRRsWmO.mjs.map +0 -1
  162. package/dist/client/_projectId-B8wWSxPu.mjs +0 -98
  163. package/dist/client/_projectId-B8wWSxPu.mjs.map +0 -1
  164. package/dist/client/_projectId-C5DUYIjt.mjs +0 -291
  165. package/dist/client/_projectId-C5DUYIjt.mjs.map +0 -1
  166. package/dist/client/_projectId-D2pFfYIs.mjs +0 -46
  167. package/dist/client/_projectId-D2pFfYIs.mjs.map +0 -1
  168. package/dist/client/_projectId-DhSWowQo.mjs +0 -29
  169. package/dist/client/_projectId-DhSWowQo.mjs.map +0 -1
  170. package/dist/client/_securityGroupId-DZ4D4WwB.mjs +0 -1801
  171. package/dist/client/_securityGroupId-DZ4D4WwB.mjs.map +0 -1
  172. package/dist/client/_securityGroupId-Mj8NJT2-.mjs.map +0 -1
  173. package/dist/client/_storageType-C-9bNkmZ.mjs +0 -2211
  174. package/dist/client/_storageType-C-9bNkmZ.mjs.map +0 -1
  175. package/dist/client/components/Error/StatusError.d.ts +0 -11
  176. package/dist/client/components/ProjectView/ProjectInfoBox.d.ts +0 -12
  177. package/dist/client/flavors-Cp0LEGOH.mjs.map +0 -1
  178. package/dist/client/flavors-CwMbDRHm2.mjs +0 -650
  179. package/dist/client/flavors-CwMbDRHm2.mjs.map +0 -1
  180. package/dist/client/floatingips-ICwo-rV_.mjs +0 -591
  181. package/dist/client/floatingips-ICwo-rV_.mjs.map +0 -1
  182. package/dist/client/images-DOGZmr3D.mjs +0 -1937
  183. package/dist/client/images-DOGZmr3D.mjs.map +0 -1
  184. package/dist/client/images-DWiM_72I.mjs.map +0 -1
  185. package/dist/client/objects-D2MKUCxc.mjs +0 -56
  186. package/dist/client/objects-D2MKUCxc.mjs.map +0 -1
  187. package/dist/client/objects-DI1-tnKr.mjs +0 -56
  188. package/dist/client/objects-DI1-tnKr.mjs.map +0 -1
  189. package/dist/client/objects-DeK2WD5K.mjs +0 -10078
  190. package/dist/client/objects-DeK2WD5K.mjs.map +0 -1
  191. package/dist/client/pca-BokFv4Gz.mjs +0 -239
  192. package/dist/client/pca-BokFv4Gz.mjs.map +0 -1
  193. package/dist/client/pca-D5jHAl0b.mjs +0 -26
  194. package/dist/client/pca-D5jHAl0b.mjs.map +0 -1
  195. package/dist/client/pcaAccess-Br4kVjLQ.mjs +0 -9
  196. package/dist/client/pcaAccess-Br4kVjLQ.mjs.map +0 -1
  197. package/dist/client/routeInfo-CdTRlSxv.mjs +0 -32
  198. package/dist/client/routeInfo-CdTRlSxv.mjs.map +0 -1
  199. package/dist/client/routes-B05u5bk4.mjs.map +0 -1
  200. package/dist/client/routes-DOJr5onJ.mjs +0 -115
  201. package/dist/client/routes-DOJr5onJ.mjs.map +0 -1
  202. package/dist/client/securitygroups-Be2Qgmew.mjs +0 -595
  203. package/dist/client/securitygroups-Be2Qgmew.mjs.map +0 -1
  204. package/dist/client/securitygroups-_7SYN2jN.mjs.map +0 -1
  205. package/dist/client/useSecurityGroupPermissions-qPwm4mFt.mjs.map +0 -1
@@ -1,650 +0,0 @@
1
- import { B as e, C as t, E as n, G as r, I as i, S as a, Y as o, Z as s, _ as c, a as l, dt as u, g as d, h as f, k as p, m, ot as h, rt as g, s as _, t as v, u as y, w as b } from "./build-DnD-T35u.mjs";
2
- import { t as x } from "./flavors-Cp0LEGOH.mjs";
3
- import { t as S } from "./SortInput-DysAXpB3.mjs";
4
- import { t as C } from "./ContentHeader-D64NtKvo.mjs";
5
- import { i as w, n as T, r as E, t as D } from "./DeleteFlavorModal-C2K43ABZ.mjs";
6
- import { Fragment as O, jsx as k, jsxs as A } from "react/jsx-runtime";
7
- import { Suspense as j, startTransition as M, use as N, useCallback as P, useEffect as F, useRef as I, useState as L } from "react";
8
- import { useNavigate as R, useParams as ee, useSearch as z } from "@tanstack/react-router";
9
- import { TRPCClientError as B } from "@trpc/client";
10
- import { Trans as V, useLingui as H } from "@lingui/react";
11
- import { ErrorBoundary as U } from "react-error-boundary";
12
- //#region src/client/routes/_auth/projects/$projectId/compute/-components/Flavors/-components/FlavorListContainer.tsx
13
- var W = ({ flavors: i, isLoading: o, client: l, project: u, onFlavorDeleted: d, canDeleteFlavor: f, canMangageAccess: m, canManageSpecs: h, canListSpecs: y, currentPage: b = 1, totalPages: x = 1, onPageChange: S }) => {
14
- let { i18n: C, _: w } = H(), j = R(), [M, N] = L(!1), [P, I] = L(!1), [z, B] = L(!1), [U, W] = L(null), [G, K] = L(b.toString());
15
- F(() => {
16
- K(b.toString());
17
- }, [b]);
18
- let { projectId: q } = ee({ from: "/_auth/projects/$projectId/compute/flavors/" }), J = (e) => {
19
- W(e), N(!0);
20
- }, Y = (e) => {
21
- W(e), I(!0);
22
- }, X = (e) => {
23
- W(e), B(!0);
24
- }, Z = () => {
25
- N(!1), W(null);
26
- }, Q = () => {
27
- U && d && d(U.name || ""), Z();
28
- }, $ = (e) => {
29
- e >= 1 && e <= x && (S?.(e), K(e.toString()));
30
- };
31
- return o ? /*#__PURE__*/ k("div", {
32
- "data-testid": "loading",
33
- children: /*#__PURE__*/ k("div", {
34
- "data-testid": "loading",
35
- children: /*#__PURE__*/ k(n, { children: /*#__PURE__*/ k(v, {
36
- colSpan: 3,
37
- children: /*#__PURE__*/ A(s, {
38
- distribution: "center",
39
- alignment: "center",
40
- children: [/*#__PURE__*/ k(r, { variant: "primary" }), /*#__PURE__*/ k(V, { id: "Z3FXyt" })]
41
- })
42
- }) })
43
- })
44
- }) : !i || i.length === 0 ? /*#__PURE__*/ k(_, {
45
- columns: 7,
46
- className: "flavors",
47
- "data-testid": "no-flavors",
48
- children: /*#__PURE__*/ k(n, { children: /*#__PURE__*/ A(v, {
49
- colSpan: 7,
50
- children: [/*#__PURE__*/ k(g, { children: /*#__PURE__*/ k(V, { id: "PiyQJ/" }) }), /*#__PURE__*/ k("p", { children: /*#__PURE__*/ k(V, { id: "KSW/GC" }) })]
51
- }) })
52
- }) : /*#__PURE__*/ A(O, { children: [
53
- /*#__PURE__*/ A(_, {
54
- columns: 7,
55
- minContentColumns: [6],
56
- className: "flavors",
57
- "data-testid": "flavors-table",
58
- children: [/*#__PURE__*/ A(n, { children: [
59
- /*#__PURE__*/ k(t, { children: /*#__PURE__*/ k(V, { id: "6YtxFj" }) }),
60
- /*#__PURE__*/ k(t, { children: /*#__PURE__*/ k(V, { id: "k5nYwm" }) }),
61
- /*#__PURE__*/ k(t, { children: /*#__PURE__*/ k(V, { id: "K+e/0e" }) }),
62
- /*#__PURE__*/ k(t, { children: /*#__PURE__*/ k(V, { id: "n0ZttO" }) }),
63
- /*#__PURE__*/ k(t, { children: /*#__PURE__*/ k(V, { id: "p4nMut" }) }),
64
- /*#__PURE__*/ k(t, { children: /*#__PURE__*/ k(V, { id: "HyyJ83" }) }),
65
- /*#__PURE__*/ k(t, {})
66
- ] }), i.map((e) => /*#__PURE__*/ A(n, {
67
- "data-testid": `flavor-row-${e.id}`,
68
- onClick: () => j({
69
- to: "/projects/$projectId/compute/flavors/$flavorId",
70
- params: {
71
- projectId: q,
72
- flavorId: e.id
73
- }
74
- }),
75
- children: [
76
- /*#__PURE__*/ k(v, { children: e.name || e.id }),
77
- /*#__PURE__*/ k(v, { children: e.vcpus || "–" }),
78
- /*#__PURE__*/ k(v, { children: e.ram || "–" }),
79
- /*#__PURE__*/ k(v, { children: e.disk || "–" }),
80
- /*#__PURE__*/ k(v, { children: e.swap || "–" }),
81
- /*#__PURE__*/ k(v, { children: e["os-flavor-access:is_public"] === !1 ? C._({ id: "zwBp5t" }) : C._({ id: "7d1a0d" }) }),
82
- /*#__PURE__*/ k(v, {
83
- onClick: (e) => e.stopPropagation(),
84
- children: /*#__PURE__*/ k(p, { children: /*#__PURE__*/ A(c, { children: [
85
- /*#__PURE__*/ k(a, {
86
- label: C._({ id: "URmyfc" }),
87
- onClick: () => j({
88
- to: "/projects/$projectId/compute/flavors/$flavorId",
89
- params: {
90
- projectId: q,
91
- flavorId: e.id
92
- }
93
- })
94
- }),
95
- (h || y) && /*#__PURE__*/ k(a, {
96
- label: h ? C._({ id: "SIfYq6" }) : C._({ id: "6GBt0m" }),
97
- onClick: () => Y(e)
98
- }),
99
- m && /*#__PURE__*/ k(a, {
100
- label: C._({ id: "cWbW6w" }),
101
- onClick: () => X(e),
102
- disabled: e["os-flavor-access:is_public"] !== !1
103
- }),
104
- f && /*#__PURE__*/ k(a, {
105
- label: C._({ id: "JT3I1g" }),
106
- onClick: () => J(e)
107
- })
108
- ] }) })
109
- })
110
- ]
111
- }, e.id))]
112
- }),
113
- x > 1 && /*#__PURE__*/ k("div", {
114
- className: "flex justify-center py-4",
115
- children: /*#__PURE__*/ k(e, {
116
- variant: "input",
117
- currentPage: b,
118
- pages: x,
119
- onPressPrevious: () => $(Math.max(b - 1, 1)),
120
- onPressNext: () => $(Math.min(b + 1, x)),
121
- onSelectChange: (e) => {
122
- $(e);
123
- },
124
- onInputChange: (e) => {
125
- K(e === void 0 ? "" : String(e));
126
- },
127
- onKeyDown: (e) => {
128
- if (e.key === "Enter" && G !== "") {
129
- let e = parseInt(G, 10);
130
- !isNaN(e) && e >= 1 && e <= x && $(e);
131
- }
132
- }
133
- })
134
- }),
135
- /*#__PURE__*/ k(D, {
136
- client: l,
137
- isOpen: M,
138
- onClose: Z,
139
- project: u,
140
- flavor: U,
141
- onSuccess: Q
142
- }),
143
- /*#__PURE__*/ k(E, {
144
- client: l,
145
- isOpen: P,
146
- onClose: () => I(!1),
147
- project: u,
148
- flavor: U,
149
- canEdit: h
150
- }),
151
- /*#__PURE__*/ k(T, {
152
- client: l,
153
- isOpen: z,
154
- onClose: () => B(!1),
155
- project: u,
156
- flavor: U
157
- })
158
- ] });
159
- }, G = (e, t, n) => {
160
- switch (e) {
161
- case "id":
162
- if (!t) return;
163
- {
164
- let e = String(t).trim();
165
- return /^[a-zA-Z0-9.\-_]*$/.test(e) ? void 0 : n({ id: "AX9Juz" });
166
- }
167
- case "name": {
168
- let e = String(t || "").trim();
169
- return e.length >= 2 && e.length <= 50 ? void 0 : n({ id: "zDS0JC" });
170
- }
171
- case "vcpus": {
172
- let e = Number(t);
173
- return !isNaN(e) && e >= 1 ? void 0 : n({ id: "uSdnuQ" });
174
- }
175
- case "ram": {
176
- let e = Number(t);
177
- return !isNaN(e) && e >= 128 ? void 0 : n({ id: "g1IxCo" });
178
- }
179
- case "disk": {
180
- let e = Number(t);
181
- return !isNaN(e) && e >= 0 ? void 0 : n({ id: "AJRhSM" });
182
- }
183
- case "swap":
184
- if (t === "" || t == null) return;
185
- {
186
- let e = Number(t);
187
- return !isNaN(e) && e >= 0 ? void 0 : n({ id: "g3BSCe" });
188
- }
189
- case "rxtx_factor": {
190
- let e = Number(t);
191
- return !isNaN(e) && e >= 1 ? void 0 : n({ id: "PIbPRX" });
192
- }
193
- case "description": return t ? String(t).length < 65535 ? void 0 : n({ id: "uuKb0T" }) : void 0;
194
- case "OS-FLV-EXT-DATA:ephemeral": {
195
- let e = Number(t);
196
- return !isNaN(e) && e >= 0 ? void 0 : n({ id: "tLerHy" });
197
- }
198
- case "os-flavor-access:is_public": return t == null || typeof t == "boolean" || typeof t == "string" && (t === "true" || t === "false") ? void 0 : n({ id: "MmtQVF" });
199
- default: return;
200
- }
201
- }, K = (e) => {
202
- let t = {
203
- name: String(e.name),
204
- vcpus: Number(e.vcpus),
205
- ram: Number(e.ram),
206
- disk: Number(e.disk)
207
- }, n = (e) => e != null && e !== "" && String(e).trim() !== "", r = (e) => e != null && e !== "" && String(e).trim() !== "" && !isNaN(Number(e));
208
- 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;
209
- }, q = ({ client: e, isOpen: t, onClose: n, project: a, onSuccess: c }) => {
210
- let { i18n: l, _: p } = H(), { translateError: g } = w(), [_, v] = L({ "os-flavor-access:is_public": !0 }), [y, b] = L({}), [x, S] = L(!1), [C, T] = L(null), E = (e) => {
211
- let { name: t, value: n, type: r, checked: i } = e.target;
212
- v((e) => ({
213
- ...e,
214
- [t]: r === "checkbox" ? i : n
215
- })), C && T(null);
216
- }, D = (e, t) => {
217
- v((n) => ({
218
- ...n,
219
- [e]: t
220
- })), C && T(null);
221
- }, O = (e) => {
222
- let { name: t, value: n } = e.target, r = G(t, n, p);
223
- b((e) => ({
224
- ...e,
225
- [t]: r
226
- }));
227
- }, j = async (t) => {
228
- t.preventDefault(), T(null);
229
- let n = {};
230
- if ([
231
- "name",
232
- "vcpus",
233
- "ram",
234
- "disk"
235
- ].forEach((e) => {
236
- let t = G(e, _[e], p);
237
- t && (n[e] = t);
238
- }), [
239
- "id",
240
- "swap",
241
- "OS-FLV-EXT-DATA:ephemeral",
242
- "rxtx_factor",
243
- "description",
244
- "os-flavor-access:is_public"
245
- ].forEach((e) => {
246
- let t = _[e];
247
- if (t !== void 0 && t !== "" && t !== null) {
248
- let r = G(e, t, p);
249
- r && (n[e] = r);
250
- }
251
- }), Object.keys(n).length > 0) {
252
- b(n), T(l._({ id: "CBFSfX" }));
253
- return;
254
- }
255
- try {
256
- S(!0);
257
- let t = K(_);
258
- await e.compute.createFlavor.mutate({
259
- project_id: a,
260
- flavor: t
261
- }), c(t.name), M();
262
- } catch (e) {
263
- let t = e?.message ? g(e.message) : l._({ id: "OxDN2m" });
264
- T(t);
265
- } finally {
266
- S(!1);
267
- }
268
- }, M = () => {
269
- v({ "os-flavor-access:is_public": !0 }), b({}), T(null), n();
270
- };
271
- return /*#__PURE__*/ A(o, {
272
- onCancel: M,
273
- size: "large",
274
- title: l._({ id: "Rlp5zj" }),
275
- open: t,
276
- onConfirm: j,
277
- cancelButtonLabel: l._({ id: "dEgA5A" }),
278
- confirmButtonLabel: l._({ id: "wEfZld" }),
279
- children: [x && /*#__PURE__*/ k(s, {
280
- distribution: "center",
281
- alignment: "center",
282
- children: /*#__PURE__*/ k(r, { variant: "primary" })
283
- }), !x && /*#__PURE__*/ A(u, { children: [C && /*#__PURE__*/ k(d, { children: /*#__PURE__*/ k(i, {
284
- onDismiss: () => {
285
- T(null);
286
- },
287
- text: C,
288
- variant: "error"
289
- }) }), /*#__PURE__*/ A(m, { children: [
290
- /*#__PURE__*/ k(d, { children: /*#__PURE__*/ k(f, {
291
- id: "id",
292
- name: "id",
293
- label: l._({ id: "s2ubkU" }),
294
- value: _.id || "",
295
- onChange: E,
296
- onBlur: O,
297
- errortext: y.id
298
- }) }),
299
- /*#__PURE__*/ k(d, { children: /*#__PURE__*/ k(f, {
300
- id: "name",
301
- name: "name",
302
- label: l._({ id: "lWxDDh" }),
303
- value: _.name || "",
304
- onChange: E,
305
- onBlur: O,
306
- errortext: y.name,
307
- required: !0
308
- }) }),
309
- /*#__PURE__*/ k(d, { children: /*#__PURE__*/ k(f, {
310
- id: "description",
311
- name: "description",
312
- label: l._({ id: "Nu4oKW" }),
313
- value: _.description || "",
314
- onChange: E,
315
- onBlur: O,
316
- errortext: y.description
317
- }) }),
318
- /*#__PURE__*/ k(d, { children: /*#__PURE__*/ k(f, {
319
- id: "vcpus",
320
- name: "vcpus",
321
- label: l._({ id: "MZGbkp" }),
322
- value: String(_.vcpus || ""),
323
- onChange: (e) => D("vcpus", Number(e.target.value)),
324
- onBlur: O,
325
- errortext: y.vcpus,
326
- type: "number",
327
- required: !0
328
- }) }),
329
- /*#__PURE__*/ k(d, { children: /*#__PURE__*/ k(f, {
330
- id: "ram",
331
- name: "ram",
332
- label: l._({ id: "K+e/0e" }),
333
- value: String(_.ram || ""),
334
- onChange: (e) => D("ram", Number(e.target.value)),
335
- onBlur: O,
336
- errortext: y.ram,
337
- type: "number",
338
- required: !0
339
- }) }),
340
- /*#__PURE__*/ k(d, { children: /*#__PURE__*/ k(f, {
341
- id: "disk",
342
- name: "disk",
343
- label: l._({ id: "AxZkIr" }),
344
- value: String(_.disk || ""),
345
- onChange: (e) => D("disk", Number(e.target.value)),
346
- onBlur: O,
347
- errortext: y.disk,
348
- type: "number",
349
- required: !0
350
- }) }),
351
- /*#__PURE__*/ k(d, { children: /*#__PURE__*/ k(f, {
352
- id: "OS-FLV-EXT-DATA:ephemeral",
353
- name: "OS-FLV-EXT-DATA:ephemeral",
354
- label: l._({ id: "X2OnDx" }),
355
- value: String(_["OS-FLV-EXT-DATA:ephemeral"] || ""),
356
- onChange: (e) => D("OS-FLV-EXT-DATA:ephemeral", Number(e.target.value)),
357
- onBlur: O,
358
- errortext: y["OS-FLV-EXT-DATA:ephemeral"],
359
- type: "number"
360
- }) }),
361
- /*#__PURE__*/ k(d, { children: /*#__PURE__*/ k(f, {
362
- id: "swap",
363
- name: "swap",
364
- label: l._({ id: "p4nMut" }),
365
- value: String(_.swap || ""),
366
- onChange: (e) => D("swap", e.target.value ? Number(e.target.value) : void 0),
367
- onBlur: O,
368
- errortext: y.swap,
369
- type: "number"
370
- }) }),
371
- /*#__PURE__*/ k(d, { children: /*#__PURE__*/ k(f, {
372
- id: "rxtx_factor",
373
- name: "rxtx_factor",
374
- label: l._({ id: "u5HztT" }),
375
- defaultValue: 1,
376
- value: String(_.rxtx_factor || ""),
377
- onChange: (e) => D("rxtx_factor", Number(e.target.value)),
378
- onBlur: O,
379
- errortext: y.rxtx_factor,
380
- type: "number"
381
- }) }),
382
- /*#__PURE__*/ k(d, { children: /*#__PURE__*/ k(h, {
383
- name: "os-flavor-access:is_public",
384
- label: l._({ id: "vbajgL" }),
385
- helptext: l._({ id: "3nh/7E" }),
386
- checked: !!_["os-flavor-access:is_public"],
387
- onChange: E
388
- }) })
389
- ] })] })]
390
- });
391
- }, J = 50, Y = (e, t, n, r, i) => e.compute.getFlavorsByProjectId.query({
392
- project_id: t,
393
- sortBy: n,
394
- sortDirection: r,
395
- searchTerm: i
396
- }).then((e) => ({
397
- ...e,
398
- listError: void 0
399
- })).catch((e) => {
400
- if (e instanceof B && e.data?.code === "FORBIDDEN") return {
401
- flavors: [],
402
- privateFlavorError: void 0,
403
- listError: e.message
404
- };
405
- throw e;
406
- }), X = (e, t) => e.compute.canUser.query({
407
- project_id: t,
408
- permission: [
409
- "flavors:create",
410
- "flavors:delete",
411
- "flavors:list_projects",
412
- "flavor_specs:create",
413
- "flavor_specs:delete",
414
- "flavor_specs:list"
415
- ]
416
- }).then(([e, t, n, r, i, a]) => ({
417
- canCreate: e,
418
- canDelete: t,
419
- canManageAccess: n,
420
- canManageSpecs: r || i,
421
- canListSpecs: a
422
- }));
423
- function Z({ flavorsPromise: e, permissionsPromise: t, client: n, project: r, onFlavorDeleted: a, onFlavorCreated: o, searchTerm: c, setSearchTerm: u, sortSettings: d, handleSortChange: f, createModalOpen: p, setCreateModalOpen: m, currentPage: h, onPageChange: g }) {
424
- let { i18n: _, _: v } = H(), { flavors: x, privateFlavorError: C, listError: w } = N(e), T = N(t), [E, D] = L(c), j = I(void 0);
425
- if (F(() => () => clearTimeout(j.current), []), w) return /*#__PURE__*/ k("p", { children: w });
426
- let M = Math.max(1, Math.ceil(x.length / J)), P = Math.min(h, M), R = x.slice((P - 1) * J, P * J);
427
- return F(() => {
428
- h > M && g(1);
429
- }, [
430
- M,
431
- h,
432
- g
433
- ]), /*#__PURE__*/ A(O, { children: [
434
- /*#__PURE__*/ k(q, {
435
- client: n,
436
- isOpen: p,
437
- project: r,
438
- onClose: () => m(!1),
439
- onSuccess: o
440
- }),
441
- C && /*#__PURE__*/ k(i, {
442
- className: "mb-4",
443
- text: _._({ id: "3oc18/" }),
444
- variant: "warning"
445
- }),
446
- /*#__PURE__*/ A(s, {
447
- distribution: "end",
448
- alignment: "center",
449
- gap: "2",
450
- className: "pb-2",
451
- children: [/*#__PURE__*/ k(s, {
452
- gap: "0.5",
453
- children: /*#__PURE__*/ k(S, {
454
- options: d.options,
455
- sortBy: d.sortBy,
456
- sortDirection: d.sortDirection ?? "asc",
457
- selectClassName: "min-w-40",
458
- onSortByChange: (e) => f({
459
- ...d,
460
- sortBy: e,
461
- sortDirection: d.sortDirection
462
- }),
463
- onSortDirectionChange: (e) => f({
464
- ...d,
465
- sortDirection: e
466
- })
467
- })
468
- }), T.canCreate && /*#__PURE__*/ k(l, {
469
- variant: "primary",
470
- label: _._({ id: "Rlp5zj" }),
471
- onClick: () => m(!0)
472
- })]
473
- }),
474
- /*#__PURE__*/ k(y, { children: /*#__PURE__*/ k(s, {
475
- distribution: "end",
476
- alignment: "center",
477
- children: /*#__PURE__*/ k(b, {
478
- placeholder: _._({ id: "U0sPCo" }),
479
- "data-testid": "searchbar",
480
- value: E,
481
- onInput: (e) => {
482
- let t = e.currentTarget.value;
483
- D(t), clearTimeout(j.current), j.current = window.setTimeout(() => u(t), 500);
484
- },
485
- onSearch: (e) => {
486
- clearTimeout(j.current), u(typeof e == "string" ? e : "");
487
- },
488
- onClear: () => {
489
- clearTimeout(j.current), D(""), u("");
490
- }
491
- })
492
- }) }),
493
- /*#__PURE__*/ k(W, {
494
- flavors: R,
495
- isLoading: !1,
496
- client: n,
497
- project: r,
498
- onFlavorDeleted: a,
499
- canDeleteFlavor: T.canDelete,
500
- canMangageAccess: T.canManageAccess,
501
- canManageSpecs: T.canManageSpecs,
502
- canListSpecs: T.canListSpecs,
503
- currentPage: P,
504
- totalPages: M,
505
- onPageChange: g
506
- })
507
- ] });
508
- }
509
- var Q = ({ client: e, project: t }) => {
510
- let { i18n: n, _: a } = H(), o = R(), c = z({ strict: !1 }), [l, u] = L({
511
- options: [
512
- {
513
- label: n._({ id: "6YtxFj" }),
514
- value: "name"
515
- },
516
- {
517
- label: n._({ id: "MZGbkp" }),
518
- value: "vcpus"
519
- },
520
- {
521
- label: n._({ id: "RGhYAo" }),
522
- value: "ram"
523
- },
524
- {
525
- label: n._({ id: "cJDQIO" }),
526
- value: "disk"
527
- },
528
- {
529
- label: n._({ id: "vH2C/2" }),
530
- value: "swap"
531
- }
532
- ],
533
- sortBy: c.sortBy || "name",
534
- sortDirection: c.sortDirection || "asc"
535
- }), [d, f] = L(c.search || ""), p = c.page ?? 1, [m, h] = L(), [g, _] = L(!1), [v, y] = L(() => Y(e, t, l.sortBy, l.sortDirection, d)), [b] = L(() => X(e, t)), x = () => {
536
- M(() => {
537
- y(Y(e, t, l.sortBy, l.sortDirection, d));
538
- });
539
- }, S = (e) => {
540
- h({
541
- message: n._({
542
- id: "20Kpaw",
543
- values: { flavorName: e }
544
- }),
545
- timestamp: Date.now()
546
- }), setTimeout(() => h(void 0), 5e3), x();
547
- }, C = (e) => {
548
- h({
549
- message: n._({
550
- id: "eChIh7",
551
- values: { flavorName: e }
552
- }),
553
- timestamp: Date.now()
554
- }), setTimeout(() => h(void 0), 5e3), x();
555
- }, w = (n) => {
556
- let r = {
557
- options: n.options,
558
- sortBy: n.sortBy?.toString() || "name",
559
- sortDirection: n.sortDirection || "asc"
560
- };
561
- u(r), o({
562
- search: (e) => ({
563
- ...e,
564
- sortBy: r.sortBy,
565
- sortDirection: r.sortDirection,
566
- page: void 0
567
- }),
568
- replace: !0
569
- }), M(() => {
570
- y(Y(e, t, r.sortBy, r.sortDirection, d));
571
- });
572
- }, T = (n) => {
573
- let r = typeof n == "string" ? n : "";
574
- f(r), o({
575
- search: (e) => ({
576
- ...e,
577
- search: r || void 0,
578
- page: void 0
579
- }),
580
- replace: !0
581
- }), M(() => {
582
- y(Y(e, t, l.sortBy, l.sortDirection, r));
583
- });
584
- }, E = P((e) => {
585
- o({ search: (t) => ({
586
- ...t,
587
- page: e === 1 ? void 0 : e
588
- }) });
589
- }, [o]);
590
- return /*#__PURE__*/ A("div", {
591
- className: "relative",
592
- children: [m && /*#__PURE__*/ k(i, {
593
- className: "absolute -top-14 right-0 left-0 z-50",
594
- text: m.message,
595
- variant: "info",
596
- onDismiss: () => h(void 0),
597
- dismissible: !0
598
- }), /*#__PURE__*/ k(U, {
599
- fallbackRender: ({ error: e }) => /*#__PURE__*/ k(i, {
600
- variant: "error",
601
- text: e instanceof Error ? e.message : n._({ id: "W5A0Ly" })
602
- }),
603
- children: /*#__PURE__*/ k(j, {
604
- fallback: /*#__PURE__*/ A(s, {
605
- className: "fixed inset-0",
606
- distribution: "center",
607
- alignment: "center",
608
- direction: "vertical",
609
- children: [/*#__PURE__*/ k(r, {
610
- variant: "primary",
611
- size: "large",
612
- className: "mb-2"
613
- }), /*#__PURE__*/ k(V, { id: "EqSPkP" })]
614
- }),
615
- children: /*#__PURE__*/ k(Z, {
616
- flavorsPromise: v,
617
- permissionsPromise: b,
618
- client: e,
619
- project: t,
620
- onFlavorDeleted: S,
621
- onFlavorCreated: C,
622
- searchTerm: d,
623
- setSearchTerm: T,
624
- sortSettings: l,
625
- handleSortChange: w,
626
- createModalOpen: g,
627
- setCreateModalOpen: _,
628
- currentPage: p,
629
- onPageChange: E
630
- })
631
- })
632
- })]
633
- });
634
- };
635
- //#endregion
636
- //#region src/client/routes/_auth/projects/$projectId/compute/flavors/index.tsx?tsr-split=component
637
- function $() {
638
- let { i18n: e, _: t } = H(), { projectId: n } = x.useParams(), { trpcClient: r } = x.useRouteContext();
639
- return /*#__PURE__*/ A(O, { children: [/*#__PURE__*/ k(C, {
640
- title: e._({ id: "neiJm0" }),
641
- projectId: n
642
- }), /*#__PURE__*/ k(Q, {
643
- project: n,
644
- client: r
645
- })] });
646
- }
647
- //#endregion
648
- export { $ as component };
649
-
650
- //# sourceMappingURL=flavors-CwMbDRHm2.mjs.map