@cobaltcore-dev/aurora 0.2.2 → 0.3.1
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.
- package/dist/client/AuroraApp.d.ts +10 -0
- package/dist/client/{ContentHeader-DtBiIwRY.mjs → ContentHeader-BXZoN3B9.mjs} +15 -15
- package/dist/client/{ContentHeader-DtBiIwRY.mjs.map → ContentHeader-BXZoN3B9.mjs.map} +1 -1
- package/dist/client/{DeleteFlavorModal-rmuYIafD.mjs → DeleteFlavorModal-BusYn32r.mjs} +148 -148
- package/dist/client/{DeleteFlavorModal-rmuYIafD.mjs.map → DeleteFlavorModal-BusYn32r.mjs.map} +1 -1
- package/dist/client/{EditSecurityGroupModal-B7Sz9puM.mjs → EditSecurityGroupModal-Dl6m7wUe.mjs} +16 -16
- package/dist/client/{EditSecurityGroupModal-B7Sz9puM.mjs.map → EditSecurityGroupModal-Dl6m7wUe.mjs.map} +1 -1
- package/dist/client/FiltersInput-BgNaHFBt.mjs +81 -0
- package/dist/client/FiltersInput-BgNaHFBt.mjs.map +1 -0
- package/dist/client/{FloatingIpActionModals-CfRJiZqD.mjs → FloatingIpActionModals-By2hXR9m.mjs} +51 -51
- package/dist/client/{FloatingIpActionModals-CfRJiZqD.mjs.map → FloatingIpActionModals-By2hXR9m.mjs.map} +1 -1
- package/dist/client/{ImageToastNotifications-Cw30RXsw.mjs → ImageToastNotifications-fHI8jB2j.mjs} +369 -369
- package/dist/client/{ImageToastNotifications-Cw30RXsw.mjs.map → ImageToastNotifications-fHI8jB2j.mjs.map} +1 -1
- package/dist/client/ListToolbar-BvtCo8dk.mjs +129 -0
- package/dist/client/ListToolbar-BvtCo8dk.mjs.map +1 -0
- package/dist/client/{RouteError-Cyto623-.mjs → RouteError-pDEWC_k7.mjs} +2 -2
- package/dist/client/{RouteError-Cyto623-.mjs.map → RouteError-pDEWC_k7.mjs.map} +1 -1
- package/dist/client/SortInput-DXWSqSny.mjs +34 -0
- package/dist/client/SortInput-DXWSqSny.mjs.map +1 -0
- package/dist/client/{_flavorId-B-1fYadl.mjs → _flavorId-BRonXvCo.mjs} +46 -46
- package/dist/client/_flavorId-BRonXvCo.mjs.map +1 -0
- package/dist/client/{_flavorId-BYfIHIV_.mjs → _flavorId-BoNcxYmF.mjs} +10 -10
- package/dist/client/_flavorId-BoNcxYmF.mjs.map +1 -0
- package/dist/client/_floatingIpId-BpUfL8Im2.mjs +228 -0
- package/dist/client/_floatingIpId-BpUfL8Im2.mjs.map +1 -0
- package/dist/client/{_floatingIpId-IrnN-ozB.mjs → _floatingIpId-CwHiXazi.mjs} +2 -2
- package/dist/client/{_floatingIpId-IrnN-ozB.mjs.map → _floatingIpId-CwHiXazi.mjs.map} +1 -1
- package/dist/client/{_imageId-Tx_9bqEc.mjs → _imageId-CdOOJjw0.mjs} +158 -158
- package/dist/client/_imageId-CdOOJjw0.mjs.map +1 -0
- package/dist/client/{_pcaId-CFuKY82d.mjs → _pcaId-CwlH1Kvl.mjs} +132 -132
- package/dist/client/{_pcaId-CFuKY82d.mjs.map → _pcaId-CwlH1Kvl.mjs.map} +1 -1
- package/dist/client/{_pcaId-Bck7S7gJ.mjs → _pcaId-D1ZEaCdp.mjs} +2 -2
- package/dist/client/{_pcaId-Bck7S7gJ.mjs.map → _pcaId-D1ZEaCdp.mjs.map} +1 -1
- package/dist/client/_projectId-D1gGribM.mjs +316 -0
- package/dist/client/_projectId-D1gGribM.mjs.map +1 -0
- package/dist/client/{_projectId-PSpuCKO7.mjs → _projectId-DhLpIalx.mjs} +9 -9
- package/dist/client/{_projectId-PSpuCKO7.mjs.map → _projectId-DhLpIalx.mjs.map} +1 -1
- package/dist/client/{_projectId-B1VjDd0Z.mjs → _projectId-Dj_InfSc.mjs} +3 -3
- package/dist/client/{_projectId-B1VjDd0Z.mjs.map → _projectId-Dj_InfSc.mjs.map} +1 -1
- package/dist/client/{_projectId-Pxp-RXK4.mjs → _projectId-OW2xkK43.mjs} +2 -2
- package/dist/client/{_projectId-Pxp-RXK4.mjs.map → _projectId-OW2xkK43.mjs.map} +1 -1
- package/dist/client/{_securityGroupId-VV2lUcGQ.mjs → _securityGroupId-B0llWH9A.mjs} +2 -2
- package/dist/client/{_securityGroupId-VV2lUcGQ.mjs.map → _securityGroupId-B0llWH9A.mjs.map} +1 -1
- package/dist/client/{_securityGroupId-Dqi6ddw4.mjs → _securityGroupId-gbUnd5Wv.mjs} +363 -363
- package/dist/client/{_securityGroupId-Dqi6ddw4.mjs.map → _securityGroupId-gbUnd5Wv.mjs.map} +1 -1
- package/dist/client/{about-B2AzqxFI.mjs → about-DCe6LsKz.mjs} +8 -8
- package/dist/client/{about-B2AzqxFI.mjs.map → about-DCe6LsKz.mjs.map} +1 -1
- package/dist/client/{build-Cf7iWbpH.mjs → build-BJDfnAyi.mjs} +1573 -1564
- package/dist/client/{build-Cf7iWbpH.mjs.map → build-BJDfnAyi.mjs.map} +1 -1
- package/dist/client/{buildFilterParams-ngVK3ybs.mjs → buildFilterParams-By33pG59.mjs} +1 -1
- package/dist/client/{buildFilterParams-ngVK3ybs.mjs.map → buildFilterParams-By33pG59.mjs.map} +1 -1
- package/dist/client/{constants-CCgR6fKI.mjs → constants-CAjjRTo_.mjs} +9 -9
- package/dist/client/{constants-CCgR6fKI.mjs.map → constants-CAjjRTo_.mjs.map} +1 -1
- package/dist/client/{containers-BWERuY0O.mjs → containers-BuXUVb1N.mjs} +811 -811
- package/dist/client/{containers-BWERuY0O.mjs.map → containers-BuXUVb1N.mjs.map} +1 -1
- package/dist/client/{containers-Cs5vOeR2.mjs → containers-Ca5V1EBS.mjs} +1 -1
- package/dist/client/containers-Ca5V1EBS.mjs.map +1 -0
- package/dist/client/{containers-DovytjVP.mjs → containers-NW7RnHTI.mjs} +6 -6
- package/dist/client/containers-NW7RnHTI.mjs.map +1 -0
- package/dist/client/flavors-BXPYAFyQ.mjs.map +1 -1
- package/dist/client/{flavors-CUiALHcB.mjs → flavors-D8oElC2K.mjs} +2 -2
- package/dist/client/{flavors-CUiALHcB.mjs.map → flavors-D8oElC2K.mjs.map} +1 -1
- package/dist/client/flavors-qvgPSI7J.mjs +613 -0
- package/dist/client/flavors-qvgPSI7J.mjs.map +1 -0
- package/dist/client/{floatingips-BrjDiY2t.mjs → floatingips-Be3zLoaD.mjs} +126 -126
- package/dist/client/{floatingips-BrjDiY2t.mjs.map → floatingips-Be3zLoaD.mjs.map} +1 -1
- package/dist/client/{images-BZP3pBqj.mjs → images-BiEBENaj.mjs} +2 -2
- package/dist/client/{images-BZP3pBqj.mjs.map → images-BiEBENaj.mjs.map} +1 -1
- package/dist/client/images-CCYBAphP2.mjs +1900 -0
- package/dist/client/images-CCYBAphP2.mjs.map +1 -0
- package/dist/client/images-DM9I8G0p.mjs.map +1 -1
- package/dist/client/index.d.ts +2 -1
- package/dist/client/index.js +410 -412
- package/dist/client/index.js.map +1 -1
- package/dist/client/{network-SCVadZsv.mjs → network-nbSbl0X0.mjs} +1 -1
- package/dist/client/{network-SCVadZsv.mjs.map → network-nbSbl0X0.mjs.map} +1 -1
- package/dist/client/{objects-D4zBka5e.mjs → objects-CU5ws07o.mjs} +6 -6
- package/dist/client/objects-CU5ws07o.mjs.map +1 -0
- package/dist/client/objects-FXN0VWLI.mjs +4760 -0
- package/dist/client/{objects-Cw4Vu01M.mjs.map → objects-FXN0VWLI.mjs.map} +1 -1
- package/dist/client/{objects-B4yrYf_a.mjs → objects-GmuIOaHd.mjs} +1 -1
- package/dist/client/objects-GmuIOaHd.mjs.map +1 -0
- package/dist/client/{overview-BtIXpYBo.mjs → overview-B3gdnWTG.mjs} +2 -2
- package/dist/client/{overview-BtIXpYBo.mjs.map → overview-B3gdnWTG.mjs.map} +1 -1
- package/dist/client/{overview-2J54-loz.mjs → overview-DzYBiNfD.mjs} +2 -2
- package/dist/client/{overview-2J54-loz.mjs.map → overview-DzYBiNfD.mjs.map} +1 -1
- package/dist/client/{overview-D0AAvsmL.mjs → overview-EhfPY8Je.mjs} +2 -2
- package/dist/client/{overview-D0AAvsmL.mjs.map → overview-EhfPY8Je.mjs.map} +1 -1
- package/dist/client/{overview-BnmukbFh.mjs → overview-XueZI4LQ.mjs} +7 -7
- package/dist/client/{overview-BnmukbFh.mjs.map → overview-XueZI4LQ.mjs.map} +1 -1
- package/dist/client/{pca-BqZycwCu.mjs → pca-DSM71LhW.mjs} +2 -2
- package/dist/client/{pca-BqZycwCu.mjs.map → pca-DSM71LhW.mjs.map} +1 -1
- package/dist/client/{pca-V2aaOxZA.mjs → pca-x9if8xU-.mjs} +59 -59
- package/dist/client/{pca-V2aaOxZA.mjs.map → pca-x9if8xU-.mjs.map} +1 -1
- package/dist/client/{projects-jyIHL6DE.mjs → projects-B6BPo2Ar.mjs} +2 -2
- package/dist/client/projects-B6BPo2Ar.mjs.map +1 -0
- package/dist/client/{projects-BsN4bvU2.mjs → projects-BilrmHLu.mjs} +1 -1
- package/dist/client/projects-BilrmHLu.mjs.map +1 -0
- package/dist/client/{projects-0feOw_b6.mjs → projects-Bt0XptpG.mjs} +2 -2
- package/dist/client/projects-Bt0XptpG.mjs.map +1 -0
- package/dist/client/projects-CnmZIB2Q.mjs +95 -0
- package/dist/client/projects-CnmZIB2Q.mjs.map +1 -0
- package/dist/client/{securitygroups-B4MkSBtI.mjs → securitygroups-BdzieS7Z.mjs} +121 -121
- package/dist/client/{securitygroups-B4MkSBtI.mjs.map → securitygroups-BdzieS7Z.mjs.map} +1 -1
- package/dist/client/{useListWithFiltering-CEDh1LO-.mjs → useListWithFiltering-CqQbAjEe.mjs} +1 -1
- package/dist/client/{useListWithFiltering-CEDh1LO-.mjs.map → useListWithFiltering-CqQbAjEe.mjs.map} +1 -1
- package/package.json +2 -2
- package/dist/client/ListToolbar-DuazvsAu.mjs +0 -223
- package/dist/client/ListToolbar-DuazvsAu.mjs.map +0 -1
- package/dist/client/_flavorId-B-1fYadl.mjs.map +0 -1
- package/dist/client/_flavorId-BYfIHIV_.mjs.map +0 -1
- package/dist/client/_floatingIpId-FQ5P2qMV.mjs +0 -228
- package/dist/client/_floatingIpId-FQ5P2qMV.mjs.map +0 -1
- package/dist/client/_imageId-Tx_9bqEc.mjs.map +0 -1
- package/dist/client/_projectId-Bs4W9hos.mjs +0 -283
- package/dist/client/_projectId-Bs4W9hos.mjs.map +0 -1
- package/dist/client/containers-Cs5vOeR2.mjs.map +0 -1
- package/dist/client/containers-DovytjVP.mjs.map +0 -1
- package/dist/client/flavors-Bovz-I2U.mjs +0 -565
- package/dist/client/flavors-Bovz-I2U.mjs.map +0 -1
- package/dist/client/images-DaaCUXMI.mjs +0 -1797
- package/dist/client/images-DaaCUXMI.mjs.map +0 -1
- package/dist/client/objects-B4yrYf_a.mjs.map +0 -1
- package/dist/client/objects-Cw4Vu01M.mjs +0 -4760
- package/dist/client/objects-D4zBka5e.mjs.map +0 -1
- package/dist/client/projects-0feOw_b6.mjs.map +0 -1
- package/dist/client/projects-BsN4bvU2.mjs.map +0 -1
- package/dist/client/projects-C1IYOvFQ.mjs +0 -144
- package/dist/client/projects-C1IYOvFQ.mjs.map +0 -1
- package/dist/client/projects-jyIHL6DE.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects-Bt0XptpG.mjs","names":["createFileRoute","z","searchSchema","object","search","string","optional","Route","component","lazyRouteComponent","$$splitComponentImporter","errorComponent","$$splitErrorComponentImporter","notFoundComponent","$$splitNotFoundComponentImporter","validateSearch","loaderDeps","loader","context","deps","allProjects","trpcClient","project","getAuthProjects","query","projects","trim","searchTermLower","toLowerCase","filter","name","includes","description"],"sources":["../../src/client/routes/_auth/projects/index.tsx"],"sourcesContent":["import { createFileRoute } from \"@tanstack/react-router\"\nimport { ProjectsOverviewNavBar } from \"@/client/routes/_auth/projects/-components/ProjectOverviewNavBar\"\nimport { ProjectCardView } from \"@/client/routes/_auth/projects/-components/ProjectCardView\"\nimport { RouteError } from \"@/client/components/Error/RouteError\"\nimport { TRPCClientError } from \"@trpc/client\"\nimport { Container, ContentHeading } from \"@cloudoperators/juno-ui-components\"\nimport { Trans } from \"@lingui/react/macro\"\nimport { z } from \"zod\"\n\nconst searchSchema = z.object({\n search: z.string().optional(),\n})\n\nexport const Route = createFileRoute(\"/_auth/projects/\")({\n component: ProjectsOverview,\n errorComponent: ({ error }) => (\n <RouteError error={error} safeErrorMessage={error instanceof TRPCClientError ? error.message : undefined} />\n ),\n notFoundComponent: () => {\n return <p>Projects not found</p>\n },\n validateSearch: searchSchema,\n loaderDeps: ({ search }) => ({\n search: search.search || \"\",\n }),\n loader: async ({ context, deps }) => {\n const allProjects = await context.trpcClient?.project.getAuthProjects.query()\n\n let projects = allProjects\n if (deps.search && deps.search.trim() !== \"\") {\n const searchTermLower = deps.search.toLowerCase()\n projects = allProjects?.filter(\n (project) =>\n project.name?.toLowerCase().includes(searchTermLower) ||\n project.description?.toLowerCase().includes(searchTermLower)\n )\n }\n\n return { projects }\n },\n})\n\nfunction ProjectsOverview() {\n const { projects } = Route.useLoaderData()\n const { search = \"\" } = Route.useSearch()\n const navigate = Route.useNavigate()\n\n const handleSearch = (value: string) => {\n navigate({ search: { search: value }, replace: true })\n }\n\n return (\n <Container>\n <ContentHeading>\n <Trans>Projects</Trans>\n </ContentHeading>\n <ProjectsOverviewNavBar searchTerm={search} onSearch={handleSearch} />\n <div className=\"pt-5\">\n <ProjectCardView projects={projects} />\n </div>\n </Container>\n )\n}\n"],"mappings":";;;2IASME,IAAeD,EAAEE,OAAO,EAC5BC,QAAQH,EAAEI,QAAM,CAAGC,UAAQ,EAC7B,CAAA,EAEaC,IAAQP,EAAgB,mBAAA,CAAoB;CACvDQ,WAASC,EAAAC,GAAA,YAAA;CACTC,gBAAcF,EAAAG,GAAA,iBAAA;CAGdC,mBAAiBJ,EAAAK,GAAA,oBAAA;CAGjBC,gBAAgBb;CAChBc,aAAa,EAAEZ,iBAAc,EAC3BA,QAAQA,EAAOA,UAAU,IAC3B;CACAa,QAAQ,OAAO,EAAEC,YAASC,cAAM;EAC9B,IAAMC,IAAc,MAAMF,EAAQG,YAAYC,QAAQC,gBAAgBC,OAAAA,EAElEC,IAAWL;AACf,MAAID,EAAKf,UAAUe,EAAKf,OAAOsB,MAAI,KAAO,IAAI;GAC5C,IAAMC,IAAkBR,EAAKf,OAAOwB,aAAW;AAC/CH,OAAWL,GAAaS,QACrBP,MACCA,EAAQQ,MAAMF,aAAAA,CAAcG,SAASJ,EAAAA,IACrCL,EAAQU,aAAaJ,aAAAA,CAAcG,SAASJ,EAAAA,CAAAA;;AAIlD,SAAO,EAAEF,aAAS;;CAEtB,CAAA"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { f as e, j as t, v as n, z as r } from "./build-BJDfnAyi.mjs";
|
|
2
|
+
import { t as i } from "./projects-Bt0XptpG.mjs";
|
|
3
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
4
|
+
import { useEffect as s, useRef as c, useState as l } from "react";
|
|
5
|
+
import { useNavigate as u } from "@tanstack/react-router";
|
|
6
|
+
import { Trans as d, useLingui as f } from "@lingui/react";
|
|
7
|
+
//#region src/client/routes/_auth/projects/-components/ProjectOverviewNavBar.tsx
|
|
8
|
+
function p({ onSearch: t, searchTerm: n = "" }) {
|
|
9
|
+
let { i18n: r, _: i } = f(), o = c(null), u = c(!1), [d, p] = l(n);
|
|
10
|
+
return s(() => {
|
|
11
|
+
!u.current && !o.current && n !== d && p(n);
|
|
12
|
+
}, [n]), s(() => () => {
|
|
13
|
+
o.current && clearTimeout(o.current);
|
|
14
|
+
}, []), /* @__PURE__ */ a(e, {
|
|
15
|
+
className: "w-full",
|
|
16
|
+
type: "text",
|
|
17
|
+
placeholder: r._({ id: "YIix5Y" }),
|
|
18
|
+
onChange: (e) => {
|
|
19
|
+
let n = e.target.value;
|
|
20
|
+
p(n), o.current && clearTimeout(o.current), o.current = setTimeout(() => {
|
|
21
|
+
o.current = null, t(n);
|
|
22
|
+
}, 300);
|
|
23
|
+
},
|
|
24
|
+
onFocus: () => {
|
|
25
|
+
u.current = !0;
|
|
26
|
+
},
|
|
27
|
+
onBlur: () => {
|
|
28
|
+
u.current = !1;
|
|
29
|
+
},
|
|
30
|
+
onClear: () => {
|
|
31
|
+
o.current &&= (clearTimeout(o.current), null), p(""), t("");
|
|
32
|
+
},
|
|
33
|
+
value: d
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//#endregion
|
|
37
|
+
//#region src/client/routes/_auth/projects/-components/ProjectCardView.tsx
|
|
38
|
+
function m({ project: e }) {
|
|
39
|
+
let r = u();
|
|
40
|
+
return /* @__PURE__ */ a(n, {
|
|
41
|
+
padding: !0,
|
|
42
|
+
onClick: () => r({
|
|
43
|
+
to: "/projects/$projectId",
|
|
44
|
+
params: { projectId: e.id }
|
|
45
|
+
}),
|
|
46
|
+
className: "min-h-50",
|
|
47
|
+
children: /* @__PURE__ */ o("div", {
|
|
48
|
+
className: "w-full",
|
|
49
|
+
children: [/* @__PURE__ */ a(t, {
|
|
50
|
+
className: "text-theme-accent",
|
|
51
|
+
children: e.name
|
|
52
|
+
}), /* @__PURE__ */ a("p", {
|
|
53
|
+
className: "mt-4 line-clamp-3 pr-4 leading-relaxed",
|
|
54
|
+
children: e.description
|
|
55
|
+
})]
|
|
56
|
+
})
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function h({ projects: e }) {
|
|
60
|
+
return /* @__PURE__ */ a("div", {
|
|
61
|
+
className: "w-full",
|
|
62
|
+
children: /* @__PURE__ */ a("div", {
|
|
63
|
+
className: "grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-4",
|
|
64
|
+
children: e?.length ? e.map((e) => /* @__PURE__ */ a(m, { project: e }, e.id)) : /* @__PURE__ */ a("p", {
|
|
65
|
+
className: "text-center",
|
|
66
|
+
children: /* @__PURE__ */ a(d, { id: "Zgp2Sm" })
|
|
67
|
+
})
|
|
68
|
+
})
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//#endregion
|
|
72
|
+
//#region src/client/routes/_auth/projects/index.tsx?tsr-split=component
|
|
73
|
+
function g() {
|
|
74
|
+
let { projects: e } = i.useLoaderData(), { search: n = "" } = i.useSearch(), s = i.useNavigate();
|
|
75
|
+
return /* @__PURE__ */ o(r, { children: [
|
|
76
|
+
/* @__PURE__ */ a(t, { children: /* @__PURE__ */ a(d, { id: "+0B+ue" }) }),
|
|
77
|
+
/* @__PURE__ */ a(p, {
|
|
78
|
+
searchTerm: n,
|
|
79
|
+
onSearch: (e) => {
|
|
80
|
+
s({
|
|
81
|
+
search: { search: e },
|
|
82
|
+
replace: !0
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}),
|
|
86
|
+
/* @__PURE__ */ a("div", {
|
|
87
|
+
className: "pt-5",
|
|
88
|
+
children: /* @__PURE__ */ a(h, { projects: e })
|
|
89
|
+
})
|
|
90
|
+
] });
|
|
91
|
+
}
|
|
92
|
+
//#endregion
|
|
93
|
+
export { g as component };
|
|
94
|
+
|
|
95
|
+
//# sourceMappingURL=projects-CnmZIB2Q.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects-CnmZIB2Q.mjs","names":["useEffect","useRef","useState","SearchInput","ProjectsOverviewNavBar","onSearch","searchTerm","useLingui","timerRef","inputFocusedRef","inputValue","setInputValue","current","clearTimeout","handleSearchChange","e","value","target","setTimeout","handleClear","className","type","placeholder","t","onChange","onFocus","onBlur","onClear","useNavigate","Card","ContentHeading","ProjectCard","project","navigate","padding","onClick","to","params","projectId","id","className","div","name","p","description","ProjectCardView","projects","length","map","ProjectsOverviewNavBar","ProjectCardView","Container","ContentHeading","Trans","Route","ProjectsOverview","projects","useLoaderData","search","useSearch","navigate","useNavigate","handleSearch","value","replace","component"],"sources":["../../src/client/routes/_auth/projects/-components/ProjectOverviewNavBar.tsx","../../src/client/routes/_auth/projects/-components/ProjectCardView.tsx","../../src/client/routes/_auth/projects/index.tsx?tsr-split=component"],"sourcesContent":["import { ChangeEvent, useEffect, useRef, useState } from \"react\"\nimport { SearchInput } from \"@cloudoperators/juno-ui-components\"\nimport { useLingui } from \"@lingui/react/macro\"\n\ntype ProjectsOverviewNavBarProps = {\n searchTerm?: string\n onSearch: (value: string) => void\n}\n\nexport function ProjectsOverviewNavBar({ onSearch, searchTerm = \"\" }: ProjectsOverviewNavBarProps) {\n const { t } = useLingui()\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const inputFocusedRef = useRef(false)\n const [inputValue, setInputValue] = useState(searchTerm)\n\n useEffect(() => {\n if (!inputFocusedRef.current && !timerRef.current && searchTerm !== inputValue) {\n setInputValue(searchTerm)\n }\n }, [searchTerm])\n\n useEffect(() => {\n return () => {\n if (timerRef.current) clearTimeout(timerRef.current)\n }\n }, [])\n\n const handleSearchChange = (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n setInputValue(value)\n if (timerRef.current) clearTimeout(timerRef.current)\n timerRef.current = setTimeout(() => {\n timerRef.current = null\n onSearch(value)\n }, 300)\n }\n\n const handleClear = () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current)\n timerRef.current = null\n }\n setInputValue(\"\")\n onSearch(\"\")\n }\n\n return (\n <SearchInput\n className=\"w-full\"\n type=\"text\"\n placeholder={t`Search...`}\n onChange={handleSearchChange}\n onFocus={() => {\n inputFocusedRef.current = true\n }}\n onBlur={() => {\n inputFocusedRef.current = false\n }}\n onClear={handleClear}\n value={inputValue}\n />\n )\n}\n","import { useNavigate } from \"@tanstack/react-router\"\nimport { Project } from \"@/server/Project/types/models\"\nimport { Card, ContentHeading } from \"@cloudoperators/juno-ui-components\"\nimport { Trans } from \"@lingui/react/macro\"\n\ntype ProjectCardProps = {\n project: Project\n}\ntype ProjectCardViewProps = {\n projects: Project[] | undefined\n}\n\nexport function ProjectCard({ project }: ProjectCardProps) {\n const navigate = useNavigate()\n return (\n <Card\n padding\n onClick={() => navigate({ to: \"/projects/$projectId\", params: { projectId: project.id } })}\n className=\"min-h-50\"\n >\n <div className=\"w-full\">\n <ContentHeading className=\"text-theme-accent\">{project.name}</ContentHeading>\n <p className=\"mt-4 line-clamp-3 pr-4 leading-relaxed\">{project.description}</p>\n </div>\n </Card>\n )\n}\n\nexport function ProjectCardView({ projects }: ProjectCardViewProps) {\n return (\n <div className=\"w-full\">\n <div className=\"grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-4\">\n {projects?.length ? (\n projects.map((project) => <ProjectCard key={project.id} project={project} />)\n ) : (\n <p className=\"text-center\">\n <Trans>No projects available.</Trans>\n </p>\n )}\n </div>\n </div>\n )\n}\n","import { createFileRoute } from \"@tanstack/react-router\"\nimport { ProjectsOverviewNavBar } from \"@/client/routes/_auth/projects/-components/ProjectOverviewNavBar\"\nimport { ProjectCardView } from \"@/client/routes/_auth/projects/-components/ProjectCardView\"\nimport { RouteError } from \"@/client/components/Error/RouteError\"\nimport { TRPCClientError } from \"@trpc/client\"\nimport { Container, ContentHeading } from \"@cloudoperators/juno-ui-components\"\nimport { Trans } from \"@lingui/react/macro\"\nimport { z } from \"zod\"\n\nconst searchSchema = z.object({\n search: z.string().optional(),\n})\n\nexport const Route = createFileRoute(\"/_auth/projects/\")({\n component: ProjectsOverview,\n errorComponent: ({ error }) => (\n <RouteError error={error} safeErrorMessage={error instanceof TRPCClientError ? error.message : undefined} />\n ),\n notFoundComponent: () => {\n return <p>Projects not found</p>\n },\n validateSearch: searchSchema,\n loaderDeps: ({ search }) => ({\n search: search.search || \"\",\n }),\n loader: async ({ context, deps }) => {\n const allProjects = await context.trpcClient?.project.getAuthProjects.query()\n\n let projects = allProjects\n if (deps.search && deps.search.trim() !== \"\") {\n const searchTermLower = deps.search.toLowerCase()\n projects = allProjects?.filter(\n (project) =>\n project.name?.toLowerCase().includes(searchTermLower) ||\n project.description?.toLowerCase().includes(searchTermLower)\n )\n }\n\n return { projects }\n },\n})\n\nfunction ProjectsOverview() {\n const { projects } = Route.useLoaderData()\n const { search = \"\" } = Route.useSearch()\n const navigate = Route.useNavigate()\n\n const handleSearch = (value: string) => {\n navigate({ search: { search: value }, replace: true })\n }\n\n return (\n <Container>\n <ContentHeading>\n <Trans>Projects</Trans>\n </ContentHeading>\n <ProjectsOverviewNavBar searchTerm={search} onSearch={handleSearch} />\n <div className=\"pt-5\">\n <ProjectCardView projects={projects} />\n </div>\n </Container>\n )\n}\n"],"mappings":";;;;;;;AASA,SAAgBI,EAAuB,EAAEC,aAAUC,gBAAa,MAAiC;CAC/F,IAAM,EAAA,MAAA,GAAA,GAAA,MAAQC,GAAAA,EACRC,IAAWP,EAA6C,KAAA,EACxDQ,IAAkBR,EAAO,GAAA,EACzB,CAACS,GAAYC,KAAiBT,EAASI,EAAAA;AAiC7C,QA/BAN,QAAU;AACR,EAAI,CAACS,EAAgBG,WAAW,CAACJ,EAASI,WAAWN,MAAeI,KAClEC,EAAcL,EAAAA;IAEf,CAACA,EAAW,CAAA,EAEfN,cACS;AACL,EAAIQ,EAASI,WAASC,aAAaL,EAASI,QAAO;IAEpD,EAAE,CAAA,EAsBH,kBAACT,GAAAA;EACCiB,WAAU;EACVC,MAAK;EACLC,aAAaC,EAAAA,EAAC,EAAA,IAAA,UAAU,CAAA;EACxBC,WAxBwBT,MAAAA;GAC1B,IAAMC,IAAQD,EAAEE,OAAOD;AAGvBR,GAFAG,EAAcK,EAAAA,EACVR,EAASI,WAASC,aAAaL,EAASI,QAAO,EACnDJ,EAASI,UAAUM,iBAAW;AAE5Bb,IADAG,EAASI,UAAU,MACnBP,EAASW,EAAAA;MACR,IAAA;;EAkBDS,eAAS;AACPhB,KAAgBG,UAAU;;EAE5Bc,cAAQ;AACNjB,KAAgBG,UAAU;;EAE5Be,eArBgB;AAMlBtB,GALA,AAEEG,EAASI,aADTC,aAAaL,EAASI,QAAO,EACV,OAErBD,EAAc,GAAA,EACdN,EAAS,GAAA;;EAgBPW,OAAON;;;;;AC/Cb,SAAgBqB,EAAY,EAAEC,cAA2B;CACvD,IAAMC,IAAWL,GAAAA;AACjB,QACE,kBAACC,GAAAA;EACCK,SAAO;EACPC,eAAeF,EAAS;GAAEG,IAAI;GAAwBC,QAAQ,EAAEC,WAAWN,EAAQO,IAAG;GAAE,CAAA;EACxFC,WAAU;YAEV,kBAACC,OAAAA;GAAID,WAAU;cACb,kBAACV,GAAAA;IAAeU,WAAU;cAAqBR,EAAQU;OACvD,kBAACC,KAAAA;IAAEH,WAAU;cAA0CR,EAAQY;;;;;AAMvE,SAAgBC,EAAgB,EAAEC,eAAgC;AAChE,QACE,kBAACL,OAAAA;EAAID,WAAU;YACb,kBAACC,OAAAA;GAAID,WAAU;aACZM,GAAUC,SACTD,EAASE,KAAKhB,MAAY,kBAACD,GAAAA,EAAsCC,YAAAA,EAArBA,EAAQO,GAAE,CAAA,GAEtD,kBAACI,KAAAA;IAAEH,WAAU;cACX,kBAAA,GAAA,EAAA,IAAA,UAAA,CAAA;;;;;;;ACMZ,SAASe,IAAAA;CACP,IAAM,EAAEC,gBAAaF,EAAMG,eAAa,EAClC,EAAEC,YAAS,OAAOJ,EAAMK,WAAS,EACjCC,IAAWN,EAAMO,aAAW;AAMlC,QACE,kBAAC,GAAA,EAAA,UAAA;EACC,kBAAC,GAAA,EAAA,UACC,kBAAA,GAAA,EAAA,IAAA,UAAA,CAAA,EAAA,CAAA;EAEF,kBAAC,GAAA;GAAuB,YAAYH;GAAQ,WAT1BK,MAAAA;AACpBH,MAAS;KAAEF,QAAQ,EAAEA,QAAQK,GAAM;KAAGC,SAAS;KAAK,CAAA;;;EASlD,kBAAC,OAAA;GAAI,WAAU;aACb,kBAAC,GAAA,EAA0BR,aAAAA,CAAAA"}
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { B as e, E as t, G as n, I as r, M as i, Q as a, T as o, U as s, Y as c, at as l, c as u, et as d, h as f, it as p, j as m, n as h, nt as g, ot as _, q as v, s as y, w as b } from "./build-BJDfnAyi.mjs";
|
|
2
2
|
import { r as x } from "./trpcClient-BxguzNYF.mjs";
|
|
3
|
-
import { t as S } from "./
|
|
4
|
-
import { t as C } from "./useProjectId-CgOTejka.mjs";
|
|
3
|
+
import { t as S } from "./useProjectId-CgOTejka.mjs";
|
|
5
4
|
import "./hooks-D0krAKvo.mjs";
|
|
6
|
-
import { t as
|
|
7
|
-
import { t as
|
|
8
|
-
import { t as
|
|
5
|
+
import { t as C } from "./ListToolbar-BvtCo8dk.mjs";
|
|
6
|
+
import { t as w } from "./buildFilterParams-By33pG59.mjs";
|
|
7
|
+
import { t as T } from "./useListWithFiltering-CqQbAjEe.mjs";
|
|
8
|
+
import { t as E } from "./EditSecurityGroupModal-Dl6m7wUe.mjs";
|
|
9
9
|
import { Fragment as D, jsx as O, jsxs as k } from "react/jsx-runtime";
|
|
10
10
|
import { useEffect as A, useRef as j, useState as M } from "react";
|
|
11
11
|
import { useNavigate as N } from "@tanstack/react-router";
|
|
12
12
|
import { Trans as P, useLingui as F } from "@lingui/react";
|
|
13
13
|
//#region src/client/routes/_auth/projects/$projectId/network/securitygroups/-components/-modals/DeleteSecurityGroupDialog.tsx
|
|
14
|
-
var I = ({ isOpen:
|
|
15
|
-
let { i18n:
|
|
16
|
-
e.preventDefault(),
|
|
14
|
+
var I = ({ isOpen: t, onClose: n, securityGroup: r, onDelete: i, isDeleting: a = !1, error: s = null }) => {
|
|
15
|
+
let { i18n: c, _: l } = F(), [d, p] = M(""), m = c._({ id: "HNlEFZ" }), h = d.toLowerCase() === m.toLowerCase(), g = r.name || r.id, y = (e) => {
|
|
16
|
+
e.preventDefault(), h && !a && i(r.id);
|
|
17
17
|
}, b = () => {
|
|
18
|
-
|
|
18
|
+
p(""), n();
|
|
19
19
|
};
|
|
20
|
-
return /* @__PURE__ */ O(
|
|
21
|
-
open:
|
|
20
|
+
return /* @__PURE__ */ O(_, {
|
|
21
|
+
open: t,
|
|
22
22
|
onCancel: b,
|
|
23
23
|
size: "small",
|
|
24
|
-
title:
|
|
24
|
+
title: c._({
|
|
25
25
|
id: "Y+2SDm",
|
|
26
|
-
values: { securityGroupName:
|
|
26
|
+
values: { securityGroupName: g }
|
|
27
27
|
}),
|
|
28
|
-
modalFooter: /* @__PURE__ */ O(
|
|
28
|
+
modalFooter: /* @__PURE__ */ O(e, {
|
|
29
29
|
className: "flex justify-end",
|
|
30
|
-
children: /* @__PURE__ */ k(
|
|
30
|
+
children: /* @__PURE__ */ k(f, { children: [/* @__PURE__ */ O(u, {
|
|
31
31
|
variant: "default",
|
|
32
32
|
onClick: b,
|
|
33
33
|
disabled: a,
|
|
34
34
|
children: /* @__PURE__ */ O(P, { id: "dEgA5A" })
|
|
35
|
-
}), /* @__PURE__ */ O(
|
|
35
|
+
}), /* @__PURE__ */ O(u, {
|
|
36
36
|
variant: "primary-danger",
|
|
37
|
-
onClick:
|
|
38
|
-
disabled: !
|
|
37
|
+
onClick: y,
|
|
38
|
+
disabled: !h || a,
|
|
39
39
|
"data-testid": "confirm-delete-button",
|
|
40
40
|
children: a ? /* @__PURE__ */ O(P, { id: "EF2EU9" }) : /* @__PURE__ */ O(P, { id: "cnGeoo" })
|
|
41
41
|
})] })
|
|
42
42
|
}),
|
|
43
43
|
children: /* @__PURE__ */ k("div", { children: [
|
|
44
|
-
|
|
44
|
+
s && /* @__PURE__ */ O(v, {
|
|
45
45
|
dismissible: !1,
|
|
46
46
|
variant: "error",
|
|
47
47
|
className: "mt-4",
|
|
48
|
-
children:
|
|
48
|
+
children: s
|
|
49
49
|
}),
|
|
50
50
|
/* @__PURE__ */ O(P, { id: "Qb+14I" }),
|
|
51
51
|
/* @__PURE__ */ k("div", {
|
|
@@ -54,15 +54,15 @@ var I = ({ isOpen: e, onClose: t, securityGroup: n, onDelete: r, isDeleting: a =
|
|
|
54
54
|
className: "mb-2 text-sm",
|
|
55
55
|
children: /* @__PURE__ */ O(P, {
|
|
56
56
|
id: "hLp49h",
|
|
57
|
-
values: { deleteWord:
|
|
57
|
+
values: { deleteWord: m },
|
|
58
58
|
components: { 0: /* @__PURE__ */ O("strong", {}) }
|
|
59
59
|
})
|
|
60
|
-
}), /* @__PURE__ */ O(
|
|
60
|
+
}), /* @__PURE__ */ O(o, {
|
|
61
61
|
id: "confirmation",
|
|
62
62
|
name: "confirmation",
|
|
63
|
-
value:
|
|
64
|
-
onChange: (e) =>
|
|
65
|
-
placeholder:
|
|
63
|
+
value: d,
|
|
64
|
+
onChange: (e) => p(e.target.value),
|
|
65
|
+
placeholder: m,
|
|
66
66
|
disabled: a,
|
|
67
67
|
autoComplete: "off",
|
|
68
68
|
"data-testid": "delete-confirmation-input"
|
|
@@ -73,24 +73,24 @@ var I = ({ isOpen: e, onClose: t, securityGroup: n, onDelete: r, isDeleting: a =
|
|
|
73
73
|
};
|
|
74
74
|
//#endregion
|
|
75
75
|
//#region src/client/routes/_auth/projects/$projectId/network/securitygroups/-components/SecurityGroupTableRow.tsx
|
|
76
|
-
function L({ securityGroup: e, permissions: n, onEdit:
|
|
77
|
-
let { i18n:
|
|
78
|
-
|
|
76
|
+
function L({ securityGroup: e, permissions: n, onEdit: a, onDelete: o, onViewDetails: s, isReadOnly: l = !1 }) {
|
|
77
|
+
let { i18n: u, _: f } = F(), p = ({ value: e }) => /* @__PURE__ */ O("span", { children: e ? u._({ id: "l75CjT" }) : u._({ id: "1UzENP" }) }), m = () => {
|
|
78
|
+
s && s(e);
|
|
79
79
|
};
|
|
80
|
-
return /* @__PURE__ */ k(
|
|
80
|
+
return /* @__PURE__ */ k(r, {
|
|
81
81
|
"data-testid": `security-group-row-${e.id}`,
|
|
82
82
|
onClick: m,
|
|
83
83
|
className: "hover:bg-theme-background-lvl-2 cursor-pointer",
|
|
84
84
|
children: [
|
|
85
|
-
/* @__PURE__ */ O(
|
|
85
|
+
/* @__PURE__ */ O(i, { children: /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("p", {
|
|
86
86
|
className: "text-md",
|
|
87
87
|
children: e.name
|
|
88
88
|
}), /* @__PURE__ */ O("p", {
|
|
89
89
|
className: "text-theme-light text-xs",
|
|
90
90
|
children: e.id
|
|
91
91
|
})] }) }),
|
|
92
|
-
/* @__PURE__ */ O(
|
|
93
|
-
/* @__PURE__ */ k(
|
|
92
|
+
/* @__PURE__ */ O(i, { children: e.description || u._({ id: "h47p9L" }) }),
|
|
93
|
+
/* @__PURE__ */ k(i, { children: [/* @__PURE__ */ O(p, { value: e.shared }), e.shared && /* @__PURE__ */ k("p", { children: [
|
|
94
94
|
/* @__PURE__ */ O(P, { id: "LtI9AS" }),
|
|
95
95
|
": ",
|
|
96
96
|
/* @__PURE__ */ O("span", {
|
|
@@ -98,22 +98,22 @@ function L({ securityGroup: e, permissions: n, onEdit: r, onDelete: i, onViewDet
|
|
|
98
98
|
children: e.project_id
|
|
99
99
|
})
|
|
100
100
|
] })] }),
|
|
101
|
-
/* @__PURE__ */ O(
|
|
102
|
-
/* @__PURE__ */ O(
|
|
101
|
+
/* @__PURE__ */ O(i, { children: /* @__PURE__ */ O(p, { value: e.stateful }) }),
|
|
102
|
+
/* @__PURE__ */ O(i, {
|
|
103
103
|
onClick: (e) => e.stopPropagation(),
|
|
104
104
|
className: "items-end justify-end pr-0",
|
|
105
|
-
children: /* @__PURE__ */ O(d, { children: /* @__PURE__ */ k(
|
|
106
|
-
/* @__PURE__ */ O(
|
|
107
|
-
label:
|
|
105
|
+
children: /* @__PURE__ */ O(d, { children: /* @__PURE__ */ k(t, { children: [
|
|
106
|
+
/* @__PURE__ */ O(c, {
|
|
107
|
+
label: u._({ id: "v0hPHE" }),
|
|
108
108
|
onClick: () => m()
|
|
109
109
|
}),
|
|
110
|
-
n.canUpdate && !
|
|
111
|
-
label:
|
|
112
|
-
onClick: () =>
|
|
110
|
+
n.canUpdate && !l && /* @__PURE__ */ O(c, {
|
|
111
|
+
label: u._({ id: "ePK91l" }),
|
|
112
|
+
onClick: () => a(e)
|
|
113
113
|
}),
|
|
114
|
-
n.canDelete && !
|
|
115
|
-
label:
|
|
116
|
-
onClick: () =>
|
|
114
|
+
n.canDelete && !l && /* @__PURE__ */ O(c, {
|
|
115
|
+
label: u._({ id: "cnGeoo" }),
|
|
116
|
+
onClick: () => o(e)
|
|
117
117
|
})
|
|
118
118
|
] }) })
|
|
119
119
|
})
|
|
@@ -122,23 +122,23 @@ function L({ securityGroup: e, permissions: n, onEdit: r, onDelete: i, onViewDet
|
|
|
122
122
|
}
|
|
123
123
|
//#endregion
|
|
124
124
|
//#region src/client/routes/_auth/projects/$projectId/network/securitygroups/-components/SecurityGroupListContainer.tsx
|
|
125
|
-
var R = ({ securityGroups:
|
|
126
|
-
let { i18n:
|
|
127
|
-
|
|
125
|
+
var R = ({ securityGroups: e, isLoading: t, isError: i, error: o, permissions: c, onDeleteSecurityGroup: l, isDeletingSecurityGroup: u = !1, deleteError: d = null, onUpdateSecurityGroup: f, isUpdatingSecurityGroup: p = !1, updateError: m = null, currentProjectId: h }) => {
|
|
126
|
+
let { i18n: _, _: v } = F(), y = N(), b = S(), [x, C] = M(null), [w, T] = M(!1), [R, z] = M(!1), B = j(!1), V = j(!1), H = (e) => {
|
|
127
|
+
C(e), T(!0);
|
|
128
128
|
}, U = (e) => {
|
|
129
|
-
|
|
129
|
+
C(e), z(!0);
|
|
130
130
|
}, W = (e) => {
|
|
131
|
-
|
|
131
|
+
y({
|
|
132
132
|
to: "/projects/$projectId/network/securitygroups/$securityGroupId",
|
|
133
133
|
params: {
|
|
134
|
-
projectId:
|
|
134
|
+
projectId: b,
|
|
135
135
|
securityGroupId: e.id
|
|
136
136
|
}
|
|
137
137
|
});
|
|
138
138
|
}, G = () => {
|
|
139
|
-
|
|
139
|
+
C(null), T(!1);
|
|
140
140
|
}, K = () => {
|
|
141
|
-
|
|
141
|
+
C(null), z(!1);
|
|
142
142
|
};
|
|
143
143
|
return A(() => {
|
|
144
144
|
B.current && !u && R && !d && K(), B.current = u;
|
|
@@ -152,33 +152,33 @@ var R = ({ securityGroups: t, isLoading: n, isError: i, error: o, permissions: s
|
|
|
152
152
|
p,
|
|
153
153
|
m,
|
|
154
154
|
w
|
|
155
|
-
]),
|
|
155
|
+
]), t ? /* @__PURE__ */ k(g, {
|
|
156
156
|
className: "py-8",
|
|
157
157
|
distribution: "center",
|
|
158
158
|
alignment: "center",
|
|
159
159
|
direction: "vertical",
|
|
160
|
-
children: [/* @__PURE__ */ O(
|
|
160
|
+
children: [/* @__PURE__ */ O(a, {
|
|
161
161
|
variant: "primary",
|
|
162
162
|
size: "large",
|
|
163
163
|
className: "mb-2"
|
|
164
164
|
}), /* @__PURE__ */ O(P, { id: "Z3FXyt" })]
|
|
165
|
-
}) : i ? /* @__PURE__ */ O(
|
|
165
|
+
}) : i ? /* @__PURE__ */ O(g, {
|
|
166
166
|
className: "py-8",
|
|
167
167
|
distribution: "center",
|
|
168
168
|
alignment: "center",
|
|
169
169
|
direction: "vertical",
|
|
170
|
-
children: o?.message ??
|
|
171
|
-
}) :
|
|
170
|
+
children: o?.message ?? _._({ id: "Wca9WC" })
|
|
171
|
+
}) : e.length === 0 ? /* @__PURE__ */ O(P, { id: "SfW/3r" }) : /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ k(s, {
|
|
172
172
|
columns: 5,
|
|
173
|
-
children: [/* @__PURE__ */ O(
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
173
|
+
children: [/* @__PURE__ */ O(r, { children: [
|
|
174
|
+
_._({ id: "6YtxFj" }),
|
|
175
|
+
_._({ id: "Nu4oKW" }),
|
|
176
|
+
_._({ id: "0Gd0NU" }),
|
|
177
|
+
_._({ id: "Jim5X9" }),
|
|
178
178
|
""
|
|
179
|
-
].map((e) => /* @__PURE__ */ O(
|
|
179
|
+
].map((e) => /* @__PURE__ */ O(n, { children: e }, e)) }), e.map((e) => /* @__PURE__ */ O(L, {
|
|
180
180
|
securityGroup: e,
|
|
181
|
-
permissions:
|
|
181
|
+
permissions: c,
|
|
182
182
|
onEdit: H,
|
|
183
183
|
onDelete: U,
|
|
184
184
|
onViewDetails: W,
|
|
@@ -198,7 +198,7 @@ var R = ({ securityGroups: t, isLoading: n, isError: i, error: o, permissions: s
|
|
|
198
198
|
isOpen: R,
|
|
199
199
|
onClose: K,
|
|
200
200
|
onDelete: (e) => {
|
|
201
|
-
|
|
201
|
+
l && l(e);
|
|
202
202
|
},
|
|
203
203
|
isDeleting: u,
|
|
204
204
|
error: d
|
|
@@ -207,10 +207,10 @@ var R = ({ securityGroups: t, isLoading: n, isError: i, error: o, permissions: s
|
|
|
207
207
|
name: "",
|
|
208
208
|
description: "",
|
|
209
209
|
stateful: !0
|
|
210
|
-
}, B = ({ isOpen:
|
|
211
|
-
let { i18n:
|
|
210
|
+
}, B = ({ isOpen: t, onClose: n, onCreate: r, isLoading: i = !1, error: s = null }) => {
|
|
211
|
+
let { i18n: c, _: d } = F(), [m, g] = M({ ...z }), [x, S] = M({}), C = (e) => {
|
|
212
212
|
let { name: t, value: n, type: r } = e.target, i = e.target.checked;
|
|
213
|
-
|
|
213
|
+
g((e) => ({
|
|
214
214
|
...e,
|
|
215
215
|
[t]: r === "checkbox" ? i : n
|
|
216
216
|
})), x[t] && S((e) => {
|
|
@@ -219,93 +219,93 @@ var R = ({ securityGroups: t, isLoading: n, isError: i, error: o, permissions: s
|
|
|
219
219
|
});
|
|
220
220
|
}, w = () => {
|
|
221
221
|
let e = {};
|
|
222
|
-
return (!
|
|
222
|
+
return (!m.name || m.name.trim() === "") && (e.name = c._({ id: "lN/Z9n" })), S(e), Object.keys(e).length === 0;
|
|
223
223
|
}, T = async (e) => {
|
|
224
|
-
e.preventDefault(), w() && (await
|
|
225
|
-
name:
|
|
226
|
-
description:
|
|
227
|
-
stateful:
|
|
224
|
+
e.preventDefault(), w() && (await r({
|
|
225
|
+
name: m.name.trim(),
|
|
226
|
+
description: m.description.trim() || void 0,
|
|
227
|
+
stateful: m.stateful
|
|
228
228
|
}), E());
|
|
229
229
|
}, E = () => {
|
|
230
|
-
|
|
230
|
+
g({ ...z }), S({}), n();
|
|
231
231
|
};
|
|
232
|
-
return /* @__PURE__ */ k(
|
|
233
|
-
open:
|
|
232
|
+
return /* @__PURE__ */ k(_, {
|
|
233
|
+
open: t,
|
|
234
234
|
onCancel: E,
|
|
235
235
|
size: "large",
|
|
236
|
-
title:
|
|
237
|
-
modalFooter: /* @__PURE__ */ O(
|
|
236
|
+
title: c._({ id: "YjAOtb" }),
|
|
237
|
+
modalFooter: /* @__PURE__ */ O(e, {
|
|
238
238
|
className: "flex justify-end",
|
|
239
|
-
children: /* @__PURE__ */ k(
|
|
239
|
+
children: /* @__PURE__ */ k(f, { children: [/* @__PURE__ */ O(u, {
|
|
240
240
|
variant: "default",
|
|
241
241
|
onClick: E,
|
|
242
|
-
disabled:
|
|
242
|
+
disabled: i,
|
|
243
243
|
children: /* @__PURE__ */ O(P, { id: "dEgA5A" })
|
|
244
|
-
}), /* @__PURE__ */ O(
|
|
244
|
+
}), /* @__PURE__ */ O(u, {
|
|
245
245
|
variant: "primary",
|
|
246
246
|
onClick: (e) => {
|
|
247
247
|
T(e);
|
|
248
248
|
},
|
|
249
|
-
disabled:
|
|
249
|
+
disabled: i,
|
|
250
250
|
"data-testid": "create-security-group-button",
|
|
251
|
-
children:
|
|
251
|
+
children: i ? /* @__PURE__ */ O(a, { size: "small" }) : /* @__PURE__ */ O(P, { id: "YjAOtb" })
|
|
252
252
|
})] })
|
|
253
253
|
}),
|
|
254
254
|
children: [
|
|
255
|
-
s && /* @__PURE__ */ O(
|
|
255
|
+
s && /* @__PURE__ */ O(v, {
|
|
256
256
|
dismissible: !1,
|
|
257
257
|
variant: "error",
|
|
258
258
|
className: "mb-4",
|
|
259
259
|
children: s
|
|
260
260
|
}),
|
|
261
|
-
|
|
261
|
+
i && /* @__PURE__ */ k("div", {
|
|
262
262
|
className: "mb-4 flex items-center justify-center gap-2",
|
|
263
|
-
children: [/* @__PURE__ */ O(
|
|
263
|
+
children: [/* @__PURE__ */ O(a, { variant: "primary" }), /* @__PURE__ */ O("span", {
|
|
264
264
|
className: "text-theme-high text-sm",
|
|
265
265
|
children: /* @__PURE__ */ O(P, { id: "Km4AGG" })
|
|
266
266
|
})]
|
|
267
267
|
}),
|
|
268
|
-
!
|
|
268
|
+
!i && /* @__PURE__ */ O(l, {
|
|
269
269
|
className: "mb-6",
|
|
270
|
-
children: /* @__PURE__ */ k(
|
|
270
|
+
children: /* @__PURE__ */ k(h, {
|
|
271
271
|
className: "mb-6",
|
|
272
272
|
children: [
|
|
273
|
-
/* @__PURE__ */ O(
|
|
273
|
+
/* @__PURE__ */ O(p, {
|
|
274
274
|
className: "mb-6",
|
|
275
|
-
children: /* @__PURE__ */ O(
|
|
275
|
+
children: /* @__PURE__ */ O(o, {
|
|
276
276
|
id: "name",
|
|
277
277
|
name: "name",
|
|
278
|
-
label:
|
|
279
|
-
value:
|
|
278
|
+
label: c._({ id: "6YtxFj" }),
|
|
279
|
+
value: m.name,
|
|
280
280
|
onChange: C,
|
|
281
281
|
required: !0,
|
|
282
282
|
errortext: x.name,
|
|
283
|
-
placeholder:
|
|
284
|
-
disabled:
|
|
283
|
+
placeholder: c._({ id: "Ac6dy9" }),
|
|
284
|
+
disabled: i
|
|
285
285
|
})
|
|
286
286
|
}),
|
|
287
|
-
/* @__PURE__ */ O(
|
|
287
|
+
/* @__PURE__ */ O(p, {
|
|
288
288
|
className: "mb-6",
|
|
289
|
-
children: /* @__PURE__ */ O(
|
|
289
|
+
children: /* @__PURE__ */ O(y, {
|
|
290
290
|
id: "description",
|
|
291
291
|
name: "description",
|
|
292
|
-
label:
|
|
293
|
-
value:
|
|
292
|
+
label: c._({ id: "Nu4oKW" }),
|
|
293
|
+
value: m.description,
|
|
294
294
|
onChange: C,
|
|
295
|
-
placeholder:
|
|
296
|
-
disabled:
|
|
295
|
+
placeholder: c._({ id: "Nu4oKW" }),
|
|
296
|
+
disabled: i,
|
|
297
297
|
rows: 3
|
|
298
298
|
})
|
|
299
299
|
}),
|
|
300
|
-
/* @__PURE__ */ O(
|
|
300
|
+
/* @__PURE__ */ O(p, {
|
|
301
301
|
className: "mb-0",
|
|
302
|
-
children: /* @__PURE__ */ O(
|
|
302
|
+
children: /* @__PURE__ */ O(b, {
|
|
303
303
|
id: "stateful",
|
|
304
304
|
name: "stateful",
|
|
305
|
-
label:
|
|
306
|
-
checked:
|
|
305
|
+
label: c._({ id: "Jim5X9" }),
|
|
306
|
+
checked: m.stateful,
|
|
307
307
|
onChange: C,
|
|
308
|
-
disabled:
|
|
308
|
+
disabled: i
|
|
309
309
|
})
|
|
310
310
|
})
|
|
311
311
|
]
|
|
@@ -317,7 +317,7 @@ var R = ({ securityGroups: t, isLoading: n, isError: i, error: o, permissions: s
|
|
|
317
317
|
TRUE: "true",
|
|
318
318
|
FALSE: "false"
|
|
319
319
|
}, H = () => {
|
|
320
|
-
let { i18n: e, _: t } = F(), n = N(), r =
|
|
320
|
+
let { i18n: e, _: t } = F(), n = N(), r = S(), [i, a] = M(!1), [o, s] = M(null), [c, l] = M(null), [d, f] = M(null), { searchTerm: p, sortSettings: m, filterSettings: h, handleSearchChange: g, handleSortChange: _, handleFilterChange: v } = T({
|
|
321
321
|
defaultSortKey: "name",
|
|
322
322
|
defaultSortDir: "asc",
|
|
323
323
|
sortOptions: [{
|
|
@@ -340,10 +340,10 @@ var R = ({ securityGroups: t, isLoading: n, isError: i, error: o, permissions: s
|
|
|
340
340
|
canManageAccess: !0
|
|
341
341
|
}, { data: E = [], isLoading: D, isError: A, error: j } = x.network.securityGroup.list.useQuery({
|
|
342
342
|
project_id: r || "",
|
|
343
|
-
sort_key:
|
|
344
|
-
sort_dir:
|
|
345
|
-
...w(
|
|
346
|
-
...
|
|
343
|
+
sort_key: m.sortBy,
|
|
344
|
+
sort_dir: m.sortDirection,
|
|
345
|
+
...w(h),
|
|
346
|
+
...p ? { searchTerm: p } : {}
|
|
347
347
|
}, { enabled: !!r }), I = x.network.securityGroup.create.useMutation({
|
|
348
348
|
onSuccess: (e) => {
|
|
349
349
|
y.network.securityGroup.list.invalidate(), l(null), n({
|
|
@@ -366,23 +366,23 @@ var R = ({ securityGroups: t, isLoading: n, isError: i, error: o, permissions: s
|
|
|
366
366
|
}
|
|
367
367
|
}), z = x.network.securityGroup.update.useMutation({
|
|
368
368
|
onSuccess: () => {
|
|
369
|
-
y.network.securityGroup.list.invalidate(),
|
|
369
|
+
y.network.securityGroup.list.invalidate(), f(null);
|
|
370
370
|
},
|
|
371
371
|
onError: (t) => {
|
|
372
|
-
|
|
372
|
+
f(t.message || e._({ id: "jPxavx" }));
|
|
373
373
|
}
|
|
374
374
|
});
|
|
375
375
|
return /* @__PURE__ */ k("div", {
|
|
376
376
|
className: "relative",
|
|
377
377
|
children: [
|
|
378
|
-
/* @__PURE__ */ O(
|
|
379
|
-
sortSettings:
|
|
380
|
-
filterSettings:
|
|
381
|
-
searchTerm:
|
|
378
|
+
/* @__PURE__ */ O(C, {
|
|
379
|
+
sortSettings: m,
|
|
380
|
+
filterSettings: h,
|
|
381
|
+
searchTerm: p,
|
|
382
382
|
onSort: _,
|
|
383
383
|
onFilter: v,
|
|
384
384
|
onSearch: g,
|
|
385
|
-
actions: b.canCreate && /* @__PURE__ */ O(
|
|
385
|
+
actions: b.canCreate && /* @__PURE__ */ O(u, {
|
|
386
386
|
onClick: () => a(!0),
|
|
387
387
|
variant: "primary",
|
|
388
388
|
children: /* @__PURE__ */ O(P, { id: "YjAOtb" })
|
|
@@ -404,14 +404,14 @@ var R = ({ securityGroups: t, isLoading: n, isError: i, error: o, permissions: s
|
|
|
404
404
|
isDeletingSecurityGroup: L.isPending,
|
|
405
405
|
deleteError: o,
|
|
406
406
|
onUpdateSecurityGroup: async (e, t) => {
|
|
407
|
-
|
|
407
|
+
f(null), await z.mutateAsync({
|
|
408
408
|
project_id: r,
|
|
409
409
|
securityGroupId: e,
|
|
410
410
|
...t
|
|
411
411
|
});
|
|
412
412
|
},
|
|
413
413
|
isUpdatingSecurityGroup: z.isPending,
|
|
414
|
-
updateError:
|
|
414
|
+
updateError: d,
|
|
415
415
|
currentProjectId: r
|
|
416
416
|
}),
|
|
417
417
|
/* @__PURE__ */ O(B, {
|
|
@@ -433,9 +433,9 @@ var R = ({ securityGroups: t, isLoading: n, isError: i, error: o, permissions: s
|
|
|
433
433
|
//#region src/client/routes/_auth/projects/$projectId/network/securitygroups/index.tsx?tsr-split=component
|
|
434
434
|
function U() {
|
|
435
435
|
let { i18n: e, _: t } = F();
|
|
436
|
-
return /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(
|
|
436
|
+
return /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(m, { children: e._({ id: "4opp4r" }) }), /* @__PURE__ */ O(H, {})] });
|
|
437
437
|
}
|
|
438
438
|
//#endregion
|
|
439
439
|
export { U as component };
|
|
440
440
|
|
|
441
|
-
//# sourceMappingURL=securitygroups-
|
|
441
|
+
//# sourceMappingURL=securitygroups-BdzieS7Z.mjs.map
|