@cobaltcore-dev/aurora 2.1.1 → 2.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 (173) hide show
  1. package/README.md +31 -25
  2. package/dist/client/AuroraApp.d.ts +9 -2
  3. package/dist/client/context/AppConfigContext.d.ts +44 -0
  4. package/dist/client/index.d.ts +2 -0
  5. package/dist/client/index.js +41221 -845
  6. package/dist/client/index.js.map +1 -1
  7. package/dist/client/trpcClient.d.ts +314 -0
  8. package/dist/client/utils/appConfigGating.d.ts +21 -0
  9. package/dist/server/index.d.ts +694 -3
  10. package/dist/server/index.js +1748 -722
  11. package/package.json +3 -3
  12. package/dist/client/AuthProvider-CVSAwW9f.mjs +0 -83
  13. package/dist/client/AuthProvider-CVSAwW9f.mjs.map +0 -1
  14. package/dist/client/ContentHeader-fKKZVu-o.mjs +0 -116
  15. package/dist/client/ContentHeader-fKKZVu-o.mjs.map +0 -1
  16. package/dist/client/DeleteFlavorModal-C4nAi7gY.mjs +0 -724
  17. package/dist/client/DeleteFlavorModal-C4nAi7gY.mjs.map +0 -1
  18. package/dist/client/DynamicBreadcrumbContext-CVcUQFou.mjs +0 -26
  19. package/dist/client/DynamicBreadcrumbContext-CVcUQFou.mjs.map +0 -1
  20. package/dist/client/FiltersInput-Becwxo_J.mjs +0 -85
  21. package/dist/client/FiltersInput-Becwxo_J.mjs.map +0 -1
  22. package/dist/client/FloatingIpActionModals-Cq10WljB.mjs +0 -466
  23. package/dist/client/FloatingIpActionModals-Cq10WljB.mjs.map +0 -1
  24. package/dist/client/RouteIdLevelDefaultError-DPF_x2tG.mjs +0 -26
  25. package/dist/client/RouteIdLevelDefaultError-DPF_x2tG.mjs.map +0 -1
  26. package/dist/client/Slot-CWb612-_.mjs +0 -28
  27. package/dist/client/Slot-CWb612-_.mjs.map +0 -1
  28. package/dist/client/SortInput-4g7nSTHW.mjs +0 -34
  29. package/dist/client/SortInput-4g7nSTHW.mjs.map +0 -1
  30. package/dist/client/StorageNotFound-B-zVinVD.mjs +0 -30
  31. package/dist/client/StorageNotFound-B-zVinVD.mjs.map +0 -1
  32. package/dist/client/TwoColumnDescriptionList-DKS42RKa.mjs +0 -28
  33. package/dist/client/TwoColumnDescriptionList-DKS42RKa.mjs.map +0 -1
  34. package/dist/client/_-CAsCx-Ay.mjs +0 -6
  35. package/dist/client/_-CAsCx-Ay.mjs.map +0 -1
  36. package/dist/client/_auth-SrDjHL6j.mjs +0 -12
  37. package/dist/client/_auth-SrDjHL6j.mjs.map +0 -1
  38. package/dist/client/_flavorId-BPvssEzn.mjs +0 -277
  39. package/dist/client/_flavorId-BPvssEzn.mjs.map +0 -1
  40. package/dist/client/_flavorId-CFUBcU-l.mjs +0 -27
  41. package/dist/client/_flavorId-CFUBcU-l.mjs.map +0 -1
  42. package/dist/client/_flavorId-CZcIp0Ih.mjs +0 -22
  43. package/dist/client/_flavorId-CZcIp0Ih.mjs.map +0 -1
  44. package/dist/client/_floatingIpId-B8r64AL9.mjs +0 -196
  45. package/dist/client/_floatingIpId-B8r64AL9.mjs.map +0 -1
  46. package/dist/client/_floatingIpId-lEobpOER.mjs +0 -26
  47. package/dist/client/_floatingIpId-lEobpOER.mjs.map +0 -1
  48. package/dist/client/_imageId-BAezmV0Y.mjs +0 -526
  49. package/dist/client/_imageId-BAezmV0Y.mjs.map +0 -1
  50. package/dist/client/_imageId-D-jqz3e3.mjs +0 -40
  51. package/dist/client/_imageId-D-jqz3e3.mjs.map +0 -1
  52. package/dist/client/_imageId-gMdrdnVt.mjs +0 -22
  53. package/dist/client/_imageId-gMdrdnVt.mjs.map +0 -1
  54. package/dist/client/_projectId-BYccdAtX.mjs +0 -77
  55. package/dist/client/_projectId-BYccdAtX.mjs.map +0 -1
  56. package/dist/client/_projectId-CBjZC1tv.mjs +0 -283
  57. package/dist/client/_projectId-CBjZC1tv.mjs.map +0 -1
  58. package/dist/client/_projectId-CLEa1zgw.mjs +0 -30
  59. package/dist/client/_projectId-CLEa1zgw.mjs.map +0 -1
  60. package/dist/client/_projectId-D3VOH5lN.mjs +0 -94
  61. package/dist/client/_projectId-D3VOH5lN.mjs.map +0 -1
  62. package/dist/client/_securityGroupId-BwgZnoiR.mjs +0 -29
  63. package/dist/client/_securityGroupId-BwgZnoiR.mjs.map +0 -1
  64. package/dist/client/_securityGroupId-Cz2NUHdB.mjs +0 -1819
  65. package/dist/client/_securityGroupId-Cz2NUHdB.mjs.map +0 -1
  66. package/dist/client/_serviceType-DS8DxsrP.mjs +0 -20
  67. package/dist/client/_serviceType-DS8DxsrP.mjs.map +0 -1
  68. package/dist/client/_serviceType-M8d9rOT6.mjs +0 -6
  69. package/dist/client/_serviceType-M8d9rOT6.mjs.map +0 -1
  70. package/dist/client/_storageType-BNpP1A2N.mjs +0 -13
  71. package/dist/client/_storageType-BNpP1A2N.mjs.map +0 -1
  72. package/dist/client/_storageType-BxSGKhAI.mjs +0 -15
  73. package/dist/client/_storageType-BxSGKhAI.mjs.map +0 -1
  74. package/dist/client/_storageType-DZYCmiLt.mjs +0 -30
  75. package/dist/client/_storageType-DZYCmiLt.mjs.map +0 -1
  76. package/dist/client/_storageType-UqAMP-8d.mjs +0 -859
  77. package/dist/client/_storageType-UqAMP-8d.mjs.map +0 -1
  78. package/dist/client/_storageType-u51_7OwJ.mjs +0 -7
  79. package/dist/client/_storageType-u51_7OwJ.mjs.map +0 -1
  80. package/dist/client/about-BmQTyLWc.mjs +0 -92
  81. package/dist/client/about-BmQTyLWc.mjs.map +0 -1
  82. package/dist/client/assets/__mocks__/svgMock.d.ts +0 -3
  83. package/dist/client/aurora-CIml-f2f.mjs +0 -19
  84. package/dist/client/aurora-CIml-f2f.mjs.map +0 -1
  85. package/dist/client/build-WuxXRAqf.mjs +0 -14530
  86. package/dist/client/build-WuxXRAqf.mjs.map +0 -1
  87. package/dist/client/cn-DM4Cy3jv.mjs +0 -10
  88. package/dist/client/cn-DM4Cy3jv.mjs.map +0 -1
  89. package/dist/client/flavors-CJVSNz6R.mjs +0 -15
  90. package/dist/client/flavors-CJVSNz6R.mjs.map +0 -1
  91. package/dist/client/flavors-CflJDIEH.mjs +0 -667
  92. package/dist/client/flavors-CflJDIEH.mjs.map +0 -1
  93. package/dist/client/flavors-DWMZ6TuJ.mjs +0 -8
  94. package/dist/client/flavors-DWMZ6TuJ.mjs.map +0 -1
  95. package/dist/client/floatingips-Cz9k80cc.mjs +0 -8
  96. package/dist/client/floatingips-Cz9k80cc.mjs.map +0 -1
  97. package/dist/client/floatingips-DXnRlLvV.mjs +0 -551
  98. package/dist/client/floatingips-DXnRlLvV.mjs.map +0 -1
  99. package/dist/client/floatingips-HRbuLxiN.mjs +0 -22
  100. package/dist/client/floatingips-HRbuLxiN.mjs.map +0 -1
  101. package/dist/client/floatingips-nN1kQmsu.mjs +0 -14
  102. package/dist/client/floatingips-nN1kQmsu.mjs.map +0 -1
  103. package/dist/client/formatBytes-CZv_XyCY.mjs +0 -38
  104. package/dist/client/formatBytes-CZv_XyCY.mjs.map +0 -1
  105. package/dist/client/helpers-1PpYf-fC.mjs +0 -6
  106. package/dist/client/helpers-1PpYf-fC.mjs.map +0 -1
  107. package/dist/client/hooks-D0yKIumu.mjs +0 -22
  108. package/dist/client/hooks-D0yKIumu.mjs.map +0 -1
  109. package/dist/client/imageHelpers-DBhL2ebL.mjs +0 -1272
  110. package/dist/client/imageHelpers-DBhL2ebL.mjs.map +0 -1
  111. package/dist/client/images-BsylWUiH.mjs +0 -2011
  112. package/dist/client/images-BsylWUiH.mjs.map +0 -1
  113. package/dist/client/images-NBf2bV43.mjs +0 -8
  114. package/dist/client/images-NBf2bV43.mjs.map +0 -1
  115. package/dist/client/images-zQq1nSVv.mjs +0 -15
  116. package/dist/client/images-zQq1nSVv.mjs.map +0 -1
  117. package/dist/client/md-kvaGCNAK.mjs +0 -336
  118. package/dist/client/md-kvaGCNAK.mjs.map +0 -1
  119. package/dist/client/network-DuZm76BZ.mjs +0 -8
  120. package/dist/client/network-DuZm76BZ.mjs.map +0 -1
  121. package/dist/client/objects-BudUAfWY.mjs +0 -12909
  122. package/dist/client/objects-BudUAfWY.mjs.map +0 -1
  123. package/dist/client/objects-Dc7sKUr8.mjs +0 -67
  124. package/dist/client/objects-Dc7sKUr8.mjs.map +0 -1
  125. package/dist/client/objects-Dw7oeTq2.mjs +0 -80
  126. package/dist/client/objects-Dw7oeTq2.mjs.map +0 -1
  127. package/dist/client/objects-_g7nGIn5.mjs +0 -25
  128. package/dist/client/objects-_g7nGIn5.mjs.map +0 -1
  129. package/dist/client/objects-eBxvY6_n.mjs +0 -78
  130. package/dist/client/objects-eBxvY6_n.mjs.map +0 -1
  131. package/dist/client/projects-yiK0HGSA.mjs +0 -7
  132. package/dist/client/projects-yiK0HGSA.mjs.map +0 -1
  133. package/dist/client/routeInfo-DP3v74Wg.mjs +0 -19
  134. package/dist/client/routeInfo-DP3v74Wg.mjs.map +0 -1
  135. package/dist/client/routes-CJj7SR_K.mjs +0 -10
  136. package/dist/client/routes-CJj7SR_K.mjs.map +0 -1
  137. package/dist/client/routes-xofA3ksU.mjs +0 -110
  138. package/dist/client/routes-xofA3ksU.mjs.map +0 -1
  139. package/dist/client/securitygroups-CSmsBzUb.mjs +0 -581
  140. package/dist/client/securitygroups-CSmsBzUb.mjs.map +0 -1
  141. package/dist/client/securitygroups-CtKne8UQ.mjs +0 -8
  142. package/dist/client/securitygroups-CtKne8UQ.mjs.map +0 -1
  143. package/dist/client/securitygroups-T7kaNFEp.mjs +0 -15
  144. package/dist/client/securitygroups-T7kaNFEp.mjs.map +0 -1
  145. package/dist/client/securitygroups-WLB1_IM6.mjs +0 -22
  146. package/dist/client/securitygroups-WLB1_IM6.mjs.map +0 -1
  147. package/dist/client/securitygroups-o0IXZM6S.mjs +0 -14
  148. package/dist/client/securitygroups-o0IXZM6S.mjs.map +0 -1
  149. package/dist/client/serviceCatalog-B3lKWC9V.mjs +0 -6
  150. package/dist/client/serviceCatalog-B3lKWC9V.mjs.map +0 -1
  151. package/dist/client/services-D1PbooD1.mjs +0 -6
  152. package/dist/client/services-D1PbooD1.mjs.map +0 -1
  153. package/dist/client/services-DEMVtFyn.mjs +0 -9
  154. package/dist/client/services-DEMVtFyn.mjs.map +0 -1
  155. package/dist/client/storageProviders-CJ5rOh13.mjs +0 -15
  156. package/dist/client/storageProviders-CJ5rOh13.mjs.map +0 -1
  157. package/dist/client/trpcClient-D7gpR7YG.mjs +0 -71
  158. package/dist/client/trpcClient-D7gpR7YG.mjs.map +0 -1
  159. package/dist/client/useBreadcrumbs-ha3IlaxX.mjs +0 -54
  160. package/dist/client/useBreadcrumbs-ha3IlaxX.mjs.map +0 -1
  161. package/dist/client/useErrorTranslation-Dc0eE8Zt.mjs +0 -83
  162. package/dist/client/useErrorTranslation-Dc0eE8Zt.mjs.map +0 -1
  163. package/dist/client/useModal-DCs1OJh7.mjs +0 -12
  164. package/dist/client/useModal-DCs1OJh7.mjs.map +0 -1
  165. package/dist/client/useModalTracking-BYd37pXm.mjs +0 -37
  166. package/dist/client/useModalTracking-BYd37pXm.mjs.map +0 -1
  167. package/dist/client/useProjectId-DBc5lpoU.mjs +0 -11
  168. package/dist/client/useProjectId-DBc5lpoU.mjs.map +0 -1
  169. package/dist/client/useSecurityGroupPermissions--hK4aR8Y.mjs +0 -294
  170. package/dist/client/useSecurityGroupPermissions--hK4aR8Y.mjs.map +0 -1
  171. package/dist/client/useSetBreadcrumb-tn7lBaQV.mjs +0 -19
  172. package/dist/client/useSetBreadcrumb-tn7lBaQV.mjs.map +0 -1
  173. package/dist/client/utils/trpcErrors.d.ts +0 -13
