@cobaltcore-dev/aurora 1.0.0 → 1.1.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.
- package/dist/client/App.d.ts +2 -1
- package/dist/client/AuroraApp.d.ts +25 -0
- package/dist/client/{AuthProvider-5TyZKZkx.mjs → AuthProvider-BS5OVv8n.mjs} +2 -2
- package/dist/client/AuthProvider-BS5OVv8n.mjs.map +1 -0
- package/dist/client/{ContentHeader-D64NtKvo.mjs → ContentHeader-BHMUzd9H.mjs} +16 -16
- package/dist/client/{ContentHeader-D64NtKvo.mjs.map → ContentHeader-BHMUzd9H.mjs.map} +1 -1
- package/dist/client/{DeleteFlavorModal-C2K43ABZ.mjs → DeleteFlavorModal-BP83t9zX.mjs} +283 -294
- package/dist/client/DeleteFlavorModal-BP83t9zX.mjs.map +1 -0
- package/dist/client/{FiltersInput-Bw8TFfwb.mjs → FiltersInput-B8CNBg1L.mjs} +23 -23
- package/dist/client/{FiltersInput-Bw8TFfwb.mjs.map → FiltersInput-B8CNBg1L.mjs.map} +1 -1
- package/dist/client/{FloatingIpActionModals-BfEDfYg9.mjs → FloatingIpActionModals-BraiJWBi.mjs} +48 -48
- package/dist/client/{FloatingIpActionModals-BfEDfYg9.mjs.map → FloatingIpActionModals-BraiJWBi.mjs.map} +1 -1
- package/dist/client/ImageToastNotifications-BXMHJaIH.mjs +1131 -0
- package/dist/client/ImageToastNotifications-BXMHJaIH.mjs.map +1 -0
- package/dist/client/{RouteError-B-NPGIv7.mjs → RouteError-hAF8_jbe.mjs} +2 -2
- package/dist/client/{RouteError-B-NPGIv7.mjs.map → RouteError-hAF8_jbe.mjs.map} +1 -1
- package/dist/client/{SortInput-DysAXpB3.mjs → SortInput-Cqs2poV3.mjs} +7 -7
- package/dist/client/{SortInput-DysAXpB3.mjs.map → SortInput-Cqs2poV3.mjs.map} +1 -1
- package/dist/client/{StatusError-DX-GvLjq.mjs → StatusError-C5KodQOq.mjs} +4 -4
- package/dist/client/{StatusError-DX-GvLjq.mjs.map → StatusError-C5KodQOq.mjs.map} +1 -1
- package/dist/client/{TwoColumnDescriptionList-B3xunXmz.mjs → TwoColumnDescriptionList-DiDx3PnH.mjs} +6 -6
- package/dist/client/{TwoColumnDescriptionList-B3xunXmz.mjs.map → TwoColumnDescriptionList-DiDx3PnH.mjs.map} +1 -1
- package/dist/client/{_auth-R5H2yKFf.mjs → _auth-DJ9wHZaj.mjs} +2 -2
- package/dist/client/{_auth-R5H2yKFf.mjs.map → _auth-DJ9wHZaj.mjs.map} +1 -1
- package/dist/client/{_flavorId-Zj7LNL-R.mjs → _flavorId-BN_qessZ.mjs} +2 -2
- package/dist/client/{_flavorId-Zj7LNL-R.mjs.map → _flavorId-BN_qessZ.mjs.map} +1 -1
- package/dist/client/{_flavorId-Dit5mM8I.mjs → _flavorId-CJjEB_Ao.mjs} +34 -34
- package/dist/client/{_flavorId-Dit5mM8I.mjs.map → _flavorId-CJjEB_Ao.mjs.map} +1 -1
- package/dist/client/{_floatingIpId-DCQQpNO-.mjs → _floatingIpId-CwDGHkWm.mjs} +2 -2
- package/dist/client/{_floatingIpId-DCQQpNO-.mjs.map → _floatingIpId-CwDGHkWm.mjs.map} +1 -1
- package/dist/client/{_floatingIpId-B0MCoqE3.mjs → _floatingIpId-foMIwbE4.mjs} +23 -23
- package/dist/client/{_floatingIpId-B0MCoqE3.mjs.map → _floatingIpId-foMIwbE4.mjs.map} +1 -1
- package/dist/client/_imageId-BtJ7GmYB.mjs +558 -0
- package/dist/client/{_imageId-CZYzBAVx.mjs.map → _imageId-BtJ7GmYB.mjs.map} +1 -1
- package/dist/client/{_projectId-DhSWowQo.mjs → _projectId-BmtCuzJu.mjs} +4 -4
- package/dist/client/{_projectId-DhSWowQo.mjs.map → _projectId-BmtCuzJu.mjs.map} +1 -1
- package/dist/client/_projectId-Byt3GQDW.mjs +99 -0
- package/dist/client/_projectId-Byt3GQDW.mjs.map +1 -0
- package/dist/client/_projectId-NYk1IN_a.mjs +291 -0
- package/dist/client/_projectId-NYk1IN_a.mjs.map +1 -0
- package/dist/client/{_projectId-D2pFfYIs.mjs → _projectId-QueiFczy.mjs} +3 -3
- package/dist/client/{_projectId-D2pFfYIs.mjs.map → _projectId-QueiFczy.mjs.map} +1 -1
- package/dist/client/{_securityGroupId-Mj8NJT2-.mjs → _securityGroupId-BcbkRhsN.mjs} +2 -2
- package/dist/client/{_securityGroupId-Mj8NJT2-.mjs.map → _securityGroupId-BcbkRhsN.mjs.map} +1 -1
- package/dist/client/{_securityGroupId-DZ4D4WwB.mjs → _securityGroupId-pPtJsCoe.mjs} +438 -442
- package/dist/client/{_securityGroupId-DZ4D4WwB.mjs.map → _securityGroupId-pPtJsCoe.mjs.map} +1 -1
- package/dist/client/_storageType-BmqrU06i.mjs +2202 -0
- package/dist/client/_storageType-BmqrU06i.mjs.map +1 -0
- package/dist/client/{about-WLyShNgE.mjs → about-_73VmpTB.mjs} +2 -2
- package/dist/client/{about-WLyShNgE.mjs.map → about-_73VmpTB.mjs.map} +1 -1
- package/dist/client/assets/{objectDownload.worker-BXFQIIU_.js.map → objectDownload.worker-CWWLPDyb.js.map} +1 -1
- package/dist/client/assets/{objectDownload.worker-ECvFtmOF.js.map → objectDownload.worker-kZlQuo3F.js.map} +1 -1
- package/dist/client/{aurora-IMO9HhqJ.mjs → aurora-EbwGRLLf.mjs} +2 -2
- package/dist/client/{aurora-IMO9HhqJ.mjs.map → aurora-EbwGRLLf.mjs.map} +1 -1
- package/dist/client/{build-DnD-T35u.mjs → build-C_4vRMCq.mjs} +2233 -2662
- package/dist/client/{build-DnD-T35u.mjs.map → build-C_4vRMCq.mjs.map} +1 -1
- package/dist/client/{flavors-Cp0LEGOH.mjs → flavors-CiHCYrtZ.mjs} +2 -2
- package/dist/client/{flavors-Cp0LEGOH.mjs.map → flavors-CiHCYrtZ.mjs.map} +1 -1
- package/dist/client/{flavors-CwMbDRHm2.mjs → flavors-DY-bDc8l.mjs} +164 -164
- package/dist/client/flavors-DY-bDc8l.mjs.map +1 -0
- package/dist/client/{floatingips-ICwo-rV_.mjs → floatingips-Ci4jHkaG.mjs} +177 -177
- package/dist/client/{floatingips-ICwo-rV_.mjs.map → floatingips-Ci4jHkaG.mjs.map} +1 -1
- package/dist/client/{hooks-CrriowRk.mjs → hooks-LutR2Yg3.mjs} +2 -2
- package/dist/client/{hooks-CrriowRk.mjs.map → hooks-LutR2Yg3.mjs.map} +1 -1
- package/dist/client/images-91U7tr9Y2.mjs +1976 -0
- package/dist/client/images-91U7tr9Y2.mjs.map +1 -0
- package/dist/client/{images-DWiM_72I.mjs → images-CS4kZQyu.mjs} +2 -2
- package/dist/client/{images-DWiM_72I.mjs.map → images-CS4kZQyu.mjs.map} +1 -1
- package/dist/client/index.d.ts +4 -1
- package/dist/client/index.js +444 -586
- package/dist/client/index.js.map +1 -1
- package/dist/client/{md-DNzcRhmz.mjs → md-kvaGCNAK.mjs} +4 -22
- package/dist/client/{md-DNzcRhmz.mjs.map → md-kvaGCNAK.mjs.map} +1 -1
- package/dist/client/{objects-DeK2WD5K.mjs → objects-C3azvW8m.mjs} +2019 -2023
- package/dist/client/{objects-DeK2WD5K.mjs.map → objects-C3azvW8m.mjs.map} +1 -1
- package/dist/client/{objects-DI1-tnKr.mjs → objects-CM265S6b.mjs} +2 -2
- package/dist/client/{objects-DI1-tnKr.mjs.map → objects-CM265S6b.mjs.map} +1 -1
- package/dist/client/{objects-D2MKUCxc.mjs → objects-EE9Cd1wI.mjs} +2 -2
- package/dist/client/{objects-D2MKUCxc.mjs.map → objects-EE9Cd1wI.mjs.map} +1 -1
- package/dist/client/{routeInfo-CdTRlSxv.mjs → routeInfo-DXqB2HCf.mjs} +3 -3
- package/dist/client/routeInfo-DXqB2HCf.mjs.map +1 -0
- package/dist/client/router.d.ts +2 -1
- package/dist/client/{routes-DOJr5onJ.mjs → routes-CBd8CCuM.mjs} +13 -13
- package/dist/client/{routes-DOJr5onJ.mjs.map → routes-CBd8CCuM.mjs.map} +1 -1
- package/dist/client/{routes-B05u5bk4.mjs → routes-CdDm-hhO.mjs} +2 -2
- package/dist/client/{routes-B05u5bk4.mjs.map → routes-CdDm-hhO.mjs.map} +1 -1
- package/dist/client/{securitygroups-Be2Qgmew.mjs → securitygroups-Bd_uV4S9.mjs} +198 -198
- package/dist/client/{securitygroups-Be2Qgmew.mjs.map → securitygroups-Bd_uV4S9.mjs.map} +1 -1
- package/dist/client/{securitygroups-_7SYN2jN.mjs → securitygroups-Byte-iSp.mjs} +2 -2
- package/dist/client/{securitygroups-_7SYN2jN.mjs.map → securitygroups-Byte-iSp.mjs.map} +1 -1
- package/dist/client/services-D1PbooD1.mjs +6 -0
- package/dist/client/services-D1PbooD1.mjs.map +1 -0
- package/dist/client/services-DEMVtFyn.mjs +9 -0
- package/dist/client/services-DEMVtFyn.mjs.map +1 -0
- package/dist/client/trpcClient.d.ts +18 -367
- package/dist/client/{useSecurityGroupPermissions-qPwm4mFt.mjs → useSecurityGroupPermissions-C29mzb3b.mjs} +15 -15
- package/dist/client/{useSecurityGroupPermissions-qPwm4mFt.mjs.map → useSecurityGroupPermissions-C29mzb3b.mjs.map} +1 -1
- package/dist/server/index.d.ts +43 -369
- package/dist/server/index.js +71 -276
- package/package.json +1 -3
- package/dist/client/AuthProvider-5TyZKZkx.mjs.map +0 -1
- package/dist/client/DeleteFlavorModal-C2K43ABZ.mjs.map +0 -1
- package/dist/client/DeletePcaModal-D9v8E0Ki.mjs +0 -92
- package/dist/client/DeletePcaModal-D9v8E0Ki.mjs.map +0 -1
- package/dist/client/DetailsInfo-h7rPJ4Jf.mjs +0 -61
- package/dist/client/DetailsInfo-h7rPJ4Jf.mjs.map +0 -1
- package/dist/client/ImageToastNotifications-C0Tluzq-.mjs +0 -1125
- package/dist/client/ImageToastNotifications-C0Tluzq-.mjs.map +0 -1
- package/dist/client/_imageId-CZYzBAVx.mjs +0 -558
- package/dist/client/_pcaId-CHRRsWmO.mjs +0 -605
- package/dist/client/_pcaId-CHRRsWmO.mjs.map +0 -1
- package/dist/client/_projectId-B8wWSxPu.mjs +0 -98
- package/dist/client/_projectId-B8wWSxPu.mjs.map +0 -1
- package/dist/client/_projectId-C5DUYIjt.mjs +0 -291
- package/dist/client/_projectId-C5DUYIjt.mjs.map +0 -1
- package/dist/client/_storageType-C-9bNkmZ.mjs +0 -2211
- package/dist/client/_storageType-C-9bNkmZ.mjs.map +0 -1
- package/dist/client/flavors-CwMbDRHm2.mjs.map +0 -1
- package/dist/client/images-DOGZmr3D.mjs +0 -1937
- package/dist/client/images-DOGZmr3D.mjs.map +0 -1
- package/dist/client/pca-BokFv4Gz.mjs +0 -239
- package/dist/client/pca-BokFv4Gz.mjs.map +0 -1
- package/dist/client/pca-D5jHAl0b.mjs +0 -26
- package/dist/client/pca-D5jHAl0b.mjs.map +0 -1
- package/dist/client/pcaAccess-Br4kVjLQ.mjs +0 -9
- package/dist/client/pcaAccess-Br4kVjLQ.mjs.map +0 -1
- package/dist/client/routeInfo-CdTRlSxv.mjs.map +0 -1
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
import { B as e, C as t, E as n, G as r, I as i, S as a, Y as o, Z as s, _ as c, a as l, dt as u, f as d, h as f, k as p, m, rt as h, s as g, t as _ } from "./build-DnD-T35u.mjs";
|
|
2
|
-
import { a as v } from "./trpcClient-D7gpR7YG.mjs";
|
|
3
|
-
import { t as y } from "./pca-D5jHAl0b.mjs";
|
|
4
|
-
import { t as b } from "./useProjectId-DBc5lpoU.mjs";
|
|
5
|
-
import { f as x, n as S } from "./md-DNzcRhmz.mjs";
|
|
6
|
-
import { t as C } from "./ContentHeader-D64NtKvo.mjs";
|
|
7
|
-
import "./hooks-CrriowRk.mjs";
|
|
8
|
-
import { t as w } from "./useModal-DCs1OJh7.mjs";
|
|
9
|
-
import { t as T } from "./DeletePcaModal-D9v8E0Ki.mjs";
|
|
10
|
-
import { Fragment as E, jsx as D, jsxs as O } from "react/jsx-runtime";
|
|
11
|
-
import { useState as k } from "react";
|
|
12
|
-
import { useNavigate as A } from "@tanstack/react-router";
|
|
13
|
-
import { Trans as j, useLingui as M } from "@lingui/react";
|
|
14
|
-
import { z as N } from "zod";
|
|
15
|
-
import { useForm as P, useStore as F } from "@tanstack/react-form";
|
|
16
|
-
//#region src/client/routes/_auth/projects/$projectId/services/pca/-components/-table/PcaTableRow.tsx
|
|
17
|
-
var I = ({ pca: e }) => {
|
|
18
|
-
let { i18n: t, _: i } = M(), o = A(), s = b(), [l, u] = w(!1), f = () => o({
|
|
19
|
-
to: "/projects/$projectId/services/pca/$pcaId",
|
|
20
|
-
params: {
|
|
21
|
-
projectId: s,
|
|
22
|
-
pcaId: e.id
|
|
23
|
-
}
|
|
24
|
-
}), m = {
|
|
25
|
-
CREATING: {
|
|
26
|
-
text: t._({ id: "E9bKSA" }),
|
|
27
|
-
icon: /*#__PURE__*/ D(r, { size: "18" })
|
|
28
|
-
},
|
|
29
|
-
AWAITING_CERTIFICATE: {
|
|
30
|
-
text: t._({ id: "mB4LB4" }),
|
|
31
|
-
icon: /*#__PURE__*/ D(d, {
|
|
32
|
-
icon: "accessTime",
|
|
33
|
-
size: 20,
|
|
34
|
-
color: "#FBC02D"
|
|
35
|
-
})
|
|
36
|
-
},
|
|
37
|
-
READY: {
|
|
38
|
-
text: t._({ id: "ckH3fT" }),
|
|
39
|
-
icon: /*#__PURE__*/ D(S, {
|
|
40
|
-
size: 20,
|
|
41
|
-
color: "white",
|
|
42
|
-
fill: "#4FB81C"
|
|
43
|
-
})
|
|
44
|
-
},
|
|
45
|
-
FAILED: {
|
|
46
|
-
text: t._({ id: "7Bj3x9" }),
|
|
47
|
-
icon: /*#__PURE__*/ D(x, {
|
|
48
|
-
size: 20,
|
|
49
|
-
color: "white",
|
|
50
|
-
fill: "#D32F2F"
|
|
51
|
-
})
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
return /*#__PURE__*/ O(E, { children: [/*#__PURE__*/ O(n, {
|
|
55
|
-
"data-testid": `pca-row-${e.id}`,
|
|
56
|
-
onClick: f,
|
|
57
|
-
children: [
|
|
58
|
-
/*#__PURE__*/ D(_, { children: /*#__PURE__*/ O("div", {
|
|
59
|
-
className: "flex items-center gap-2",
|
|
60
|
-
children: [m[e.state].icon, m[e.state].text]
|
|
61
|
-
}) }),
|
|
62
|
-
/*#__PURE__*/ D(_, { children: e.id }),
|
|
63
|
-
/*#__PURE__*/ D(_, { children: e.display_subject || "—" }),
|
|
64
|
-
/*#__PURE__*/ D(_, {
|
|
65
|
-
onClick: (e) => e.stopPropagation(),
|
|
66
|
-
className: "items-end pr-0",
|
|
67
|
-
children: /*#__PURE__*/ D(p, { children: /*#__PURE__*/ O(c, { children: [/*#__PURE__*/ D(a, {
|
|
68
|
-
label: t._({ id: "v0hPHE" }),
|
|
69
|
-
onClick: f
|
|
70
|
-
}), /*#__PURE__*/ D(a, {
|
|
71
|
-
label: t._({ id: "nzFJqC" }),
|
|
72
|
-
onClick: u
|
|
73
|
-
})] }) })
|
|
74
|
-
})
|
|
75
|
-
]
|
|
76
|
-
}, e.id), l && /*#__PURE__*/ D(T, {
|
|
77
|
-
pca: e,
|
|
78
|
-
open: l,
|
|
79
|
-
onClose: u
|
|
80
|
-
})] });
|
|
81
|
-
}, L = /^(?=.{1,253}$)(?:\*\.)?(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,63}$/, R = (e) => L.test(e), z = ({ open: e, onClose: t }) => {
|
|
82
|
-
let { i18n: n, _: a } = M(), s = A(), c = b(), l = v.useUtils(), { isPending: d, ...p } = v.services.pca.create.useMutation({ onSettled: () => l.services.pca.list.invalidate() }), h = N.object({ common_name: N.string().trim().min(1, n._({ id: "qhDo93" })).refine((e) => R(e), { message: n._({ id: "gy6L1u" }) }) }), g = P({
|
|
83
|
-
defaultValues: { common_name: "" },
|
|
84
|
-
validators: { onSubmit: h },
|
|
85
|
-
onSubmit: async ({ value: e }) => {
|
|
86
|
-
if (d) return;
|
|
87
|
-
let t = await p.mutateAsync({
|
|
88
|
-
project_id: c,
|
|
89
|
-
configuration: { subject: { named_attributes: { cn: e.common_name } } }
|
|
90
|
-
});
|
|
91
|
-
_(), await s({
|
|
92
|
-
to: "/projects/$projectId/services/pca/$pcaId",
|
|
93
|
-
params: {
|
|
94
|
-
projectId: c,
|
|
95
|
-
pcaId: t.id
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
}), _ = () => {
|
|
100
|
-
d || (g.reset(), p.reset(), t());
|
|
101
|
-
}, y = F(g.store, (e) => e.isSubmitting || e.values.common_name.trim().length === 0);
|
|
102
|
-
return /*#__PURE__*/ O(o, {
|
|
103
|
-
open: e,
|
|
104
|
-
size: "large",
|
|
105
|
-
title: n._({ id: "WidMsn" }),
|
|
106
|
-
onCancel: _,
|
|
107
|
-
cancelButtonLabel: n._({ id: "dEgA5A" }),
|
|
108
|
-
confirmButtonLabel: n._({ id: "tfDRzk" }),
|
|
109
|
-
onConfirm: g.handleSubmit,
|
|
110
|
-
disableConfirmButton: d || y,
|
|
111
|
-
children: [
|
|
112
|
-
p.error?.message && /*#__PURE__*/ D(i, {
|
|
113
|
-
dismissible: !1,
|
|
114
|
-
variant: "error",
|
|
115
|
-
className: "mb-4",
|
|
116
|
-
children: p.error.message
|
|
117
|
-
}),
|
|
118
|
-
d && /*#__PURE__*/ O("div", {
|
|
119
|
-
className: "mb-4 flex items-center justify-center gap-2",
|
|
120
|
-
children: [/*#__PURE__*/ D(r, { variant: "primary" }), /*#__PURE__*/ D("span", {
|
|
121
|
-
className: "text-theme-high text-sm",
|
|
122
|
-
children: /*#__PURE__*/ D(j, { id: "wdUvGT" })
|
|
123
|
-
})]
|
|
124
|
-
}),
|
|
125
|
-
!d && /*#__PURE__*/ D(u, {
|
|
126
|
-
className: "mb-0",
|
|
127
|
-
id: "create-certificate-authority-form",
|
|
128
|
-
onSubmit: (e) => {
|
|
129
|
-
e.preventDefault(), g.handleSubmit();
|
|
130
|
-
},
|
|
131
|
-
children: /*#__PURE__*/ D(m, {
|
|
132
|
-
className: "mb-4",
|
|
133
|
-
children: /*#__PURE__*/ D(g.Field, {
|
|
134
|
-
name: "common_name",
|
|
135
|
-
children: (e) => /*#__PURE__*/ D(f, {
|
|
136
|
-
id: e.name,
|
|
137
|
-
name: e.name,
|
|
138
|
-
value: e.state.value,
|
|
139
|
-
onBlur: e.handleBlur,
|
|
140
|
-
onChange: (t) => e.handleChange(t.target.value),
|
|
141
|
-
label: n._({ id: "DHrCY6" }),
|
|
142
|
-
placeholder: n._({ id: "RWQ6BN" }),
|
|
143
|
-
helptext: n._({ id: "jVjr9h" }),
|
|
144
|
-
errortext: e.state.meta.errors.map((e) => e?.message).join(", "),
|
|
145
|
-
disabled: d
|
|
146
|
-
})
|
|
147
|
-
})
|
|
148
|
-
})
|
|
149
|
-
})
|
|
150
|
-
]
|
|
151
|
-
});
|
|
152
|
-
}, B = 50, V = () => {
|
|
153
|
-
let { i18n: i, _: a } = M(), o = b(), [c, u] = w(!1), [d, f] = k([void 0]), [p, m] = k(1), y = d[p - 1], { data: x, isLoading: S, isError: C, error: T } = v.services.pca.list.useQuery({
|
|
154
|
-
project_id: o,
|
|
155
|
-
limit: B,
|
|
156
|
-
next_page_marker: y
|
|
157
|
-
}), A = x?.certificate_authorities ?? [], N = x?.next_page_marker, P = N ? p + 1 : p, F = Math.max(P, d.length), L = (e) => {
|
|
158
|
-
e < 1 || e > F || (e > p && N && f((t) => {
|
|
159
|
-
let n = [...t];
|
|
160
|
-
return n[e - 1] = N, n;
|
|
161
|
-
}), m(e));
|
|
162
|
-
};
|
|
163
|
-
if (S) return /*#__PURE__*/ O(s, {
|
|
164
|
-
className: "py-8",
|
|
165
|
-
distribution: "center",
|
|
166
|
-
alignment: "center",
|
|
167
|
-
direction: "vertical",
|
|
168
|
-
children: [/*#__PURE__*/ D(r, {
|
|
169
|
-
variant: "primary",
|
|
170
|
-
size: "large",
|
|
171
|
-
className: "mb-2"
|
|
172
|
-
}), /*#__PURE__*/ D(j, { id: "Z3FXyt" })]
|
|
173
|
-
});
|
|
174
|
-
if (C) return /*#__PURE__*/ D(s, {
|
|
175
|
-
className: "py-8",
|
|
176
|
-
distribution: "center",
|
|
177
|
-
alignment: "center",
|
|
178
|
-
direction: "vertical",
|
|
179
|
-
children: T?.message ?? i._({ id: "Sf3Gvg" })
|
|
180
|
-
});
|
|
181
|
-
let R = [
|
|
182
|
-
i._({ id: "RS0o7b" }),
|
|
183
|
-
i._({ id: "S0kLOH" }),
|
|
184
|
-
i._({ id: "QGFuw+" }),
|
|
185
|
-
""
|
|
186
|
-
], V = R.length;
|
|
187
|
-
return /*#__PURE__*/ O("div", {
|
|
188
|
-
className: "relative",
|
|
189
|
-
children: [
|
|
190
|
-
/*#__PURE__*/ D(s, {
|
|
191
|
-
className: "pt-3 pb-2",
|
|
192
|
-
distribution: "end",
|
|
193
|
-
children: /*#__PURE__*/ D(l, {
|
|
194
|
-
variant: "primary",
|
|
195
|
-
label: i._({ id: "WidMsn" }),
|
|
196
|
-
onClick: u
|
|
197
|
-
})
|
|
198
|
-
}),
|
|
199
|
-
A.length === 0 && p === 1 ? /*#__PURE__*/ D(g, {
|
|
200
|
-
columns: V,
|
|
201
|
-
className: "pca",
|
|
202
|
-
"data-testid": "no-pcas",
|
|
203
|
-
children: /*#__PURE__*/ D(n, { children: /*#__PURE__*/ O(_, {
|
|
204
|
-
colSpan: V,
|
|
205
|
-
children: [/*#__PURE__*/ D(h, { children: /*#__PURE__*/ D(j, { id: "8S2nDL" }) }), /*#__PURE__*/ D("p", { children: /*#__PURE__*/ D(j, { id: "ng+PCh" }) })]
|
|
206
|
-
}) })
|
|
207
|
-
}) : /*#__PURE__*/ O(E, { children: [/*#__PURE__*/ O(g, {
|
|
208
|
-
columns: V,
|
|
209
|
-
children: [/*#__PURE__*/ D(n, { children: R.map((e) => /*#__PURE__*/ D(t, { children: e }, e)) }), A.map((e) => /*#__PURE__*/ D(I, { pca: e }, e.id))]
|
|
210
|
-
}), F > 1 && /*#__PURE__*/ D("div", {
|
|
211
|
-
className: "flex justify-center py-4",
|
|
212
|
-
children: /*#__PURE__*/ D(e, {
|
|
213
|
-
variant: "input",
|
|
214
|
-
currentPage: p,
|
|
215
|
-
pages: F,
|
|
216
|
-
onPressPrevious: () => L(p - 1),
|
|
217
|
-
onPressNext: () => L(p + 1)
|
|
218
|
-
})
|
|
219
|
-
})] }),
|
|
220
|
-
c && /*#__PURE__*/ D(z, {
|
|
221
|
-
open: c,
|
|
222
|
-
onClose: u
|
|
223
|
-
})
|
|
224
|
-
]
|
|
225
|
-
});
|
|
226
|
-
};
|
|
227
|
-
//#endregion
|
|
228
|
-
//#region src/client/routes/_auth/projects/$projectId/services/pca/index.tsx?tsr-split=component
|
|
229
|
-
function H() {
|
|
230
|
-
let { i18n: e, _: t } = M(), { projectId: n } = y.useParams();
|
|
231
|
-
return /*#__PURE__*/ O(E, { children: [/*#__PURE__*/ D(C, {
|
|
232
|
-
title: e._({ id: "ffw//c" }),
|
|
233
|
-
projectId: n
|
|
234
|
-
}), /*#__PURE__*/ D(V, {})] });
|
|
235
|
-
}
|
|
236
|
-
//#endregion
|
|
237
|
-
export { H as component };
|
|
238
|
-
|
|
239
|
-
//# sourceMappingURL=pca-BokFv4Gz.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pca-BokFv4Gz.mjs","names":["MdCheckCircle","MdReportProblem","useNavigate","DataGridCell","DataGridRow","Icon","PopupMenu","PopupMenuItem","PopupMenuOptions","Spinner","useModal","useProjectId","DeletePcaModal","PcaTableRow","pca","useLingui","navigate","projectId","deletePcaModalOpen","toggleDeletePcaModal","navigateToDetailsPage","to","params","pcaId","id","STATE_CONFIG","CREATING","text","t","icon","size","AWAITING_CERTIFICATE","color","READY","fill","FAILED","data-testid","onClick","div","className","state","display_subject","e","stopPropagation","label","open","onClose","z","useForm","useStore","useNavigate","Modal","Form","FormSection","Spinner","TextInput","Message","trpcReact","useProjectId","csrRegex","isValidCommonName","value","test","CreatePcaModal","open","onClose","useLingui","navigate","projectId","utils","useUtils","isPending","createPcaMutation","services","pca","create","useMutation","onSettled","list","invalidate","formSchema","object","common_name","string","trim","min","t","refine","message","form","defaultValues","validators","onSubmit","createdPca","mutateAsync","project_id","configuration","subject","named_attributes","cn","handleClose","to","params","pcaId","id","reset","isCreateDisabled","store","state","isSubmitting","values","length","size","title","onCancel","cancelButtonLabel","confirmButtonLabel","onConfirm","handleSubmit","disableConfirmButton","error","dismissible","variant","className","div","span","e","preventDefault","Field","name","children","field","onBlur","handleBlur","onChange","handleChange","target","label","placeholder","helptext","errortext","meta","errors","map","join","disabled","useState","Stack","Spinner","DataGrid","DataGridRow","DataGridCell","ContentHeading","DataGridHeadCell","Button","Pagination","trpcReact","useProjectId","useModal","PcaTableRow","CreatePcaModal","ITEMS_PER_PAGE","PcaListContainer","useLingui","projectId","createCaOpen","toggleCreateCa","pageMarkers","setPageMarkers","undefined","currentPage","setCurrentPage","currentMarker","data","isLoading","isError","error","services","pca","list","useQuery","project_id","limit","next_page_marker","pcas","certificate_authorities","nextMarker","computedTotal","totalPages","Math","max","length","goToPage","page","prev","updated","className","distribution","alignment","direction","variant","size","message","t","TABLE_COLUMNS","columnsLength","div","label","onClick","columns","data-testid","colSpan","p","map","id","pages","onPressPrevious","onPressNext","open","onClose","useLingui","ContentHeader","PcaListContainer","Route","RouteComponent","t","projectId","useParams","component"],"sources":["../../src/client/routes/_auth/projects/$projectId/services/pca/-components/-table/PcaTableRow.tsx","../../src/client/routes/_auth/projects/$projectId/services/pca/-components/-modals/CreatePcaModal.tsx","../../src/client/routes/_auth/projects/$projectId/services/pca/-components/-table/PcaListContainer.tsx","../../src/client/routes/_auth/projects/$projectId/services/pca/index.tsx?tsr-split=component"],"sourcesContent":["import { MdCheckCircle, MdReportProblem } from \"react-icons/md\"\nimport { useNavigate } from \"@tanstack/react-router\"\nimport { useLingui } from \"@lingui/react/macro\"\nimport {\n DataGridCell,\n DataGridRow,\n Icon,\n PopupMenu,\n PopupMenuItem,\n PopupMenuOptions,\n Spinner,\n} from \"@cloudoperators/juno-ui-components\"\nimport { CertificateAuthority } from \"@/server/Services/types/pca\"\nimport { useModal } from \"@/client/utils/useModal\"\nimport { useProjectId } from \"@/client/hooks\"\nimport { DeletePcaModal } from \"../-modals/DeletePcaModal\"\n\ninterface PcaTableRowProps {\n pca: CertificateAuthority\n}\n\nexport const PcaTableRow = ({ pca }: PcaTableRowProps) => {\n const { t } = useLingui()\n const navigate = useNavigate()\n const projectId = useProjectId()\n const [deletePcaModalOpen, toggleDeletePcaModal] = useModal(false)\n\n const navigateToDetailsPage = () =>\n navigate({\n to: \"/projects/$projectId/services/pca/$pcaId\",\n params: { projectId, pcaId: pca.id },\n })\n\n const STATE_CONFIG = {\n CREATING: {\n text: t`Creating`,\n icon: <Spinner size=\"18\" />,\n },\n AWAITING_CERTIFICATE: {\n text: t`Awaiting Certificate`,\n icon: <Icon icon=\"accessTime\" size={20} color=\"#FBC02D\" />,\n },\n READY: {\n text: t`Ready`,\n icon: <MdCheckCircle size={20} color=\"white\" fill=\"#4FB81C\" />,\n },\n FAILED: {\n text: t`Failed`,\n icon: <MdReportProblem size={20} color=\"white\" fill=\"#D32F2F\" />,\n },\n } as const\n\n return (\n <>\n <DataGridRow key={pca.id} data-testid={`pca-row-${pca.id}`} onClick={navigateToDetailsPage}>\n <DataGridCell>\n <div className=\"flex items-center gap-2\">\n {STATE_CONFIG[pca.state].icon}\n {STATE_CONFIG[pca.state].text}\n </div>\n </DataGridCell>\n <DataGridCell>{pca.id}</DataGridCell>\n <DataGridCell>{pca.display_subject || \"—\"}</DataGridCell>\n <DataGridCell onClick={(e) => e.stopPropagation()} className=\"items-end pr-0\">\n <PopupMenu>\n <PopupMenuOptions>\n <PopupMenuItem label={t`Show Details`} onClick={navigateToDetailsPage} />\n <PopupMenuItem label={t`Delete CA`} onClick={toggleDeletePcaModal} />\n </PopupMenuOptions>\n </PopupMenu>\n </DataGridCell>\n </DataGridRow>\n\n {deletePcaModalOpen && <DeletePcaModal pca={pca} open={deletePcaModalOpen} onClose={toggleDeletePcaModal} />}\n </>\n )\n}\n","import { z } from \"zod\"\nimport { useForm, useStore } from \"@tanstack/react-form\"\nimport { useNavigate } from \"@tanstack/react-router\"\nimport { Trans, useLingui } from \"@lingui/react/macro\"\nimport { Modal, Form, FormSection, Spinner, TextInput, Message } from \"@cloudoperators/juno-ui-components\"\nimport { trpcReact } from \"@/client/trpcClient\"\nimport { useProjectId } from \"@/client/hooks\"\n\ninterface CreatePcaModalProps {\n open: boolean\n onClose: () => void\n}\n\nconst csrRegex = /^(?=.{1,253}$)(?:\\*\\.)?(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\\.)+[A-Za-z]{2,63}$/\nconst isValidCommonName = (value: string) => csrRegex.test(value)\n\nexport const CreatePcaModal = ({ open, onClose }: CreatePcaModalProps) => {\n const { t } = useLingui()\n const navigate = useNavigate()\n const projectId = useProjectId()\n const utils = trpcReact.useUtils()\n\n const { isPending, ...createPcaMutation } = trpcReact.services.pca.create.useMutation({\n onSettled: () => utils.services.pca.list.invalidate(),\n })\n\n const formSchema = z.object({\n common_name: z\n .string()\n .trim()\n .min(1, t`Common name is required.`)\n .refine((value) => isValidCommonName(value), { message: t`Must be a valid common name (FQDN).` }),\n })\n\n const form = useForm({\n defaultValues: {\n common_name: \"\",\n },\n validators: {\n onSubmit: formSchema,\n },\n onSubmit: async ({ value }) => {\n if (isPending) return\n\n const createdPca = await createPcaMutation.mutateAsync({\n project_id: projectId,\n configuration: {\n subject: {\n named_attributes: {\n cn: value.common_name,\n },\n },\n },\n })\n handleClose()\n\n await navigate({\n to: \"/projects/$projectId/services/pca/$pcaId\",\n params: { projectId, pcaId: createdPca.id },\n })\n },\n })\n\n const handleClose = () => {\n if (isPending) return\n\n form.reset()\n createPcaMutation.reset()\n onClose()\n }\n\n // Reactive subscription used to control create action disabled state.\n const isCreateDisabled = useStore(\n form.store,\n (state) => state.isSubmitting || state.values.common_name.trim().length === 0\n )\n\n return (\n <Modal\n open={open}\n size=\"large\"\n title={t`Create Certificate Authority`}\n onCancel={handleClose}\n cancelButtonLabel={t`Cancel`}\n confirmButtonLabel={t`Save`}\n onConfirm={form.handleSubmit}\n disableConfirmButton={isPending || isCreateDisabled}\n >\n {createPcaMutation.error?.message && (\n <Message dismissible={false} variant=\"error\" className=\"mb-4\">\n {createPcaMutation.error.message}\n </Message>\n )}\n\n {isPending && (\n <div className=\"mb-4 flex items-center justify-center gap-2\">\n <Spinner variant=\"primary\" />\n <span className=\"text-theme-high text-sm\">\n <Trans>Creating Certificate Authority...</Trans>\n </span>\n </div>\n )}\n\n {!isPending && (\n <Form\n className=\"mb-0\"\n id=\"create-certificate-authority-form\"\n onSubmit={(e) => {\n e.preventDefault()\n form.handleSubmit()\n }}\n >\n <FormSection className=\"mb-4\">\n <form.Field\n name=\"common_name\"\n children={(field) => (\n <TextInput\n id={field.name}\n name={field.name}\n value={field.state.value}\n onBlur={field.handleBlur}\n onChange={(e) => field.handleChange(e.target.value)}\n label={t`Common name`}\n placeholder={t`Enter Common name (e.g., demo-ca.test.sci)`}\n helptext={t`Enter a valid common name in FQDN format (e.g., demo-ca.test.sci).`}\n errortext={field.state.meta.errors.map((e) => e?.message).join(\", \")}\n disabled={isPending}\n />\n )}\n />\n </FormSection>\n </Form>\n )}\n </Modal>\n )\n}\n","import { Trans, useLingui } from \"@lingui/react/macro\"\nimport { useState } from \"react\"\nimport {\n Stack,\n Spinner,\n DataGrid,\n DataGridRow,\n DataGridCell,\n ContentHeading,\n DataGridHeadCell,\n Button,\n Pagination,\n} from \"@cloudoperators/juno-ui-components\"\nimport { trpcReact } from \"@/client/trpcClient\"\nimport { useProjectId } from \"@/client/hooks\"\nimport { useModal } from \"@/client/utils/useModal\"\nimport { PcaTableRow } from \"./PcaTableRow\"\nimport { CreatePcaModal } from \"../-modals/CreatePcaModal\"\n\nconst ITEMS_PER_PAGE = 50\n\nexport const PcaListContainer = () => {\n const { t } = useLingui()\n const projectId = useProjectId()\n const [createCaOpen, toggleCreateCa] = useModal(false)\n const [pageMarkers, setPageMarkers] = useState<(string | undefined)[]>([undefined])\n const [currentPage, setCurrentPage] = useState(1)\n const currentMarker = pageMarkers[currentPage - 1]\n\n const { data, isLoading, isError, error } = trpcReact.services.pca.list.useQuery({\n project_id: projectId,\n limit: ITEMS_PER_PAGE,\n next_page_marker: currentMarker,\n })\n\n const pcas = data?.certificate_authorities ?? []\n const nextMarker = data?.next_page_marker\n const computedTotal = nextMarker ? currentPage + 1 : currentPage\n const totalPages = Math.max(computedTotal, pageMarkers.length)\n\n const goToPage = (page: number) => {\n if (page < 1 || page > totalPages) return\n if (page > currentPage && nextMarker) {\n setPageMarkers((prev) => {\n const updated = [...prev]\n updated[page - 1] = nextMarker\n return updated\n })\n }\n setCurrentPage(page)\n }\n\n if (isLoading) {\n return (\n <Stack className=\"py-8\" distribution=\"center\" alignment=\"center\" direction=\"vertical\">\n <Spinner variant=\"primary\" size=\"large\" className=\"mb-2\" />\n <Trans>Loading...</Trans>\n </Stack>\n )\n }\n\n if (isError) {\n return (\n <Stack className=\"py-8\" distribution=\"center\" alignment=\"center\" direction=\"vertical\">\n {error?.message ?? t`Failed to load PCAs`}\n </Stack>\n )\n }\n\n const TABLE_COLUMNS = [\n t`State`,\n t`ID`,\n t`Subject Information`,\n \"\", // empty column for item-action with context menu containing \"Delete CA\" button\n ] as const\n const columnsLength = TABLE_COLUMNS.length\n\n return (\n <div className=\"relative\">\n <Stack className=\"pt-3 pb-2\" distribution=\"end\">\n <Button variant=\"primary\" label={t`Create Certificate Authority`} onClick={toggleCreateCa} />\n </Stack>\n\n {pcas.length === 0 && currentPage === 1 ? (\n <DataGrid columns={columnsLength} className=\"pca\" data-testid=\"no-pcas\">\n <DataGridRow>\n <DataGridCell colSpan={columnsLength}>\n <ContentHeading>\n <Trans>No PCAs found</Trans>\n </ContentHeading>\n <p>\n <Trans>There are no PCAs available for this project.</Trans>\n </p>\n </DataGridCell>\n </DataGridRow>\n </DataGrid>\n ) : (\n <>\n <DataGrid columns={columnsLength}>\n <DataGridRow>\n {TABLE_COLUMNS.map((label) => (\n <DataGridHeadCell key={label}>{label}</DataGridHeadCell>\n ))}\n </DataGridRow>\n {pcas.map((pca) => (\n <PcaTableRow key={pca.id} pca={pca} />\n ))}\n </DataGrid>\n\n {totalPages > 1 && (\n <div className=\"flex justify-center py-4\">\n <Pagination\n variant=\"input\"\n currentPage={currentPage}\n pages={totalPages}\n onPressPrevious={() => goToPage(currentPage - 1)}\n onPressNext={() => goToPage(currentPage + 1)}\n />\n </div>\n )}\n </>\n )}\n\n {createCaOpen && <CreatePcaModal open={createCaOpen} onClose={toggleCreateCa} />}\n </div>\n )\n}\n","import { createFileRoute, redirect } from \"@tanstack/react-router\"\nimport { t } from \"@lingui/core/macro\"\nimport { useLingui } from \"@lingui/react/macro\"\nimport { getServiceIndex } from \"@/server/Authentication/helpers\"\nimport type { RouteInfo } from \"@/client/routes/routeInfo\"\nimport { ContentHeader } from \"@/client/components/ContentHeader/ContentHeader\"\nimport { canAccessClavisPca } from \"./-components/pcaAccess\"\nimport { PcaListContainer } from \"./-components/-table/PcaListContainer\"\n\nexport const Route = createFileRoute(\"/_auth/projects/$projectId/services/pca/\")({\n staticData: {\n section: \"services\",\n service: \"pca\",\n analytics: {\n name: \"services.pca.list\",\n },\n sectionCrumb: { labelKey: \"Services\" },\n crumb: { labelKey: \"PCA (Clavis)\" },\n } satisfies RouteInfo,\n head: () => ({ meta: [{ title: t`PCA` }] }),\n beforeLoad: async ({ context, params }) => {\n const availableServices = (await context.trpcClient?.auth.getAvailableServices.query()) || []\n const serviceIndex = getServiceIndex(availableServices)\n\n if (!canAccessClavisPca(serviceIndex, context.enabledServices)) {\n throw redirect({\n to: \"/projects/$projectId\",\n params: { projectId: params.projectId },\n })\n }\n },\n component: RouteComponent,\n})\n\nfunction RouteComponent() {\n const { t } = useLingui()\n const { projectId } = Route.useParams()\n\n return (\n <>\n <ContentHeader title={t`PCA`} projectId={projectId} />\n <PcaListContainer />\n </>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./helpers-1PpYf-fC.mjs";
|
|
2
|
-
import { t } from "./pcaAccess-Br4kVjLQ.mjs";
|
|
3
|
-
import { createFileRoute as n, lazyRouteComponent as r, redirect as i } from "@tanstack/react-router";
|
|
4
|
-
import { i18n as a } from "@lingui/core";
|
|
5
|
-
var o = n("/_auth/projects/$projectId/services/pca/")({
|
|
6
|
-
staticData: {
|
|
7
|
-
section: "services",
|
|
8
|
-
service: "pca",
|
|
9
|
-
analytics: { name: "services.pca.list" },
|
|
10
|
-
sectionCrumb: { labelKey: "Services" },
|
|
11
|
-
crumb: { labelKey: "PCA (Clavis)" }
|
|
12
|
-
},
|
|
13
|
-
head: () => ({ meta: [{ title: a._({ id: "ffw//c" }) }] }),
|
|
14
|
-
beforeLoad: async ({ context: n, params: r }) => {
|
|
15
|
-
let a = await n.trpcClient?.auth.getAvailableServices.query() || [], o = e(a);
|
|
16
|
-
if (!t(o, n.enabledServices)) throw i({
|
|
17
|
-
to: "/projects/$projectId",
|
|
18
|
-
params: { projectId: r.projectId }
|
|
19
|
-
});
|
|
20
|
-
},
|
|
21
|
-
component: r(() => import("./pca-BokFv4Gz.mjs"), "component")
|
|
22
|
-
});
|
|
23
|
-
//#endregion
|
|
24
|
-
export { o as t };
|
|
25
|
-
|
|
26
|
-
//# sourceMappingURL=pca-D5jHAl0b.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pca-D5jHAl0b.mjs","names":["createFileRoute","redirect","t","getServiceIndex","canAccessClavisPca","Route","staticData","section","service","analytics","name","sectionCrumb","labelKey","crumb","RouteInfo","head","meta","title","beforeLoad","context","params","availableServices","trpcClient","auth","getAvailableServices","query","serviceIndex","enabledServices","to","projectId","component","lazyRouteComponent","$$splitComponentImporter"],"sources":["../../src/client/routes/_auth/projects/$projectId/services/pca/index.tsx"],"sourcesContent":["import { createFileRoute, redirect } from \"@tanstack/react-router\"\nimport { t } from \"@lingui/core/macro\"\nimport { useLingui } from \"@lingui/react/macro\"\nimport { getServiceIndex } from \"@/server/Authentication/helpers\"\nimport type { RouteInfo } from \"@/client/routes/routeInfo\"\nimport { ContentHeader } from \"@/client/components/ContentHeader/ContentHeader\"\nimport { canAccessClavisPca } from \"./-components/pcaAccess\"\nimport { PcaListContainer } from \"./-components/-table/PcaListContainer\"\n\nexport const Route = createFileRoute(\"/_auth/projects/$projectId/services/pca/\")({\n staticData: {\n section: \"services\",\n service: \"pca\",\n analytics: {\n name: \"services.pca.list\",\n },\n sectionCrumb: { labelKey: \"Services\" },\n crumb: { labelKey: \"PCA (Clavis)\" },\n } satisfies RouteInfo,\n head: () => ({ meta: [{ title: t`PCA` }] }),\n beforeLoad: async ({ context, params }) => {\n const availableServices = (await context.trpcClient?.auth.getAvailableServices.query()) || []\n const serviceIndex = getServiceIndex(availableServices)\n\n if (!canAccessClavisPca(serviceIndex, context.enabledServices)) {\n throw redirect({\n to: \"/projects/$projectId\",\n params: { projectId: params.projectId },\n })\n }\n },\n component: RouteComponent,\n})\n\nfunction RouteComponent() {\n const { t } = useLingui()\n const { projectId } = Route.useParams()\n\n return (\n <>\n <ContentHeader title={t`PCA`} projectId={projectId} />\n <PcaListContainer />\n </>\n )\n}\n"],"mappings":";;;;AASA,IAAaK,IAAQL,EAAgB,0CAAA,CAAA,CAA4C;CAC/EM,YAAY;EACVC,SAAS;EACTC,SAAS;EACTC,WAAW,EACTC,MAAM,oBACR;EACAC,cAAc,EAAEC,UAAU,WAAW;EACrCC,OAAO,EAAED,UAAU,eAAe;CACpC;CACAG,aAAa,EAAEC,MAAM,CAAC,EAAEC,OAAOf,EAAAA,EAAC,EAAA,IAAA,SAAA,CAAA,EAAM,CAAC,EAAE;CACzCgB,YAAY,OAAO,EAAEC,YAASC,gBAAQ;EACpC,IAAMC,IAAoB,MAAOF,EAAQG,YAAYC,KAAKC,qBAAqBC,MAAAA,KAAY,CAAA,GACrFC,IAAevB,EAAgBkB,CAAAA;EAErC,IAAI,CAACjB,EAAmBsB,GAAcP,EAAQQ,eAAe,GAC3D,MAAM1B,EAAS;GACb2B,IAAI;GACJR,QAAQ,EAAES,WAAWT,EAAOS,UAAU;EACxC,CAAA;CAEJ;CACAC,WAASC,sCAAA,WAAA;AACX,CAAA"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
//#region src/client/routes/_auth/projects/$projectId/services/pca/-components/pcaAccess.ts
|
|
2
|
-
var e = (e, t) => {
|
|
3
|
-
let n = !t || t.includes("pca");
|
|
4
|
-
return e.pca?.clavis && n;
|
|
5
|
-
};
|
|
6
|
-
//#endregion
|
|
7
|
-
export { e as t };
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=pcaAccess-Br4kVjLQ.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pcaAccess-Br4kVjLQ.mjs","names":["canAccessClavisPca","serviceIndex","enabledServices","isPcaEnabled","includes"],"sources":["../../src/client/routes/_auth/projects/$projectId/services/pca/-components/pcaAccess.ts"],"sourcesContent":["import type { getServiceIndex } from \"@/server/Authentication/helpers\"\n\ntype ServiceIndex = ReturnType<typeof getServiceIndex>\n\nexport const canAccessClavisPca = (serviceIndex: ServiceIndex, enabledServices?: string[]) => {\n const isPcaEnabled = !enabledServices || enabledServices.includes(\"pca\")\n return serviceIndex[\"pca\"]?.[\"clavis\"] && isPcaEnabled\n}\n"],"mappings":";AAIA,IAAaA,KAAsBC,GAA4BC,MAAAA;CAC7D,IAAMC,IAAe,CAACD,KAAmBA,EAAgBE,SAAS,KAAA;CAClE,OAAOH,EAAa,KAAS,UAAaE;AAC5C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routeInfo-CdTRlSxv.mjs","names":["z","CRUMB_LABEL_KEYS","CrumbSchema","object","labelKey","enum","optional","to","string","useParamAsLabel","useParentTitleAsLabel","boolean","AnalyticsSchema","name","RouteInfoSchema","section","service","isDetail","crumb","sectionCrumb","intermediateCrumb","analytics","isRouteInfo","data","safeParse","success"],"sources":["../../src/client/routes/routeInfo.ts"],"sourcesContent":["import { z } from \"zod\"\n\nexport const CRUMB_LABEL_KEYS = [\n \"Compute\",\n \"Network\",\n \"Storage\",\n \"Services\",\n \"Images\",\n \"Flavors\",\n \"Security Groups\",\n \"Floating IPs\",\n \"PCA (Clavis)\",\n] as const\n\nexport type CrumbLabelKey = (typeof CRUMB_LABEL_KEYS)[number]\n\nconst CrumbSchema = z.object({\n labelKey: z.enum(CRUMB_LABEL_KEYS).optional(),\n to: z.string().optional(),\n useParamAsLabel: z.string().optional(),\n useParentTitleAsLabel: z.boolean().optional(),\n})\n\nconst AnalyticsSchema = z.object({\n name: z.string(),\n})\n\nconst RouteInfoSchema = z.object({\n section: z.string().optional(),\n service: z.string().optional(),\n isDetail: z.boolean().optional(),\n crumb: CrumbSchema.optional(),\n sectionCrumb: CrumbSchema.optional(),\n intermediateCrumb: CrumbSchema.optional(),\n analytics: AnalyticsSchema.optional(),\n})\n\nexport type Crumb = z.infer<typeof CrumbSchema>\nexport type Analytics = z.infer<typeof AnalyticsSchema>\nexport type RouteInfo = z.infer<typeof RouteInfoSchema>\n\nexport function isRouteInfo(data: unknown): data is RouteInfo {\n return RouteInfoSchema.safeParse(data).success\n}\n"],"mappings":";AAgBA,IAAME,IAAcF,EAAEG,OAAO;CAC3BC,UAAUJ,EAAEK,KAAKJ;EAdjB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAMiBA,CAAAA,CAAAA,CAAkBK,SAAQ;CAC3CC,IAAIP,EAAEQ,OAAM,CAAA,CAAGF,SAAQ;CACvBG,iBAAiBT,EAAEQ,OAAM,CAAA,CAAGF,SAAQ;CACpCI,uBAAuBV,EAAEW,QAAO,CAAA,CAAGL,SAAQ;AAC7C,CAAA,GAEMM,IAAkBZ,EAAEG,OAAO,EAC/BU,MAAMb,EAAEQ,OAAM,EAChB,CAAA,GAEMM,IAAkBd,EAAEG,OAAO;CAC/BY,SAASf,EAAEQ,OAAM,CAAA,CAAGF,SAAQ;CAC5BU,SAAShB,EAAEQ,OAAM,CAAA,CAAGF,SAAQ;CAC5BW,UAAUjB,EAAEW,QAAO,CAAA,CAAGL,SAAQ;CAC9BY,OAAOhB,EAAYI,SAAQ;CAC3Ba,cAAcjB,EAAYI,SAAQ;CAClCc,mBAAmBlB,EAAYI,SAAQ;CACvCe,WAAWT,EAAgBN,SAAQ;AACrC,CAAA;AAMA,SAAgBgB,EAAYC,GAAa;CACvC,OAAOT,EAAgBU,UAAUD,CAAAA,CAAAA,CAAME;AACzC"}
|