@burdenoff/microfe-devportal 2026.701.1 → 2026.702.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/devportal/components/index.js +1 -1
- package/dist/devportal/pages/AnalyticsDashboardPage.js +46 -46
- package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationDetailPage.js +1391 -712
- package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApplicationPage.js +281 -228
- package/dist/devportal/pages/CreateApplicationPage.js.map +1 -1
- package/dist/devportal/pages/DashboardPage.js +200 -307
- package/dist/devportal/pages/DashboardPage.js.map +1 -1
- package/dist/devportal/pages/EditApplicationPage.js +380 -284
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationDetailPage.js +12 -12
- package/dist/devportal/pages/RevenueDashboardPage.js +8 -8
- package/dist/devportal/pages/StoreSubmissionPage.js.map +1 -1
- package/dist/devportal/pages/WebhookDetailPage.js +146 -146
- package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,27 +1,45 @@
|
|
|
1
1
|
import { useDevportal as e } from "../providers/DevportalProvider.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
2
|
+
import { cn as t } from "../utils/cn.js";
|
|
3
|
+
import { LoadingState as n } from "../components/LoadingState.js";
|
|
4
|
+
import { EmptyState as ee } from "../components/EmptyState.js";
|
|
5
|
+
import { useDeactivateAppMutation as r, useDeleteApplicationMutation as i, useGetApplicationQuery as a, useUpdateApplicationMutation as te } from "../../generated/global-operations.js";
|
|
6
|
+
import { PageLayout as o, PageSection as s } from "../components/PageLayout.js";
|
|
7
|
+
import { APP_TYPE_LABELS as c } from "../utils/constants.js";
|
|
8
|
+
import { StatusBadge as ne } from "../components/StatusBadge.js";
|
|
9
|
+
import { nativeImpact as re, nativeNotify as l } from "../../utils/nativeBridge.js";
|
|
9
10
|
import { CheckboxField as u, InputField as d, SelectField as f, TagInput as p, TextareaField as m } from "../components/FormField.js";
|
|
10
11
|
import { ConfirmDialog as h } from "../components/ConfirmDialog.js";
|
|
11
|
-
import { PermissionGuard as
|
|
12
|
+
import { PermissionGuard as ie } from "../components/PermissionGuard.js";
|
|
12
13
|
import "../components/index.js";
|
|
13
|
-
import { DEVPORTAL_PERMISSIONS as
|
|
14
|
-
import { useDevportalPermission as
|
|
15
|
-
import { useEffect as
|
|
16
|
-
import { useI18n as
|
|
17
|
-
import { AlertCircle as
|
|
18
|
-
import { useParams as
|
|
19
|
-
import { Fragment as
|
|
14
|
+
import { DEVPORTAL_PERMISSIONS as g } from "../constants/permissions.js";
|
|
15
|
+
import { useDevportalPermission as _ } from "../hooks/usePermission.js";
|
|
16
|
+
import { useEffect as v, useState as y } from "react";
|
|
17
|
+
import { useI18n as ae } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
18
|
+
import { AlertCircle as oe, AlertTriangle as se, AppWindow as b, Archive as x, Check as S, Power as C, Save as w, Send as ce, Trash2 as le } from "lucide-react";
|
|
19
|
+
import { useParams as ue } from "react-router-dom";
|
|
20
|
+
import { Fragment as T, jsx as E, jsxs as D } from "react/jsx-runtime";
|
|
20
21
|
//#region src/devportal/pages/EditApplicationPage.tsx
|
|
21
|
-
var
|
|
22
|
+
var de = [
|
|
23
|
+
{
|
|
24
|
+
value: "fluidgrids",
|
|
25
|
+
label: "FluidGrids"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
value: "workspaces",
|
|
29
|
+
label: "Workspaces"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
value: "bigconsole",
|
|
33
|
+
label: "BigConsole"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
value: "botlit",
|
|
37
|
+
label: "Botlit"
|
|
38
|
+
}
|
|
39
|
+
], fe = Object.entries(c).map(([e, t]) => ({
|
|
22
40
|
value: e,
|
|
23
41
|
label: t
|
|
24
|
-
})),
|
|
42
|
+
})), pe = [
|
|
25
43
|
{
|
|
26
44
|
value: "PUBLIC",
|
|
27
45
|
label: "Public - Visible to everyone"
|
|
@@ -38,7 +56,7 @@ var le = Object.entries(s).map(([e, t]) => ({
|
|
|
38
56
|
value: "INTERNAL",
|
|
39
57
|
label: "Internal - Only visible within organization"
|
|
40
58
|
}
|
|
41
|
-
],
|
|
59
|
+
], me = [
|
|
42
60
|
{
|
|
43
61
|
value: "ai",
|
|
44
62
|
label: "AI & Automation"
|
|
@@ -68,7 +86,7 @@ var le = Object.entries(s).map(([e, t]) => ({
|
|
|
68
86
|
label: "Triggers"
|
|
69
87
|
}
|
|
70
88
|
];
|
|
71
|
-
function
|
|
89
|
+
function he(e) {
|
|
72
90
|
return e ? {
|
|
73
91
|
id: e.id,
|
|
74
92
|
name: e.name,
|
|
@@ -109,21 +127,21 @@ function fe(e) {
|
|
|
109
127
|
updatedAt: e.updatedAt
|
|
110
128
|
} : null;
|
|
111
129
|
}
|
|
112
|
-
var
|
|
113
|
-
let { navigate:
|
|
114
|
-
let n =
|
|
130
|
+
var O = () => {
|
|
131
|
+
let { navigate: c, basePath: O } = e(), { appId: k } = ue(), { t: A } = ae(), { allowed: j } = _(g.APP_UPDATE), { allowed: M } = _(g.APP_DELETE), N = (e, t) => {
|
|
132
|
+
let n = A(e);
|
|
115
133
|
return n === e ? t : n;
|
|
116
|
-
}, [
|
|
117
|
-
variables: { id:
|
|
118
|
-
skip: !
|
|
119
|
-
}), [
|
|
120
|
-
|
|
121
|
-
let e =
|
|
122
|
-
if (!
|
|
134
|
+
}, [P, F] = y(!1), [I, L] = y({}), [R, z] = y(!1), [ge, B] = y(!1), [_e, V] = y(!1), [H, U] = y(!1), { data: W, loading: ve, error: G, refetch: ye } = a({
|
|
135
|
+
variables: { id: k },
|
|
136
|
+
skip: !k
|
|
137
|
+
}), [K] = te(), [be] = i(), [xe] = r(), q = he(W?.application);
|
|
138
|
+
v(() => {
|
|
139
|
+
let e = q?.name;
|
|
140
|
+
if (!k || !e) return;
|
|
123
141
|
let t = window.__breadcrumbRegistry;
|
|
124
|
-
return t?.register(
|
|
125
|
-
}, [
|
|
126
|
-
let [
|
|
142
|
+
return t?.register(k, e), () => t?.unregister(k);
|
|
143
|
+
}, [k, q?.name]);
|
|
144
|
+
let [J, Y] = y({
|
|
127
145
|
name: "",
|
|
128
146
|
slug: "",
|
|
129
147
|
shortDescription: "",
|
|
@@ -140,380 +158,458 @@ var k = () => {
|
|
|
140
158
|
termsOfServiceUrl: "",
|
|
141
159
|
githubUrl: "",
|
|
142
160
|
requiresApproval: !1
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
161
|
+
}), [X, Z] = y([]);
|
|
162
|
+
v(() => {
|
|
163
|
+
if (q) {
|
|
164
|
+
Y({
|
|
165
|
+
name: q.name,
|
|
166
|
+
slug: q.slug,
|
|
167
|
+
shortDescription: q.shortDescription || "",
|
|
168
|
+
description: q.description || "",
|
|
169
|
+
appType: q.appType,
|
|
170
|
+
visibility: q.visibility,
|
|
171
|
+
category: q.category || "",
|
|
172
|
+
tags: q.tags,
|
|
173
|
+
keywords: q.keywords,
|
|
174
|
+
websiteUrl: q.websiteUrl || "",
|
|
175
|
+
documentationUrl: q.documentationUrl || "",
|
|
176
|
+
supportUrl: q.supportUrl || "",
|
|
177
|
+
privacyPolicyUrl: q.privacyPolicyUrl || "",
|
|
178
|
+
termsOfServiceUrl: q.termsOfServiceUrl || "",
|
|
179
|
+
githubUrl: q.githubUrl || "",
|
|
180
|
+
requiresApproval: q.requiresApproval
|
|
181
|
+
});
|
|
182
|
+
let e = W?.application?.manifest?.compatibility;
|
|
183
|
+
Z(Array.isArray(e?.products) ? e.products : []), U(!1);
|
|
184
|
+
}
|
|
185
|
+
}, [W?.application]);
|
|
164
186
|
let Q = (e) => {
|
|
165
|
-
|
|
187
|
+
c?.(`${O}${e}`);
|
|
166
188
|
}, $ = (e, t) => {
|
|
167
|
-
|
|
189
|
+
Y((n) => ({
|
|
168
190
|
...n,
|
|
169
191
|
[e]: t
|
|
170
|
-
})),
|
|
192
|
+
})), U(!0), I[e] && L((t) => ({
|
|
171
193
|
...t,
|
|
172
194
|
[e]: void 0
|
|
173
195
|
}));
|
|
174
|
-
},
|
|
196
|
+
}, Se = () => {
|
|
175
197
|
let e = {};
|
|
176
|
-
return
|
|
177
|
-
},
|
|
178
|
-
if (e.preventDefault(), !(!
|
|
179
|
-
|
|
198
|
+
return J.name.trim() ? J.name.length < 3 ? e.name = N("devportal.appNameMinLength", "Name must be at least 3 characters") : J.name.length > 100 && (e.name = N("devportal.appNameMaxLength", "Name must be less than 100 characters")) : e.name = N("devportal.appNameRequired", "Application name is required"), J.slug.trim() ? /^[a-z0-9-]+$/.test(J.slug) || (e.slug = N("devportal.slugInvalidChars", "Slug can only contain lowercase letters, numbers, and hyphens")) : e.slug = N("devportal.slugRequired", "Slug is required"), J.shortDescription.trim() ? J.shortDescription.length > 200 && (e.shortDescription = N("devportal.shortDescriptionMaxLength", "Short description must be less than 200 characters")) : e.shortDescription = N("devportal.shortDescriptionRequired", "Short description is required"), J.appType || (e.appType = N("devportal.appTypeRequired", "Application type is required")), J.category || (e.category = N("devportal.categoryRequired", "Category is required")), L(e), Object.keys(e).length === 0;
|
|
199
|
+
}, Ce = async (e) => {
|
|
200
|
+
if (e.preventDefault(), !(!Se() || !q)) {
|
|
201
|
+
F(!0);
|
|
180
202
|
try {
|
|
181
|
-
await
|
|
182
|
-
id:
|
|
203
|
+
await K({ variables: {
|
|
204
|
+
id: q.id,
|
|
183
205
|
input: {
|
|
184
|
-
name:
|
|
185
|
-
shortDescription:
|
|
186
|
-
description:
|
|
187
|
-
appType:
|
|
188
|
-
visibility:
|
|
189
|
-
category:
|
|
190
|
-
tags:
|
|
191
|
-
keywords:
|
|
192
|
-
websiteUrl:
|
|
193
|
-
documentationUrl:
|
|
194
|
-
supportUrl:
|
|
195
|
-
privacyPolicyUrl:
|
|
196
|
-
termsOfServiceUrl:
|
|
197
|
-
githubUrl:
|
|
206
|
+
name: J.name,
|
|
207
|
+
shortDescription: J.shortDescription,
|
|
208
|
+
description: J.description,
|
|
209
|
+
appType: J.appType,
|
|
210
|
+
visibility: J.visibility,
|
|
211
|
+
category: J.category,
|
|
212
|
+
tags: J.tags,
|
|
213
|
+
keywords: J.keywords,
|
|
214
|
+
websiteUrl: J.websiteUrl || null,
|
|
215
|
+
documentationUrl: J.documentationUrl || null,
|
|
216
|
+
supportUrl: J.supportUrl || null,
|
|
217
|
+
privacyPolicyUrl: J.privacyPolicyUrl || null,
|
|
218
|
+
termsOfServiceUrl: J.termsOfServiceUrl || null,
|
|
219
|
+
githubUrl: J.githubUrl || null,
|
|
220
|
+
compatibleProducts: X
|
|
198
221
|
}
|
|
199
|
-
} }),
|
|
222
|
+
} }), U(!1);
|
|
200
223
|
} catch (e) {
|
|
201
224
|
console.error("Failed to update application:", e);
|
|
202
225
|
} finally {
|
|
203
|
-
|
|
226
|
+
F(!1);
|
|
204
227
|
}
|
|
205
228
|
}
|
|
206
|
-
},
|
|
207
|
-
if (
|
|
208
|
-
|
|
229
|
+
}, we = async () => {
|
|
230
|
+
if (q) {
|
|
231
|
+
re("medium");
|
|
209
232
|
try {
|
|
210
|
-
await
|
|
233
|
+
await be({ variables: { id: q.id } }), l("success"), Q("/apps");
|
|
211
234
|
} catch (e) {
|
|
212
235
|
l("error"), console.error("Failed to delete application:", e);
|
|
213
236
|
}
|
|
214
237
|
}
|
|
215
|
-
},
|
|
216
|
-
if (
|
|
217
|
-
await
|
|
218
|
-
id:
|
|
238
|
+
}, Te = async () => {
|
|
239
|
+
if (q) try {
|
|
240
|
+
await K({ variables: {
|
|
241
|
+
id: q.id,
|
|
219
242
|
input: { visibility: "PRIVATE" }
|
|
220
|
-
} }),
|
|
243
|
+
} }), B(!1);
|
|
221
244
|
} catch (e) {
|
|
222
245
|
console.error("Failed to deprecate application:", e);
|
|
223
246
|
}
|
|
224
|
-
},
|
|
225
|
-
if (
|
|
226
|
-
await
|
|
247
|
+
}, Ee = async () => {
|
|
248
|
+
if (q) try {
|
|
249
|
+
await xe({ variables: { id: q.id } }), V(!1), Q("/apps");
|
|
227
250
|
} catch (e) {
|
|
228
251
|
console.error("Failed to deactivate application:", e);
|
|
229
252
|
}
|
|
230
|
-
}, Ce = async () => {
|
|
231
|
-
if (Y) try {
|
|
232
|
-
I(!0), await ge({ variables: { id: Y.id } });
|
|
233
|
-
} catch (e) {
|
|
234
|
-
console.error("Failed to submit for review:", e);
|
|
235
|
-
} finally {
|
|
236
|
-
I(!1);
|
|
237
|
-
}
|
|
238
253
|
};
|
|
239
|
-
if (
|
|
240
|
-
if (
|
|
241
|
-
title:
|
|
242
|
-
backLink: `${
|
|
243
|
-
backLabel:
|
|
244
|
-
children: /* @__PURE__ */
|
|
254
|
+
if (ve) return /* @__PURE__ */ E(n, { message: N("devportal.loadingApplication", "Loading application...") });
|
|
255
|
+
if (G) return /* @__PURE__ */ E(o, {
|
|
256
|
+
title: N("devportal.error", "Error"),
|
|
257
|
+
backLink: `${O}/apps`,
|
|
258
|
+
backLabel: N("devportal.backToApplications", "Back to Applications"),
|
|
259
|
+
children: /* @__PURE__ */ D("div", {
|
|
245
260
|
className: "flex flex-col items-center justify-center py-12 text-center",
|
|
246
261
|
children: [
|
|
247
|
-
/* @__PURE__ */
|
|
262
|
+
/* @__PURE__ */ E(oe, {
|
|
248
263
|
size: 48,
|
|
249
264
|
className: "text-status-error-text mb-4"
|
|
250
265
|
}),
|
|
251
|
-
/* @__PURE__ */
|
|
266
|
+
/* @__PURE__ */ E("h3", {
|
|
252
267
|
className: "text-lg font-semibold mb-2",
|
|
253
|
-
children:
|
|
268
|
+
children: N("devportal.failedToLoadApplication", "Failed to load application")
|
|
254
269
|
}),
|
|
255
|
-
/* @__PURE__ */
|
|
270
|
+
/* @__PURE__ */ E("p", {
|
|
256
271
|
className: "text-sm text-text-secondary",
|
|
257
|
-
children:
|
|
272
|
+
children: G.message
|
|
258
273
|
})
|
|
259
274
|
]
|
|
260
275
|
})
|
|
261
276
|
});
|
|
262
|
-
if (!
|
|
263
|
-
title:
|
|
264
|
-
backLink: `${
|
|
265
|
-
backLabel:
|
|
266
|
-
children: /* @__PURE__ */
|
|
277
|
+
if (!q) return /* @__PURE__ */ E(o, {
|
|
278
|
+
title: N("devportal.notFound", "Not Found"),
|
|
279
|
+
backLink: `${O}/apps`,
|
|
280
|
+
backLabel: N("devportal.backToApplications", "Back to Applications"),
|
|
281
|
+
children: /* @__PURE__ */ E(ee, {
|
|
267
282
|
illustration: "empty-generic",
|
|
268
|
-
icon: /* @__PURE__ */
|
|
269
|
-
title:
|
|
270
|
-
description:
|
|
283
|
+
icon: /* @__PURE__ */ E(b, { size: 48 }),
|
|
284
|
+
title: N("devportal.applicationNotFound", "Application not found"),
|
|
285
|
+
description: N("devportal.applicationNotFoundDescription", "The application you're looking for doesn't exist or you don't have access to it.")
|
|
271
286
|
})
|
|
272
287
|
});
|
|
273
|
-
let
|
|
274
|
-
return /* @__PURE__ */
|
|
275
|
-
permission:
|
|
276
|
-
children: /* @__PURE__ */
|
|
277
|
-
title: `${
|
|
278
|
-
description:
|
|
279
|
-
purpose:
|
|
280
|
-
backLink: `${
|
|
281
|
-
backLabel:
|
|
282
|
-
actions: /* @__PURE__ */
|
|
288
|
+
let De = q.status === "DRAFT" || q.status === "REJECTED", Oe = q.status === "PUBLISHED", ke = q.status === "ACTIVE" || q.status === "PUBLISHED";
|
|
289
|
+
return /* @__PURE__ */ E(ie, {
|
|
290
|
+
permission: g.APP_UPDATE,
|
|
291
|
+
children: /* @__PURE__ */ D(o, {
|
|
292
|
+
title: `${N("devportal.editAppTitlePrefix", "Edit:")} ${q.name}`,
|
|
293
|
+
description: N("devportal.editAppDescription", "Update your application settings"),
|
|
294
|
+
purpose: N("devportal.editAppPurpose", "Change how this app appears and behaves — its name, description, classification, links, and lifecycle settings. Use the danger zone at the bottom to deprecate or delete it when it is retired."),
|
|
295
|
+
backLink: `${O}/apps/${q.id}`,
|
|
296
|
+
backLabel: N("devportal.backToApplication", "Back to Application"),
|
|
297
|
+
actions: /* @__PURE__ */ E("div", {
|
|
283
298
|
className: "flex items-center gap-2",
|
|
284
|
-
children: /* @__PURE__ */
|
|
285
|
-
status:
|
|
299
|
+
children: /* @__PURE__ */ E(ne, {
|
|
300
|
+
status: q.status,
|
|
286
301
|
type: "app"
|
|
287
302
|
})
|
|
288
303
|
}),
|
|
289
304
|
children: [
|
|
290
|
-
/* @__PURE__ */
|
|
291
|
-
onSubmit:
|
|
305
|
+
/* @__PURE__ */ D("form", {
|
|
306
|
+
onSubmit: Ce,
|
|
292
307
|
className: "space-y-8 max-w-3xl",
|
|
293
308
|
children: [
|
|
294
|
-
|
|
309
|
+
q.status === "PUBLISHED" && /* @__PURE__ */ D("div", {
|
|
295
310
|
className: "rounded-lg border border-border-subtle bg-status-warning-bg-subtle p-4 flex gap-3",
|
|
296
|
-
children: [/* @__PURE__ */
|
|
311
|
+
children: [/* @__PURE__ */ E(se, {
|
|
297
312
|
size: 20,
|
|
298
313
|
className: "text-status-warning-text flex-shrink-0 mt-0.5"
|
|
299
|
-
}), /* @__PURE__ */
|
|
314
|
+
}), /* @__PURE__ */ D("div", {
|
|
300
315
|
className: "text-sm text-status-warning-text",
|
|
301
|
-
children: [/* @__PURE__ */
|
|
316
|
+
children: [/* @__PURE__ */ E("p", {
|
|
302
317
|
className: "font-medium",
|
|
303
|
-
children:
|
|
304
|
-
}), /* @__PURE__ */
|
|
318
|
+
children: N("devportal.appIsPublished", "This application is published")
|
|
319
|
+
}), /* @__PURE__ */ E("p", {
|
|
305
320
|
className: "mt-1 text-status-warning-text",
|
|
306
|
-
children:
|
|
321
|
+
children: N("devportal.publishedAppChangesWarning", "Changes to published apps may require re-review. Major changes will put the app back into review status.")
|
|
307
322
|
})]
|
|
308
323
|
})]
|
|
309
324
|
}),
|
|
310
|
-
/* @__PURE__ */
|
|
311
|
-
title:
|
|
312
|
-
description:
|
|
313
|
-
children: /* @__PURE__ */
|
|
325
|
+
/* @__PURE__ */ E(s, {
|
|
326
|
+
title: N("devportal.basicInformation", "Basic Information"),
|
|
327
|
+
description: N("devportal.basicInformationDescription", "Core details about your application"),
|
|
328
|
+
children: /* @__PURE__ */ D("div", {
|
|
314
329
|
className: "space-y-4",
|
|
315
330
|
children: [
|
|
316
|
-
/* @__PURE__ */
|
|
317
|
-
label:
|
|
318
|
-
value:
|
|
331
|
+
/* @__PURE__ */ E(d, {
|
|
332
|
+
label: N("devportal.applicationName", "Application Name"),
|
|
333
|
+
value: J.name,
|
|
319
334
|
onChange: (e) => $("name", e.target.value),
|
|
320
|
-
placeholder:
|
|
335
|
+
placeholder: N("devportal.applicationNamePlaceholder", "My Awesome App"),
|
|
321
336
|
required: !0,
|
|
322
|
-
error:
|
|
337
|
+
error: I.name
|
|
323
338
|
}),
|
|
324
|
-
/* @__PURE__ */
|
|
325
|
-
label:
|
|
326
|
-
value:
|
|
339
|
+
/* @__PURE__ */ E(d, {
|
|
340
|
+
label: N("devportal.slug", "Slug"),
|
|
341
|
+
value: J.slug,
|
|
327
342
|
onChange: (e) => $("slug", e.target.value.toLowerCase()),
|
|
328
|
-
placeholder:
|
|
343
|
+
placeholder: N("devportal.slugPlaceholder", "my-awesome-app"),
|
|
329
344
|
required: !0,
|
|
330
|
-
error:
|
|
331
|
-
hint:
|
|
345
|
+
error: I.slug,
|
|
346
|
+
hint: N("devportal.slugChangeWarning", "Changing the slug may break existing integrations")
|
|
332
347
|
}),
|
|
333
|
-
/* @__PURE__ */
|
|
334
|
-
label:
|
|
335
|
-
value:
|
|
348
|
+
/* @__PURE__ */ E(m, {
|
|
349
|
+
label: N("devportal.shortDescription", "Short Description"),
|
|
350
|
+
value: J.shortDescription,
|
|
336
351
|
onChange: (e) => $("shortDescription", e.target.value),
|
|
337
|
-
placeholder:
|
|
352
|
+
placeholder: N("devportal.shortDescriptionPlaceholder", "A brief description of what your app does"),
|
|
338
353
|
required: !0,
|
|
339
|
-
error:
|
|
340
|
-
hint: `${
|
|
354
|
+
error: I.shortDescription,
|
|
355
|
+
hint: `${J.shortDescription.length}/200 ${N("devportal.characters", "characters")}`,
|
|
341
356
|
rows: 2
|
|
342
357
|
}),
|
|
343
|
-
/* @__PURE__ */
|
|
344
|
-
label:
|
|
345
|
-
value:
|
|
358
|
+
/* @__PURE__ */ E(m, {
|
|
359
|
+
label: N("devportal.fullDescription", "Full Description"),
|
|
360
|
+
value: J.description,
|
|
346
361
|
onChange: (e) => $("description", e.target.value),
|
|
347
|
-
placeholder:
|
|
362
|
+
placeholder: N("devportal.fullDescriptionPlaceholder", "Detailed description of your application, features, and use cases..."),
|
|
348
363
|
rows: 6,
|
|
349
|
-
hint:
|
|
364
|
+
hint: N("devportal.markdownSupported", "Markdown formatting is supported")
|
|
350
365
|
})
|
|
351
366
|
]
|
|
352
367
|
})
|
|
353
368
|
}),
|
|
354
|
-
/* @__PURE__ */
|
|
355
|
-
title:
|
|
356
|
-
description:
|
|
369
|
+
/* @__PURE__ */ D(s, {
|
|
370
|
+
title: N("devportal.classification", "Classification"),
|
|
371
|
+
description: N("devportal.classificationDescription", "Categorize your application"),
|
|
357
372
|
children: [
|
|
358
|
-
/* @__PURE__ */
|
|
373
|
+
/* @__PURE__ */ D("div", {
|
|
359
374
|
className: "grid gap-4 sm:grid-cols-2",
|
|
360
375
|
children: [
|
|
361
|
-
/* @__PURE__ */
|
|
362
|
-
label:
|
|
363
|
-
value:
|
|
376
|
+
/* @__PURE__ */ E(f, {
|
|
377
|
+
label: N("devportal.applicationType", "Application Type"),
|
|
378
|
+
value: J.appType,
|
|
364
379
|
onChange: (e) => $("appType", e.target.value),
|
|
365
|
-
options:
|
|
380
|
+
options: fe,
|
|
366
381
|
required: !0,
|
|
367
|
-
error:
|
|
382
|
+
error: I.appType
|
|
368
383
|
}),
|
|
369
|
-
/* @__PURE__ */
|
|
370
|
-
label:
|
|
371
|
-
value:
|
|
384
|
+
/* @__PURE__ */ E(f, {
|
|
385
|
+
label: N("devportal.category", "Category"),
|
|
386
|
+
value: J.category,
|
|
372
387
|
onChange: (e) => $("category", e.target.value),
|
|
373
|
-
options:
|
|
388
|
+
options: me,
|
|
374
389
|
required: !0,
|
|
375
|
-
error:
|
|
390
|
+
error: I.category
|
|
376
391
|
}),
|
|
377
|
-
/* @__PURE__ */
|
|
378
|
-
label:
|
|
379
|
-
value:
|
|
392
|
+
/* @__PURE__ */ E(f, {
|
|
393
|
+
label: N("devportal.visibility", "Visibility"),
|
|
394
|
+
value: J.visibility,
|
|
380
395
|
onChange: (e) => $("visibility", e.target.value),
|
|
381
|
-
options:
|
|
382
|
-
hint:
|
|
396
|
+
options: pe,
|
|
397
|
+
hint: N("devportal.visibilityHint", "Controls who can see this app once published. Public apps still require admin review and approval before appearing in the store.")
|
|
383
398
|
})
|
|
384
399
|
]
|
|
385
400
|
}),
|
|
386
|
-
/* @__PURE__ */
|
|
387
|
-
label:
|
|
388
|
-
value:
|
|
401
|
+
/* @__PURE__ */ E(p, {
|
|
402
|
+
label: N("devportal.tags", "Tags"),
|
|
403
|
+
value: J.tags,
|
|
389
404
|
onChange: (e) => $("tags", e),
|
|
390
|
-
placeholder:
|
|
405
|
+
placeholder: N("devportal.addTagsPlaceholder", "Add tags (press Enter)")
|
|
391
406
|
}),
|
|
392
|
-
/* @__PURE__ */
|
|
393
|
-
label:
|
|
394
|
-
value:
|
|
407
|
+
/* @__PURE__ */ E(p, {
|
|
408
|
+
label: N("devportal.keywords", "Keywords"),
|
|
409
|
+
value: J.keywords,
|
|
395
410
|
onChange: (e) => $("keywords", e),
|
|
396
|
-
placeholder:
|
|
411
|
+
placeholder: N("devportal.addKeywordsPlaceholder", "Add keywords (press Enter)")
|
|
412
|
+
}),
|
|
413
|
+
(J.appType === "NODE" || J.appType === "WORKFLOW") && /* @__PURE__ */ D("div", {
|
|
414
|
+
className: "space-y-2",
|
|
415
|
+
children: [
|
|
416
|
+
/* @__PURE__ */ E("label", {
|
|
417
|
+
className: "block text-sm font-medium text-text-primary",
|
|
418
|
+
children: "Compatible Products"
|
|
419
|
+
}),
|
|
420
|
+
/* @__PURE__ */ D("p", {
|
|
421
|
+
className: "text-xs text-text-secondary",
|
|
422
|
+
children: [
|
|
423
|
+
"Select which products this ",
|
|
424
|
+
J.appType.toLowerCase(),
|
|
425
|
+
" ",
|
|
426
|
+
"works with. Users will see it in those products' node stores."
|
|
427
|
+
]
|
|
428
|
+
}),
|
|
429
|
+
/* @__PURE__ */ E("div", {
|
|
430
|
+
className: "flex flex-wrap gap-3",
|
|
431
|
+
children: de.map((e) => {
|
|
432
|
+
let n = X.includes(e.value);
|
|
433
|
+
return /* @__PURE__ */ D("label", {
|
|
434
|
+
className: t("flex items-center gap-2 cursor-pointer rounded-md border px-3 py-2 text-sm transition-colors", n ? "border-primary bg-primary/10 text-text-primary" : "border-border-subtle hover:border-border text-text-secondary hover:text-text-primary"),
|
|
435
|
+
children: [
|
|
436
|
+
/* @__PURE__ */ E("input", {
|
|
437
|
+
type: "checkbox",
|
|
438
|
+
className: "sr-only",
|
|
439
|
+
checked: n,
|
|
440
|
+
onChange: () => {
|
|
441
|
+
Z((t) => n ? t.filter((t) => t !== e.value) : [...t, e.value]), U(!0);
|
|
442
|
+
}
|
|
443
|
+
}),
|
|
444
|
+
n && /* @__PURE__ */ E(S, {
|
|
445
|
+
size: 14,
|
|
446
|
+
className: "text-primary flex-shrink-0"
|
|
447
|
+
}),
|
|
448
|
+
e.label
|
|
449
|
+
]
|
|
450
|
+
}, e.value);
|
|
451
|
+
})
|
|
452
|
+
})
|
|
453
|
+
]
|
|
397
454
|
})
|
|
398
455
|
]
|
|
399
456
|
}),
|
|
400
|
-
/* @__PURE__ */
|
|
401
|
-
title:
|
|
402
|
-
description:
|
|
403
|
-
children: /* @__PURE__ */
|
|
457
|
+
/* @__PURE__ */ E(s, {
|
|
458
|
+
title: N("devportal.links", "Links"),
|
|
459
|
+
description: N("devportal.linksDescription", "External resources for your application"),
|
|
460
|
+
children: /* @__PURE__ */ D("div", {
|
|
404
461
|
className: "grid gap-4 sm:grid-cols-2",
|
|
405
462
|
children: [
|
|
406
|
-
/* @__PURE__ */
|
|
407
|
-
label:
|
|
463
|
+
/* @__PURE__ */ E(d, {
|
|
464
|
+
label: N("devportal.websiteUrl", "Website URL"),
|
|
408
465
|
type: "url",
|
|
409
|
-
value:
|
|
466
|
+
value: J.websiteUrl,
|
|
410
467
|
onChange: (e) => $("websiteUrl", e.target.value),
|
|
411
|
-
placeholder:
|
|
468
|
+
placeholder: N("devportal.websiteUrlPlaceholder", "https://example.com")
|
|
412
469
|
}),
|
|
413
|
-
/* @__PURE__ */
|
|
414
|
-
label:
|
|
470
|
+
/* @__PURE__ */ E(d, {
|
|
471
|
+
label: N("devportal.documentationUrl", "Documentation URL"),
|
|
415
472
|
type: "url",
|
|
416
|
-
value:
|
|
473
|
+
value: J.documentationUrl,
|
|
417
474
|
onChange: (e) => $("documentationUrl", e.target.value),
|
|
418
|
-
placeholder:
|
|
475
|
+
placeholder: N("devportal.documentationUrlPlaceholder", "https://docs.example.com")
|
|
419
476
|
}),
|
|
420
|
-
/* @__PURE__ */
|
|
421
|
-
label:
|
|
477
|
+
/* @__PURE__ */ E(d, {
|
|
478
|
+
label: N("devportal.supportUrl", "Support URL"),
|
|
422
479
|
type: "url",
|
|
423
|
-
value:
|
|
480
|
+
value: J.supportUrl,
|
|
424
481
|
onChange: (e) => $("supportUrl", e.target.value),
|
|
425
|
-
placeholder:
|
|
482
|
+
placeholder: N("devportal.supportUrlPlaceholder", "https://support.example.com")
|
|
426
483
|
}),
|
|
427
|
-
/* @__PURE__ */
|
|
428
|
-
label:
|
|
484
|
+
/* @__PURE__ */ E(d, {
|
|
485
|
+
label: N("devportal.githubUrl", "GitHub URL"),
|
|
429
486
|
type: "url",
|
|
430
|
-
value:
|
|
487
|
+
value: J.githubUrl,
|
|
431
488
|
onChange: (e) => $("githubUrl", e.target.value),
|
|
432
|
-
placeholder:
|
|
489
|
+
placeholder: N("devportal.githubUrlPlaceholder", "https://github.com/org/repo")
|
|
433
490
|
}),
|
|
434
|
-
/* @__PURE__ */
|
|
435
|
-
label:
|
|
491
|
+
/* @__PURE__ */ E(d, {
|
|
492
|
+
label: N("devportal.privacyPolicyUrl", "Privacy Policy URL"),
|
|
436
493
|
type: "url",
|
|
437
|
-
value:
|
|
494
|
+
value: J.privacyPolicyUrl,
|
|
438
495
|
onChange: (e) => $("privacyPolicyUrl", e.target.value),
|
|
439
|
-
placeholder:
|
|
496
|
+
placeholder: N("devportal.privacyPolicyUrlPlaceholder", "https://example.com/privacy")
|
|
440
497
|
}),
|
|
441
|
-
/* @__PURE__ */
|
|
442
|
-
label:
|
|
498
|
+
/* @__PURE__ */ E(d, {
|
|
499
|
+
label: N("devportal.termsOfServiceUrl", "Terms of Service URL"),
|
|
443
500
|
type: "url",
|
|
444
|
-
value:
|
|
501
|
+
value: J.termsOfServiceUrl,
|
|
445
502
|
onChange: (e) => $("termsOfServiceUrl", e.target.value),
|
|
446
|
-
placeholder:
|
|
503
|
+
placeholder: N("devportal.termsOfServiceUrlPlaceholder", "https://example.com/terms")
|
|
447
504
|
})
|
|
448
505
|
]
|
|
449
506
|
})
|
|
450
507
|
}),
|
|
451
|
-
/* @__PURE__ */
|
|
452
|
-
title:
|
|
453
|
-
description:
|
|
454
|
-
children: /* @__PURE__ */
|
|
508
|
+
/* @__PURE__ */ E(s, {
|
|
509
|
+
title: N("devportal.settings", "Settings"),
|
|
510
|
+
description: N("devportal.settingsDescription", "Additional configuration options"),
|
|
511
|
+
children: /* @__PURE__ */ E("div", {
|
|
455
512
|
className: "space-y-4",
|
|
456
|
-
children: /* @__PURE__ */
|
|
457
|
-
label:
|
|
458
|
-
description:
|
|
459
|
-
checked:
|
|
513
|
+
children: /* @__PURE__ */ E(u, {
|
|
514
|
+
label: N("devportal.requireWorkspaceAdminApproval", "Require workspace admin approval"),
|
|
515
|
+
description: N("devportal.requireWorkspaceAdminApprovalDescription", "When enabled, workspace admins must approve installations before users can access this app"),
|
|
516
|
+
checked: J.requiresApproval,
|
|
460
517
|
onChange: (e) => $("requiresApproval", e.target.checked)
|
|
461
518
|
})
|
|
462
519
|
})
|
|
463
520
|
}),
|
|
464
|
-
/* @__PURE__ */
|
|
521
|
+
De && /* @__PURE__ */ D("div", {
|
|
522
|
+
className: "rounded-lg border border-border-subtle bg-bg-sunken p-4 space-y-2",
|
|
523
|
+
children: [/* @__PURE__ */ D("p", {
|
|
524
|
+
className: "text-sm font-medium text-text-primary flex items-center gap-2",
|
|
525
|
+
children: [/* @__PURE__ */ E(ce, { size: 14 }), N("devportal.submissionChecklist", "Submission Checklist")]
|
|
526
|
+
}), [
|
|
527
|
+
{
|
|
528
|
+
label: N("devportal.checkName", "Name set"),
|
|
529
|
+
ok: !!J.name.trim()
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
label: N("devportal.checkShortDesc", "Short description set"),
|
|
533
|
+
ok: !!J.shortDescription.trim()
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
label: N("devportal.checkFullDesc", "Full description added"),
|
|
537
|
+
ok: !!J.description.trim()
|
|
538
|
+
},
|
|
539
|
+
{
|
|
540
|
+
label: N("devportal.checkCategory", "Category selected"),
|
|
541
|
+
ok: !!J.category
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
label: N("devportal.checkVisibility", "Visibility set to Public or Unlisted"),
|
|
545
|
+
ok: !!J.visibility && J.visibility !== "PRIVATE"
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
label: N("devportal.checkSaved", "All changes saved"),
|
|
549
|
+
ok: !H
|
|
550
|
+
},
|
|
551
|
+
...q?.appType === "NODE" || q?.appType === "WORKFLOW" ? [{
|
|
552
|
+
label: N("devportal.checkVersion", "At least one version uploaded"),
|
|
553
|
+
ok: (W?.application?.versions?.totalCount ?? 0) > 0
|
|
554
|
+
}] : []
|
|
555
|
+
].map((e) => /* @__PURE__ */ D("div", {
|
|
556
|
+
className: "flex items-center gap-2 text-sm",
|
|
557
|
+
children: [e.ok ? /* @__PURE__ */ E("span", {
|
|
558
|
+
className: "text-status-success-text",
|
|
559
|
+
children: "✓"
|
|
560
|
+
}) : /* @__PURE__ */ E("span", {
|
|
561
|
+
className: "text-status-error-text",
|
|
562
|
+
children: "✗"
|
|
563
|
+
}), /* @__PURE__ */ E("span", {
|
|
564
|
+
className: e.ok ? "text-text-secondary line-through" : "text-text-primary",
|
|
565
|
+
children: e.label
|
|
566
|
+
})]
|
|
567
|
+
}, e.label))]
|
|
568
|
+
}),
|
|
569
|
+
/* @__PURE__ */ D("div", {
|
|
465
570
|
className: "flex flex-col gap-4 border-t pt-6",
|
|
466
|
-
children: [/* @__PURE__ */
|
|
467
|
-
className: "flex items-center justify-
|
|
468
|
-
children:
|
|
469
|
-
className: "flex items-center gap-2",
|
|
470
|
-
children: we && /* @__PURE__ */ O("button", {
|
|
471
|
-
type: "button",
|
|
472
|
-
onClick: Ce,
|
|
473
|
-
disabled: F || W,
|
|
474
|
-
className: "inline-flex items-center gap-2 rounded-md border border-primary bg-action-primary-bg/10 px-4 py-2 text-sm font-medium text-primary hover:bg-action-primary-bg/20 transition-colors disabled:opacity-50",
|
|
475
|
-
children: [/* @__PURE__ */ D(oe, { size: 16 }), P("devportal.submitForReview", "Submit for Review")]
|
|
476
|
-
})
|
|
477
|
-
}), /* @__PURE__ */ D("button", {
|
|
571
|
+
children: [/* @__PURE__ */ E("div", {
|
|
572
|
+
className: "flex items-center justify-end",
|
|
573
|
+
children: /* @__PURE__ */ E("button", {
|
|
478
574
|
type: "submit",
|
|
479
|
-
disabled:
|
|
480
|
-
"aria-disabled": !
|
|
575
|
+
disabled: P || !H || !j,
|
|
576
|
+
"aria-disabled": !j,
|
|
481
577
|
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 transition-colors disabled:opacity-50",
|
|
482
|
-
children:
|
|
483
|
-
})
|
|
484
|
-
}), /* @__PURE__ */
|
|
578
|
+
children: P ? /* @__PURE__ */ D(T, { children: [/* @__PURE__ */ E("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }), N("devportal.saving", "Saving...")] }) : /* @__PURE__ */ D(T, { children: [/* @__PURE__ */ E(w, { size: 16 }), N("devportal.saveChanges", "Save Changes")] })
|
|
579
|
+
})
|
|
580
|
+
}), /* @__PURE__ */ D("div", {
|
|
485
581
|
className: "rounded-lg border border-border-subtle bg-status-error-bg-subtle p-4",
|
|
486
582
|
children: [
|
|
487
|
-
/* @__PURE__ */
|
|
583
|
+
/* @__PURE__ */ E("h3", {
|
|
488
584
|
className: "text-sm font-medium text-status-error-text",
|
|
489
|
-
children:
|
|
585
|
+
children: N("devportal.dangerZone", "Danger Zone")
|
|
490
586
|
}),
|
|
491
|
-
/* @__PURE__ */
|
|
587
|
+
/* @__PURE__ */ E("p", {
|
|
492
588
|
className: "mt-1 text-sm text-status-error-text",
|
|
493
|
-
children:
|
|
589
|
+
children: N("devportal.dangerZoneWarning", "These actions are irreversible. Please proceed with caution.")
|
|
494
590
|
}),
|
|
495
|
-
/* @__PURE__ */
|
|
591
|
+
/* @__PURE__ */ D("div", {
|
|
496
592
|
className: "mt-4 flex gap-3",
|
|
497
593
|
children: [
|
|
498
|
-
|
|
594
|
+
Oe && /* @__PURE__ */ D("button", {
|
|
499
595
|
type: "button",
|
|
500
|
-
onClick: () =>
|
|
596
|
+
onClick: () => B(!0),
|
|
501
597
|
className: "inline-flex items-center gap-2 rounded-md border border-accent-orange bg-bg-surface px-3 py-1.5 text-sm font-medium text-accent-orange hover:bg-accent-orange-subtle transition-colors",
|
|
502
|
-
children: [/* @__PURE__ */
|
|
598
|
+
children: [/* @__PURE__ */ E(x, { size: 14 }), N("devportal.deprecateApp", "Deprecate App")]
|
|
503
599
|
}),
|
|
504
|
-
|
|
600
|
+
ke && /* @__PURE__ */ D("button", {
|
|
505
601
|
type: "button",
|
|
506
|
-
onClick: () =>
|
|
602
|
+
onClick: () => V(!0),
|
|
507
603
|
className: "inline-flex items-center gap-2 rounded-md border border-accent-orange bg-bg-surface px-3 py-1.5 text-sm font-medium text-accent-orange hover:bg-accent-orange-subtle transition-colors",
|
|
508
|
-
children: [/* @__PURE__ */
|
|
604
|
+
children: [/* @__PURE__ */ E(C, { size: 14 }), N("devportal.deactivateApp", "Deactivate App")]
|
|
509
605
|
}),
|
|
510
|
-
/* @__PURE__ */
|
|
606
|
+
/* @__PURE__ */ D("button", {
|
|
511
607
|
type: "button",
|
|
512
|
-
onClick: () =>
|
|
513
|
-
disabled: !
|
|
514
|
-
"aria-disabled": !
|
|
608
|
+
onClick: () => z(!0),
|
|
609
|
+
disabled: !M,
|
|
610
|
+
"aria-disabled": !M,
|
|
515
611
|
className: "inline-flex items-center gap-2 rounded-md border border-status-error-bg bg-bg-surface px-3 py-1.5 text-sm font-medium text-status-error-text hover:bg-status-error-bg-subtle transition-colors disabled:opacity-50",
|
|
516
|
-
children: [/* @__PURE__ */
|
|
612
|
+
children: [/* @__PURE__ */ E(le, { size: 14 }), N("devportal.deleteApp", "Delete App")]
|
|
517
613
|
})
|
|
518
614
|
]
|
|
519
615
|
})
|
|
@@ -522,38 +618,38 @@ var k = () => {
|
|
|
522
618
|
})
|
|
523
619
|
]
|
|
524
620
|
}),
|
|
525
|
-
/* @__PURE__ */
|
|
526
|
-
open:
|
|
527
|
-
onOpenChange:
|
|
528
|
-
title:
|
|
529
|
-
description:
|
|
530
|
-
confirmLabel:
|
|
621
|
+
/* @__PURE__ */ E(h, {
|
|
622
|
+
open: R,
|
|
623
|
+
onOpenChange: z,
|
|
624
|
+
title: N("devportal.deleteApplication", "Delete Application"),
|
|
625
|
+
description: N("devportal.deleteApplicationConfirm", `Are you sure you want to delete "${q.name}"? This action cannot be undone. All OAuth clients, API keys, webhooks, and analytics data will be permanently deleted.`),
|
|
626
|
+
confirmLabel: N("devportal.deleteApplication", "Delete Application"),
|
|
531
627
|
variant: "destructive",
|
|
532
|
-
onConfirm:
|
|
628
|
+
onConfirm: we
|
|
533
629
|
}),
|
|
534
|
-
/* @__PURE__ */
|
|
535
|
-
open:
|
|
536
|
-
onOpenChange:
|
|
537
|
-
title:
|
|
538
|
-
description:
|
|
539
|
-
confirmLabel:
|
|
630
|
+
/* @__PURE__ */ E(h, {
|
|
631
|
+
open: ge,
|
|
632
|
+
onOpenChange: B,
|
|
633
|
+
title: N("devportal.deprecateApplication", "Deprecate Application"),
|
|
634
|
+
description: N("devportal.deprecateApplicationConfirm", `Are you sure you want to deprecate "${q.name}"? Existing users will still be able to use the app, but it will no longer be visible in the marketplace and new installations will be disabled.`),
|
|
635
|
+
confirmLabel: N("devportal.deprecateApplication", "Deprecate Application"),
|
|
540
636
|
variant: "warning",
|
|
541
|
-
onConfirm:
|
|
637
|
+
onConfirm: Te
|
|
542
638
|
}),
|
|
543
|
-
/* @__PURE__ */
|
|
544
|
-
open:
|
|
545
|
-
onOpenChange:
|
|
546
|
-
title:
|
|
547
|
-
description:
|
|
548
|
-
confirmLabel:
|
|
639
|
+
/* @__PURE__ */ E(h, {
|
|
640
|
+
open: _e,
|
|
641
|
+
onOpenChange: V,
|
|
642
|
+
title: N("devportal.deactivateApplication", "Deactivate Application"),
|
|
643
|
+
description: N("devportal.deactivateApplicationConfirm", `Are you sure you want to deactivate "${q.name}"? This will revoke all active tokens and disable the app from the auth-svc layer. The app will no longer be able to authenticate or act on behalf of users.`),
|
|
644
|
+
confirmLabel: N("devportal.deactivateApplication", "Deactivate Application"),
|
|
549
645
|
variant: "destructive",
|
|
550
|
-
onConfirm:
|
|
646
|
+
onConfirm: Ee
|
|
551
647
|
})
|
|
552
648
|
]
|
|
553
649
|
})
|
|
554
650
|
});
|
|
555
651
|
};
|
|
556
652
|
//#endregion
|
|
557
|
-
export {
|
|
653
|
+
export { O as EditApplicationPage };
|
|
558
654
|
|
|
559
655
|
//# sourceMappingURL=EditApplicationPage.js.map
|