@cobaltcore-dev/aurora 1.2.0 → 2.0.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 (132) hide show
  1. package/dist/client/DeleteFlavorModal-C2MqUgGR.mjs +801 -0
  2. package/dist/client/DeleteFlavorModal-C2MqUgGR.mjs.map +1 -0
  3. package/dist/client/{FiltersInput-CKI6zWnm.mjs → FiltersInput-Becwxo_J.mjs} +36 -33
  4. package/dist/client/FiltersInput-Becwxo_J.mjs.map +1 -0
  5. package/dist/client/FloatingIpActionModals-Cq10WljB.mjs +466 -0
  6. package/dist/client/FloatingIpActionModals-Cq10WljB.mjs.map +1 -0
  7. package/dist/client/ImageToastNotifications-BWfzOUMc.mjs +1135 -0
  8. package/dist/client/ImageToastNotifications-BWfzOUMc.mjs.map +1 -0
  9. package/dist/client/RouteIdLevelDefaultError-CSseJ1yG.mjs +26 -0
  10. package/dist/client/RouteIdLevelDefaultError-CSseJ1yG.mjs.map +1 -0
  11. package/dist/client/{TwoColumnDescriptionList-NvgvErua.mjs → TwoColumnDescriptionList-DKS42RKa.mjs} +9 -3
  12. package/dist/client/TwoColumnDescriptionList-DKS42RKa.mjs.map +1 -0
  13. package/dist/client/{_flavorId-a9Gu66R1.mjs → _flavorId-CaA4-Pnf.mjs} +4 -3
  14. package/dist/client/_flavorId-CaA4-Pnf.mjs.map +1 -0
  15. package/dist/client/_flavorId-DYv_StX22.mjs +276 -0
  16. package/dist/client/_flavorId-DYv_StX22.mjs.map +1 -0
  17. package/dist/client/_flavorId-YV3jCS5g.mjs +22 -0
  18. package/dist/client/_flavorId-YV3jCS5g.mjs.map +1 -0
  19. package/dist/client/{_floatingIpId-AZ11Ksmu.mjs → _floatingIpId-BeYElanB.mjs} +2 -2
  20. package/dist/client/_floatingIpId-BeYElanB.mjs.map +1 -0
  21. package/dist/client/_floatingIpId-Dpsc7GU4.mjs +196 -0
  22. package/dist/client/_floatingIpId-Dpsc7GU4.mjs.map +1 -0
  23. package/dist/client/_imageId-mfKp3JHn.mjs +558 -0
  24. package/dist/client/_imageId-mfKp3JHn.mjs.map +1 -0
  25. package/dist/client/_imageId-mpXUMCh_.mjs +22 -0
  26. package/dist/client/_imageId-mpXUMCh_.mjs.map +1 -0
  27. package/dist/client/{_imageId-D76BxvFY.mjs → _imageId-pBSS0YcC.mjs} +4 -3
  28. package/dist/client/_imageId-pBSS0YcC.mjs.map +1 -0
  29. package/dist/client/{_projectId-B3wmSala.mjs → _projectId-AjgJX6Gl.mjs} +2 -2
  30. package/dist/client/_projectId-AjgJX6Gl.mjs.map +1 -0
  31. package/dist/client/{_projectId-DPzv0CCp.mjs → _projectId-BnTBxKfp.mjs} +4 -4
  32. package/dist/client/_projectId-BnTBxKfp.mjs.map +1 -0
  33. package/dist/client/{_projectId-DfeVJy0G.mjs → _projectId-CVrdJ52s.mjs} +2 -2
  34. package/dist/client/_projectId-CVrdJ52s.mjs.map +1 -0
  35. package/dist/client/_projectId-DgciZslU.mjs +92 -0
  36. package/dist/client/_projectId-DgciZslU.mjs.map +1 -0
  37. package/dist/client/{_securityGroupId-D85mSigA.mjs → _securityGroupId-AO3wnH8g.mjs} +2 -2
  38. package/dist/client/_securityGroupId-AO3wnH8g.mjs.map +1 -0
  39. package/dist/client/{_securityGroupId-C5huJNfO.mjs → _securityGroupId-Bq0ZyG6z.mjs} +750 -741
  40. package/dist/client/_securityGroupId-Bq0ZyG6z.mjs.map +1 -0
  41. package/dist/client/_storageType-c-DAu8qr.mjs +858 -0
  42. package/dist/client/_storageType-c-DAu8qr.mjs.map +1 -0
  43. package/dist/client/components/{Error → Errors}/RouteError.d.ts +5 -0
  44. package/dist/client/components/Errors/RouteIdLevelDefaultError.d.ts +17 -0
  45. package/dist/client/components/Errors/ServiceLevelDefaultError.d.ts +9 -0
  46. package/dist/client/components/ListToolbar/SelectedFilters.d.ts +7 -2
  47. package/dist/client/components/ListToolbar/types.d.ts +6 -0
  48. package/dist/client/components/ListToolbar/valueLabels.d.ts +11 -0
  49. package/dist/client/flavors-Bgq3KZmx.mjs +659 -0
  50. package/dist/client/flavors-Bgq3KZmx.mjs.map +1 -0
  51. package/dist/client/{flavors-B0rbqffG.mjs → flavors-ZudiAiTU.mjs} +2 -2
  52. package/dist/client/{flavors-B0rbqffG.mjs.map → flavors-ZudiAiTU.mjs.map} +1 -1
  53. package/dist/client/floatingips-B1oLH8z6.mjs +551 -0
  54. package/dist/client/floatingips-B1oLH8z6.mjs.map +1 -0
  55. package/dist/client/floatingips-BeQEkVH8.mjs +14 -0
  56. package/dist/client/floatingips-BeQEkVH8.mjs.map +1 -0
  57. package/dist/client/floatingips-BtLg3yEQ.mjs +22 -0
  58. package/dist/client/floatingips-BtLg3yEQ.mjs.map +1 -0
  59. package/dist/client/floatingips-Cz9k80cc.mjs.map +1 -1
  60. package/dist/client/{images-BGQv9kKT.mjs → images-CnTW3bpy.mjs} +810 -770
  61. package/dist/client/images-CnTW3bpy.mjs.map +1 -0
  62. package/dist/client/{images-CPmMa4SQ.mjs → images-DZHDYDQu.mjs} +2 -2
  63. package/dist/client/{images-CPmMa4SQ.mjs.map → images-DZHDYDQu.mjs.map} +1 -1
  64. package/dist/client/index.js +412 -409
  65. package/dist/client/index.js.map +1 -1
  66. package/dist/client/{objects-BN-59Th0.mjs → objects-25xsh4Ia.mjs} +2 -2
  67. package/dist/client/objects-25xsh4Ia.mjs.map +1 -0
  68. package/dist/client/objects-KXY6dgwq.mjs +82 -0
  69. package/dist/client/objects-KXY6dgwq.mjs.map +1 -0
  70. package/dist/client/objects-QryuClU3.mjs +82 -0
  71. package/dist/client/objects-QryuClU3.mjs.map +1 -0
  72. package/dist/client/{objects-BE_u5yRt.mjs → objects-jYQBFzwg.mjs} +4671 -4702
  73. package/dist/client/objects-jYQBFzwg.mjs.map +1 -0
  74. package/dist/client/projects-yiK0HGSA.mjs.map +1 -1
  75. package/dist/client/securitygroups--0PS2wbM.mjs +580 -0
  76. package/dist/client/securitygroups--0PS2wbM.mjs.map +1 -0
  77. package/dist/client/{securitygroups-DEJQBcxm.mjs → securitygroups-BRndk7wh.mjs} +2 -2
  78. package/dist/client/{securitygroups-DEJQBcxm.mjs.map → securitygroups-BRndk7wh.mjs.map} +1 -1
  79. package/dist/client/securitygroups-CdN4yAAw.mjs +14 -0
  80. package/dist/client/securitygroups-CdN4yAAw.mjs.map +1 -0
  81. package/dist/client/securitygroups-Cs2Op-tu.mjs +22 -0
  82. package/dist/client/securitygroups-Cs2Op-tu.mjs.map +1 -0
  83. package/dist/client/securitygroups-CtKne8UQ.mjs.map +1 -1
  84. package/dist/client/trpcClient.d.ts +6 -1
  85. package/dist/client/useModalTracking-BYd37pXm.mjs +37 -0
  86. package/dist/client/useModalTracking-BYd37pXm.mjs.map +1 -0
  87. package/dist/client/useSecurityGroupPermissions--hK4aR8Y.mjs +294 -0
  88. package/dist/client/useSecurityGroupPermissions--hK4aR8Y.mjs.map +1 -0
  89. package/dist/server/index.d.ts +6 -1
  90. package/dist/server/index.js +96 -30
  91. package/package.json +4 -4
  92. package/dist/client/DeleteFlavorModal-V44QCJBd.mjs +0 -773
  93. package/dist/client/DeleteFlavorModal-V44QCJBd.mjs.map +0 -1
  94. package/dist/client/FiltersInput-CKI6zWnm.mjs.map +0 -1
  95. package/dist/client/FloatingIpActionModals-CwEC5GR-.mjs +0 -460
  96. package/dist/client/FloatingIpActionModals-CwEC5GR-.mjs.map +0 -1
  97. package/dist/client/ImageToastNotifications-m6c3tVPb.mjs +0 -1152
  98. package/dist/client/ImageToastNotifications-m6c3tVPb.mjs.map +0 -1
  99. package/dist/client/TwoColumnDescriptionList-NvgvErua.mjs.map +0 -1
  100. package/dist/client/_flavorId-9PcBBW52.mjs +0 -231
  101. package/dist/client/_flavorId-9PcBBW52.mjs.map +0 -1
  102. package/dist/client/_flavorId-a9Gu66R1.mjs.map +0 -1
  103. package/dist/client/_floatingIpId-AE9Fu8l6.mjs +0 -210
  104. package/dist/client/_floatingIpId-AE9Fu8l6.mjs.map +0 -1
  105. package/dist/client/_floatingIpId-AZ11Ksmu.mjs.map +0 -1
  106. package/dist/client/_imageId-BtAql2Kr.mjs +0 -570
  107. package/dist/client/_imageId-BtAql2Kr.mjs.map +0 -1
  108. package/dist/client/_imageId-D76BxvFY.mjs.map +0 -1
  109. package/dist/client/_projectId-7Nl1MQTJ.mjs +0 -99
  110. package/dist/client/_projectId-7Nl1MQTJ.mjs.map +0 -1
  111. package/dist/client/_projectId-B3wmSala.mjs.map +0 -1
  112. package/dist/client/_projectId-DPzv0CCp.mjs.map +0 -1
  113. package/dist/client/_projectId-DfeVJy0G.mjs.map +0 -1
  114. package/dist/client/_securityGroupId-C5huJNfO.mjs.map +0 -1
  115. package/dist/client/_securityGroupId-D85mSigA.mjs.map +0 -1
  116. package/dist/client/_storageType-Dy9uCVXr.mjs +0 -845
  117. package/dist/client/_storageType-Dy9uCVXr.mjs.map +0 -1
  118. package/dist/client/flavors-Rl20bxVU.mjs +0 -628
  119. package/dist/client/flavors-Rl20bxVU.mjs.map +0 -1
  120. package/dist/client/floatingips-xbO_mu4f.mjs +0 -576
  121. package/dist/client/floatingips-xbO_mu4f.mjs.map +0 -1
  122. package/dist/client/images-BGQv9kKT.mjs.map +0 -1
  123. package/dist/client/objects-BE_u5yRt.mjs.map +0 -1
  124. package/dist/client/objects-BN-59Th0.mjs.map +0 -1
  125. package/dist/client/objects-D9Luf9KB.mjs +0 -66
  126. package/dist/client/objects-D9Luf9KB.mjs.map +0 -1
  127. package/dist/client/securitygroups-BjhgLBHm.mjs +0 -620
  128. package/dist/client/securitygroups-BjhgLBHm.mjs.map +0 -1
  129. package/dist/client/useModalTracking-BcOKTYRN.mjs +0 -33
  130. package/dist/client/useModalTracking-BcOKTYRN.mjs.map +0 -1
  131. package/dist/client/useSecurityGroupPermissions-BOyLQLdC.mjs +0 -227
  132. package/dist/client/useSecurityGroupPermissions-BOyLQLdC.mjs.map +0 -1
