@cobaltcore-dev/aurora 0.2.2 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/dist/client/AuroraApp.d.ts +10 -0
  2. package/dist/client/{ContentHeader-DtBiIwRY.mjs → ContentHeader-BXZoN3B9.mjs} +15 -15
  3. package/dist/client/{ContentHeader-DtBiIwRY.mjs.map → ContentHeader-BXZoN3B9.mjs.map} +1 -1
  4. package/dist/client/{DeleteFlavorModal-rmuYIafD.mjs → DeleteFlavorModal-BusYn32r.mjs} +148 -148
  5. package/dist/client/{DeleteFlavorModal-rmuYIafD.mjs.map → DeleteFlavorModal-BusYn32r.mjs.map} +1 -1
  6. package/dist/client/{EditSecurityGroupModal-B7Sz9puM.mjs → EditSecurityGroupModal-Dl6m7wUe.mjs} +16 -16
  7. package/dist/client/{EditSecurityGroupModal-B7Sz9puM.mjs.map → EditSecurityGroupModal-Dl6m7wUe.mjs.map} +1 -1
  8. package/dist/client/FiltersInput-BgNaHFBt.mjs +81 -0
  9. package/dist/client/FiltersInput-BgNaHFBt.mjs.map +1 -0
  10. package/dist/client/{FloatingIpActionModals-CfRJiZqD.mjs → FloatingIpActionModals-By2hXR9m.mjs} +51 -51
  11. package/dist/client/{FloatingIpActionModals-CfRJiZqD.mjs.map → FloatingIpActionModals-By2hXR9m.mjs.map} +1 -1
  12. package/dist/client/{ImageToastNotifications-Cw30RXsw.mjs → ImageToastNotifications-fHI8jB2j.mjs} +369 -369
  13. package/dist/client/{ImageToastNotifications-Cw30RXsw.mjs.map → ImageToastNotifications-fHI8jB2j.mjs.map} +1 -1
  14. package/dist/client/ListToolbar-BvtCo8dk.mjs +129 -0
  15. package/dist/client/ListToolbar-BvtCo8dk.mjs.map +1 -0
  16. package/dist/client/{RouteError-Cyto623-.mjs → RouteError-pDEWC_k7.mjs} +2 -2
  17. package/dist/client/{RouteError-Cyto623-.mjs.map → RouteError-pDEWC_k7.mjs.map} +1 -1
  18. package/dist/client/SortInput-DXWSqSny.mjs +34 -0
  19. package/dist/client/SortInput-DXWSqSny.mjs.map +1 -0
  20. package/dist/client/{_flavorId-B-1fYadl.mjs → _flavorId-BRonXvCo.mjs} +46 -46
  21. package/dist/client/_flavorId-BRonXvCo.mjs.map +1 -0
  22. package/dist/client/{_flavorId-BYfIHIV_.mjs → _flavorId-BoNcxYmF.mjs} +10 -10
  23. package/dist/client/_flavorId-BoNcxYmF.mjs.map +1 -0
  24. package/dist/client/_floatingIpId-BpUfL8Im2.mjs +228 -0
  25. package/dist/client/_floatingIpId-BpUfL8Im2.mjs.map +1 -0
  26. package/dist/client/{_floatingIpId-IrnN-ozB.mjs → _floatingIpId-CwHiXazi.mjs} +2 -2
  27. package/dist/client/{_floatingIpId-IrnN-ozB.mjs.map → _floatingIpId-CwHiXazi.mjs.map} +1 -1
  28. package/dist/client/{_imageId-Tx_9bqEc.mjs → _imageId-CdOOJjw0.mjs} +158 -158
  29. package/dist/client/_imageId-CdOOJjw0.mjs.map +1 -0
  30. package/dist/client/{_pcaId-CFuKY82d.mjs → _pcaId-CwlH1Kvl.mjs} +132 -132
  31. package/dist/client/{_pcaId-CFuKY82d.mjs.map → _pcaId-CwlH1Kvl.mjs.map} +1 -1
  32. package/dist/client/{_pcaId-Bck7S7gJ.mjs → _pcaId-D1ZEaCdp.mjs} +2 -2
  33. package/dist/client/{_pcaId-Bck7S7gJ.mjs.map → _pcaId-D1ZEaCdp.mjs.map} +1 -1
  34. package/dist/client/_projectId-D1gGribM.mjs +316 -0
  35. package/dist/client/_projectId-D1gGribM.mjs.map +1 -0
  36. package/dist/client/{_projectId-PSpuCKO7.mjs → _projectId-DhLpIalx.mjs} +9 -9
  37. package/dist/client/{_projectId-PSpuCKO7.mjs.map → _projectId-DhLpIalx.mjs.map} +1 -1
  38. package/dist/client/{_projectId-B1VjDd0Z.mjs → _projectId-Dj_InfSc.mjs} +3 -3
  39. package/dist/client/{_projectId-B1VjDd0Z.mjs.map → _projectId-Dj_InfSc.mjs.map} +1 -1
  40. package/dist/client/{_projectId-Pxp-RXK4.mjs → _projectId-OW2xkK43.mjs} +2 -2
  41. package/dist/client/{_projectId-Pxp-RXK4.mjs.map → _projectId-OW2xkK43.mjs.map} +1 -1
  42. package/dist/client/{_securityGroupId-VV2lUcGQ.mjs → _securityGroupId-B0llWH9A.mjs} +2 -2
  43. package/dist/client/{_securityGroupId-VV2lUcGQ.mjs.map → _securityGroupId-B0llWH9A.mjs.map} +1 -1
  44. package/dist/client/{_securityGroupId-Dqi6ddw4.mjs → _securityGroupId-gbUnd5Wv.mjs} +363 -363
  45. package/dist/client/{_securityGroupId-Dqi6ddw4.mjs.map → _securityGroupId-gbUnd5Wv.mjs.map} +1 -1
  46. package/dist/client/{about-B2AzqxFI.mjs → about-DCe6LsKz.mjs} +8 -8
  47. package/dist/client/{about-B2AzqxFI.mjs.map → about-DCe6LsKz.mjs.map} +1 -1
  48. package/dist/client/{build-Cf7iWbpH.mjs → build-BJDfnAyi.mjs} +1573 -1564
  49. package/dist/client/{build-Cf7iWbpH.mjs.map → build-BJDfnAyi.mjs.map} +1 -1
  50. package/dist/client/{buildFilterParams-ngVK3ybs.mjs → buildFilterParams-By33pG59.mjs} +1 -1
  51. package/dist/client/{buildFilterParams-ngVK3ybs.mjs.map → buildFilterParams-By33pG59.mjs.map} +1 -1
  52. package/dist/client/{constants-CCgR6fKI.mjs → constants-CAjjRTo_.mjs} +9 -9
  53. package/dist/client/{constants-CCgR6fKI.mjs.map → constants-CAjjRTo_.mjs.map} +1 -1
  54. package/dist/client/{containers-BWERuY0O.mjs → containers-BuXUVb1N.mjs} +811 -811
  55. package/dist/client/{containers-BWERuY0O.mjs.map → containers-BuXUVb1N.mjs.map} +1 -1
  56. package/dist/client/{containers-Cs5vOeR2.mjs → containers-Ca5V1EBS.mjs} +1 -1
  57. package/dist/client/containers-Ca5V1EBS.mjs.map +1 -0
  58. package/dist/client/{containers-DovytjVP.mjs → containers-NW7RnHTI.mjs} +6 -6
  59. package/dist/client/containers-NW7RnHTI.mjs.map +1 -0
  60. package/dist/client/flavors-BXPYAFyQ.mjs.map +1 -1
  61. package/dist/client/{flavors-CUiALHcB.mjs → flavors-D8oElC2K.mjs} +2 -2
  62. package/dist/client/{flavors-CUiALHcB.mjs.map → flavors-D8oElC2K.mjs.map} +1 -1
  63. package/dist/client/flavors-qvgPSI7J.mjs +613 -0
  64. package/dist/client/flavors-qvgPSI7J.mjs.map +1 -0
  65. package/dist/client/{floatingips-BrjDiY2t.mjs → floatingips-Be3zLoaD.mjs} +126 -126
  66. package/dist/client/{floatingips-BrjDiY2t.mjs.map → floatingips-Be3zLoaD.mjs.map} +1 -1
  67. package/dist/client/{images-BZP3pBqj.mjs → images-BiEBENaj.mjs} +2 -2
  68. package/dist/client/{images-BZP3pBqj.mjs.map → images-BiEBENaj.mjs.map} +1 -1
  69. package/dist/client/images-CCYBAphP2.mjs +1900 -0
  70. package/dist/client/images-CCYBAphP2.mjs.map +1 -0
  71. package/dist/client/images-DM9I8G0p.mjs.map +1 -1
  72. package/dist/client/index.d.ts +2 -1
  73. package/dist/client/index.js +410 -412
  74. package/dist/client/index.js.map +1 -1
  75. package/dist/client/{network-SCVadZsv.mjs → network-nbSbl0X0.mjs} +1 -1
  76. package/dist/client/{network-SCVadZsv.mjs.map → network-nbSbl0X0.mjs.map} +1 -1
  77. package/dist/client/{objects-D4zBka5e.mjs → objects-CU5ws07o.mjs} +6 -6
  78. package/dist/client/objects-CU5ws07o.mjs.map +1 -0
  79. package/dist/client/objects-FXN0VWLI.mjs +4760 -0
  80. package/dist/client/{objects-Cw4Vu01M.mjs.map → objects-FXN0VWLI.mjs.map} +1 -1
  81. package/dist/client/{objects-B4yrYf_a.mjs → objects-GmuIOaHd.mjs} +1 -1
  82. package/dist/client/objects-GmuIOaHd.mjs.map +1 -0
  83. package/dist/client/{overview-BtIXpYBo.mjs → overview-B3gdnWTG.mjs} +2 -2
  84. package/dist/client/{overview-BtIXpYBo.mjs.map → overview-B3gdnWTG.mjs.map} +1 -1
  85. package/dist/client/{overview-2J54-loz.mjs → overview-DzYBiNfD.mjs} +2 -2
  86. package/dist/client/{overview-2J54-loz.mjs.map → overview-DzYBiNfD.mjs.map} +1 -1
  87. package/dist/client/{overview-D0AAvsmL.mjs → overview-EhfPY8Je.mjs} +2 -2
  88. package/dist/client/{overview-D0AAvsmL.mjs.map → overview-EhfPY8Je.mjs.map} +1 -1
  89. package/dist/client/{overview-BnmukbFh.mjs → overview-XueZI4LQ.mjs} +7 -7
  90. package/dist/client/{overview-BnmukbFh.mjs.map → overview-XueZI4LQ.mjs.map} +1 -1
  91. package/dist/client/{pca-BqZycwCu.mjs → pca-DSM71LhW.mjs} +2 -2
  92. package/dist/client/{pca-BqZycwCu.mjs.map → pca-DSM71LhW.mjs.map} +1 -1
  93. package/dist/client/{pca-V2aaOxZA.mjs → pca-x9if8xU-.mjs} +59 -59
  94. package/dist/client/{pca-V2aaOxZA.mjs.map → pca-x9if8xU-.mjs.map} +1 -1
  95. package/dist/client/{projects-jyIHL6DE.mjs → projects-B6BPo2Ar.mjs} +2 -2
  96. package/dist/client/projects-B6BPo2Ar.mjs.map +1 -0
  97. package/dist/client/{projects-BsN4bvU2.mjs → projects-BilrmHLu.mjs} +1 -1
  98. package/dist/client/projects-BilrmHLu.mjs.map +1 -0
  99. package/dist/client/{projects-0feOw_b6.mjs → projects-Bt0XptpG.mjs} +2 -2
  100. package/dist/client/projects-Bt0XptpG.mjs.map +1 -0
  101. package/dist/client/projects-CnmZIB2Q.mjs +95 -0
  102. package/dist/client/projects-CnmZIB2Q.mjs.map +1 -0
  103. package/dist/client/{securitygroups-B4MkSBtI.mjs → securitygroups-BdzieS7Z.mjs} +121 -121
  104. package/dist/client/{securitygroups-B4MkSBtI.mjs.map → securitygroups-BdzieS7Z.mjs.map} +1 -1
  105. package/dist/client/{useListWithFiltering-CEDh1LO-.mjs → useListWithFiltering-CqQbAjEe.mjs} +1 -1
  106. package/dist/client/{useListWithFiltering-CEDh1LO-.mjs.map → useListWithFiltering-CqQbAjEe.mjs.map} +1 -1
  107. package/package.json +2 -2
  108. package/dist/client/ListToolbar-DuazvsAu.mjs +0 -223
  109. package/dist/client/ListToolbar-DuazvsAu.mjs.map +0 -1
  110. package/dist/client/_flavorId-B-1fYadl.mjs.map +0 -1
  111. package/dist/client/_flavorId-BYfIHIV_.mjs.map +0 -1
  112. package/dist/client/_floatingIpId-FQ5P2qMV.mjs +0 -228
  113. package/dist/client/_floatingIpId-FQ5P2qMV.mjs.map +0 -1
  114. package/dist/client/_imageId-Tx_9bqEc.mjs.map +0 -1
  115. package/dist/client/_projectId-Bs4W9hos.mjs +0 -283
  116. package/dist/client/_projectId-Bs4W9hos.mjs.map +0 -1
  117. package/dist/client/containers-Cs5vOeR2.mjs.map +0 -1
  118. package/dist/client/containers-DovytjVP.mjs.map +0 -1
  119. package/dist/client/flavors-Bovz-I2U.mjs +0 -565
  120. package/dist/client/flavors-Bovz-I2U.mjs.map +0 -1
  121. package/dist/client/images-DaaCUXMI.mjs +0 -1797
  122. package/dist/client/images-DaaCUXMI.mjs.map +0 -1
  123. package/dist/client/objects-B4yrYf_a.mjs.map +0 -1
  124. package/dist/client/objects-Cw4Vu01M.mjs +0 -4760
  125. package/dist/client/objects-D4zBka5e.mjs.map +0 -1
  126. package/dist/client/projects-0feOw_b6.mjs.map +0 -1
  127. package/dist/client/projects-BsN4bvU2.mjs.map +0 -1
  128. package/dist/client/projects-C1IYOvFQ.mjs +0 -144
  129. package/dist/client/projects-C1IYOvFQ.mjs.map +0 -1
  130. package/dist/client/projects-jyIHL6DE.mjs.map +0 -1
