@cobaltcore-dev/aurora 1.1.0 → 1.3.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 (184) hide show
  1. package/README.md +59 -9
  2. package/dist/client/App.d.ts +2 -2
  3. package/dist/client/AuroraApp.d.ts +33 -13
  4. package/dist/client/{AuthProvider-BS5OVv8n.mjs → AuthProvider-CVSAwW9f.mjs} +22 -8
  5. package/dist/client/AuthProvider-CVSAwW9f.mjs.map +1 -0
  6. package/dist/client/{ContentHeader-BHMUzd9H.mjs → ContentHeader-CPJbgYWn.mjs} +18 -18
  7. package/dist/client/{ContentHeader-BHMUzd9H.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-B8CNBg1L.mjs → FiltersInput-CKI6zWnm.mjs} +18 -18
  13. package/dist/client/{FiltersInput-B8CNBg1L.mjs.map → FiltersInput-CKI6zWnm.mjs.map} +1 -1
  14. package/dist/client/FloatingIpActionModals-Ch8uozH9.mjs +466 -0
  15. package/dist/client/FloatingIpActionModals-Ch8uozH9.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-4g7nSTHW.mjs +34 -0
  19. package/dist/client/SortInput-4g7nSTHW.mjs.map +1 -0
  20. package/dist/client/{TwoColumnDescriptionList-DiDx3PnH.mjs → TwoColumnDescriptionList-DKS42RKa.mjs} +10 -4
  21. package/dist/client/TwoColumnDescriptionList-DKS42RKa.mjs.map +1 -0
  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-BN_qessZ.mjs → _flavorId-Dg7MS0Af.mjs} +3 -9
  27. package/dist/client/_flavorId-Dg7MS0Af.mjs.map +1 -0
  28. package/dist/client/_flavorId-kHl-b8rI.mjs +232 -0
  29. package/dist/client/_flavorId-kHl-b8rI.mjs.map +1 -0
  30. package/dist/client/{_floatingIpId-CwDGHkWm.mjs → _floatingIpId-C9xfRWot.mjs} +3 -9
  31. package/dist/client/_floatingIpId-C9xfRWot.mjs.map +1 -0
  32. package/dist/client/_floatingIpId-DNn6ABCB.mjs +196 -0
  33. package/dist/client/_floatingIpId-DNn6ABCB.mjs.map +1 -0
  34. package/dist/client/_imageId-8JIbFmGB.mjs +39 -0
  35. package/dist/client/_imageId-8JIbFmGB.mjs.map +1 -0
  36. package/dist/client/{_imageId-BtJ7GmYB.mjs → _imageId-BBAlRioC.mjs} +217 -201
  37. package/dist/client/_imageId-BBAlRioC.mjs.map +1 -0
  38. package/dist/client/{_projectId-Byt3GQDW.mjs → _projectId-7Nl1MQTJ.mjs} +5 -5
  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-BcbkRhsN.mjs → _securityGroupId-C6eHmrx_.mjs} +3 -9
  47. package/dist/client/_securityGroupId-C6eHmrx_.mjs.map +1 -0
  48. package/dist/client/_securityGroupId-DmplhDgt.mjs +1810 -0
  49. package/dist/client/_securityGroupId-DmplhDgt.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-C5gS9eut.mjs +845 -0
  57. package/dist/client/_storageType-C5gS9eut.mjs.map +1 -0
  58. package/dist/client/_storageType-CzZ4u9x_.mjs +12 -0
  59. package/dist/client/_storageType-CzZ4u9x_.mjs.map +1 -0
  60. package/dist/client/_storageType-zeSZe--V.mjs.map +1 -1
  61. package/dist/client/{about-_73VmpTB.mjs → about-BmQTyLWc.mjs} +2 -2
  62. package/dist/client/{about-_73VmpTB.mjs.map → about-BmQTyLWc.mjs.map} +1 -1
  63. package/dist/client/{aurora-EbwGRLLf.mjs → aurora-CIml-f2f.mjs} +2 -2
  64. package/dist/client/{aurora-EbwGRLLf.mjs.map → aurora-CIml-f2f.mjs.map} +1 -1
  65. package/dist/client/{build-C_4vRMCq.mjs → build-WuxXRAqf.mjs} +121 -24
  66. package/dist/client/{build-C_4vRMCq.mjs.map → build-WuxXRAqf.mjs.map} +1 -1
  67. package/dist/client/components/Breadcrumbs.d.ts +1 -0
  68. package/dist/client/components/ListToolbar/SortInput.d.ts +3 -0
  69. package/dist/client/context/BreadcrumbExtensionContext.d.ts +9 -0
  70. package/dist/client/context/DynamicBreadcrumbContext.d.ts +9 -0
  71. package/dist/client/{flavors-CiHCYrtZ.mjs → flavors-B1SDOPDu.mjs} +3 -5
  72. package/dist/client/flavors-B1SDOPDu.mjs.map +1 -0
  73. package/dist/client/flavors-D8_PzQUB.mjs +628 -0
  74. package/dist/client/flavors-D8_PzQUB.mjs.map +1 -0
  75. package/dist/client/flavors-DWMZ6TuJ.mjs.map +1 -1
  76. package/dist/client/floatingips-Cz9k80cc.mjs +8 -0
  77. package/dist/client/floatingips-Cz9k80cc.mjs.map +1 -0
  78. package/dist/client/floatingips-DrCvtXtT.mjs +551 -0
  79. package/dist/client/floatingips-DrCvtXtT.mjs.map +1 -0
  80. package/dist/client/hooks/useBreadcrumbs.d.ts +16 -0
  81. package/dist/client/hooks/usePushBreadcrumbs.d.ts +10 -0
  82. package/dist/client/hooks/useSetBreadcrumb.d.ts +11 -0
  83. package/dist/client/{hooks-LutR2Yg3.mjs → hooks-D0yKIumu.mjs} +2 -2
  84. package/dist/client/{hooks-LutR2Yg3.mjs.map → hooks-D0yKIumu.mjs.map} +1 -1
  85. package/dist/client/images-BGQv9kKT.mjs +1983 -0
  86. package/dist/client/images-BGQv9kKT.mjs.map +1 -0
  87. package/dist/client/{images-CS4kZQyu.mjs → images-CPmMa4SQ.mjs} +3 -5
  88. package/dist/client/images-CPmMa4SQ.mjs.map +1 -0
  89. package/dist/client/images-NBf2bV43.mjs.map +1 -1
  90. package/dist/client/index.d.ts +7 -3
  91. package/dist/client/index.js +549 -535
  92. package/dist/client/index.js.map +1 -1
  93. package/dist/client/objects-AERkhfiM.mjs +66 -0
  94. package/dist/client/objects-AERkhfiM.mjs.map +1 -0
  95. package/dist/client/{objects-C3azvW8m.mjs → objects-BR3eeSNH.mjs} +7087 -4211
  96. package/dist/client/objects-BR3eeSNH.mjs.map +1 -0
  97. package/dist/client/objects-DVccbrL1.mjs +66 -0
  98. package/dist/client/objects-DVccbrL1.mjs.map +1 -0
  99. package/dist/client/projects-yiK0HGSA.mjs.map +1 -1
  100. package/dist/client/routeInfo-DP3v74Wg.mjs +19 -0
  101. package/dist/client/routeInfo-DP3v74Wg.mjs.map +1 -0
  102. package/dist/client/router.d.ts +2 -2
  103. package/dist/client/{routes-CdDm-hhO.mjs → routes-CJj7SR_K.mjs} +2 -2
  104. package/dist/client/routes-CJj7SR_K.mjs.map +1 -0
  105. package/dist/client/routes-xofA3ksU.mjs +110 -0
  106. package/dist/client/routes-xofA3ksU.mjs.map +1 -0
  107. package/dist/client/securitygroups-BjhgLBHm.mjs +620 -0
  108. package/dist/client/securitygroups-BjhgLBHm.mjs.map +1 -0
  109. package/dist/client/securitygroups-CtKne8UQ.mjs +8 -0
  110. package/dist/client/securitygroups-CtKne8UQ.mjs.map +1 -0
  111. package/dist/client/{securitygroups-Byte-iSp.mjs → securitygroups-DEJQBcxm.mjs} +3 -5
  112. package/dist/client/securitygroups-DEJQBcxm.mjs.map +1 -0
  113. package/dist/client/trpcClient.d.ts +135 -3
  114. package/dist/client/useBreadcrumbs-ha3IlaxX.mjs +54 -0
  115. package/dist/client/useBreadcrumbs-ha3IlaxX.mjs.map +1 -0
  116. package/dist/client/useModalTracking-BcOKTYRN.mjs +33 -0
  117. package/dist/client/useModalTracking-BcOKTYRN.mjs.map +1 -0
  118. package/dist/client/{useSecurityGroupPermissions-C29mzb3b.mjs → useSecurityGroupPermissions-BOyLQLdC.mjs} +85 -19
  119. package/dist/client/useSecurityGroupPermissions-BOyLQLdC.mjs.map +1 -0
  120. package/dist/client/useSetBreadcrumb-tn7lBaQV.mjs +19 -0
  121. package/dist/client/useSetBreadcrumb-tn7lBaQV.mjs.map +1 -0
  122. package/dist/client/utils/formatSwiftDate.d.ts +30 -0
  123. package/dist/server/index.d.ts +136 -4
  124. package/dist/server/index.js +845 -260
  125. package/package.json +37 -36
  126. package/dist/client/AuthProvider-BS5OVv8n.mjs.map +0 -1
  127. package/dist/client/DeleteFlavorModal-BP83t9zX.mjs +0 -721
  128. package/dist/client/DeleteFlavorModal-BP83t9zX.mjs.map +0 -1
  129. package/dist/client/FloatingIpActionModals-BraiJWBi.mjs +0 -417
  130. package/dist/client/FloatingIpActionModals-BraiJWBi.mjs.map +0 -1
  131. package/dist/client/ImageToastNotifications-BXMHJaIH.mjs +0 -1131
  132. package/dist/client/ImageToastNotifications-BXMHJaIH.mjs.map +0 -1
  133. package/dist/client/RouteError-hAF8_jbe.mjs +0 -25
  134. package/dist/client/RouteError-hAF8_jbe.mjs.map +0 -1
  135. package/dist/client/SortInput-Cqs2poV3.mjs +0 -34
  136. package/dist/client/SortInput-Cqs2poV3.mjs.map +0 -1
  137. package/dist/client/StatusError-C5KodQOq.mjs +0 -39
  138. package/dist/client/StatusError-C5KodQOq.mjs.map +0 -1
  139. package/dist/client/TwoColumnDescriptionList-DiDx3PnH.mjs.map +0 -1
  140. package/dist/client/_auth-DJ9wHZaj.mjs +0 -11
  141. package/dist/client/_auth-DJ9wHZaj.mjs.map +0 -1
  142. package/dist/client/_flavorId-BN_qessZ.mjs.map +0 -1
  143. package/dist/client/_flavorId-CJjEB_Ao.mjs +0 -210
  144. package/dist/client/_flavorId-CJjEB_Ao.mjs.map +0 -1
  145. package/dist/client/_floatingIpId-CwDGHkWm.mjs.map +0 -1
  146. package/dist/client/_floatingIpId-foMIwbE4.mjs +0 -215
  147. package/dist/client/_floatingIpId-foMIwbE4.mjs.map +0 -1
  148. package/dist/client/_imageId-BtJ7GmYB.mjs.map +0 -1
  149. package/dist/client/_projectId-BmtCuzJu.mjs +0 -29
  150. package/dist/client/_projectId-BmtCuzJu.mjs.map +0 -1
  151. package/dist/client/_projectId-Byt3GQDW.mjs.map +0 -1
  152. package/dist/client/_projectId-NYk1IN_a.mjs +0 -291
  153. package/dist/client/_projectId-NYk1IN_a.mjs.map +0 -1
  154. package/dist/client/_projectId-QueiFczy.mjs +0 -46
  155. package/dist/client/_projectId-QueiFczy.mjs.map +0 -1
  156. package/dist/client/_securityGroupId-BcbkRhsN.mjs.map +0 -1
  157. package/dist/client/_securityGroupId-pPtJsCoe.mjs +0 -1797
  158. package/dist/client/_securityGroupId-pPtJsCoe.mjs.map +0 -1
  159. package/dist/client/_storageType-BmqrU06i.mjs +0 -2202
  160. package/dist/client/_storageType-BmqrU06i.mjs.map +0 -1
  161. package/dist/client/components/Error/StatusError.d.ts +0 -11
  162. package/dist/client/components/ProjectView/ProjectInfoBox.d.ts +0 -12
  163. package/dist/client/flavors-CiHCYrtZ.mjs.map +0 -1
  164. package/dist/client/flavors-DY-bDc8l.mjs +0 -650
  165. package/dist/client/flavors-DY-bDc8l.mjs.map +0 -1
  166. package/dist/client/floatingips-Ci4jHkaG.mjs +0 -591
  167. package/dist/client/floatingips-Ci4jHkaG.mjs.map +0 -1
  168. package/dist/client/images-91U7tr9Y2.mjs +0 -1976
  169. package/dist/client/images-91U7tr9Y2.mjs.map +0 -1
  170. package/dist/client/images-CS4kZQyu.mjs.map +0 -1
  171. package/dist/client/objects-C3azvW8m.mjs.map +0 -1
  172. package/dist/client/objects-CM265S6b.mjs +0 -56
  173. package/dist/client/objects-CM265S6b.mjs.map +0 -1
  174. package/dist/client/objects-EE9Cd1wI.mjs +0 -56
  175. package/dist/client/objects-EE9Cd1wI.mjs.map +0 -1
  176. package/dist/client/routeInfo-DXqB2HCf.mjs +0 -32
  177. package/dist/client/routeInfo-DXqB2HCf.mjs.map +0 -1
  178. package/dist/client/routes-CBd8CCuM.mjs +0 -115
  179. package/dist/client/routes-CBd8CCuM.mjs.map +0 -1
  180. package/dist/client/routes-CdDm-hhO.mjs.map +0 -1
  181. package/dist/client/securitygroups-Bd_uV4S9.mjs +0 -595
  182. package/dist/client/securitygroups-Bd_uV4S9.mjs.map +0 -1
  183. package/dist/client/securitygroups-Byte-iSp.mjs.map +0 -1
  184. package/dist/client/useSecurityGroupPermissions-C29mzb3b.mjs.map +0 -1