@@ -0,0 +1,551 @@
1
+ import { C as e, D as t, L as n, Q as r, R as i, S as a, T as o, X as s, ft as c, g as l, i as u, it as d, l as f, lt as p, m, o as h, p as g, rt as _, t as v, x as y } from "./build-WuxXRAqf.mjs";
2
+ import { a as b } from "./trpcClient-D7gpR7YG.mjs";
3
+ import { t as x } from "./useProjectId-DBc5lpoU.mjs";
4
+ import { t as S } from "./SortInput-4g7nSTHW.mjs";
5
+ import { d as C, n as w, o as T } from "./md-kvaGCNAK.mjs";
6
+ import { t as E } from "./ContentHeader-CPJbgYWn.mjs";
7
+ import "./hooks-D0yKIumu.mjs";
8
+ import { t as D } from "./useModal-DCs1OJh7.mjs";
9
+ import { n as O, t as k } from "./FiltersInput-Becwxo_J.mjs";
10
+ import { t as A } from "./FloatingIpActionModals-Cq10WljB.mjs";
11
+ import { Fragment as j, jsx as M, jsxs as N } from "react/jsx-runtime";
12
+ import { useEffect as P, useRef as F, useState as I } from "react";
13
+ import { useNavigate as L, useSearch as R } from "@tanstack/react-router";
14
+ import { Trans as z, useLingui as B } from "@lingui/react";
15
+ import { z as V } from "zod";
16
+ import { i18n as H } from "@lingui/core";
17
+ import { useForm as U, useStore as W } from "@tanstack/react-form";
18
+ //#region src/client/routes/_auth/projects/$projectId/network/floatingips/-components/-table/constants.tsx
19
+ var G = {
20
+ ACTIVE: {
21
+ text: "Active",
22
+ icon: /*#__PURE__*/ M(w, {
23
+ size: 18,
24
+ color: "white",
25
+ fill: "#4FB81C"
26
+ })
27
+ },
28
+ DOWN: {
29
+ text: "Down",
30
+ icon: /*#__PURE__*/ M(C, {
31
+ size: 18,
32
+ color: "white",
33
+ fill: "#969696"
34
+ })
35
+ },
36
+ ERROR: {
37
+ text: "Error",
38
+ icon: /*#__PURE__*/ M(T, {
39
+ size: 18,
40
+ color: "white",
41
+ fill: "#C70000"
42
+ })
43
+ }
44
+ }, K = () => [
45
+ H._({ id: "uAQUqI" }),
46
+ H._({ id: "xNG/3n" }),
47
+ H._({ id: "Nc7QKU" }),
48
+ H._({ id: "7NC3vm" }),
49
+ H._({ id: "Nu4oKW" }),
50
+ ""
51
+ ], q = ({ floatingIp: e }) => {
52
+ let { i18n: n, _: r } = B(), i = L(), a = x(), s = () => {
53
+ i({
54
+ to: "/projects/$projectId/network/floatingips/$floatingIpId",
55
+ params: {
56
+ projectId: a,
57
+ floatingIpId: e.id
58
+ }
59
+ });
60
+ };
61
+ return /*#__PURE__*/ N(o, {
62
+ "data-testid": `floating-ip-row-${e.id}`,
63
+ onClick: s,
64
+ children: [
65
+ /*#__PURE__*/ M(v, { children: /*#__PURE__*/ N("div", {
66
+ className: "flex items-center gap-2",
67
+ children: [G[e.status].icon, G[e.status].text]
68
+ }) }),
69
+ /*#__PURE__*/ M(v, { children: e.floating_ip_address }),
70
+ /*#__PURE__*/ M(v, { children: e.fixed_ip_address || "—" }),
71
+ /*#__PURE__*/ M(v, { children: e.floating_network_id }),
72
+ /*#__PURE__*/ M(v, { children: /*#__PURE__*/ M("div", {
73
+ className: "truncate",
74
+ children: e.description || "—"
75
+ }) }),
76
+ /*#__PURE__*/ M(v, {
77
+ onClick: (e) => e.stopPropagation(),
78
+ className: "items-end pr-0",
79
+ children: /*#__PURE__*/ M(A, {
80
+ floatingIp: e,
81
+ children: ({ toggleEditModal: e, toggleAttachModal: r, toggleDetachModal: i, toggleReleaseModal: a }) => /*#__PURE__*/ M(t, { children: /*#__PURE__*/ N(l, { children: [
82
+ /*#__PURE__*/ M(y, {
83
+ label: n._({ id: "v0hPHE" }),
84
+ onClick: s
85
+ }),
86
+ /*#__PURE__*/ M(y, {
87
+ label: n._({ id: "n22YIM" }),
88
+ onClick: e
89
+ }),
90
+ /*#__PURE__*/ M(y, {
91
+ label: n._({ id: "igVDFt" }),
92
+ onClick: r
93
+ }),
94
+ /*#__PURE__*/ M(y, {
95
+ label: n._({ id: "FOcBn3" }),
96
+ onClick: i
97
+ }),
98
+ /*#__PURE__*/ M(y, {
99
+ label: n._({ id: "H+a5j6" }),
100
+ onClick: a
101
+ })
102
+ ] }) })
103
+ })
104
+ })
105
+ ]
106
+ }, e.id);
107
+ }, J = ({ floatingIps: e, isLoading: t, isError: n, error: r }) => {
108
+ let { i18n: i, _: s } = B(), c = K(), l = c.length;
109
+ return t ? /*#__PURE__*/ M(_, {
110
+ status: "progress",
111
+ title: i._({ id: "odksI6" })
112
+ }) : n ? /*#__PURE__*/ M(_, {
113
+ status: "error",
114
+ title: r?.message ?? i._({ id: "/sdjzP" })
115
+ }) : /*#__PURE__*/ N(h, {
116
+ columns: l,
117
+ minContentColumns: [l - 1],
118
+ children: [/*#__PURE__*/ M(o, { children: c.map((e) => /*#__PURE__*/ M(a, { children: e }, e)) }), e.length > 0 ? e.map((e) => /*#__PURE__*/ M(q, { floatingIp: e }, e.id)) : /*#__PURE__*/ M(o, { children: /*#__PURE__*/ M(v, {
119
+ colSpan: l,
120
+ children: /*#__PURE__*/ M(_, {
121
+ status: "empty",
122
+ title: i._({ id: "JiQKPG" }),
123
+ body: i._({ id: "0eY8Mz" })
124
+ })
125
+ }) })]
126
+ });
127
+ }, Y = /^(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}$/, X = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|(([0-9a-fA-F]{1,4}:){1,7}:)|(([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4})|(([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2})|(([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3})|(([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4})|(([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5})|([0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6}))|(:((:[0-9a-fA-F]{1,4}){1,7}|:))|(::([fF]{4}(:0{1,4})?:)?((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|(([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})))$/, ee = (e) => Y.test(e) || X.test(e), te = /^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$/, ne = ({ open: e, onClose: t }) => {
128
+ let { i18n: r, _: a } = B(), o = x(), l = L(), u = b.useUtils(), { isPending: f, ...h } = b.network.floatingIp.create.useMutation({ onSettled: () => u.network.floatingIp.list.invalidate() }), { data: v = [], isLoading: y, error: S } = b.network.floatingIp.listExternalNetworks.useQuery({ project_id: o }), { data: C = [], isLoading: w, error: T } = b.network.floatingIp.listDnsDomains.useQuery({ project_id: o }), { data: E = [], isLoading: D, error: O } = b.network.floatingIp.listAvailablePorts.useQuery({ project_id: o }), k = V.object({
129
+ floating_network_id: V.string(),
130
+ dns_domain: V.string(),
131
+ dns_name: V.string().trim().max(63, r._({ id: "Zq6Y5u" })).refine((e) => e === "" || te.test(e), { message: r._({ id: "R6kcsL" }) }),
132
+ description: V.string().trim().max(255, r._({ id: "lZvIXd" })),
133
+ floating_ip_address: V.string().trim().refine((e) => e === "" || ee(e), { message: r._({ id: "AZyHwC" }) }),
134
+ port_id: V.string(),
135
+ fixed_ip_address: V.string()
136
+ }), A = U({
137
+ defaultValues: {
138
+ floating_network_id: "",
139
+ dns_domain: "",
140
+ dns_name: "",
141
+ description: "",
142
+ floating_ip_address: "",
143
+ port_id: "",
144
+ fixed_ip_address: ""
145
+ },
146
+ validators: { onSubmit: k },
147
+ onSubmit: async ({ value: e }) => {
148
+ if (f) return;
149
+ let t = await h.mutateAsync({
150
+ project_id: o,
151
+ floating_network_id: e.floating_network_id,
152
+ ...e.dns_domain && { dns_domain: e.dns_domain },
153
+ ...e.dns_name && { dns_name: e.dns_name },
154
+ ...e.description && { description: e.description },
155
+ ...e.floating_ip_address && { floating_ip_address: e.floating_ip_address },
156
+ ...e.port_id && { port_id: e.port_id },
157
+ ...e.fixed_ip_address && { fixed_ip_address: e.fixed_ip_address }
158
+ });
159
+ j(), l({
160
+ to: "/projects/$projectId/network/floatingips/$floatingIpId",
161
+ params: {
162
+ projectId: o,
163
+ floatingIpId: t.id
164
+ }
165
+ });
166
+ }
167
+ }), j = () => {
168
+ f || (A.reset(), h.reset(), t());
169
+ }, P = W(A.store, (e) => e.values.port_id), F = W(A.store, (e) => e.values.floating_network_id), I = E.find((e) => e.id === P)?.fixed_ips ?? [], R = (S?.message || T?.message || O?.message) ?? h.error?.message ?? null;
170
+ return /*#__PURE__*/ N(s, {
171
+ open: e,
172
+ size: "large",
173
+ title: r._({ id: "h99+4y" }),
174
+ onCancel: j,
175
+ cancelButtonLabel: r._({ id: "dEgA5A" }),
176
+ confirmButtonLabel: r._({ id: "9X8lAk" }),
177
+ onConfirm: A.handleSubmit,
178
+ disableConfirmButton: f || !F,
179
+ disableCancelButton: f,
180
+ disableCloseButton: f,
181
+ children: [R && /*#__PURE__*/ M(n, {
182
+ dismissible: !1,
183
+ variant: "error",
184
+ className: "mb-4",
185
+ children: R
186
+ }), f ? /*#__PURE__*/ M(_, {
187
+ status: "progress",
188
+ title: r._({ id: "HuA8iQ" }),
189
+ className: "mt-0"
190
+ }) : /*#__PURE__*/ N(c, {
191
+ className: "mb-0",
192
+ id: "allocate-floating-ip-form",
193
+ onSubmit: (e) => {
194
+ e.preventDefault(), A.handleSubmit();
195
+ },
196
+ children: [
197
+ /*#__PURE__*/ M(g, {
198
+ className: "mb-4",
199
+ children: /*#__PURE__*/ M(A.Field, {
200
+ name: "floating_network_id",
201
+ children: (e) => /*#__PURE__*/ M(d, {
202
+ id: e.name,
203
+ name: e.name,
204
+ value: e.state.value,
205
+ onChange: (t) => e.handleChange(typeof t == "string" ? t : ""),
206
+ label: r._({ id: "kA2lMP" }),
207
+ helptext: r._({ id: "BoIAP6" }),
208
+ placeholder: r._({ id: "T6Gm5y" }),
209
+ disabled: f || y,
210
+ required: !0,
211
+ loading: y,
212
+ children: v.map(({ id: e, name: t }) => /*#__PURE__*/ M(i, {
213
+ value: e,
214
+ label: t ? `${t} (${e})` : e
215
+ }, e))
216
+ })
217
+ })
218
+ }),
219
+ /*#__PURE__*/ M(g, {
220
+ className: "mb-4",
221
+ children: /*#__PURE__*/ M(A.Field, {
222
+ name: "dns_domain",
223
+ children: (e) => /*#__PURE__*/ M(d, {
224
+ id: e.name,
225
+ name: e.name,
226
+ value: e.state.value,
227
+ onChange: (t) => e.handleChange(typeof t == "string" ? t : ""),
228
+ label: r._({ id: "WlpcJv" }),
229
+ helptext: r._({ id: "1ojTVo" }),
230
+ disabled: f || w,
231
+ loading: w,
232
+ children: C.map(({ id: e, name: t }) => /*#__PURE__*/ M(i, {
233
+ value: t,
234
+ label: t
235
+ }, e))
236
+ })
237
+ })
238
+ }),
239
+ /*#__PURE__*/ M(g, {
240
+ className: "mb-4",
241
+ children: /*#__PURE__*/ M(A.Field, {
242
+ name: "dns_name",
243
+ children: (e) => /*#__PURE__*/ M(m, {
244
+ id: e.name,
245
+ name: e.name,
246
+ value: e.state.value,
247
+ onBlur: e.handleBlur,
248
+ onChange: (t) => e.handleChange(t.target.value),
249
+ label: r._({ id: "eGEHJE" }),
250
+ placeholder: r._({ id: "SLEH7X" }),
251
+ helptext: r._({ id: "Tx4Ym+" }),
252
+ errortext: e.state.meta.errors.map((e) => e?.message).join(", "),
253
+ disabled: f
254
+ })
255
+ })
256
+ }),
257
+ /*#__PURE__*/ M(g, {
258
+ className: "mb-4",
259
+ children: /*#__PURE__*/ M(A.Field, {
260
+ name: "description",
261
+ children: (e) => /*#__PURE__*/ M(p, {
262
+ id: e.name,
263
+ name: e.name,
264
+ value: e.state.value,
265
+ onBlur: e.handleBlur,
266
+ onChange: (t) => e.handleChange(t.target.value),
267
+ placeholder: r._({ id: "Nu4oKW" }),
268
+ errortext: e.state.meta.errors.map((e) => e?.message).join(", "),
269
+ disabled: f
270
+ })
271
+ })
272
+ }),
273
+ /*#__PURE__*/ M(g, {
274
+ className: "mb-4",
275
+ children: /*#__PURE__*/ M(A.Field, {
276
+ name: "floating_ip_address",
277
+ children: (e) => /*#__PURE__*/ M(m, {
278
+ id: e.name,
279
+ name: e.name,
280
+ value: e.state.value,
281
+ onBlur: e.handleBlur,
282
+ onChange: (t) => e.handleChange(t.target.value),
283
+ label: r._({ id: "xNG/3n" }),
284
+ placeholder: r._({ id: "5/wyf8" }),
285
+ helptext: r._({ id: "PAKSdy" }),
286
+ errortext: e.state.meta.errors.map((e) => e?.message).join(", "),
287
+ disabled: f
288
+ })
289
+ })
290
+ }),
291
+ /*#__PURE__*/ M(g, {
292
+ className: "mb-4",
293
+ children: /*#__PURE__*/ M(A.Field, {
294
+ name: "port_id",
295
+ children: (e) => /*#__PURE__*/ M(d, {
296
+ id: e.name,
297
+ name: e.name,
298
+ value: e.state.value,
299
+ onChange: (t) => {
300
+ let n = typeof t == "string" ? t : "";
301
+ e.handleChange(n);
302
+ let r = E.find((e) => e.id === n)?.fixed_ips ?? [];
303
+ A.setFieldValue("fixed_ip_address", r.length === 1 ? r[0].ip_address : "");
304
+ },
305
+ label: r._({ id: "eks7oA" }),
306
+ placeholder: r._({ id: "UztfYZ" }),
307
+ errortext: e.state.meta.errors.map((e) => e?.message).join(", "),
308
+ disabled: f || D,
309
+ loading: D,
310
+ children: E.map((e) => /*#__PURE__*/ M(i, {
311
+ value: e.id,
312
+ label: e.name ? `${e.name} (${e.id})` : e.id
313
+ }, e.id))
314
+ })
315
+ })
316
+ }),
317
+ /*#__PURE__*/ M(g, { children: /*#__PURE__*/ M(A.Field, {
318
+ name: "fixed_ip_address",
319
+ children: (e) => /*#__PURE__*/ M(d, {
320
+ id: e.name,
321
+ name: e.name,
322
+ value: e.state.value,
323
+ onBlur: e.handleBlur,
324
+ onChange: (t) => e.handleChange(typeof t == "string" ? t : ""),
325
+ label: r._({ id: "Nc7QKU" }),
326
+ placeholder: r._({ id: "i41Xuw" }),
327
+ helptext: r._({ id: "PtjzS+" }),
328
+ errortext: e.state.meta.errors.map((e) => e?.message).join(", "),
329
+ disabled: f || I.length === 0,
330
+ children: I.map(({ ip_address: e }) => /*#__PURE__*/ M(i, {
331
+ value: e,
332
+ label: e
333
+ }, e))
334
+ })
335
+ }) })
336
+ ]
337
+ })]
338
+ });
339
+ }, Z = (e) => {
340
+ let t = [];
341
+ return e.status && t.push({
342
+ name: "status",
343
+ value: e.status
344
+ }), t;
345
+ }, re = (e, t) => {
346
+ let n = {};
347
+ if (!e?.length) return n;
348
+ let r = 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(r).forEach(([e, r]) => {
350
+ t.find((t) => t.filterName === e)?.supportsMultiValue && r.length > 1 ? n[e] = `in:${r.join(",")}` : n[e] = r[0];
351
+ }), n;
352
+ }, ie = (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], ae = (e, t, n) => {
353
+ let r = {
354
+ search: n.search,
355
+ sortBy: n.sortBy,
356
+ sortDirection: n.sortDirection
357
+ };
358
+ if (!e?.length) return r;
359
+ let i = e.filter((e) => !e.inactive).reduce((e, t) => (e[t.name] || (e[t.name] = []), e[t.name].push(t.value), e), {});
360
+ return Object.entries(i).forEach(([e, n]) => {
361
+ t.find((t) => t.filterName === e)?.supportsMultiValue && n.length > 1 ? r[e] = `in:${n.join(",")}` : r[e] = n[0];
362
+ }), r;
363
+ }, Q = "status", $ = "asc", oe = () => {
364
+ let { i18n: t, _: i } = B(), a = L(), o = R({ strict: !1 }), s = x(), [c, l] = D(!1), [d, p] = I(o.search || ""), m = F(void 0);
365
+ P(() => () => clearTimeout(m.current), []);
366
+ let [h, g] = I({
367
+ options: [{
368
+ label: t._({ id: "uAQUqI" }),
369
+ value: "status"
370
+ }],
371
+ sortBy: o.sortBy || Q,
372
+ sortDirection: o.sortDirection || $
373
+ }), [v, y] = I({
374
+ filters: [{
375
+ displayName: t._({ id: "uAQUqI" }),
376
+ filterName: "status",
377
+ values: [
378
+ "ACTIVE",
379
+ "DOWN",
380
+ "ERROR"
381
+ ],
382
+ supportsMultiValue: !1
383
+ }],
384
+ selectedFilters: Z(o)
385
+ }), C = o.search || "", { data: w } = b.network.canUser.useQuery({
386
+ project_id: s,
387
+ permission: ["network:floatingips:create"]
388
+ }, { select: ([e]) => ({ canCreate: e }) });
389
+ P(() => {
390
+ let e = Z(o), t = o.sortBy || Q, n = o.sortDirection || $, r = o.search || "";
391
+ y((t) => ({
392
+ ...t,
393
+ selectedFilters: e
394
+ })), g((e) => ({
395
+ ...e,
396
+ sortBy: t,
397
+ sortDirection: n
398
+ })), p(r);
399
+ }, [
400
+ o.status,
401
+ o.sortBy,
402
+ o.sortDirection,
403
+ o.search
404
+ ]);
405
+ let T = (e) => {
406
+ let t = {
407
+ options: e.options,
408
+ sortBy: e.sortBy?.toString() || Q,
409
+ sortDirection: e.sortDirection || $
410
+ };
411
+ g(t), a({
412
+ search: (e) => ({
413
+ ...e,
414
+ sortBy: t.sortBy,
415
+ sortDirection: t.sortDirection
416
+ }),
417
+ replace: !1
418
+ });
419
+ }, A = (e) => {
420
+ y(e), a({
421
+ search: (t) => ae(e.selectedFilters || [], e.filters, {
422
+ search: t.search,
423
+ sortBy: t.sortBy,
424
+ sortDirection: t.sortDirection
425
+ }),
426
+ replace: !1
427
+ });
428
+ }, V = (e, t = !1) => {
429
+ a({
430
+ search: (t) => ({
431
+ ...t,
432
+ search: e || void 0
433
+ }),
434
+ replace: t
435
+ });
436
+ }, { data: H = [], isLoading: U, isError: W, error: G } = b.network.floatingIp.list.useQuery({
437
+ project_id: s,
438
+ sort_key: h.sortBy,
439
+ sort_dir: h.sortDirection,
440
+ ...re(v.selectedFilters || [], v.filters),
441
+ ...C ? { searchTerm: C } : {}
442
+ }, { placeholderData: (e) => e });
443
+ return W && !H.length ? /*#__PURE__*/ M(_, {
444
+ status: "error",
445
+ title: G?.message ?? t._({ id: "/sdjzP" })
446
+ }) : /*#__PURE__*/ N(j, { children: [/*#__PURE__*/ M(E, {
447
+ title: t._({ id: "u77/s4" }),
448
+ projectId: s
449
+ }), /*#__PURE__*/ N("div", {
450
+ className: "relative",
451
+ children: [
452
+ W && H.length > 0 && /*#__PURE__*/ M(n, {
453
+ variant: "error",
454
+ className: "mb-4",
455
+ children: G?.message ?? t._({ id: "cL8dHR" })
456
+ }),
457
+ /*#__PURE__*/ M(r, {
458
+ distribution: "end",
459
+ alignment: "center",
460
+ gap: "2",
461
+ className: "pb-2",
462
+ children: /*#__PURE__*/ N(r, {
463
+ gap: "2",
464
+ children: [/*#__PURE__*/ M(S, {
465
+ options: h.options,
466
+ sortBy: h.sortBy,
467
+ sortDirection: h.sortDirection ?? "asc",
468
+ selectClassName: "min-w-52",
469
+ onSortByChange: (e) => T({
470
+ ...h,
471
+ sortBy: e,
472
+ sortDirection: h.sortDirection
473
+ }),
474
+ onSortDirectionChange: (e) => T({
475
+ ...h,
476
+ sortDirection: e
477
+ })
478
+ }), w?.canCreate && /*#__PURE__*/ M(u, {
479
+ onClick: l,
480
+ variant: "primary",
481
+ className: "whitespace-nowrap",
482
+ children: /*#__PURE__*/ M(z, { id: "h99+4y" })
483
+ })]
484
+ })
485
+ }),
486
+ /*#__PURE__*/ M(f, { children: /*#__PURE__*/ N(r, {
487
+ direction: "vertical",
488
+ gap: "2",
489
+ children: [/*#__PURE__*/ N(r, {
490
+ distribution: "between",
491
+ alignment: "center",
492
+ children: [/*#__PURE__*/ M(k, {
493
+ filters: v.filters,
494
+ selectClassName: "sm:min-w-40",
495
+ comboboxClassName: "sm:min-w-40",
496
+ onChange: (e) => {
497
+ let t = ie(v.selectedFilters || [], e, v.filters);
498
+ t !== (v.selectedFilters || []) && A({
499
+ ...v,
500
+ selectedFilters: t
501
+ });
502
+ }
503
+ }), /*#__PURE__*/ M(e, {
504
+ placeholder: t._({ id: "s6lr1k" }),
505
+ "data-testid": "searchbar",
506
+ value: d,
507
+ onInput: (e) => {
508
+ let t = e.currentTarget.value;
509
+ p(t), clearTimeout(m.current), m.current = window.setTimeout(() => V(t, !0), 500);
510
+ },
511
+ onSearch: (e) => {
512
+ clearTimeout(m.current), V(typeof e == "string" ? e : "", !1);
513
+ },
514
+ onClear: () => {
515
+ clearTimeout(m.current), p(""), V("", !1);
516
+ }
517
+ })]
518
+ }), v.selectedFilters && v.selectedFilters.length > 0 && /*#__PURE__*/ M(O, {
519
+ selectedFilters: v.selectedFilters,
520
+ onDelete: (e) => A({
521
+ ...v,
522
+ selectedFilters: (v.selectedFilters || []).filter((t) => t.name !== e.name || t.value !== e.value)
523
+ }),
524
+ onClear: () => A({
525
+ ...v,
526
+ selectedFilters: []
527
+ })
528
+ })]
529
+ }) }),
530
+ /*#__PURE__*/ M(J, {
531
+ floatingIps: H,
532
+ isLoading: U,
533
+ isError: W && !H.length,
534
+ error: G
535
+ }),
536
+ c && /*#__PURE__*/ M(ne, {
537
+ open: c,
538
+ onClose: l
539
+ })
540
+ ]
541
+ })] });
542
+ };
543
+ //#endregion
544
+ //#region src/client/routes/_auth/projects/$projectId/network/floatingips/index.tsx?tsr-split=component
545
+ function se() {
546
+ return /*#__PURE__*/ M(oe, {});
547
+ }
548
+ //#endregion
549
+ export { se as component };
550
+
551
+ //# sourceMappingURL=floatingips-B1oLH8z6.mjs.map