@@ -0,0 +1,613 @@
1
+ import { C as e, E as t, G as n, I as r, M as i, Q as a, T as o, U as s, Y as c, at as l, c as u, et as d, f, it as p, j as m, l as h, n as g, nt as _, ot as v, q as y, w as b } from "./build-BJDfnAyi.mjs";
2
+ import { t as x } from "./useErrorTranslation-TZVwIAzq.mjs";
3
+ import { t as S } from "./flavors-D8oElC2K.mjs";
4
+ import { n as C, r as w, t as T } from "./DeleteFlavorModal-BusYn32r.mjs";
5
+ import { t as E } from "./ContentHeader-BXZoN3B9.mjs";
6
+ import { t as D } from "./SortInput-DXWSqSny.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 { Link as R, useNavigate as z, useParams as B, useSearch as V } from "@tanstack/react-router";
10
+ import { TRPCClientError as H } from "@trpc/client";
11
+ import { Trans as U, useLingui as W } from "@lingui/react";
12
+ //#region src/client/routes/_auth/projects/$projectId/compute/-components/Flavors/-components/FlavorListContainer.tsx
13
+ var G = ({ flavors: e, isLoading: o, client: l, project: u, onFlavorDeleted: f, canDeleteFlavor: p, canMangageAccess: g, currentPage: v = 1, totalPages: y = 1, onPageChange: b }) => {
14
+ let { i18n: x, _: S } = W(), E = z(), [D, j] = L(!1), [M, N] = L(!1), [P, F] = L(!1), [I, V] = L(null), { projectId: H } = B({ from: "/_auth/projects/$projectId/compute/flavors/" }), G = (e) => {
15
+ V(e), j(!0);
16
+ }, K = (e) => {
17
+ V(e), N(!0);
18
+ }, q = (e) => {
19
+ V(e), F(!0);
20
+ }, J = () => {
21
+ j(!1), V(null);
22
+ };
23
+ return o ? /* @__PURE__ */ k("div", {
24
+ "data-testid": "loading",
25
+ children: /* @__PURE__ */ k("div", {
26
+ "data-testid": "loading",
27
+ children: /* @__PURE__ */ k(r, { children: /* @__PURE__ */ k(i, {
28
+ colSpan: 3,
29
+ children: /* @__PURE__ */ A(_, {
30
+ distribution: "center",
31
+ alignment: "center",
32
+ children: [/* @__PURE__ */ k(a, { variant: "primary" }), /* @__PURE__ */ k(U, { id: "Z3FXyt" })]
33
+ })
34
+ }) })
35
+ })
36
+ }) : !e || e.length === 0 ? /* @__PURE__ */ k(s, {
37
+ columns: 7,
38
+ className: "flavors",
39
+ "data-testid": "no-flavors",
40
+ children: /* @__PURE__ */ k(r, { children: /* @__PURE__ */ A(i, {
41
+ colSpan: 7,
42
+ children: [/* @__PURE__ */ k(m, { children: /* @__PURE__ */ k(U, { id: "PiyQJ/" }) }), /* @__PURE__ */ k("p", { children: /* @__PURE__ */ k(U, { id: "KSW/GC" }) })]
43
+ }) })
44
+ }) : /* @__PURE__ */ A(O, { children: [
45
+ /* @__PURE__ */ A(s, {
46
+ columns: 6,
47
+ minContentColumns: [5],
48
+ className: "flavors",
49
+ "data-testid": "flavors-table",
50
+ children: [/* @__PURE__ */ A(r, { children: [
51
+ /* @__PURE__ */ k(n, { children: /* @__PURE__ */ k(U, { id: "6YtxFj" }) }),
52
+ /* @__PURE__ */ k(n, { children: /* @__PURE__ */ k(U, { id: "k5nYwm" }) }),
53
+ /* @__PURE__ */ k(n, { children: /* @__PURE__ */ k(U, { id: "K+e/0e" }) }),
54
+ /* @__PURE__ */ k(n, { children: /* @__PURE__ */ k(U, { id: "n0ZttO" }) }),
55
+ /* @__PURE__ */ k(n, { children: /* @__PURE__ */ k(U, { id: "p4nMut" }) }),
56
+ /* @__PURE__ */ k(n, {})
57
+ ] }), e.map((e) => /* @__PURE__ */ A(r, {
58
+ "data-testid": `flavor-row-${e.id}`,
59
+ onClick: () => E({
60
+ to: "/projects/$projectId/compute/flavors/$flavorId",
61
+ params: {
62
+ projectId: H,
63
+ flavorId: e.id
64
+ }
65
+ }),
66
+ children: [
67
+ /* @__PURE__ */ k(i, { children: e.name || e.id }),
68
+ /* @__PURE__ */ k(i, { children: e.vcpus || "–" }),
69
+ /* @__PURE__ */ k(i, { children: e.ram || "–" }),
70
+ /* @__PURE__ */ k(i, { children: e.disk || "–" }),
71
+ /* @__PURE__ */ k(i, { children: e.swap || "–" }),
72
+ /* @__PURE__ */ k(i, {
73
+ onClick: (e) => e.stopPropagation(),
74
+ children: /* @__PURE__ */ k(d, { children: /* @__PURE__ */ A(t, { children: [
75
+ /* @__PURE__ */ k(c, { children: /* @__PURE__ */ k(R, {
76
+ to: "/projects/$projectId/compute/flavors/$flavorId",
77
+ params: {
78
+ projectId: H,
79
+ flavorId: e.id
80
+ },
81
+ className: "text-theme-default",
82
+ children: x._({ id: "URmyfc" })
83
+ }) }),
84
+ /* @__PURE__ */ k(c, {
85
+ label: x._({ id: "6GBt0m" }),
86
+ onClick: () => K(e)
87
+ }),
88
+ g && /* @__PURE__ */ k(c, {
89
+ label: x._({ id: "cWbW6w" }),
90
+ onClick: () => q(e)
91
+ }),
92
+ p && /* @__PURE__ */ k(c, {
93
+ label: x._({ id: "JT3I1g" }),
94
+ onClick: () => G(e)
95
+ })
96
+ ] }) })
97
+ })
98
+ ]
99
+ }, e.id))]
100
+ }),
101
+ y > 1 && /* @__PURE__ */ k("div", {
102
+ className: "flex justify-center py-4",
103
+ children: /* @__PURE__ */ k(h, {
104
+ variant: "input",
105
+ currentPage: v,
106
+ pages: y,
107
+ onPressPrevious: () => b?.(Math.max(v - 1, 1)),
108
+ onPressNext: () => b?.(Math.min(v + 1, y)),
109
+ onSelectChange: (e) => b?.(e)
110
+ })
111
+ }),
112
+ /* @__PURE__ */ k(T, {
113
+ client: l,
114
+ isOpen: D,
115
+ onClose: J,
116
+ project: u,
117
+ flavor: I,
118
+ onSuccess: () => {
119
+ I && f && f(I.name || ""), J();
120
+ }
121
+ }),
122
+ /* @__PURE__ */ k(w, {
123
+ client: l,
124
+ isOpen: M,
125
+ onClose: () => N(!1),
126
+ project: u,
127
+ flavor: I
128
+ }),
129
+ /* @__PURE__ */ k(C, {
130
+ client: l,
131
+ isOpen: P,
132
+ onClose: () => F(!1),
133
+ project: u,
134
+ flavor: I
135
+ })
136
+ ] });
137
+ }, K = (e, t, n) => {
138
+ switch (e) {
139
+ case "id":
140
+ if (!t) return;
141
+ {
142
+ let e = String(t).trim();
143
+ return /^[a-zA-Z0-9.\-_]*$/.test(e) ? void 0 : n({ id: "AX9Juz" });
144
+ }
145
+ case "name": {
146
+ let e = String(t || "").trim();
147
+ return e.length >= 2 && e.length <= 50 ? void 0 : n({ id: "zDS0JC" });
148
+ }
149
+ case "vcpus": {
150
+ let e = Number(t);
151
+ return !isNaN(e) && e >= 1 ? void 0 : n({ id: "uSdnuQ" });
152
+ }
153
+ case "ram": {
154
+ let e = Number(t);
155
+ return !isNaN(e) && e >= 128 ? void 0 : n({ id: "g1IxCo" });
156
+ }
157
+ case "disk": {
158
+ let e = Number(t);
159
+ return !isNaN(e) && e >= 0 ? void 0 : n({ id: "AJRhSM" });
160
+ }
161
+ case "swap":
162
+ if (t === "" || t == null) return;
163
+ {
164
+ let e = Number(t);
165
+ return !isNaN(e) && e >= 0 ? void 0 : n({ id: "g3BSCe" });
166
+ }
167
+ case "rxtx_factor": {
168
+ let e = Number(t);
169
+ return !isNaN(e) && e >= 1 ? void 0 : n({ id: "PIbPRX" });
170
+ }
171
+ case "description": return t ? String(t).length < 65535 ? void 0 : n({ id: "uuKb0T" }) : void 0;
172
+ case "OS-FLV-EXT-DATA:ephemeral": {
173
+ let e = Number(t);
174
+ return !isNaN(e) && e >= 0 ? void 0 : n({ id: "tLerHy" });
175
+ }
176
+ case "os-flavor-access:is_public": return t == null || typeof t == "boolean" || typeof t == "string" && (t === "true" || t === "false") ? void 0 : n({ id: "MmtQVF" });
177
+ default: return;
178
+ }
179
+ }, q = (e) => {
180
+ let t = {
181
+ name: String(e.name),
182
+ vcpus: Number(e.vcpus),
183
+ ram: Number(e.ram),
184
+ disk: Number(e.disk)
185
+ }, n = (e) => e != null && e !== "" && String(e).trim() !== "", r = (e) => e != null && e !== "" && String(e).trim() !== "" && !isNaN(Number(e));
186
+ 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;
187
+ }, J = ({ client: e, isOpen: t, onClose: n, project: r, onSuccess: i }) => {
188
+ let { i18n: s, _: c } = W(), { translateError: u } = x(), [d, f] = L({ "os-flavor-access:is_public": !0 }), [m, h] = L({}), [S, C] = L(!1), [w, T] = L(null), E = (e) => {
189
+ let { name: t, value: n, type: r, checked: i } = e.target;
190
+ f((e) => ({
191
+ ...e,
192
+ [t]: r === "checkbox" ? i : n
193
+ })), w && T(null);
194
+ }, D = (e, t) => {
195
+ f((n) => ({
196
+ ...n,
197
+ [e]: t
198
+ })), w && T(null);
199
+ }, O = (e) => {
200
+ let { name: t, value: n } = e.target, r = K(t, n, c);
201
+ h((e) => ({
202
+ ...e,
203
+ [t]: r
204
+ }));
205
+ }, j = async (t) => {
206
+ t.preventDefault(), T(null);
207
+ let n = {};
208
+ if ([
209
+ "name",
210
+ "vcpus",
211
+ "ram",
212
+ "disk"
213
+ ].forEach((e) => {
214
+ let t = K(e, d[e], c);
215
+ t && (n[e] = t);
216
+ }), [
217
+ "id",
218
+ "swap",
219
+ "OS-FLV-EXT-DATA:ephemeral",
220
+ "rxtx_factor",
221
+ "description",
222
+ "os-flavor-access:is_public"
223
+ ].forEach((e) => {
224
+ let t = d[e];
225
+ if (t !== void 0 && t !== "" && t !== null) {
226
+ let r = K(e, t, c);
227
+ r && (n[e] = r);
228
+ }
229
+ }), Object.keys(n).length > 0) {
230
+ h(n), T(s._({ id: "CBFSfX" }));
231
+ return;
232
+ }
233
+ try {
234
+ C(!0);
235
+ let t = q(d);
236
+ await e.compute.createFlavor.mutate({
237
+ project_id: r,
238
+ flavor: t
239
+ }), i(t.name), M();
240
+ } catch (e) {
241
+ T(e?.message ? u(e.message) : s._({ id: "OxDN2m" }));
242
+ } finally {
243
+ C(!1);
244
+ }
245
+ }, M = () => {
246
+ f({ "os-flavor-access:is_public": !0 }), h({}), T(null), n();
247
+ };
248
+ return /* @__PURE__ */ A(v, {
249
+ onCancel: M,
250
+ size: "large",
251
+ title: s._({ id: "Rlp5zj" }),
252
+ open: t,
253
+ onConfirm: j,
254
+ cancelButtonLabel: s._({ id: "dEgA5A" }),
255
+ confirmButtonLabel: s._({ id: "wEfZld" }),
256
+ children: [S && /* @__PURE__ */ k(_, {
257
+ distribution: "center",
258
+ alignment: "center",
259
+ children: /* @__PURE__ */ k(a, { variant: "primary" })
260
+ }), !S && /* @__PURE__ */ A(l, { children: [w && /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k(y, {
261
+ onDismiss: () => {
262
+ T(null);
263
+ },
264
+ text: w,
265
+ variant: "error"
266
+ }) }), /* @__PURE__ */ A(g, { children: [
267
+ /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k(o, {
268
+ id: "id",
269
+ name: "id",
270
+ label: s._({ id: "s2ubkU" }),
271
+ value: d.id || "",
272
+ onChange: E,
273
+ onBlur: O,
274
+ errortext: m.id
275
+ }) }),
276
+ /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k(o, {
277
+ id: "name",
278
+ name: "name",
279
+ label: s._({ id: "lWxDDh" }),
280
+ value: d.name || "",
281
+ onChange: E,
282
+ onBlur: O,
283
+ errortext: m.name,
284
+ required: !0
285
+ }) }),
286
+ /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k(o, {
287
+ id: "description",
288
+ name: "description",
289
+ label: s._({ id: "Nu4oKW" }),
290
+ value: d.description || "",
291
+ onChange: E,
292
+ onBlur: O,
293
+ errortext: m.description
294
+ }) }),
295
+ /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k(o, {
296
+ id: "vcpus",
297
+ name: "vcpus",
298
+ label: s._({ id: "MZGbkp" }),
299
+ value: String(d.vcpus || ""),
300
+ onChange: (e) => D("vcpus", Number(e.target.value)),
301
+ onBlur: O,
302
+ errortext: m.vcpus,
303
+ type: "number",
304
+ required: !0
305
+ }) }),
306
+ /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k(o, {
307
+ id: "ram",
308
+ name: "ram",
309
+ label: s._({ id: "K+e/0e" }),
310
+ value: String(d.ram || ""),
311
+ onChange: (e) => D("ram", Number(e.target.value)),
312
+ onBlur: O,
313
+ errortext: m.ram,
314
+ type: "number",
315
+ required: !0
316
+ }) }),
317
+ /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k(o, {
318
+ id: "disk",
319
+ name: "disk",
320
+ label: s._({ id: "AxZkIr" }),
321
+ value: String(d.disk || ""),
322
+ onChange: (e) => D("disk", Number(e.target.value)),
323
+ onBlur: O,
324
+ errortext: m.disk,
325
+ type: "number",
326
+ required: !0
327
+ }) }),
328
+ /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k(o, {
329
+ id: "OS-FLV-EXT-DATA:ephemeral",
330
+ name: "OS-FLV-EXT-DATA:ephemeral",
331
+ label: s._({ id: "X2OnDx" }),
332
+ value: String(d["OS-FLV-EXT-DATA:ephemeral"] || ""),
333
+ onChange: (e) => D("OS-FLV-EXT-DATA:ephemeral", Number(e.target.value)),
334
+ onBlur: O,
335
+ errortext: m["OS-FLV-EXT-DATA:ephemeral"],
336
+ type: "number"
337
+ }) }),
338
+ /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k(o, {
339
+ id: "swap",
340
+ name: "swap",
341
+ label: s._({ id: "p4nMut" }),
342
+ value: String(d.swap || ""),
343
+ onChange: (e) => D("swap", e.target.value ? Number(e.target.value) : void 0),
344
+ onBlur: O,
345
+ errortext: m.swap,
346
+ type: "number"
347
+ }) }),
348
+ /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k(o, {
349
+ id: "rxtx_factor",
350
+ name: "rxtx_factor",
351
+ label: s._({ id: "u5HztT" }),
352
+ defaultValue: 1,
353
+ value: String(d.rxtx_factor || ""),
354
+ onChange: (e) => D("rxtx_factor", Number(e.target.value)),
355
+ onBlur: O,
356
+ errortext: m.rxtx_factor,
357
+ type: "number"
358
+ }) }),
359
+ /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k(b, {
360
+ name: "os-flavor-access:is_public",
361
+ label: s._({ id: "vbajgL" }),
362
+ helptext: s._({ id: "3nh/7E" }),
363
+ checked: !!d["os-flavor-access:is_public"],
364
+ onChange: E
365
+ }) })
366
+ ] })] })]
367
+ });
368
+ }, Y = 50, X = (e, t, n, r, i) => e.compute.getFlavorsByProjectId.query({
369
+ project_id: t,
370
+ sortBy: n,
371
+ sortDirection: r,
372
+ searchTerm: i
373
+ }).then((e) => ({
374
+ ...e,
375
+ listError: void 0
376
+ })).catch((e) => {
377
+ if (e instanceof H && e.data?.code === "FORBIDDEN") return {
378
+ flavors: [],
379
+ privateFlavorError: void 0,
380
+ listError: e.message
381
+ };
382
+ throw e;
383
+ }), Z = (e, t) => e.compute.canUser.query({
384
+ project_id: t,
385
+ permission: [
386
+ "flavors:create",
387
+ "flavors:delete",
388
+ "flavors:list_projects"
389
+ ]
390
+ }).then(([e, t, n]) => ({
391
+ canCreate: e,
392
+ canDelete: t,
393
+ canManageAccess: n
394
+ }));
395
+ function Q({ flavorsPromise: t, permissionsPromise: n, client: r, project: i, onFlavorDeleted: a, onFlavorCreated: o, searchTerm: s, setSearchTerm: c, sortSettings: l, handleSortChange: d, createModalOpen: p, setCreateModalOpen: m, currentPage: h, onPageChange: g }) {
396
+ let { i18n: v, _: b } = W(), { flavors: x, privateFlavorError: S, listError: C } = N(t), w = N(n), [T, E] = L(s), j = I(void 0);
397
+ if (F(() => () => clearTimeout(j.current), []), C) return /* @__PURE__ */ k("p", { children: C });
398
+ let M = Math.max(1, Math.ceil(x.length / Y)), P = Math.min(h, M), R = x.slice((P - 1) * Y, P * Y);
399
+ return F(() => {
400
+ h > M && g(1);
401
+ }, [
402
+ M,
403
+ h,
404
+ g
405
+ ]), /* @__PURE__ */ A(O, { children: [
406
+ /* @__PURE__ */ k(J, {
407
+ client: r,
408
+ isOpen: p,
409
+ project: i,
410
+ onClose: () => m(!1),
411
+ onSuccess: o
412
+ }),
413
+ S && /* @__PURE__ */ k(y, {
414
+ className: "mb-4",
415
+ text: v._({ id: "3oc18/" }),
416
+ variant: "warning"
417
+ }),
418
+ /* @__PURE__ */ A(_, {
419
+ distribution: "end",
420
+ alignment: "center",
421
+ gap: "2",
422
+ className: "pb-2",
423
+ children: [/* @__PURE__ */ k(_, {
424
+ gap: "0.5",
425
+ children: /* @__PURE__ */ k(D, {
426
+ options: l.options,
427
+ sortBy: l.sortBy,
428
+ sortDirection: l.sortDirection ?? "asc",
429
+ onSortByChange: (e) => d({
430
+ ...l,
431
+ sortBy: e,
432
+ sortDirection: l.sortDirection
433
+ }),
434
+ onSortDirectionChange: (e) => d({
435
+ ...l,
436
+ sortDirection: e
437
+ })
438
+ })
439
+ }), w.canCreate && /* @__PURE__ */ k(u, {
440
+ variant: "primary",
441
+ label: v._({ id: "Rlp5zj" }),
442
+ onClick: () => m(!0)
443
+ })]
444
+ }),
445
+ /* @__PURE__ */ k(e, { children: /* @__PURE__ */ k(_, {
446
+ distribution: "end",
447
+ alignment: "center",
448
+ children: /* @__PURE__ */ k(f, {
449
+ placeholder: v._({ id: "U0sPCo" }),
450
+ "data-testid": "searchbar",
451
+ value: T,
452
+ onInput: (e) => {
453
+ let t = e.currentTarget.value;
454
+ E(t), clearTimeout(j.current), j.current = window.setTimeout(() => c(t), 500);
455
+ },
456
+ onSearch: (e) => {
457
+ clearTimeout(j.current), c(typeof e == "string" ? e : "");
458
+ },
459
+ onClear: () => {
460
+ clearTimeout(j.current), E(""), c("");
461
+ }
462
+ })
463
+ }) }),
464
+ /* @__PURE__ */ k(G, {
465
+ flavors: R,
466
+ isLoading: !1,
467
+ client: r,
468
+ project: i,
469
+ onFlavorDeleted: a,
470
+ canDeleteFlavor: w.canDelete,
471
+ canMangageAccess: w.canManageAccess,
472
+ currentPage: P,
473
+ totalPages: M,
474
+ onPageChange: g
475
+ })
476
+ ] });
477
+ }
478
+ var $ = ({ client: e, project: t }) => {
479
+ let { i18n: n, _: r } = W(), i = z(), o = V({ strict: !1 }), [s, c] = L({
480
+ options: [
481
+ {
482
+ label: n._({ id: "6YtxFj" }),
483
+ value: "name"
484
+ },
485
+ {
486
+ label: n._({ id: "MZGbkp" }),
487
+ value: "vcpus"
488
+ },
489
+ {
490
+ label: n._({ id: "RGhYAo" }),
491
+ value: "ram"
492
+ },
493
+ {
494
+ label: n._({ id: "cJDQIO" }),
495
+ value: "disk"
496
+ },
497
+ {
498
+ label: n._({ id: "vH2C/2" }),
499
+ value: "swap"
500
+ }
501
+ ],
502
+ sortBy: o.sortBy || "name",
503
+ sortDirection: o.sortDirection || "asc"
504
+ }), [l, u] = L(o.search || ""), d = o.page ?? 1, [f, p] = L(), [m, h] = L(!1), [g, v] = L(() => X(e, t, s.sortBy, s.sortDirection, l)), [b] = L(() => Z(e, t)), x = () => {
505
+ M(() => {
506
+ v(X(e, t, s.sortBy, s.sortDirection, l));
507
+ });
508
+ }, S = (e) => {
509
+ p({
510
+ message: n._({
511
+ id: "20Kpaw",
512
+ values: { flavorName: e }
513
+ }),
514
+ timestamp: Date.now()
515
+ }), setTimeout(() => p(void 0), 5e3), x();
516
+ }, C = (e) => {
517
+ p({
518
+ message: n._({
519
+ id: "eChIh7",
520
+ values: { flavorName: e }
521
+ }),
522
+ timestamp: Date.now()
523
+ }), setTimeout(() => p(void 0), 5e3), x();
524
+ }, w = (n) => {
525
+ let r = {
526
+ options: n.options,
527
+ sortBy: n.sortBy?.toString() || "name",
528
+ sortDirection: n.sortDirection || "asc"
529
+ };
530
+ c(r), i({
531
+ search: (e) => ({
532
+ ...e,
533
+ sortBy: r.sortBy,
534
+ sortDirection: r.sortDirection,
535
+ page: void 0
536
+ }),
537
+ replace: !0
538
+ }), M(() => {
539
+ v(X(e, t, r.sortBy, r.sortDirection, l));
540
+ });
541
+ }, T = (n) => {
542
+ let r = typeof n == "string" ? n : "";
543
+ u(r), i({
544
+ search: (e) => ({
545
+ ...e,
546
+ search: r || void 0,
547
+ page: void 0
548
+ }),
549
+ replace: !0
550
+ }), M(() => {
551
+ v(X(e, t, s.sortBy, s.sortDirection, r));
552
+ });
553
+ }, E = P((e) => {
554
+ i({ search: (t) => ({
555
+ ...t,
556
+ page: e === 1 ? void 0 : e
557
+ }) });
558
+ }, [i]);
559
+ return /* @__PURE__ */ A("div", {
560
+ className: "relative",
561
+ children: [f && /* @__PURE__ */ k(y, {
562
+ className: "absolute -top-14 right-0 left-0 z-50",
563
+ text: f.message,
564
+ variant: "info",
565
+ onDismiss: () => p(void 0),
566
+ dismissible: !0
567
+ }), /* @__PURE__ */ k(j, {
568
+ fallback: /* @__PURE__ */ A(_, {
569
+ className: "fixed inset-0",
570
+ distribution: "center",
571
+ alignment: "center",
572
+ direction: "vertical",
573
+ children: [/* @__PURE__ */ k(a, {
574
+ variant: "primary",
575
+ size: "large",
576
+ className: "mb-2"
577
+ }), /* @__PURE__ */ k(U, { id: "EqSPkP" })]
578
+ }),
579
+ children: /* @__PURE__ */ k(Q, {
580
+ flavorsPromise: g,
581
+ permissionsPromise: b,
582
+ client: e,
583
+ project: t,
584
+ onFlavorDeleted: S,
585
+ onFlavorCreated: C,
586
+ searchTerm: l,
587
+ setSearchTerm: T,
588
+ sortSettings: s,
589
+ handleSortChange: w,
590
+ createModalOpen: m,
591
+ setCreateModalOpen: h,
592
+ currentPage: d,
593
+ onPageChange: E
594
+ })
595
+ })]
596
+ });
597
+ };
598
+ //#endregion
599
+ //#region src/client/routes/_auth/projects/$projectId/compute/flavors/index.tsx?tsr-split=component
600
+ function ee() {
601
+ let { i18n: e, _: t } = W(), { projectId: n } = S.useParams(), { trpcClient: r } = S.useRouteContext();
602
+ return /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k(E, {
603
+ title: e._({ id: "neiJm0" }),
604
+ projectId: n
605
+ }), /* @__PURE__ */ k($, {
606
+ project: n,
607
+ client: r
608
+ })] });
609
+ }
610
+ //#endregion
611
+ export { ee as component };
612
+
613
+ //# sourceMappingURL=flavors-qvgPSI7J.mjs.map