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