@burdenoff/microfe-devportal 2026.1113.1 → 2026.1113.3
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/devportal/DevportalRoot.js +65 -119
- package/dist/devportal/DevportalRoot.js.map +1 -1
- package/dist/devportal/components/AppCard.js +4 -4
- package/dist/devportal/components/DeveloperSettingsHub.d.ts +6 -0
- package/dist/devportal/components/DeveloperSettingsHub.js +59 -0
- package/dist/devportal/components/DeveloperSettingsHub.js.map +1 -0
- package/dist/devportal/components/SectionNav.d.ts +1 -1
- package/dist/devportal/components/SectionNav.js +60 -36
- package/dist/devportal/components/SectionNav.js.map +1 -1
- package/dist/devportal/pages/AnalyticsDashboardPage.js +186 -179
- package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
- package/dist/devportal/pages/ApiKeysPage.js +113 -111
- package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
- package/dist/devportal/pages/AppLogsPage.js +80 -84
- package/dist/devportal/pages/AppLogsPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationDetailPage.js +529 -504
- package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationsPage.js +68 -67
- package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApiKeyPage.js +163 -166
- package/dist/devportal/pages/CreateApiKeyPage.js.map +1 -1
- package/dist/devportal/pages/CreateOAuthClientPage.js +134 -130
- package/dist/devportal/pages/CreateOAuthClientPage.js.map +1 -1
- package/dist/devportal/pages/DelegationsPage.js +11 -11
- package/dist/devportal/pages/DocumentationPage.js +100 -94
- package/dist/devportal/pages/DocumentationPage.js.map +1 -1
- package/dist/devportal/pages/EditApplicationPage.js +379 -377
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/InvitationDecisionPage.js +83 -79
- package/dist/devportal/pages/InvitationDecisionPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientDetailPage.js +76 -76
- package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientsPage.js +126 -124
- package/dist/devportal/pages/OAuthClientsPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationDetailPage.js +19 -19
- package/dist/devportal/pages/OrganizationMembersPage.js +223 -204
- package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
- package/dist/devportal/pages/ResourcesPage.d.ts +6 -0
- package/dist/devportal/pages/ResourcesPage.js +171 -155
- package/dist/devportal/pages/ResourcesPage.js.map +1 -1
- package/dist/devportal/pages/SellerDashboardPage.js +13 -13
- package/dist/devportal/pages/SellerItemsPage.js +4 -4
- package/dist/devportal/pages/SettingsPage.js +330 -315
- package/dist/devportal/pages/SettingsPage.js.map +1 -1
- package/dist/devportal/pages/SetupPage.js +5 -5
- package/dist/devportal/pages/WebhookDetailPage.js +6 -6
- package/dist/devportal/pages/WebhooksPage.js +39 -39
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- package/dist/devportal/utils/appDetailTabs.d.ts +73 -0
- package/dist/devportal/utils/appDetailTabs.js +62 -0
- package/dist/devportal/utils/appDetailTabs.js.map +1 -0
- package/dist/devportal/utils/developerNav.d.ts +39 -0
- package/dist/devportal/utils/developerNav.js +304 -0
- package/dist/devportal/utils/developerNav.js.map +1 -0
- package/package.json +2 -2
|
@@ -3,292 +3,292 @@ import { DataTable as n } from "../components/DataTable.js";
|
|
|
3
3
|
import { StatusBadge as r } from "../components/StatusBadge.js";
|
|
4
4
|
import { useCancelInvitationMutation as ee, useGetOrganizationInvitationsQuery as te, useGetOrganizationMembersQuery as ne, useGetOrganizationQuery as re, useInviteMemberMutation as ie, useReactivateMemberMutation as ae, useRemoveMemberMutation as oe, useResendInvitationMutation as se, useSuspendMemberMutation as ce, useTransferOwnershipMutation as le, useUpdateMemberRoleMutation as ue } from "../../generated/global-operations.js";
|
|
5
5
|
import { ConfirmDialog as i } from "../components/ConfirmDialog.js";
|
|
6
|
-
import { EmptyState as
|
|
7
|
-
import { InputField as
|
|
8
|
-
import { SelectionCheckbox as
|
|
9
|
-
import { useDevportal as he } from "../providers/DevportalProvider.js";
|
|
10
|
-
import { orgSectionPath as
|
|
6
|
+
import { EmptyState as a } from "../components/EmptyState.js";
|
|
7
|
+
import { InputField as de, SelectField as fe, TextareaField as pe } from "../components/FormField.js";
|
|
8
|
+
import { SelectionCheckbox as o } from "../components/SelectionCheckbox.js";
|
|
9
|
+
import { useDevportal as me, useIsFluidgridsVariant as he } from "../providers/DevportalProvider.js";
|
|
10
|
+
import { orgSectionPath as s, useIsSellerSection as ge } from "../hooks/useIsSellerSection.js";
|
|
11
11
|
import "../components/index.js";
|
|
12
12
|
import { PermissionGuard as _e } from "../components/PermissionGuard.js";
|
|
13
|
-
import { DEVPORTAL_PERMISSIONS as
|
|
14
|
-
import { useDevportalPermission as
|
|
15
|
-
import { ORG_ROLE_LABELS as
|
|
13
|
+
import { DEVPORTAL_PERMISSIONS as c } from "../constants/permissions.js";
|
|
14
|
+
import { useDevportalPermission as l } from "../hooks/usePermission.js";
|
|
15
|
+
import { ORG_ROLE_LABELS as u } from "../utils/constants.js";
|
|
16
16
|
import ve from "../../node_modules/date-fns/format.js";
|
|
17
17
|
import "../hooks/index.js";
|
|
18
|
-
import { useEffect as ye, useMemo as
|
|
19
|
-
import { AlertCircle as
|
|
18
|
+
import { useEffect as ye, useMemo as d, useState as f } from "react";
|
|
19
|
+
import { AlertCircle as p, Loader2 as be, Mail as xe, Plus as Se, RefreshCw as Ce, Shield as we, UserMinus as Te } from "lucide-react";
|
|
20
20
|
import { useParams as Ee } from "react-router";
|
|
21
|
-
import { jsx as
|
|
21
|
+
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
22
22
|
import { useI18n as De } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
23
23
|
// src/devportal/pages/OrganizationMembersPage.tsx
|
|
24
|
-
var
|
|
24
|
+
var Oe = {
|
|
25
25
|
VIEWER: 0,
|
|
26
26
|
DEVELOPER: 1,
|
|
27
27
|
ADMIN: 2,
|
|
28
28
|
OWNER: 3
|
|
29
29
|
}, g = () => {
|
|
30
|
-
let { orgId: g } = Ee(), { currentUser: _ } =
|
|
31
|
-
let n =
|
|
30
|
+
let { orgId: g } = Ee(), { currentUser: _ } = me(), v = ge(), { allowed: ke } = l(c.ORG_INVITATION_CREATE), { allowed: Ae } = l(c.ORG_MEMBER_UPDATE), { allowed: je } = l(c.ORG_MEMBER_DELETE), { allowed: Me } = l(c.ORG_MEMBER_ACTIVATE), { allowed: Ne } = l(c.ORG_MEMBER_DEACTIVATE), y = (e) => e.email ? e.email : _?.id === e.userId && _.email ? _.email : e.userId, { t: Pe } = De(), b = (e, t) => {
|
|
31
|
+
let n = Pe(e);
|
|
32
32
|
return n === e ? t : n;
|
|
33
|
-
}, [
|
|
33
|
+
}, [Fe, x] = f(!1), [S, Ie] = f(""), [Le, Re] = f("DEVELOPER"), [ze, Be] = f(""), [C, w] = f(null), [Ve, T] = f(null), [E, D] = f(/* @__PURE__ */ new Set()), [O, k] = f(/* @__PURE__ */ new Set()), [He, A] = f(!1), [Ue, j] = f(!1), We = he(), [M, N] = f(null), [P, F] = f(null), { data: Ge } = re({
|
|
34
34
|
variables: { id: g ?? "" },
|
|
35
35
|
skip: !g,
|
|
36
36
|
fetchPolicy: "cache-first"
|
|
37
37
|
});
|
|
38
38
|
ye(() => {
|
|
39
|
-
let e =
|
|
39
|
+
let e = Ge?.developerOrganization?.name;
|
|
40
40
|
if (!g || !e) return;
|
|
41
41
|
let t = window.__breadcrumbRegistry;
|
|
42
42
|
return t?.register(g, e), () => t?.unregister(g);
|
|
43
|
-
}, [g,
|
|
44
|
-
let { data: I, loading:
|
|
43
|
+
}, [g, Ge?.developerOrganization?.name]);
|
|
44
|
+
let { data: I, loading: Ke, error: qe } = ne({
|
|
45
45
|
variables: { organizationId: g },
|
|
46
46
|
skip: !g,
|
|
47
47
|
fetchPolicy: "cache-and-network"
|
|
48
|
-
}), [
|
|
48
|
+
}), [Je, { loading: Ye }] = ie({ refetchQueries: ["GetOrganizationInvitations"] }), [Xe] = oe({ refetchQueries: ["GetOrganizationMembers"] }), [Ze] = ce({ refetchQueries: ["GetOrganizationMembers"] }), [L] = ae({ refetchQueries: ["GetOrganizationMembers"] }), [Qe] = ue({ refetchQueries: ["GetOrganizationMembers", "GetOrganization"] }), [$e] = le({ refetchQueries: ["GetOrganizationMembers", "GetOrganization"] }), [et] = ee({ refetchQueries: ["GetOrganizationInvitations"] }), [tt] = se(), R = d(() => I?.developerOrgMembers?.edges?.map((e) => e.node) ?? [], [I?.developerOrgMembers?.edges]), z = (_ ? R.find((e) => e.userId === _.id) : void 0)?.role, B = z !== void 0 && Oe[z] >= Oe.ADMIN, V = B && ke, H = B && Ae, U = B && je, W = B && Me, G = B && Ne, { data: K, loading: nt, error: rt } = te({
|
|
49
49
|
variables: {
|
|
50
50
|
organizationId: g,
|
|
51
51
|
status: "PENDING"
|
|
52
52
|
},
|
|
53
53
|
skip: !g || !B,
|
|
54
54
|
fetchPolicy: "cache-and-network"
|
|
55
|
-
}), q =
|
|
55
|
+
}), q = d(() => K?.developerOrgInvitations?.edges?.map((e) => e.node) ?? [], [K?.developerOrgInvitations?.edges]), it = I?.developerOrgMembers?.totalCount ?? 0, at = K?.developerOrgInvitations?.totalCount ?? 0, J = d(() => R.filter((e) => E.has(e.id)), [R, E]), Y = d(() => q.filter((e) => O.has(e.id)), [q, O]), X = R.filter((e) => e.role !== "OWNER"), ot = X.length > 0 && X.every((e) => E.has(e.id)), st = X.some((e) => E.has(e.id)) && !ot, ct = q.length > 0 && q.every((e) => O.has(e.id)), lt = q.some((e) => O.has(e.id)) && !ct, Z = J.filter((e) => e.role !== "OWNER" && !e.isSuspended), Q = J.filter((e) => e.isSuspended), $ = J.filter((e) => e.role !== "OWNER"), ut = async () => {
|
|
56
56
|
if (g && S.trim()) {
|
|
57
|
-
|
|
57
|
+
w(null);
|
|
58
58
|
try {
|
|
59
|
-
await
|
|
59
|
+
await Je({ variables: {
|
|
60
60
|
organizationId: g,
|
|
61
61
|
input: {
|
|
62
62
|
email: S,
|
|
63
|
-
role:
|
|
64
|
-
message:
|
|
63
|
+
role: Le,
|
|
64
|
+
message: ze || void 0
|
|
65
65
|
}
|
|
66
|
-
} }), x(!1),
|
|
66
|
+
} }), x(!1), Ie(""), Re("DEVELOPER"), Be(""), T(b("devportal.invitationSent", "Invitation created and email sent to the team member."));
|
|
67
67
|
} catch (e) {
|
|
68
|
-
|
|
68
|
+
w(e instanceof Error ? e.message : b("devportal.failedToSendInvitation", "Failed to send invitation"));
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
},
|
|
72
|
-
|
|
71
|
+
}, dt = async (e) => {
|
|
72
|
+
w(null);
|
|
73
73
|
try {
|
|
74
|
-
await
|
|
74
|
+
await Xe({ variables: { id: e } });
|
|
75
75
|
} catch (e) {
|
|
76
|
-
|
|
76
|
+
w(e instanceof Error ? e.message : b("devportal.failedToRemoveMember", "Failed to remove member"));
|
|
77
77
|
}
|
|
78
|
-
},
|
|
79
|
-
|
|
78
|
+
}, ft = async (e, t) => {
|
|
79
|
+
w(null);
|
|
80
80
|
try {
|
|
81
|
-
await
|
|
81
|
+
await Ze({ variables: {
|
|
82
82
|
id: e,
|
|
83
83
|
reason: t || void 0
|
|
84
84
|
} });
|
|
85
85
|
} catch (e) {
|
|
86
|
-
|
|
86
|
+
w(e instanceof Error ? e.message : b("devportal.failedToSuspendMember", "Failed to suspend member"));
|
|
87
87
|
}
|
|
88
|
-
},
|
|
89
|
-
|
|
88
|
+
}, pt = async (e) => {
|
|
89
|
+
w(null);
|
|
90
90
|
try {
|
|
91
|
-
await
|
|
91
|
+
await L({ variables: { id: e } });
|
|
92
92
|
} catch (e) {
|
|
93
|
-
|
|
93
|
+
w(e instanceof Error ? e.message : b("devportal.failedToReactivateMember", "Failed to reactivate member"));
|
|
94
94
|
}
|
|
95
|
-
},
|
|
96
|
-
|
|
95
|
+
}, mt = async (e, t) => {
|
|
96
|
+
w(null);
|
|
97
97
|
try {
|
|
98
|
-
await
|
|
98
|
+
await Qe({ variables: {
|
|
99
99
|
id: e,
|
|
100
100
|
role: t,
|
|
101
101
|
permissions: void 0
|
|
102
|
-
} }),
|
|
102
|
+
} }), T(b("devportal.memberRoleUpdated", "Member role updated successfully"));
|
|
103
103
|
} catch (e) {
|
|
104
|
-
|
|
104
|
+
w(e instanceof Error ? e.message : b("devportal.failedToUpdateMemberRole", "Failed to update member role"));
|
|
105
105
|
}
|
|
106
|
-
},
|
|
106
|
+
}, ht = async () => {
|
|
107
107
|
let e = P;
|
|
108
108
|
if (g && e) {
|
|
109
|
-
|
|
109
|
+
w(null);
|
|
110
110
|
try {
|
|
111
|
-
await
|
|
111
|
+
await $e({ variables: {
|
|
112
112
|
organizationId: g,
|
|
113
113
|
newOwnerId: e.userId
|
|
114
|
-
} }), F(null),
|
|
114
|
+
} }), F(null), T(b("devportal.organizationOwnershipTransferred", "Organization ownership transferred successfully"));
|
|
115
115
|
} catch (e) {
|
|
116
|
-
|
|
116
|
+
w(e instanceof Error ? e.message : b("devportal.failedToTransferOwnership", "Failed to transfer organization ownership"));
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
-
},
|
|
120
|
-
|
|
119
|
+
}, gt = async (e) => {
|
|
120
|
+
w(null);
|
|
121
121
|
try {
|
|
122
|
-
await
|
|
122
|
+
await et({ variables: { id: e } });
|
|
123
123
|
} catch (e) {
|
|
124
|
-
|
|
124
|
+
w(e instanceof Error ? e.message : b("devportal.failedToCancelInvitation", "Failed to cancel invitation"));
|
|
125
125
|
}
|
|
126
|
-
},
|
|
127
|
-
|
|
126
|
+
}, _t = async (e) => {
|
|
127
|
+
w(null);
|
|
128
128
|
try {
|
|
129
|
-
await
|
|
129
|
+
await tt({ variables: { id: e } });
|
|
130
130
|
} catch (e) {
|
|
131
|
-
|
|
131
|
+
w(e instanceof Error ? e.message : b("devportal.failedToResendInvitation", "Failed to resend invitation"));
|
|
132
132
|
}
|
|
133
|
-
},
|
|
134
|
-
|
|
135
|
-
},
|
|
136
|
-
|
|
133
|
+
}, vt = () => {
|
|
134
|
+
D(/* @__PURE__ */ new Set()), k(/* @__PURE__ */ new Set());
|
|
135
|
+
}, yt = (e, t) => {
|
|
136
|
+
D((n) => {
|
|
137
137
|
let r = new Set(n);
|
|
138
138
|
return t ? r.add(e) : r.delete(e), r;
|
|
139
139
|
});
|
|
140
|
-
},
|
|
141
|
-
|
|
140
|
+
}, bt = (e) => {
|
|
141
|
+
D((t) => {
|
|
142
142
|
let n = new Set(t);
|
|
143
143
|
return X.forEach((t) => {
|
|
144
144
|
e ? n.add(t.id) : n.delete(t.id);
|
|
145
145
|
}), n;
|
|
146
146
|
});
|
|
147
|
-
},
|
|
148
|
-
|
|
147
|
+
}, xt = (e, t) => {
|
|
148
|
+
k((n) => {
|
|
149
149
|
let r = new Set(n);
|
|
150
150
|
return t ? r.add(e) : r.delete(e), r;
|
|
151
151
|
});
|
|
152
|
-
},
|
|
153
|
-
|
|
152
|
+
}, St = (e) => {
|
|
153
|
+
k((t) => {
|
|
154
154
|
let n = new Set(t);
|
|
155
155
|
return q.forEach((t) => {
|
|
156
156
|
e ? n.add(t.id) : n.delete(t.id);
|
|
157
157
|
}), n;
|
|
158
158
|
});
|
|
159
|
-
},
|
|
159
|
+
}, Ct = async () => {
|
|
160
160
|
if (Z.length === 0) return;
|
|
161
|
-
|
|
162
|
-
let e = await Promise.allSettled(Z.map((e) =>
|
|
161
|
+
w(null);
|
|
162
|
+
let e = await Promise.allSettled(Z.map((e) => Ze({ variables: {
|
|
163
163
|
id: e.id,
|
|
164
164
|
reason: void 0
|
|
165
165
|
} }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
|
|
166
|
-
|
|
167
|
-
},
|
|
166
|
+
T(`${b("devportal.suspended", "Suspended")} ${t} ${t === 1 ? b("devportal.memberLower", "member") : b("devportal.membersLower", "members")}${n > 0 ? ` • ${n} ${b("devportal.failed", "failed")}` : ""}`), D(/* @__PURE__ */ new Set());
|
|
167
|
+
}, wt = async () => {
|
|
168
168
|
if (Q.length === 0) return;
|
|
169
|
-
|
|
170
|
-
let e = await Promise.allSettled(Q.map((e) =>
|
|
171
|
-
|
|
172
|
-
},
|
|
169
|
+
w(null);
|
|
170
|
+
let e = await Promise.allSettled(Q.map((e) => L({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
|
|
171
|
+
T(`${b("devportal.reactivated", "Reactivated")} ${t} ${t === 1 ? b("devportal.memberLower", "member") : b("devportal.membersLower", "members")}${n > 0 ? ` • ${n} ${b("devportal.failed", "failed")}` : ""}`), D(/* @__PURE__ */ new Set());
|
|
172
|
+
}, Tt = async () => {
|
|
173
173
|
if ($.length === 0) return;
|
|
174
|
-
|
|
175
|
-
let e = await Promise.allSettled($.map((e) =>
|
|
176
|
-
|
|
177
|
-
},
|
|
174
|
+
w(null);
|
|
175
|
+
let e = await Promise.allSettled($.map((e) => Xe({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
|
|
176
|
+
T(`${b("devportal.removed", "Removed")} ${t} ${t === 1 ? b("devportal.memberLower", "member") : b("devportal.membersLower", "members")}${n > 0 ? ` • ${n} ${b("devportal.failed", "failed")}` : ""}`), A(!1), D(/* @__PURE__ */ new Set());
|
|
177
|
+
}, Et = async () => {
|
|
178
178
|
if (Y.length === 0) return;
|
|
179
|
-
|
|
180
|
-
let e = await Promise.allSettled(Y.map((e) =>
|
|
181
|
-
|
|
182
|
-
},
|
|
179
|
+
w(null);
|
|
180
|
+
let e = await Promise.allSettled(Y.map((e) => tt({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
|
|
181
|
+
T(`${b("devportal.resent", "Resent")} ${t} ${t === 1 ? b("devportal.invitationLower", "invitation") : b("devportal.invitationsLower", "invitations")}${n > 0 ? ` • ${n} ${b("devportal.failed", "failed")}` : ""}`), k(/* @__PURE__ */ new Set());
|
|
182
|
+
}, Dt = async () => {
|
|
183
183
|
if (Y.length === 0) return;
|
|
184
|
-
|
|
185
|
-
let e = await Promise.allSettled(Y.map((e) =>
|
|
186
|
-
|
|
184
|
+
w(null);
|
|
185
|
+
let e = await Promise.allSettled(Y.map((e) => et({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
|
|
186
|
+
T(`${b("devportal.cancelled", "Cancelled")} ${t} ${t === 1 ? b("devportal.invitationLower", "invitation") : b("devportal.invitationsLower", "invitations")}${n > 0 ? ` • ${n} ${b("devportal.failed", "failed")}` : ""}`), j(!1), k(/* @__PURE__ */ new Set());
|
|
187
187
|
};
|
|
188
|
-
return (
|
|
188
|
+
return (Ke || nt) && !I && !K ? /* @__PURE__ */ m(e, {
|
|
189
189
|
title: b("devportal.teamMembers", "Team Members"),
|
|
190
190
|
description: b("devportal.manageYourOrganizationsTeam", "Manage your organization's team"),
|
|
191
|
-
backLink:
|
|
191
|
+
backLink: s(v, g),
|
|
192
192
|
backLabel: b("devportal.backToOrganization", "Back to Organization"),
|
|
193
|
-
children: /* @__PURE__ */
|
|
193
|
+
children: /* @__PURE__ */ m("div", {
|
|
194
194
|
className: "flex items-center justify-center py-16",
|
|
195
|
-
children: /* @__PURE__ */
|
|
195
|
+
children: /* @__PURE__ */ m(be, { className: "h-8 w-8 animate-spin text-text-secondary" })
|
|
196
196
|
})
|
|
197
|
-
}) : (
|
|
197
|
+
}) : (qe || rt) && !I && !K ? /* @__PURE__ */ m(e, {
|
|
198
198
|
title: b("devportal.teamMembers", "Team Members"),
|
|
199
199
|
description: b("devportal.manageYourOrganizationsTeam", "Manage your organization's team"),
|
|
200
|
-
backLink:
|
|
200
|
+
backLink: s(v, g),
|
|
201
201
|
backLabel: b("devportal.backToOrganization", "Back to Organization"),
|
|
202
|
-
children: /* @__PURE__ */
|
|
203
|
-
icon: /* @__PURE__ */ p
|
|
202
|
+
children: /* @__PURE__ */ m(a, {
|
|
203
|
+
icon: /* @__PURE__ */ m(p, {
|
|
204
204
|
size: 32,
|
|
205
205
|
className: "text-status-error-text"
|
|
206
206
|
}),
|
|
207
207
|
title: b("devportal.failedToLoadMembers", "Failed to load members"),
|
|
208
|
-
description:
|
|
208
|
+
description: qe?.message || rt?.message || b("devportal.anErrorOccurredWhileLoadingTeamData", "An error occurred while loading team data")
|
|
209
209
|
})
|
|
210
|
-
}) : /* @__PURE__ */
|
|
210
|
+
}) : /* @__PURE__ */ m(_e, {
|
|
211
211
|
authOnly: !0,
|
|
212
|
-
children: /* @__PURE__ */
|
|
212
|
+
children: /* @__PURE__ */ h(e, {
|
|
213
213
|
title: b("devportal.teamMembers", "Team Members"),
|
|
214
214
|
description: b("devportal.manageYourOrganizationsTeam", "Manage your organization's team"),
|
|
215
215
|
purpose: b("devportal.teamMembersPurpose", "Control who can work on this organization's apps and what they can do. Invite teammates by email, assign roles to grant the right level of access, and suspend or remove anyone who should no longer have it."),
|
|
216
|
-
backLink:
|
|
216
|
+
backLink: s(v, g),
|
|
217
217
|
backLabel: b("devportal.backToOrganization", "Back to Organization"),
|
|
218
|
-
actions: V ? /* @__PURE__ */
|
|
218
|
+
actions: V ? /* @__PURE__ */ h("button", {
|
|
219
219
|
onClick: () => x(!0),
|
|
220
220
|
disabled: !V,
|
|
221
221
|
"aria-disabled": !V,
|
|
222
222
|
className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-50",
|
|
223
|
-
children: [/* @__PURE__ */
|
|
223
|
+
children: [/* @__PURE__ */ m(Se, { size: 16 }), b("devportal.inviteMember", "Invite Member")]
|
|
224
224
|
}) : void 0,
|
|
225
225
|
children: [
|
|
226
|
-
|
|
226
|
+
C && /* @__PURE__ */ h("div", {
|
|
227
227
|
className: "rounded-lg border border-border-subtle bg-status-error-bg-subtle p-3 flex items-center gap-2 text-sm text-status-error-text",
|
|
228
228
|
children: [
|
|
229
|
-
/* @__PURE__ */ p
|
|
229
|
+
/* @__PURE__ */ m(p, {
|
|
230
230
|
size: 16,
|
|
231
231
|
className: "flex-shrink-0"
|
|
232
232
|
}),
|
|
233
|
-
|
|
234
|
-
/* @__PURE__ */
|
|
235
|
-
onClick: () =>
|
|
233
|
+
C,
|
|
234
|
+
/* @__PURE__ */ m("button", {
|
|
235
|
+
onClick: () => w(null),
|
|
236
236
|
className: "ml-auto text-status-error-text hover:text-status-error-text",
|
|
237
237
|
children: b("devportal.dismiss", "Dismiss")
|
|
238
238
|
})
|
|
239
239
|
]
|
|
240
240
|
}),
|
|
241
|
-
|
|
241
|
+
Ve && /* @__PURE__ */ h("div", {
|
|
242
242
|
className: "rounded-lg border border-border-subtle bg-status-success-bg-subtle p-3 flex items-center gap-2 text-sm text-status-success-text",
|
|
243
243
|
children: [
|
|
244
|
-
/* @__PURE__ */ p
|
|
244
|
+
/* @__PURE__ */ m(p, {
|
|
245
245
|
size: 16,
|
|
246
246
|
className: "flex-shrink-0"
|
|
247
247
|
}),
|
|
248
|
-
|
|
249
|
-
/* @__PURE__ */
|
|
250
|
-
onClick: () =>
|
|
248
|
+
Ve,
|
|
249
|
+
/* @__PURE__ */ m("button", {
|
|
250
|
+
onClick: () => T(null),
|
|
251
251
|
className: "ml-auto text-status-success-text hover:text-status-success-text",
|
|
252
252
|
children: b("devportal.dismiss", "Dismiss")
|
|
253
253
|
})
|
|
254
254
|
]
|
|
255
255
|
}),
|
|
256
|
-
(
|
|
256
|
+
(E.size > 0 || O.size > 0) && /* @__PURE__ */ h("div", {
|
|
257
257
|
className: "flex flex-wrap items-center gap-3 rounded-card border border-border-seam bg-bg-surface p-4",
|
|
258
|
-
children: [/* @__PURE__ */
|
|
258
|
+
children: [/* @__PURE__ */ h("span", {
|
|
259
259
|
className: "rounded-full bg-bg-sunken px-3 py-1 text-sm font-medium text-text-secondary",
|
|
260
260
|
children: [
|
|
261
|
-
|
|
261
|
+
E.size + O.size,
|
|
262
262
|
" ",
|
|
263
263
|
b("devportal.selected", "selected")
|
|
264
264
|
]
|
|
265
|
-
}), /* @__PURE__ */
|
|
266
|
-
onClick:
|
|
265
|
+
}), /* @__PURE__ */ m("button", {
|
|
266
|
+
onClick: vt,
|
|
267
267
|
className: "text-sm text-text-secondary hover:text-text-primary",
|
|
268
268
|
children: b("devportal.clearAllSelections", "Clear all selections")
|
|
269
269
|
})]
|
|
270
270
|
}),
|
|
271
|
-
/* @__PURE__ */
|
|
272
|
-
title: `${b("devportal.members", "Members")} (${
|
|
273
|
-
actions: R.length > 0 && B ? /* @__PURE__ */
|
|
271
|
+
/* @__PURE__ */ m(t, {
|
|
272
|
+
title: `${b("devportal.members", "Members")} (${it})`,
|
|
273
|
+
actions: R.length > 0 && B ? /* @__PURE__ */ h("div", {
|
|
274
274
|
className: "flex flex-wrap items-center gap-2",
|
|
275
275
|
children: [
|
|
276
|
-
/* @__PURE__ */
|
|
277
|
-
onClick:
|
|
276
|
+
/* @__PURE__ */ h("button", {
|
|
277
|
+
onClick: Ct,
|
|
278
278
|
disabled: Z.length === 0 || !G,
|
|
279
279
|
"aria-disabled": !G,
|
|
280
280
|
className: "rounded-md border border-status-warning-bg px-3 py-2 text-sm font-medium text-status-warning-text hover:bg-status-warning-bg-subtle disabled:cursor-not-allowed disabled:opacity-50",
|
|
281
281
|
children: [b("devportal.suspendSelected", "Suspend Selected"), Z.length > 0 ? ` (${Z.length})` : ""]
|
|
282
282
|
}),
|
|
283
|
-
/* @__PURE__ */
|
|
284
|
-
onClick:
|
|
283
|
+
/* @__PURE__ */ h("button", {
|
|
284
|
+
onClick: wt,
|
|
285
285
|
disabled: Q.length === 0 || !W,
|
|
286
286
|
"aria-disabled": !W,
|
|
287
287
|
className: "rounded-md border border-status-success-bg px-3 py-2 text-sm font-medium text-status-success-text hover:bg-status-success-bg-subtle disabled:cursor-not-allowed disabled:opacity-50",
|
|
288
288
|
children: [b("devportal.reactivateSelected", "Reactivate Selected"), Q.length > 0 ? ` (${Q.length})` : ""]
|
|
289
289
|
}),
|
|
290
|
-
/* @__PURE__ */
|
|
291
|
-
onClick: () =>
|
|
290
|
+
/* @__PURE__ */ h("button", {
|
|
291
|
+
onClick: () => A(!0),
|
|
292
292
|
disabled: $.length === 0 || !U,
|
|
293
293
|
"aria-disabled": !U,
|
|
294
294
|
className: "rounded-md border border-status-error-bg px-3 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg-subtle disabled:cursor-not-allowed disabled:opacity-50",
|
|
@@ -296,25 +296,25 @@ var h = {
|
|
|
296
296
|
})
|
|
297
297
|
]
|
|
298
298
|
}) : null,
|
|
299
|
-
children: R.length > 0 ? /* @__PURE__ */
|
|
299
|
+
children: R.length > 0 ? /* @__PURE__ */ m(n, {
|
|
300
300
|
data: R,
|
|
301
301
|
keyField: "id",
|
|
302
302
|
columns: [
|
|
303
303
|
...B ? [{
|
|
304
304
|
key: "select",
|
|
305
|
-
header: /* @__PURE__ */
|
|
306
|
-
checked:
|
|
307
|
-
indeterminate:
|
|
308
|
-
onChange:
|
|
305
|
+
header: /* @__PURE__ */ m(o, {
|
|
306
|
+
checked: ot,
|
|
307
|
+
indeterminate: st,
|
|
308
|
+
onChange: bt,
|
|
309
309
|
ariaLabel: b("devportal.selectAllMembers", "Select all members")
|
|
310
310
|
}),
|
|
311
311
|
className: "w-12",
|
|
312
|
-
render: (e) => /* @__PURE__ */
|
|
312
|
+
render: (e) => /* @__PURE__ */ m("div", {
|
|
313
313
|
onClick: (e) => e.stopPropagation(),
|
|
314
|
-
children: /* @__PURE__ */
|
|
315
|
-
checked:
|
|
314
|
+
children: /* @__PURE__ */ m(o, {
|
|
315
|
+
checked: E.has(e.id),
|
|
316
316
|
disabled: e.role === "OWNER",
|
|
317
|
-
onChange: (t) =>
|
|
317
|
+
onChange: (t) => yt(e.id, t),
|
|
318
318
|
ariaLabel: `Select member ${y(e)}`
|
|
319
319
|
})
|
|
320
320
|
})
|
|
@@ -324,15 +324,15 @@ var h = {
|
|
|
324
324
|
header: b("devportal.memberColumn", "Member"),
|
|
325
325
|
render: (e) => {
|
|
326
326
|
let t = y(e);
|
|
327
|
-
return /* @__PURE__ */
|
|
327
|
+
return /* @__PURE__ */ h("div", {
|
|
328
328
|
className: "flex items-center gap-3",
|
|
329
|
-
children: [/* @__PURE__ */
|
|
329
|
+
children: [/* @__PURE__ */ m("div", {
|
|
330
330
|
className: "flex h-8 w-8 items-center justify-center rounded-full bg-action-primary-bg/10 text-primary text-sm font-medium",
|
|
331
331
|
children: t.charAt(0).toUpperCase()
|
|
332
|
-
}), /* @__PURE__ */
|
|
332
|
+
}), /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
|
|
333
333
|
className: "font-medium",
|
|
334
334
|
children: t
|
|
335
|
-
}), /* @__PURE__ */
|
|
335
|
+
}), /* @__PURE__ */ h("p", {
|
|
336
336
|
className: "text-xs text-text-secondary",
|
|
337
337
|
children: [
|
|
338
338
|
b("devportal.joined", "Joined"),
|
|
@@ -346,16 +346,16 @@ var h = {
|
|
|
346
346
|
{
|
|
347
347
|
key: "role",
|
|
348
348
|
header: b("devportal.roleColumn", "Role"),
|
|
349
|
-
render: (e) => /* @__PURE__ */
|
|
349
|
+
render: (e) => /* @__PURE__ */ h("div", {
|
|
350
350
|
className: "flex items-center gap-2",
|
|
351
|
-
children: [/* @__PURE__ */
|
|
351
|
+
children: [/* @__PURE__ */ m(we, {
|
|
352
352
|
size: 14,
|
|
353
353
|
className: "text-text-secondary"
|
|
354
|
-
}), e.role === "OWNER" || !H ? /* @__PURE__ */
|
|
354
|
+
}), e.role === "OWNER" || !H ? /* @__PURE__ */ m("span", { children: u[e.role] ?? e.role }) : /* @__PURE__ */ m("select", {
|
|
355
355
|
value: e.role,
|
|
356
|
-
onChange: (t) => void
|
|
356
|
+
onChange: (t) => void mt(e.id, t.target.value),
|
|
357
357
|
className: "rounded-md border border-border-subtle bg-bg-surface px-2 py-1 text-xs text-text-primary scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary",
|
|
358
|
-
children: Object.entries(
|
|
358
|
+
children: Object.entries(u).filter(([e]) => e !== "OWNER").map(([e, t]) => /* @__PURE__ */ m("option", {
|
|
359
359
|
value: e,
|
|
360
360
|
children: t
|
|
361
361
|
}, e))
|
|
@@ -365,13 +365,13 @@ var h = {
|
|
|
365
365
|
{
|
|
366
366
|
key: "status",
|
|
367
367
|
header: b("devportal.statusColumn", "Status"),
|
|
368
|
-
render: (e) => e.isSuspended ? /* @__PURE__ */
|
|
368
|
+
render: (e) => e.isSuspended ? /* @__PURE__ */ m(r, {
|
|
369
369
|
status: "SUSPENDED",
|
|
370
370
|
type: "app"
|
|
371
|
-
}) : e.isActive ? /* @__PURE__ */
|
|
371
|
+
}) : e.isActive ? /* @__PURE__ */ m(r, {
|
|
372
372
|
status: "ACTIVE",
|
|
373
373
|
type: "app"
|
|
374
|
-
}) : /* @__PURE__ */
|
|
374
|
+
}) : /* @__PURE__ */ m(r, {
|
|
375
375
|
status: "INACTIVE",
|
|
376
376
|
type: "app"
|
|
377
377
|
})
|
|
@@ -380,33 +380,36 @@ var h = {
|
|
|
380
380
|
key: "actions",
|
|
381
381
|
header: "",
|
|
382
382
|
className: "w-32",
|
|
383
|
-
render: (e) => e.role !== "OWNER" && /* @__PURE__ */
|
|
383
|
+
render: (e) => e.role !== "OWNER" && /* @__PURE__ */ h("div", {
|
|
384
384
|
className: "flex gap-1",
|
|
385
385
|
children: [
|
|
386
|
-
e.isSuspended ? /* @__PURE__ */
|
|
386
|
+
e.isSuspended ? /* @__PURE__ */ m("button", {
|
|
387
387
|
className: "text-xs text-status-success-text hover:underline disabled:opacity-50",
|
|
388
388
|
disabled: !W,
|
|
389
389
|
"aria-disabled": !W,
|
|
390
390
|
title: b("devportal.reactivateMember", "Reactivate member"),
|
|
391
|
-
onClick: () =>
|
|
391
|
+
onClick: () => pt(e.id),
|
|
392
392
|
children: b("devportal.reactivate", "Reactivate")
|
|
393
|
-
}) : /* @__PURE__ */
|
|
393
|
+
}) : /* @__PURE__ */ m("button", {
|
|
394
394
|
className: "text-xs text-status-warning-text hover:underline disabled:opacity-50",
|
|
395
395
|
disabled: !G,
|
|
396
396
|
"aria-disabled": !G,
|
|
397
397
|
title: b("devportal.suspendMember", "Suspend member"),
|
|
398
|
-
onClick: () =>
|
|
398
|
+
onClick: () => ft(e.id),
|
|
399
399
|
children: b("devportal.suspend", "Suspend")
|
|
400
400
|
}),
|
|
401
|
-
/* @__PURE__ */
|
|
401
|
+
/* @__PURE__ */ m("button", {
|
|
402
402
|
className: "text-xs text-status-error-text hover:underline disabled:opacity-50",
|
|
403
403
|
disabled: !U,
|
|
404
404
|
"aria-disabled": !U,
|
|
405
405
|
title: b("devportal.removeMember", "Remove member"),
|
|
406
|
-
onClick: () =>
|
|
406
|
+
onClick: () => We ? N({
|
|
407
|
+
id: e.id,
|
|
408
|
+
label: y(e)
|
|
409
|
+
}) : dt(e.id),
|
|
407
410
|
children: b("devportal.remove", "Remove")
|
|
408
411
|
}),
|
|
409
|
-
/* @__PURE__ */
|
|
412
|
+
/* @__PURE__ */ m("button", {
|
|
410
413
|
className: "text-xs text-primary hover:underline disabled:opacity-50",
|
|
411
414
|
disabled: !H,
|
|
412
415
|
"aria-disabled": !H,
|
|
@@ -418,46 +421,46 @@ var h = {
|
|
|
418
421
|
})
|
|
419
422
|
}] : []
|
|
420
423
|
]
|
|
421
|
-
}) : /* @__PURE__ */
|
|
424
|
+
}) : /* @__PURE__ */ m(a, {
|
|
422
425
|
illustration: "empty-people",
|
|
423
426
|
title: b("devportal.noMembers", "No members"),
|
|
424
427
|
description: b("devportal.inviteTeamMembersToCollaborate", "Invite team members to collaborate")
|
|
425
428
|
})
|
|
426
429
|
}),
|
|
427
|
-
B && q.length > 0 && /* @__PURE__ */
|
|
428
|
-
title: `${b("devportal.pendingInvitations", "Pending Invitations")} (${
|
|
429
|
-
actions: /* @__PURE__ */
|
|
430
|
+
B && q.length > 0 && /* @__PURE__ */ m(t, {
|
|
431
|
+
title: `${b("devportal.pendingInvitations", "Pending Invitations")} (${at})`,
|
|
432
|
+
actions: /* @__PURE__ */ h("div", {
|
|
430
433
|
className: "flex flex-wrap items-center gap-2",
|
|
431
|
-
children: [/* @__PURE__ */
|
|
432
|
-
onClick:
|
|
434
|
+
children: [/* @__PURE__ */ h("button", {
|
|
435
|
+
onClick: Et,
|
|
433
436
|
disabled: Y.length === 0,
|
|
434
437
|
className: "rounded-md border border-primary/30 px-3 py-2 text-sm font-medium text-primary hover:bg-action-primary-bg/5 disabled:cursor-not-allowed disabled:opacity-50",
|
|
435
438
|
children: [b("devportal.resendSelected", "Resend Selected"), Y.length > 0 ? ` (${Y.length})` : ""]
|
|
436
|
-
}), /* @__PURE__ */
|
|
437
|
-
onClick: () =>
|
|
439
|
+
}), /* @__PURE__ */ h("button", {
|
|
440
|
+
onClick: () => j(!0),
|
|
438
441
|
disabled: Y.length === 0,
|
|
439
442
|
className: "rounded-md border border-status-error-bg px-3 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg-subtle disabled:cursor-not-allowed disabled:opacity-50",
|
|
440
443
|
children: [b("devportal.cancelSelected", "Cancel Selected"), Y.length > 0 ? ` (${Y.length})` : ""]
|
|
441
444
|
})]
|
|
442
445
|
}),
|
|
443
|
-
children: /* @__PURE__ */
|
|
446
|
+
children: /* @__PURE__ */ m(n, {
|
|
444
447
|
data: q,
|
|
445
448
|
keyField: "id",
|
|
446
449
|
columns: [
|
|
447
450
|
{
|
|
448
451
|
key: "select",
|
|
449
|
-
header: /* @__PURE__ */
|
|
450
|
-
checked:
|
|
451
|
-
indeterminate:
|
|
452
|
-
onChange:
|
|
452
|
+
header: /* @__PURE__ */ m(o, {
|
|
453
|
+
checked: ct,
|
|
454
|
+
indeterminate: lt,
|
|
455
|
+
onChange: St,
|
|
453
456
|
ariaLabel: b("devportal.selectAllInvitations", "Select all invitations")
|
|
454
457
|
}),
|
|
455
458
|
className: "w-12",
|
|
456
|
-
render: (e) => /* @__PURE__ */
|
|
459
|
+
render: (e) => /* @__PURE__ */ m("div", {
|
|
457
460
|
onClick: (e) => e.stopPropagation(),
|
|
458
|
-
children: /* @__PURE__ */
|
|
459
|
-
checked:
|
|
460
|
-
onChange: (t) =>
|
|
461
|
+
children: /* @__PURE__ */ m(o, {
|
|
462
|
+
checked: O.has(e.id),
|
|
463
|
+
onChange: (t) => xt(e.id, t),
|
|
461
464
|
ariaLabel: `Select invitation ${e.invitedEmail}`
|
|
462
465
|
})
|
|
463
466
|
})
|
|
@@ -465,9 +468,9 @@ var h = {
|
|
|
465
468
|
{
|
|
466
469
|
key: "invitedEmail",
|
|
467
470
|
header: b("devportal.emailColumn", "Email"),
|
|
468
|
-
render: (e) => /* @__PURE__ */
|
|
471
|
+
render: (e) => /* @__PURE__ */ h("div", {
|
|
469
472
|
className: "flex items-center gap-2",
|
|
470
|
-
children: [/* @__PURE__ */
|
|
473
|
+
children: [/* @__PURE__ */ m(xe, {
|
|
471
474
|
size: 16,
|
|
472
475
|
className: "text-text-secondary"
|
|
473
476
|
}), e.invitedEmail]
|
|
@@ -476,12 +479,12 @@ var h = {
|
|
|
476
479
|
{
|
|
477
480
|
key: "role",
|
|
478
481
|
header: b("devportal.invitedRoleColumn", "Invited Role"),
|
|
479
|
-
render: (e) =>
|
|
482
|
+
render: (e) => u[e.role] ?? e.role
|
|
480
483
|
},
|
|
481
484
|
{
|
|
482
485
|
key: "status",
|
|
483
486
|
header: b("devportal.statusColumn", "Status"),
|
|
484
|
-
render: (e) => /* @__PURE__ */
|
|
487
|
+
render: (e) => /* @__PURE__ */ m(r, {
|
|
485
488
|
status: e.status,
|
|
486
489
|
type: "invitation"
|
|
487
490
|
})
|
|
@@ -495,46 +498,46 @@ var h = {
|
|
|
495
498
|
key: "actions",
|
|
496
499
|
header: "",
|
|
497
500
|
className: "w-24",
|
|
498
|
-
render: (e) => /* @__PURE__ */
|
|
501
|
+
render: (e) => /* @__PURE__ */ h("div", {
|
|
499
502
|
className: "flex gap-1",
|
|
500
|
-
children: [/* @__PURE__ */
|
|
503
|
+
children: [/* @__PURE__ */ m("button", {
|
|
501
504
|
className: "rounded p-1 hover:bg-bg-sunken",
|
|
502
505
|
title: b("devportal.resend", "Resend"),
|
|
503
|
-
onClick: () =>
|
|
504
|
-
children: /* @__PURE__ */
|
|
505
|
-
}), /* @__PURE__ */
|
|
506
|
+
onClick: () => _t(e.id),
|
|
507
|
+
children: /* @__PURE__ */ m(Ce, { size: 14 })
|
|
508
|
+
}), /* @__PURE__ */ m("button", {
|
|
506
509
|
className: "rounded p-1 hover:bg-bg-sunken text-status-error-text",
|
|
507
510
|
title: b("devportal.cancel", "Cancel"),
|
|
508
|
-
onClick: () =>
|
|
509
|
-
children: /* @__PURE__ */
|
|
511
|
+
onClick: () => gt(e.id),
|
|
512
|
+
children: /* @__PURE__ */ m(Te, { size: 14 })
|
|
510
513
|
})]
|
|
511
514
|
})
|
|
512
515
|
}
|
|
513
516
|
]
|
|
514
517
|
})
|
|
515
518
|
}),
|
|
516
|
-
|
|
517
|
-
open:
|
|
519
|
+
Fe && /* @__PURE__ */ m(i, {
|
|
520
|
+
open: Fe,
|
|
518
521
|
onOpenChange: x,
|
|
519
|
-
onConfirm:
|
|
522
|
+
onConfirm: ut,
|
|
520
523
|
title: b("devportal.inviteTeamMember", "Invite Team Member"),
|
|
521
|
-
confirmLabel:
|
|
522
|
-
children: /* @__PURE__ */
|
|
524
|
+
confirmLabel: Ye ? b("devportal.sendingDots", "Sending...") : b("devportal.sendInvitation", "Send Invitation"),
|
|
525
|
+
children: /* @__PURE__ */ h("div", {
|
|
523
526
|
className: "space-y-4",
|
|
524
527
|
children: [
|
|
525
|
-
/* @__PURE__ */
|
|
528
|
+
/* @__PURE__ */ m(de, {
|
|
526
529
|
label: b("devportal.emailAddress", "Email Address"),
|
|
527
530
|
type: "email",
|
|
528
531
|
value: S,
|
|
529
|
-
onChange: (e) =>
|
|
532
|
+
onChange: (e) => Ie(e.target.value),
|
|
530
533
|
placeholder: "colleague@example.com",
|
|
531
534
|
hint: b("devportal.mustBeExistingVerifiedUser", "Must be an existing verified user"),
|
|
532
535
|
required: !0
|
|
533
536
|
}),
|
|
534
|
-
/* @__PURE__ */
|
|
537
|
+
/* @__PURE__ */ m(fe, {
|
|
535
538
|
label: b("devportal.roleColumn", "Role"),
|
|
536
|
-
value:
|
|
537
|
-
onChange: (e) =>
|
|
539
|
+
value: Le,
|
|
540
|
+
onChange: (e) => Re(e.target.value),
|
|
538
541
|
options: [
|
|
539
542
|
{
|
|
540
543
|
value: "ADMIN",
|
|
@@ -551,42 +554,58 @@ var h = {
|
|
|
551
554
|
],
|
|
552
555
|
required: !0
|
|
553
556
|
}),
|
|
554
|
-
/* @__PURE__ */
|
|
557
|
+
/* @__PURE__ */ m(pe, {
|
|
555
558
|
label: b("devportal.personalMessage", "Personal Message"),
|
|
556
|
-
value:
|
|
557
|
-
onChange: (e) =>
|
|
559
|
+
value: ze,
|
|
560
|
+
onChange: (e) => Be(e.target.value),
|
|
558
561
|
placeholder: b("devportal.personalMessagePlaceholder", "Add a short note to include in the invitation email"),
|
|
559
562
|
rows: 3
|
|
560
563
|
})
|
|
561
564
|
]
|
|
562
565
|
})
|
|
563
566
|
}),
|
|
564
|
-
/* @__PURE__ */
|
|
565
|
-
open:
|
|
566
|
-
onOpenChange:
|
|
567
|
-
|
|
567
|
+
/* @__PURE__ */ m(i, {
|
|
568
|
+
open: M !== null,
|
|
569
|
+
onOpenChange: (e) => {
|
|
570
|
+
e || N(null);
|
|
571
|
+
},
|
|
572
|
+
onConfirm: async () => {
|
|
573
|
+
if (!M) return;
|
|
574
|
+
let { id: e } = M;
|
|
575
|
+
N(null), await dt(e);
|
|
576
|
+
},
|
|
577
|
+
title: b("devportal.fluidgrids.removeMemberTitle", "Remove this member?"),
|
|
578
|
+
description: b("devportal.fluidgrids.removeMemberDescription", "{{member}} will lose access to this organization straight away. You can invite them again later.").replace("{{member}}", M?.label ?? ""),
|
|
579
|
+
confirmLabel: b("devportal.removeMember", "Remove member"),
|
|
580
|
+
cancelLabel: b("devportal.cancel", "Cancel"),
|
|
581
|
+
variant: "danger"
|
|
582
|
+
}),
|
|
583
|
+
/* @__PURE__ */ m(i, {
|
|
584
|
+
open: He,
|
|
585
|
+
onOpenChange: A,
|
|
586
|
+
onConfirm: Tt,
|
|
568
587
|
title: b("devportal.removeSelectedMembers", "Remove selected members"),
|
|
569
588
|
description: `${b("devportal.removeNSelectedMembers", "Remove")} ${$.length} ${b("devportal.selectedMembersFromOrg", "selected member(s) from this organization? This action cannot be undone.")}`,
|
|
570
589
|
confirmLabel: b("devportal.removeMembers", "Remove Members"),
|
|
571
590
|
cancelLabel: b("devportal.cancel", "Cancel"),
|
|
572
591
|
variant: "danger"
|
|
573
592
|
}),
|
|
574
|
-
/* @__PURE__ */
|
|
575
|
-
open:
|
|
576
|
-
onOpenChange:
|
|
577
|
-
onConfirm:
|
|
593
|
+
/* @__PURE__ */ m(i, {
|
|
594
|
+
open: Ue,
|
|
595
|
+
onOpenChange: j,
|
|
596
|
+
onConfirm: Dt,
|
|
578
597
|
title: b("devportal.cancelSelectedInvitations", "Cancel selected invitations"),
|
|
579
598
|
description: `${b("devportal.cancelNPendingInvitations", "Cancel")} ${Y.length} ${b("devportal.pendingInvitationsQuestion", "pending invitation(s)?")}`,
|
|
580
599
|
confirmLabel: b("devportal.cancelInvitations", "Cancel Invitations"),
|
|
581
600
|
cancelLabel: b("devportal.keepInvitations", "Keep Invitations"),
|
|
582
601
|
variant: "danger"
|
|
583
602
|
}),
|
|
584
|
-
/* @__PURE__ */
|
|
603
|
+
/* @__PURE__ */ m(i, {
|
|
585
604
|
open: P !== null,
|
|
586
605
|
onOpenChange: (e) => {
|
|
587
606
|
e || F(null);
|
|
588
607
|
},
|
|
589
|
-
onConfirm:
|
|
608
|
+
onConfirm: ht,
|
|
590
609
|
title: b("devportal.transferOwnership", "Transfer ownership"),
|
|
591
610
|
description: P ? b("devportal.transferOwnershipConfirmation", `Transfer organization ownership to ${y(P)}?`) : void 0,
|
|
592
611
|
confirmLabel: b("devportal.makeOwner", "Make Owner"),
|