@burdenoff/microfe-eventfullymanaged 2026.713.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/dist/stories/ActionMenu.stories.d.ts +10 -0
- package/dist/stories/ActionMenu.stories.d.ts.map +1 -0
- package/dist/stories/Pagination.stories.d.ts +11 -0
- package/dist/stories/Pagination.stories.d.ts.map +1 -0
- package/dist/stories/SafeLink.stories.d.ts +11 -0
- package/dist/stories/SafeLink.stories.d.ts.map +1 -0
- package/package.json +12 -1
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import { notify as e } from "../../lib/toast.js";
|
|
2
|
-
import { useAnnouncementsQuery as t, useCommunicationCampaignsQuery as n, usePublishAnnouncementMutation as r, useSendCommunicationCampaignMutation as i, useUpsertAnnouncementMutation as a, useUpsertCommunicationCampaignMutation as
|
|
3
|
-
import { Pagination as
|
|
4
|
-
import { describeError as
|
|
5
|
-
import { useMemo as
|
|
6
|
-
import { jsx as
|
|
7
|
-
import { Mail as
|
|
8
|
-
import { useI18n as
|
|
9
|
-
import { Badge as
|
|
2
|
+
import { useAnnouncementsQuery as t, useCommunicationCampaignsQuery as n, usePublishAnnouncementMutation as r, useSendCommunicationCampaignMutation as i, useUpsertAnnouncementMutation as a, useUpsertCommunicationCampaignMutation as ee } from "../../api/eventApi.js";
|
|
3
|
+
import { Pagination as o, usePagination as s } from "../../components/Pagination.js";
|
|
4
|
+
import { describeError as c, mutationSucceeded as l } from "../../lib/mutationResult.js";
|
|
5
|
+
import { useMemo as u, useState as d } from "react";
|
|
6
|
+
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
7
|
+
import { Mail as m, Megaphone as h, Plus as g, Send as _, Upload as v } from "lucide-react";
|
|
8
|
+
import { useI18n as y } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
9
|
+
import { Badge as b, Button as x, GlassCard as S, GradientText as te, IllustratedEmptyState as C, Input as w, PagePurpose as ne, Textarea as re } from "@burdenoff/fe-libs/ui";
|
|
10
10
|
//#region src/eventfullymanaged/pages/modules/CommunicationPage.tsx
|
|
11
|
-
function
|
|
11
|
+
function T(e) {
|
|
12
|
+
let t = e.metadata?.schedule;
|
|
13
|
+
if (!t || typeof t != "object" || Array.isArray(t)) return null;
|
|
14
|
+
let n = t.sendAt;
|
|
15
|
+
return typeof n == "string" && n ? n : null;
|
|
16
|
+
}
|
|
17
|
+
function E(e) {
|
|
12
18
|
let t = e.toLowerCase();
|
|
13
19
|
return [
|
|
14
20
|
"published",
|
|
@@ -27,310 +33,345 @@ function O(e) {
|
|
|
27
33
|
"scheduled"
|
|
28
34
|
].includes(t) ? "info" : "secondary";
|
|
29
35
|
}
|
|
30
|
-
var
|
|
36
|
+
var D = (e) => {
|
|
31
37
|
let t = (e ?? "").toLowerCase();
|
|
32
|
-
return t === "" || t === "draft" || t === "created";
|
|
33
|
-
},
|
|
34
|
-
function
|
|
35
|
-
let { t:
|
|
36
|
-
let n =
|
|
38
|
+
return t === "" || t === "draft" || t === "created" || t === "scheduled";
|
|
39
|
+
}, O = (e, t) => e.title ?? e.name ?? `${t} ${e.id}`;
|
|
40
|
+
function k() {
|
|
41
|
+
let { t: k } = y(), A = (e, t) => {
|
|
42
|
+
let n = k(e);
|
|
37
43
|
return n === e ? t : n;
|
|
38
|
-
},
|
|
39
|
-
limit:
|
|
40
|
-
offset:
|
|
41
|
-
}),
|
|
42
|
-
limit:
|
|
43
|
-
offset:
|
|
44
|
-
}), [
|
|
45
|
-
U(""), G(""), q("");
|
|
46
|
-
},
|
|
47
|
-
if (!
|
|
48
|
-
e.error(
|
|
44
|
+
}, j = s({ pageSize: 8 }), M = s({ pageSize: 8 }), N = t({
|
|
45
|
+
limit: j.limit,
|
|
46
|
+
offset: j.offset
|
|
47
|
+
}), P = n({
|
|
48
|
+
limit: M.limit,
|
|
49
|
+
offset: M.offset
|
|
50
|
+
}), [F, { loading: ie }] = a(), [ae, { loading: oe }] = r(), [se, { loading: I }] = ee(), [ce, { loading: L }] = i(), [R, z] = d("announcement"), [B, V] = d(""), [H, U] = d(""), [W, G] = d(""), [K, q] = d(""), J = u(() => N.data?.announcements.items ?? [], [N.data]), Y = N.data?.announcements.total ?? 0, X = u(() => P.data?.communicationCampaigns.items ?? [], [P.data]), Z = P.data?.communicationCampaigns.total ?? 0, Q = R === "announcement" ? ie : I, $ = () => {
|
|
51
|
+
V(""), U(""), G(""), q("");
|
|
52
|
+
}, le = async () => {
|
|
53
|
+
if (!B.trim()) {
|
|
54
|
+
e.error(A("eventfullymanaged.communication.subjectRequired", "Subject required"), "");
|
|
49
55
|
return;
|
|
50
56
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
57
|
+
if (R === "announcement") {
|
|
58
|
+
let t = {};
|
|
59
|
+
W.trim() && (t.body = W.trim()), H.trim() && (t.audience = H.trim());
|
|
60
|
+
let n = A("eventfullymanaged.communication.errors.create", "Could not create announcement");
|
|
54
61
|
try {
|
|
55
|
-
let r = await
|
|
56
|
-
title:
|
|
57
|
-
name:
|
|
62
|
+
let r = await F({ variables: { input: {
|
|
63
|
+
title: B,
|
|
64
|
+
name: B,
|
|
58
65
|
status: "draft",
|
|
59
66
|
metadata: t
|
|
60
67
|
} } });
|
|
61
|
-
if (!
|
|
62
|
-
$(), e.success(
|
|
68
|
+
if (!l(r, r.data?.upsertAnnouncement?.id, n)) return;
|
|
69
|
+
$(), e.success(A("eventfullymanaged.communication.created", "Announcement created")), await N.refetch();
|
|
63
70
|
} catch (t) {
|
|
64
|
-
e.error(n,
|
|
71
|
+
e.error(n, c(t));
|
|
65
72
|
}
|
|
66
73
|
return;
|
|
67
74
|
}
|
|
68
|
-
let
|
|
75
|
+
let t = H.split(",").map((e) => e.trim()).filter(Boolean), n = {};
|
|
76
|
+
W.trim() && (n.content = { body: W.trim() }), t.length > 0 && (n.targetAudience = { segments: t }), K && (n.schedule = { sendAt: new Date(K).toISOString() });
|
|
77
|
+
let r = A("eventfullymanaged.communication.errors.createCampaign", "Could not create campaign");
|
|
69
78
|
try {
|
|
70
|
-
let
|
|
71
|
-
title:
|
|
72
|
-
name:
|
|
79
|
+
let t = await se({ variables: { input: {
|
|
80
|
+
title: B,
|
|
81
|
+
name: B,
|
|
73
82
|
status: "draft",
|
|
74
|
-
metadata:
|
|
83
|
+
metadata: n
|
|
75
84
|
} } });
|
|
76
|
-
if (!
|
|
77
|
-
$(), e.success(
|
|
85
|
+
if (!l(t, t.data?.upsertCommunicationCampaign?.id, r)) return;
|
|
86
|
+
$(), e.success(A("eventfullymanaged.communication.campaignCreated", "Campaign created")), await P.refetch();
|
|
78
87
|
} catch (t) {
|
|
79
|
-
e.error(
|
|
88
|
+
e.error(r, c(t));
|
|
80
89
|
}
|
|
81
|
-
},
|
|
82
|
-
let n =
|
|
90
|
+
}, ue = async (t) => {
|
|
91
|
+
let n = A("eventfullymanaged.communication.errors.publish", "Could not publish announcement");
|
|
83
92
|
try {
|
|
84
|
-
let r = await
|
|
85
|
-
if (!
|
|
86
|
-
e.success(
|
|
93
|
+
let r = await ae({ variables: { id: t.id } });
|
|
94
|
+
if (!l(r, r.data?.publishAnnouncement?.id, n)) return;
|
|
95
|
+
e.success(A("eventfullymanaged.communication.published", "Announcement published")), await N.refetch();
|
|
87
96
|
} catch (t) {
|
|
88
|
-
e.error(n,
|
|
97
|
+
e.error(n, c(t));
|
|
89
98
|
}
|
|
90
|
-
},
|
|
91
|
-
let n =
|
|
99
|
+
}, de = async (t) => {
|
|
100
|
+
let n = A("eventfullymanaged.communication.errors.send", "Could not send campaign");
|
|
92
101
|
try {
|
|
93
|
-
let r = await
|
|
94
|
-
if (!
|
|
95
|
-
e.success(
|
|
102
|
+
let r = await ce({ variables: { id: t.id } });
|
|
103
|
+
if (!l(r, r.data?.sendCommunicationCampaign?.id, n)) return;
|
|
104
|
+
r.data?.sendCommunicationCampaign?.status === "scheduled" ? e.success(A("eventfullymanaged.communication.scheduled", "Campaign scheduled for its send time")) : e.success(A("eventfullymanaged.communication.sent", "Campaign delivery started")), await P.refetch();
|
|
96
105
|
} catch (t) {
|
|
97
|
-
e.error(n,
|
|
106
|
+
e.error(n, c(t));
|
|
98
107
|
}
|
|
99
108
|
};
|
|
100
|
-
return /* @__PURE__ */
|
|
109
|
+
return /* @__PURE__ */ p("div", {
|
|
101
110
|
className: "space-y-6 p-6",
|
|
102
111
|
children: [
|
|
103
|
-
/* @__PURE__ */
|
|
104
|
-
/* @__PURE__ */
|
|
112
|
+
/* @__PURE__ */ f(ne, { children: A("eventfullymanaged.communication.purpose", "Keep attendees informed and engaged. Announcements are one-off broadcasts (a schedule change, a welcome message); campaigns are scheduled, multi-step outreach (reminder emails, follow-ups). Compose each one here, then publish an announcement or send a campaign — delivery runs server-side through the notification service.") }),
|
|
113
|
+
/* @__PURE__ */ p("div", {
|
|
105
114
|
className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
|
|
106
|
-
children: [/* @__PURE__ */
|
|
115
|
+
children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("h1", {
|
|
107
116
|
className: "text-2xl font-bold text-text-primary",
|
|
108
|
-
children: /* @__PURE__ */
|
|
109
|
-
}), /* @__PURE__ */
|
|
117
|
+
children: /* @__PURE__ */ f(te, { children: A("eventfullymanaged.communication.title", "Communications") })
|
|
118
|
+
}), /* @__PURE__ */ f("p", {
|
|
110
119
|
className: "mt-1 text-sm text-text-secondary",
|
|
111
|
-
children:
|
|
112
|
-
})] }), /* @__PURE__ */
|
|
120
|
+
children: A("eventfullymanaged.communication.description", "Draft, publish and send from one place.")
|
|
121
|
+
})] }), /* @__PURE__ */ p("div", {
|
|
113
122
|
className: "flex flex-col gap-2 sm:flex-row",
|
|
114
|
-
children: [/* @__PURE__ */
|
|
123
|
+
children: [/* @__PURE__ */ p(x, {
|
|
115
124
|
type: "button",
|
|
116
|
-
variant:
|
|
117
|
-
onClick: () =>
|
|
118
|
-
children: [/* @__PURE__ */
|
|
119
|
-
}), /* @__PURE__ */
|
|
125
|
+
variant: R === "announcement" ? "default" : "outline",
|
|
126
|
+
onClick: () => z("announcement"),
|
|
127
|
+
children: [/* @__PURE__ */ f(g, { className: "h-4 w-4" }), A("eventfullymanaged.communication.actions.newAnnouncement", "New announcement")]
|
|
128
|
+
}), /* @__PURE__ */ p(x, {
|
|
120
129
|
type: "button",
|
|
121
|
-
variant:
|
|
122
|
-
onClick: () =>
|
|
123
|
-
children: [/* @__PURE__ */
|
|
130
|
+
variant: R === "campaign" ? "default" : "outline",
|
|
131
|
+
onClick: () => z("campaign"),
|
|
132
|
+
children: [/* @__PURE__ */ f(g, { className: "h-4 w-4" }), A("eventfullymanaged.communication.actions.newCampaign", "New campaign")]
|
|
124
133
|
})]
|
|
125
134
|
})]
|
|
126
135
|
}),
|
|
127
|
-
/* @__PURE__ */
|
|
136
|
+
/* @__PURE__ */ f(S, {
|
|
128
137
|
treatment: "glass",
|
|
129
138
|
glow: !0,
|
|
130
139
|
className: "p-5",
|
|
131
|
-
children: /* @__PURE__ */
|
|
140
|
+
children: /* @__PURE__ */ p("div", {
|
|
132
141
|
className: "grid grid-cols-1 gap-6 lg:grid-cols-2",
|
|
133
|
-
children: [/* @__PURE__ */
|
|
142
|
+
children: [/* @__PURE__ */ p("div", {
|
|
134
143
|
className: "space-y-3",
|
|
135
144
|
children: [
|
|
136
|
-
/* @__PURE__ */
|
|
145
|
+
/* @__PURE__ */ p("div", {
|
|
137
146
|
className: "flex items-center gap-2",
|
|
138
|
-
children: [
|
|
147
|
+
children: [f(R === "announcement" ? h : m, { className: "h-4 w-4 text-accent-primary" }), /* @__PURE__ */ f("h2", {
|
|
139
148
|
className: "text-base font-semibold text-text-primary",
|
|
140
|
-
children:
|
|
149
|
+
children: R === "announcement" ? A("eventfullymanaged.communication.compose.announcement", "Compose announcement") : A("eventfullymanaged.communication.compose.campaign", "Compose campaign")
|
|
141
150
|
})]
|
|
142
151
|
}),
|
|
143
|
-
/* @__PURE__ */
|
|
152
|
+
/* @__PURE__ */ p("label", {
|
|
144
153
|
className: "block space-y-1 text-sm",
|
|
145
|
-
children: [/* @__PURE__ */
|
|
154
|
+
children: [/* @__PURE__ */ f("span", {
|
|
146
155
|
className: "font-medium text-text-primary",
|
|
147
|
-
children:
|
|
148
|
-
}), /* @__PURE__ */
|
|
149
|
-
value:
|
|
150
|
-
onChange: (e) =>
|
|
151
|
-
placeholder:
|
|
152
|
-
"aria-label":
|
|
156
|
+
children: A("eventfullymanaged.communication.fields.subject", "Subject")
|
|
157
|
+
}), /* @__PURE__ */ f(w, {
|
|
158
|
+
value: B,
|
|
159
|
+
onChange: (e) => V(e.target.value),
|
|
160
|
+
placeholder: A("eventfullymanaged.communication.fields.subjectPlaceholder", "Q4 Product Roadmap Update"),
|
|
161
|
+
"aria-label": A("eventfullymanaged.communication.fields.subject", "Subject")
|
|
153
162
|
})]
|
|
154
163
|
}),
|
|
155
|
-
/* @__PURE__ */
|
|
164
|
+
/* @__PURE__ */ p("label", {
|
|
156
165
|
className: "block space-y-1 text-sm",
|
|
157
|
-
children: [/* @__PURE__ */
|
|
166
|
+
children: [/* @__PURE__ */ f("span", {
|
|
158
167
|
className: "font-medium text-text-primary",
|
|
159
|
-
children:
|
|
160
|
-
}), /* @__PURE__ */
|
|
161
|
-
value:
|
|
162
|
-
onChange: (e) =>
|
|
163
|
-
placeholder:
|
|
164
|
-
"aria-label":
|
|
168
|
+
children: A("eventfullymanaged.communication.fields.audience", "Audience")
|
|
169
|
+
}), /* @__PURE__ */ f(w, {
|
|
170
|
+
value: H,
|
|
171
|
+
onChange: (e) => U(e.target.value),
|
|
172
|
+
placeholder: R === "campaign" ? A("eventfullymanaged.communication.fields.audienceSegmentsPlaceholder", "vip, early-bird, speakers (comma-separated segments)") : A("eventfullymanaged.communication.fields.audiencePlaceholder", "All attendees"),
|
|
173
|
+
"aria-label": A("eventfullymanaged.communication.fields.audience", "Audience")
|
|
165
174
|
})]
|
|
166
175
|
}),
|
|
167
|
-
/* @__PURE__ */
|
|
176
|
+
/* @__PURE__ */ p("label", {
|
|
168
177
|
className: "block space-y-1 text-sm",
|
|
169
|
-
children: [/* @__PURE__ */
|
|
178
|
+
children: [/* @__PURE__ */ f("span", {
|
|
170
179
|
className: "font-medium text-text-primary",
|
|
171
|
-
children:
|
|
172
|
-
}), /* @__PURE__ */
|
|
173
|
-
value:
|
|
174
|
-
onChange: (e) =>
|
|
180
|
+
children: A("eventfullymanaged.communication.fields.body", "Message")
|
|
181
|
+
}), /* @__PURE__ */ f(re, {
|
|
182
|
+
value: W,
|
|
183
|
+
onChange: (e) => G(e.target.value),
|
|
175
184
|
rows: 5,
|
|
176
|
-
placeholder:
|
|
177
|
-
"aria-label":
|
|
185
|
+
placeholder: A("eventfullymanaged.communication.fields.bodyPlaceholder", "Hi there, here are the latest updates…"),
|
|
186
|
+
"aria-label": A("eventfullymanaged.communication.fields.body", "Message")
|
|
178
187
|
})]
|
|
179
188
|
}),
|
|
180
|
-
/* @__PURE__ */ p("
|
|
189
|
+
R === "campaign" ? /* @__PURE__ */ p("label", {
|
|
190
|
+
className: "block space-y-1 text-sm",
|
|
191
|
+
children: [
|
|
192
|
+
/* @__PURE__ */ f("span", {
|
|
193
|
+
className: "font-medium text-text-primary",
|
|
194
|
+
children: A("eventfullymanaged.communication.fields.scheduleAt", "Schedule send (optional)")
|
|
195
|
+
}),
|
|
196
|
+
/* @__PURE__ */ f(w, {
|
|
197
|
+
type: "datetime-local",
|
|
198
|
+
value: K,
|
|
199
|
+
onChange: (e) => q(e.target.value),
|
|
200
|
+
"aria-label": A("eventfullymanaged.communication.fields.scheduleAt", "Schedule send (optional)")
|
|
201
|
+
}),
|
|
202
|
+
/* @__PURE__ */ f("span", {
|
|
203
|
+
className: "block text-xs text-text-muted",
|
|
204
|
+
children: A("eventfullymanaged.communication.fields.scheduleHint", "Leave blank to send immediately when you click Send campaign.")
|
|
205
|
+
})
|
|
206
|
+
]
|
|
207
|
+
}) : null,
|
|
208
|
+
/* @__PURE__ */ f("div", {
|
|
181
209
|
className: "flex justify-end",
|
|
182
|
-
children: /* @__PURE__ */
|
|
210
|
+
children: /* @__PURE__ */ f(x, {
|
|
183
211
|
type: "button",
|
|
184
212
|
disabled: Q,
|
|
185
|
-
onClick:
|
|
186
|
-
children: Q ?
|
|
213
|
+
onClick: le,
|
|
214
|
+
children: Q ? A("eventfullymanaged.communication.actions.saving", "Saving…") : A(R === "announcement" ? "eventfullymanaged.communication.actions.createAnnouncement" : "eventfullymanaged.communication.actions.createCampaign", "Create draft")
|
|
187
215
|
})
|
|
188
216
|
})
|
|
189
217
|
]
|
|
190
|
-
}), /* @__PURE__ */
|
|
218
|
+
}), /* @__PURE__ */ p("div", {
|
|
191
219
|
className: "rounded-card border border-border-seam bg-bg-surface p-4",
|
|
192
|
-
children: [/* @__PURE__ */
|
|
220
|
+
children: [/* @__PURE__ */ p("div", {
|
|
193
221
|
className: "flex items-center justify-between border-b border-border-seam pb-2",
|
|
194
|
-
children: [/* @__PURE__ */
|
|
222
|
+
children: [/* @__PURE__ */ p("span", {
|
|
195
223
|
className: "flex items-center gap-2 text-xs font-medium uppercase tracking-wide text-text-muted",
|
|
196
|
-
children: [/* @__PURE__ */
|
|
197
|
-
}), /* @__PURE__ */
|
|
224
|
+
children: [/* @__PURE__ */ f(m, { className: "h-3.5 w-3.5" }), A("eventfullymanaged.communication.preview.label", "Preview")]
|
|
225
|
+
}), /* @__PURE__ */ f(b, {
|
|
198
226
|
variant: "info",
|
|
199
227
|
className: "uppercase",
|
|
200
|
-
children:
|
|
228
|
+
children: A("eventfullymanaged.communication.preview.draft", "Draft")
|
|
201
229
|
})]
|
|
202
|
-
}), /* @__PURE__ */
|
|
230
|
+
}), /* @__PURE__ */ p("div", {
|
|
203
231
|
className: "mt-3 space-y-2",
|
|
204
232
|
children: [
|
|
205
|
-
/* @__PURE__ */
|
|
233
|
+
/* @__PURE__ */ f("p", {
|
|
206
234
|
className: "text-base font-semibold text-text-primary",
|
|
207
|
-
children:
|
|
235
|
+
children: B.trim() || A("eventfullymanaged.communication.preview.noSubject", "Your subject line")
|
|
208
236
|
}),
|
|
209
|
-
|
|
237
|
+
H.trim() ? /* @__PURE__ */ p("p", {
|
|
210
238
|
className: "text-xs text-text-secondary",
|
|
211
239
|
children: [
|
|
212
|
-
|
|
240
|
+
A("eventfullymanaged.communication.preview.to", "To"),
|
|
213
241
|
": ",
|
|
214
|
-
|
|
242
|
+
H.trim()
|
|
215
243
|
]
|
|
216
244
|
}) : null,
|
|
217
|
-
/* @__PURE__ */
|
|
245
|
+
/* @__PURE__ */ f("p", {
|
|
218
246
|
className: "whitespace-pre-wrap text-sm text-text-secondary",
|
|
219
|
-
children:
|
|
247
|
+
children: W.trim() || A("eventfullymanaged.communication.preview.noBody", "Start typing to see your message preview here.")
|
|
220
248
|
})
|
|
221
249
|
]
|
|
222
250
|
})]
|
|
223
251
|
})]
|
|
224
252
|
})
|
|
225
253
|
}),
|
|
226
|
-
/* @__PURE__ */
|
|
254
|
+
/* @__PURE__ */ p("div", {
|
|
227
255
|
className: "grid grid-cols-1 gap-6 lg:grid-cols-2",
|
|
228
|
-
children: [/* @__PURE__ */
|
|
256
|
+
children: [/* @__PURE__ */ p(S, {
|
|
229
257
|
treatment: "plain",
|
|
230
258
|
className: "border-border-seam p-5",
|
|
231
|
-
children: [/* @__PURE__ */
|
|
259
|
+
children: [/* @__PURE__ */ p("div", {
|
|
232
260
|
className: "flex items-center justify-between",
|
|
233
|
-
children: [/* @__PURE__ */
|
|
261
|
+
children: [/* @__PURE__ */ f("h2", {
|
|
234
262
|
className: "text-lg font-semibold text-text-primary",
|
|
235
|
-
children:
|
|
236
|
-
}), Y > 0 ? /* @__PURE__ */
|
|
263
|
+
children: A("eventfullymanaged.communication.announcements.heading", "Announcements")
|
|
264
|
+
}), Y > 0 ? /* @__PURE__ */ f("span", {
|
|
237
265
|
className: "text-sm text-text-muted",
|
|
238
266
|
children: Y
|
|
239
267
|
}) : null]
|
|
240
|
-
}), /* @__PURE__ */
|
|
268
|
+
}), /* @__PURE__ */ p("div", {
|
|
241
269
|
className: "mt-4",
|
|
242
|
-
children: [
|
|
270
|
+
children: [N.loading && J.length === 0 ? /* @__PURE__ */ f("p", {
|
|
243
271
|
className: "py-8 text-center text-sm text-text-secondary",
|
|
244
|
-
children:
|
|
245
|
-
}) : J.length === 0 ? /* @__PURE__ */
|
|
272
|
+
children: A("eventfullymanaged.communication.announcements.loading", "Loading announcements…")
|
|
273
|
+
}) : J.length === 0 ? /* @__PURE__ */ f(C, {
|
|
246
274
|
illustration: "empty-data",
|
|
247
|
-
title:
|
|
275
|
+
title: A("eventfullymanaged.communication.announcements.empty", "No announcements yet."),
|
|
248
276
|
className: "py-8"
|
|
249
|
-
}) : /* @__PURE__ */
|
|
277
|
+
}) : /* @__PURE__ */ f("ul", {
|
|
250
278
|
className: "space-y-2.5",
|
|
251
|
-
children: J.map((e) => /* @__PURE__ */
|
|
279
|
+
children: J.map((e) => /* @__PURE__ */ p("li", {
|
|
252
280
|
className: "flex items-center justify-between gap-3 rounded-card border border-border-seam bg-bg-surface p-3 transition-[box-shadow,border-color] duration-200 hover:border-border-strong hover:shadow-elevation-1",
|
|
253
|
-
children: [/* @__PURE__ */
|
|
281
|
+
children: [/* @__PURE__ */ f("p", {
|
|
254
282
|
className: "min-w-0 truncate font-medium text-text-primary",
|
|
255
|
-
children:
|
|
256
|
-
}), /* @__PURE__ */
|
|
283
|
+
children: O(e, A("eventfullymanaged.communication.announcements.itemPrefix", "Announcement"))
|
|
284
|
+
}), /* @__PURE__ */ p("div", {
|
|
257
285
|
className: "flex shrink-0 items-center gap-2",
|
|
258
|
-
children: [e.status ? /* @__PURE__ */
|
|
259
|
-
variant:
|
|
286
|
+
children: [e.status ? /* @__PURE__ */ f(b, {
|
|
287
|
+
variant: E(e.status),
|
|
260
288
|
className: "uppercase",
|
|
261
289
|
children: e.status
|
|
262
|
-
}) : null,
|
|
290
|
+
}) : null, D(e.status) ? /* @__PURE__ */ p(x, {
|
|
263
291
|
type: "button",
|
|
264
292
|
size: "sm",
|
|
265
|
-
disabled:
|
|
266
|
-
onClick: () => void
|
|
267
|
-
children: [/* @__PURE__ */
|
|
293
|
+
disabled: oe,
|
|
294
|
+
onClick: () => void ue(e),
|
|
295
|
+
children: [/* @__PURE__ */ f(v, { className: "h-3.5 w-3.5" }), A("eventfullymanaged.communication.actions.publish", "Publish")]
|
|
268
296
|
}) : null]
|
|
269
297
|
})]
|
|
270
298
|
}, e.id))
|
|
271
|
-
}), /* @__PURE__ */
|
|
272
|
-
offset:
|
|
273
|
-
limit:
|
|
299
|
+
}), /* @__PURE__ */ f(o, {
|
|
300
|
+
offset: j.offset,
|
|
301
|
+
limit: j.limit,
|
|
274
302
|
loadedCount: J.length,
|
|
275
303
|
total: Y,
|
|
276
|
-
onPrev:
|
|
277
|
-
onNext:
|
|
278
|
-
itemLabel:
|
|
279
|
-
loading:
|
|
304
|
+
onPrev: j.prevPage,
|
|
305
|
+
onNext: j.nextPage,
|
|
306
|
+
itemLabel: A("eventfullymanaged.communication.announcements.heading", "Announcements").toLowerCase(),
|
|
307
|
+
loading: N.loading
|
|
280
308
|
})]
|
|
281
309
|
})]
|
|
282
|
-
}), /* @__PURE__ */
|
|
310
|
+
}), /* @__PURE__ */ p(S, {
|
|
283
311
|
treatment: "plain",
|
|
284
312
|
className: "border-border-seam p-5",
|
|
285
|
-
children: [/* @__PURE__ */
|
|
313
|
+
children: [/* @__PURE__ */ p("div", {
|
|
286
314
|
className: "flex items-center justify-between",
|
|
287
|
-
children: [/* @__PURE__ */
|
|
315
|
+
children: [/* @__PURE__ */ f("h2", {
|
|
288
316
|
className: "text-lg font-semibold text-text-primary",
|
|
289
|
-
children:
|
|
290
|
-
}), Z > 0 ? /* @__PURE__ */
|
|
317
|
+
children: A("eventfullymanaged.communication.campaigns.heading", "Campaigns")
|
|
318
|
+
}), Z > 0 ? /* @__PURE__ */ f("span", {
|
|
291
319
|
className: "text-sm text-text-muted",
|
|
292
320
|
children: Z
|
|
293
321
|
}) : null]
|
|
294
|
-
}), /* @__PURE__ */
|
|
322
|
+
}), /* @__PURE__ */ p("div", {
|
|
295
323
|
className: "mt-4",
|
|
296
|
-
children: [
|
|
324
|
+
children: [P.loading && X.length === 0 ? /* @__PURE__ */ f("p", {
|
|
297
325
|
className: "py-8 text-center text-sm text-text-secondary",
|
|
298
|
-
children:
|
|
299
|
-
}) : X.length === 0 ? /* @__PURE__ */
|
|
326
|
+
children: A("eventfullymanaged.communication.campaigns.loading", "Loading campaigns…")
|
|
327
|
+
}) : X.length === 0 ? /* @__PURE__ */ f(C, {
|
|
300
328
|
illustration: "empty-data",
|
|
301
|
-
title:
|
|
329
|
+
title: A("eventfullymanaged.communication.campaigns.empty", "No campaigns yet."),
|
|
302
330
|
className: "py-8"
|
|
303
|
-
}) : /* @__PURE__ */
|
|
331
|
+
}) : /* @__PURE__ */ f("ul", {
|
|
304
332
|
className: "space-y-2.5",
|
|
305
|
-
children: X.map((e) =>
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
className: "
|
|
309
|
-
children:
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
})
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
333
|
+
children: X.map((e) => {
|
|
334
|
+
let t = T(e);
|
|
335
|
+
return /* @__PURE__ */ p("li", {
|
|
336
|
+
className: "flex items-center justify-between gap-3 rounded-card border border-border-seam bg-bg-surface p-3 transition-[box-shadow,border-color] duration-200 hover:border-border-strong hover:shadow-elevation-1",
|
|
337
|
+
children: [/* @__PURE__ */ p("div", {
|
|
338
|
+
className: "min-w-0",
|
|
339
|
+
children: [/* @__PURE__ */ f("p", {
|
|
340
|
+
className: "truncate font-medium text-text-primary",
|
|
341
|
+
children: O(e, A("eventfullymanaged.communication.campaigns.itemPrefix", "Campaign"))
|
|
342
|
+
}), t ? /* @__PURE__ */ p("p", {
|
|
343
|
+
className: "truncate text-xs text-text-muted",
|
|
344
|
+
children: [
|
|
345
|
+
A("eventfullymanaged.communication.campaigns.scheduledFor", "Scheduled for"),
|
|
346
|
+
" ",
|
|
347
|
+
new Date(t).toLocaleString()
|
|
348
|
+
]
|
|
349
|
+
}) : null]
|
|
350
|
+
}), /* @__PURE__ */ p("div", {
|
|
351
|
+
className: "flex shrink-0 items-center gap-2",
|
|
352
|
+
children: [e.status ? /* @__PURE__ */ f(b, {
|
|
353
|
+
variant: E(e.status),
|
|
354
|
+
className: "uppercase",
|
|
355
|
+
children: e.status
|
|
356
|
+
}) : null, D(e.status) ? /* @__PURE__ */ p(x, {
|
|
357
|
+
type: "button",
|
|
358
|
+
size: "sm",
|
|
359
|
+
disabled: L,
|
|
360
|
+
onClick: () => void de(e),
|
|
361
|
+
children: [/* @__PURE__ */ f(_, { className: "h-3.5 w-3.5" }), A("eventfullymanaged.communication.actions.send", "Send campaign")]
|
|
362
|
+
}) : null]
|
|
363
|
+
})]
|
|
364
|
+
}, e.id);
|
|
365
|
+
})
|
|
366
|
+
}), /* @__PURE__ */ f(o, {
|
|
367
|
+
offset: M.offset,
|
|
368
|
+
limit: M.limit,
|
|
328
369
|
loadedCount: X.length,
|
|
329
370
|
total: Z,
|
|
330
|
-
onPrev:
|
|
331
|
-
onNext:
|
|
332
|
-
itemLabel:
|
|
333
|
-
loading:
|
|
371
|
+
onPrev: M.prevPage,
|
|
372
|
+
onNext: M.nextPage,
|
|
373
|
+
itemLabel: A("eventfullymanaged.communication.campaigns.heading", "Campaigns").toLowerCase(),
|
|
374
|
+
loading: P.loading
|
|
334
375
|
})]
|
|
335
376
|
})]
|
|
336
377
|
})]
|
|
@@ -339,6 +380,6 @@ function j() {
|
|
|
339
380
|
});
|
|
340
381
|
}
|
|
341
382
|
//#endregion
|
|
342
|
-
export {
|
|
383
|
+
export { k as default };
|
|
343
384
|
|
|
344
385
|
//# sourceMappingURL=CommunicationPage.js.map
|