@cobaltcore-dev/aurora 0.3.0 → 0.4.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/{ContentHeader-B_PWrxbw.mjs → ContentHeader-BXZoN3B9.mjs} +16 -16
- package/dist/client/{ContentHeader-B_PWrxbw.mjs.map → ContentHeader-BXZoN3B9.mjs.map} +1 -1
- package/dist/client/{DeleteFlavorModal-BkPrQKyE.mjs → DeleteFlavorModal-BusYn32r.mjs} +152 -152
- package/dist/client/{DeleteFlavorModal-BkPrQKyE.mjs.map → DeleteFlavorModal-BusYn32r.mjs.map} +1 -1
- package/dist/client/{EditSecurityGroupModal-ad4uzlt0.mjs → EditSecurityGroupModal-DK3WYikA.mjs} +15 -15
- package/dist/client/{EditSecurityGroupModal-ad4uzlt0.mjs.map → EditSecurityGroupModal-DK3WYikA.mjs.map} +1 -1
- package/dist/client/FiltersInput-OVeIJzIo.mjs +81 -0
- package/dist/client/FiltersInput-OVeIJzIo.mjs.map +1 -0
- package/dist/client/{FloatingIpActionModals-lKMwLuL8.mjs → FloatingIpActionModals-Dok7fJss.mjs} +52 -52
- package/dist/client/{FloatingIpActionModals-lKMwLuL8.mjs.map → FloatingIpActionModals-Dok7fJss.mjs.map} +1 -1
- package/dist/client/{ImageToastNotifications--U13YiQ_.mjs → ImageToastNotifications-BG9LPnXf.mjs} +324 -324
- package/dist/client/{ImageToastNotifications--U13YiQ_.mjs.map → ImageToastNotifications-BG9LPnXf.mjs.map} +1 -1
- package/dist/client/ListToolbar-BojRTNbo.mjs +129 -0
- package/dist/client/ListToolbar-BojRTNbo.mjs.map +1 -0
- package/dist/client/{RouteError-iP1Vd6bY.mjs → RouteError-pDEWC_k7.mjs} +2 -2
- package/dist/client/{RouteError-iP1Vd6bY.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-BaNXUJhA.mjs → _flavorId-BRonXvCo.mjs} +40 -40
- package/dist/client/{_flavorId-BaNXUJhA.mjs.map → _flavorId-BRonXvCo.mjs.map} +1 -1
- package/dist/client/{_flavorId-CnO76tuy.mjs → _flavorId-BoNcxYmF.mjs} +9 -9
- package/dist/client/{_flavorId-CnO76tuy.mjs.map → _flavorId-BoNcxYmF.mjs.map} +1 -1
- package/dist/client/{_floatingIpId-C8G20nNt.mjs → _floatingIpId-D33bOEmH.mjs} +2 -2
- package/dist/client/{_floatingIpId-C8G20nNt.mjs.map → _floatingIpId-D33bOEmH.mjs.map} +1 -1
- package/dist/client/_floatingIpId-DF_BSJN6.mjs +228 -0
- package/dist/client/{_floatingIpId-DdKnjdIV.mjs.map → _floatingIpId-DF_BSJN6.mjs.map} +1 -1
- package/dist/client/{_imageId-DdSbxFqG.mjs → _imageId-BL0I5_pv.mjs} +127 -127
- package/dist/client/{_imageId-DdSbxFqG.mjs.map → _imageId-BL0I5_pv.mjs.map} +1 -1
- package/dist/client/{_pcaId-DX_S-3hE.mjs → _pcaId-BYCoeK6_.mjs} +2 -2
- package/dist/client/{_pcaId-DX_S-3hE.mjs.map → _pcaId-BYCoeK6_.mjs.map} +1 -1
- package/dist/client/_pcaId-CbBhBrX1.mjs +466 -0
- package/dist/client/_pcaId-CbBhBrX1.mjs.map +1 -0
- package/dist/client/{_projectId-Dha4XqX4.mjs → _projectId-5NiasyXm.mjs} +3 -3
- package/dist/client/{_projectId-Dha4XqX4.mjs.map → _projectId-5NiasyXm.mjs.map} +1 -1
- package/dist/client/{_projectId-DYrcZ3E3.mjs → _projectId-BwLMEMGC.mjs} +3 -3
- package/dist/client/{_projectId-DYrcZ3E3.mjs.map → _projectId-BwLMEMGC.mjs.map} +1 -1
- package/dist/client/{_projectId-DsSVV2EA.mjs → _projectId-D35MN1kY.mjs} +70 -70
- package/dist/client/{_projectId-DsSVV2EA.mjs.map → _projectId-D35MN1kY.mjs.map} +1 -1
- package/dist/client/{_projectId-KH5si25Q.mjs → _projectId-OW2xkK43.mjs} +2 -2
- package/dist/client/{_projectId-KH5si25Q.mjs.map → _projectId-OW2xkK43.mjs.map} +1 -1
- package/dist/client/{_securityGroupId-DgaSqYex.mjs → _securityGroupId-B-Z-CzLp.mjs} +2 -2
- package/dist/client/{_securityGroupId-DgaSqYex.mjs.map → _securityGroupId-B-Z-CzLp.mjs.map} +1 -1
- package/dist/client/{_securityGroupId-O7FXfx0M.mjs → _securityGroupId-B1bOYRbX.mjs} +307 -307
- package/dist/client/{_securityGroupId-O7FXfx0M.mjs.map → _securityGroupId-B1bOYRbX.mjs.map} +1 -1
- package/dist/client/{about-DN8n8sN8.mjs → about-DLn1ShhF.mjs} +2 -2
- package/dist/client/{about-DN8n8sN8.mjs.map → about-DLn1ShhF.mjs.map} +1 -1
- package/dist/client/{build-CZRvXrAL.mjs → build-BJDfnAyi.mjs} +541 -537
- package/dist/client/{build-CZRvXrAL.mjs.map → build-BJDfnAyi.mjs.map} +1 -1
- package/dist/client/{buildFilterParams-ngVK3ybs.mjs → buildFilterParams-TeyosGyK.mjs} +1 -1
- package/dist/client/{buildFilterParams-ngVK3ybs.mjs.map → buildFilterParams-TeyosGyK.mjs.map} +1 -1
- package/dist/client/{constants-akdIBeTX.mjs → constants-B-P2r5F1.mjs} +11 -11
- package/dist/client/{constants-akdIBeTX.mjs.map → constants-B-P2r5F1.mjs.map} +1 -1
- package/dist/client/{containers-DmwhE9Uz.mjs → containers-BjWqjNOx.mjs} +2 -2
- package/dist/client/containers-BjWqjNOx.mjs.map +1 -0
- package/dist/client/{containers-Cs5vOeR2.mjs → containers-DsRWc1L5.mjs} +1 -1
- package/dist/client/containers-DsRWc1L5.mjs.map +1 -0
- package/dist/client/containers-J7WFA18U.mjs +3120 -0
- package/dist/client/containers-J7WFA18U.mjs.map +1 -0
- package/dist/client/{flavors-CY7A6--v.mjs → flavors-D8oElC2K.mjs} +2 -2
- package/dist/client/{flavors-CY7A6--v.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-BtL4d4m-.mjs → floatingips-Fa6ocNUu.mjs} +86 -86
- package/dist/client/{floatingips-BtL4d4m-.mjs.map → floatingips-Fa6ocNUu.mjs.map} +1 -1
- package/dist/client/{formatBytes-D6oa0wU9.mjs → formatBytes-tQBEnPoL.mjs} +1 -1
- package/dist/client/{formatBytes-D6oa0wU9.mjs.map → formatBytes-tQBEnPoL.mjs.map} +1 -1
- package/dist/client/{hooks-D0krAKvo.mjs → hooks-DEjb9d1F.mjs} +1 -1
- package/dist/client/images-CSFfefAu.mjs +1901 -0
- package/dist/client/images-CSFfefAu.mjs.map +1 -0
- package/dist/client/{images-I9gQfRa7.mjs → images-CTLCY-yY.mjs} +2 -2
- package/dist/client/{images-I9gQfRa7.mjs.map → images-CTLCY-yY.mjs.map} +1 -1
- package/dist/client/images-DM9I8G0p.mjs.map +1 -1
- package/dist/client/images-tYfyOkX8.mjs +8 -0
- package/dist/client/images-tYfyOkX8.mjs.map +1 -0
- package/dist/client/index.js +200 -198
- package/dist/client/index.js.map +1 -1
- package/dist/client/{network-SCVadZsv.mjs → network-rYLHyf15.mjs} +1 -1
- package/dist/client/{network-SCVadZsv.mjs.map → network-rYLHyf15.mjs.map} +1 -1
- package/dist/client/{objects-BrYe_RaJ.mjs → objects-BciXwZ00.mjs} +2 -2
- package/dist/client/objects-BciXwZ00.mjs.map +1 -0
- package/dist/client/{objects-B4yrYf_a.mjs → objects-Cdew99tK.mjs} +1 -1
- package/dist/client/objects-Cdew99tK.mjs.map +1 -0
- package/dist/client/objects-DaElrban.mjs +5340 -0
- package/dist/client/objects-DaElrban.mjs.map +1 -0
- package/dist/client/{overview-CmQkJ4Hh.mjs → overview-BMhjFMIV.mjs} +2 -2
- package/dist/client/{overview-CmQkJ4Hh.mjs.map → overview-BMhjFMIV.mjs.map} +1 -1
- package/dist/client/{overview-BjRSFSBh.mjs → overview-BYIRj7_X.mjs} +2 -2
- package/dist/client/{overview-BjRSFSBh.mjs.map → overview-BYIRj7_X.mjs.map} +1 -1
- package/dist/client/{overview-DTLIAKkJ.mjs → overview-DRCKNBH2.mjs} +2 -2
- package/dist/client/{overview-DTLIAKkJ.mjs.map → overview-DRCKNBH2.mjs.map} +1 -1
- package/dist/client/{overview-C4gjtc2q.mjs → overview-urYLOVQE.mjs} +3 -3
- package/dist/client/{overview-C4gjtc2q.mjs.map → overview-urYLOVQE.mjs.map} +1 -1
- package/dist/client/{pca-DzixU9Dl.mjs → pca-COmKvp3J.mjs} +2 -2
- package/dist/client/{pca-DzixU9Dl.mjs.map → pca-COmKvp3J.mjs.map} +1 -1
- package/dist/client/{pca-CYFJxSZ2.mjs → pca-oc7J0_Xd.mjs} +62 -62
- package/dist/client/pca-oc7J0_Xd.mjs.map +1 -0
- package/dist/client/{projects-D3hOC1cy.mjs → projects-BUabCzvw.mjs} +33 -33
- package/dist/client/projects-BUabCzvw.mjs.map +1 -0
- package/dist/client/{projects-BtyjXGq2.mjs → projects-DI_L4oDw.mjs} +2 -2
- package/dist/client/{projects-BtyjXGq2.mjs.map → projects-DI_L4oDw.mjs.map} +1 -1
- package/dist/client/{projects-DwVawmll.mjs → projects-Dl5XkXUP.mjs} +2 -2
- package/dist/client/{projects-DwVawmll.mjs.map → projects-Dl5XkXUP.mjs.map} +1 -1
- package/dist/client/{projects-BsN4bvU2.mjs → projects-HoQ0gE5Y.mjs} +1 -1
- package/dist/client/{projects-BsN4bvU2.mjs.map → projects-HoQ0gE5Y.mjs.map} +1 -1
- package/dist/client/{securitygroups-DMCIDHQS.mjs → securitygroups-BjkmHk2J.mjs} +102 -102
- package/dist/client/{securitygroups-DMCIDHQS.mjs.map → securitygroups-BjkmHk2J.mjs.map} +1 -1
- package/dist/client/{useListWithFiltering-CEDh1LO-.mjs → useListWithFiltering-CbhHJO4V.mjs} +1 -1
- package/dist/client/{useListWithFiltering-CEDh1LO-.mjs.map → useListWithFiltering-CbhHJO4V.mjs.map} +1 -1
- package/dist/client/{useProjectId-CgOTejka.mjs → useProjectId-OQv2KBbG.mjs} +1 -1
- package/dist/client/{useProjectId-CgOTejka.mjs.map → useProjectId-OQv2KBbG.mjs.map} +1 -1
- package/dist/server/index.d.ts +7 -1
- package/dist/server/index.js +116 -55
- package/package.json +3 -4
- package/dist/client/ListToolbar-C5lzTrit.mjs +0 -223
- package/dist/client/ListToolbar-C5lzTrit.mjs.map +0 -1
- package/dist/client/_floatingIpId-DdKnjdIV.mjs +0 -228
- package/dist/client/_pcaId-DFkYJEb5.mjs +0 -369
- package/dist/client/_pcaId-DFkYJEb5.mjs.map +0 -1
- package/dist/client/containers-BE2QiLBs.mjs +0 -3031
- package/dist/client/containers-BE2QiLBs.mjs.map +0 -1
- package/dist/client/containers-Cs5vOeR2.mjs.map +0 -1
- package/dist/client/containers-DmwhE9Uz.mjs.map +0 -1
- package/dist/client/flavors-pEcGkCut.mjs +0 -565
- package/dist/client/flavors-pEcGkCut.mjs.map +0 -1
- package/dist/client/images-C19gCFSy.mjs +0 -1797
- package/dist/client/images-C19gCFSy.mjs.map +0 -1
- package/dist/client/objects-B4yrYf_a.mjs.map +0 -1
- package/dist/client/objects-BrYe_RaJ.mjs.map +0 -1
- package/dist/client/objects-DOYFFn3Y.mjs +0 -4760
- package/dist/client/objects-DOYFFn3Y.mjs.map +0 -1
- package/dist/client/pca-CYFJxSZ2.mjs.map +0 -1
- package/dist/client/projects-D3hOC1cy.mjs.map +0 -1
- package/permission_policies/compute.yaml +0 -975
- package/permission_policies/image.yaml +0 -71
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
import { P as e, _ as t, a as n, d as r, f as i, m as a, ot as o, r as s, tt as c, x as l, y as u } from "./build-CZRvXrAL.mjs";
|
|
2
|
-
import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
3
|
-
import { useCallback as m, useEffect as h, useRef as g, useState as _ } from "react";
|
|
4
|
-
import { Trans as v, useLingui as y } from "@lingui/react";
|
|
5
|
-
//#region src/client/components/ListToolbar/SelectedFilters.tsx
|
|
6
|
-
var b = ({ selectedFilters: e, onDelete: t, onClear: n }) => {
|
|
7
|
-
let { i18n: r, _: i } = y();
|
|
8
|
-
return /* @__PURE__ */ p(c, {
|
|
9
|
-
gap: "2",
|
|
10
|
-
wrap: !0,
|
|
11
|
-
alignment: "start",
|
|
12
|
-
distribution: "start",
|
|
13
|
-
children: [e.map((e) => /* @__PURE__ */ f(u, {
|
|
14
|
-
closeable: !0,
|
|
15
|
-
pillKey: e.name,
|
|
16
|
-
pillValue: e.value,
|
|
17
|
-
onClose: () => t(e)
|
|
18
|
-
}, `${e.name}:${e.value}`)), e.length > 1 && /* @__PURE__ */ f(u, {
|
|
19
|
-
pillValue: r._({ id: "yYxB17" }),
|
|
20
|
-
className: "ml-2",
|
|
21
|
-
onClick: n
|
|
22
|
-
})]
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
//#endregion
|
|
26
|
-
//#region src/client/components/ListToolbar/FiltersInput.tsx
|
|
27
|
-
function x(e) {
|
|
28
|
-
return e == null ? !0 : typeof e == "string" || Array.isArray(e) ? e.length === 0 : e instanceof Map || e instanceof Set ? e.size === 0 : typeof e == "object" ? Object.keys(e).length === 0 : !1;
|
|
29
|
-
}
|
|
30
|
-
var S = ({ filters: e, onChange: t }) => {
|
|
31
|
-
let { i18n: i, _: c } = y(), [l, u] = _(""), [d, h] = _(""), g = e.find((e) => e.filterName === l)?.values?.filter((e) => e), v = m((e) => {
|
|
32
|
-
h(e), !x(l) && !x(e) && t({
|
|
33
|
-
name: l,
|
|
34
|
-
value: e
|
|
35
|
-
}), setTimeout(() => {
|
|
36
|
-
h("");
|
|
37
|
-
}, 0);
|
|
38
|
-
}, [
|
|
39
|
-
l,
|
|
40
|
-
h,
|
|
41
|
-
t
|
|
42
|
-
]), b = () => ({
|
|
43
|
-
className: "w-full sm:flex-1 sm:min-w-0",
|
|
44
|
-
name: "filter",
|
|
45
|
-
"data-testid": "select-filterValue",
|
|
46
|
-
label: i._({ id: "0cVgUw" }),
|
|
47
|
-
value: l,
|
|
48
|
-
onChange: (e) => {
|
|
49
|
-
u(String(e));
|
|
50
|
-
}
|
|
51
|
-
}), S = () => ({
|
|
52
|
-
className: "w-full sm:flex-1 sm:min-w-0",
|
|
53
|
-
name: "filterValue",
|
|
54
|
-
"data-testid": "combobox-filterValue",
|
|
55
|
-
value: d,
|
|
56
|
-
disabled: !l,
|
|
57
|
-
onChange: v
|
|
58
|
-
});
|
|
59
|
-
return /* @__PURE__ */ p(o, {
|
|
60
|
-
className: "flex w-full flex-col sm:w-auto sm:flex-row sm:items-end",
|
|
61
|
-
children: [/* @__PURE__ */ f(s, {
|
|
62
|
-
...b(),
|
|
63
|
-
children: e?.map(({ displayName: e, filterName: t }) => /* @__PURE__ */ f(r, {
|
|
64
|
-
value: t,
|
|
65
|
-
label: e,
|
|
66
|
-
"data-testid": t
|
|
67
|
-
}, t))
|
|
68
|
-
}), /* @__PURE__ */ f(n, {
|
|
69
|
-
...S(),
|
|
70
|
-
children: g?.map((e) => /* @__PURE__ */ f(a, {
|
|
71
|
-
value: e,
|
|
72
|
-
label: e,
|
|
73
|
-
"data-testid": e
|
|
74
|
-
}, e))
|
|
75
|
-
})]
|
|
76
|
-
});
|
|
77
|
-
}, C = ({ sortBy: t, onSortByChange: n, sortDirection: i, onSortDirectionChange: a, options: c }) => {
|
|
78
|
-
let { i18n: l, _: u } = y(), d = () => ({
|
|
79
|
-
className: "flex-grow",
|
|
80
|
-
onChange: n,
|
|
81
|
-
value: t,
|
|
82
|
-
"data-testid": "sort-select",
|
|
83
|
-
label: l._({ id: "/HgF9q" })
|
|
84
|
-
}), m = () => ({
|
|
85
|
-
"data-testid": "direction-toggle",
|
|
86
|
-
order: i,
|
|
87
|
-
onChange: a
|
|
88
|
-
});
|
|
89
|
-
return /* @__PURE__ */ p(o, {
|
|
90
|
-
className: "flex w-full items-end sm:w-auto",
|
|
91
|
-
children: [/* @__PURE__ */ f(s, {
|
|
92
|
-
...d(),
|
|
93
|
-
children: c.map((e) => /* @__PURE__ */ f(r, {
|
|
94
|
-
value: e.value,
|
|
95
|
-
children: e.label
|
|
96
|
-
}, e.value))
|
|
97
|
-
}), /* @__PURE__ */ f(e, {
|
|
98
|
-
...m(),
|
|
99
|
-
className: "shadow-none"
|
|
100
|
-
})]
|
|
101
|
-
});
|
|
102
|
-
}, w = ({ filterSettings: e, onFilter: n, sortSettings: r, onSort: a, searchTerm: o, onSearch: s, searchInputProps: u = {}, actions: _, tabs: x, totalCount: w, filteredCount: T, itemName: E = "items", lastUpdated: D }) => {
|
|
103
|
-
let { i18n: O, _: k } = y(), A = g(void 0);
|
|
104
|
-
h(() => () => {
|
|
105
|
-
A.current && clearTimeout(A.current);
|
|
106
|
-
}, []);
|
|
107
|
-
let j = (e) => e ? (typeof e == "string" ? new Date(e) : e).toLocaleString() : "", M = w !== void 0 && T !== void 0, N = m((t) => {
|
|
108
|
-
!n || !e || n({
|
|
109
|
-
...e,
|
|
110
|
-
selectedFilters: e.selectedFilters?.filter((e) => !(e.name === t.name && e.value === t.value))
|
|
111
|
-
});
|
|
112
|
-
}, [e, n]), P = (t) => {
|
|
113
|
-
if (!n || !e || e.selectedFilters?.some((e) => e.name === t.name && e.value === t.value)) return;
|
|
114
|
-
let r = e.filters.find((e) => t.name === e.filterName)?.supportsMultiValue ? [...e.selectedFilters || [], t] : [...(e.selectedFilters || []).filter((e) => e.name !== t.name), t];
|
|
115
|
-
n({
|
|
116
|
-
...e,
|
|
117
|
-
selectedFilters: r
|
|
118
|
-
});
|
|
119
|
-
}, F = m((e) => {
|
|
120
|
-
let t = typeof e == "string" ? e : "";
|
|
121
|
-
A.current && clearTimeout(A.current), s?.(t);
|
|
122
|
-
}, [s]), I = m((e) => {
|
|
123
|
-
let t = e.currentTarget.value;
|
|
124
|
-
A.current && clearTimeout(A.current), A.current = window.setTimeout(() => s?.(t), 500);
|
|
125
|
-
}, [s]), L = m(() => {
|
|
126
|
-
A.current && clearTimeout(A.current), s?.("");
|
|
127
|
-
}, [s]), R = e && n ? {
|
|
128
|
-
filters: e.filters,
|
|
129
|
-
onChange: P
|
|
130
|
-
} : null, z = r && a ? {
|
|
131
|
-
options: r.options,
|
|
132
|
-
sortBy: r.sortBy,
|
|
133
|
-
sortDirection: r.sortDirection || "asc",
|
|
134
|
-
onSortByChange: (e) => a({
|
|
135
|
-
...r,
|
|
136
|
-
sortBy: e,
|
|
137
|
-
sortDirection: r.sortDirection || "asc"
|
|
138
|
-
}),
|
|
139
|
-
onSortDirectionChange: (e) => a({
|
|
140
|
-
...r,
|
|
141
|
-
sortDirection: e
|
|
142
|
-
})
|
|
143
|
-
} : null, B = s ? {
|
|
144
|
-
placeholder: O._({ id: "YIix5Y" }),
|
|
145
|
-
"data-testid": "searchbar",
|
|
146
|
-
value: o,
|
|
147
|
-
onInput: I,
|
|
148
|
-
onClear: L,
|
|
149
|
-
onSearch: F,
|
|
150
|
-
...u
|
|
151
|
-
} : null;
|
|
152
|
-
return /* @__PURE__ */ p(d, { children: [x && /* @__PURE__ */ f("div", {
|
|
153
|
-
className: "w-full",
|
|
154
|
-
children: /* @__PURE__ */ f(t, {
|
|
155
|
-
activeItem: x.activeItem,
|
|
156
|
-
onActiveItemChange: x.onActiveItemChange,
|
|
157
|
-
children: x.items.map((e) => /* @__PURE__ */ f(l, {
|
|
158
|
-
label: e.label,
|
|
159
|
-
value: e.value
|
|
160
|
-
}, e.value))
|
|
161
|
-
})
|
|
162
|
-
}), /* @__PURE__ */ p(c, {
|
|
163
|
-
alignment: "center",
|
|
164
|
-
gap: "6",
|
|
165
|
-
className: "bg-theme-background-lvl-1 flex w-full flex-col p-4",
|
|
166
|
-
children: [
|
|
167
|
-
_ && /* @__PURE__ */ f(c, {
|
|
168
|
-
direction: "horizontal",
|
|
169
|
-
className: "w-full justify-end",
|
|
170
|
-
children: _
|
|
171
|
-
}),
|
|
172
|
-
/* @__PURE__ */ p("div", {
|
|
173
|
-
className: "flex w-full flex-col items-stretch gap-4 md:flex-row md:items-center",
|
|
174
|
-
children: [
|
|
175
|
-
R && /* @__PURE__ */ f("div", {
|
|
176
|
-
className: "w-full md:w-auto md:min-w-37.5",
|
|
177
|
-
children: /* @__PURE__ */ f(S, { ...R })
|
|
178
|
-
}),
|
|
179
|
-
z && /* @__PURE__ */ f("div", {
|
|
180
|
-
className: "w-full md:w-auto md:min-w-45",
|
|
181
|
-
children: /* @__PURE__ */ f(C, { ...z })
|
|
182
|
-
}),
|
|
183
|
-
B && /* @__PURE__ */ f("div", {
|
|
184
|
-
className: "w-full md:ml-auto md:w-auto md:min-w-25",
|
|
185
|
-
children: /* @__PURE__ */ f(i, { ...B })
|
|
186
|
-
})
|
|
187
|
-
]
|
|
188
|
-
}),
|
|
189
|
-
e?.selectedFilters && e.selectedFilters.length > 0 && n && /* @__PURE__ */ f("div", {
|
|
190
|
-
className: "w-full",
|
|
191
|
-
children: /* @__PURE__ */ f(b, {
|
|
192
|
-
selectedFilters: e.selectedFilters,
|
|
193
|
-
onDelete: N,
|
|
194
|
-
onClear: () => n({
|
|
195
|
-
...e,
|
|
196
|
-
selectedFilters: []
|
|
197
|
-
})
|
|
198
|
-
})
|
|
199
|
-
}),
|
|
200
|
-
(M || D) && /* @__PURE__ */ f("div", {
|
|
201
|
-
className: "text-theme-secondary flex w-full items-center justify-between text-sm",
|
|
202
|
-
children: /* @__PURE__ */ p("div", {
|
|
203
|
-
className: "flex items-center gap-2",
|
|
204
|
-
children: [M && /* @__PURE__ */ f("span", { children: /* @__PURE__ */ f(v, {
|
|
205
|
-
id: "Vg0k6h",
|
|
206
|
-
values: {
|
|
207
|
-
filteredCount: T,
|
|
208
|
-
totalCount: w,
|
|
209
|
-
itemName: E
|
|
210
|
-
}
|
|
211
|
-
}) }), D && /* @__PURE__ */ f("span", { children: /* @__PURE__ */ f(v, {
|
|
212
|
-
id: "wlUDbB",
|
|
213
|
-
values: { formattedDate: j(D) }
|
|
214
|
-
}) })]
|
|
215
|
-
})
|
|
216
|
-
})
|
|
217
|
-
]
|
|
218
|
-
})] });
|
|
219
|
-
};
|
|
220
|
-
//#endregion
|
|
221
|
-
export { w as t };
|
|
222
|
-
|
|
223
|
-
//# sourceMappingURL=ListToolbar-C5lzTrit.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ListToolbar-C5lzTrit.mjs","names":["Pill","Stack","SelectedFilters","selectedFilters","onDelete","onClear","useLingui","gap","wrap","alignment","distribution","map","filter","closeable","pillKey","name","pillValue","value","onClose","length","t","className","onClick","useCallback","useState","InputGroup","ComboBox","ComboBoxOption","SelectOption","Select","isEmpty","value","Array","isArray","length","Map","Set","size","Object","keys","FiltersInput","filters","onChange","useLingui","selectedFilterName","setSelectedFilterName","selectedFilterValue","setSelectedFilterValue","filterValues","find","filter","filterName","values","handleValueChange","name","setTimeout","getSelectProps","className","label","t","String","getComboBoxProps","disabled","map","displayName","data-testid","React","Select","SelectOption","SortButton","InputGroup","SortInput","sortBy","onSortByChange","sortDirection","onSortDirectionChange","options","useLingui","getSelectProps","className","onChange","value","label","t","getSortButtonProps","order","map","option","useCallback","useRef","useEffect","SearchInput","Stack","TabNavigation","TabNavigationItem","SelectedFilters","FiltersInput","SortInput","ListToolbar","filterSettings","onFilter","sortSettings","onSort","searchTerm","onSearch","searchInputProps","actions","tabs","totalCount","filteredCount","itemName","lastUpdated","useLingui","debounceTimerRef","undefined","current","clearTimeout","formatLastUpdated","date","dateObj","Date","toLocaleString","showCountInfo","handleFilterDelete","filterToRemove","selectedFilters","filter","name","value","handleSelect","selectedFilter","filterExists","some","supportsMultiValue","filters","find","filterName","newSelected","handleSearch","searchValue","handleSearchInput","event","currentTarget","window","setTimeout","handleSearchClear","filtersProps","onChange","sortProps","options","sortBy","sortDirection","onSortByChange","param","onSortDirectionChange","direction","searchProps","placeholder","t","onInput","onClear","div","className","activeItem","onActiveItemChange","items","map","item","label","alignment","gap","length","onDelete","span","formattedDate"],"sources":["../../src/client/components/ListToolbar/SelectedFilters.tsx","../../src/client/components/ListToolbar/FiltersInput.tsx","../../src/client/components/ListToolbar/SortInput.tsx","../../src/client/components/ListToolbar/index.tsx"],"sourcesContent":["import { useLingui } from \"@lingui/react/macro\"\nimport { Pill, Stack } from \"@cloudoperators/juno-ui-components\"\nimport { SelectedFilter } from \"./types\"\n\nexport type SelectedFiltersProps = {\n /**\n * Array of currently active filters to be displayed as closeable pills.\n */\n selectedFilters: SelectedFilter[]\n\n /**\n * Callback function invoked when a user removes an individual filter pill.\n */\n onDelete: (filter: SelectedFilter) => void\n\n /**\n * Callback function invoked when the \"Clear all\" button is clicked.\n */\n onClear: () => void\n}\n\n/**\n * SelectedFilters Component\n *\n * Displays currently active filters as closeable pill components with individual\n * remove buttons and an optional \"Clear all\" button (shown when 2+ filters are active).\n *\n * The pills are arranged in a flexible, wrapping layout that adapts to available space.\n */\nexport const SelectedFilters = ({ selectedFilters, onDelete, onClear }: SelectedFiltersProps) => {\n const { t } = useLingui()\n\n return (\n <Stack gap=\"2\" wrap={true} alignment=\"start\" distribution=\"start\">\n {/* Render a closeable pill for each selected filter */}\n {selectedFilters.map((filter) => (\n <Pill\n key={`${filter.name}:${filter.value}`}\n closeable\n pillKey={filter.name}\n pillValue={filter.value}\n onClose={() => onDelete(filter)}\n />\n ))}\n {selectedFilters.length > 1 && <Pill pillValue={t`Clear all`} className=\"ml-2\" onClick={onClear} />}\n </Stack>\n )\n}\n","import { useCallback, useState } from \"react\"\nimport { useLingui } from \"@lingui/react/macro\"\nimport {\n InputGroup,\n ComboBox,\n ComboBoxProps,\n ComboBoxOption,\n SelectOption,\n Select,\n SelectProps,\n} from \"@cloudoperators/juno-ui-components\"\nimport { Filter, SelectedFilter } from \"./types\"\n\nexport type FiltersInputProps = {\n filters: Filter[]\n onChange: (filter: SelectedFilter) => void\n}\n\nfunction isEmpty(value: unknown) {\n if (value == null) return true\n if (typeof value === \"string\" || Array.isArray(value)) return value.length === 0\n if (value instanceof Map || value instanceof Set) return value.size === 0\n if (typeof value === \"object\") return Object.keys(value).length === 0\n return false\n}\n\nexport const FiltersInput = ({ filters, onChange }: FiltersInputProps) => {\n const { t } = useLingui()\n\n const [selectedFilterName, setSelectedFilterName] = useState<string>(\"\")\n const [selectedFilterValue, setSelectedFilterValue] = useState<string>(\"\")\n\n const filterValues: string[] | undefined = filters\n .find((filter) => filter.filterName === selectedFilterName)\n ?.values?.filter((value) => value)\n\n const handleValueChange = useCallback(\n (value: string) => {\n setSelectedFilterValue(value)\n if (!isEmpty(selectedFilterName) && !isEmpty(value)) {\n onChange({\n name: selectedFilterName,\n value: value,\n })\n }\n setTimeout(() => {\n setSelectedFilterValue(\"\")\n }, 0)\n },\n [selectedFilterName, setSelectedFilterValue, onChange]\n )\n\n const getSelectProps = (): SelectProps & { \"data-testid\"?: string } => ({\n className: \"w-full sm:flex-1 sm:min-w-0\",\n name: \"filter\",\n \"data-testid\": \"select-filterValue\",\n label: t`Filter by`,\n value: selectedFilterName,\n onChange: (value: string | number | string[] | undefined) => {\n setSelectedFilterName(String(value))\n },\n })\n\n const getComboBoxProps = (): ComboBoxProps & { \"data-testid\"?: string } => ({\n className: \"w-full sm:flex-1 sm:min-w-0\",\n name: \"filterValue\",\n \"data-testid\": \"combobox-filterValue\",\n value: selectedFilterValue,\n disabled: !selectedFilterName,\n onChange: handleValueChange,\n })\n\n return (\n <InputGroup className=\"flex w-full flex-col sm:w-auto sm:flex-row sm:items-end\">\n <Select {...getSelectProps()}>\n {filters?.map(({ displayName, filterName }) => (\n <SelectOption value={filterName} label={displayName} key={filterName} data-testid={filterName} />\n ))}\n </Select>\n <ComboBox {...getComboBoxProps()}>\n {filterValues?.map((value) => (\n <ComboBoxOption value={value} key={value} label={value} data-testid={value} />\n ))}\n </ComboBox>\n </InputGroup>\n )\n}\n","import React from \"react\"\nimport { useLingui } from \"@lingui/react/macro\"\nimport {\n Select,\n SelectOption,\n SortButton,\n InputGroup,\n SelectProps,\n ButtonProps,\n} from \"@cloudoperators/juno-ui-components\"\nimport { SortOption } from \"./types\"\n\nexport interface SortInputProps {\n sortBy?: string | number | string[]\n onSortByChange: (param?: string | number | string[]) => void\n sortDirection: \"asc\" | \"desc\"\n onSortDirectionChange: (direction: \"asc\" | \"desc\") => void\n options: SortOption[]\n}\n\nexport const SortInput: React.FC<SortInputProps> = ({\n sortBy,\n onSortByChange,\n sortDirection,\n onSortDirectionChange,\n options,\n}) => {\n const { t } = useLingui()\n\n const getSelectProps = (): SelectProps & { \"data-testid\"?: string } => ({\n className: \"flex-grow\",\n onChange: onSortByChange,\n value: sortBy,\n \"data-testid\": \"sort-select\",\n label: t`Sort by`,\n })\n\n const getSortButtonProps = (): Omit<ButtonProps, \"onChange\"> & {\n \"data-testid\"?: string\n order: \"asc\" | \"desc\"\n onChange: (order: \"asc\" | \"desc\") => void\n } => ({\n \"data-testid\": \"direction-toggle\",\n order: sortDirection,\n onChange: onSortDirectionChange,\n })\n\n return (\n <InputGroup className=\"flex w-full items-end sm:w-auto\">\n <Select {...getSelectProps()}>\n {options.map((option) => (\n <SelectOption key={option.value} value={option.value}>\n {option.label}\n </SelectOption>\n ))}\n </Select>\n <SortButton {...getSortButtonProps()} className=\"shadow-none\" />\n </InputGroup>\n )\n}\n","import { ReactNode, useCallback, useRef, useEffect } from \"react\"\nimport { Trans, useLingui } from \"@lingui/react/macro\"\nimport {\n SearchInput,\n SearchInputProps,\n Stack,\n TabNavigation,\n TabNavigationItem,\n} from \"@cloudoperators/juno-ui-components\"\nimport { SelectedFilters } from \"./SelectedFilters\"\nimport { FiltersInput } from \"./FiltersInput\"\nimport { SortInput } from \"./SortInput\"\nimport { FilterSettings, SelectedFilter, SortSettings } from \"./types\"\n\nexport type ListToolbarProps = {\n filterSettings?: FilterSettings\n onFilter?: (filterSettings: FilterSettings) => void\n sortSettings?: SortSettings\n onSort?: (sortSettings: SortSettings) => void\n searchTerm?: string\n onSearch?: (searchTerm: string) => void\n searchInputProps?: Omit<SearchInputProps, \"value\" | \"onSearch\" | \"onClear\" | \"onInput\">\n actions?: ReactNode\n tabs?: {\n items: Array<{ label: string; value: string }>\n activeItem: string\n onActiveItemChange: (value: ReactNode) => void\n }\n // Count information\n totalCount?: number\n itemName?: string // e.g. \"items\", \"users\", \"projects\" - used in count display\n filteredCount?: number\n // Last updated timestamp\n lastUpdated?: Date | string\n}\n\nexport const ListToolbar = ({\n filterSettings,\n onFilter,\n sortSettings,\n onSort,\n searchTerm,\n onSearch,\n searchInputProps = {},\n actions,\n tabs,\n totalCount,\n filteredCount,\n itemName = \"items\",\n lastUpdated,\n}: ListToolbarProps) => {\n const { t } = useLingui()\n\n const debounceTimerRef = useRef<number | undefined>(undefined)\n\n useEffect(() => {\n return () => {\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current)\n }\n }\n }, [])\n\n // Format last updated time\n const formatLastUpdated = (date: Date | string | undefined): string => {\n if (!date) return \"\"\n const dateObj = typeof date === \"string\" ? new Date(date) : date\n return dateObj.toLocaleString()\n }\n\n const showCountInfo = totalCount !== undefined && filteredCount !== undefined\n\n const handleFilterDelete = useCallback(\n (filterToRemove: SelectedFilter) => {\n if (!onFilter || !filterSettings) return\n onFilter({\n ...filterSettings,\n selectedFilters: filterSettings.selectedFilters?.filter(\n (filter) => !(filter.name === filterToRemove.name && filter.value === filterToRemove.value)\n ),\n })\n },\n [filterSettings, onFilter]\n )\n\n const handleSelect = (selectedFilter: SelectedFilter) => {\n if (!onFilter || !filterSettings) return\n const filterExists = filterSettings.selectedFilters?.some(\n (filter) => filter.name === selectedFilter.name && filter.value === selectedFilter.value\n )\n if (filterExists) return\n\n const supportsMultiValue = filterSettings.filters.find(\n (filter) => selectedFilter.name === filter.filterName\n )?.supportsMultiValue\n\n const newSelected = supportsMultiValue\n ? [...(filterSettings.selectedFilters || []), selectedFilter]\n : [\n ...(filterSettings.selectedFilters || []).filter((filter) => filter.name !== selectedFilter.name),\n selectedFilter,\n ]\n\n onFilter({ ...filterSettings, selectedFilters: newSelected })\n }\n\n const handleSearch = useCallback(\n (value: string | number | string[] | undefined) => {\n const searchValue = typeof value === \"string\" ? value : \"\"\n\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current)\n }\n\n onSearch?.(searchValue)\n },\n [onSearch]\n )\n\n const handleSearchInput = useCallback(\n (event: React.FormEvent<HTMLInputElement>) => {\n const searchValue = event.currentTarget.value\n if (debounceTimerRef.current) clearTimeout(debounceTimerRef.current)\n debounceTimerRef.current = window.setTimeout(() => onSearch?.(searchValue), 500)\n },\n [onSearch]\n )\n\n const handleSearchClear = useCallback(() => {\n if (debounceTimerRef.current) clearTimeout(debounceTimerRef.current)\n onSearch?.(\"\")\n }, [onSearch])\n\n const filtersProps = filterSettings && onFilter ? { filters: filterSettings.filters, onChange: handleSelect } : null\n const sortProps =\n sortSettings && onSort\n ? {\n options: sortSettings.options,\n sortBy: sortSettings.sortBy,\n sortDirection: sortSettings.sortDirection || \"asc\",\n onSortByChange: (param: string | number | string[] | undefined) =>\n onSort({ ...sortSettings, sortBy: param, sortDirection: sortSettings.sortDirection || \"asc\" }),\n onSortDirectionChange: (direction: \"asc\" | \"desc\") => onSort({ ...sortSettings, sortDirection: direction }),\n }\n : null\n\n const searchProps: (SearchInputProps & { \"data-testid\"?: string }) | null = onSearch\n ? {\n placeholder: t`Search...`,\n \"data-testid\": \"searchbar\",\n value: searchTerm,\n onInput: handleSearchInput,\n onClear: handleSearchClear,\n onSearch: handleSearch,\n ...searchInputProps,\n }\n : null\n\n return (\n <>\n {tabs && (\n <div className=\"w-full\">\n <TabNavigation activeItem={tabs.activeItem} onActiveItemChange={tabs.onActiveItemChange}>\n {tabs.items.map((item) => (\n <TabNavigationItem key={item.value} label={item.label} value={item.value} />\n ))}\n </TabNavigation>\n </div>\n )}\n <Stack alignment=\"center\" gap=\"6\" className=\"bg-theme-background-lvl-1 flex w-full flex-col p-4\">\n {actions && (\n <Stack direction=\"horizontal\" className=\"w-full justify-end\">\n {actions}\n </Stack>\n )}\n\n <div className=\"flex w-full flex-col items-stretch gap-4 md:flex-row md:items-center\">\n {filtersProps && (\n <div className=\"w-full md:w-auto md:min-w-37.5\">\n <FiltersInput {...filtersProps} />\n </div>\n )}\n {sortProps && (\n <div className=\"w-full md:w-auto md:min-w-45\">\n <SortInput {...sortProps} />\n </div>\n )}\n {searchProps && (\n <div className=\"w-full md:ml-auto md:w-auto md:min-w-25\">\n <SearchInput {...searchProps} />\n </div>\n )}\n </div>\n\n {filterSettings?.selectedFilters && filterSettings.selectedFilters.length > 0 && onFilter && (\n <div className=\"w-full\">\n <SelectedFilters\n selectedFilters={filterSettings.selectedFilters}\n onDelete={handleFilterDelete}\n onClear={() => onFilter({ ...filterSettings, selectedFilters: [] })}\n />\n </div>\n )}\n {/* Count and Last Updated Info */}\n {(showCountInfo || lastUpdated) && (\n <div className=\"text-theme-secondary flex w-full items-center justify-between text-sm\">\n <div className=\"flex items-center gap-2\">\n {showCountInfo && (\n <span>\n <Trans>\n Showing {filteredCount} of {totalCount} {itemName}\n </Trans>\n </span>\n )}\n {lastUpdated &&\n (() => {\n const formattedDate = formatLastUpdated(lastUpdated)\n return (\n <span>\n <Trans>Last updated: {formattedDate}</Trans>\n </span>\n )\n })()}\n </div>\n </div>\n )}\n </Stack>\n </>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
import { A as e, I as t, M as n, U as r, Z as i, c as a, h as o, tt as s } from "./build-CZRvXrAL.mjs";
|
|
2
|
-
import { r as c } from "./trpcClient-BxguzNYF.mjs";
|
|
3
|
-
import { t as l } from "./_floatingIpId-C8G20nNt.mjs";
|
|
4
|
-
import { t as u } from "./useProjectId-CgOTejka.mjs";
|
|
5
|
-
import "./hooks-D0krAKvo.mjs";
|
|
6
|
-
import { t as d } from "./FloatingIpActionModals-lKMwLuL8.mjs";
|
|
7
|
-
import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
8
|
-
import { Fragment as h } from "react";
|
|
9
|
-
import { useNavigate as g } from "@tanstack/react-router";
|
|
10
|
-
import { Trans as _, useLingui as v } from "@lingui/react";
|
|
11
|
-
//#region src/client/utils/formatFloatingIpStatus.ts
|
|
12
|
-
var y = (e) => e.charAt(0) + e.slice(1).toLowerCase(), b = ({ items: e }) => {
|
|
13
|
-
let i = Math.ceil(e.length / 2), a = e.slice(0, i), o = e.slice(i);
|
|
14
|
-
return /* @__PURE__ */ m(s, {
|
|
15
|
-
gap: "6",
|
|
16
|
-
className: "grid grid-cols-2",
|
|
17
|
-
children: [/* @__PURE__ */ p(r, {
|
|
18
|
-
alignTerms: "right",
|
|
19
|
-
children: a.map(({ label: e, value: r }) => /* @__PURE__ */ m(h, { children: [/* @__PURE__ */ p(n, { children: e }), /* @__PURE__ */ p(t, { children: r })] }, e))
|
|
20
|
-
}), /* @__PURE__ */ p(r, {
|
|
21
|
-
alignTerms: "right",
|
|
22
|
-
children: o.map(({ label: e, value: r }) => /* @__PURE__ */ m(h, { children: [/* @__PURE__ */ p(n, { children: e }), /* @__PURE__ */ p(t, { children: r })] }, e))
|
|
23
|
-
})]
|
|
24
|
-
});
|
|
25
|
-
}, x = ({ floatingIp: t }) => {
|
|
26
|
-
let { i18n: n, _: r } = v(), i = [
|
|
27
|
-
{
|
|
28
|
-
label: n._({ id: "S0kLOH" }),
|
|
29
|
-
value: t.id
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
label: n._({ id: "Nu4oKW" }),
|
|
33
|
-
value: t.description || "—"
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
label: n._({ id: "mSfwLL" }),
|
|
37
|
-
value: t.project_id || "—"
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
label: n._({ id: "uAQUqI" }),
|
|
41
|
-
value: y(t.status)
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
label: n._({ id: "88kg0+" }),
|
|
45
|
-
value: t.created_at ? new Date(t.created_at).toLocaleString() : "—"
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
label: n._({ id: "Llcakz" }),
|
|
49
|
-
value: t.updated_at ? new Date(t.updated_at).toLocaleString() : "—"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
label: n._({ id: "OYHzN1" }),
|
|
53
|
-
value: t.tags?.join(", ") || "—"
|
|
54
|
-
}
|
|
55
|
-
], c = [
|
|
56
|
-
{
|
|
57
|
-
label: n._({ id: "xNG/3n" }),
|
|
58
|
-
value: t.floating_ip_address || "—"
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
label: n._({ id: "7AfIPZ" }),
|
|
62
|
-
value: t.floating_network_id || "—"
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
label: n._({ id: "Nc7QKU" }),
|
|
66
|
-
value: t.fixed_ip_address || "—"
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
label: n._({ id: "6sxz+g" }),
|
|
70
|
-
value: t.port_details?.name || "—"
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
label: n._({ id: "sNVNmf" }),
|
|
74
|
-
value: t.port_details?.mac_address || "—"
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
label: n._({ id: "hrBow7" }),
|
|
78
|
-
value: t.port_details?.network_id || "—"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
label: n._({ id: "OaSktR" }),
|
|
82
|
-
value: t.port_details?.device_owner || "—"
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
label: n._({ id: "9rz81C" }),
|
|
86
|
-
value: t.port_details?.device_id || "—"
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
label: n._({ id: "/bUiYk" }),
|
|
90
|
-
value: t.router_id || "—"
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
label: n._({ id: "eks7oA" }),
|
|
94
|
-
value: t.port_id || "—"
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
label: n._({ id: "W9kfjU" }),
|
|
98
|
-
value: t.qos_policy_id || "—"
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
label: n._({ id: "mQSO1Y" }),
|
|
102
|
-
value: t.port_forwardings?.map((e) => e.id).join(", ") || "—"
|
|
103
|
-
}
|
|
104
|
-
], l = [{
|
|
105
|
-
label: n._({ id: "WlpcJv" }),
|
|
106
|
-
value: t.dns_domain || "—"
|
|
107
|
-
}, {
|
|
108
|
-
label: n._({ id: "eGEHJE" }),
|
|
109
|
-
value: t.dns_name || "—"
|
|
110
|
-
}];
|
|
111
|
-
return /* @__PURE__ */ m(f, { children: [
|
|
112
|
-
/* @__PURE__ */ p("p", {
|
|
113
|
-
className: "text-theme-secondary mt-2 text-sm",
|
|
114
|
-
children: /* @__PURE__ */ p(_, { id: "DNVql8" })
|
|
115
|
-
}),
|
|
116
|
-
/* @__PURE__ */ p(d, {
|
|
117
|
-
floatingIp: t,
|
|
118
|
-
children: ({ toggleEditModal: e, toggleAttachModal: t, toggleDetachModal: r, toggleReleaseModal: i }) => /* @__PURE__ */ m(o, { children: [
|
|
119
|
-
/* @__PURE__ */ p(a, {
|
|
120
|
-
onClick: e,
|
|
121
|
-
children: n._({ id: "n22YIM" })
|
|
122
|
-
}),
|
|
123
|
-
/* @__PURE__ */ p(a, {
|
|
124
|
-
onClick: t,
|
|
125
|
-
children: n._({ id: "igVDFt" })
|
|
126
|
-
}),
|
|
127
|
-
/* @__PURE__ */ p(a, {
|
|
128
|
-
onClick: r,
|
|
129
|
-
children: n._({ id: "FOcBn3" })
|
|
130
|
-
}),
|
|
131
|
-
/* @__PURE__ */ p(a, {
|
|
132
|
-
onClick: i,
|
|
133
|
-
children: n._({ id: "H+a5j6" })
|
|
134
|
-
})
|
|
135
|
-
] })
|
|
136
|
-
}),
|
|
137
|
-
/* @__PURE__ */ m(s, {
|
|
138
|
-
direction: "vertical",
|
|
139
|
-
gap: "6",
|
|
140
|
-
className: "my-6",
|
|
141
|
-
children: [
|
|
142
|
-
/* @__PURE__ */ m(s, {
|
|
143
|
-
direction: "vertical",
|
|
144
|
-
gap: "2",
|
|
145
|
-
children: [/* @__PURE__ */ p(e, { children: /* @__PURE__ */ p(_, { id: "SuX2Ca" }) }), /* @__PURE__ */ p(b, { items: i })]
|
|
146
|
-
}),
|
|
147
|
-
/* @__PURE__ */ m(s, {
|
|
148
|
-
direction: "vertical",
|
|
149
|
-
gap: "2",
|
|
150
|
-
children: [/* @__PURE__ */ p(e, { children: /* @__PURE__ */ p(_, { id: "jKopCP" }) }), /* @__PURE__ */ p(b, { items: c })]
|
|
151
|
-
}),
|
|
152
|
-
/* @__PURE__ */ m(s, {
|
|
153
|
-
direction: "vertical",
|
|
154
|
-
gap: "2",
|
|
155
|
-
children: [/* @__PURE__ */ p(e, { children: /* @__PURE__ */ p(_, { id: "5M4Te3" }) }), /* @__PURE__ */ p(b, { items: l })]
|
|
156
|
-
})
|
|
157
|
-
]
|
|
158
|
-
})
|
|
159
|
-
] });
|
|
160
|
-
};
|
|
161
|
-
//#endregion
|
|
162
|
-
//#region src/client/routes/_auth/projects/$projectId/network/floatingips/$floatingIpId/index.tsx?tsr-split=component
|
|
163
|
-
function S() {
|
|
164
|
-
let { floatingIpId: t } = l.useParams(), n = u(), r = g(), { data: o, isLoading: d, isError: h, error: v } = c.network.floatingIp.getById.useQuery({
|
|
165
|
-
project_id: n,
|
|
166
|
-
floatingip_id: t
|
|
167
|
-
}), y = () => {
|
|
168
|
-
r({
|
|
169
|
-
to: "/projects/$projectId/network/floatingips",
|
|
170
|
-
params: { projectId: n }
|
|
171
|
-
});
|
|
172
|
-
};
|
|
173
|
-
if (d) return /* @__PURE__ */ m(s, {
|
|
174
|
-
className: "fixed inset-0",
|
|
175
|
-
distribution: "center",
|
|
176
|
-
alignment: "center",
|
|
177
|
-
direction: "vertical",
|
|
178
|
-
children: [/* @__PURE__ */ p(i, {
|
|
179
|
-
variant: "primary",
|
|
180
|
-
size: "large",
|
|
181
|
-
className: "mb-2"
|
|
182
|
-
}), /* @__PURE__ */ p(_, { id: "VLI9eO" })]
|
|
183
|
-
});
|
|
184
|
-
if (h) {
|
|
185
|
-
let e = v?.message || "Unknown error";
|
|
186
|
-
return /* @__PURE__ */ m(s, {
|
|
187
|
-
className: "fixed inset-0",
|
|
188
|
-
distribution: "center",
|
|
189
|
-
alignment: "center",
|
|
190
|
-
direction: "vertical",
|
|
191
|
-
gap: "5",
|
|
192
|
-
children: [
|
|
193
|
-
/* @__PURE__ */ p("p", {
|
|
194
|
-
className: "text-theme-error font-semibold",
|
|
195
|
-
children: /* @__PURE__ */ p(_, { id: "Smk7M2" })
|
|
196
|
-
}),
|
|
197
|
-
/* @__PURE__ */ p("p", {
|
|
198
|
-
className: "text-theme-highest",
|
|
199
|
-
children: e
|
|
200
|
-
}),
|
|
201
|
-
/* @__PURE__ */ p(a, {
|
|
202
|
-
onClick: y,
|
|
203
|
-
variant: "primary",
|
|
204
|
-
children: /* @__PURE__ */ p(_, { id: "z1JceR" })
|
|
205
|
-
})
|
|
206
|
-
]
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
return o ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(e, { children: o.floating_ip_address }), /* @__PURE__ */ p(x, { floatingIp: o })] }) : /* @__PURE__ */ m(s, {
|
|
210
|
-
className: "fixed inset-0",
|
|
211
|
-
distribution: "center",
|
|
212
|
-
alignment: "center",
|
|
213
|
-
direction: "vertical",
|
|
214
|
-
gap: "5",
|
|
215
|
-
children: [/* @__PURE__ */ p("p", {
|
|
216
|
-
className: "text-theme-secondary",
|
|
217
|
-
children: /* @__PURE__ */ p(_, { id: "ChOuUj" })
|
|
218
|
-
}), /* @__PURE__ */ p(a, {
|
|
219
|
-
onClick: y,
|
|
220
|
-
variant: "primary",
|
|
221
|
-
children: /* @__PURE__ */ p(_, { id: "z1JceR" })
|
|
222
|
-
})]
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
//#endregion
|
|
226
|
-
export { S as component };
|
|
227
|
-
|
|
228
|
-
//# sourceMappingURL=_floatingIpId-DdKnjdIV.mjs.map
|