@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,581 +0,0 @@
1
- import { C as e, D as t, K as n, L as r, M as i, P as a, Q as o, S as s, T as c, X as l, ft as u, g as d, h as f, i as p, l as m, lt as h, m as g, o as _, ot as v, p as y, rt as b, st as x, t as S, x as C } from "./build-WuxXRAqf.mjs";
2
- import { a as w } from "./trpcClient-D7gpR7YG.mjs";
3
- import { t as T } from "./securitygroups-T7kaNFEp.mjs";
4
- import { t as E } from "./useProjectId-DBc5lpoU.mjs";
5
- import { t as D } from "./SortInput-4g7nSTHW.mjs";
6
- import { t as O } from "./ContentHeader-fKKZVu-o.mjs";
7
- import "./hooks-D0yKIumu.mjs";
8
- import { n as k, t as A } from "./FiltersInput-Becwxo_J.mjs";
9
- import { c as j, h as ee, l as te, m as ne, n as M, r as re, t as N } from "./useSecurityGroupPermissions--hK4aR8Y.mjs";
10
- import { Fragment as P, jsx as F, jsxs as I } from "react/jsx-runtime";
11
- import { useEffect as L, useRef as R, useState as z } from "react";
12
- import { useNavigate as ie, useSearch as B } from "@tanstack/react-router";
13
- import { Trans as V, useLingui as H } from "@lingui/react";
14
- //#region src/client/routes/_auth/projects/$projectId/network/securitygroups/-components/SecurityGroupTableRow.tsx
15
- function ae({ securityGroup: e, permissions: n, onEdit: r, onDelete: i, onViewDetails: a, isReadOnly: o = !1, showSelectColumn: s = !1, isSelected: l = !1, onSelect: u }) {
16
- let { i18n: f, _: p } = H(), m = ({ value: e }) => /*#__PURE__*/ F("span", { children: e ? f._({ id: "l75CjT" }) : f._({ id: "1UzENP" }) }), h = () => {
17
- a && a(e);
18
- };
19
- return /*#__PURE__*/ I(c, {
20
- "data-testid": `security-group-row-${e.id}`,
21
- onClick: h,
22
- className: "hover:bg-theme-background-lvl-2 cursor-pointer",
23
- children: [
24
- s && /*#__PURE__*/ F(S, {
25
- onClick: (e) => e.stopPropagation(),
26
- children: /*#__PURE__*/ F(x, {
27
- checked: l,
28
- onChange: () => u?.(e)
29
- })
30
- }),
31
- /*#__PURE__*/ F(S, { children: e.name }),
32
- /*#__PURE__*/ F(S, { children: e.description || f._({ id: "h47p9L" }) }),
33
- /*#__PURE__*/ I(S, { children: [/*#__PURE__*/ F(m, { value: e.shared }), e.shared && /*#__PURE__*/ I("p", { children: [
34
- /*#__PURE__*/ F(V, { id: "LtI9AS" }),
35
- ": ",
36
- /*#__PURE__*/ F("span", {
37
- className: "text-theme-light text-xs",
38
- children: e.project_id
39
- })
40
- ] })] }),
41
- /*#__PURE__*/ F(S, { children: /*#__PURE__*/ F(m, { value: e.stateful ?? !0 }) }),
42
- /*#__PURE__*/ F(S, {
43
- onClick: (e) => e.stopPropagation(),
44
- className: "items-end pr-0",
45
- children: /*#__PURE__*/ F(t, { children: /*#__PURE__*/ I(d, { children: [
46
- /*#__PURE__*/ F(C, {
47
- label: f._({ id: "v0hPHE" }),
48
- onClick: () => h()
49
- }),
50
- n.canUpdate && !o && /*#__PURE__*/ F(C, {
51
- label: f._({ id: "b433OF" }),
52
- onClick: () => r(e)
53
- }),
54
- n.canDelete && !o && /*#__PURE__*/ F(C, {
55
- label: f._({ id: "bcOdok" }),
56
- onClick: () => i(e)
57
- })
58
- ] }) })
59
- })
60
- ]
61
- }, e.id);
62
- }
63
- //#endregion
64
- //#region src/client/routes/_auth/projects/$projectId/network/securitygroups/-components/SecurityGroupListContainer.tsx
65
- var oe = ({ securityGroups: e, isLoading: t, isError: n, error: r, permissions: i, onDeleteSecurityGroup: a, isDeletingSecurityGroup: o = !1, deleteError: l = null, onUpdateSecurityGroup: u, isUpdatingSecurityGroup: d = !1, updateError: f = null, currentProjectId: p, hasAnyBulkAction: m = !1, onClearUpdateError: h }) => {
66
- let { i18n: g, _: v } = H(), y = ie(), x = E(), [C, w] = z(null), [T, D] = z(!1), [O, k] = z(!1), A = R(!1), j = R(!1), ee = (e) => {
67
- C && C.id !== e.id && h && h(), w(e), D(!0);
68
- }, te = (e) => {
69
- w(e), k(!0);
70
- }, ne = (e) => {
71
- y({
72
- to: "/projects/$projectId/network/securitygroups/$securityGroupId",
73
- params: {
74
- projectId: x,
75
- securityGroupId: e.id
76
- }
77
- });
78
- }, N = () => {
79
- w(null), D(!1);
80
- }, B = () => {
81
- w(null), k(!1);
82
- };
83
- L(() => {
84
- A.current && !o && O && !l && B(), A.current = o;
85
- }, [
86
- o,
87
- l,
88
- O
89
- ]), L(() => {
90
- j.current && !d && T && !f && N(), j.current = d;
91
- }, [
92
- d,
93
- f,
94
- T
95
- ]);
96
- let V = m ? 6 : 5;
97
- return /*#__PURE__*/ I(P, { children: [/*#__PURE__*/ I(_, {
98
- columns: V,
99
- minContentColumns: m ? [5] : [4],
100
- children: [/*#__PURE__*/ I(c, { children: [m && /*#__PURE__*/ F(s, {}), [
101
- g._({ id: "6YtxFj" }),
102
- g._({ id: "Nu4oKW" }),
103
- g._({ id: "0Gd0NU" }),
104
- g._({ id: "Jim5X9" }),
105
- ""
106
- ].map((e) => /*#__PURE__*/ F(s, { children: e }, e))] }), t ? /*#__PURE__*/ F(c, { children: /*#__PURE__*/ F(S, {
107
- colSpan: V,
108
- children: /*#__PURE__*/ F(b, {
109
- status: "progress",
110
- title: g._({ id: "Z3FXyt" })
111
- })
112
- }) }) : n ? /*#__PURE__*/ F(c, { children: /*#__PURE__*/ F(S, {
113
- colSpan: V,
114
- children: /*#__PURE__*/ F(b, {
115
- status: "error",
116
- title: r?.message ?? g._({ id: "lcs67U" })
117
- })
118
- }) }) : e.length > 0 ? e.map((e) => {
119
- let t = !!(p && e.project_id && e.project_id !== p);
120
- return /*#__PURE__*/ F(ae, {
121
- securityGroup: e,
122
- permissions: i,
123
- onEdit: ee,
124
- onDelete: te,
125
- onViewDetails: ne,
126
- isReadOnly: t,
127
- showSelectColumn: m,
128
- isSelected: !1,
129
- onSelect: () => {}
130
- }, e.id);
131
- }) : /*#__PURE__*/ F(c, { children: /*#__PURE__*/ F(S, {
132
- colSpan: V,
133
- children: /*#__PURE__*/ F(b, {
134
- status: "empty",
135
- title: g._({ id: "f+UUtj" }),
136
- body: g._({ id: "jqJG6j" })
137
- })
138
- }) })]
139
- }), C && /*#__PURE__*/ I(P, { children: [/*#__PURE__*/ F(re, {
140
- securityGroup: C,
141
- open: T,
142
- onClose: N,
143
- onUpdate: (e, t) => u ? u(e, t) : Promise.resolve(),
144
- isLoading: d,
145
- error: f
146
- }), /*#__PURE__*/ F(M, {
147
- securityGroup: C,
148
- isOpen: O,
149
- onClose: B,
150
- onDelete: (e) => {
151
- a && a(e);
152
- },
153
- isDeleting: o,
154
- error: l
155
- })] })] });
156
- }, U = {
157
- name: "",
158
- description: "",
159
- stateful: !0
160
- }, se = ({ isOpen: e, onClose: t, onCreate: o, isLoading: s = !1, error: c = null }) => {
161
- let { i18n: d, _: m } = H(), [_, v] = z({ ...U }), [S, C] = z({}), w = (e) => {
162
- let { name: t, value: n, type: r } = e.target, i = e.target.checked;
163
- v((e) => ({
164
- ...e,
165
- [t]: r === "checkbox" ? i : n
166
- })), S[t] && C((e) => {
167
- let n = { ...e };
168
- return delete n[t], n;
169
- });
170
- }, T = () => {
171
- let e = {};
172
- return (!_.name || _.name.trim() === "") && (e.name = d._({ id: "lN/Z9n" })), C(e), Object.keys(e).length === 0;
173
- }, E = async (e) => {
174
- e.preventDefault(), T() && (await o({
175
- name: _.name.trim(),
176
- description: _.description.trim() || void 0,
177
- stateful: _.stateful
178
- }), D());
179
- }, D = () => {
180
- v({ ...U }), C({}), t();
181
- };
182
- return /*#__PURE__*/ I(l, {
183
- open: e,
184
- onCancel: D,
185
- size: "large",
186
- title: d._({ id: "YjAOtb" }),
187
- modalFooter: /*#__PURE__*/ F(a, {
188
- className: "flex justify-end",
189
- children: /*#__PURE__*/ I(i, { children: [/*#__PURE__*/ F(p, {
190
- variant: "default",
191
- onClick: D,
192
- disabled: s,
193
- children: /*#__PURE__*/ F(V, { id: "dEgA5A" })
194
- }), /*#__PURE__*/ F(p, {
195
- variant: "primary",
196
- onClick: (e) => {
197
- E(e);
198
- },
199
- disabled: s,
200
- "data-testid": "create-security-group-button",
201
- children: s ? /*#__PURE__*/ F(n, { size: "small" }) : /*#__PURE__*/ F(V, { id: "YjAOtb" })
202
- })] })
203
- }),
204
- children: [
205
- c && /*#__PURE__*/ F(r, {
206
- dismissible: !1,
207
- variant: "error",
208
- className: "mb-4",
209
- children: c
210
- }),
211
- s && /*#__PURE__*/ F(b, {
212
- status: "progress",
213
- title: d._({ id: "0Kv9K4" }),
214
- className: "mt-0"
215
- }),
216
- !s && /*#__PURE__*/ F(u, {
217
- className: "mb-6",
218
- children: /*#__PURE__*/ I(y, {
219
- className: "mb-6",
220
- children: [
221
- /*#__PURE__*/ F(f, {
222
- className: "mb-6",
223
- children: /*#__PURE__*/ F(g, {
224
- id: "name",
225
- name: "name",
226
- label: d._({ id: "6YtxFj" }),
227
- value: _.name,
228
- onChange: w,
229
- required: !0,
230
- errortext: S.name,
231
- placeholder: d._({ id: "Ac6dy9" }),
232
- disabled: s
233
- })
234
- }),
235
- /*#__PURE__*/ F(f, {
236
- className: "mb-6",
237
- children: /*#__PURE__*/ F(h, {
238
- id: "description",
239
- name: "description",
240
- label: d._({ id: "Nu4oKW" }),
241
- value: _.description,
242
- onChange: w,
243
- placeholder: d._({ id: "Nu4oKW" }),
244
- disabled: s,
245
- rows: 3
246
- })
247
- }),
248
- /*#__PURE__*/ F(f, {
249
- className: "mb-0",
250
- children: /*#__PURE__*/ F(x, {
251
- id: "stateful",
252
- name: "stateful",
253
- label: d._({ id: "Jim5X9" }),
254
- checked: _.stateful,
255
- onChange: w,
256
- disabled: s,
257
- helptext: d._({ id: "4cQTyf" })
258
- })
259
- })
260
- ]
261
- })
262
- })
263
- ]
264
- });
265
- }, W = ["true", "false"], ce = {
266
- true: !0,
267
- false: !1
268
- }, G = (e) => W.includes(e), K = ["shared", "stateful"], q = (e) => K.includes(e), le = (e) => [{
269
- displayName: e.shared,
270
- filterName: "shared",
271
- values: [...W],
272
- valueLabels: {
273
- true: e.yes,
274
- false: e.no
275
- },
276
- supportsMultiValue: !1
277
- }, {
278
- displayName: e.stateful,
279
- filterName: "stateful",
280
- values: [...W],
281
- valueLabels: {
282
- true: e.yes,
283
- false: e.no
284
- },
285
- supportsMultiValue: !1
286
- }], ue = (e) => {
287
- let t = {};
288
- for (let n of K) {
289
- let r = e.filter((e) => !e.inactive && e.name === n).at(-1);
290
- r && G(r.value) && (t[n] = ce[r.value]);
291
- }
292
- return t;
293
- }, J = (e, t) => q(e) && G(t), Y = (e) => {
294
- let t = [];
295
- return e.shared && J("shared", e.shared) && t.push({
296
- name: "shared",
297
- value: e.shared
298
- }), e.stateful && J("stateful", e.stateful) && t.push({
299
- name: "stateful",
300
- value: e.stateful
301
- }), t;
302
- }, de = (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], fe = (e, t, n) => {
303
- let r = {
304
- search: n.search,
305
- sortBy: n.sortBy,
306
- sortDirection: n.sortDirection
307
- };
308
- if (!e?.length) return r;
309
- let i = e.filter((e) => !e.inactive).reduce((e, t) => (e[t.name] || (e[t.name] = []), e[t.name].push(t.value), e), {});
310
- return Object.entries(i).forEach(([e, n]) => {
311
- t.find((t) => t.filterName === e)?.supportsMultiValue && n.length > 1 ? r[e] = `in:${n.join(",")}` : r[e] = n[0];
312
- }), r;
313
- }, pe = 500, X = ({ project: t }) => {
314
- let { i18n: n, _: i } = H(), a = ie(), s = B({ strict: !1 }), [c, l] = z({
315
- options: [{
316
- label: n._({ id: "6YtxFj" }),
317
- value: "name"
318
- }],
319
- sortBy: s.sortBy || "name",
320
- sortDirection: s.sortDirection || "asc"
321
- }), [u, d] = z({
322
- filters: le({
323
- shared: n._({ id: "0Gd0NU" }),
324
- stateful: n._({ id: "Jim5X9" }),
325
- yes: n._({ id: "l75CjT" }),
326
- no: n._({ id: "1UzENP" })
327
- }),
328
- selectedFilters: Y(s)
329
- }), [f, h] = z(s.search || ""), g = R(void 0), [_, y] = z(!1), [b, x] = z(null), [S, C] = z(null), [T, E] = z(null), M = w.useUtils();
330
- L(() => () => clearTimeout(g.current), []), L(() => {
331
- l((e) => ({
332
- ...e,
333
- sortBy: s.sortBy || "name",
334
- sortDirection: s.sortDirection || "asc"
335
- })), d((e) => ({
336
- ...e,
337
- selectedFilters: Y(s)
338
- })), g.current === void 0 && h(s.search || "");
339
- }, [
340
- s.sortBy,
341
- s.sortDirection,
342
- s.search,
343
- s.shared,
344
- s.stateful
345
- ]);
346
- let re = Y(s), ae = s.sortBy || "name", U = s.sortDirection || "asc", W = s.search || "", { data: ce, isLoading: G, isError: K, error: q } = w.network.securityGroup.list.useQuery({
347
- project_id: t || "",
348
- sort_key: ae,
349
- sort_dir: U,
350
- ...ue(re),
351
- ...W ? { searchTerm: W } : {}
352
- }, {
353
- refetchOnWindowFocus: !1,
354
- placeholderData: (e) => e
355
- }), J = ce || [], X = K ? q?.data?.code === "FORBIDDEN" ? n._({ id: "MdfAJn" }) : q.message || n._({ id: "lcs67U" }) : null, { permissions: Z } = N(t), me = w.network.securityGroup.create.useMutation({
356
- onSuccess: (e) => {
357
- M.network.securityGroup.list.invalidate(), M.network.securityGroup.getById.invalidate(), C(null), a({
358
- to: "/projects/$projectId/network/securitygroups/$securityGroupId",
359
- params: {
360
- projectId: t,
361
- securityGroupId: e.id
362
- }
363
- });
364
- },
365
- onError: (e) => {
366
- C(e.message || n._({ id: "o6M6l0" }));
367
- }
368
- }), he = w.network.securityGroup.deleteById.useMutation({
369
- onSuccess: () => {
370
- M.network.securityGroup.list.invalidate(), M.network.securityGroup.getById.invalidate(), x(null);
371
- },
372
- onError: (e) => {
373
- x(e.message || n._({ id: "d0pLfy" }));
374
- let { message: t, ...r } = j(e.message);
375
- v.error(t, r);
376
- }
377
- }), ge = w.network.securityGroup.update.useMutation({
378
- onSuccess: () => {
379
- M.network.securityGroup.list.invalidate(), M.network.securityGroup.getById.invalidate(), E(null);
380
- },
381
- onError: (e) => {
382
- E(e.message || n._({ id: "jPxavx" }));
383
- let { message: t, ...r } = ne(e.message);
384
- v.error(t, r);
385
- }
386
- }), _e = async (e) => {
387
- C(null);
388
- try {
389
- await me.mutateAsync({
390
- project_id: t,
391
- ...e
392
- });
393
- } catch {}
394
- }, ve = (e) => {
395
- x(null);
396
- let n = J.find((t) => t.id === e)?.name || e;
397
- he.mutate({
398
- project_id: t,
399
- securityGroupId: e
400
- }, { onSuccess: () => {
401
- let { message: e, ...t } = te(n);
402
- v.success(e, t);
403
- } });
404
- }, ye = async (e, n) => {
405
- E(null);
406
- let r = n.name || J.find((t) => t.id === e)?.name || e;
407
- try {
408
- await ge.mutateAsync({
409
- project_id: t,
410
- securityGroupId: e,
411
- ...n
412
- });
413
- let { message: i, ...a } = ee(r);
414
- v.success(i, a);
415
- } catch {}
416
- }, be = () => {
417
- E(null);
418
- }, xe = (e) => {
419
- let t = {
420
- options: e.options,
421
- sortBy: e.sortBy?.toString() || "name",
422
- sortDirection: e.sortDirection || "asc"
423
- };
424
- l(t), a({
425
- search: (e) => ({
426
- ...e,
427
- sortBy: t.sortBy,
428
- sortDirection: t.sortDirection
429
- }),
430
- replace: !0
431
- });
432
- }, Q = (e) => {
433
- d(e), a({
434
- search: (t) => fe(e.selectedFilters || [], e.filters, {
435
- search: t.search,
436
- sortBy: t.sortBy,
437
- sortDirection: t.sortDirection
438
- }),
439
- replace: !0
440
- });
441
- }, $ = (e) => {
442
- a({
443
- search: (t) => ({
444
- ...t,
445
- search: e || void 0
446
- }),
447
- replace: !0
448
- });
449
- };
450
- return /*#__PURE__*/ I(P, { children: [
451
- /*#__PURE__*/ F(O, {
452
- title: n._({ id: "4opp4r" }),
453
- projectId: t
454
- }),
455
- K && J.length > 0 && /*#__PURE__*/ F(r, {
456
- variant: "error",
457
- className: "mb-4",
458
- children: X
459
- }),
460
- /*#__PURE__*/ I(o, {
461
- direction: "vertical",
462
- className: "juno-pattern-datagrid-outer",
463
- children: [/*#__PURE__*/ I(o, {
464
- direction: "vertical",
465
- className: "juno-pattern-datagrid-header",
466
- children: [/*#__PURE__*/ F(o, {
467
- distribution: "end",
468
- alignment: "center",
469
- gap: "2",
470
- className: "pb-2",
471
- children: /*#__PURE__*/ I(o, {
472
- gap: "2",
473
- children: [/*#__PURE__*/ F(D, {
474
- options: c.options,
475
- sortBy: c.sortBy,
476
- sortDirection: c.sortDirection ?? "asc",
477
- selectClassName: "min-w-40",
478
- onSortByChange: (e) => xe({
479
- ...c,
480
- sortBy: e,
481
- sortDirection: c.sortDirection
482
- }),
483
- onSortDirectionChange: (e) => xe({
484
- ...c,
485
- sortDirection: e
486
- })
487
- }), Z.canCreate && /*#__PURE__*/ F(p, {
488
- onClick: () => y(!0),
489
- variant: "primary",
490
- className: "whitespace-nowrap",
491
- children: /*#__PURE__*/ F(V, { id: "YjAOtb" })
492
- })]
493
- })
494
- }), /*#__PURE__*/ F(m, { children: /*#__PURE__*/ I(o, {
495
- direction: "vertical",
496
- gap: "2",
497
- children: [/*#__PURE__*/ I(o, {
498
- distribution: "between",
499
- alignment: "center",
500
- children: [/*#__PURE__*/ F(A, {
501
- filters: u.filters,
502
- selectClassName: "sm:min-w-40",
503
- comboboxClassName: "sm:min-w-40",
504
- onChange: (e) => {
505
- let t = de(u.selectedFilters || [], e, u.filters);
506
- t !== (u.selectedFilters || []) && Q({
507
- ...u,
508
- selectedFilters: t
509
- });
510
- }
511
- }), /*#__PURE__*/ F(e, {
512
- className: "w-60 sm:w-68",
513
- placeholder: n._({ id: "rp7Ili" }),
514
- "data-testid": "searchbar",
515
- value: f,
516
- onInput: (e) => {
517
- let t = e.currentTarget.value;
518
- h(t), clearTimeout(g.current), g.current = window.setTimeout(() => {
519
- g.current = void 0, $(t);
520
- }, pe);
521
- },
522
- onSearch: (e) => {
523
- clearTimeout(g.current), g.current = void 0, $(typeof e == "string" ? e : "");
524
- },
525
- onClear: () => {
526
- clearTimeout(g.current), g.current = void 0, h(""), $("");
527
- }
528
- })]
529
- }), u.selectedFilters && u.selectedFilters.length > 0 && /*#__PURE__*/ F(k, {
530
- selectedFilters: u.selectedFilters,
531
- filters: u.filters,
532
- onDelete: (e) => Q({
533
- ...u,
534
- selectedFilters: (u.selectedFilters || []).filter((t) => t.name !== e.name || t.value !== e.value)
535
- }),
536
- onClear: () => Q({
537
- ...u,
538
- selectedFilters: []
539
- })
540
- })]
541
- }) })]
542
- }), /*#__PURE__*/ F(oe, {
543
- securityGroups: J,
544
- isLoading: G,
545
- isError: K && J.length === 0,
546
- error: X ? { message: X } : null,
547
- permissions: Z,
548
- onCreateClick: () => y(!0),
549
- onDeleteSecurityGroup: ve,
550
- isDeletingSecurityGroup: he.isPending,
551
- deleteError: b,
552
- onUpdateSecurityGroup: ye,
553
- isUpdatingSecurityGroup: ge.isPending,
554
- updateError: T,
555
- currentProjectId: t,
556
- hasAnyBulkAction: !1,
557
- onClearUpdateError: be
558
- })]
559
- }),
560
- /*#__PURE__*/ F(se, {
561
- isOpen: _,
562
- onClose: () => {
563
- C(null), y(!1);
564
- },
565
- onCreate: _e,
566
- isLoading: me.isPending,
567
- error: S
568
- })
569
- ] });
570
- };
571
- //#endregion
572
- //#region src/client/routes/_auth/projects/$projectId/network/securitygroups/index.tsx?tsr-split=component
573
- function Z() {
574
- let { projectId: e } = T.useParams(), { trpcClient: t } = T.useRouteContext();
575
- if (!t) throw Error("trpcClient is not available in route context");
576
- return /*#__PURE__*/ F(X, { project: e });
577
- }
578
- //#endregion
579
- export { Z as component };
580
-
581
- //# sourceMappingURL=securitygroups-CSmsBzUb.mjs.map