@@ -1,724 +0,0 @@
1
- import { E as e, L as t, Q as n, X as r, ft as i, i as a, m as o, n as s, ot as c, p as l, rt as u, s as d } from "./build-WuxXRAqf.mjs";
2
- import { t as f } from "./useModalTracking-BYd37pXm.mjs";
3
- import { t as p } from "./useErrorTranslation-Dc0eE8Zt.mjs";
4
- import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
5
- import _, { useEffect as v, useMemo as y, useState as b } from "react";
6
- import { Trans as x, useLingui as S } from "@lingui/react";
7
- import { z as C } from "zod";
8
- import { useForm as w, useStore as T } from "@tanstack/react-form";
9
- //#region src/client/routes/_auth/projects/$projectId/compute/flavors/-components/EditSpecModal.tsx
10
- function E(e) {
11
- return Object.entries(e).map(([e, t]) => ({
12
- key: e,
13
- value: t,
14
- isEditing: !1
15
- }));
16
- }
17
- var D = (e, t, n) => e.compute.getExtraSpecs.query({
18
- project_id: t,
19
- flavorId: n
20
- });
21
- function O({ client: i, project: l, flavor: f, isLoading: v, onClose: y, initialSpecs: x }) {
22
- let { i18n: C, _: w } = S(), { translateError: T } = p(), [E, D] = b(x), [O, k] = b({}), [A, j] = b(!1), [M, N] = b(""), [P, F] = b(""), [I, L] = b(!1), [R, z] = b(null), B = I || A || E.some((e) => e.isEditing), V = (e, t) => {
23
- let n = e?.trim();
24
- return n ? E.some((e, r) => e.key.trim() === n && r !== t) ? C._({ id: "i6/ygf" }) : null : C._({ id: "QV1ZPO" });
25
- }, H = async () => {
26
- let e = V(M, E.length);
27
- if (e) {
28
- k({ newKey: "error" }), z(e);
29
- return;
30
- }
31
- if (!P.trim()) {
32
- k({ newValue: "error" }), z(C._({ id: "hXUWyd" }));
33
- return;
34
- }
35
- L(!0);
36
- try {
37
- await i.compute.createExtraSpecs.mutate({
38
- project_id: l,
39
- flavorId: f.id,
40
- extra_specs: { [M.trim()]: P.trim() }
41
- }), D([...E, {
42
- key: M.trim(),
43
- value: P.trim(),
44
- isEditing: !1
45
- }]), N(""), F(""), j(!1), k({}), z(null), c.success(C._({ id: "OhoNl2" }), { description: C._({ id: "De+cs2" }) });
46
- } catch (e) {
47
- let t = T(e instanceof Error ? e.message : "Failed to create property");
48
- z(t);
49
- } finally {
50
- L(!1);
51
- }
52
- }, U = () => {
53
- N(""), F(""), j(!1), k({}), z(null);
54
- }, W = (e) => {
55
- D(E.map((t, n) => n === e ? {
56
- ...t,
57
- isEditing: !0,
58
- editingValue: t.value
59
- } : {
60
- ...t,
61
- isEditing: !1
62
- })), j(!1);
63
- }, G = async (e) => {
64
- let t = E[e];
65
- if (!t.value.trim()) {
66
- k({ [`edit-value-${e}`]: "error" }), z(C._({ id: "hXUWyd" }));
67
- return;
68
- }
69
- L(!0);
70
- try {
71
- let n = t.value.trim();
72
- await i.compute.createExtraSpecs.mutate({
73
- project_id: l,
74
- flavorId: f.id,
75
- extra_specs: { [t.key]: n }
76
- }), D(E.map((r, i) => i === e ? {
77
- key: t.key,
78
- value: n,
79
- isEditing: !1
80
- } : r)), k({}), z(null), c.success(C._({ id: "6/z5tA" }), { description: C._({ id: "qXyZuV" }) });
81
- } catch (e) {
82
- let t = T(e instanceof Error ? e.message : "Failed to update property");
83
- z(t);
84
- } finally {
85
- L(!1);
86
- }
87
- }, K = (e) => {
88
- D(E.map((t, n) => n === e ? {
89
- key: t.key,
90
- value: t.editingValue ?? t.value,
91
- isEditing: !1
92
- } : t)), k({}), z(null);
93
- }, q = async (e) => {
94
- let t = E[e];
95
- L(!0);
96
- try {
97
- await i.compute.deleteExtraSpec.mutate({
98
- project_id: l,
99
- flavorId: f.id,
100
- key: t.key
101
- }), D(E.filter((t, n) => n !== e)), k({}), z(null), c.success(C._({ id: "Sjuoog" }), { description: C._({ id: "6Ur0UX" }) });
102
- } catch (e) {
103
- let t = T(e instanceof Error ? e.message : "Failed to delete property");
104
- z(t);
105
- } finally {
106
- L(!1);
107
- }
108
- }, J = (e, t) => {
109
- D(E.map((n, r) => r === e ? {
110
- ...n,
111
- value: t
112
- } : n)), O[`edit-value-${e}`] && (k((t) => {
113
- let n = { ...t };
114
- return delete n[`edit-value-${e}`], n;
115
- }), z(null));
116
- };
117
- return /*#__PURE__*/ h(r, {
118
- open: !0,
119
- onCancel: () => {
120
- I || (j(!1), N(""), F(""), k({}), z(null), y());
121
- },
122
- size: "xl",
123
- title: C._({ id: "SIfYq6" }),
124
- cancelButtonLabel: C._({ id: "yz7wBu" }),
125
- disableCancelButton: I,
126
- children: v ? /*#__PURE__*/ h(u, {
127
- status: "progress",
128
- title: C._({ id: "USQ/Wg" }),
129
- className: "mt-0"
130
- }) : /*#__PURE__*/ g("div", { children: [
131
- R && /*#__PURE__*/ h(t, {
132
- variant: "error",
133
- text: R,
134
- className: "mb-4"
135
- }),
136
- /*#__PURE__*/ h(n, {
137
- direction: "horizontal",
138
- className: "mb-4 justify-end",
139
- children: /*#__PURE__*/ h(a, {
140
- label: C._({ id: "sWBLli" }),
141
- onClick: () => j(!0),
142
- disabled: B
143
- })
144
- }),
145
- E.length === 0 && !A ? /*#__PURE__*/ h(u, {
146
- status: "empty",
147
- title: C._({ id: "qTRcSX" }),
148
- body: C._({ id: "PVTJPk" }),
149
- className: "m-0"
150
- }) : /*#__PURE__*/ g(d, {
151
- className: "mb-6 grid-cols-2",
152
- alignTerms: "left",
153
- children: [/*#__PURE__*/ h(m, { children: A && /*#__PURE__*/ g(m, { children: [/*#__PURE__*/ h(s, {
154
- className: "col-span-1",
155
- children: /*#__PURE__*/ h(o, {
156
- value: M,
157
- onChange: (e) => {
158
- N(e.target.value), O.newKey && (k((e) => {
159
- let t = { ...e };
160
- return delete t.newKey, t;
161
- }), z(null));
162
- },
163
- placeholder: C._({ id: "x9AdZ8" }),
164
- invalid: !!O.newKey,
165
- autoFocus: !0,
166
- disabled: I
167
- })
168
- }), /*#__PURE__*/ g(e, {
169
- className: "col-span-1 flex items-center gap-2",
170
- children: [/*#__PURE__*/ h("div", {
171
- className: "flex-1",
172
- children: /*#__PURE__*/ h(o, {
173
- value: P,
174
- onChange: (e) => {
175
- F(e.target.value), O.newValue && (k((e) => {
176
- let t = { ...e };
177
- return delete t.newValue, t;
178
- }), z(null));
179
- },
180
- placeholder: C._({ id: "wMHvYH" }),
181
- invalid: !!O.newValue,
182
- disabled: I
183
- })
184
- }), /*#__PURE__*/ g(n, {
185
- direction: "horizontal",
186
- gap: "2",
187
- className: "shrink-0",
188
- children: [/*#__PURE__*/ h(a, {
189
- size: "small",
190
- variant: "primary",
191
- onClick: H,
192
- icon: "check",
193
- title: C._({ id: "tfDRzk" }),
194
- "aria-label": C._({ id: "tfDRzk" }),
195
- disabled: I
196
- }), /*#__PURE__*/ h(a, {
197
- size: "small",
198
- variant: "subdued",
199
- onClick: U,
200
- icon: "close",
201
- title: C._({ id: "bzSI52" }),
202
- "aria-label": C._({ id: "bzSI52" }),
203
- disabled: I
204
- })]
205
- })]
206
- })] }) }), /*#__PURE__*/ h(m, { children: E.map((t, r) => /*#__PURE__*/ g(_.Fragment, { children: [/*#__PURE__*/ h(s, {
207
- className: "col-span-1",
208
- children: (t.isEditing, /*#__PURE__*/ h("span", {
209
- className: "jn:text-theme-high block break-all",
210
- title: t.key,
211
- children: t.key
212
- }))
213
- }), /*#__PURE__*/ h(e, {
214
- className: "col-span-1 flex items-center gap-2",
215
- children: t.isEditing ? /*#__PURE__*/ g(m, { children: [/*#__PURE__*/ h("div", {
216
- className: "flex-1",
217
- children: /*#__PURE__*/ h(o, {
218
- value: t.value,
219
- onChange: (e) => J(r, e.target.value),
220
- invalid: !!O[`edit-value-${r}`],
221
- disabled: I
222
- })
223
- }), /*#__PURE__*/ g(n, {
224
- direction: "horizontal",
225
- gap: "2",
226
- className: "shrink-0",
227
- children: [/*#__PURE__*/ h(a, {
228
- size: "small",
229
- variant: "primary",
230
- onClick: () => G(r),
231
- icon: "check",
232
- title: C._({ id: "tfDRzk" }),
233
- "aria-label": C._({ id: "tfDRzk" }),
234
- disabled: I
235
- }), /*#__PURE__*/ h(a, {
236
- size: "small",
237
- variant: "subdued",
238
- onClick: () => K(r),
239
- icon: "close",
240
- title: C._({ id: "bzSI52" }),
241
- "aria-label": C._({ id: "bzSI52" }),
242
- disabled: I
243
- })]
244
- })] }) : /*#__PURE__*/ g(m, { children: [/*#__PURE__*/ h("span", {
245
- className: "jn:text-theme-default flex-1 break-all",
246
- title: t.value,
247
- children: t.value
248
- }), /*#__PURE__*/ g(n, {
249
- direction: "horizontal",
250
- gap: "2",
251
- className: "shrink-0",
252
- children: [/*#__PURE__*/ h(a, {
253
- size: "small",
254
- variant: "subdued",
255
- onClick: () => W(r),
256
- icon: "edit",
257
- "data-testid": `edit-${t.key}`,
258
- title: C._({ id: "ePK91l" }),
259
- disabled: B
260
- }), /*#__PURE__*/ h(a, {
261
- size: "small",
262
- onClick: () => q(r),
263
- icon: "deleteForever",
264
- "data-testid": `delete-${t.key}`,
265
- title: C._({ id: "cnGeoo" }),
266
- "aria-label": C._({ id: "cnGeoo" }),
267
- disabled: B
268
- })]
269
- })] })
270
- })] }, r)) })]
271
- })
272
- ] })
273
- });
274
- }
275
- var k = ({ client: e, isOpen: t, onClose: n, project: i, flavor: a }) => {
276
- let { i18n: o, _: s } = S(), { translateError: c } = p(), [l, d] = b(null), [f, m] = b(!1), [g, _] = b(null);
277
- v(() => {
278
- if (!t || !a?.id) {
279
- d(null), _(null);
280
- return;
281
- }
282
- let n = !1;
283
- return m(!0), _(null), (async () => {
284
- try {
285
- let t = await D(e, i, a.id);
286
- if (n) return;
287
- d(t);
288
- } catch (e) {
289
- if (n) return;
290
- _(e instanceof Error ? e.message : "Failed to Load Metadata");
291
- } finally {
292
- n || m(!1);
293
- }
294
- })(), () => {
295
- n = !0;
296
- };
297
- }, [
298
- t,
299
- a?.id,
300
- e,
301
- i
302
- ]);
303
- let x = y(() => l ? E(l) : [], [l]);
304
- return !t || !a ? null : f ? /*#__PURE__*/ h(r, {
305
- open: !0,
306
- onCancel: n,
307
- size: "xl",
308
- title: o._({ id: "SIfYq6" }),
309
- children: /*#__PURE__*/ h(u, {
310
- status: "progress",
311
- title: o._({ id: "USQ/Wg" }),
312
- className: "mt-0"
313
- })
314
- }) : g ? /*#__PURE__*/ h(r, {
315
- open: !0,
316
- onCancel: n,
317
- size: "xl",
318
- title: o._({ id: "SIfYq6" }),
319
- children: /*#__PURE__*/ h(u, {
320
- status: "error",
321
- title: o._({ id: "mXHHga" }),
322
- body: c(g),
323
- className: "mt-0"
324
- })
325
- }) : /*#__PURE__*/ h(O, {
326
- client: e,
327
- project: i,
328
- flavor: a,
329
- isLoading: !1,
330
- onClose: n,
331
- initialSpecs: x
332
- }, a.id);
333
- }, A = (e) => ({
334
- message: /*#__PURE__*/ h(x, { id: "82AGsl" }),
335
- description: /*#__PURE__*/ h(x, {
336
- id: "/BrQY5",
337
- values: { name: e }
338
- })
339
- }), j = (e) => ({
340
- message: /*#__PURE__*/ h(x, { id: "AXvHUK" }),
341
- description: /*#__PURE__*/ h(x, {
342
- id: "zLKgq7",
343
- values: { name: e }
344
- })
345
- }), M = (e, t) => ({
346
- message: /*#__PURE__*/ h(x, { id: "f5ua4b" }),
347
- description: /*#__PURE__*/ h(x, {
348
- id: "uWOaBO",
349
- values: {
350
- projectId: e,
351
- flavorName: t
352
- }
353
- })
354
- }), N = (e, t) => ({
355
- message: /*#__PURE__*/ h(x, { id: "8las2k" }),
356
- description: /*#__PURE__*/ h(x, {
357
- id: "pVIs7q",
358
- values: {
359
- projectId: e,
360
- flavorName: t
361
- }
362
- })
363
- }), P = (e, t) => ({
364
- message: /*#__PURE__*/ h(x, { id: "m1kN9i" }),
365
- description: /*#__PURE__*/ h(x, {
366
- id: "x4oeph",
367
- values: {
368
- projectId: e,
369
- errorMessage: t
370
- }
371
- })
372
- });
373
- //#endregion
374
- //#region src/client/routes/_auth/projects/$projectId/compute/flavors/-components/ManageAccessModal.tsx
375
- function F(e) {
376
- return e.map((e) => ({ projectId: e.tenant_id }));
377
- }
378
- var I = (e, t) => e.compute.canUser.query({
379
- project_id: t,
380
- permission: ["flavors:add_project", "flavors:remove_project"]
381
- }).then(([e, t]) => ({
382
- canAdd: e,
383
- canRemove: t
384
- })), L = (e, t, n) => e.compute.getFlavorAccess.query({
385
- project_id: t,
386
- flavorId: n
387
- });
388
- function R({ client: i, project: l, flavor: f, isLoading: v, onClose: y, initialAccess: x, canAdd: C, canRemove: w }) {
389
- let { i18n: T, _: E } = S(), { translateError: D } = p(), [O, k] = b(x), [A, j] = b({}), [F, I] = b(!1), [L, R] = b(""), [z, B] = b(/* @__PURE__ */ new Set()), [V, H] = b(!1), U = f["os-flavor-access:is_public"] !== !1, W = (e) => {
390
- let t = e?.trim();
391
- return t ? O.some((e) => e.projectId.trim() === t) ? T._({ id: "8gXJTW" }) : null : T._({ id: "sMpIRo" });
392
- }, G = async () => {
393
- let e = W(L);
394
- if (e) {
395
- j({ newProjectId: e });
396
- return;
397
- }
398
- let t = L.trim();
399
- H(!0), j({});
400
- try {
401
- await i.compute.addTenantAccess.mutate({
402
- project_id: l,
403
- flavorId: f.id,
404
- targetProjectId: t
405
- }), k((e) => [...e, { projectId: t }]), R(""), I(!1);
406
- let { message: e, ...n } = M(t, f.name);
407
- c.success(e, n);
408
- } catch (e) {
409
- let t = D(e instanceof Error ? e.message : "Failed to add access");
410
- j({ newProjectId: t });
411
- } finally {
412
- H(!1);
413
- }
414
- }, K = () => {
415
- R(""), I(!1), j({});
416
- }, q = async (e) => {
417
- j({}), B((t) => new Set(t).add(e));
418
- try {
419
- await i.compute.removeTenantAccess.mutate({
420
- project_id: l,
421
- flavorId: f.id,
422
- targetProjectId: e
423
- }), k((t) => t.filter((t) => t.projectId !== e));
424
- let { message: t, ...n } = N(e, f.name);
425
- c.success(t, n);
426
- } catch (t) {
427
- let { message: n, ...r } = P(e, D(t instanceof Error ? t.message : "Failed to remove access"));
428
- c.error(n, r);
429
- } finally {
430
- B((t) => {
431
- let n = new Set(t);
432
- return n.delete(e), n;
433
- });
434
- }
435
- }, J = () => {
436
- I(!1), R(""), j({}), y();
437
- };
438
- if (U) {
439
- let e = f.name;
440
- return /*#__PURE__*/ h(r, {
441
- open: !0,
442
- onCancel: J,
443
- size: "large",
444
- title: T._({
445
- id: "6Rnrsz",
446
- values: { flavorName: e }
447
- }),
448
- children: /*#__PURE__*/ h("p", {
449
- className: "jn:text-theme-light py-8 text-center",
450
- children: T._({ id: "gzPLLI" })
451
- })
452
- });
453
- }
454
- let Y = f.name, X = V || z.size > 0;
455
- return /*#__PURE__*/ h(r, {
456
- open: !0,
457
- onCancel: J,
458
- size: "large",
459
- title: T._({
460
- id: "6Rnrsz",
461
- values: { flavorName: Y }
462
- }),
463
- children: v ? /*#__PURE__*/ h(u, {
464
- status: "progress",
465
- title: T._({ id: "Z+2zIa" }),
466
- className: "mt-0"
467
- }) : /*#__PURE__*/ g("div", { children: [
468
- A.newProjectId && /*#__PURE__*/ h(t, {
469
- variant: "error",
470
- text: A.newProjectId,
471
- className: "mb-4"
472
- }),
473
- C && /*#__PURE__*/ h(n, {
474
- direction: "horizontal",
475
- className: "mb-4 justify-end",
476
- children: /*#__PURE__*/ h(a, {
477
- label: T._({ id: "zmHcLu" }),
478
- onClick: () => I(!0),
479
- disabled: F || X
480
- })
481
- }),
482
- O.length === 0 && !F ? /*#__PURE__*/ h("p", {
483
- className: "jn:text-theme-light py-8 text-center",
484
- children: C ? T._({ id: "R8o5/x" }) : T._({ id: "PonzUM" })
485
- }) : /*#__PURE__*/ g(d, {
486
- className: "mb-6",
487
- children: [/*#__PURE__*/ h(m, { children: F && /*#__PURE__*/ g(m, { children: [/*#__PURE__*/ h(s, {
488
- className: "flex items-center justify-end",
489
- children: /*#__PURE__*/ h("span", {
490
- className: "jn:text-theme-high",
491
- children: T._({ id: "e0NrBM" })
492
- })
493
- }), /*#__PURE__*/ h(e, { children: /*#__PURE__*/ g("div", {
494
- className: "flex w-full items-center gap-2",
495
- children: [/*#__PURE__*/ h("div", {
496
- className: "flex-1",
497
- children: /*#__PURE__*/ h(o, {
498
- value: L,
499
- onChange: (e) => {
500
- R(e.target.value), A.newProjectId && j({});
501
- },
502
- placeholder: T._({ id: "vlyDm2" }),
503
- invalid: !!A.newProjectId,
504
- autoFocus: !0,
505
- wrapperClassName: "w-full",
506
- disabled: V
507
- })
508
- }), /*#__PURE__*/ g("div", {
509
- className: "flex shrink-0 gap-2",
510
- children: [/*#__PURE__*/ h(a, {
511
- size: "small",
512
- variant: "primary",
513
- onClick: G,
514
- icon: "check",
515
- title: T._({ id: "m16xKo" }),
516
- disabled: V,
517
- progress: V
518
- }), /*#__PURE__*/ h(a, {
519
- size: "small",
520
- variant: "subdued",
521
- onClick: K,
522
- icon: "close",
523
- title: T._({ id: "dEgA5A" }),
524
- disabled: V
525
- })]
526
- })]
527
- }) })] }) }), /*#__PURE__*/ h(m, { children: O.map((t) => {
528
- let r = z.has(t.projectId);
529
- return /*#__PURE__*/ g(_.Fragment, { children: [/*#__PURE__*/ h(s, { children: /*#__PURE__*/ h("span", {
530
- className: "jn:text-theme-high",
531
- children: T._({ id: "e0NrBM" })
532
- }) }), /*#__PURE__*/ h(e, { children: /*#__PURE__*/ g(n, {
533
- direction: "horizontal",
534
- gap: "2",
535
- alignment: "center",
536
- className: "justify-between",
537
- children: [/*#__PURE__*/ h("span", {
538
- className: "jn:text-theme-high block max-w-xs truncate",
539
- title: t.projectId,
540
- children: t.projectId
541
- }), w && /*#__PURE__*/ h(a, {
542
- size: "small",
543
- onClick: () => q(t.projectId),
544
- icon: "deleteForever",
545
- "data-testid": `delete-${t.projectId}`,
546
- title: T._({ id: "t/YqKh" }),
547
- disabled: r || F,
548
- progress: r
549
- })]
550
- }) })] }, t.projectId);
551
- }) })]
552
- })
553
- ] })
554
- });
555
- }
556
- var z = ({ client: e, isOpen: t, onClose: n, project: i, flavor: a }) => {
557
- let { i18n: o, _: s } = S(), { translateError: c } = p(), [l, d] = b(null), [f, m] = b(null), [g, _] = b(!0), [x, C] = b(null);
558
- v(() => {
559
- if (!t || !a?.id) {
560
- d(null), m(null), C(null);
561
- return;
562
- }
563
- let n = !1;
564
- return _(!0), C(null), (async () => {
565
- try {
566
- let [t, r] = await Promise.all([L(e, i, a.id), I(e, i)]);
567
- if (n) return;
568
- let o = t.filter((e, t, n) => n.findIndex((t) => t.tenant_id === e.tenant_id) === t);
569
- d(o), m(r);
570
- } catch (e) {
571
- if (n) return;
572
- C(e instanceof Error ? e.message : "Failed to Load Access Data");
573
- } finally {
574
- n || _(!1);
575
- }
576
- })(), () => {
577
- n = !0;
578
- };
579
- }, [
580
- t,
581
- a?.id,
582
- e,
583
- i
584
- ]);
585
- let w = y(() => l ? F(l) : [], [l]);
586
- if (!t || !a) return null;
587
- let T = a.name;
588
- return g ? /*#__PURE__*/ h(r, {
589
- open: !0,
590
- onCancel: n,
591
- size: "large",
592
- title: o._({
593
- id: "6Rnrsz",
594
- values: { flavorName: T }
595
- }),
596
- children: /*#__PURE__*/ h(u, {
597
- status: "progress",
598
- title: o._({ id: "Z+2zIa" }),
599
- className: "mt-0"
600
- })
601
- }) : x ? /*#__PURE__*/ h(r, {
602
- open: !0,
603
- onCancel: n,
604
- size: "large",
605
- title: o._({
606
- id: "6Rnrsz",
607
- values: { flavorName: T }
608
- }),
609
- children: /*#__PURE__*/ h(u, {
610
- status: "error",
611
- title: o._({ id: "LMKSWT" }),
612
- body: c(x),
613
- className: "mt-0"
614
- })
615
- }) : /*#__PURE__*/ h(R, {
616
- client: e,
617
- project: i,
618
- flavor: a,
619
- isLoading: !1,
620
- onClose: n,
621
- initialAccess: w,
622
- canAdd: f?.canAdd ?? !1,
623
- canRemove: f?.canRemove ?? !1
624
- }, a.id);
625
- }, B = ({ client: a, isOpen: c, onClose: u, project: m, flavor: _, onSuccess: v }) => {
626
- let { i18n: y, _: E } = S(), { translateError: D } = p(), [O, k] = b(!1), [A, j] = b(null), { trackClose: M, markSubmitted: N, resetTracking: P } = f({
627
- isOpen: c,
628
- actionPrefix: "compute.flavor.delete"
629
- }), F = C.object({ confirm: C.string().refine((e) => e === "delete", { message: y._({ id: "QytzQr" }) }) }), I = w({
630
- defaultValues: { confirm: "" },
631
- validators: { onSubmit: F },
632
- onSubmit: async () => {
633
- if (!_?.id) {
634
- j(y._({ id: "NlcF/v" }));
635
- return;
636
- }
637
- if (!O) {
638
- N(), j(null);
639
- try {
640
- k(!0), await a.compute.deleteFlavor.mutate({
641
- project_id: m,
642
- flavorId: _.id
643
- }), v(), R();
644
- } catch (e) {
645
- let t = e?.message ? D(e.message) : y._({ id: "8zAn1f" });
646
- j(t);
647
- } finally {
648
- k(!1);
649
- }
650
- }
651
- }
652
- }), L = T(I.store, (e) => e.isSubmitting || e.values.confirm !== "delete"), R = () => {
653
- M(), k(!1), j(null), I.reset(), P(), u();
654
- }, z = O ? y._({ id: "EF2EU9" }) : y._({ id: "JT3I1g" }), B = _?.name;
655
- return /*#__PURE__*/ h(r, {
656
- open: c,
657
- onCancel: R,
658
- title: y._({
659
- id: "W3mNTY",
660
- values: { flavorName: B }
661
- }),
662
- size: "small",
663
- confirmButtonLabel: z,
664
- confirmButtonVariant: "primary-danger",
665
- onConfirm: I.handleSubmit,
666
- cancelButtonLabel: y._({ id: "dEgA5A" }),
667
- disableConfirmButton: L || O,
668
- disableCancelButton: O,
669
- disableCloseButton: O,
670
- children: /*#__PURE__*/ g(n, {
671
- direction: "vertical",
672
- gap: "4",
673
- children: [
674
- A && /*#__PURE__*/ h(t, {
675
- variant: "error",
676
- children: A
677
- }),
678
- /*#__PURE__*/ h("p", {
679
- className: "text-theme-default",
680
- children: /*#__PURE__*/ h(x, { id: "QQ8wUG" })
681
- }),
682
- _ && /*#__PURE__*/ g(d, { children: [
683
- /*#__PURE__*/ h(s, { children: y._({ id: "6YtxFj" }) }),
684
- /*#__PURE__*/ h(e, { children: _.name }),
685
- /*#__PURE__*/ h(s, { children: y._({ id: "S0kLOH" }) }),
686
- /*#__PURE__*/ h(e, { children: _.id }),
687
- /*#__PURE__*/ h(s, { children: y._({ id: "MZGbkp" }) }),
688
- /*#__PURE__*/ h(e, { children: _.vcpus }),
689
- /*#__PURE__*/ h(s, { children: y._({ id: "RGhYAo" }) }),
690
- /*#__PURE__*/ g(e, { children: [_.ram, " MiB"] }),
691
- /*#__PURE__*/ h(s, { children: y._({ id: "sPFHpI" }) }),
692
- /*#__PURE__*/ g(e, { children: [_.disk, " GiB"] }),
693
- /*#__PURE__*/ h(s, { children: y._({ id: "vH2C/2" }) }),
694
- /*#__PURE__*/ h(e, { children: _.swap === 0 || _.swap === "" ? /*#__PURE__*/ h(x, { id: "EdQY6l" }) : `${Number(_.swap)} MiB` })
695
- ] }),
696
- /*#__PURE__*/ h(i, {
697
- className: "mb-0",
698
- id: "delete-flavor-form",
699
- onSubmit: (e) => {
700
- e.preventDefault(), I.handleSubmit();
701
- },
702
- children: /*#__PURE__*/ h(l, { children: /*#__PURE__*/ h(I.Field, {
703
- name: "confirm",
704
- children: (e) => /*#__PURE__*/ h(o, {
705
- id: e.name,
706
- name: e.name,
707
- label: y._({ id: "QytzQr" }),
708
- value: e.state.value,
709
- onChange: (t) => e.handleChange(t.target.value),
710
- placeholder: "delete",
711
- autoFocus: !0,
712
- disabled: O,
713
- required: !0
714
- })
715
- }) })
716
- })
717
- ]
718
- })
719
- });
720
- };
721
- //#endregion
722
- export { k as a, j as i, z as n, A as r, B as t };
723
-
724
- //# sourceMappingURL=DeleteFlavorModal-C4nAi7gY.mjs.map