@burdenoff/microfe-eventfullymanaged 2026.803.1 → 2026.825.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.js +68 -66
- package/dist/eventfullymanaged/api/eventApi.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/EventsPage.d.ts.map +1 -1
- package/dist/eventfullymanaged/pages/modules/EventsPage.js +231 -220
- package/dist/eventfullymanaged/pages/modules/EventsPage.js.map +1 -1
- package/dist/eventfullymanaged/types/index.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { useEventfullyManaged as e } from "../../context/EventfullyManagedContext.js";
|
|
2
2
|
import { gql as t } from "../../../node_modules/graphql-tag/lib/index.js";
|
|
3
3
|
import { useQuery as n } from "../../../node_modules/@apollo/client/react/hooks/useQuery.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
4
|
+
import { notify as r } from "../../lib/toast.js";
|
|
5
|
+
import { useDeleteEventMutation as i, useEventsQuery as a, useSponsorsQuery as o, useVenuesQuery as s } from "../../api/eventApi.js";
|
|
6
|
+
import { formatDateTime as c } from "../events/eventFormUtils.js";
|
|
7
|
+
import { ActionMenu as l } from "../../components/ActionMenu.js";
|
|
8
|
+
import { Pagination as u, usePagination as ee } from "../../components/Pagination.js";
|
|
9
|
+
import { useMemo as d, useState as f } from "react";
|
|
10
|
+
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
11
|
+
import { Award as te, CalendarClock as h, CalendarDays as g, CalendarPlus as _, LayoutGrid as ne, MapPin as v, Rows3 as re, Search as ie, Ticket as ae, UserCheck as y, Users as b } from "lucide-react";
|
|
12
|
+
import { useI18n as x } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
13
|
+
import { Badge as S, Button as C, EmphasisPanel as w, GlassCard as T, GradientText as oe, IllustratedEmptyState as se, Input as ce, NextSteps as le, PagePurpose as ue, Skeleton as E, Table as de, TableBody as fe, TableCell as D, TableHead as O, TableHeader as pe, TableRow as k, Tabs as me, TabsList as he, TabsTrigger as A } from "@burdenoff/fe-libs/ui";
|
|
13
14
|
//#region src/eventfullymanaged/pages/modules/EventsPage.tsx
|
|
14
|
-
var
|
|
15
|
+
var ge = t`
|
|
15
16
|
query EventfullymanagedEventsRegistrations($limit: Int) {
|
|
16
17
|
registrations: eventfullyManagedRegistrations(limit: $limit, offset: 0) {
|
|
17
18
|
total
|
|
@@ -23,7 +24,7 @@ var pe = t`
|
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
26
|
`;
|
|
26
|
-
function
|
|
27
|
+
function j(e) {
|
|
27
28
|
let t = e.toLowerCase();
|
|
28
29
|
return [
|
|
29
30
|
"active",
|
|
@@ -45,29 +46,29 @@ function M(e) {
|
|
|
45
46
|
"scheduled"
|
|
46
47
|
].includes(t) ? "info" : "secondary";
|
|
47
48
|
}
|
|
48
|
-
function
|
|
49
|
-
let n = e ?
|
|
49
|
+
function M(e, t) {
|
|
50
|
+
let n = e ? c(e) : "", r = t ? c(t) : "";
|
|
50
51
|
return n && r ? `${n} — ${r}` : n || r || "No schedule set";
|
|
51
52
|
}
|
|
52
|
-
function
|
|
53
|
+
function N(e, t) {
|
|
53
54
|
let n = Date.now(), r = e ? new Date(e).getTime() : NaN, i = t ? new Date(t).getTime() : NaN, a = !Number.isNaN(r), o = !Number.isNaN(i);
|
|
54
55
|
return !a && !o ? null : a && n < r ? "upcoming" : o && n > i ? "past" : a ? "live" : "upcoming";
|
|
55
56
|
}
|
|
56
|
-
function
|
|
57
|
-
return /* @__PURE__ */
|
|
57
|
+
function P({ icon: e, label: t, value: n, loading: r }) {
|
|
58
|
+
return /* @__PURE__ */ p(T, {
|
|
58
59
|
treatment: "plain",
|
|
59
60
|
className: "border-border-seam p-4",
|
|
60
|
-
children: /* @__PURE__ */
|
|
61
|
+
children: /* @__PURE__ */ m("div", {
|
|
61
62
|
className: "flex items-center gap-3",
|
|
62
|
-
children: [/* @__PURE__ */
|
|
63
|
+
children: [/* @__PURE__ */ p("span", {
|
|
63
64
|
className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-button bg-bg-sunken text-text-secondary",
|
|
64
|
-
children: /* @__PURE__ */
|
|
65
|
-
}), /* @__PURE__ */
|
|
65
|
+
children: /* @__PURE__ */ p(e, { className: "h-4 w-4" })
|
|
66
|
+
}), /* @__PURE__ */ m("div", {
|
|
66
67
|
className: "min-w-0",
|
|
67
|
-
children: [r ? /* @__PURE__ */
|
|
68
|
+
children: [r ? /* @__PURE__ */ p(E, { className: "h-6 w-12" }) : /* @__PURE__ */ p("p", {
|
|
68
69
|
className: "truncate text-xl font-bold tabular-nums text-text-primary",
|
|
69
70
|
children: n
|
|
70
|
-
}), /* @__PURE__ */
|
|
71
|
+
}), /* @__PURE__ */ p("p", {
|
|
71
72
|
className: "truncate text-xs text-text-muted",
|
|
72
73
|
children: t
|
|
73
74
|
})]
|
|
@@ -75,43 +76,47 @@ function F({ icon: e, label: t, value: n, loading: r }) {
|
|
|
75
76
|
})
|
|
76
77
|
});
|
|
77
78
|
}
|
|
78
|
-
function
|
|
79
|
-
return /* @__PURE__ */
|
|
79
|
+
function F({ icon: e, label: t, value: n }) {
|
|
80
|
+
return /* @__PURE__ */ m("div", {
|
|
80
81
|
className: "flex items-center gap-1.5",
|
|
81
82
|
children: [
|
|
82
|
-
/* @__PURE__ */
|
|
83
|
-
/* @__PURE__ */
|
|
83
|
+
/* @__PURE__ */ p(e, { className: "h-3.5 w-3.5 text-text-muted" }),
|
|
84
|
+
/* @__PURE__ */ p("span", {
|
|
84
85
|
className: "tabular-nums font-medium text-text-primary",
|
|
85
86
|
children: n
|
|
86
87
|
}),
|
|
87
|
-
/* @__PURE__ */
|
|
88
|
+
/* @__PURE__ */ p("span", {
|
|
88
89
|
className: "text-text-muted",
|
|
89
90
|
children: t
|
|
90
91
|
})
|
|
91
92
|
]
|
|
92
93
|
});
|
|
93
94
|
}
|
|
94
|
-
function
|
|
95
|
-
let { t } =
|
|
95
|
+
function I() {
|
|
96
|
+
let { t } = x(), c = (e, n) => {
|
|
96
97
|
let r = t(e);
|
|
97
98
|
return r === e ? n : r;
|
|
98
|
-
}, { navigate:
|
|
99
|
-
search:
|
|
100
|
-
limit:
|
|
101
|
-
offset:
|
|
102
|
-
}), { data:
|
|
99
|
+
}, { navigate: I } = e(), [L, _e] = f(""), [R, ve] = f("all"), [z, B] = f("table"), V = ee({ resetKey: L }), { data: H, loading: U, refetch: ye } = a({
|
|
100
|
+
search: L,
|
|
101
|
+
limit: V.limit,
|
|
102
|
+
offset: V.offset
|
|
103
|
+
}), [be] = i(), { data: W, loading: xe } = s({
|
|
103
104
|
limit: 100,
|
|
104
105
|
offset: 0
|
|
105
|
-
}), { data:
|
|
106
|
+
}), { data: G, loading: Se } = o({
|
|
106
107
|
limit: 1,
|
|
107
108
|
offset: 0
|
|
108
|
-
}), { data:
|
|
109
|
+
}), { data: K, loading: Ce } = n(ge, { variables: { limit: 500 } }), q = H?.events?.total ?? 0, J = d(() => H?.events?.items ?? [], [H]), we = K?.registrations?.total ?? 0, Y = W?.venues?.total ?? 0, Te = G?.sponsors?.total ?? 0, X = async (e) => {
|
|
110
|
+
let t = await be({ variables: { id: e.id } });
|
|
111
|
+
if (t.error || !t.data?.deleteEvent) throw r.error("Could not delete event", t.error?.message ?? "The server did not confirm the change."), t.error ?? /* @__PURE__ */ Error("delete-unconfirmed");
|
|
112
|
+
r.success("Event deleted", e.name), await ye();
|
|
113
|
+
}, Z = d(() => R === "all" ? J : J.filter((e) => N(e.startAt, e.endAt) === R), [J, R]), Q = d(() => {
|
|
109
114
|
let e = /* @__PURE__ */ new Map();
|
|
110
|
-
for (let t of
|
|
115
|
+
for (let t of W?.venues?.items ?? []) e.set(t.id, t.name);
|
|
111
116
|
return e;
|
|
112
|
-
}, [
|
|
117
|
+
}, [W]), $ = d(() => {
|
|
113
118
|
let e = /* @__PURE__ */ new Map();
|
|
114
|
-
for (let t of
|
|
119
|
+
for (let t of K?.registrations?.items ?? []) {
|
|
115
120
|
let n = e.get(t.eventId) ?? {
|
|
116
121
|
registrations: 0,
|
|
117
122
|
checkedIn: 0
|
|
@@ -119,363 +124,369 @@ function L() {
|
|
|
119
124
|
n.registrations += 1, t.checkedInAt && (n.checkedIn += 1), e.set(t.eventId, n);
|
|
120
125
|
}
|
|
121
126
|
return e;
|
|
122
|
-
}, [
|
|
123
|
-
return /* @__PURE__ */
|
|
127
|
+
}, [K]);
|
|
128
|
+
return /* @__PURE__ */ m("div", {
|
|
124
129
|
className: "space-y-6 p-6",
|
|
125
130
|
children: [
|
|
126
|
-
/* @__PURE__ */
|
|
127
|
-
/* @__PURE__ */
|
|
131
|
+
/* @__PURE__ */ p(ue, { children: c("eventfullymanaged.events.purpose", "Events are the heart of the platform — each one is a happening you sell tickets for, register attendees to, and run on the day. Create an event, open it to reveal its agenda, speakers and ticket types, then publish it when it is ready.") }),
|
|
132
|
+
/* @__PURE__ */ p(w, { children: /* @__PURE__ */ m("div", {
|
|
128
133
|
className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
|
|
129
|
-
children: [/* @__PURE__ */
|
|
134
|
+
children: [/* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("h1", {
|
|
130
135
|
className: "text-2xl font-bold text-text-primary",
|
|
131
|
-
children: /* @__PURE__ */
|
|
132
|
-
}), /* @__PURE__ */
|
|
136
|
+
children: /* @__PURE__ */ p(oe, { children: c("eventfullymanaged.events.title", "Events") })
|
|
137
|
+
}), /* @__PURE__ */ p("p", {
|
|
133
138
|
className: "mt-1 text-sm text-text-secondary",
|
|
134
|
-
children:
|
|
135
|
-
})] }), /* @__PURE__ */
|
|
139
|
+
children: c("eventfullymanaged.events.description", "Create and manage live events from the workspace graph.")
|
|
140
|
+
})] }), /* @__PURE__ */ m(C, {
|
|
136
141
|
type: "button",
|
|
137
|
-
onClick: () =>
|
|
138
|
-
children: [/* @__PURE__ */
|
|
142
|
+
onClick: () => I("/events/create"),
|
|
143
|
+
children: [/* @__PURE__ */ p(_, { className: "h-4 w-4" }), c("eventfullymanaged.events.actions.create", "Create Event")]
|
|
139
144
|
})]
|
|
140
145
|
}) }),
|
|
141
|
-
/* @__PURE__ */
|
|
146
|
+
/* @__PURE__ */ m("div", {
|
|
142
147
|
className: "grid grid-cols-2 gap-3 sm:grid-cols-4",
|
|
143
148
|
children: [
|
|
144
|
-
/* @__PURE__ */
|
|
145
|
-
icon:
|
|
146
|
-
label:
|
|
147
|
-
value:
|
|
148
|
-
loading:
|
|
149
|
+
/* @__PURE__ */ p(P, {
|
|
150
|
+
icon: g,
|
|
151
|
+
label: c("eventfullymanaged.events.portfolio.events", "Events"),
|
|
152
|
+
value: q.toLocaleString(),
|
|
153
|
+
loading: U && q === 0
|
|
149
154
|
}),
|
|
150
|
-
/* @__PURE__ */
|
|
155
|
+
/* @__PURE__ */ p(P, {
|
|
151
156
|
icon: b,
|
|
152
|
-
label:
|
|
153
|
-
value:
|
|
154
|
-
loading:
|
|
157
|
+
label: c("eventfullymanaged.events.portfolio.registrations", "Registrations"),
|
|
158
|
+
value: we.toLocaleString(),
|
|
159
|
+
loading: Ce && !K
|
|
155
160
|
}),
|
|
156
|
-
/* @__PURE__ */
|
|
157
|
-
icon:
|
|
158
|
-
label:
|
|
159
|
-
value:
|
|
160
|
-
loading:
|
|
161
|
+
/* @__PURE__ */ p(P, {
|
|
162
|
+
icon: v,
|
|
163
|
+
label: c("eventfullymanaged.events.portfolio.venues", "Venues"),
|
|
164
|
+
value: Y.toLocaleString(),
|
|
165
|
+
loading: xe && !W
|
|
161
166
|
}),
|
|
162
|
-
/* @__PURE__ */
|
|
163
|
-
icon:
|
|
164
|
-
label:
|
|
165
|
-
value:
|
|
166
|
-
loading:
|
|
167
|
+
/* @__PURE__ */ p(P, {
|
|
168
|
+
icon: te,
|
|
169
|
+
label: c("eventfullymanaged.events.portfolio.sponsors", "Sponsors"),
|
|
170
|
+
value: Te.toLocaleString(),
|
|
171
|
+
loading: Se && !G
|
|
167
172
|
})
|
|
168
173
|
]
|
|
169
174
|
}),
|
|
170
|
-
/* @__PURE__ */
|
|
175
|
+
/* @__PURE__ */ m("div", {
|
|
171
176
|
className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",
|
|
172
177
|
children: [
|
|
173
|
-
/* @__PURE__ */
|
|
178
|
+
/* @__PURE__ */ m("div", {
|
|
174
179
|
className: "relative flex-1",
|
|
175
|
-
children: [/* @__PURE__ */
|
|
180
|
+
children: [/* @__PURE__ */ p(ie, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-muted" }), /* @__PURE__ */ p(ce, {
|
|
176
181
|
type: "text",
|
|
177
|
-
value:
|
|
178
|
-
onChange: (e) =>
|
|
179
|
-
placeholder:
|
|
180
|
-
"aria-label":
|
|
182
|
+
value: L,
|
|
183
|
+
onChange: (e) => _e(e.target.value),
|
|
184
|
+
placeholder: c("eventfullymanaged.events.searchPlaceholder", "Search events"),
|
|
185
|
+
"aria-label": c("eventfullymanaged.events.searchPlaceholder", "Search events"),
|
|
181
186
|
className: "pl-10"
|
|
182
187
|
})]
|
|
183
188
|
}),
|
|
184
|
-
/* @__PURE__ */
|
|
185
|
-
value:
|
|
186
|
-
onValueChange: (e) =>
|
|
189
|
+
/* @__PURE__ */ p(me, {
|
|
190
|
+
value: R,
|
|
191
|
+
onValueChange: (e) => ve(e),
|
|
187
192
|
className: "w-full sm:w-auto",
|
|
188
|
-
children: /* @__PURE__ */
|
|
193
|
+
children: /* @__PURE__ */ m(he, {
|
|
189
194
|
className: "w-full overflow-x-auto sm:w-auto",
|
|
190
195
|
children: [
|
|
191
|
-
/* @__PURE__ */
|
|
196
|
+
/* @__PURE__ */ p(A, {
|
|
192
197
|
value: "all",
|
|
193
|
-
children:
|
|
198
|
+
children: c("eventfullymanaged.events.filters.all", "All")
|
|
194
199
|
}),
|
|
195
|
-
/* @__PURE__ */
|
|
200
|
+
/* @__PURE__ */ p(A, {
|
|
196
201
|
value: "upcoming",
|
|
197
|
-
children:
|
|
202
|
+
children: c("eventfullymanaged.events.filters.upcoming", "Upcoming")
|
|
198
203
|
}),
|
|
199
|
-
/* @__PURE__ */
|
|
204
|
+
/* @__PURE__ */ p(A, {
|
|
200
205
|
value: "live",
|
|
201
|
-
children:
|
|
206
|
+
children: c("eventfullymanaged.events.filters.live", "Live")
|
|
202
207
|
}),
|
|
203
|
-
/* @__PURE__ */
|
|
208
|
+
/* @__PURE__ */ p(A, {
|
|
204
209
|
value: "past",
|
|
205
|
-
children:
|
|
210
|
+
children: c("eventfullymanaged.events.filters.past", "Past")
|
|
206
211
|
})
|
|
207
212
|
]
|
|
208
213
|
})
|
|
209
214
|
}),
|
|
210
|
-
/* @__PURE__ */
|
|
215
|
+
/* @__PURE__ */ m("div", {
|
|
211
216
|
className: "flex shrink-0 items-center gap-1 self-start rounded-button border border-border-seam p-1 sm:self-auto",
|
|
212
|
-
children: [/* @__PURE__ */
|
|
217
|
+
children: [/* @__PURE__ */ p(C, {
|
|
213
218
|
type: "button",
|
|
214
|
-
variant:
|
|
219
|
+
variant: z === "table" ? "default" : "ghost",
|
|
215
220
|
size: "sm",
|
|
216
|
-
"aria-pressed":
|
|
217
|
-
"aria-label":
|
|
218
|
-
onClick: () =>
|
|
219
|
-
children: /* @__PURE__ */
|
|
220
|
-
}), /* @__PURE__ */
|
|
221
|
+
"aria-pressed": z === "table",
|
|
222
|
+
"aria-label": c("eventfullymanaged.events.view.table", "Table view"),
|
|
223
|
+
onClick: () => B("table"),
|
|
224
|
+
children: /* @__PURE__ */ p(re, { className: "h-4 w-4" })
|
|
225
|
+
}), /* @__PURE__ */ p(C, {
|
|
221
226
|
type: "button",
|
|
222
|
-
variant:
|
|
227
|
+
variant: z === "cards" ? "default" : "ghost",
|
|
223
228
|
size: "sm",
|
|
224
|
-
"aria-pressed":
|
|
225
|
-
"aria-label":
|
|
226
|
-
onClick: () =>
|
|
227
|
-
children: /* @__PURE__ */
|
|
229
|
+
"aria-pressed": z === "cards",
|
|
230
|
+
"aria-label": c("eventfullymanaged.events.view.cards", "Card view"),
|
|
231
|
+
onClick: () => B("cards"),
|
|
232
|
+
children: /* @__PURE__ */ p(ne, { className: "h-4 w-4" })
|
|
228
233
|
})]
|
|
229
234
|
})
|
|
230
235
|
]
|
|
231
236
|
}),
|
|
232
|
-
|
|
237
|
+
U ? /* @__PURE__ */ m("div", {
|
|
233
238
|
className: "space-y-3",
|
|
234
239
|
children: [
|
|
235
|
-
/* @__PURE__ */
|
|
236
|
-
/* @__PURE__ */
|
|
237
|
-
/* @__PURE__ */
|
|
240
|
+
/* @__PURE__ */ p(E, { className: "h-28 w-full rounded-card" }),
|
|
241
|
+
/* @__PURE__ */ p(E, { className: "h-28 w-full rounded-card" }),
|
|
242
|
+
/* @__PURE__ */ p(E, { className: "h-28 w-full rounded-card" })
|
|
238
243
|
]
|
|
239
|
-
}) :
|
|
244
|
+
}) : J.length === 0 ? /* @__PURE__ */ p(T, {
|
|
240
245
|
treatment: "plain",
|
|
241
246
|
className: "border-border-seam",
|
|
242
|
-
children: /* @__PURE__ */
|
|
243
|
-
illustration:
|
|
244
|
-
title:
|
|
245
|
-
description:
|
|
246
|
-
action:
|
|
247
|
+
children: /* @__PURE__ */ p(se, {
|
|
248
|
+
illustration: L ? "empty-search" : "empty-data",
|
|
249
|
+
title: L ? c("eventfullymanaged.events.list.emptySearch", "No events match your search.") : c("eventfullymanaged.events.list.empty", "No events yet."),
|
|
250
|
+
description: L ? c("eventfullymanaged.events.list.emptySearchHint", "Try a different name.") : c("eventfullymanaged.events.list.emptyHint", "Create your first event to get started."),
|
|
251
|
+
action: L ? void 0 : /* @__PURE__ */ m(C, {
|
|
247
252
|
type: "button",
|
|
248
|
-
onClick: () =>
|
|
249
|
-
children: [/* @__PURE__ */
|
|
253
|
+
onClick: () => I("/events/create"),
|
|
254
|
+
children: [/* @__PURE__ */ p(_, { className: "h-4 w-4" }), c("eventfullymanaged.events.actions.create", "Create Event")]
|
|
250
255
|
})
|
|
251
256
|
})
|
|
252
|
-
}) : Z.length === 0 ? /* @__PURE__ */
|
|
257
|
+
}) : Z.length === 0 ? /* @__PURE__ */ m("div", {
|
|
253
258
|
className: "space-y-3",
|
|
254
|
-
children: [/* @__PURE__ */
|
|
259
|
+
children: [/* @__PURE__ */ p(T, {
|
|
255
260
|
treatment: "plain",
|
|
256
261
|
className: "border-border-seam",
|
|
257
|
-
children: /* @__PURE__ */
|
|
262
|
+
children: /* @__PURE__ */ p("p", {
|
|
258
263
|
className: "px-2 py-8 text-center text-sm text-text-secondary",
|
|
259
|
-
children:
|
|
264
|
+
children: c("eventfullymanaged.events.filters.empty", `No ${R} events on this page. Switch tabs or move to another page.`)
|
|
260
265
|
})
|
|
261
|
-
}), /* @__PURE__ */
|
|
262
|
-
offset:
|
|
263
|
-
limit:
|
|
264
|
-
loadedCount:
|
|
265
|
-
total:
|
|
266
|
-
onPrev:
|
|
267
|
-
onNext:
|
|
266
|
+
}), /* @__PURE__ */ p(u, {
|
|
267
|
+
offset: V.offset,
|
|
268
|
+
limit: V.limit,
|
|
269
|
+
loadedCount: J.length,
|
|
270
|
+
total: q,
|
|
271
|
+
onPrev: V.prevPage,
|
|
272
|
+
onNext: V.nextPage,
|
|
268
273
|
itemLabel: "events",
|
|
269
|
-
loading:
|
|
274
|
+
loading: U
|
|
270
275
|
})]
|
|
271
|
-
}) :
|
|
276
|
+
}) : z === "table" ? /* @__PURE__ */ m("div", {
|
|
272
277
|
className: "space-y-3",
|
|
273
|
-
children: [/* @__PURE__ */
|
|
278
|
+
children: [/* @__PURE__ */ p("div", {
|
|
274
279
|
className: "overflow-hidden rounded-card border border-border-seam",
|
|
275
|
-
children: /* @__PURE__ */
|
|
276
|
-
/* @__PURE__ */
|
|
277
|
-
/* @__PURE__ */
|
|
278
|
-
/* @__PURE__ */
|
|
279
|
-
/* @__PURE__ */
|
|
280
|
-
/* @__PURE__ */
|
|
280
|
+
children: /* @__PURE__ */ m(de, { children: [/* @__PURE__ */ p(pe, { children: /* @__PURE__ */ m(k, { children: [
|
|
281
|
+
/* @__PURE__ */ p(O, { children: c("eventfullymanaged.events.table.name", "Event") }),
|
|
282
|
+
/* @__PURE__ */ p(O, { children: c("eventfullymanaged.events.table.date", "Date") }),
|
|
283
|
+
/* @__PURE__ */ p(O, { children: c("eventfullymanaged.events.table.venue", "Venue") }),
|
|
284
|
+
/* @__PURE__ */ p(O, { children: c("eventfullymanaged.events.table.status", "Status") }),
|
|
285
|
+
/* @__PURE__ */ p(O, {
|
|
281
286
|
className: "text-right",
|
|
282
|
-
children:
|
|
287
|
+
children: c("eventfullymanaged.events.table.attendees", "Attendees")
|
|
283
288
|
}),
|
|
284
|
-
/* @__PURE__ */
|
|
289
|
+
/* @__PURE__ */ p(O, {
|
|
285
290
|
className: "w-10",
|
|
286
|
-
"aria-label":
|
|
291
|
+
"aria-label": c("eventfullymanaged.events.table.actions", "Actions")
|
|
287
292
|
})
|
|
288
|
-
] }) }), /* @__PURE__ */
|
|
289
|
-
let t = e.metadata ?? {}, n = typeof t.venueId == "string" ? t.venueId : "", r = n ? Q.get(n) : void 0, i = $.get(e.id), a = i?.registrations ?? 0,
|
|
290
|
-
return /* @__PURE__ */
|
|
293
|
+
] }) }), /* @__PURE__ */ p(fe, { children: Z.map((e) => {
|
|
294
|
+
let t = e.metadata ?? {}, n = typeof t.venueId == "string" ? t.venueId : "", r = n ? Q.get(n) : void 0, i = $.get(e.id), a = i?.registrations ?? 0, o = a > 0 ? Math.round((i?.checkedIn ?? 0) / a * 100) : 0;
|
|
295
|
+
return /* @__PURE__ */ m(k, {
|
|
291
296
|
className: "cursor-pointer",
|
|
292
297
|
tabIndex: 0,
|
|
293
298
|
"aria-label": e.name,
|
|
294
|
-
onClick: () =>
|
|
299
|
+
onClick: () => I(`/events/${e.id}`),
|
|
295
300
|
onKeyDown: (t) => {
|
|
296
|
-
(t.key === "Enter" || t.key === " ") && (t.preventDefault(),
|
|
301
|
+
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), I(`/events/${e.id}`));
|
|
297
302
|
},
|
|
298
303
|
children: [
|
|
299
|
-
/* @__PURE__ */
|
|
304
|
+
/* @__PURE__ */ p(D, {
|
|
300
305
|
className: "max-w-[18rem]",
|
|
301
|
-
children: /* @__PURE__ */
|
|
306
|
+
children: /* @__PURE__ */ m("div", {
|
|
302
307
|
className: "flex flex-wrap items-center gap-2",
|
|
303
|
-
children: [/* @__PURE__ */
|
|
308
|
+
children: [/* @__PURE__ */ p("span", {
|
|
304
309
|
className: "truncate font-medium text-text-primary",
|
|
305
310
|
children: e.name
|
|
306
|
-
}), e.type ? /* @__PURE__ */
|
|
311
|
+
}), e.type ? /* @__PURE__ */ p(S, {
|
|
307
312
|
variant: "secondary",
|
|
308
313
|
className: "shrink-0 capitalize",
|
|
309
314
|
children: e.type.toLowerCase().replace(/_/g, " ")
|
|
310
315
|
}) : null]
|
|
311
316
|
})
|
|
312
317
|
}),
|
|
313
|
-
/* @__PURE__ */
|
|
318
|
+
/* @__PURE__ */ p(D, {
|
|
314
319
|
className: "whitespace-nowrap text-text-secondary",
|
|
315
|
-
children:
|
|
320
|
+
children: M(e.startAt, e.endAt)
|
|
316
321
|
}),
|
|
317
|
-
/* @__PURE__ */
|
|
322
|
+
/* @__PURE__ */ p(D, {
|
|
318
323
|
className: "text-text-secondary",
|
|
319
|
-
children: r ??
|
|
324
|
+
children: r ?? c("eventfullymanaged.events.card.noVenue", "No venue")
|
|
320
325
|
}),
|
|
321
|
-
/* @__PURE__ */
|
|
322
|
-
variant:
|
|
326
|
+
/* @__PURE__ */ p(D, { children: e.status ? /* @__PURE__ */ p(S, {
|
|
327
|
+
variant: j(e.status),
|
|
323
328
|
className: "uppercase",
|
|
324
329
|
children: e.status
|
|
325
330
|
}) : "—" }),
|
|
326
|
-
/* @__PURE__ */
|
|
331
|
+
/* @__PURE__ */ m(D, {
|
|
327
332
|
className: "whitespace-nowrap text-right tabular-nums text-text-primary",
|
|
328
|
-
children: [a.toLocaleString(), /* @__PURE__ */
|
|
333
|
+
children: [a.toLocaleString(), /* @__PURE__ */ m("span", {
|
|
329
334
|
className: "ml-1 text-xs text-text-muted",
|
|
330
335
|
children: [
|
|
331
336
|
"(",
|
|
332
|
-
|
|
337
|
+
o,
|
|
333
338
|
"%)"
|
|
334
339
|
]
|
|
335
340
|
})]
|
|
336
341
|
}),
|
|
337
|
-
/* @__PURE__ */
|
|
342
|
+
/* @__PURE__ */ p(D, {
|
|
338
343
|
onClick: (e) => e.stopPropagation(),
|
|
339
344
|
onKeyDown: (e) => e.stopPropagation(),
|
|
340
|
-
children: /* @__PURE__ */
|
|
345
|
+
children: /* @__PURE__ */ p(l, {
|
|
341
346
|
ariaLabel: `Event actions for ${e.name}`,
|
|
342
|
-
|
|
343
|
-
|
|
347
|
+
entityName: e.name,
|
|
348
|
+
deleteLabel: "Delete event",
|
|
349
|
+
onView: () => I(`/events/${e.id}`),
|
|
350
|
+
onEdit: () => I(`/events/${e.id}/edit`),
|
|
351
|
+
onDelete: () => X(e)
|
|
344
352
|
})
|
|
345
353
|
})
|
|
346
354
|
]
|
|
347
355
|
}, e.id);
|
|
348
356
|
}) })] })
|
|
349
|
-
}), /* @__PURE__ */
|
|
350
|
-
offset:
|
|
351
|
-
limit:
|
|
352
|
-
loadedCount:
|
|
353
|
-
total:
|
|
354
|
-
onPrev:
|
|
355
|
-
onNext:
|
|
357
|
+
}), /* @__PURE__ */ p(u, {
|
|
358
|
+
offset: V.offset,
|
|
359
|
+
limit: V.limit,
|
|
360
|
+
loadedCount: J.length,
|
|
361
|
+
total: q,
|
|
362
|
+
onPrev: V.prevPage,
|
|
363
|
+
onNext: V.nextPage,
|
|
356
364
|
itemLabel: "events",
|
|
357
|
-
loading:
|
|
365
|
+
loading: U
|
|
358
366
|
})]
|
|
359
|
-
}) : /* @__PURE__ */
|
|
367
|
+
}) : /* @__PURE__ */ m("div", {
|
|
360
368
|
className: "space-y-3",
|
|
361
369
|
children: [Z.map((e) => {
|
|
362
|
-
let t = e.metadata ?? {}, n = typeof t.venueId == "string" ? t.venueId : "", r = n ? Q.get(n) : void 0, i = $.get(e.id), a = i?.registrations ?? 0,
|
|
363
|
-
return /* @__PURE__ */
|
|
370
|
+
let t = e.metadata ?? {}, n = typeof t.venueId == "string" ? t.venueId : "", r = n ? Q.get(n) : void 0, i = $.get(e.id), a = i?.registrations ?? 0, o = a > 0 ? Math.round((i?.checkedIn ?? 0) / a * 100) : 0;
|
|
371
|
+
return /* @__PURE__ */ m(T, {
|
|
364
372
|
treatment: "plain",
|
|
365
373
|
role: "button",
|
|
366
374
|
tabIndex: 0,
|
|
367
375
|
"aria-label": e.name,
|
|
368
376
|
className: "group relative cursor-pointer overflow-hidden border-border-seam p-0 outline-none transition-[box-shadow,border-color] duration-200 hover:border-border-strong hover:shadow-elevation-1 focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]",
|
|
369
|
-
onClick: () =>
|
|
377
|
+
onClick: () => I(`/events/${e.id}`),
|
|
370
378
|
onKeyDown: (t) => {
|
|
371
|
-
(t.key === "Enter" || t.key === " ") && (t.preventDefault(),
|
|
379
|
+
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), I(`/events/${e.id}`));
|
|
372
380
|
},
|
|
373
|
-
children: [/* @__PURE__ */
|
|
381
|
+
children: [/* @__PURE__ */ p("span", {
|
|
374
382
|
"aria-hidden": "true",
|
|
375
383
|
className: "absolute inset-y-0 left-0 w-1.5 bg-gradient-to-b from-[var(--color-chart-1)] to-[var(--color-chart-2)]"
|
|
376
|
-
}), /* @__PURE__ */
|
|
384
|
+
}), /* @__PURE__ */ m("div", {
|
|
377
385
|
className: "flex flex-col gap-3 py-4 pl-5 pr-4 sm:flex-row sm:items-center sm:justify-between",
|
|
378
|
-
children: [/* @__PURE__ */
|
|
386
|
+
children: [/* @__PURE__ */ m("div", {
|
|
379
387
|
className: "min-w-0 space-y-2",
|
|
380
388
|
children: [
|
|
381
|
-
/* @__PURE__ */
|
|
389
|
+
/* @__PURE__ */ m("div", {
|
|
382
390
|
className: "flex flex-wrap items-center gap-2",
|
|
383
391
|
children: [
|
|
384
|
-
/* @__PURE__ */
|
|
392
|
+
/* @__PURE__ */ p("p", {
|
|
385
393
|
className: "truncate text-lg font-semibold text-text-primary",
|
|
386
394
|
children: e.name
|
|
387
395
|
}),
|
|
388
|
-
e.status ? /* @__PURE__ */
|
|
389
|
-
variant:
|
|
396
|
+
e.status ? /* @__PURE__ */ p(S, {
|
|
397
|
+
variant: j(e.status),
|
|
390
398
|
className: "uppercase",
|
|
391
399
|
children: e.status
|
|
392
400
|
}) : null,
|
|
393
|
-
e.type ? /* @__PURE__ */
|
|
401
|
+
e.type ? /* @__PURE__ */ p(S, {
|
|
394
402
|
variant: "secondary",
|
|
395
403
|
className: "capitalize",
|
|
396
404
|
children: e.type.toLowerCase().replace(/_/g, " ")
|
|
397
405
|
}) : null
|
|
398
406
|
]
|
|
399
407
|
}),
|
|
400
|
-
/* @__PURE__ */
|
|
408
|
+
/* @__PURE__ */ m("div", {
|
|
401
409
|
className: "flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-text-secondary",
|
|
402
|
-
children: [/* @__PURE__ */
|
|
410
|
+
children: [/* @__PURE__ */ m("span", {
|
|
403
411
|
className: "flex items-center gap-1.5",
|
|
404
|
-
children: [/* @__PURE__ */
|
|
405
|
-
}), /* @__PURE__ */
|
|
412
|
+
children: [/* @__PURE__ */ p(h, { className: "h-4 w-4 shrink-0 text-text-muted" }), M(e.startAt, e.endAt)]
|
|
413
|
+
}), /* @__PURE__ */ m("span", {
|
|
406
414
|
className: "flex items-center gap-1.5",
|
|
407
|
-
children: [/* @__PURE__ */
|
|
415
|
+
children: [/* @__PURE__ */ p(v, { className: "h-4 w-4 shrink-0 text-text-muted" }), r ?? c("eventfullymanaged.events.card.noVenue", "No venue")]
|
|
408
416
|
})]
|
|
409
417
|
}),
|
|
410
|
-
/* @__PURE__ */
|
|
418
|
+
/* @__PURE__ */ m("div", {
|
|
411
419
|
className: "flex flex-wrap items-center gap-x-4 gap-y-1 text-xs",
|
|
412
420
|
children: [
|
|
413
|
-
/* @__PURE__ */
|
|
421
|
+
/* @__PURE__ */ p(F, {
|
|
414
422
|
icon: y,
|
|
415
|
-
label:
|
|
423
|
+
label: c("eventfullymanaged.events.card.registered", "registered"),
|
|
416
424
|
value: a.toLocaleString()
|
|
417
425
|
}),
|
|
418
|
-
/* @__PURE__ */
|
|
426
|
+
/* @__PURE__ */ p(F, {
|
|
419
427
|
icon: y,
|
|
420
|
-
label:
|
|
421
|
-
value: `${
|
|
428
|
+
label: c("eventfullymanaged.events.card.checkedIn", "checked in"),
|
|
429
|
+
value: `${o}%`
|
|
422
430
|
}),
|
|
423
|
-
/* @__PURE__ */
|
|
431
|
+
/* @__PURE__ */ p(F, {
|
|
424
432
|
icon: b,
|
|
425
|
-
label:
|
|
433
|
+
label: c("eventfullymanaged.events.card.capacity", "capacity"),
|
|
426
434
|
value: e.capacity == null ? "—" : e.capacity.toLocaleString()
|
|
427
435
|
})
|
|
428
436
|
]
|
|
429
437
|
})
|
|
430
438
|
]
|
|
431
|
-
}), /* @__PURE__ */
|
|
439
|
+
}), /* @__PURE__ */ p("div", {
|
|
432
440
|
className: "flex shrink-0 items-center gap-2 self-start sm:self-center",
|
|
433
441
|
onClick: (e) => e.stopPropagation(),
|
|
434
442
|
onKeyDown: (e) => e.stopPropagation(),
|
|
435
443
|
role: "presentation",
|
|
436
|
-
children: /* @__PURE__ */
|
|
444
|
+
children: /* @__PURE__ */ p(l, {
|
|
437
445
|
ariaLabel: `Event actions for ${e.name}`,
|
|
438
|
-
|
|
439
|
-
|
|
446
|
+
entityName: e.name,
|
|
447
|
+
deleteLabel: "Delete event",
|
|
448
|
+
onView: () => I(`/events/${e.id}`),
|
|
449
|
+
onEdit: () => I(`/events/${e.id}/edit`),
|
|
450
|
+
onDelete: () => X(e)
|
|
440
451
|
})
|
|
441
452
|
})]
|
|
442
453
|
})]
|
|
443
454
|
}, e.id);
|
|
444
|
-
}), /* @__PURE__ */
|
|
445
|
-
offset:
|
|
446
|
-
limit:
|
|
447
|
-
loadedCount:
|
|
448
|
-
total:
|
|
449
|
-
onPrev:
|
|
450
|
-
onNext:
|
|
455
|
+
}), /* @__PURE__ */ p(u, {
|
|
456
|
+
offset: V.offset,
|
|
457
|
+
limit: V.limit,
|
|
458
|
+
loadedCount: J.length,
|
|
459
|
+
total: q,
|
|
460
|
+
onPrev: V.prevPage,
|
|
461
|
+
onNext: V.nextPage,
|
|
451
462
|
itemLabel: "events",
|
|
452
|
-
loading:
|
|
463
|
+
loading: U
|
|
453
464
|
})]
|
|
454
465
|
}),
|
|
455
|
-
/* @__PURE__ */
|
|
466
|
+
/* @__PURE__ */ p(le, {
|
|
456
467
|
storageKey: "eventfullymanaged-events",
|
|
457
|
-
title:
|
|
468
|
+
title: c("eventfullymanaged.events.nextSteps.title", "Finish setting up your event"),
|
|
458
469
|
steps: [
|
|
459
470
|
{
|
|
460
471
|
id: "configure-registration",
|
|
461
|
-
label:
|
|
462
|
-
description:
|
|
463
|
-
icon: /* @__PURE__ */
|
|
464
|
-
onClick: () =>
|
|
472
|
+
label: c("eventfullymanaged.events.nextSteps.registration", "Configure registration & tickets"),
|
|
473
|
+
description: c("eventfullymanaged.events.nextSteps.registrationDesc", "Open an event and define ticket types so people can register."),
|
|
474
|
+
icon: /* @__PURE__ */ p(ae, { className: "h-4 w-4" }),
|
|
475
|
+
onClick: () => I("/registration")
|
|
465
476
|
},
|
|
466
477
|
{
|
|
467
478
|
id: "plan-networking",
|
|
468
|
-
label:
|
|
469
|
-
description:
|
|
470
|
-
icon: /* @__PURE__ */
|
|
471
|
-
onClick: () =>
|
|
479
|
+
label: c("eventfullymanaged.events.nextSteps.networking", "Plan networking & sessions"),
|
|
480
|
+
description: c("eventfullymanaged.events.nextSteps.networkingDesc", "Set up attendee matchmaking and meeting schedules."),
|
|
481
|
+
icon: /* @__PURE__ */ p(b, { className: "h-4 w-4" }),
|
|
482
|
+
onClick: () => I("/networking")
|
|
472
483
|
},
|
|
473
484
|
{
|
|
474
485
|
id: "announce",
|
|
475
|
-
label:
|
|
476
|
-
description:
|
|
477
|
-
icon: /* @__PURE__ */
|
|
478
|
-
onClick: () =>
|
|
486
|
+
label: c("eventfullymanaged.events.nextSteps.announce", "Announce to attendees"),
|
|
487
|
+
description: c("eventfullymanaged.events.nextSteps.announceDesc", "Send announcements and run communication campaigns."),
|
|
488
|
+
icon: /* @__PURE__ */ p(_, { className: "h-4 w-4" }),
|
|
489
|
+
onClick: () => I("/communication")
|
|
479
490
|
}
|
|
480
491
|
]
|
|
481
492
|
})
|
|
@@ -483,6 +494,6 @@ function L() {
|
|
|
483
494
|
});
|
|
484
495
|
}
|
|
485
496
|
//#endregion
|
|
486
|
-
export {
|
|
497
|
+
export { I as default };
|
|
487
498
|
|
|
488
499
|
//# sourceMappingURL=EventsPage.js.map
|