@@ -1,595 +0,0 @@
1
- import { C as e, F as t, J as n, N as r, O as i, S as a, T as o, W as s, X as c, a as l, at as u, g as d, h as f, j as p, l as m, m as h, nt as g, o as _, p as v, st as y, t as b, ut as x, x as S } from "./build-C_4vRMCq.mjs";
2
- import { a as C } from "./trpcClient-D7gpR7YG.mjs";
3
- import { t as w } from "./securitygroups-Byte-iSp.mjs";
4
- import { t as T } from "./useProjectId-DBc5lpoU.mjs";
5
- import { t as E } from "./SortInput-Cqs2poV3.mjs";
6
- import "./hooks-LutR2Yg3.mjs";
7
- import { n as D, t as O } from "./FiltersInput-B8CNBg1L.mjs";
8
- import { n as k, t as A } from "./useSecurityGroupPermissions-C29mzb3b.mjs";
9
- import { Fragment as j, jsx as M, jsxs as N } from "react/jsx-runtime";
10
- import { useEffect as P, useRef as F, useState as I } from "react";
11
- import { useNavigate as ee, useSearch as L } from "@tanstack/react-router";
12
- import { Trans as R, useLingui as z } from "@lingui/react";
13
- //#region src/client/routes/_auth/projects/$projectId/network/securitygroups/-components/-modals/DeleteSecurityGroupDialog.tsx
14
- var B = ({ isOpen: e, onClose: i, securityGroup: a, onDelete: o, isDeleting: s = !1, error: c = null }) => {
15
- let { i18n: u, _: d } = z(), [f, m] = I(""), g = u._({ id: "HNlEFZ" }), _ = f.toLowerCase() === g.toLowerCase(), v = a.name || a.id, y = (e) => {
16
- e.preventDefault(), _ && !s && o(a.id);
17
- }, b = () => {
18
- m(""), i();
19
- };
20
- return /*#__PURE__*/ M(n, {
21
- open: e,
22
- onCancel: b,
23
- size: "small",
24
- title: u._({
25
- id: "Y+2SDm",
26
- values: { securityGroupName: v }
27
- }),
28
- modalFooter: /*#__PURE__*/ M(r, {
29
- className: "flex justify-end",
30
- children: /*#__PURE__*/ N(p, { children: [/*#__PURE__*/ M(l, {
31
- variant: "default",
32
- onClick: b,
33
- disabled: s,
34
- children: /*#__PURE__*/ M(R, { id: "dEgA5A" })
35
- }), /*#__PURE__*/ M(l, {
36
- variant: "primary-danger",
37
- onClick: y,
38
- disabled: !_ || s,
39
- "data-testid": "confirm-delete-button",
40
- children: s ? /*#__PURE__*/ M(R, { id: "EF2EU9" }) : /*#__PURE__*/ M(R, { id: "cnGeoo" })
41
- })] })
42
- }),
43
- children: /*#__PURE__*/ N("div", { children: [
44
- c && /*#__PURE__*/ M(t, {
45
- dismissible: !1,
46
- variant: "error",
47
- className: "mt-4",
48
- children: c
49
- }),
50
- /*#__PURE__*/ M(R, { id: "Qb+14I" }),
51
- /*#__PURE__*/ N("div", {
52
- className: "mt-4",
53
- children: [/*#__PURE__*/ M("p", {
54
- className: "mb-2 text-sm",
55
- children: /*#__PURE__*/ M(R, {
56
- id: "hLp49h",
57
- values: { deleteWord: g },
58
- components: { 0: /*#__PURE__*/ M("strong", {}) }
59
- })
60
- }), /*#__PURE__*/ M(h, {
61
- id: "confirmation",
62
- name: "confirmation",
63
- value: f,
64
- onChange: (e) => m(e.target.value),
65
- placeholder: g,
66
- disabled: s,
67
- autoComplete: "off",
68
- "data-testid": "delete-confirmation-input"
69
- })]
70
- })
71
- ] })
72
- });
73
- };
74
- //#endregion
75
- //#region src/client/routes/_auth/projects/$projectId/network/securitygroups/-components/SecurityGroupTableRow.tsx
76
- function V({ securityGroup: e, permissions: t, onEdit: n, onDelete: r, onViewDetails: a, isReadOnly: s = !1, showSelectColumn: c = !1, isSelected: l = !1, onSelect: f }) {
77
- let { i18n: p, _: m } = z(), h = ({ value: e }) => /*#__PURE__*/ M("span", { children: e ? p._({ id: "l75CjT" }) : p._({ id: "1UzENP" }) }), g = () => {
78
- a && a(e);
79
- };
80
- return /*#__PURE__*/ N(o, {
81
- "data-testid": `security-group-row-${e.id}`,
82
- onClick: g,
83
- className: "hover:bg-theme-background-lvl-2 cursor-pointer",
84
- children: [
85
- c && /*#__PURE__*/ M(b, {
86
- onClick: (e) => e.stopPropagation(),
87
- children: /*#__PURE__*/ M(u, {
88
- checked: l,
89
- onChange: () => f?.(e)
90
- })
91
- }),
92
- /*#__PURE__*/ M(b, { children: /*#__PURE__*/ N("div", { children: [/*#__PURE__*/ M("p", {
93
- className: "text-md",
94
- children: e.name
95
- }), /*#__PURE__*/ M("p", {
96
- className: "text-theme-light text-xs",
97
- children: e.id
98
- })] }) }),
99
- /*#__PURE__*/ M(b, { children: e.description || p._({ id: "h47p9L" }) }),
100
- /*#__PURE__*/ N(b, { children: [/*#__PURE__*/ M(h, { value: e.shared }), e.shared && /*#__PURE__*/ N("p", { children: [
101
- /*#__PURE__*/ M(R, { id: "LtI9AS" }),
102
- ": ",
103
- /*#__PURE__*/ M("span", {
104
- className: "text-theme-light text-xs",
105
- children: e.project_id
106
- })
107
- ] })] }),
108
- /*#__PURE__*/ M(b, { children: /*#__PURE__*/ M(h, { value: e.stateful }) }),
109
- /*#__PURE__*/ M(b, {
110
- onClick: (e) => e.stopPropagation(),
111
- className: "items-end justify-end pr-0",
112
- children: /*#__PURE__*/ M(i, { children: /*#__PURE__*/ N(d, { children: [
113
- /*#__PURE__*/ M(S, {
114
- label: p._({ id: "v0hPHE" }),
115
- onClick: () => g()
116
- }),
117
- t.canUpdate && !s && /*#__PURE__*/ M(S, {
118
- label: p._({ id: "ePK91l" }),
119
- onClick: () => n(e)
120
- }),
121
- t.canDelete && !s && /*#__PURE__*/ M(S, {
122
- label: p._({ id: "cnGeoo" }),
123
- onClick: () => r(e)
124
- })
125
- ] }) })
126
- })
127
- ]
128
- }, e.id);
129
- }
130
- //#endregion
131
- //#region src/client/routes/_auth/projects/$projectId/network/securitygroups/-components/SecurityGroupListContainer.tsx
132
- var H = ({ securityGroups: e, isLoading: t, isError: n, error: r, permissions: i, onDeleteSecurityGroup: l, isDeletingSecurityGroup: u = !1, deleteError: d = null, onUpdateSecurityGroup: f, isUpdatingSecurityGroup: p = !1, updateError: m = null, currentProjectId: h, hasAnyBulkAction: g = !1, onClearUpdateError: v }) => {
133
- let { i18n: y, _: b } = z(), x = ee(), S = T(), [C, w] = I(null), [E, D] = I(!1), [O, A] = I(!1), L = F(!1), H = F(!1), U = (e) => {
134
- C && C.id !== e.id && v && v(), w(e), D(!0);
135
- }, W = (e) => {
136
- w(e), A(!0);
137
- }, G = (e) => {
138
- x({
139
- to: "/projects/$projectId/network/securitygroups/$securityGroupId",
140
- params: {
141
- projectId: S,
142
- securityGroupId: e.id
143
- }
144
- });
145
- }, K = () => {
146
- w(null), D(!1);
147
- }, q = () => {
148
- w(null), A(!1);
149
- };
150
- return P(() => {
151
- L.current && !u && O && !d && q(), L.current = u;
152
- }, [
153
- u,
154
- d,
155
- O
156
- ]), P(() => {
157
- H.current && !p && E && !m && K(), H.current = p;
158
- }, [
159
- p,
160
- m,
161
- E
162
- ]), t ? /*#__PURE__*/ N(c, {
163
- className: "py-8",
164
- distribution: "center",
165
- alignment: "center",
166
- direction: "vertical",
167
- children: [/*#__PURE__*/ M(s, {
168
- variant: "primary",
169
- size: "large",
170
- className: "mb-2"
171
- }), /*#__PURE__*/ M(R, { id: "Z3FXyt" })]
172
- }) : n ? /*#__PURE__*/ M(c, {
173
- className: "py-8",
174
- distribution: "center",
175
- alignment: "center",
176
- direction: "vertical",
177
- children: r?.message ?? y._({ id: "Wca9WC" })
178
- }) : e.length === 0 ? /*#__PURE__*/ M(R, { id: "SfW/3r" }) : /*#__PURE__*/ N(j, { children: [/*#__PURE__*/ N(_, {
179
- columns: g ? 6 : 5,
180
- children: [/*#__PURE__*/ N(o, { children: [g && /*#__PURE__*/ M(a, {}), [
181
- y._({ id: "6YtxFj" }),
182
- y._({ id: "Nu4oKW" }),
183
- y._({ id: "0Gd0NU" }),
184
- y._({ id: "Jim5X9" }),
185
- ""
186
- ].map((e) => /*#__PURE__*/ M(a, { children: e }, e))] }), e.map((e) => {
187
- let t = !!(h && e.project_id && e.project_id !== h);
188
- return /*#__PURE__*/ M(V, {
189
- securityGroup: e,
190
- permissions: i,
191
- onEdit: U,
192
- onDelete: W,
193
- onViewDetails: G,
194
- isReadOnly: t,
195
- showSelectColumn: g,
196
- isSelected: !1,
197
- onSelect: () => {}
198
- }, e.id);
199
- })]
200
- }), C && /*#__PURE__*/ N(j, { children: [/*#__PURE__*/ M(k, {
201
- securityGroup: C,
202
- open: E,
203
- onClose: K,
204
- onUpdate: (e, t) => f ? f(e, t) : Promise.resolve(),
205
- isLoading: p,
206
- error: m
207
- }), /*#__PURE__*/ M(B, {
208
- securityGroup: C,
209
- isOpen: O,
210
- onClose: q,
211
- onDelete: (e) => {
212
- l && l(e);
213
- },
214
- isDeleting: u,
215
- error: d
216
- })] })] });
217
- }, U = {
218
- name: "",
219
- description: "",
220
- stateful: !0
221
- }, W = ({ isOpen: e, onClose: i, onCreate: a, isLoading: o = !1, error: c = null }) => {
222
- let { i18n: d, _: m } = z(), [g, _] = I({ ...U }), [b, S] = I({}), C = (e) => {
223
- let { name: t, value: n, type: r } = e.target, i = e.target.checked;
224
- _((e) => ({
225
- ...e,
226
- [t]: r === "checkbox" ? i : n
227
- })), b[t] && S((e) => {
228
- let n = { ...e };
229
- return delete n[t], n;
230
- });
231
- }, w = () => {
232
- let e = {};
233
- return (!g.name || g.name.trim() === "") && (e.name = d._({ id: "lN/Z9n" })), S(e), Object.keys(e).length === 0;
234
- }, T = async (e) => {
235
- e.preventDefault(), w() && (await a({
236
- name: g.name.trim(),
237
- description: g.description.trim() || void 0,
238
- stateful: g.stateful
239
- }), E());
240
- }, E = () => {
241
- _({ ...U }), S({}), i();
242
- };
243
- return /*#__PURE__*/ N(n, {
244
- open: e,
245
- onCancel: E,
246
- size: "large",
247
- title: d._({ id: "YjAOtb" }),
248
- modalFooter: /*#__PURE__*/ M(r, {
249
- className: "flex justify-end",
250
- children: /*#__PURE__*/ N(p, { children: [/*#__PURE__*/ M(l, {
251
- variant: "default",
252
- onClick: E,
253
- disabled: o,
254
- children: /*#__PURE__*/ M(R, { id: "dEgA5A" })
255
- }), /*#__PURE__*/ M(l, {
256
- variant: "primary",
257
- onClick: (e) => {
258
- T(e);
259
- },
260
- disabled: o,
261
- "data-testid": "create-security-group-button",
262
- children: o ? /*#__PURE__*/ M(s, { size: "small" }) : /*#__PURE__*/ M(R, { id: "YjAOtb" })
263
- })] })
264
- }),
265
- children: [
266
- c && /*#__PURE__*/ M(t, {
267
- dismissible: !1,
268
- variant: "error",
269
- className: "mb-4",
270
- children: c
271
- }),
272
- o && /*#__PURE__*/ N("div", {
273
- className: "mb-4 flex items-center justify-center gap-2",
274
- children: [/*#__PURE__*/ M(s, { variant: "primary" }), /*#__PURE__*/ M("span", {
275
- className: "text-theme-high text-sm",
276
- children: /*#__PURE__*/ M(R, { id: "Km4AGG" })
277
- })]
278
- }),
279
- !o && /*#__PURE__*/ M(x, {
280
- className: "mb-6",
281
- children: /*#__PURE__*/ N(v, {
282
- className: "mb-6",
283
- children: [
284
- /*#__PURE__*/ M(f, {
285
- className: "mb-6",
286
- children: /*#__PURE__*/ M(h, {
287
- id: "name",
288
- name: "name",
289
- label: d._({ id: "6YtxFj" }),
290
- value: g.name,
291
- onChange: C,
292
- required: !0,
293
- errortext: b.name,
294
- placeholder: d._({ id: "Ac6dy9" }),
295
- disabled: o
296
- })
297
- }),
298
- /*#__PURE__*/ M(f, {
299
- className: "mb-6",
300
- children: /*#__PURE__*/ M(y, {
301
- id: "description",
302
- name: "description",
303
- label: d._({ id: "Nu4oKW" }),
304
- value: g.description,
305
- onChange: C,
306
- placeholder: d._({ id: "Nu4oKW" }),
307
- disabled: o,
308
- rows: 3
309
- })
310
- }),
311
- /*#__PURE__*/ M(f, {
312
- className: "mb-0",
313
- children: /*#__PURE__*/ M(u, {
314
- id: "stateful",
315
- name: "stateful",
316
- label: d._({ id: "Jim5X9" }),
317
- checked: g.stateful,
318
- onChange: C,
319
- disabled: o,
320
- helptext: d._({ id: "4cQTyf" })
321
- })
322
- })
323
- ]
324
- })
325
- })
326
- ]
327
- });
328
- }, G = (e) => {
329
- let t = [];
330
- return e.shared && t.push({
331
- name: "shared",
332
- value: e.shared
333
- }), t;
334
- }, K = (e, t) => {
335
- let n = {};
336
- if (!e?.length) return n;
337
- let r = e.filter((e) => !e.inactive).reduce((e, t) => (e[t.name] || (e[t.name] = []), e[t.name].push(t.value), e), {});
338
- return Object.entries(r).forEach(([e, r]) => {
339
- t.find((t) => t.filterName === e)?.supportsMultiValue && r.length > 1 ? n[e] = `in:${r.join(",")}` : n[e] = r[0];
340
- }), n;
341
- }, q = (e, t, n) => e.some((e) => e.name === t.name && e.value === t.value) ? e : n.find((e) => e.filterName === t.name)?.supportsMultiValue ? [...e, t] : [...e.filter((e) => e.name !== t.name), t], te = (e, t, n) => {
342
- let r = {
343
- search: n.search,
344
- sortBy: n.sortBy,
345
- sortDirection: n.sortDirection
346
- };
347
- if (!e?.length) return r;
348
- let i = e.filter((e) => !e.inactive).reduce((e, t) => (e[t.name] || (e[t.name] = []), e[t.name].push(t.value), e), {});
349
- return Object.entries(i).forEach(([e, n]) => {
350
- t.find((t) => t.filterName === e)?.supportsMultiValue && n.length > 1 ? r[e] = `in:${n.join(",")}` : r[e] = n[0];
351
- }), r;
352
- }, J = ({ project: t }) => {
353
- let { i18n: n, _: r } = z(), i = ee(), a = L({ strict: !1 }), [o, s] = I({
354
- options: [{
355
- label: n._({ id: "6YtxFj" }),
356
- value: "name"
357
- }, {
358
- label: n._({ id: "podzPY" }),
359
- value: "project_id"
360
- }],
361
- sortBy: a.sortBy || "name",
362
- sortDirection: a.sortDirection || "asc"
363
- }), [u, d] = I({
364
- filters: [{
365
- displayName: n._({ id: "0Gd0NU" }),
366
- filterName: "shared",
367
- values: ["true", "false"],
368
- supportsMultiValue: !1
369
- }],
370
- selectedFilters: G(a)
371
- }), [f, p] = I(a.search || ""), [h, g] = I(!1), [_, v] = I(null), [y, b] = I(null), [x, S] = I(null), w = C.useUtils();
372
- P(() => {
373
- s((e) => ({
374
- ...e,
375
- sortBy: a.sortBy || "name",
376
- sortDirection: a.sortDirection || "asc"
377
- })), d((e) => ({
378
- ...e,
379
- selectedFilters: G(a)
380
- })), p(a.search || "");
381
- }, [
382
- a.sortBy,
383
- a.sortDirection,
384
- a.search,
385
- a.shared
386
- ]);
387
- let T = G(a), k = a.sortBy || "name", F = a.sortDirection || "asc", B = a.search || "", { data: V, isLoading: U, isError: J, error: Y } = C.network.securityGroup.list.useQuery({
388
- project_id: t || "",
389
- sort_key: k,
390
- sort_dir: F,
391
- ...K(T, u.filters),
392
- ...B ? { searchTerm: B } : {}
393
- }, { refetchOnWindowFocus: !1 }), X = V || [], ne = J && Y?.data?.code === "FORBIDDEN" ? n._({ id: "MdfAJn" }) : null, { permissions: Z } = A(t), Q = C.network.securityGroup.create.useMutation({
394
- onSuccess: (e) => {
395
- w.network.securityGroup.list.invalidate(), w.network.securityGroup.getById.invalidate(), b(null), i({
396
- to: "/projects/$projectId/network/securitygroups/$securityGroupId",
397
- params: {
398
- projectId: t,
399
- securityGroupId: e.id
400
- }
401
- });
402
- },
403
- onError: (e) => {
404
- b(e.message || n._({ id: "o6M6l0" }));
405
- }
406
- }), re = C.network.securityGroup.deleteById.useMutation({
407
- onSuccess: () => {
408
- w.network.securityGroup.list.invalidate(), w.network.securityGroup.getById.invalidate(), v(null);
409
- },
410
- onError: (e) => {
411
- v(e.message || n._({ id: "d0pLfy" }));
412
- }
413
- }), ie = C.network.securityGroup.update.useMutation({
414
- onSuccess: () => {
415
- w.network.securityGroup.list.invalidate(), w.network.securityGroup.getById.invalidate(), S(null);
416
- },
417
- onError: (e) => {
418
- S(e.message || n._({ id: "jPxavx" }));
419
- }
420
- }), ae = async (e) => {
421
- b(null), await Q.mutateAsync({
422
- project_id: t,
423
- ...e
424
- });
425
- }, oe = (e) => {
426
- v(null), re.mutate({
427
- project_id: t,
428
- securityGroupId: e
429
- });
430
- }, se = async (e, n) => {
431
- S(null), await ie.mutateAsync({
432
- project_id: t,
433
- securityGroupId: e,
434
- ...n
435
- });
436
- }, ce = () => {
437
- S(null);
438
- }, le = (e) => {
439
- let t = {
440
- options: e.options,
441
- sortBy: e.sortBy?.toString() || "name",
442
- sortDirection: e.sortDirection || "asc"
443
- };
444
- s(t), i({
445
- search: (e) => ({
446
- ...e,
447
- sortBy: t.sortBy,
448
- sortDirection: t.sortDirection
449
- }),
450
- replace: !0
451
- });
452
- }, $ = (e) => {
453
- d(e), i({
454
- search: (t) => te(e.selectedFilters || [], e.filters, {
455
- search: t.search,
456
- sortBy: t.sortBy,
457
- sortDirection: t.sortDirection
458
- }),
459
- replace: !0
460
- });
461
- }, ue = (e) => {
462
- let t = typeof e == "string" ? e : "";
463
- p(t), i({
464
- search: (e) => ({
465
- ...e,
466
- search: t || void 0
467
- }),
468
- replace: !0
469
- });
470
- };
471
- return U ? /*#__PURE__*/ M(c, {
472
- className: "py-8",
473
- distribution: "center",
474
- alignment: "center",
475
- direction: "vertical",
476
- children: /*#__PURE__*/ M(R, { id: "Z3FXyt" })
477
- }) : J && !X.length ? /*#__PURE__*/ M(c, {
478
- className: "py-8",
479
- distribution: "center",
480
- alignment: "center",
481
- direction: "vertical",
482
- children: ne || n._({ id: "Wca9WC" })
483
- }) : /*#__PURE__*/ N(j, { children: [
484
- /*#__PURE__*/ M(c, {
485
- distribution: "end",
486
- alignment: "center",
487
- gap: "2",
488
- className: "pb-2",
489
- children: /*#__PURE__*/ N(c, {
490
- gap: "2",
491
- children: [/*#__PURE__*/ M(E, {
492
- options: o.options,
493
- sortBy: o.sortBy,
494
- sortDirection: o.sortDirection ?? "asc",
495
- selectClassName: "min-w-40",
496
- onSortByChange: (e) => le({
497
- ...o,
498
- sortBy: e,
499
- sortDirection: o.sortDirection
500
- }),
501
- onSortDirectionChange: (e) => le({
502
- ...o,
503
- sortDirection: e
504
- })
505
- }), Z.canCreate && /*#__PURE__*/ M(l, {
506
- onClick: () => g(!0),
507
- variant: "primary",
508
- className: "whitespace-nowrap",
509
- children: /*#__PURE__*/ M(R, { id: "YjAOtb" })
510
- })]
511
- })
512
- }),
513
- /*#__PURE__*/ M(m, { children: /*#__PURE__*/ N(c, {
514
- direction: "vertical",
515
- gap: "2",
516
- children: [/*#__PURE__*/ N(c, {
517
- distribution: "between",
518
- alignment: "center",
519
- children: [/*#__PURE__*/ M(O, {
520
- filters: u.filters,
521
- selectClassName: "sm:min-w-40",
522
- comboboxClassName: "sm:min-w-40",
523
- onChange: (e) => {
524
- let t = q(u.selectedFilters || [], e, u.filters);
525
- t !== (u.selectedFilters || []) && $({
526
- ...u,
527
- selectedFilters: t
528
- });
529
- }
530
- }), /*#__PURE__*/ M(e, {
531
- placeholder: n._({ id: "rp7Ili" }),
532
- "data-testid": "searchbar",
533
- value: f,
534
- onInput: (e) => {
535
- let t = e.currentTarget.value;
536
- p(t);
537
- },
538
- onSearch: (e) => {
539
- ue(typeof e == "string" ? e : "");
540
- },
541
- onClear: () => {
542
- p(""), ue("");
543
- }
544
- })]
545
- }), u.selectedFilters && u.selectedFilters.length > 0 && /*#__PURE__*/ M(D, {
546
- selectedFilters: u.selectedFilters,
547
- onDelete: (e) => $({
548
- ...u,
549
- selectedFilters: (u.selectedFilters || []).filter((t) => t.name !== e.name || t.value !== e.value)
550
- }),
551
- onClear: () => $({
552
- ...u,
553
- selectedFilters: []
554
- })
555
- })]
556
- }) }),
557
- /*#__PURE__*/ M(H, {
558
- securityGroups: X,
559
- isLoading: !1,
560
- isError: !1,
561
- error: null,
562
- permissions: Z,
563
- onCreateClick: () => g(!0),
564
- onDeleteSecurityGroup: oe,
565
- isDeletingSecurityGroup: re.isPending,
566
- deleteError: _,
567
- onUpdateSecurityGroup: se,
568
- isUpdatingSecurityGroup: ie.isPending,
569
- updateError: x,
570
- currentProjectId: t,
571
- hasAnyBulkAction: !1,
572
- onClearUpdateError: ce
573
- }),
574
- /*#__PURE__*/ M(W, {
575
- isOpen: h,
576
- onClose: () => {
577
- b(null), g(!1);
578
- },
579
- onCreate: ae,
580
- isLoading: Q.isPending,
581
- error: y
582
- })
583
- ] });
584
- };
585
- //#endregion
586
- //#region src/client/routes/_auth/projects/$projectId/network/securitygroups/index.tsx?tsr-split=component
587
- function Y() {
588
- let { i18n: e, _: t } = z(), { projectId: n } = w.useParams(), { trpcClient: r } = w.useRouteContext();
589
- if (!r) throw Error("trpcClient is not available in route context");
590
- return /*#__PURE__*/ N(j, { children: [/*#__PURE__*/ M(g, { children: e._({ id: "4opp4r" }) }), /*#__PURE__*/ M(J, { project: n })] });
591
- }
592
- //#endregion
593
- export { Y as component };
594
-
595
- //# sourceMappingURL=securitygroups-Bd_uV4S9.mjs.map