@burdenoff/microfe-eventfullymanaged 2026.716.1 → 2026.719.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/eventfullymanaged/api/eventApi.d.ts +40 -0
- package/dist/eventfullymanaged/api/eventApi.d.ts.map +1 -1
- package/dist/eventfullymanaged/api/eventApi.js +147 -117
- package/dist/eventfullymanaged/api/eventApi.js.map +1 -1
- package/dist/eventfullymanaged/pages/events/SessionFormPage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/events/SessionFormPage.js +152 -135
- package/dist/eventfullymanaged/pages/events/SessionFormPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/AnalyticsPage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js +154 -117
- package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/CommunicationPage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/modules/CommunicationPage.js +228 -187
- package/dist/eventfullymanaged/pages/modules/CommunicationPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/EventsPage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/modules/EventsPage.js +233 -122
- package/dist/eventfullymanaged/pages/modules/EventsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/registration/RegisterAttendeePage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/registration/RegisterAttendeePage.js +255 -254
- package/dist/eventfullymanaged/pages/registration/RegisterAttendeePage.js.map +1 -1
- package/dist/eventfullymanaged/types/index.d.ts.map +1 -1
- package/dist/services/createSandboxAssistantTransport.d.ts.map +1 -1
- package/dist/services/createSandboxAssistantTransport.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { gql as e } from "../../../node_modules/graphql-tag/lib/index.js";
|
|
2
2
|
import { useQuery as t } from "../../../node_modules/@apollo/client/react/hooks/useQuery.js";
|
|
3
3
|
import { notify as n } from "../../lib/toast.js";
|
|
4
|
-
import {
|
|
5
|
-
import { CHART_SERIES_COLORS as o, ChartLegend as
|
|
6
|
-
import { Pagination as
|
|
7
|
-
import { describeError as
|
|
8
|
-
import { useMemo as
|
|
9
|
-
import { jsx as
|
|
10
|
-
import { BarChart3 as
|
|
11
|
-
import { Badge as
|
|
4
|
+
import { useCheckInThroughputQuery as r, useDashboardSummaryQuery as ee, useEventsQuery as i, useRegistrationsQuery as a, useUpsertAnalyticsSnapshotMutation as te } from "../../api/eventApi.js";
|
|
5
|
+
import { CHART_SERIES_COLORS as o, ChartLegend as ne, EventAreaChart as s, EventBarChart as c, EventDonutChart as l } from "../../components/EventCharts.js";
|
|
6
|
+
import { Pagination as u, usePagination as d } from "../../components/Pagination.js";
|
|
7
|
+
import { describeError as re, mutationSucceeded as f } from "../../lib/mutationResult.js";
|
|
8
|
+
import { useMemo as p, useState as m } from "react";
|
|
9
|
+
import { jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
10
|
+
import { BarChart3 as ie, CalendarDays as ae, ClipboardList as oe, MapPin as se, QrCode as ce, Sparkles as le, Ticket as ue, Trophy as de, Users as fe } from "lucide-react";
|
|
11
|
+
import { Badge as pe, Button as _, EmphasisPanel as v, GlassCard as y, GradientText as b, IllustratedEmptyState as x, Input as S, PagePurpose as C, Select as w, SelectContent as T, SelectItem as E, SelectTrigger as D, SelectValue as O, Skeleton as k } from "@burdenoff/fe-libs/ui";
|
|
12
12
|
//#region src/eventfullymanaged/pages/modules/AnalyticsPage.tsx
|
|
13
|
-
var
|
|
13
|
+
var A = e`
|
|
14
14
|
query EventfullymanagedAnalyticsSnapshotsWithMetrics($limit: Int, $offset: Int) {
|
|
15
15
|
analyticsSnapshots: eventfullyManagedAnalyticsSnapshots(limit: $limit, offset: $offset) {
|
|
16
16
|
total
|
|
@@ -24,7 +24,7 @@ var N = e`
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
`,
|
|
27
|
+
`, j = [
|
|
28
28
|
{
|
|
29
29
|
key: "totalEvents",
|
|
30
30
|
label: "Events"
|
|
@@ -54,7 +54,7 @@ var N = e`
|
|
|
54
54
|
label: "Upcoming Sessions"
|
|
55
55
|
}
|
|
56
56
|
];
|
|
57
|
-
function
|
|
57
|
+
function M(e) {
|
|
58
58
|
let t = e.toLowerCase();
|
|
59
59
|
return [
|
|
60
60
|
"active",
|
|
@@ -72,12 +72,12 @@ function F(e) {
|
|
|
72
72
|
"scheduled"
|
|
73
73
|
].includes(t) ? "info" : "secondary";
|
|
74
74
|
}
|
|
75
|
-
function
|
|
75
|
+
function N(e) {
|
|
76
76
|
if (!e) return null;
|
|
77
77
|
let t = new Date(e);
|
|
78
78
|
return Number.isNaN(t.getTime()) ? null : t.toLocaleString();
|
|
79
79
|
}
|
|
80
|
-
function
|
|
80
|
+
function P(e) {
|
|
81
81
|
if (!e) return "—";
|
|
82
82
|
let t = new Date(e);
|
|
83
83
|
return Number.isNaN(t.getTime()) ? "—" : t.toLocaleDateString(void 0, {
|
|
@@ -85,54 +85,60 @@ function ie(e) {
|
|
|
85
85
|
day: "numeric"
|
|
86
86
|
});
|
|
87
87
|
}
|
|
88
|
-
function
|
|
88
|
+
function F(e) {
|
|
89
89
|
return e.replace(/[_-]+/g, " ").split(" ").filter(Boolean).map((e) => e.charAt(0).toUpperCase() + e.slice(1).toLowerCase()).join(" ");
|
|
90
90
|
}
|
|
91
|
-
function
|
|
92
|
-
return /* @__PURE__ */
|
|
91
|
+
function I({ icon: e, label: t, value: n }) {
|
|
92
|
+
return /* @__PURE__ */ g(y, {
|
|
93
93
|
treatment: "metric",
|
|
94
94
|
className: "p-4",
|
|
95
|
-
children: [/* @__PURE__ */
|
|
95
|
+
children: [/* @__PURE__ */ g("div", {
|
|
96
96
|
className: "flex items-center gap-2 text-text-secondary",
|
|
97
|
-
children: [/* @__PURE__ */
|
|
97
|
+
children: [/* @__PURE__ */ h(e, { className: "h-4 w-4 text-accent-primary" }), /* @__PURE__ */ h("p", {
|
|
98
98
|
className: "text-xs font-medium uppercase tracking-wide",
|
|
99
99
|
children: t
|
|
100
100
|
})]
|
|
101
|
-
}), /* @__PURE__ */
|
|
101
|
+
}), /* @__PURE__ */ h("p", {
|
|
102
102
|
className: "mt-2 text-2xl font-bold tabular-nums text-text-primary",
|
|
103
103
|
children: n.toLocaleString()
|
|
104
104
|
})]
|
|
105
105
|
});
|
|
106
106
|
}
|
|
107
|
-
function
|
|
108
|
-
let e =
|
|
107
|
+
function L() {
|
|
108
|
+
let e = d({ pageSize: 8 }), { data: L, loading: R, refetch: z } = t(A, { variables: {
|
|
109
109
|
limit: e.limit,
|
|
110
110
|
offset: e.offset
|
|
111
|
-
} }),
|
|
111
|
+
} }), B = ee(), V = a({
|
|
112
112
|
limit: 200,
|
|
113
113
|
offset: 0
|
|
114
|
-
}), [
|
|
114
|
+
}), [me, { loading: H }] = te(), [U, he] = m("overview"), W = i({
|
|
115
|
+
limit: 50,
|
|
116
|
+
offset: 0
|
|
117
|
+
}), G = p(() => W.data?.events.items ?? [], [W.data]), [ge, _e] = m(""), K = ge || G[0]?.id || "", q = r({ eventId: K }), ve = p(() => (q.data?.checkInThroughput ?? []).map((e) => ({
|
|
118
|
+
name: new Date(e.hour).toLocaleTimeString(void 0, { hour: "numeric" }),
|
|
119
|
+
value: e.count
|
|
120
|
+
})), [q.data]), J = p(() => L?.analyticsSnapshots.items ?? [], [L]), Y = L?.analyticsSnapshots.total ?? 0, X = B.data?.dashboardSummary, Z = p(() => V.data?.registrations.items ?? [], [V.data]), Q = p(() => Z.filter((e) => !!e.checkedInAt).length, [Z]), ye = p(() => J.map((e) => {
|
|
115
121
|
let t = e.metrics?.generatedAt ?? e.createdAt ?? null, n = t ? new Date(t) : null, r = typeof e.metrics?.totalRegistrations == "number" ? e.metrics.totalRegistrations : null;
|
|
116
122
|
return n && !Number.isNaN(n.getTime()) && r !== null ? {
|
|
117
123
|
time: n.getTime(),
|
|
118
|
-
label:
|
|
124
|
+
label: P(t),
|
|
119
125
|
value: r
|
|
120
126
|
} : null;
|
|
121
127
|
}).filter((e) => e !== null).sort((e, t) => e.time - t.time).map(({ label: e, value: t }) => ({
|
|
122
128
|
label: e,
|
|
123
129
|
value: t
|
|
124
|
-
})), [J]), $ =
|
|
130
|
+
})), [J]), $ = p(() => {
|
|
125
131
|
let e = /* @__PURE__ */ new Map();
|
|
126
132
|
for (let t of Z) {
|
|
127
133
|
let n = (t.status || "unknown").toLowerCase();
|
|
128
134
|
e.set(n, (e.get(n) ?? 0) + 1);
|
|
129
135
|
}
|
|
130
136
|
return Array.from(e.entries()).sort((e, t) => t[1] - e[1]).map(([e, t], n) => ({
|
|
131
|
-
name:
|
|
137
|
+
name: F(e),
|
|
132
138
|
value: t,
|
|
133
139
|
color: o[n % o.length]
|
|
134
140
|
}));
|
|
135
|
-
}, [Z]),
|
|
141
|
+
}, [Z]), be = Z.length, xe = p(() => X ? [
|
|
136
142
|
{
|
|
137
143
|
name: "Events",
|
|
138
144
|
value: X.totalEvents
|
|
@@ -161,136 +167,136 @@ function z() {
|
|
|
161
167
|
name: "Sessions",
|
|
162
168
|
value: X.upcomingSessions
|
|
163
169
|
}
|
|
164
|
-
] : [], [X, Q]),
|
|
165
|
-
if (
|
|
166
|
-
let e = await
|
|
167
|
-
name:
|
|
168
|
-
title:
|
|
170
|
+
] : [], [X, Q]), Se = async () => {
|
|
171
|
+
if (U.trim()) try {
|
|
172
|
+
let e = await me({ variables: { input: {
|
|
173
|
+
name: U,
|
|
174
|
+
title: U,
|
|
169
175
|
status: "created",
|
|
170
176
|
metadata: {}
|
|
171
177
|
} } });
|
|
172
|
-
if (!
|
|
173
|
-
n.success("Snapshot generated"), await
|
|
178
|
+
if (!f(e, e.data?.upsertAnalyticsSnapshot?.id, "Could not generate snapshot")) return;
|
|
179
|
+
n.success("Snapshot generated"), await z();
|
|
174
180
|
} catch (e) {
|
|
175
|
-
n.error("Could not generate snapshot",
|
|
181
|
+
n.error("Could not generate snapshot", re(e));
|
|
176
182
|
}
|
|
177
|
-
},
|
|
178
|
-
return /* @__PURE__ */
|
|
183
|
+
}, Ce = B.loading && !X;
|
|
184
|
+
return /* @__PURE__ */ g("div", {
|
|
179
185
|
className: "space-y-6 p-6",
|
|
180
186
|
children: [
|
|
181
|
-
/* @__PURE__ */
|
|
182
|
-
/* @__PURE__ */
|
|
187
|
+
/* @__PURE__ */ h(C, { children: "Analytics gives you the live pulse of your event operations — registrations over time, how those registrations break down by status, and totals across every entity you manage. Generate a snapshot to freeze today's numbers so you can compare trends over time and report on outcomes." }),
|
|
188
|
+
/* @__PURE__ */ h(v, { children: /* @__PURE__ */ g("div", {
|
|
183
189
|
className: "flex flex-col gap-4 sm:flex-row sm:items-end sm:justify-between",
|
|
184
|
-
children: [/* @__PURE__ */
|
|
190
|
+
children: [/* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("h1", {
|
|
185
191
|
className: "text-2xl font-bold text-text-primary",
|
|
186
|
-
children: /* @__PURE__ */
|
|
187
|
-
}), /* @__PURE__ */
|
|
192
|
+
children: /* @__PURE__ */ h(b, { children: "Analytics" })
|
|
193
|
+
}), /* @__PURE__ */ h("p", {
|
|
188
194
|
className: "mt-1 text-sm text-text-secondary",
|
|
189
195
|
children: "Real-time metrics from live event operations, plus point-in-time snapshots you control."
|
|
190
|
-
})] }), /* @__PURE__ */
|
|
196
|
+
})] }), /* @__PURE__ */ g("div", {
|
|
191
197
|
className: "flex w-full flex-col gap-2 sm:w-auto sm:flex-row",
|
|
192
|
-
children: [/* @__PURE__ */
|
|
193
|
-
value:
|
|
194
|
-
onChange: (e) =>
|
|
198
|
+
children: [/* @__PURE__ */ h(S, {
|
|
199
|
+
value: U,
|
|
200
|
+
onChange: (e) => he(e.target.value),
|
|
195
201
|
placeholder: "daily-summary",
|
|
196
202
|
"aria-label": "Snapshot name",
|
|
197
203
|
className: "sm:w-48"
|
|
198
|
-
}), /* @__PURE__ */
|
|
204
|
+
}), /* @__PURE__ */ g(_, {
|
|
199
205
|
type: "button",
|
|
200
|
-
disabled:
|
|
201
|
-
onClick:
|
|
202
|
-
children: [/* @__PURE__ */
|
|
206
|
+
disabled: H,
|
|
207
|
+
onClick: Se,
|
|
208
|
+
children: [/* @__PURE__ */ h(le, { className: "h-4 w-4" }), H ? "Generating..." : "Generate snapshot"]
|
|
203
209
|
})]
|
|
204
210
|
})]
|
|
205
211
|
}) }),
|
|
206
|
-
/* @__PURE__ */
|
|
212
|
+
/* @__PURE__ */ g("div", {
|
|
207
213
|
className: "grid grid-cols-1 gap-6 xl:grid-cols-[minmax(0,1fr)_320px]",
|
|
208
|
-
children: [/* @__PURE__ */
|
|
214
|
+
children: [/* @__PURE__ */ g("div", {
|
|
209
215
|
className: "space-y-6",
|
|
210
216
|
children: [
|
|
211
|
-
|
|
217
|
+
Ce ? /* @__PURE__ */ h("div", {
|
|
212
218
|
className: "grid grid-cols-2 gap-4 sm:grid-cols-3 xl:grid-cols-4",
|
|
213
|
-
children: Array.from({ length: 7 }).map((e, t) => /* @__PURE__ */
|
|
214
|
-
}) : X ? /* @__PURE__ */
|
|
219
|
+
children: Array.from({ length: 7 }).map((e, t) => /* @__PURE__ */ h(k, { className: "h-[92px] rounded-card" }, t))
|
|
220
|
+
}) : X ? /* @__PURE__ */ g("div", {
|
|
215
221
|
className: "grid grid-cols-2 gap-4 sm:grid-cols-3 xl:grid-cols-4",
|
|
216
222
|
children: [
|
|
217
|
-
/* @__PURE__ */
|
|
218
|
-
icon:
|
|
223
|
+
/* @__PURE__ */ h(I, {
|
|
224
|
+
icon: ae,
|
|
219
225
|
label: "Events",
|
|
220
226
|
value: X.totalEvents
|
|
221
227
|
}),
|
|
222
|
-
/* @__PURE__ */
|
|
223
|
-
icon:
|
|
228
|
+
/* @__PURE__ */ h(I, {
|
|
229
|
+
icon: oe,
|
|
224
230
|
label: "Registrations",
|
|
225
231
|
value: X.totalRegistrations
|
|
226
232
|
}),
|
|
227
|
-
/* @__PURE__ */
|
|
228
|
-
icon:
|
|
233
|
+
/* @__PURE__ */ h(I, {
|
|
234
|
+
icon: fe,
|
|
229
235
|
label: "Attendees",
|
|
230
236
|
value: X.totalAttendees
|
|
231
237
|
}),
|
|
232
|
-
/* @__PURE__ */
|
|
233
|
-
icon:
|
|
238
|
+
/* @__PURE__ */ h(I, {
|
|
239
|
+
icon: ce,
|
|
234
240
|
label: "Check-ins",
|
|
235
241
|
value: Q
|
|
236
242
|
}),
|
|
237
|
-
/* @__PURE__ */
|
|
238
|
-
icon:
|
|
243
|
+
/* @__PURE__ */ h(I, {
|
|
244
|
+
icon: se,
|
|
239
245
|
label: "Venues",
|
|
240
246
|
value: X.totalVenues
|
|
241
247
|
}),
|
|
242
|
-
/* @__PURE__ */
|
|
243
|
-
icon:
|
|
248
|
+
/* @__PURE__ */ h(I, {
|
|
249
|
+
icon: de,
|
|
244
250
|
label: "Sponsors",
|
|
245
251
|
value: X.totalSponsors
|
|
246
252
|
}),
|
|
247
|
-
/* @__PURE__ */
|
|
248
|
-
icon:
|
|
253
|
+
/* @__PURE__ */ h(I, {
|
|
254
|
+
icon: ue,
|
|
249
255
|
label: "Upcoming Sessions",
|
|
250
256
|
value: X.upcomingSessions
|
|
251
257
|
})
|
|
252
258
|
]
|
|
253
259
|
}) : null,
|
|
254
|
-
/* @__PURE__ */
|
|
260
|
+
/* @__PURE__ */ g("div", {
|
|
255
261
|
className: "grid grid-cols-1 gap-6 lg:grid-cols-2",
|
|
256
|
-
children: [/* @__PURE__ */
|
|
262
|
+
children: [/* @__PURE__ */ g(y, {
|
|
257
263
|
treatment: "insight",
|
|
258
264
|
className: "p-5",
|
|
259
|
-
children: [/* @__PURE__ */
|
|
265
|
+
children: [/* @__PURE__ */ g("div", {
|
|
260
266
|
className: "flex items-center justify-between",
|
|
261
|
-
children: [/* @__PURE__ */
|
|
267
|
+
children: [/* @__PURE__ */ h("h2", {
|
|
262
268
|
className: "text-base font-semibold text-text-primary",
|
|
263
269
|
children: "Registrations over time"
|
|
264
|
-
}), /* @__PURE__ */
|
|
270
|
+
}), /* @__PURE__ */ h("span", {
|
|
265
271
|
className: "text-xs text-text-muted",
|
|
266
272
|
children: "By snapshot"
|
|
267
273
|
})]
|
|
268
|
-
}), /* @__PURE__ */
|
|
274
|
+
}), /* @__PURE__ */ h("div", {
|
|
269
275
|
className: "mt-4",
|
|
270
|
-
children: /* @__PURE__ */
|
|
271
|
-
data:
|
|
276
|
+
children: /* @__PURE__ */ h(s, {
|
|
277
|
+
data: ye,
|
|
272
278
|
emptyLabel: "Generate a few snapshots to chart the trend"
|
|
273
279
|
})
|
|
274
280
|
})]
|
|
275
|
-
}), /* @__PURE__ */
|
|
281
|
+
}), /* @__PURE__ */ g(y, {
|
|
276
282
|
treatment: "insight",
|
|
277
283
|
className: "p-5",
|
|
278
|
-
children: [/* @__PURE__ */
|
|
284
|
+
children: [/* @__PURE__ */ h("h2", {
|
|
279
285
|
className: "text-base font-semibold text-text-primary",
|
|
280
286
|
children: "Registrations by status"
|
|
281
|
-
}), /* @__PURE__ */
|
|
287
|
+
}), /* @__PURE__ */ g("div", {
|
|
282
288
|
className: "mt-4 flex flex-col items-center gap-4 sm:flex-row",
|
|
283
|
-
children: [/* @__PURE__ */
|
|
289
|
+
children: [/* @__PURE__ */ h("div", {
|
|
284
290
|
className: "w-full sm:w-1/2",
|
|
285
|
-
children: /* @__PURE__ */
|
|
291
|
+
children: /* @__PURE__ */ h(l, {
|
|
286
292
|
data: $,
|
|
287
|
-
centerValue:
|
|
293
|
+
centerValue: be.toLocaleString(),
|
|
288
294
|
centerLabel: "Registrations",
|
|
289
295
|
emptyLabel: "No registrations yet"
|
|
290
296
|
})
|
|
291
|
-
}), /* @__PURE__ */
|
|
297
|
+
}), /* @__PURE__ */ h("div", {
|
|
292
298
|
className: "w-full sm:w-1/2",
|
|
293
|
-
children: /* @__PURE__ */
|
|
299
|
+
children: /* @__PURE__ */ h(ne, { items: $.map((e) => ({
|
|
294
300
|
label: e.name,
|
|
295
301
|
color: e.color ?? "var(--color-chart-1)",
|
|
296
302
|
value: e.value.toLocaleString()
|
|
@@ -299,35 +305,66 @@ function z() {
|
|
|
299
305
|
})]
|
|
300
306
|
})]
|
|
301
307
|
}),
|
|
302
|
-
/* @__PURE__ */
|
|
308
|
+
/* @__PURE__ */ g(y, {
|
|
303
309
|
treatment: "insight",
|
|
304
310
|
className: "p-5",
|
|
305
311
|
children: [
|
|
306
|
-
/* @__PURE__ */
|
|
312
|
+
/* @__PURE__ */ h("h2", {
|
|
307
313
|
className: "text-base font-semibold text-text-primary",
|
|
308
314
|
children: "Portfolio totals"
|
|
309
315
|
}),
|
|
310
|
-
/* @__PURE__ */
|
|
316
|
+
/* @__PURE__ */ h("p", {
|
|
311
317
|
className: "mt-0.5 text-xs text-text-muted",
|
|
312
318
|
children: "Live counts across every entity you manage."
|
|
313
319
|
}),
|
|
314
|
-
/* @__PURE__ */
|
|
320
|
+
/* @__PURE__ */ h("div", {
|
|
315
321
|
className: "mt-4",
|
|
316
|
-
children: /* @__PURE__ */
|
|
317
|
-
data:
|
|
322
|
+
children: /* @__PURE__ */ h(c, {
|
|
323
|
+
data: xe,
|
|
318
324
|
emptyLabel: "No operational data yet"
|
|
319
325
|
})
|
|
320
326
|
})
|
|
321
327
|
]
|
|
328
|
+
}),
|
|
329
|
+
/* @__PURE__ */ g(y, {
|
|
330
|
+
treatment: "insight",
|
|
331
|
+
className: "p-5",
|
|
332
|
+
children: [/* @__PURE__ */ g("div", {
|
|
333
|
+
className: "flex flex-wrap items-center justify-between gap-3",
|
|
334
|
+
children: [/* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("h2", {
|
|
335
|
+
className: "text-base font-semibold text-text-primary",
|
|
336
|
+
children: "Check-in throughput"
|
|
337
|
+
}), /* @__PURE__ */ h("p", {
|
|
338
|
+
className: "mt-0.5 text-xs text-text-muted",
|
|
339
|
+
children: "Scans per hour at the door for the selected event."
|
|
340
|
+
})] }), G.length > 0 ? /* @__PURE__ */ g(w, {
|
|
341
|
+
value: K,
|
|
342
|
+
onValueChange: _e,
|
|
343
|
+
children: [/* @__PURE__ */ h(D, {
|
|
344
|
+
className: "w-full sm:w-56",
|
|
345
|
+
"aria-label": "Select event for check-in throughput",
|
|
346
|
+
children: /* @__PURE__ */ h(O, { placeholder: "Select event" })
|
|
347
|
+
}), /* @__PURE__ */ h(T, { children: G.map((e) => /* @__PURE__ */ h(E, {
|
|
348
|
+
value: e.id,
|
|
349
|
+
children: e.name
|
|
350
|
+
}, e.id)) })]
|
|
351
|
+
}) : null]
|
|
352
|
+
}), /* @__PURE__ */ h("div", {
|
|
353
|
+
className: "mt-4",
|
|
354
|
+
children: /* @__PURE__ */ h(c, {
|
|
355
|
+
data: ve,
|
|
356
|
+
emptyLabel: K ? "No check-ins recorded yet for this event" : "Select an event to see throughput"
|
|
357
|
+
})
|
|
358
|
+
})]
|
|
322
359
|
})
|
|
323
360
|
]
|
|
324
|
-
}), /* @__PURE__ */
|
|
361
|
+
}), /* @__PURE__ */ g("aside", {
|
|
325
362
|
className: "space-y-4",
|
|
326
|
-
children: [/* @__PURE__ */
|
|
363
|
+
children: [/* @__PURE__ */ g("div", {
|
|
327
364
|
className: "flex items-center justify-between",
|
|
328
|
-
children: [/* @__PURE__ */
|
|
365
|
+
children: [/* @__PURE__ */ g("h2", {
|
|
329
366
|
className: "text-base font-semibold text-text-primary",
|
|
330
|
-
children: ["Saved snapshots ", Y > 0 ? /* @__PURE__ */
|
|
367
|
+
children: ["Saved snapshots ", Y > 0 ? /* @__PURE__ */ g("span", {
|
|
331
368
|
className: "text-text-muted",
|
|
332
369
|
children: [
|
|
333
370
|
"(",
|
|
@@ -335,66 +372,66 @@ function z() {
|
|
|
335
372
|
")"
|
|
336
373
|
]
|
|
337
374
|
}) : null]
|
|
338
|
-
}), /* @__PURE__ */
|
|
339
|
-
}),
|
|
375
|
+
}), /* @__PURE__ */ h(ie, { className: "h-4 w-4 text-text-muted" })]
|
|
376
|
+
}), R && J.length === 0 ? /* @__PURE__ */ h("div", {
|
|
340
377
|
className: "space-y-3",
|
|
341
|
-
children: Array.from({ length: 3 }).map((e, t) => /* @__PURE__ */
|
|
342
|
-
}) : J.length === 0 ? /* @__PURE__ */
|
|
378
|
+
children: Array.from({ length: 3 }).map((e, t) => /* @__PURE__ */ h(k, { className: "h-24 rounded-card" }, t))
|
|
379
|
+
}) : J.length === 0 ? /* @__PURE__ */ h(y, {
|
|
343
380
|
treatment: "plain",
|
|
344
381
|
className: "border-border-seam",
|
|
345
|
-
children: /* @__PURE__ */
|
|
382
|
+
children: /* @__PURE__ */ h(x, {
|
|
346
383
|
illustration: "empty-data",
|
|
347
384
|
title: "No snapshots yet",
|
|
348
385
|
description: "Generate your first snapshot to freeze the current metrics.",
|
|
349
386
|
className: "py-8"
|
|
350
387
|
})
|
|
351
|
-
}) : /* @__PURE__ */
|
|
388
|
+
}) : /* @__PURE__ */ g("div", {
|
|
352
389
|
className: "space-y-3",
|
|
353
390
|
children: [J.map((e) => {
|
|
354
|
-
let t =
|
|
391
|
+
let t = N(e.metrics?.generatedAt) ?? N(e.createdAt), n = j.map((t) => {
|
|
355
392
|
let n = e.metrics?.[t.key];
|
|
356
393
|
return {
|
|
357
394
|
label: t.label,
|
|
358
395
|
value: typeof n == "number" ? n : null
|
|
359
396
|
};
|
|
360
397
|
}).filter((e) => e.value !== null);
|
|
361
|
-
return /* @__PURE__ */
|
|
398
|
+
return /* @__PURE__ */ g(y, {
|
|
362
399
|
treatment: "plain",
|
|
363
400
|
className: "border-border-seam p-4",
|
|
364
|
-
children: [/* @__PURE__ */
|
|
401
|
+
children: [/* @__PURE__ */ g("div", {
|
|
365
402
|
className: "flex items-start justify-between gap-2",
|
|
366
|
-
children: [/* @__PURE__ */
|
|
403
|
+
children: [/* @__PURE__ */ g("div", {
|
|
367
404
|
className: "min-w-0",
|
|
368
|
-
children: [/* @__PURE__ */
|
|
405
|
+
children: [/* @__PURE__ */ h("h3", {
|
|
369
406
|
className: "truncate text-sm font-semibold text-text-primary",
|
|
370
407
|
children: e.title ?? e.name ?? `Snapshot ${e.id}`
|
|
371
|
-
}), t ? /* @__PURE__ */
|
|
408
|
+
}), t ? /* @__PURE__ */ h("p", {
|
|
372
409
|
className: "mt-0.5 text-xs text-text-muted",
|
|
373
410
|
children: t
|
|
374
411
|
}) : null]
|
|
375
|
-
}), e.status ? /* @__PURE__ */
|
|
376
|
-
variant:
|
|
412
|
+
}), e.status ? /* @__PURE__ */ h(pe, {
|
|
413
|
+
variant: M(e.status),
|
|
377
414
|
className: "shrink-0 uppercase",
|
|
378
415
|
children: e.status
|
|
379
416
|
}) : null]
|
|
380
|
-
}), n.length > 0 ? /* @__PURE__ */
|
|
417
|
+
}), n.length > 0 ? /* @__PURE__ */ h("dl", {
|
|
381
418
|
className: "mt-3 space-y-1.5",
|
|
382
|
-
children: n.map((e) => /* @__PURE__ */
|
|
419
|
+
children: n.map((e) => /* @__PURE__ */ g("div", {
|
|
383
420
|
className: "flex items-center justify-between text-xs",
|
|
384
|
-
children: [/* @__PURE__ */
|
|
421
|
+
children: [/* @__PURE__ */ h("dt", {
|
|
385
422
|
className: "text-text-secondary",
|
|
386
423
|
children: e.label
|
|
387
|
-
}), /* @__PURE__ */
|
|
424
|
+
}), /* @__PURE__ */ h("dd", {
|
|
388
425
|
className: "font-semibold tabular-nums text-text-primary",
|
|
389
426
|
children: (e.value ?? 0).toLocaleString()
|
|
390
427
|
})]
|
|
391
428
|
}, e.label))
|
|
392
|
-
}) : /* @__PURE__ */
|
|
429
|
+
}) : /* @__PURE__ */ h("p", {
|
|
393
430
|
className: "mt-3 text-xs text-text-muted",
|
|
394
431
|
children: "No metrics captured."
|
|
395
432
|
})]
|
|
396
433
|
}, e.id);
|
|
397
|
-
}), /* @__PURE__ */
|
|
434
|
+
}), /* @__PURE__ */ h(u, {
|
|
398
435
|
offset: e.offset,
|
|
399
436
|
limit: e.limit,
|
|
400
437
|
loadedCount: J.length,
|
|
@@ -402,7 +439,7 @@ function z() {
|
|
|
402
439
|
onPrev: e.prevPage,
|
|
403
440
|
onNext: e.nextPage,
|
|
404
441
|
itemLabel: "snapshots",
|
|
405
|
-
loading:
|
|
442
|
+
loading: R
|
|
406
443
|
})]
|
|
407
444
|
})]
|
|
408
445
|
})]
|
|
@@ -411,6 +448,6 @@ function z() {
|
|
|
411
448
|
});
|
|
412
449
|
}
|
|
413
450
|
//#endregion
|
|
414
|
-
export {
|
|
451
|
+
export { L as default };
|
|
415
452
|
|
|
416
453
|
//# sourceMappingURL=AnalyticsPage.js.map
|