@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
@@ -0,0 +1,773 @@
1
+ import { E as e, K as t, L as n, Q as r, X as i, ft as a, i as o, m as s, n as c, p as l, s as u } from "./build-WuxXRAqf.mjs";
2
+ import { t as d } from "./useModalTracking-BcOKTYRN.mjs";
3
+ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
4
+ import h, { useEffect as g, useMemo as _, useState as v } from "react";
5
+ import { Trans as y, useLingui as b } from "@lingui/react";
6
+ import { z as x } from "zod";
7
+ import { useForm as S, useStore as C } from "@tanstack/react-form";
8
+ //#region src/client/utils/useErrorTranslation.ts
9
+ var w = () => {
10
+ let { i18n: e, _: t } = b();
11
+ return {
12
+ translateError: (t) => {
13
+ switch (t) {
14
+ case "FLAVORS_UNAUTHORIZED": return e._({ id: "1iUuTT" });
15
+ case "FLAVORS_FORBIDDEN": return e._({ id: "mSLePW" });
16
+ case "FLAVORS_NOT_FOUND": return e._({ id: "EQnVgi" });
17
+ case "FLAVORS_SERVER_ERROR": return e._({ id: "Hivb/4" });
18
+ case "FLAVORS_FETCH_FAILED": return e._({ id: "EztMB8" });
19
+ case "FLAVORS_PARSE_ERROR": return e._({ id: "t1fq6V" });
20
+ case "GET_FLAVOR_DETAILS_UNAUTHORIZED": return e._({ id: "zCD96i" });
21
+ case "GET_FLAVOR_DETAILS_FORBIDDEN": return e._({ id: "/9Squ9" });
22
+ case "GET_FLAVOR_DETAILS_NOT_FOUND": return e._({ id: "HxTYrE" });
23
+ case "GET_FLAVOR_DETAILS_SERVER_ERROR": return e._({ id: "KJC+M7" });
24
+ case "GET_FLAVOR_DETAILS_INVALID_ID": return e._({ id: "YUU0QW" });
25
+ case "GET_FLAVOR_DETAILS_PARSE_ERROR": return e._({ id: "ZUmOzn" });
26
+ case "GET_FLAVOR_DETAILS_FAILED": return e._({ id: "RCr0yv" });
27
+ case "CREATE_FLAVOR_INVALID_DATA": return e._({ id: "0kCt7e" });
28
+ case "CREATE_FLAVOR_UNAUTHORIZED": return e._({ id: "oDkgME" });
29
+ case "CREATE_FLAVOR_FORBIDDEN": return e._({ id: "cPKL6O" });
30
+ case "CREATE_FLAVOR_CONFLICT": return e._({ id: "OlmKCg" });
31
+ case "CREATE_FLAVOR_SERVER_ERROR": return e._({ id: "qaAo9Y" });
32
+ case "CREATE_FLAVOR_FAILED": return e._({ id: "QuJSSl" });
33
+ case "DELETE_FLAVOR_UNAUTHORIZED": return e._({ id: "2gH+i8" });
34
+ case "DELETE_FLAVOR_FORBIDDEN": return e._({ id: "EPMHs9" });
35
+ case "DELETE_FLAVOR_NOT_FOUND": return e._({ id: "rIi6x4" });
36
+ case "DELETE_FLAVOR_SERVER_ERROR": return e._({ id: "tASa/P" });
37
+ case "DELETE_FLAVOR_FAILED": return e._({ id: "h3P8z+" });
38
+ case "DELETE_FLAVOR_INVALID_ID": return e._({ id: "YUU0QW" });
39
+ case "CREATE_EXTRA_SPECS_UNAUTHORIZED": return e._({ id: "RTQFAw" });
40
+ case "CREATE_EXTRA_SPECS_FORBIDDEN": return e._({ id: "kGmM/p" });
41
+ case "CREATE_EXTRA_SPECS_NOT_FOUND": return e._({ id: "HxTYrE" });
42
+ case "CREATE_EXTRA_SPECS_CONFLICT": return e._({ id: "6oolxV" });
43
+ case "CREATE_EXTRA_SPECS_INVALID_DATA": return e._({ id: "JoECY1" });
44
+ case "CREATE_EXTRA_SPECS_SERVER_ERROR": return e._({ id: "jMc/mo" });
45
+ case "CREATE_EXTRA_SPECS_PARSE_ERROR": return e._({ id: "07WXfc" });
46
+ case "CREATE_EXTRA_SPECS_FAILED": return e._({ id: "7BpykL" });
47
+ case "GET_EXTRA_SPECS_UNAUTHORIZED": return e._({ id: "3nWqQW" });
48
+ case "GET_EXTRA_SPECS_FORBIDDEN": return e._({ id: "wcUecy" });
49
+ case "GET_EXTRA_SPECS_NOT_FOUND": return e._({ id: "M470oJ" });
50
+ case "GET_EXTRA_SPECS_SERVER_ERROR": return e._({ id: "tIrNgH" });
51
+ case "GET_EXTRA_SPECS_PARSE_ERROR": return e._({ id: "07WXfc" });
52
+ case "GET_EXTRA_SPECS_FAILED": return e._({ id: "lhIa6x" });
53
+ case "DELETE_EXTRA_SPEC_UNAUTHORIZED": return e._({ id: "dVdc7N" });
54
+ case "DELETE_EXTRA_SPEC_FORBIDDEN": return e._({ id: "YrAy/S" });
55
+ case "DELETE_EXTRA_SPEC_NOT_FOUND": return e._({ id: "vBUQNE" });
56
+ case "DELETE_EXTRA_SPEC_SERVER_ERROR": return e._({ id: "0kc0zi" });
57
+ case "DELETE_EXTRA_SPEC_INVALID_KEY": return e._({ id: "ylfbpz" });
58
+ case "DELETE_EXTRA_SPEC_FAILED": return e._({ id: "TfdeUd" });
59
+ case "GET_FLAVOR_ACCESS_UNAUTHORIZED": return e._({ id: "Mt6sRo" });
60
+ case "GET_FLAVOR_ACCESS_FORBIDDEN": return e._({ id: "MbKJNP" });
61
+ case "GET_FLAVOR_ACCESS_NOT_FOUND": return e._({ id: "HxTYrE" });
62
+ case "GET_FLAVOR_ACCESS_SERVER_ERROR": return e._({ id: "YsOJlj" });
63
+ case "GET_FLAVOR_ACCESS_FAILED": return e._({ id: "bISG26" });
64
+ case "ADD_TENANT_ACCESS_FAILED": return e._({ id: "rIe0oV" });
65
+ case "ADD_TENANT_ACCESS_INVALID_DATA": return e._({ id: "gztCjq" });
66
+ case "ADD_TENANT_ACCESS_UNAUTHORIZED": return e._({ id: "+Lt5cp" });
67
+ case "ADD_TENANT_ACCESS_FORBIDDEN": return e._({ id: "8s0tOH" });
68
+ case "ADD_TENANT_ACCESS_NOT_FOUND": return e._({ id: "1rPB1p" });
69
+ case "ADD_TENANT_ACCESS_CONFLICT": return e._({ id: "NRMm0E" });
70
+ case "ADD_TENANT_ACCESS_SERVER_ERROR": return e._({ id: "KoQP4F" });
71
+ case "REMOVE_TENANT_ACCESS_FAILED": return e._({ id: "ZhVSpK" });
72
+ case "REMOVE_TENANT_ACCESS_INVALID_DATA": return e._({ id: "gztCjq" });
73
+ case "REMOVE_TENANT_ACCESS_UNAUTHORIZED": return e._({ id: "78+riR" });
74
+ case "REMOVE_TENANT_ACCESS_FORBIDDEN": return e._({ id: "qs+BrU" });
75
+ case "REMOVE_TENANT_ACCESS_NOT_FOUND": return e._({ id: "Do5/uH" });
76
+ case "REMOVE_TENANT_ACCESS_CONFLICT": return e._({ id: "+nQTmZ" });
77
+ case "REMOVE_TENANT_ACCESS_SERVER_ERROR": return e._({ id: "0BSSYj" });
78
+ case "COMPUTE_SERVICE_UNAVAILABLE": return e._({ id: "gGdfWx" });
79
+ case "COMPUTE_SERVICE_CONNECTION_FAILED": return e._({ id: "Qg4EG6" });
80
+ default: return e._({ id: "byKna+" });
81
+ }
82
+ },
83
+ isRetryableError: (e) => ["FLAVORS_SERVER_ERROR", "FLAVORS_FETCH_FAILED"].includes(e)
84
+ };
85
+ };
86
+ //#endregion
87
+ //#region src/client/routes/_auth/projects/$projectId/compute/flavors/-components/EditSpecModal.tsx
88
+ function T(e) {
89
+ return Object.entries(e).map(([e, t]) => ({
90
+ key: e,
91
+ value: t,
92
+ isNew: !1,
93
+ isEditing: !1,
94
+ originalKey: e,
95
+ originalValue: t
96
+ }));
97
+ }
98
+ var E = (e, t) => e.compute.canUser.query({
99
+ project_id: t,
100
+ permission: ["flavor_specs:create", "flavor_specs:delete"]
101
+ }).then(([e, t]) => ({
102
+ canCreate: e,
103
+ canDelete: t
104
+ })), D = (e, t, n) => e.compute.getExtraSpecs.query({
105
+ project_id: t,
106
+ flavorId: n
107
+ });
108
+ function O({ client: a, project: l, flavor: d, isLoading: g, onClose: y, initialSpecs: x, canEdit: S }) {
109
+ let { i18n: C, _: T } = b(), { translateError: E } = w(), [D, O] = v(x), [k, A] = v({}), [j, M] = v(!1), [N, P] = v(""), [F, I] = v(""), [L, R] = v(!1), [z, B] = v(null), V = !_(() => {
110
+ let e = new Map(D.map((e) => [e.key.trim(), e.value.trim()])), t = new Map(x.map((e) => [e.key.trim(), e.value.trim()]));
111
+ if (e.size !== t.size) return !0;
112
+ for (let [n, r] of e) if (t.get(n) !== r) return !0;
113
+ return !1;
114
+ }, [D, x]) || g || L || j || D.some((e) => e.isEditing), H = (e, t) => {
115
+ let n = e?.trim();
116
+ return n ? D.some((e, r) => e.key.trim() === n && r !== t) ? C._({ id: "i6/ygf" }) : null : C._({ id: "QV1ZPO" });
117
+ }, U = () => {
118
+ let e = H(N, D.length);
119
+ if (e) {
120
+ A({ newKey: e });
121
+ return;
122
+ }
123
+ if (!F.trim()) {
124
+ A({ newValue: C._({ id: "hXUWyd" }) });
125
+ return;
126
+ }
127
+ O([...D, {
128
+ key: N.trim(),
129
+ value: F.trim(),
130
+ isNew: !0,
131
+ isEditing: !1
132
+ }]), P(""), I(""), M(!1), A({});
133
+ }, W = () => {
134
+ P(""), I(""), M(!1), A({});
135
+ }, G = (e) => {
136
+ O(D.map((t, n) => n === e ? {
137
+ ...t,
138
+ isEditing: !0
139
+ } : {
140
+ ...t,
141
+ isEditing: !1
142
+ })), M(!1);
143
+ }, K = (e) => {
144
+ let t = D[e], n = H(t.key, e);
145
+ if (n) {
146
+ A({ [`edit-${e}`]: n });
147
+ return;
148
+ }
149
+ if (!t.value.trim()) {
150
+ A({ [`edit-${e}`]: C._({ id: "hXUWyd" }) });
151
+ return;
152
+ }
153
+ O(D.map((t, n) => n === e ? {
154
+ ...t,
155
+ isEditing: !1,
156
+ key: t.key.trim(),
157
+ value: t.value.trim()
158
+ } : t)), A({});
159
+ }, q = (e) => {
160
+ O(D.map((t, n) => n === e ? {
161
+ ...t,
162
+ isEditing: !1,
163
+ key: t.originalKey ?? t.key,
164
+ value: t.originalValue ?? t.value
165
+ } : t)), A({});
166
+ }, J = (e) => {
167
+ O(D.filter((t, n) => n !== e)), A({});
168
+ }, Y = (e, t) => {
169
+ O(D.map((n, r) => r === e ? {
170
+ ...n,
171
+ key: t
172
+ } : n)), k[`edit-${e}`] && A((t) => {
173
+ let n = { ...t };
174
+ return delete n[`edit-${e}`], n;
175
+ });
176
+ }, X = (e, t) => {
177
+ O(D.map((n, r) => r === e ? {
178
+ ...n,
179
+ value: t
180
+ } : n)), k[`edit-${e}`] && A((t) => {
181
+ let n = { ...t };
182
+ return delete n[`edit-${e}`], n;
183
+ });
184
+ };
185
+ return /*#__PURE__*/ p(i, {
186
+ open: !0,
187
+ onCancel: () => {
188
+ O(x), M(!1), P(""), I(""), A({}), B(null), y();
189
+ },
190
+ size: "large",
191
+ title: S ? C._({ id: "SIfYq6" }) : C._({ id: "6GBt0m" }),
192
+ onConfirm: S ? async () => {
193
+ R(!0), B(null);
194
+ try {
195
+ let e = new Set(D.map((e) => e.key)), t = x.filter((t) => !e.has(t.key)).map((e) => e.originalKey).filter(Boolean);
196
+ D.forEach((e) => {
197
+ e.originalKey && e.key !== e.originalKey && !e.isNew && t.push(e.originalKey);
198
+ });
199
+ let n = {};
200
+ D.forEach((e) => {
201
+ (e.isNew || e.key !== e.originalKey || e.value !== e.originalValue) && (n[e.key] = e.value);
202
+ });
203
+ for (let e of new Set(t)) await a.compute.deleteExtraSpec.mutate({
204
+ project_id: l,
205
+ flavorId: d.id,
206
+ key: e
207
+ });
208
+ Object.keys(n).length > 0 && await a.compute.createExtraSpecs.mutate({
209
+ project_id: l,
210
+ flavorId: d.id,
211
+ extra_specs: n
212
+ }), y();
213
+ } catch (e) {
214
+ B(E(e instanceof Error ? e.message : "Failed to save changes"));
215
+ } finally {
216
+ R(!1);
217
+ }
218
+ } : void 0,
219
+ confirmButtonLabel: L ? C._({ id: "XvjC4F" }) : C._({ id: "IUwGEM" }),
220
+ cancelButtonLabel: C._({ id: "dEgA5A" }),
221
+ disableConfirmButton: V,
222
+ disableCancelButton: L,
223
+ disableCloseButton: L,
224
+ children: g ? /*#__PURE__*/ p(r, {
225
+ distribution: "center",
226
+ alignment: "center",
227
+ children: /*#__PURE__*/ p(t, { variant: "primary" })
228
+ }) : /*#__PURE__*/ m("div", { children: [
229
+ z && /*#__PURE__*/ p(n, {
230
+ variant: "error",
231
+ text: z,
232
+ className: "mb-4",
233
+ onDismiss: () => B(null)
234
+ }),
235
+ S && /*#__PURE__*/ p(r, {
236
+ direction: "horizontal",
237
+ className: "jn:bg-theme-background-lvl-1 mb-4 justify-end p-2",
238
+ children: /*#__PURE__*/ p(o, {
239
+ label: C._({ id: "sWBLli" }),
240
+ onClick: () => M(!0),
241
+ variant: "primary",
242
+ disabled: j || D.some((e) => e.isEditing),
243
+ icon: "addCircle"
244
+ })
245
+ }),
246
+ D.length === 0 && !j ? /*#__PURE__*/ p("p", {
247
+ className: "jn:text-theme-light py-8 text-center",
248
+ children: S ? C._({ id: "rq9NT7" }) : C._({ id: "Nx16ic" })
249
+ }) : /*#__PURE__*/ m(u, {
250
+ className: "mb-6",
251
+ children: [
252
+ /*#__PURE__*/ p(c, { children: C._({ id: "T8N6oi" }) }),
253
+ /*#__PURE__*/ p(e, { children: C._({ id: "wMHvYH" }) }),
254
+ /*#__PURE__*/ p(f, { children: j && /*#__PURE__*/ m(f, { children: [/*#__PURE__*/ p(c, { children: /*#__PURE__*/ p(s, {
255
+ value: N,
256
+ onChange: (e) => {
257
+ P(e.target.value), k.newKey && A((e) => {
258
+ let t = { ...e };
259
+ return delete t.newKey, t;
260
+ });
261
+ },
262
+ placeholder: C._({ id: "x9AdZ8" }),
263
+ errortext: k.newKey,
264
+ autoFocus: !0
265
+ }) }), /*#__PURE__*/ p(e, { children: /*#__PURE__*/ m(r, {
266
+ direction: "horizontal",
267
+ gap: "2",
268
+ alignment: "center",
269
+ className: "justify-between",
270
+ children: [/*#__PURE__*/ p(s, {
271
+ value: F,
272
+ onChange: (e) => {
273
+ I(e.target.value), k.newValue && A((e) => {
274
+ let t = { ...e };
275
+ return delete t.newValue, t;
276
+ });
277
+ },
278
+ placeholder: C._({ id: "wMHvYH" }),
279
+ errortext: k.newValue
280
+ }), /*#__PURE__*/ m(r, {
281
+ direction: "horizontal",
282
+ gap: "2",
283
+ children: [/*#__PURE__*/ p(o, {
284
+ size: "small",
285
+ variant: "primary",
286
+ onClick: U,
287
+ icon: "check",
288
+ title: C._({ id: "tfDRzk" })
289
+ }), /*#__PURE__*/ p(o, {
290
+ size: "small",
291
+ variant: "subdued",
292
+ onClick: W,
293
+ icon: "close",
294
+ title: C._({ id: "bzSI52" })
295
+ })]
296
+ })]
297
+ }) })] }) }),
298
+ /*#__PURE__*/ p(f, { children: D.map((t, n) => /*#__PURE__*/ m(h.Fragment, { children: [/*#__PURE__*/ p(c, { children: t.isEditing ? /*#__PURE__*/ p(s, {
299
+ value: t.key,
300
+ onChange: (e) => Y(n, e.target.value),
301
+ errortext: k[`edit-${n}`]
302
+ }) : /*#__PURE__*/ p("span", {
303
+ className: "jn:text-theme-high block max-w-xs truncate",
304
+ title: t.key,
305
+ children: t.key
306
+ }) }), /*#__PURE__*/ p(e, {
307
+ className: "flex items-center justify-between gap-2",
308
+ children: t.isEditing ? /*#__PURE__*/ m(f, { children: [/*#__PURE__*/ p(s, {
309
+ value: t.value,
310
+ onChange: (e) => X(n, e.target.value),
311
+ errortext: k[`edit-${n}`]
312
+ }), /*#__PURE__*/ m(r, {
313
+ direction: "horizontal",
314
+ gap: "2",
315
+ children: [/*#__PURE__*/ p(o, {
316
+ size: "small",
317
+ variant: "primary",
318
+ onClick: () => K(n),
319
+ icon: "check",
320
+ title: C._({ id: "tfDRzk" })
321
+ }), /*#__PURE__*/ p(o, {
322
+ size: "small",
323
+ variant: "subdued",
324
+ onClick: () => q(n),
325
+ icon: "close",
326
+ title: C._({ id: "bzSI52" })
327
+ })]
328
+ })] }) : /*#__PURE__*/ m(f, { children: [/*#__PURE__*/ p("span", {
329
+ className: "jn:text-theme-default block max-w-md truncate",
330
+ title: t.value,
331
+ children: t.value
332
+ }), S && /*#__PURE__*/ m(r, {
333
+ direction: "horizontal",
334
+ gap: "2",
335
+ children: [/*#__PURE__*/ p(o, {
336
+ size: "small",
337
+ variant: "subdued",
338
+ onClick: () => G(n),
339
+ icon: "edit",
340
+ "data-testid": `edit-${t.key}`,
341
+ title: C._({ id: "ePK91l" }),
342
+ disabled: j || D.some((e) => e.isEditing)
343
+ }), /*#__PURE__*/ p(o, {
344
+ size: "small",
345
+ onClick: () => J(n),
346
+ icon: "deleteForever",
347
+ "data-testid": `delete-${t.key}`,
348
+ title: C._({ id: "cnGeoo" }),
349
+ disabled: j || D.some((e) => e.isEditing)
350
+ })]
351
+ })] })
352
+ })] }, `${t.originalKey}-${n}`)) })
353
+ ]
354
+ })
355
+ ] })
356
+ });
357
+ }
358
+ var k = ({ client: e, isOpen: a, onClose: o, project: s, flavor: c, canEdit: l }) => {
359
+ let { i18n: u, _: d } = b(), { translateError: f } = w(), [m, h] = v(null), [y, x] = v(!1), [S, C] = v(null), [k, A] = v(l);
360
+ g(() => {
361
+ if (!a || !c?.id) {
362
+ h(null), C(null);
363
+ return;
364
+ }
365
+ let t = !1;
366
+ return x(!0), C(null), (async () => {
367
+ try {
368
+ let [n, r] = await Promise.all([D(e, s, c.id), l === void 0 ? E(e, s) : Promise.resolve({
369
+ canCreate: l,
370
+ canDelete: l
371
+ })]);
372
+ if (t) return;
373
+ h(n), A(r.canCreate || r.canDelete);
374
+ } catch (e) {
375
+ if (t) return;
376
+ C(e instanceof Error ? e.message : "Failed to load metadata");
377
+ } finally {
378
+ t || x(!1);
379
+ }
380
+ })(), () => {
381
+ t = !0;
382
+ };
383
+ }, [
384
+ a,
385
+ c?.id,
386
+ e,
387
+ s,
388
+ l
389
+ ]);
390
+ let j = _(() => m ? T(m) : [], [m]);
391
+ return !a || !c ? null : y ? /*#__PURE__*/ p(i, {
392
+ open: !0,
393
+ onCancel: o,
394
+ size: "large",
395
+ title: u._({ id: "SIfYq6" }),
396
+ children: /*#__PURE__*/ p(r, {
397
+ distribution: "center",
398
+ alignment: "center",
399
+ children: /*#__PURE__*/ p(t, { variant: "primary" })
400
+ })
401
+ }) : S ? /*#__PURE__*/ p(i, {
402
+ open: !0,
403
+ onCancel: o,
404
+ size: "large",
405
+ title: u._({ id: "SIfYq6" }),
406
+ children: /*#__PURE__*/ p(n, {
407
+ variant: "error",
408
+ text: f(S)
409
+ })
410
+ }) : /*#__PURE__*/ p(O, {
411
+ client: e,
412
+ project: s,
413
+ flavor: c,
414
+ isLoading: !1,
415
+ onClose: o,
416
+ initialSpecs: j,
417
+ canEdit: k ?? !1
418
+ }, c.id);
419
+ };
420
+ //#endregion
421
+ //#region src/client/routes/_auth/projects/$projectId/compute/flavors/-components/ManageAccessModal.tsx
422
+ function A(e) {
423
+ return e.map((e) => ({
424
+ projectId: e.tenant_id,
425
+ isNew: !1,
426
+ originalProjectId: e.tenant_id
427
+ }));
428
+ }
429
+ var j = (e, t) => e.compute.canUser.query({
430
+ project_id: t,
431
+ permission: ["flavors:add_project", "flavors:remove_project"]
432
+ }).then(([e, t]) => ({
433
+ canAdd: e,
434
+ canRemove: t
435
+ })), M = (e, t, n) => e.compute.getFlavorAccess.query({
436
+ project_id: t,
437
+ flavorId: n
438
+ });
439
+ function N({ client: a, project: l, flavor: d, isLoading: g, onClose: y, initialAccess: x, canAdd: S, canRemove: C }) {
440
+ let { i18n: T, _: E } = b(), { translateError: D } = w(), [O, k] = v(x), [A, j] = v({}), [M, N] = v(!1), [P, F] = v(""), [I, L] = v(!1), [R, z] = v(null), B = d["os-flavor-access:is_public"] !== !1, V = S || C, H = !_(() => {
441
+ let e = new Set(O.map((e) => e.projectId)), t = new Set(x.map((e) => e.projectId));
442
+ if (e.size !== t.size) return !0;
443
+ for (let n of e) if (!t.has(n)) return !0;
444
+ return !1;
445
+ }, [O, x]) || g || I || M, U = (e, t) => {
446
+ let n = e?.trim();
447
+ return n ? O.some((e, r) => e.projectId.trim() === n && r !== t) ? T._({ id: "8gXJTW" }) : null : T._({ id: "sMpIRo" });
448
+ }, W = () => {
449
+ let e = U(P, O.length);
450
+ if (e) {
451
+ j({ newProjectId: e });
452
+ return;
453
+ }
454
+ k([...O, {
455
+ projectId: P.trim(),
456
+ isNew: !0
457
+ }]), F(""), N(!1), j({});
458
+ }, G = () => {
459
+ F(""), N(!1), j({});
460
+ }, K = (e) => {
461
+ k(O.filter((t, n) => n !== e)), j({});
462
+ }, q = async () => {
463
+ L(!0), z(null);
464
+ try {
465
+ let e = new Set(O.map((e) => e.projectId)), t = new Set(x.map((e) => e.projectId)), n = x.filter((t) => !e.has(t.projectId)).map((e) => e.originalProjectId).filter(Boolean), r = O.filter((e) => !t.has(e.projectId)).map((e) => e.projectId);
466
+ for (let e of n) await a.compute.removeTenantAccess.mutate({
467
+ project_id: l,
468
+ flavorId: d.id,
469
+ targetProjectId: e
470
+ });
471
+ for (let e of r) await a.compute.addTenantAccess.mutate({
472
+ project_id: l,
473
+ flavorId: d.id,
474
+ targetProjectId: e
475
+ });
476
+ y();
477
+ } catch (e) {
478
+ z(D(e instanceof Error ? e.message : "Failed to save changes"));
479
+ } finally {
480
+ L(!1);
481
+ }
482
+ }, J = () => {
483
+ k(x), N(!1), F(""), j({}), z(null), y();
484
+ };
485
+ if (B) {
486
+ let e = d.name;
487
+ return /*#__PURE__*/ p(i, {
488
+ open: !0,
489
+ onCancel: J,
490
+ size: "large",
491
+ title: T._({
492
+ id: "6Rnrsz",
493
+ values: { flavorName: e }
494
+ }),
495
+ children: /*#__PURE__*/ p("p", {
496
+ className: "jn:text-theme-light py-8 text-center",
497
+ children: T._({ id: "gzPLLI" })
498
+ })
499
+ });
500
+ }
501
+ let Y = d.name;
502
+ return /*#__PURE__*/ p(i, {
503
+ open: !0,
504
+ onCancel: J,
505
+ size: "large",
506
+ title: T._({
507
+ id: "6Rnrsz",
508
+ values: { flavorName: Y }
509
+ }),
510
+ onConfirm: V ? q : void 0,
511
+ confirmButtonLabel: I ? T._({ id: "XvjC4F" }) : T._({ id: "IUwGEM" }),
512
+ cancelButtonLabel: T._({ id: "dEgA5A" }),
513
+ disableConfirmButton: H,
514
+ disableCancelButton: I,
515
+ disableCloseButton: I,
516
+ children: g ? /*#__PURE__*/ p(r, {
517
+ distribution: "center",
518
+ alignment: "center",
519
+ children: /*#__PURE__*/ p(t, { variant: "primary" })
520
+ }) : /*#__PURE__*/ m("div", { children: [
521
+ R && /*#__PURE__*/ p(n, {
522
+ variant: "error",
523
+ text: R,
524
+ className: "mb-4",
525
+ onDismiss: () => z(null)
526
+ }),
527
+ S && /*#__PURE__*/ p(r, {
528
+ direction: "horizontal",
529
+ className: "jn:bg-theme-background-lvl-1 mb-4 justify-end p-2",
530
+ children: /*#__PURE__*/ p(o, {
531
+ label: T._({ id: "zmHcLu" }),
532
+ onClick: () => N(!0),
533
+ variant: "primary",
534
+ disabled: M,
535
+ icon: "addCircle"
536
+ })
537
+ }),
538
+ O.length === 0 && !M ? /*#__PURE__*/ p("p", {
539
+ className: "jn:text-theme-light py-8 text-center",
540
+ children: S ? T._({ id: "R8o5/x" }) : T._({ id: "PonzUM" })
541
+ }) : /*#__PURE__*/ m(u, {
542
+ className: "mb-6",
543
+ children: [/*#__PURE__*/ p(f, { children: M && /*#__PURE__*/ m(f, { children: [/*#__PURE__*/ p(c, {
544
+ className: "flex items-center justify-end",
545
+ children: /*#__PURE__*/ p("span", {
546
+ className: "jn:text-theme-high",
547
+ children: T._({ id: "e0NrBM" })
548
+ })
549
+ }), /*#__PURE__*/ p(e, { children: /*#__PURE__*/ m("div", {
550
+ className: "flex w-full items-center gap-2",
551
+ children: [/*#__PURE__*/ p("div", {
552
+ className: "flex-1",
553
+ children: /*#__PURE__*/ p(s, {
554
+ value: P,
555
+ onChange: (e) => {
556
+ F(e.target.value), A.newProjectId && j((e) => {
557
+ let t = { ...e };
558
+ return delete t.newProjectId, t;
559
+ });
560
+ },
561
+ placeholder: T._({ id: "vlyDm2" }),
562
+ errortext: A.newProjectId,
563
+ autoFocus: !0,
564
+ wrapperClassName: "w-full"
565
+ })
566
+ }), /*#__PURE__*/ m("div", {
567
+ className: "flex shrink-0 gap-2",
568
+ children: [/*#__PURE__*/ p(o, {
569
+ size: "small",
570
+ variant: "primary",
571
+ onClick: W,
572
+ icon: "check",
573
+ title: T._({ id: "m16xKo" })
574
+ }), /*#__PURE__*/ p(o, {
575
+ size: "small",
576
+ variant: "subdued",
577
+ onClick: G,
578
+ icon: "close",
579
+ title: T._({ id: "dEgA5A" })
580
+ })]
581
+ })]
582
+ }) })] }) }), /*#__PURE__*/ p(f, { children: O.map((t, n) => /*#__PURE__*/ m(h.Fragment, { children: [/*#__PURE__*/ p(c, { children: /*#__PURE__*/ p("span", {
583
+ className: "jn:text-theme-high",
584
+ children: T._({ id: "e0NrBM" })
585
+ }) }), /*#__PURE__*/ p(e, { children: /*#__PURE__*/ m(r, {
586
+ direction: "horizontal",
587
+ gap: "2",
588
+ alignment: "center",
589
+ className: "justify-between",
590
+ children: [/*#__PURE__*/ p("span", {
591
+ className: "jn:text-theme-high block max-w-xs truncate",
592
+ title: t.projectId,
593
+ children: t.projectId
594
+ }), C && /*#__PURE__*/ p(o, {
595
+ size: "small",
596
+ onClick: () => K(n),
597
+ icon: "deleteForever",
598
+ "data-testid": `delete-${t.projectId}`,
599
+ title: T._({ id: "t/YqKh" }),
600
+ disabled: M
601
+ })]
602
+ }) })] }, `${t.originalProjectId || t.projectId}-${n}`)) })]
603
+ })
604
+ ] })
605
+ });
606
+ }
607
+ var P = ({ client: e, isOpen: a, onClose: o, project: s, flavor: c }) => {
608
+ let { i18n: l, _: u } = b(), { translateError: d } = w(), [f, m] = v(null), [h, y] = v(null), [x, S] = v(!0), [C, T] = v(null);
609
+ g(() => {
610
+ if (!a || !c?.id) {
611
+ m(null), y(null), T(null);
612
+ return;
613
+ }
614
+ let t = !1;
615
+ return S(!0), T(null), (async () => {
616
+ try {
617
+ let [n, r] = await Promise.all([M(e, s, c.id), j(e, s)]);
618
+ if (t) return;
619
+ let i = n.filter((e, t, n) => n.findIndex((t) => t.tenant_id === e.tenant_id) === t);
620
+ m(i), y(r);
621
+ } catch (e) {
622
+ if (t) return;
623
+ T(e instanceof Error ? e.message : "Failed to load access data");
624
+ } finally {
625
+ t || S(!1);
626
+ }
627
+ })(), () => {
628
+ t = !0;
629
+ };
630
+ }, [
631
+ a,
632
+ c?.id,
633
+ e,
634
+ s
635
+ ]);
636
+ let E = _(() => f ? A(f) : [], [f]);
637
+ if (!a || !c) return null;
638
+ let D = c.name;
639
+ return x ? /*#__PURE__*/ p(i, {
640
+ open: !0,
641
+ onCancel: o,
642
+ size: "large",
643
+ title: l._({
644
+ id: "6Rnrsz",
645
+ values: { flavorName: D }
646
+ }),
647
+ children: /*#__PURE__*/ p(r, {
648
+ distribution: "center",
649
+ alignment: "center",
650
+ children: /*#__PURE__*/ p(t, { variant: "primary" })
651
+ })
652
+ }) : C ? /*#__PURE__*/ p(i, {
653
+ open: !0,
654
+ onCancel: o,
655
+ size: "large",
656
+ title: l._({
657
+ id: "6Rnrsz",
658
+ values: { flavorName: D }
659
+ }),
660
+ children: /*#__PURE__*/ p(n, {
661
+ variant: "error",
662
+ text: d(C)
663
+ })
664
+ }) : /*#__PURE__*/ p(N, {
665
+ client: e,
666
+ project: s,
667
+ flavor: c,
668
+ isLoading: !1,
669
+ onClose: o,
670
+ initialAccess: E,
671
+ canAdd: h?.canAdd ?? !1,
672
+ canRemove: h?.canRemove ?? !1
673
+ }, c.id);
674
+ }, F = ({ client: t, isOpen: o, onClose: f, project: h, flavor: g, onSuccess: _ }) => {
675
+ let { i18n: T, _: E } = b(), { translateError: D } = w(), [O, k] = v(!1), [A, j] = v(null), { trackClose: M, markSubmitted: N, resetTracking: P } = d({
676
+ isOpen: o,
677
+ actionPrefix: "compute.flavor.delete"
678
+ }), F = x.object({ confirm: x.string().refine((e) => e === "delete", { message: T._({ id: "QytzQr" }) }) }), I = S({
679
+ defaultValues: { confirm: "" },
680
+ validators: { onSubmit: F },
681
+ onSubmit: async () => {
682
+ if (!g?.id) {
683
+ j(T._({ id: "NlcF/v" }));
684
+ return;
685
+ }
686
+ if (!O) {
687
+ N(), j(null);
688
+ try {
689
+ k(!0), await t.compute.deleteFlavor.mutate({
690
+ project_id: h,
691
+ flavorId: g.id
692
+ }), _(), R();
693
+ } catch (e) {
694
+ let t = e?.message ? D(e.message) : T._({ id: "8zAn1f" });
695
+ j(t);
696
+ } finally {
697
+ k(!1);
698
+ }
699
+ }
700
+ }
701
+ }), L = C(I.store, (e) => e.isSubmitting || e.values.confirm !== "delete"), R = () => {
702
+ M(), k(!1), j(null), I.reset(), P(), f();
703
+ }, z = O ? T._({ id: "EF2EU9" }) : T._({ id: "JT3I1g" }), B = g?.name;
704
+ return /*#__PURE__*/ p(i, {
705
+ open: o,
706
+ onCancel: R,
707
+ title: T._({
708
+ id: "W3mNTY",
709
+ values: { flavorName: B }
710
+ }),
711
+ size: "small",
712
+ confirmButtonLabel: z,
713
+ confirmButtonVariant: "primary-danger",
714
+ onConfirm: I.handleSubmit,
715
+ cancelButtonLabel: T._({ id: "dEgA5A" }),
716
+ disableConfirmButton: L || O,
717
+ disableCancelButton: O,
718
+ disableCloseButton: O,
719
+ children: /*#__PURE__*/ m(r, {
720
+ direction: "vertical",
721
+ gap: "4",
722
+ children: [
723
+ A && /*#__PURE__*/ p(n, {
724
+ variant: "error",
725
+ children: A
726
+ }),
727
+ /*#__PURE__*/ p("p", {
728
+ className: "text-theme-default",
729
+ children: /*#__PURE__*/ p(y, { id: "QQ8wUG" })
730
+ }),
731
+ g && /*#__PURE__*/ m(u, { children: [
732
+ /*#__PURE__*/ p(c, { children: T._({ id: "6YtxFj" }) }),
733
+ /*#__PURE__*/ p(e, { children: g.name }),
734
+ /*#__PURE__*/ p(c, { children: T._({ id: "S0kLOH" }) }),
735
+ /*#__PURE__*/ p(e, { children: g.id }),
736
+ /*#__PURE__*/ p(c, { children: T._({ id: "MZGbkp" }) }),
737
+ /*#__PURE__*/ p(e, { children: g.vcpus }),
738
+ /*#__PURE__*/ p(c, { children: T._({ id: "RGhYAo" }) }),
739
+ /*#__PURE__*/ m(e, { children: [g.ram, " MiB"] }),
740
+ /*#__PURE__*/ p(c, { children: T._({ id: "sPFHpI" }) }),
741
+ /*#__PURE__*/ m(e, { children: [g.disk, " GiB"] }),
742
+ /*#__PURE__*/ p(c, { children: T._({ id: "vH2C/2" }) }),
743
+ /*#__PURE__*/ p(e, { children: g.swap === 0 || g.swap === "" ? /*#__PURE__*/ p(y, { id: "EdQY6l" }) : `${Number(g.swap)} MiB` })
744
+ ] }),
745
+ /*#__PURE__*/ p(a, {
746
+ className: "mb-0",
747
+ id: "delete-flavor-form",
748
+ onSubmit: (e) => {
749
+ e.preventDefault(), I.handleSubmit();
750
+ },
751
+ children: /*#__PURE__*/ p(l, { children: /*#__PURE__*/ p(I.Field, {
752
+ name: "confirm",
753
+ children: (e) => /*#__PURE__*/ p(s, {
754
+ id: e.name,
755
+ name: e.name,
756
+ label: T._({ id: "QytzQr" }),
757
+ value: e.state.value,
758
+ onChange: (t) => e.handleChange(t.target.value),
759
+ placeholder: "delete",
760
+ autoFocus: !0,
761
+ disabled: O,
762
+ required: !0
763
+ })
764
+ }) })
765
+ })
766
+ ]
767
+ })
768
+ });
769
+ };
770
+ //#endregion
771
+ export { w as i, P as n, k as r, F as t };
772
+
773
+ //# sourceMappingURL=DeleteFlavorModal-V44QCJBd.mjs.map