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