@burdenoff/microfe-export 2026.830.1 → 2026.830.2
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/export/ExportRoot.d.ts.map +1 -1
- package/dist/export/ExportRoot.js +41 -36
- package/dist/export/ExportRoot.js.map +1 -1
- package/dist/export/ExportRoutes.d.ts.map +1 -1
- package/dist/export/ExportRoutes.js +75 -66
- package/dist/export/ExportRoutes.js.map +1 -1
- package/dist/export/components/ExportProgressBar.d.ts.map +1 -1
- package/dist/export/components/ExportProgressBar.js +19 -18
- package/dist/export/components/ExportProgressBar.js.map +1 -1
- package/dist/export/components/ExportStatusBadge.d.ts.map +1 -1
- package/dist/export/components/ExportStatusBadge.js +19 -20
- package/dist/export/components/ExportStatusBadge.js.map +1 -1
- package/dist/export/hooks/useTr.d.ts +19 -0
- package/dist/export/hooks/useTr.d.ts.map +1 -0
- package/dist/export/hooks/useTr.js +15 -0
- package/dist/export/hooks/useTr.js.map +1 -0
- package/dist/export/index.d.ts +1 -0
- package/dist/export/index.d.ts.map +1 -1
- package/dist/export/index.js +1 -0
- package/dist/export/pages/CreateExportPage.d.ts +4 -0
- package/dist/export/pages/CreateExportPage.d.ts.map +1 -1
- package/dist/export/pages/CreateExportPage.js +271 -283
- package/dist/export/pages/CreateExportPage.js.map +1 -1
- package/dist/export/pages/ExportDashboardPage.d.ts.map +1 -1
- package/dist/export/pages/ExportDashboardPage.js +71 -72
- package/dist/export/pages/ExportDashboardPage.js.map +1 -1
- package/dist/export/pages/ExportDetailPage.d.ts.map +1 -1
- package/dist/export/pages/ExportDetailPage.js +171 -173
- package/dist/export/pages/ExportDetailPage.js.map +1 -1
- package/dist/export/pages/ExportHistoryPage.d.ts.map +1 -1
- package/dist/export/pages/ExportHistoryPage.js +110 -111
- package/dist/export/pages/ExportHistoryPage.js.map +1 -1
- package/dist/export/pages/ExportLandingPage.d.ts.map +1 -1
- package/dist/export/pages/ExportLandingPage.js +28 -27
- package/dist/export/pages/ExportLandingPage.js.map +1 -1
- package/dist/export/pages/ExportTemplatesPage.d.ts.map +1 -1
- package/dist/export/pages/ExportTemplatesPage.js +115 -116
- package/dist/export/pages/ExportTemplatesPage.js.map +1 -1
- package/dist/export/pages/TemplateDetailPage.d.ts.map +1 -1
- package/dist/export/pages/TemplateDetailPage.js +122 -118
- package/dist/export/pages/TemplateDetailPage.js.map +1 -1
- package/dist/export/utils/i18n.d.ts +18 -2
- package/dist/export/utils/i18n.d.ts.map +1 -1
- package/dist/export/utils/i18n.js +2 -9
- package/dist/export/utils/i18n.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/translations/en.d.ts +454 -0
- package/dist/translations/en.d.ts.map +1 -0
- package/dist/translations/en.js +417 -0
- package/dist/translations/en.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,263 +1,247 @@
|
|
|
1
1
|
import { useExport as e } from "../providers/ExportProvider.js";
|
|
2
|
-
import {
|
|
2
|
+
import { useTr as t } from "../hooks/useTr.js";
|
|
3
|
+
import { useAvailableEntities as n, useCreateExportJob as r, useExportTemplates as ee } from "../hooks/useExportQueries.js";
|
|
3
4
|
import { cn as i } from "../utils/cn.js";
|
|
4
5
|
import { getFormatDisplayName as a } from "../constants/enums.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { ArrowLeft as re, ArrowRight as l, Building2 as u, CalendarRange as ie, CheckCircle2 as d, Download as f, FileJson as p, FileSpreadsheet as m, Loader2 as ae, Lock as h, Package as g, User as _, Users as v } from "lucide-react";
|
|
6
|
+
import { PageLayout as te } from "../components/PageLayout.js";
|
|
7
|
+
import { isExportEntityDisabled as o } from "../utils/disabledModules.js";
|
|
8
|
+
import { useEffect as s, useRef as c, useState as l } from "react";
|
|
9
|
+
import { ArrowLeft as ne, ArrowRight as u, Building2 as d, CalendarRange as f, CheckCircle2 as p, Download as m, FileJson as h, FileSpreadsheet as g, Loader2 as re, Lock as ie, Package as ae, User as _, Users as v } from "lucide-react";
|
|
10
10
|
import { usePermission as y } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
11
|
-
import { useSearchParams as
|
|
12
|
-
import { isQuotaExhaustedError as
|
|
13
|
-
import { jsx as
|
|
14
|
-
import {
|
|
15
|
-
import { AlertDialog as le, AlertDialogAction as ue, AlertDialogCancel as de, AlertDialogContent as fe, AlertDialogDescription as pe, AlertDialogFooter as me, AlertDialogHeader as he, AlertDialogTitle as ge, EmphasisPanel as _e, IllustratedEmptyState as ve, PagePurpose as ye, ShowMore as be } from "@burdenoff/fe-libs/ui";
|
|
11
|
+
import { useSearchParams as b } from "react-router";
|
|
12
|
+
import { isQuotaExhaustedError as x } from "@burdenoff/fe-libs/shared/utils";
|
|
13
|
+
import { jsx as S, jsxs as C } from "react/jsx-runtime";
|
|
14
|
+
import { AlertDialog as oe, AlertDialogAction as se, AlertDialogCancel as ce, AlertDialogContent as le, AlertDialogDescription as ue, AlertDialogFooter as de, AlertDialogHeader as fe, AlertDialogTitle as pe, EmphasisPanel as me, IllustratedEmptyState as he, PagePurpose as ge, ShowMore as _e } from "@burdenoff/fe-libs/ui";
|
|
16
15
|
//#region src/export/pages/CreateExportPage.tsx
|
|
17
|
-
var
|
|
18
|
-
CSV:
|
|
19
|
-
JSON:
|
|
20
|
-
},
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
Icon: v
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
value: "ORG_ADMIN",
|
|
35
|
-
label: "All Organization Data",
|
|
36
|
-
description: "Export data from every workspace in your organization. Requires org-admin access.",
|
|
37
|
-
Icon: u
|
|
38
|
-
}
|
|
39
|
-
];
|
|
40
|
-
function C() {
|
|
41
|
-
let { basePath: u = "/", navigate: p, organizationId: m } = e(), { t: _ } = ce(), v = (e, t, n) => ee(_, e, t, n), { createJob: C, isPending: w } = n(), { data: T } = t(), { data: E } = r(), [D] = oe(), O = y("export:workspace:admin"), k = y("export:org:admin"), [A, j] = c("entities"), [M, N] = c([]), [P, F] = c(""), [I, L] = c("CSV"), [R, Ce] = c("INDIVIDUAL"), [z, B] = c(D.get("templateId") ?? void 0), [V, we] = c(""), [H, Te] = c(""), [U, W] = c(null), [Ee, G] = c(!1), K = ne(null);
|
|
42
|
-
te(() => {
|
|
43
|
-
let e = D.get("templateId");
|
|
44
|
-
if (!e || !E?.length || K.current === e) return;
|
|
45
|
-
let t = E.find((t) => t.id === e);
|
|
16
|
+
var w = ["CSV", "JSON"], ve = {
|
|
17
|
+
CSV: g,
|
|
18
|
+
JSON: h
|
|
19
|
+
}, T = {
|
|
20
|
+
INDIVIDUAL: _,
|
|
21
|
+
WORKSPACE_ADMIN: v,
|
|
22
|
+
ORG_ADMIN: d
|
|
23
|
+
};
|
|
24
|
+
function E() {
|
|
25
|
+
let { basePath: d = "/", navigate: h, organizationId: g } = e(), _ = t(), { createJob: v, isPending: E } = r(), { data: ye } = n(), { data: D } = ee(), [O] = b(), k = y("export:workspace:admin"), A = y("export:org:admin"), [j, M] = l("entities"), [N, P] = l([]), [F, I] = l(""), [L, R] = l("CSV"), [z, be] = l("INDIVIDUAL"), [B, V] = l(O.get("templateId") ?? void 0), [H, xe] = l(""), [U, Se] = l(""), [W, G] = l(null), [Ce, K] = l(!1), q = c(null);
|
|
26
|
+
s(() => {
|
|
27
|
+
let e = O.get("templateId");
|
|
28
|
+
if (!e || !D?.length || q.current === e) return;
|
|
29
|
+
let t = D.find((t) => t.id === e);
|
|
46
30
|
if (!t) return;
|
|
47
|
-
|
|
31
|
+
q.current = e, V(t.id), P((t.entityTypes ?? []).filter((e) => !o(e)));
|
|
48
32
|
let n = t.format?.toUpperCase();
|
|
49
|
-
n &&
|
|
50
|
-
}, [
|
|
51
|
-
let
|
|
52
|
-
|
|
53
|
-
},
|
|
54
|
-
if (
|
|
55
|
-
if (
|
|
56
|
-
|
|
33
|
+
n && w.includes(n) && R(n), t.name && I(t.name);
|
|
34
|
+
}, [O, D]);
|
|
35
|
+
let we = () => {
|
|
36
|
+
j === "options" ? M("entities") : j === "review" ? M("options") : h?.(d);
|
|
37
|
+
}, Te = () => {
|
|
38
|
+
if (j === "entities") {
|
|
39
|
+
if (N.length === 0) {
|
|
40
|
+
G(_("export.create.errors.selectEntity", "Please select at least one entity type to export"));
|
|
57
41
|
return;
|
|
58
42
|
}
|
|
59
|
-
|
|
60
|
-
} else if (
|
|
61
|
-
if (!
|
|
62
|
-
|
|
43
|
+
G(null), M("options");
|
|
44
|
+
} else if (j === "options") {
|
|
45
|
+
if (!F.trim()) {
|
|
46
|
+
G(_("export.create.errors.exportNameRequired", "Please provide a name for this export"));
|
|
63
47
|
return;
|
|
64
48
|
}
|
|
65
|
-
|
|
49
|
+
G(null), M("review");
|
|
66
50
|
}
|
|
67
|
-
},
|
|
51
|
+
}, Ee = async () => {
|
|
68
52
|
try {
|
|
69
|
-
|
|
70
|
-
name:
|
|
71
|
-
entityTypes:
|
|
72
|
-
format:
|
|
73
|
-
exportScope:
|
|
74
|
-
organizationId:
|
|
75
|
-
templateId:
|
|
76
|
-
dateRangeStart:
|
|
77
|
-
dateRangeEnd:
|
|
78
|
-
}),
|
|
53
|
+
G(null), await v({
|
|
54
|
+
name: F,
|
|
55
|
+
entityTypes: N,
|
|
56
|
+
format: L,
|
|
57
|
+
exportScope: z,
|
|
58
|
+
organizationId: z === "ORG_ADMIN" ? g : void 0,
|
|
59
|
+
templateId: B,
|
|
60
|
+
dateRangeStart: H ? new Date(H).toISOString() : null,
|
|
61
|
+
dateRangeEnd: U ? new Date(U).toISOString() : null
|
|
62
|
+
}), h?.(d);
|
|
79
63
|
} catch (e) {
|
|
80
|
-
if (
|
|
81
|
-
|
|
64
|
+
if (x(e)) {
|
|
65
|
+
K(!0), G(_("export.create.errors.quotaReached", "You have reached your export limit for this month."));
|
|
82
66
|
return;
|
|
83
67
|
}
|
|
84
|
-
|
|
68
|
+
G(e instanceof Error ? e.message : _("export.create.errors.createFailed", "Failed to create export"));
|
|
85
69
|
}
|
|
86
|
-
},
|
|
87
|
-
|
|
70
|
+
}, De = (e) => {
|
|
71
|
+
o(e) || P((t) => t.includes(e) ? t.filter((t) => t !== e) : [...t, e]);
|
|
88
72
|
}, J = (e) => {
|
|
89
73
|
switch (e) {
|
|
90
|
-
case "INDIVIDUAL": return
|
|
91
|
-
case "WORKSPACE_ADMIN": return
|
|
92
|
-
case "ORG_ADMIN": return
|
|
74
|
+
case "INDIVIDUAL": return _("export.create.scope.individual.label", "My Data Only");
|
|
75
|
+
case "WORKSPACE_ADMIN": return _("export.create.scope.workspaceAdmin.label", "All Workspace Data");
|
|
76
|
+
case "ORG_ADMIN": return _("export.create.scope.orgAdmin.label", "All Organization Data");
|
|
93
77
|
default: return e;
|
|
94
78
|
}
|
|
95
|
-
},
|
|
79
|
+
}, Oe = (e) => {
|
|
96
80
|
switch (e) {
|
|
97
|
-
case "INDIVIDUAL": return
|
|
98
|
-
case "WORKSPACE_ADMIN": return
|
|
99
|
-
case "ORG_ADMIN": return
|
|
81
|
+
case "INDIVIDUAL": return _("export.create.scope.individual.description", "Export data you personally created across selected modules.");
|
|
82
|
+
case "WORKSPACE_ADMIN": return _("export.create.scope.workspaceAdmin.description", "Export all data in this workspace regardless of who created it. Requires workspace admin access.");
|
|
83
|
+
case "ORG_ADMIN": return _("export.create.scope.orgAdmin.description", "Export data from every workspace in your organization. Requires org-admin access.");
|
|
100
84
|
default: return "";
|
|
101
85
|
}
|
|
102
86
|
}, Y = {
|
|
103
87
|
users: {
|
|
104
|
-
label:
|
|
105
|
-
description:
|
|
88
|
+
label: _("export.create.entities.users.label", "Users"),
|
|
89
|
+
description: _("export.create.entities.users.description", "Workspace members and profiles")
|
|
106
90
|
},
|
|
107
91
|
projects: {
|
|
108
|
-
label:
|
|
109
|
-
description:
|
|
92
|
+
label: _("export.create.entities.projects.label", "Projects"),
|
|
93
|
+
description: _("export.create.entities.projects.description", "Projects and their metadata")
|
|
110
94
|
},
|
|
111
95
|
tasks: {
|
|
112
|
-
label:
|
|
113
|
-
description:
|
|
96
|
+
label: _("export.create.entities.tasks.label", "Tasks"),
|
|
97
|
+
description: _("export.create.entities.tasks.description", "Task items and assignments")
|
|
114
98
|
},
|
|
115
99
|
files: {
|
|
116
|
-
label:
|
|
117
|
-
description:
|
|
100
|
+
label: _("export.create.entities.files.label", "Files"),
|
|
101
|
+
description: _("export.create.entities.files.description", "File metadata and references")
|
|
118
102
|
},
|
|
119
103
|
conversations: {
|
|
120
|
-
label:
|
|
121
|
-
description:
|
|
104
|
+
label: _("export.create.entities.conversations.label", "Conversations"),
|
|
105
|
+
description: _("export.create.entities.conversations.description", "Chat messages and threads")
|
|
122
106
|
},
|
|
123
107
|
tags: {
|
|
124
|
-
label:
|
|
125
|
-
description:
|
|
108
|
+
label: _("export.create.entities.tags.label", "Tags"),
|
|
109
|
+
description: _("export.create.entities.tags.description", "Tags and vocabularies")
|
|
126
110
|
},
|
|
127
111
|
activity: {
|
|
128
|
-
label:
|
|
129
|
-
description:
|
|
112
|
+
label: _("export.create.entities.activity.label", "Activity Logs"),
|
|
113
|
+
description: _("export.create.entities.activity.description", "Audit trail and activity history")
|
|
130
114
|
},
|
|
131
115
|
calendar: {
|
|
132
|
-
label:
|
|
133
|
-
description:
|
|
116
|
+
label: _("export.create.entities.calendar.label", "Calendar Events"),
|
|
117
|
+
description: _("export.create.entities.calendar.description", "Events and bookings")
|
|
134
118
|
}
|
|
135
|
-
}, X =
|
|
136
|
-
let n = !t &&
|
|
137
|
-
return /* @__PURE__ */
|
|
119
|
+
}, X = ye.filter((e) => e.enabled !== !1), Z = X.filter((e) => !o(e.entityType)), Q = X.filter((e) => o(e.entityType)), $ = (e, t) => {
|
|
120
|
+
let n = !t && N.includes(e.entityType);
|
|
121
|
+
return /* @__PURE__ */ C("button", {
|
|
138
122
|
type: "button",
|
|
139
|
-
onClick: () =>
|
|
123
|
+
onClick: () => De(e.entityType),
|
|
140
124
|
disabled: t,
|
|
141
125
|
"aria-disabled": t,
|
|
142
|
-
title: t ?
|
|
126
|
+
title: t ? _("export.create.select.unavailableHint", "Export for this product isn't available yet") : void 0,
|
|
143
127
|
className: i("text-left border-2 rounded-xl p-4 transition-all duration-200", t ? "border-border-subtle/30 opacity-50 cursor-not-allowed" : n ? "border-primary bg-action-primary-bg/5 shadow-md" : "border-border-subtle/50 hover:border-primary/30 hover:shadow-sm"),
|
|
144
128
|
children: [
|
|
145
|
-
/* @__PURE__ */
|
|
129
|
+
/* @__PURE__ */ C("div", {
|
|
146
130
|
className: "flex items-center justify-between mb-2 gap-2",
|
|
147
|
-
children: [/* @__PURE__ */
|
|
131
|
+
children: [/* @__PURE__ */ S("h3", {
|
|
148
132
|
className: "font-semibold",
|
|
149
133
|
children: Y[e.entityType]?.label ?? e.displayName
|
|
150
|
-
}), t ? /* @__PURE__ */
|
|
134
|
+
}), t ? /* @__PURE__ */ S("span", {
|
|
151
135
|
className: "shrink-0 text-xs font-medium px-2 py-0.5 rounded-full bg-bg-sunken text-text-secondary",
|
|
152
|
-
children:
|
|
153
|
-
}) : n && /* @__PURE__ */
|
|
136
|
+
children: _("export.create.select.unavailable", "Unavailable")
|
|
137
|
+
}) : n && /* @__PURE__ */ S(p, {
|
|
154
138
|
size: 18,
|
|
155
139
|
className: "text-primary"
|
|
156
140
|
})]
|
|
157
141
|
}),
|
|
158
|
-
/* @__PURE__ */
|
|
142
|
+
/* @__PURE__ */ S("p", {
|
|
159
143
|
className: "text-sm text-text-secondary",
|
|
160
144
|
children: Y[e.entityType]?.description ?? e.description
|
|
161
145
|
}),
|
|
162
|
-
e.estimatedSize && /* @__PURE__ */
|
|
146
|
+
e.estimatedSize && /* @__PURE__ */ C("p", {
|
|
163
147
|
className: "text-xs text-text-secondary mt-2",
|
|
164
148
|
children: ["~", e.estimatedSize]
|
|
165
149
|
})
|
|
166
150
|
]
|
|
167
151
|
}, e.entityType);
|
|
168
152
|
};
|
|
169
|
-
return /* @__PURE__ */
|
|
153
|
+
return /* @__PURE__ */ C(te, {
|
|
170
154
|
showHeader: !1,
|
|
171
155
|
children: [
|
|
172
|
-
/* @__PURE__ */
|
|
156
|
+
/* @__PURE__ */ S("div", {
|
|
173
157
|
className: "relative overflow-hidden rounded-xl bg-accent-wash border border-border-seam p-6 shadow-[var(--shadow-pop)]",
|
|
174
|
-
children: /* @__PURE__ */
|
|
158
|
+
children: /* @__PURE__ */ C("div", {
|
|
175
159
|
className: "relative z-10 flex items-center gap-4",
|
|
176
|
-
children: [/* @__PURE__ */
|
|
160
|
+
children: [/* @__PURE__ */ S("button", {
|
|
177
161
|
type: "button",
|
|
178
|
-
onClick: () =>
|
|
162
|
+
onClick: () => h?.(d),
|
|
179
163
|
className: "p-2.5 hover:bg-accent rounded-lg transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",
|
|
180
|
-
"aria-label":
|
|
181
|
-
children: /* @__PURE__ */
|
|
182
|
-
}), /* @__PURE__ */
|
|
164
|
+
"aria-label": _("export.create.actions.backToDashboard", "Back to export dashboard"),
|
|
165
|
+
children: /* @__PURE__ */ S(ne, { size: 20 })
|
|
166
|
+
}), /* @__PURE__ */ C("div", {
|
|
183
167
|
className: "flex items-center gap-3",
|
|
184
|
-
children: [/* @__PURE__ */
|
|
168
|
+
children: [/* @__PURE__ */ S("div", {
|
|
185
169
|
className: "p-2.5 rounded-lg bg-action-primary-bg/10 backdrop-blur-sm",
|
|
186
|
-
children: /* @__PURE__ */
|
|
170
|
+
children: /* @__PURE__ */ S(m, {
|
|
187
171
|
size: 24,
|
|
188
172
|
className: "text-primary"
|
|
189
173
|
})
|
|
190
|
-
}), /* @__PURE__ */
|
|
174
|
+
}), /* @__PURE__ */ S("h1", {
|
|
191
175
|
className: "text-2xl sm:text-3xl font-bold",
|
|
192
|
-
children:
|
|
176
|
+
children: _("export.create.title", "New Export")
|
|
193
177
|
})]
|
|
194
178
|
})]
|
|
195
179
|
})
|
|
196
180
|
}),
|
|
197
|
-
/* @__PURE__ */
|
|
198
|
-
icon: /* @__PURE__ */
|
|
199
|
-
children:
|
|
181
|
+
/* @__PURE__ */ S(ge, {
|
|
182
|
+
icon: /* @__PURE__ */ S(m, { size: 16 }),
|
|
183
|
+
children: _("export.create.purpose", "Build a one-off export in three steps: pick which data to include, choose a format and scope, then review and start it. The export runs in the background and produces a downloadable ZIP you can grab from History when it finishes.")
|
|
200
184
|
}),
|
|
201
|
-
/* @__PURE__ */
|
|
185
|
+
/* @__PURE__ */ S("div", {
|
|
202
186
|
className: "flex items-center gap-2 justify-center flex-wrap",
|
|
203
187
|
children: [
|
|
204
188
|
"entities",
|
|
205
189
|
"options",
|
|
206
190
|
"review"
|
|
207
|
-
].map((e, t) => /* @__PURE__ */
|
|
191
|
+
].map((e, t) => /* @__PURE__ */ C("div", {
|
|
208
192
|
className: "flex items-center gap-2",
|
|
209
|
-
children: [t > 0 && /* @__PURE__ */
|
|
193
|
+
children: [t > 0 && /* @__PURE__ */ S(u, {
|
|
210
194
|
size: 18,
|
|
211
195
|
className: "text-text-secondary"
|
|
212
|
-
}), /* @__PURE__ */
|
|
213
|
-
className: i("flex items-center gap-2 px-4 py-2.5 rounded-lg text-sm font-medium border-2 transition-all duration-200",
|
|
214
|
-
children: [/* @__PURE__ */
|
|
196
|
+
}), /* @__PURE__ */ C("div", {
|
|
197
|
+
className: i("flex items-center gap-2 px-4 py-2.5 rounded-lg text-sm font-medium border-2 transition-all duration-200", j === e ? "bg-action-primary-bg text-action-primary-text border-primary shadow-[var(--shadow-pop)]" : "bg-bg-sunken/50 text-text-secondary border-border-seam"),
|
|
198
|
+
children: [/* @__PURE__ */ S("div", {
|
|
215
199
|
className: "flex items-center justify-center size-6 rounded-full bg-bg-surface/20 font-bold",
|
|
216
200
|
children: t + 1
|
|
217
|
-
}), /* @__PURE__ */
|
|
201
|
+
}), /* @__PURE__ */ S("span", {
|
|
218
202
|
className: "hidden sm:inline capitalize",
|
|
219
|
-
children: e === "entities" ?
|
|
203
|
+
children: e === "entities" ? _("export.create.steps.entities", "Select Data") : e === "options" ? _("export.create.steps.options", "Options") : _("export.create.steps.review", "Review")
|
|
220
204
|
})]
|
|
221
205
|
})]
|
|
222
206
|
}, e))
|
|
223
207
|
}),
|
|
224
|
-
|
|
208
|
+
W && /* @__PURE__ */ S("div", {
|
|
225
209
|
className: "border-2 border-border-default rounded-xl bg-status-error-bg-subtle p-4 text-status-error-text text-sm",
|
|
226
|
-
children:
|
|
210
|
+
children: W
|
|
227
211
|
}),
|
|
228
|
-
|
|
212
|
+
j === "entities" && /* @__PURE__ */ C("div", {
|
|
229
213
|
className: "space-y-4",
|
|
230
214
|
children: [
|
|
231
|
-
/* @__PURE__ */
|
|
215
|
+
/* @__PURE__ */ S("h2", {
|
|
232
216
|
className: "text-lg font-bold",
|
|
233
|
-
children:
|
|
217
|
+
children: _("export.create.select.title", "Select data to export")
|
|
234
218
|
}),
|
|
235
|
-
/* @__PURE__ */
|
|
219
|
+
/* @__PURE__ */ S("p", {
|
|
236
220
|
className: "text-sm text-text-secondary",
|
|
237
|
-
children:
|
|
221
|
+
children: _("export.create.select.description", "Choose which entity types to include in your export.")
|
|
238
222
|
}),
|
|
239
|
-
X.length === 0 ? /* @__PURE__ */
|
|
223
|
+
X.length === 0 ? /* @__PURE__ */ S(he, {
|
|
240
224
|
illustration: "empty-data",
|
|
241
|
-
title:
|
|
242
|
-
description:
|
|
243
|
-
}) : /* @__PURE__ */
|
|
225
|
+
title: _("export.create.select.emptyTitle", "Nothing to export yet"),
|
|
226
|
+
description: _("export.create.select.empty", "No exportable entity types are configured for this workspace yet. Once your workspace has data in supported modules, they'll show up here to select.")
|
|
227
|
+
}) : /* @__PURE__ */ C("div", {
|
|
244
228
|
className: "space-y-6",
|
|
245
|
-
children: [Z.length > 0 && /* @__PURE__ */
|
|
229
|
+
children: [Z.length > 0 && /* @__PURE__ */ S("div", {
|
|
246
230
|
className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3",
|
|
247
231
|
children: Z.map((e) => $(e, !1))
|
|
248
|
-
}), Q.length > 0 && /* @__PURE__ */
|
|
232
|
+
}), Q.length > 0 && /* @__PURE__ */ C("div", {
|
|
249
233
|
className: "space-y-3",
|
|
250
|
-
children: [/* @__PURE__ */
|
|
234
|
+
children: [/* @__PURE__ */ C("div", {
|
|
251
235
|
className: "flex items-center gap-3",
|
|
252
236
|
children: [
|
|
253
|
-
/* @__PURE__ */
|
|
254
|
-
/* @__PURE__ */
|
|
237
|
+
/* @__PURE__ */ S("div", { className: "h-px flex-1 bg-border/60" }),
|
|
238
|
+
/* @__PURE__ */ S("span", {
|
|
255
239
|
className: "text-xs font-medium uppercase tracking-wide text-text-secondary",
|
|
256
|
-
children:
|
|
240
|
+
children: _("export.create.select.unavailableSection", "Not available yet")
|
|
257
241
|
}),
|
|
258
|
-
/* @__PURE__ */
|
|
242
|
+
/* @__PURE__ */ S("div", { className: "h-px flex-1 bg-border/60" })
|
|
259
243
|
]
|
|
260
|
-
}), /* @__PURE__ */
|
|
244
|
+
}), /* @__PURE__ */ S("div", {
|
|
261
245
|
className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3",
|
|
262
246
|
children: Q.map((e) => $(e, !0))
|
|
263
247
|
})]
|
|
@@ -265,208 +249,212 @@ function C() {
|
|
|
265
249
|
})
|
|
266
250
|
]
|
|
267
251
|
}),
|
|
268
|
-
|
|
252
|
+
j === "options" && /* @__PURE__ */ S("div", {
|
|
269
253
|
className: "space-y-6",
|
|
270
|
-
children: /* @__PURE__ */
|
|
254
|
+
children: /* @__PURE__ */ C("div", {
|
|
271
255
|
className: "border border-border-seam rounded-xl p-6 space-y-5 bg-bg-surface",
|
|
272
256
|
children: [
|
|
273
|
-
/* @__PURE__ */
|
|
257
|
+
/* @__PURE__ */ S("h2", {
|
|
274
258
|
className: "text-lg font-bold",
|
|
275
|
-
children:
|
|
259
|
+
children: _("export.create.options.title", "Export Options")
|
|
276
260
|
}),
|
|
277
|
-
/* @__PURE__ */
|
|
261
|
+
/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
|
|
278
262
|
className: "block text-sm font-semibold mb-2",
|
|
279
|
-
children:
|
|
280
|
-
}), /* @__PURE__ */
|
|
263
|
+
children: _("export.create.options.scope", "Export Scope")
|
|
264
|
+
}), /* @__PURE__ */ S("div", {
|
|
281
265
|
className: "grid grid-cols-1 sm:grid-cols-3 gap-3",
|
|
282
|
-
children:
|
|
283
|
-
|
|
284
|
-
|
|
266
|
+
children: [
|
|
267
|
+
"INDIVIDUAL",
|
|
268
|
+
"WORKSPACE_ADMIN",
|
|
269
|
+
"ORG_ADMIN"
|
|
270
|
+
].map((e) => {
|
|
271
|
+
let t = e === "WORKSPACE_ADMIN" && !k || e === "ORG_ADMIN" && !A, n = T[e], r = e === "WORKSPACE_ADMIN" ? _("export.create.scope.workspaceAdmin.required", "Workspace admin access required") : _("export.create.scope.orgAdmin.required", "Organization admin access required");
|
|
272
|
+
return /* @__PURE__ */ C("button", {
|
|
285
273
|
type: "button",
|
|
286
|
-
onClick: () => !
|
|
287
|
-
disabled:
|
|
288
|
-
className: i("text-left border-2 rounded-xl p-4 transition-all duration-200",
|
|
289
|
-
title:
|
|
274
|
+
onClick: () => !t && be(e),
|
|
275
|
+
disabled: t,
|
|
276
|
+
className: i("text-left border-2 rounded-xl p-4 transition-all duration-200", z === e ? "border-primary bg-action-primary-bg/5 shadow-md" : t ? "border-border-subtle/30 opacity-50 cursor-not-allowed" : "border-border-subtle/50 hover:border-primary/30 hover:shadow-sm"),
|
|
277
|
+
title: t ? r : void 0,
|
|
290
278
|
children: [
|
|
291
|
-
/* @__PURE__ */
|
|
279
|
+
/* @__PURE__ */ C("div", {
|
|
292
280
|
className: "flex items-center justify-between mb-2",
|
|
293
281
|
children: [
|
|
294
|
-
/* @__PURE__ */
|
|
282
|
+
/* @__PURE__ */ S(n, {
|
|
295
283
|
size: 18,
|
|
296
|
-
className:
|
|
284
|
+
className: z === e ? "text-primary" : t ? "text-text-secondary/50" : "text-text-secondary"
|
|
297
285
|
}),
|
|
298
|
-
|
|
286
|
+
z === e && /* @__PURE__ */ S(p, {
|
|
299
287
|
size: 16,
|
|
300
288
|
className: "text-primary"
|
|
301
289
|
}),
|
|
302
|
-
|
|
290
|
+
t && /* @__PURE__ */ S(ie, {
|
|
303
291
|
size: 14,
|
|
304
292
|
className: "text-text-secondary/50"
|
|
305
293
|
})
|
|
306
294
|
]
|
|
307
295
|
}),
|
|
308
|
-
/* @__PURE__ */
|
|
296
|
+
/* @__PURE__ */ S("p", {
|
|
309
297
|
className: "font-semibold text-sm",
|
|
310
298
|
children: J(e)
|
|
311
299
|
}),
|
|
312
|
-
/* @__PURE__ */
|
|
300
|
+
/* @__PURE__ */ S("p", {
|
|
313
301
|
className: "text-xs text-text-secondary mt-1",
|
|
314
|
-
children:
|
|
302
|
+
children: Oe(e)
|
|
315
303
|
})
|
|
316
304
|
]
|
|
317
305
|
}, e);
|
|
318
306
|
})
|
|
319
307
|
})] }),
|
|
320
|
-
/* @__PURE__ */
|
|
308
|
+
/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ C("label", {
|
|
321
309
|
htmlFor: "exportName",
|
|
322
310
|
className: "block text-sm font-semibold mb-2",
|
|
323
311
|
children: [
|
|
324
|
-
|
|
312
|
+
_("export.create.options.name", "Export Name"),
|
|
325
313
|
" ",
|
|
326
|
-
/* @__PURE__ */
|
|
314
|
+
/* @__PURE__ */ S("span", {
|
|
327
315
|
className: "text-status-error-text",
|
|
328
316
|
children: "*"
|
|
329
317
|
})
|
|
330
318
|
]
|
|
331
|
-
}), /* @__PURE__ */
|
|
319
|
+
}), /* @__PURE__ */ S("input", {
|
|
332
320
|
type: "text",
|
|
333
321
|
id: "exportName",
|
|
334
|
-
"aria-label":
|
|
335
|
-
value:
|
|
336
|
-
onChange: (e) =>
|
|
322
|
+
"aria-label": _("export.create.options.name", "Export Name"),
|
|
323
|
+
value: F,
|
|
324
|
+
onChange: (e) => I(e.target.value),
|
|
337
325
|
className: "w-full px-4 py-2.5 border-2 border-border-subtle rounded-lg bg-bg-surface focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary transition-all duration-200",
|
|
338
|
-
placeholder:
|
|
326
|
+
placeholder: _("export.create.options.namePlaceholder", "e.g., Monthly User Export")
|
|
339
327
|
})] }),
|
|
340
|
-
/* @__PURE__ */
|
|
328
|
+
/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
|
|
341
329
|
className: "block text-sm font-semibold mb-2",
|
|
342
|
-
children:
|
|
343
|
-
}), /* @__PURE__ */
|
|
330
|
+
children: _("export.create.options.outputFormat", "Output Format")
|
|
331
|
+
}), /* @__PURE__ */ S("div", {
|
|
344
332
|
className: "grid grid-cols-2 gap-3",
|
|
345
|
-
children:
|
|
346
|
-
let t =
|
|
347
|
-
return /* @__PURE__ */
|
|
333
|
+
children: w.map((e) => {
|
|
334
|
+
let t = ve[e];
|
|
335
|
+
return /* @__PURE__ */ C("button", {
|
|
348
336
|
type: "button",
|
|
349
|
-
onClick: () =>
|
|
350
|
-
className: i("flex items-center gap-3 border-2 rounded-lg p-3 transition-all duration-200",
|
|
351
|
-
children: [/* @__PURE__ */
|
|
337
|
+
onClick: () => R(e),
|
|
338
|
+
className: i("flex items-center gap-3 border-2 rounded-lg p-3 transition-all duration-200", L === e ? "border-primary bg-action-primary-bg/5" : "border-border-subtle/50 hover:border-primary/30"),
|
|
339
|
+
children: [/* @__PURE__ */ S(t, {
|
|
352
340
|
size: 18,
|
|
353
|
-
className:
|
|
354
|
-
}), /* @__PURE__ */
|
|
341
|
+
className: L === e ? "text-primary" : "text-text-secondary"
|
|
342
|
+
}), /* @__PURE__ */ S("span", {
|
|
355
343
|
className: "font-medium text-sm",
|
|
356
344
|
children: a(e)
|
|
357
345
|
})]
|
|
358
346
|
}, e);
|
|
359
347
|
})
|
|
360
348
|
})] }),
|
|
361
|
-
/* @__PURE__ */
|
|
362
|
-
/* @__PURE__ */
|
|
349
|
+
/* @__PURE__ */ C("div", { children: [
|
|
350
|
+
/* @__PURE__ */ S("label", {
|
|
363
351
|
className: "block text-sm font-semibold mb-2",
|
|
364
|
-
children:
|
|
352
|
+
children: _("export.create.options.archiveFormat", "Archive Format")
|
|
365
353
|
}),
|
|
366
|
-
/* @__PURE__ */
|
|
354
|
+
/* @__PURE__ */ S("div", {
|
|
367
355
|
className: "flex gap-3",
|
|
368
|
-
children: /* @__PURE__ */
|
|
356
|
+
children: /* @__PURE__ */ C("div", {
|
|
369
357
|
className: i("flex items-center gap-2 border-2 rounded-lg px-4 py-2 border-primary bg-action-primary-bg/5"),
|
|
370
|
-
children: [/* @__PURE__ */
|
|
358
|
+
children: [/* @__PURE__ */ S(ae, {
|
|
371
359
|
size: 16,
|
|
372
360
|
className: "text-primary"
|
|
373
|
-
}), /* @__PURE__ */
|
|
361
|
+
}), /* @__PURE__ */ S("span", {
|
|
374
362
|
className: "font-medium text-sm",
|
|
375
|
-
children: "ZIP"
|
|
363
|
+
children: _("export.archive.zip", "ZIP")
|
|
376
364
|
})]
|
|
377
365
|
})
|
|
378
366
|
}),
|
|
379
|
-
/* @__PURE__ */
|
|
367
|
+
/* @__PURE__ */ S("p", {
|
|
380
368
|
className: "text-xs text-text-secondary mt-1.5",
|
|
381
|
-
children:
|
|
369
|
+
children: _("export.create.options.archiveDescription", "Exports are packaged as ZIP archives.")
|
|
382
370
|
})
|
|
383
371
|
] }),
|
|
384
|
-
/* @__PURE__ */
|
|
372
|
+
/* @__PURE__ */ S(_e, {
|
|
385
373
|
collapsedHeight: 0,
|
|
386
|
-
label:
|
|
387
|
-
children: /* @__PURE__ */
|
|
374
|
+
label: _("export.create.options.advancedToggle", "Date range & template"),
|
|
375
|
+
children: /* @__PURE__ */ C("div", {
|
|
388
376
|
className: "space-y-5 pt-1",
|
|
389
|
-
children: [/* @__PURE__ */
|
|
390
|
-
/* @__PURE__ */
|
|
377
|
+
children: [/* @__PURE__ */ C("div", { children: [
|
|
378
|
+
/* @__PURE__ */ S("label", {
|
|
391
379
|
className: "block text-sm font-semibold mb-2",
|
|
392
|
-
children: /* @__PURE__ */
|
|
380
|
+
children: /* @__PURE__ */ C("span", {
|
|
393
381
|
className: "inline-flex items-center gap-1.5",
|
|
394
382
|
children: [
|
|
395
|
-
/* @__PURE__ */
|
|
396
|
-
|
|
383
|
+
/* @__PURE__ */ S(f, { size: 15 }),
|
|
384
|
+
_("export.create.options.dateRange", "Date Range"),
|
|
397
385
|
" ",
|
|
398
|
-
/* @__PURE__ */
|
|
386
|
+
/* @__PURE__ */ S("span", {
|
|
399
387
|
className: "font-normal text-text-secondary",
|
|
400
|
-
children:
|
|
388
|
+
children: _("export.create.shared.optional", "(optional)")
|
|
401
389
|
})
|
|
402
390
|
]
|
|
403
391
|
})
|
|
404
392
|
}),
|
|
405
|
-
/* @__PURE__ */
|
|
393
|
+
/* @__PURE__ */ C("div", {
|
|
406
394
|
className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
|
|
407
|
-
children: [/* @__PURE__ */
|
|
395
|
+
children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
|
|
408
396
|
htmlFor: "dateFrom",
|
|
409
397
|
className: "block text-xs text-text-secondary mb-1",
|
|
410
|
-
children:
|
|
411
|
-
}), /* @__PURE__ */
|
|
398
|
+
children: _("export.create.options.dateFrom", "From")
|
|
399
|
+
}), /* @__PURE__ */ S("input", {
|
|
412
400
|
type: "date",
|
|
413
401
|
id: "dateFrom",
|
|
414
|
-
"aria-label":
|
|
415
|
-
value:
|
|
416
|
-
onChange: (e) =>
|
|
402
|
+
"aria-label": _("export.create.options.dateFrom", "From"),
|
|
403
|
+
value: H,
|
|
404
|
+
onChange: (e) => xe(e.target.value),
|
|
417
405
|
className: "w-full px-3 py-2 border-2 border-border-subtle rounded-lg bg-bg-surface focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary text-sm"
|
|
418
|
-
})] }), /* @__PURE__ */
|
|
406
|
+
})] }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
|
|
419
407
|
htmlFor: "dateTo",
|
|
420
408
|
className: "block text-xs text-text-secondary mb-1",
|
|
421
|
-
children:
|
|
422
|
-
}), /* @__PURE__ */
|
|
409
|
+
children: _("export.create.options.dateTo", "To")
|
|
410
|
+
}), /* @__PURE__ */ S("input", {
|
|
423
411
|
type: "date",
|
|
424
412
|
id: "dateTo",
|
|
425
|
-
"aria-label":
|
|
426
|
-
value:
|
|
427
|
-
min:
|
|
428
|
-
onChange: (e) =>
|
|
413
|
+
"aria-label": _("export.create.options.dateTo", "To"),
|
|
414
|
+
value: U,
|
|
415
|
+
min: H,
|
|
416
|
+
onChange: (e) => Se(e.target.value),
|
|
429
417
|
className: "w-full px-3 py-2 border-2 border-border-subtle rounded-lg bg-bg-surface focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary text-sm"
|
|
430
418
|
})] })]
|
|
431
419
|
}),
|
|
432
|
-
/* @__PURE__ */
|
|
420
|
+
/* @__PURE__ */ S("p", {
|
|
433
421
|
className: "text-xs text-text-secondary mt-1.5",
|
|
434
|
-
children:
|
|
422
|
+
children: _("export.create.options.dateRangeDescription", "Leave blank to export all data regardless of date.")
|
|
435
423
|
})
|
|
436
|
-
] }), /* @__PURE__ */
|
|
424
|
+
] }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ C("label", {
|
|
437
425
|
className: "block text-sm font-semibold mb-2",
|
|
438
426
|
children: [
|
|
439
|
-
|
|
427
|
+
_("export.create.options.basedOnTemplate", "Based on Template"),
|
|
440
428
|
" ",
|
|
441
|
-
/* @__PURE__ */
|
|
429
|
+
/* @__PURE__ */ S("span", {
|
|
442
430
|
className: "font-normal text-text-secondary",
|
|
443
|
-
children:
|
|
431
|
+
children: _("export.create.shared.optional", "(optional)")
|
|
444
432
|
})
|
|
445
433
|
]
|
|
446
|
-
}),
|
|
447
|
-
value:
|
|
448
|
-
onChange: (e) =>
|
|
434
|
+
}), D.length > 0 ? /* @__PURE__ */ C("select", {
|
|
435
|
+
value: B ?? "",
|
|
436
|
+
onChange: (e) => V(e.target.value || void 0),
|
|
449
437
|
className: "w-full px-3 py-2 border-2 border-border-subtle rounded-lg bg-bg-surface focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary",
|
|
450
|
-
children: [/* @__PURE__ */
|
|
438
|
+
children: [/* @__PURE__ */ S("option", {
|
|
451
439
|
value: "",
|
|
452
|
-
children:
|
|
453
|
-
}),
|
|
440
|
+
children: _("export.create.options.noTemplate", "No template")
|
|
441
|
+
}), D.map((e) => /* @__PURE__ */ S("option", {
|
|
454
442
|
value: e.id,
|
|
455
443
|
children: e.name
|
|
456
444
|
}, e.id))]
|
|
457
|
-
}) : /* @__PURE__ */
|
|
445
|
+
}) : /* @__PURE__ */ C("p", {
|
|
458
446
|
className: "text-sm text-text-secondary",
|
|
459
447
|
children: [
|
|
460
|
-
|
|
448
|
+
_("export.create.options.noTemplates", "No templates yet."),
|
|
461
449
|
" ",
|
|
462
|
-
/* @__PURE__ */
|
|
450
|
+
/* @__PURE__ */ S("button", {
|
|
463
451
|
type: "button",
|
|
464
|
-
onClick: () =>
|
|
452
|
+
onClick: () => h?.(d + "/templates"),
|
|
465
453
|
className: "text-primary underline-offset-2 hover:underline",
|
|
466
|
-
children:
|
|
454
|
+
children: _("export.create.options.createTemplateLink", "Create one")
|
|
467
455
|
}),
|
|
468
456
|
" ",
|
|
469
|
-
|
|
457
|
+
_("export.create.options.reuseTemplateHint", "to reuse export configurations.")
|
|
470
458
|
]
|
|
471
459
|
})] })]
|
|
472
460
|
})
|
|
@@ -474,53 +462,53 @@ function C() {
|
|
|
474
462
|
]
|
|
475
463
|
})
|
|
476
464
|
}),
|
|
477
|
-
|
|
465
|
+
j === "review" && /* @__PURE__ */ S("div", {
|
|
478
466
|
className: "space-y-6",
|
|
479
|
-
children: /* @__PURE__ */
|
|
467
|
+
children: /* @__PURE__ */ C(me, {
|
|
480
468
|
className: "p-6 space-y-4",
|
|
481
|
-
children: [/* @__PURE__ */
|
|
469
|
+
children: [/* @__PURE__ */ C("h2", {
|
|
482
470
|
className: "text-lg font-bold flex items-center gap-2",
|
|
483
|
-
children: [/* @__PURE__ */
|
|
471
|
+
children: [/* @__PURE__ */ S(p, {
|
|
484
472
|
size: 20,
|
|
485
473
|
className: "text-primary"
|
|
486
|
-
}),
|
|
487
|
-
}), /* @__PURE__ */
|
|
474
|
+
}), _("export.create.review.title", "Review Export")]
|
|
475
|
+
}), /* @__PURE__ */ S("dl", {
|
|
488
476
|
className: "space-y-3 text-sm",
|
|
489
477
|
children: [
|
|
490
478
|
{
|
|
491
|
-
label:
|
|
492
|
-
value:
|
|
479
|
+
label: _("export.create.review.fields.name", "Name"),
|
|
480
|
+
value: F
|
|
493
481
|
},
|
|
494
482
|
{
|
|
495
|
-
label:
|
|
496
|
-
value: J(
|
|
483
|
+
label: _("export.create.review.fields.scope", "Scope"),
|
|
484
|
+
value: J(z)
|
|
497
485
|
},
|
|
498
486
|
{
|
|
499
|
-
label:
|
|
500
|
-
value:
|
|
487
|
+
label: _("export.create.review.fields.entityTypes", "Entity Types"),
|
|
488
|
+
value: N.join(", ")
|
|
501
489
|
},
|
|
502
490
|
{
|
|
503
|
-
label:
|
|
504
|
-
value: a(
|
|
491
|
+
label: _("export.create.review.fields.format", "Format"),
|
|
492
|
+
value: a(L)
|
|
505
493
|
},
|
|
506
494
|
{
|
|
507
|
-
label:
|
|
508
|
-
value: "ZIP"
|
|
495
|
+
label: _("export.create.review.fields.archive", "Archive"),
|
|
496
|
+
value: _("export.archive.zip", "ZIP")
|
|
509
497
|
},
|
|
510
|
-
...
|
|
511
|
-
label:
|
|
512
|
-
value: [
|
|
498
|
+
...H || U ? [{
|
|
499
|
+
label: _("export.create.review.fields.dateRange", "Date Range"),
|
|
500
|
+
value: [H || "—", U || "—"].join(" → ")
|
|
513
501
|
}] : [],
|
|
514
|
-
...
|
|
515
|
-
label:
|
|
516
|
-
value:
|
|
502
|
+
...B ? [{
|
|
503
|
+
label: _("export.create.review.fields.template", "Template"),
|
|
504
|
+
value: D.find((e) => e.id === B)?.name ?? B
|
|
517
505
|
}] : []
|
|
518
|
-
].map(({ label: e, value: t }) => /* @__PURE__ */
|
|
506
|
+
].map(({ label: e, value: t }) => /* @__PURE__ */ C("div", {
|
|
519
507
|
className: "flex flex-col sm:flex-row sm:justify-between gap-1",
|
|
520
|
-
children: [/* @__PURE__ */
|
|
508
|
+
children: [/* @__PURE__ */ S("dt", {
|
|
521
509
|
className: "text-text-secondary",
|
|
522
510
|
children: e
|
|
523
|
-
}), /* @__PURE__ */
|
|
511
|
+
}), /* @__PURE__ */ S("dd", {
|
|
524
512
|
className: "font-semibold sm:text-right break-words",
|
|
525
513
|
children: t
|
|
526
514
|
})]
|
|
@@ -528,41 +516,41 @@ function C() {
|
|
|
528
516
|
})]
|
|
529
517
|
})
|
|
530
518
|
}),
|
|
531
|
-
/* @__PURE__ */
|
|
519
|
+
/* @__PURE__ */ C("div", {
|
|
532
520
|
className: "flex flex-col sm:flex-row gap-3 pt-2",
|
|
533
|
-
children: [/* @__PURE__ */
|
|
521
|
+
children: [/* @__PURE__ */ S("button", {
|
|
534
522
|
type: "button",
|
|
535
|
-
onClick:
|
|
523
|
+
onClick: we,
|
|
536
524
|
className: "px-6 py-3 border-2 border-border-subtle/50 rounded-lg hover:bg-accent hover:border-primary/30 transition-all duration-200 font-medium",
|
|
537
|
-
children:
|
|
538
|
-
}),
|
|
525
|
+
children: j === "entities" ? _("export.create.actions.cancel", "Cancel") : _("export.create.actions.back", "Back")
|
|
526
|
+
}), j === "review" ? /* @__PURE__ */ C("button", {
|
|
539
527
|
type: "button",
|
|
540
|
-
onClick:
|
|
541
|
-
disabled:
|
|
528
|
+
onClick: Ee,
|
|
529
|
+
disabled: E,
|
|
542
530
|
className: "flex-1 inline-flex items-center justify-center gap-2 px-6 py-3 bg-action-primary-bg text-action-primary-text rounded-lg hover:bg-action-primary-bg/90 transition-all duration-200 font-bold shadow-lg disabled:opacity-50 disabled:cursor-not-allowed",
|
|
543
|
-
children: [
|
|
531
|
+
children: [E ? /* @__PURE__ */ S(re, {
|
|
544
532
|
size: 18,
|
|
545
533
|
className: "animate-spin"
|
|
546
|
-
}) : /* @__PURE__ */
|
|
547
|
-
}) : /* @__PURE__ */
|
|
534
|
+
}) : /* @__PURE__ */ S(m, { size: 18 }), _("export.create.actions.startExport", "Start Export")]
|
|
535
|
+
}) : /* @__PURE__ */ C("button", {
|
|
548
536
|
type: "button",
|
|
549
|
-
onClick:
|
|
537
|
+
onClick: Te,
|
|
550
538
|
className: "flex-1 inline-flex items-center justify-center gap-2 px-6 py-3 bg-action-primary-bg text-action-primary-text rounded-lg hover:bg-action-primary-bg/90 transition-all duration-200 font-bold shadow-lg",
|
|
551
|
-
children: [
|
|
539
|
+
children: [_("export.create.actions.next", "Next"), /* @__PURE__ */ S(u, { size: 18 })]
|
|
552
540
|
})]
|
|
553
541
|
}),
|
|
554
|
-
/* @__PURE__ */
|
|
555
|
-
open:
|
|
556
|
-
onOpenChange:
|
|
557
|
-
children: /* @__PURE__ */
|
|
542
|
+
/* @__PURE__ */ S(oe, {
|
|
543
|
+
open: Ce,
|
|
544
|
+
onOpenChange: K,
|
|
545
|
+
children: /* @__PURE__ */ C(le, { children: [/* @__PURE__ */ C(fe, { children: [/* @__PURE__ */ S(pe, { children: _("export.create.quotaDialog.title", "Export Limit Reached") }), /* @__PURE__ */ S(ue, { children: _("export.create.quotaDialog.description", "You have reached your export limit for this month.") })] }), /* @__PURE__ */ C(de, { children: [/* @__PURE__ */ S(ce, { children: _("export.create.quotaDialog.dismiss", "Dismiss") }), /* @__PURE__ */ S(se, {
|
|
558
546
|
onClick: () => window.location.assign("/billing"),
|
|
559
|
-
children:
|
|
547
|
+
children: _("export.create.quotaDialog.viewBilling", "View Billing")
|
|
560
548
|
})] })] })
|
|
561
549
|
})
|
|
562
550
|
]
|
|
563
551
|
});
|
|
564
552
|
}
|
|
565
553
|
//#endregion
|
|
566
|
-
export {
|
|
554
|
+
export { E as CreateExportPage };
|
|
567
555
|
|
|
568
556
|
//# sourceMappingURL=CreateExportPage.js.map
|