@burdenoff/microfe-eventfullymanaged 2026.529.1 → 2026.625.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/components/PageLayout.js +44 -38
- package/dist/eventfullymanaged/components/PageLayout.js.map +1 -1
- package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js +39 -27
- package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js +40 -41
- package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/AttendeeProfilePage.js +67 -65
- package/dist/eventfullymanaged/pages/modules/AttendeeProfilePage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/CommunicationPage.js +48 -50
- package/dist/eventfullymanaged/pages/modules/CommunicationPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/EntityListSection.js +57 -25
- package/dist/eventfullymanaged/pages/modules/EntityListSection.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/EventsPage.js +55 -57
- package/dist/eventfullymanaged/pages/modules/EventsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/KioskPage.js +17 -19
- package/dist/eventfullymanaged/pages/modules/KioskPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/NetworkingPage.js +22 -22
- package/dist/eventfullymanaged/pages/modules/NetworkingPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/OperationsHubPage.js +90 -82
- package/dist/eventfullymanaged/pages/modules/OperationsHubPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/RegistrationPage.js +28 -29
- package/dist/eventfullymanaged/pages/modules/RegistrationPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/SponsorDetailsPage.js +67 -65
- package/dist/eventfullymanaged/pages/modules/SponsorDetailsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/SponsorLeadsPage.js +18 -20
- package/dist/eventfullymanaged/pages/modules/SponsorLeadsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/VenueResourcesPage.js +68 -64
- package/dist/eventfullymanaged/pages/modules/VenueResourcesPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/WorkflowsPage.js +57 -60
- package/dist/eventfullymanaged/pages/modules/WorkflowsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/sponsors/SponsorFormPage.js +197 -199
- package/dist/eventfullymanaged/pages/sponsors/SponsorFormPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/sponsors/SponsorsListPage.js +57 -39
- package/dist/eventfullymanaged/pages/sponsors/SponsorsListPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/FloorPlansPage.js +41 -31
- package/dist/eventfullymanaged/pages/venues/FloorPlansPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/VenueDetailPage.js +79 -62
- package/dist/eventfullymanaged/pages/venues/VenueDetailPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/VenueFormPage.js +185 -189
- package/dist/eventfullymanaged/pages/venues/VenueFormPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/VenueListPage.js +63 -35
- package/dist/eventfullymanaged/pages/venues/VenueListPage.js.map +1 -1
- package/package.json +2 -2
|
@@ -3,48 +3,47 @@ import { EntityListSection as r } from "./EntityListSection.js";
|
|
|
3
3
|
import { useMemo as i } from "react";
|
|
4
4
|
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
5
5
|
import { useI18n as s } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
6
|
+
import { EmphasisPanel as c, GradientText as l } from "@burdenoff/fe-libs/ui";
|
|
6
7
|
//#region src/eventfullymanaged/pages/modules/RegistrationPage.tsx
|
|
7
|
-
function
|
|
8
|
-
let { t:
|
|
9
|
-
let n =
|
|
8
|
+
function u() {
|
|
9
|
+
let { t: u } = s(), d = (e, t) => {
|
|
10
|
+
let n = u(e);
|
|
10
11
|
return n === e ? t : n;
|
|
11
|
-
},
|
|
12
|
+
}, f = n({
|
|
12
13
|
limit: 100,
|
|
13
14
|
offset: 0
|
|
14
|
-
}),
|
|
15
|
+
}), p = e({
|
|
15
16
|
limit: 100,
|
|
16
17
|
offset: 0
|
|
17
|
-
}),
|
|
18
|
+
}), m = t({
|
|
18
19
|
limit: 100,
|
|
19
20
|
offset: 0
|
|
20
|
-
}),
|
|
21
|
+
}), h = i(() => f.data?.registrations.items ?? [], [f.data]), g = i(() => p.data?.attendees.items ?? [], [p.data]), _ = i(() => m.data?.promoCodes.items ?? [], [m.data]);
|
|
21
22
|
return /* @__PURE__ */ o("div", {
|
|
22
23
|
className: "space-y-6 p-6",
|
|
23
24
|
children: [
|
|
24
|
-
/* @__PURE__ */ o("
|
|
25
|
-
className: "
|
|
26
|
-
children:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
children: l("eventfullymanaged.registration.description", "Track registrations and attendee profiles via backend GraphQL APIs.")
|
|
32
|
-
})]
|
|
33
|
-
}),
|
|
25
|
+
/* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a("h1", {
|
|
26
|
+
className: "text-2xl font-bold text-text-primary",
|
|
27
|
+
children: /* @__PURE__ */ a(l, { children: d("eventfullymanaged.registration.title", "Registration") })
|
|
28
|
+
}), /* @__PURE__ */ a("p", {
|
|
29
|
+
className: "mt-1 text-sm text-text-secondary",
|
|
30
|
+
children: d("eventfullymanaged.registration.description", "Track registrations and attendee profiles via backend GraphQL APIs.")
|
|
31
|
+
})] }),
|
|
34
32
|
/* @__PURE__ */ a(r, {
|
|
35
|
-
heading:
|
|
36
|
-
emptyLabel:
|
|
37
|
-
rows:
|
|
33
|
+
heading: f.loading ? d("eventfullymanaged.registration.registrations.loading", "Loading registrations...") : `${d("eventfullymanaged.registration.registrations.heading", "Registrations")} (${h.length})`,
|
|
34
|
+
emptyLabel: d("eventfullymanaged.registration.registrations.empty", "No registrations found."),
|
|
35
|
+
rows: h.map((e) => ({
|
|
38
36
|
id: e.id,
|
|
39
|
-
title: e.attendeeId ? `${
|
|
40
|
-
subtitle: [e.quantity ? `${
|
|
37
|
+
title: e.attendeeId ? `${d("eventfullymanaged.registration.registrations.attendeePrefix", "Attendee")} ${e.attendeeId}` : `${d("eventfullymanaged.registration.registrations.itemPrefix", "Registration")} ${e.id}`,
|
|
38
|
+
subtitle: [e.quantity ? `${d("eventfullymanaged.registration.registrations.quantityPrefix", "Qty")} ${e.quantity}` : void 0, e.totalAmount ? `${e.totalAmount} ${e.currency ?? ""}` : void 0].filter(Boolean).join(" • "),
|
|
41
39
|
status: e.status
|
|
42
40
|
}))
|
|
43
41
|
}),
|
|
44
42
|
/* @__PURE__ */ a(r, {
|
|
45
|
-
heading:
|
|
46
|
-
emptyLabel:
|
|
47
|
-
|
|
43
|
+
heading: p.loading ? d("eventfullymanaged.registration.attendees.loading", "Loading attendees...") : `${d("eventfullymanaged.registration.attendees.heading", "Attendees")} (${g.length})`,
|
|
44
|
+
emptyLabel: d("eventfullymanaged.registration.attendees.empty", "No attendees found."),
|
|
45
|
+
emptyIllustration: "empty-people",
|
|
46
|
+
rows: g.map((e) => ({
|
|
48
47
|
id: e.id,
|
|
49
48
|
title: e.fullName ?? e.id,
|
|
50
49
|
subtitle: [
|
|
@@ -55,9 +54,9 @@ function c() {
|
|
|
55
54
|
}))
|
|
56
55
|
}),
|
|
57
56
|
/* @__PURE__ */ a(r, {
|
|
58
|
-
heading:
|
|
59
|
-
emptyLabel:
|
|
60
|
-
rows:
|
|
57
|
+
heading: m.loading ? d("eventfullymanaged.registration.promoCodes.loading", "Loading promo codes...") : `${d("eventfullymanaged.registration.promoCodes.heading", "Promo Codes")} (${_.length})`,
|
|
58
|
+
emptyLabel: d("eventfullymanaged.registration.promoCodes.empty", "No promo codes configured."),
|
|
59
|
+
rows: _.map((e) => ({
|
|
61
60
|
id: e.id,
|
|
62
61
|
title: e.code,
|
|
63
62
|
subtitle: `${e.discountType} ${e.discountValue}`,
|
|
@@ -68,6 +67,6 @@ function c() {
|
|
|
68
67
|
});
|
|
69
68
|
}
|
|
70
69
|
//#endregion
|
|
71
|
-
export {
|
|
70
|
+
export { u as default };
|
|
72
71
|
|
|
73
72
|
//# sourceMappingURL=RegistrationPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegistrationPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/RegistrationPage.tsx"],"sourcesContent":["import { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useMemo } from 'react';\n\nimport { useAttendeesQuery, usePromoCodesQuery, useRegistrationsQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype RegistrationRow = {\n id: string;\n attendeeId?: string;\n status?: string;\n quantity?: number;\n currency?: string;\n totalAmount?: string;\n};\n\ntype AttendeeRow = {\n id: string;\n fullName?: string;\n email?: string;\n company?: string;\n role?: string;\n};\n\nexport default function RegistrationPage() {\n const { t: translate } = useI18n();\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n const registrationsQuery = useRegistrationsQuery({ limit: 100, offset: 0 });\n const attendeesQuery = useAttendeesQuery({ limit: 100, offset: 0 });\n const promoCodesQuery = usePromoCodesQuery({ limit: 100, offset: 0 });\n\n const registrations = useMemo(\n () => (registrationsQuery.data?.registrations.items ?? []) as RegistrationRow[],\n [registrationsQuery.data]\n );\n const attendees = useMemo(() => (attendeesQuery.data?.attendees.items ?? []) as AttendeeRow[], [attendeesQuery.data]);\n const promoCodes = useMemo(() => promoCodesQuery.data?.promoCodes.items ?? [], [promoCodesQuery.data]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <
|
|
1
|
+
{"version":3,"file":"RegistrationPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/RegistrationPage.tsx"],"sourcesContent":["import { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { EmphasisPanel, GradientText } from '@burdenoff/fe-libs/ui';\nimport { useMemo } from 'react';\n\nimport { useAttendeesQuery, usePromoCodesQuery, useRegistrationsQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype RegistrationRow = {\n id: string;\n attendeeId?: string;\n status?: string;\n quantity?: number;\n currency?: string;\n totalAmount?: string;\n};\n\ntype AttendeeRow = {\n id: string;\n fullName?: string;\n email?: string;\n company?: string;\n role?: string;\n};\n\nexport default function RegistrationPage() {\n const { t: translate } = useI18n();\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n const registrationsQuery = useRegistrationsQuery({ limit: 100, offset: 0 });\n const attendeesQuery = useAttendeesQuery({ limit: 100, offset: 0 });\n const promoCodesQuery = usePromoCodesQuery({ limit: 100, offset: 0 });\n\n const registrations = useMemo(\n () => (registrationsQuery.data?.registrations.items ?? []) as RegistrationRow[],\n [registrationsQuery.data]\n );\n const attendees = useMemo(() => (attendeesQuery.data?.attendees.items ?? []) as AttendeeRow[], [attendeesQuery.data]);\n const promoCodes = useMemo(() => promoCodesQuery.data?.promoCodes.items ?? [], [promoCodesQuery.data]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <EmphasisPanel>\n <h1 className=\"text-2xl font-bold text-text-primary\">\n <GradientText>{t('eventfullymanaged.registration.title', 'Registration')}</GradientText>\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {t(\n 'eventfullymanaged.registration.description',\n 'Track registrations and attendee profiles via backend GraphQL APIs.'\n )}\n </p>\n </EmphasisPanel>\n\n <EntityListSection\n heading={\n registrationsQuery.loading\n ? t('eventfullymanaged.registration.registrations.loading', 'Loading registrations...')\n : `${t('eventfullymanaged.registration.registrations.heading', 'Registrations')} (${registrations.length})`\n }\n emptyLabel={t('eventfullymanaged.registration.registrations.empty', 'No registrations found.')}\n rows={registrations.map((row) => ({\n id: row.id,\n title: row.attendeeId\n ? `${t('eventfullymanaged.registration.registrations.attendeePrefix', 'Attendee')} ${row.attendeeId}`\n : `${t('eventfullymanaged.registration.registrations.itemPrefix', 'Registration')} ${row.id}`,\n subtitle: [\n row.quantity\n ? `${t('eventfullymanaged.registration.registrations.quantityPrefix', 'Qty')} ${row.quantity}`\n : undefined,\n row.totalAmount ? `${row.totalAmount} ${row.currency ?? ''}` : undefined,\n ]\n .filter(Boolean)\n .join(' • '),\n status: row.status,\n }))}\n />\n\n <EntityListSection\n heading={\n attendeesQuery.loading\n ? t('eventfullymanaged.registration.attendees.loading', 'Loading attendees...')\n : `${t('eventfullymanaged.registration.attendees.heading', 'Attendees')} (${attendees.length})`\n }\n emptyLabel={t('eventfullymanaged.registration.attendees.empty', 'No attendees found.')}\n emptyIllustration=\"empty-people\"\n rows={attendees.map((row) => ({\n id: row.id,\n title: row.fullName ?? row.id,\n subtitle: [row.email, row.company, row.role].filter(Boolean).join(' • '),\n }))}\n />\n\n <EntityListSection\n heading={\n promoCodesQuery.loading\n ? t('eventfullymanaged.registration.promoCodes.loading', 'Loading promo codes...')\n : `${t('eventfullymanaged.registration.promoCodes.heading', 'Promo Codes')} (${promoCodes.length})`\n }\n emptyLabel={t('eventfullymanaged.registration.promoCodes.empty', 'No promo codes configured.')}\n rows={promoCodes.map((row) => ({\n id: row.id,\n title: row.code,\n subtitle: `${row.discountType} ${row.discountValue}`,\n status: row.isActive ? 'active' : 'inactive',\n }))}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;AAwBA,SAAwB,IAAmB;CACzC,IAAM,EAAE,GAAG,MAAc,GAAS,EAC5B,KAAK,GAAa,MAAqB;EAC3C,IAAM,IAAQ,EAAU,EAAI;AAC5B,SAAO,MAAU,IAAM,IAAW;IAE9B,IAAqB,EAAsB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EACrE,IAAiB,EAAkB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAC7D,IAAkB,EAAmB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAE/D,IAAgB,QACb,EAAmB,MAAM,cAAc,SAAS,EAAE,EACzD,CAAC,EAAmB,KAAK,CAC1B,EACK,IAAY,QAAe,EAAe,MAAM,UAAU,SAAS,EAAE,EAAoB,CAAC,EAAe,KAAK,CAAC,EAC/G,IAAa,QAAc,EAAgB,MAAM,WAAW,SAAS,EAAE,EAAE,CAAC,EAAgB,KAAK,CAAC;AAEtG,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cACZ,kBAAC,GAAD,EAAA,UAAe,EAAE,wCAAwC,eAAe,EAAgB,CAAA;IACrF,CAAA,EACL,kBAAC,KAAD;IAAG,WAAU;cACV,EACC,8CACA,sEACD;IACC,CAAA,CACU,EAAA,CAAA;GAEhB,kBAAC,GAAD;IACE,SACE,EAAmB,UACf,EAAE,wDAAwD,2BAA2B,GACrF,GAAG,EAAE,wDAAwD,gBAAgB,CAAC,IAAI,EAAc,OAAO;IAE7G,YAAY,EAAE,sDAAsD,0BAA0B;IAC9F,MAAM,EAAc,KAAK,OAAS;KAChC,IAAI,EAAI;KACR,OAAO,EAAI,aACP,GAAG,EAAE,+DAA+D,WAAW,CAAC,GAAG,EAAI,eACvF,GAAG,EAAE,2DAA2D,eAAe,CAAC,GAAG,EAAI;KAC3F,UAAU,CACR,EAAI,WACA,GAAG,EAAE,+DAA+D,MAAM,CAAC,GAAG,EAAI,aAClF,KAAA,GACJ,EAAI,cAAc,GAAG,EAAI,YAAY,GAAG,EAAI,YAAY,OAAO,KAAA,EAChE,CACE,OAAO,QAAQ,CACf,KAAK,MAAM;KACd,QAAQ,EAAI;KACb,EAAE;IACH,CAAA;GAEF,kBAAC,GAAD;IACE,SACE,EAAe,UACX,EAAE,oDAAoD,uBAAuB,GAC7E,GAAG,EAAE,oDAAoD,YAAY,CAAC,IAAI,EAAU,OAAO;IAEjG,YAAY,EAAE,kDAAkD,sBAAsB;IACtF,mBAAkB;IAClB,MAAM,EAAU,KAAK,OAAS;KAC5B,IAAI,EAAI;KACR,OAAO,EAAI,YAAY,EAAI;KAC3B,UAAU;MAAC,EAAI;MAAO,EAAI;MAAS,EAAI;MAAK,CAAC,OAAO,QAAQ,CAAC,KAAK,MAAM;KACzE,EAAE;IACH,CAAA;GAEF,kBAAC,GAAD;IACE,SACE,EAAgB,UACZ,EAAE,qDAAqD,yBAAyB,GAChF,GAAG,EAAE,qDAAqD,cAAc,CAAC,IAAI,EAAW,OAAO;IAErG,YAAY,EAAE,mDAAmD,6BAA6B;IAC9F,MAAM,EAAW,KAAK,OAAS;KAC7B,IAAI,EAAI;KACR,OAAO,EAAI;KACX,UAAU,GAAG,EAAI,aAAa,GAAG,EAAI;KACrC,QAAQ,EAAI,WAAW,WAAW;KACnC,EAAE;IACH,CAAA;GACE"}
|
|
@@ -3,78 +3,80 @@ import { EntityListSection as n } from "./EntityListSection.js";
|
|
|
3
3
|
import { useMemo as r } from "react";
|
|
4
4
|
import { useParams as i } from "react-router-dom";
|
|
5
5
|
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
6
|
+
import { EmphasisPanel as s, GlassCard as c, GradientText as l } from "@burdenoff/fe-libs/ui";
|
|
6
7
|
//#region src/eventfullymanaged/pages/modules/SponsorDetailsPage.tsx
|
|
7
|
-
function
|
|
8
|
-
let { id:
|
|
8
|
+
function u() {
|
|
9
|
+
let { id: u = "" } = i(), d = t({
|
|
9
10
|
limit: 100,
|
|
10
11
|
offset: 0
|
|
11
|
-
}),
|
|
12
|
+
}), f = e({
|
|
12
13
|
limit: 100,
|
|
13
14
|
offset: 0
|
|
14
|
-
}),
|
|
15
|
+
}), p = r(() => (d.data?.sponsors.items ?? []).find((e) => e.id === u), [u, d.data]), m = r(() => f.data?.communicationCampaigns.items ?? [], [f.data]);
|
|
15
16
|
return /* @__PURE__ */ o("div", {
|
|
16
17
|
className: "space-y-6 p-6",
|
|
17
|
-
children: [/* @__PURE__ */ o(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
/* @__PURE__ */ a("
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
})
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
18
|
+
children: [/* @__PURE__ */ o(s, { children: [
|
|
19
|
+
/* @__PURE__ */ o("h1", {
|
|
20
|
+
className: "text-2xl font-bold text-text-primary",
|
|
21
|
+
children: [/* @__PURE__ */ a(l, { children: "Sponsor" }), " Details"]
|
|
22
|
+
}),
|
|
23
|
+
/* @__PURE__ */ a("p", {
|
|
24
|
+
className: "mt-1 text-sm text-text-secondary",
|
|
25
|
+
children: d.loading ? "Loading sponsor details..." : p ? `Live sponsor profile for ${p.name}.` : "Sponsor not found in current query scope."
|
|
26
|
+
}),
|
|
27
|
+
p ? /* @__PURE__ */ o("div", {
|
|
28
|
+
className: "mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4",
|
|
29
|
+
children: [
|
|
30
|
+
/* @__PURE__ */ o(c, {
|
|
31
|
+
treatment: "metric",
|
|
32
|
+
className: "p-3",
|
|
33
|
+
children: [/* @__PURE__ */ a("p", {
|
|
34
|
+
className: "text-xs uppercase tracking-wide text-text-secondary",
|
|
35
|
+
children: "Level"
|
|
36
|
+
}), /* @__PURE__ */ a("p", {
|
|
37
|
+
className: "mt-1 font-medium text-text-primary",
|
|
38
|
+
children: p.level
|
|
39
|
+
})]
|
|
40
|
+
}),
|
|
41
|
+
/* @__PURE__ */ o(c, {
|
|
42
|
+
treatment: "metric",
|
|
43
|
+
className: "p-3",
|
|
44
|
+
children: [/* @__PURE__ */ a("p", {
|
|
45
|
+
className: "text-xs uppercase tracking-wide text-text-secondary",
|
|
46
|
+
children: "Contact"
|
|
47
|
+
}), /* @__PURE__ */ a("p", {
|
|
48
|
+
className: "mt-1 font-medium text-text-primary",
|
|
49
|
+
children: p.contactName ?? "Unassigned"
|
|
50
|
+
})]
|
|
51
|
+
}),
|
|
52
|
+
/* @__PURE__ */ o(c, {
|
|
53
|
+
treatment: "metric",
|
|
54
|
+
className: "p-3",
|
|
55
|
+
children: [/* @__PURE__ */ a("p", {
|
|
56
|
+
className: "text-xs uppercase tracking-wide text-text-secondary",
|
|
57
|
+
children: "Email"
|
|
58
|
+
}), /* @__PURE__ */ a("p", {
|
|
59
|
+
className: "mt-1 font-medium text-text-primary",
|
|
60
|
+
children: p.contactEmail ?? "Unavailable"
|
|
61
|
+
})]
|
|
62
|
+
}),
|
|
63
|
+
/* @__PURE__ */ o(c, {
|
|
64
|
+
treatment: "metric",
|
|
65
|
+
className: "p-3",
|
|
66
|
+
children: [/* @__PURE__ */ a("p", {
|
|
67
|
+
className: "text-xs uppercase tracking-wide text-text-secondary",
|
|
68
|
+
children: "Website"
|
|
69
|
+
}), /* @__PURE__ */ a("p", {
|
|
70
|
+
className: "mt-1 truncate font-medium text-text-primary",
|
|
71
|
+
children: p.website ?? "Unavailable"
|
|
72
|
+
})]
|
|
73
|
+
})
|
|
74
|
+
]
|
|
75
|
+
}) : null
|
|
76
|
+
] }), /* @__PURE__ */ a(n, {
|
|
77
|
+
heading: f.loading ? "Loading campaigns..." : `Campaign Activity (${m.length})`,
|
|
76
78
|
emptyLabel: "No communication campaigns available for sponsor tracking.",
|
|
77
|
-
rows:
|
|
79
|
+
rows: m.map((e) => ({
|
|
78
80
|
id: e.id,
|
|
79
81
|
title: e.title ?? e.name ?? `Campaign ${e.id}`,
|
|
80
82
|
status: e.status
|
|
@@ -83,6 +85,6 @@ function s() {
|
|
|
83
85
|
});
|
|
84
86
|
}
|
|
85
87
|
//#endregion
|
|
86
|
-
export {
|
|
88
|
+
export { u as default };
|
|
87
89
|
|
|
88
90
|
//# sourceMappingURL=SponsorDetailsPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SponsorDetailsPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/SponsorDetailsPage.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useCommunicationCampaignsQuery, useSponsorsQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype SponsorRow = {\n id: string;\n name: string;\n level: string;\n website?: string | null;\n contactName?: string | null;\n contactEmail?: string | null;\n};\n\ntype CampaignRow = {\n id: string;\n name?: string;\n title?: string;\n status?: string;\n};\n\nexport default function SponsorDetailsPage() {\n const { id = '' } = useParams();\n const sponsorsQuery = useSponsorsQuery({ limit: 100, offset: 0 });\n const campaignsQuery = useCommunicationCampaignsQuery({ limit: 100, offset: 0 });\n\n const sponsor = useMemo(\n () => ((sponsorsQuery.data?.sponsors.items ?? []) as SponsorRow[]).find((item) => item.id === id),\n [id, sponsorsQuery.data]\n );\n const campaigns = useMemo(\n () => (campaignsQuery.data?.communicationCampaigns.items ?? []) as CampaignRow[],\n [campaignsQuery.data]\n );\n\n return (\n <div className=\"space-y-6 p-6\">\n <
|
|
1
|
+
{"version":3,"file":"SponsorDetailsPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/SponsorDetailsPage.tsx"],"sourcesContent":["import { EmphasisPanel, GlassCard, GradientText } from '@burdenoff/fe-libs/ui';\nimport { useMemo } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useCommunicationCampaignsQuery, useSponsorsQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype SponsorRow = {\n id: string;\n name: string;\n level: string;\n website?: string | null;\n contactName?: string | null;\n contactEmail?: string | null;\n};\n\ntype CampaignRow = {\n id: string;\n name?: string;\n title?: string;\n status?: string;\n};\n\nexport default function SponsorDetailsPage() {\n const { id = '' } = useParams();\n const sponsorsQuery = useSponsorsQuery({ limit: 100, offset: 0 });\n const campaignsQuery = useCommunicationCampaignsQuery({ limit: 100, offset: 0 });\n\n const sponsor = useMemo(\n () => ((sponsorsQuery.data?.sponsors.items ?? []) as SponsorRow[]).find((item) => item.id === id),\n [id, sponsorsQuery.data]\n );\n const campaigns = useMemo(\n () => (campaignsQuery.data?.communicationCampaigns.items ?? []) as CampaignRow[],\n [campaignsQuery.data]\n );\n\n return (\n <div className=\"space-y-6 p-6\">\n <EmphasisPanel>\n <h1 className=\"text-2xl font-bold text-text-primary\">\n <GradientText>Sponsor</GradientText> Details\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {sponsorsQuery.loading\n ? 'Loading sponsor details...'\n : sponsor\n ? `Live sponsor profile for ${sponsor.name}.`\n : 'Sponsor not found in current query scope.'}\n </p>\n {sponsor ? (\n <div className=\"mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4\">\n <GlassCard treatment=\"metric\" className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Level</p>\n <p className=\"mt-1 font-medium text-text-primary\">{sponsor.level}</p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Contact</p>\n <p className=\"mt-1 font-medium text-text-primary\">{sponsor.contactName ?? 'Unassigned'}</p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Email</p>\n <p className=\"mt-1 font-medium text-text-primary\">{sponsor.contactEmail ?? 'Unavailable'}</p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Website</p>\n <p className=\"mt-1 truncate font-medium text-text-primary\">{sponsor.website ?? 'Unavailable'}</p>\n </GlassCard>\n </div>\n ) : null}\n </EmphasisPanel>\n\n <EntityListSection\n heading={campaignsQuery.loading ? 'Loading campaigns...' : `Campaign Activity (${campaigns.length})`}\n emptyLabel=\"No communication campaigns available for sponsor tracking.\"\n rows={campaigns.map((campaign) => ({\n id: campaign.id,\n title: campaign.title ?? campaign.name ?? `Campaign ${campaign.id}`,\n status: campaign.status,\n }))}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;AAuBA,SAAwB,IAAqB;CAC3C,IAAM,EAAE,QAAK,OAAO,GAAW,EACzB,IAAgB,EAAiB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAC3D,IAAiB,EAA+B;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAE1E,IAAU,SACN,EAAc,MAAM,SAAS,SAAS,EAAE,EAAmB,MAAM,MAAS,EAAK,OAAO,EAAG,EACjG,CAAC,GAAI,EAAc,KAAK,CACzB,EACK,IAAY,QACT,EAAe,MAAM,uBAAuB,SAAS,EAAE,EAC9D,CAAC,EAAe,KAAK,CACtB;AAED,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,GAAD,EAAA,UAAA;GACE,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,GAAD,EAAA,UAAc,WAAsB,CAAA,EAAA,WACjC;;GACL,kBAAC,KAAD;IAAG,WAAU;cACV,EAAc,UACX,+BACA,IACE,4BAA4B,EAAQ,KAAK,KACzC;IACJ,CAAA;GACH,IACC,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD;MAAW,WAAU;MAAS,WAAU;gBAAxC,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAsD;OAAS,CAAA,EAC5E,kBAAC,KAAD;OAAG,WAAU;iBAAsC,EAAQ;OAAU,CAAA,CAC3D;;KACZ,kBAAC,GAAD;MAAW,WAAU;MAAS,WAAU;gBAAxC,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAsD;OAAW,CAAA,EAC9E,kBAAC,KAAD;OAAG,WAAU;iBAAsC,EAAQ,eAAe;OAAiB,CAAA,CACjF;;KACZ,kBAAC,GAAD;MAAW,WAAU;MAAS,WAAU;gBAAxC,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAsD;OAAS,CAAA,EAC5E,kBAAC,KAAD;OAAG,WAAU;iBAAsC,EAAQ,gBAAgB;OAAkB,CAAA,CACnF;;KACZ,kBAAC,GAAD;MAAW,WAAU;MAAS,WAAU;gBAAxC,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAsD;OAAW,CAAA,EAC9E,kBAAC,KAAD;OAAG,WAAU;iBAA+C,EAAQ,WAAW;OAAkB,CAAA,CACvF;;KACR;QACJ;GACU,EAAA,CAAA,EAEhB,kBAAC,GAAD;GACE,SAAS,EAAe,UAAU,yBAAyB,sBAAsB,EAAU,OAAO;GAClG,YAAW;GACX,MAAM,EAAU,KAAK,OAAc;IACjC,IAAI,EAAS;IACb,OAAO,EAAS,SAAS,EAAS,QAAQ,YAAY,EAAS;IAC/D,QAAQ,EAAS;IAClB,EAAE;GACH,CAAA,CACE"}
|
|
@@ -3,44 +3,42 @@ import { EntityListSection as r } from "./EntityListSection.js";
|
|
|
3
3
|
import { useMemo as i } from "react";
|
|
4
4
|
import { useParams as a } from "react-router-dom";
|
|
5
5
|
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
6
|
+
import { EmphasisPanel as c, GradientText as l } from "@burdenoff/fe-libs/ui";
|
|
6
7
|
//#region src/eventfullymanaged/pages/modules/SponsorLeadsPage.tsx
|
|
7
|
-
function
|
|
8
|
-
let { id:
|
|
8
|
+
function u() {
|
|
9
|
+
let { id: u = "" } = a(), d = n({
|
|
9
10
|
limit: 100,
|
|
10
11
|
offset: 0
|
|
11
|
-
}),
|
|
12
|
+
}), f = t({
|
|
12
13
|
limit: 100,
|
|
13
14
|
offset: 0
|
|
14
|
-
}),
|
|
15
|
+
}), p = e({
|
|
15
16
|
limit: 100,
|
|
16
17
|
offset: 0
|
|
17
|
-
}),
|
|
18
|
+
}), m = i(() => (d.data?.sponsors.items ?? []).find((e) => e.id === u), [u, d.data]), h = i(() => f.data?.networkingMatches.items ?? [], [f.data]), g = i(() => p.data?.meetings.items ?? [], [p.data]);
|
|
18
19
|
return /* @__PURE__ */ s("div", {
|
|
19
20
|
className: "space-y-6 p-6",
|
|
20
21
|
children: [
|
|
21
|
-
/* @__PURE__ */ s("
|
|
22
|
-
className: "
|
|
23
|
-
children: [/* @__PURE__ */ o("
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
children: f ? `${f.name} lead funnel sourced from networking and meeting streams.` : "Lead funnel sourced from networking and meeting streams."
|
|
29
|
-
})]
|
|
30
|
-
}),
|
|
22
|
+
/* @__PURE__ */ s(c, { children: [/* @__PURE__ */ s("h1", {
|
|
23
|
+
className: "text-2xl font-bold text-text-primary",
|
|
24
|
+
children: [/* @__PURE__ */ o(l, { children: "Sponsor" }), " Leads"]
|
|
25
|
+
}), /* @__PURE__ */ o("p", {
|
|
26
|
+
className: "mt-1 text-sm text-text-secondary",
|
|
27
|
+
children: m ? `${m.name} lead funnel sourced from networking and meeting streams.` : "Lead funnel sourced from networking and meeting streams."
|
|
28
|
+
})] }),
|
|
31
29
|
/* @__PURE__ */ o(r, {
|
|
32
|
-
heading:
|
|
30
|
+
heading: f.loading ? "Loading networking matches..." : `Potential Leads (${h.length})`,
|
|
33
31
|
emptyLabel: "No networking leads found.",
|
|
34
|
-
rows:
|
|
32
|
+
rows: h.map((e) => ({
|
|
35
33
|
id: e.id,
|
|
36
34
|
title: e.title ?? e.name ?? `Lead ${e.id}`,
|
|
37
35
|
status: e.status
|
|
38
36
|
}))
|
|
39
37
|
}),
|
|
40
38
|
/* @__PURE__ */ o(r, {
|
|
41
|
-
heading:
|
|
39
|
+
heading: p.loading ? "Loading meetings..." : `Sponsor Meetings (${g.length})`,
|
|
42
40
|
emptyLabel: "No sponsor meetings recorded.",
|
|
43
|
-
rows:
|
|
41
|
+
rows: g.map((e) => ({
|
|
44
42
|
id: e.id,
|
|
45
43
|
title: e.title ?? e.name ?? `Meeting ${e.id}`,
|
|
46
44
|
status: e.status
|
|
@@ -50,6 +48,6 @@ function c() {
|
|
|
50
48
|
});
|
|
51
49
|
}
|
|
52
50
|
//#endregion
|
|
53
|
-
export {
|
|
51
|
+
export { u as default };
|
|
54
52
|
|
|
55
53
|
//# sourceMappingURL=SponsorLeadsPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SponsorLeadsPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/SponsorLeadsPage.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useMeetingsQuery, useNetworkingMatchesQuery, useSponsorsQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype SponsorRow = {\n id: string;\n name: string;\n level: string;\n};\n\ntype SimpleRow = {\n id: string;\n name?: string;\n title?: string;\n status?: string;\n};\n\nexport default function SponsorLeadsPage() {\n const { id = '' } = useParams();\n const sponsorsQuery = useSponsorsQuery({ limit: 100, offset: 0 });\n const matchesQuery = useNetworkingMatchesQuery({ limit: 100, offset: 0 });\n const meetingsQuery = useMeetingsQuery({ limit: 100, offset: 0 });\n\n const sponsor = useMemo(\n () => ((sponsorsQuery.data?.sponsors.items ?? []) as SponsorRow[]).find((item) => item.id === id),\n [id, sponsorsQuery.data]\n );\n const matches = useMemo(() => (matchesQuery.data?.networkingMatches.items ?? []) as SimpleRow[], [matchesQuery.data]);\n const meetings = useMemo(() => (meetingsQuery.data?.meetings.items ?? []) as SimpleRow[], [meetingsQuery.data]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <
|
|
1
|
+
{"version":3,"file":"SponsorLeadsPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/SponsorLeadsPage.tsx"],"sourcesContent":["import { EmphasisPanel, GradientText } from '@burdenoff/fe-libs/ui';\nimport { useMemo } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useMeetingsQuery, useNetworkingMatchesQuery, useSponsorsQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype SponsorRow = {\n id: string;\n name: string;\n level: string;\n};\n\ntype SimpleRow = {\n id: string;\n name?: string;\n title?: string;\n status?: string;\n};\n\nexport default function SponsorLeadsPage() {\n const { id = '' } = useParams();\n const sponsorsQuery = useSponsorsQuery({ limit: 100, offset: 0 });\n const matchesQuery = useNetworkingMatchesQuery({ limit: 100, offset: 0 });\n const meetingsQuery = useMeetingsQuery({ limit: 100, offset: 0 });\n\n const sponsor = useMemo(\n () => ((sponsorsQuery.data?.sponsors.items ?? []) as SponsorRow[]).find((item) => item.id === id),\n [id, sponsorsQuery.data]\n );\n const matches = useMemo(() => (matchesQuery.data?.networkingMatches.items ?? []) as SimpleRow[], [matchesQuery.data]);\n const meetings = useMemo(() => (meetingsQuery.data?.meetings.items ?? []) as SimpleRow[], [meetingsQuery.data]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <EmphasisPanel>\n <h1 className=\"text-2xl font-bold text-text-primary\">\n <GradientText>Sponsor</GradientText> Leads\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {sponsor\n ? `${sponsor.name} lead funnel sourced from networking and meeting streams.`\n : 'Lead funnel sourced from networking and meeting streams.'}\n </p>\n </EmphasisPanel>\n\n <EntityListSection\n heading={matchesQuery.loading ? 'Loading networking matches...' : `Potential Leads (${matches.length})`}\n emptyLabel=\"No networking leads found.\"\n rows={matches.map((match) => ({\n id: match.id,\n title: match.title ?? match.name ?? `Lead ${match.id}`,\n status: match.status,\n }))}\n />\n\n <EntityListSection\n heading={meetingsQuery.loading ? 'Loading meetings...' : `Sponsor Meetings (${meetings.length})`}\n emptyLabel=\"No sponsor meetings recorded.\"\n rows={meetings.map((meeting) => ({\n id: meeting.id,\n title: meeting.title ?? meeting.name ?? `Meeting ${meeting.id}`,\n status: meeting.status,\n }))}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;AAoBA,SAAwB,IAAmB;CACzC,IAAM,EAAE,QAAK,OAAO,GAAW,EACzB,IAAgB,EAAiB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAC3D,IAAe,EAA0B;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EACnE,IAAgB,EAAiB;EAAE,OAAO;EAAK,QAAQ;EAAG,CAAC,EAE3D,IAAU,SACN,EAAc,MAAM,SAAS,SAAS,EAAE,EAAmB,MAAM,MAAS,EAAK,OAAO,EAAG,EACjG,CAAC,GAAI,EAAc,KAAK,CACzB,EACK,IAAU,QAAe,EAAa,MAAM,kBAAkB,SAAS,EAAE,EAAkB,CAAC,EAAa,KAAK,CAAC,EAC/G,IAAW,QAAe,EAAc,MAAM,SAAS,SAAS,EAAE,EAAkB,CAAC,EAAc,KAAK,CAAC;AAE/G,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,GAAD,EAAA,UAAc,WAAsB,CAAA,EAAA,SACjC;OACL,kBAAC,KAAD;IAAG,WAAU;cACV,IACG,GAAG,EAAQ,KAAK,6DAChB;IACF,CAAA,CACU,EAAA,CAAA;GAEhB,kBAAC,GAAD;IACE,SAAS,EAAa,UAAU,kCAAkC,oBAAoB,EAAQ,OAAO;IACrG,YAAW;IACX,MAAM,EAAQ,KAAK,OAAW;KAC5B,IAAI,EAAM;KACV,OAAO,EAAM,SAAS,EAAM,QAAQ,QAAQ,EAAM;KAClD,QAAQ,EAAM;KACf,EAAE;IACH,CAAA;GAEF,kBAAC,GAAD;IACE,SAAS,EAAc,UAAU,wBAAwB,qBAAqB,EAAS,OAAO;IAC9F,YAAW;IACX,MAAM,EAAS,KAAK,OAAa;KAC/B,IAAI,EAAQ;KACZ,OAAO,EAAQ,SAAS,EAAQ,QAAQ,WAAW,EAAQ;KAC3D,QAAQ,EAAQ;KACjB,EAAE;IACH,CAAA;GACE"}
|
|
@@ -3,74 +3,78 @@ import { EntityListSection as t } from "./EntityListSection.js";
|
|
|
3
3
|
import { useMemo as n } from "react";
|
|
4
4
|
import { useParams as r } from "react-router-dom";
|
|
5
5
|
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
|
+
import { EmphasisPanel as o, GlassCard as s, GradientText as c } from "@burdenoff/fe-libs/ui";
|
|
6
7
|
//#region src/eventfullymanaged/pages/modules/VenueResourcesPage.tsx
|
|
7
|
-
function
|
|
8
|
-
let { id:
|
|
8
|
+
function l() {
|
|
9
|
+
let { id: l = "" } = r(), u = e(l), d = u.data?.venue, f = n(() => u.data?.floorPlans.items ?? [], [u.data]);
|
|
9
10
|
return /* @__PURE__ */ a("div", {
|
|
10
11
|
className: "space-y-6 p-6",
|
|
11
12
|
children: [
|
|
12
|
-
/* @__PURE__ */ a(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
/* @__PURE__ */ i("
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
13
|
+
/* @__PURE__ */ a(o, { children: [
|
|
14
|
+
/* @__PURE__ */ a("h1", {
|
|
15
|
+
className: "text-2xl font-bold text-text-primary",
|
|
16
|
+
children: [/* @__PURE__ */ i(c, { children: "Venue" }), " Resources"]
|
|
17
|
+
}),
|
|
18
|
+
/* @__PURE__ */ i("p", {
|
|
19
|
+
className: "mt-1 text-sm text-text-secondary",
|
|
20
|
+
children: u.loading ? "Loading venue resources..." : `Resource view for ${d?.name ?? "selected venue"} from live backend data.`
|
|
21
|
+
}),
|
|
22
|
+
/* @__PURE__ */ a("div", {
|
|
23
|
+
className: "mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4",
|
|
24
|
+
children: [
|
|
25
|
+
/* @__PURE__ */ a(s, {
|
|
26
|
+
treatment: "glass",
|
|
27
|
+
glow: !0,
|
|
28
|
+
className: "p-3",
|
|
29
|
+
children: [/* @__PURE__ */ i("p", {
|
|
30
|
+
className: "text-xs uppercase tracking-wide text-text-secondary",
|
|
31
|
+
children: "Status"
|
|
32
|
+
}), /* @__PURE__ */ i("p", {
|
|
33
|
+
className: "mt-1 font-medium text-text-primary",
|
|
34
|
+
children: d?.status ?? "unknown"
|
|
35
|
+
})]
|
|
36
|
+
}),
|
|
37
|
+
/* @__PURE__ */ a(s, {
|
|
38
|
+
treatment: "metric",
|
|
39
|
+
className: "p-3",
|
|
40
|
+
children: [/* @__PURE__ */ i("p", {
|
|
41
|
+
className: "text-xs uppercase tracking-wide text-text-secondary",
|
|
42
|
+
children: "Capacity"
|
|
43
|
+
}), /* @__PURE__ */ i("p", {
|
|
44
|
+
className: "mt-1 font-medium tabular-nums text-text-primary",
|
|
45
|
+
children: d?.capacity?.toLocaleString() ?? 0
|
|
46
|
+
})]
|
|
47
|
+
}),
|
|
48
|
+
/* @__PURE__ */ a(s, {
|
|
49
|
+
treatment: "metric",
|
|
50
|
+
className: "p-3",
|
|
51
|
+
children: [/* @__PURE__ */ i("p", {
|
|
52
|
+
className: "text-xs uppercase tracking-wide text-text-secondary",
|
|
53
|
+
children: "Amenities"
|
|
54
|
+
}), /* @__PURE__ */ i("p", {
|
|
55
|
+
className: "mt-1 font-medium tabular-nums text-text-primary",
|
|
56
|
+
children: d?.amenities.length ?? 0
|
|
57
|
+
})]
|
|
58
|
+
}),
|
|
59
|
+
/* @__PURE__ */ a(s, {
|
|
60
|
+
treatment: "metric",
|
|
61
|
+
className: "p-3",
|
|
62
|
+
children: [/* @__PURE__ */ i("p", {
|
|
63
|
+
className: "text-xs uppercase tracking-wide text-text-secondary",
|
|
64
|
+
children: "Floor Plans"
|
|
65
|
+
}), /* @__PURE__ */ i("p", {
|
|
66
|
+
className: "mt-1 font-medium tabular-nums text-text-primary",
|
|
67
|
+
children: f.length
|
|
68
|
+
})]
|
|
69
|
+
})
|
|
70
|
+
]
|
|
71
|
+
})
|
|
72
|
+
] }),
|
|
70
73
|
/* @__PURE__ */ i(t, {
|
|
71
|
-
heading:
|
|
74
|
+
heading: u.loading ? "Loading floor plans..." : `Floor Plans (${f.length})`,
|
|
72
75
|
emptyLabel: "No floor plans configured for this venue.",
|
|
73
|
-
|
|
76
|
+
emptyIllustration: "empty-files",
|
|
77
|
+
rows: f.map((e) => ({
|
|
74
78
|
id: e.id,
|
|
75
79
|
title: e.name,
|
|
76
80
|
subtitle: e.imageUrl ?? void 0
|
|
@@ -79,7 +83,7 @@ function o() {
|
|
|
79
83
|
/* @__PURE__ */ i(t, {
|
|
80
84
|
heading: "Amenities",
|
|
81
85
|
emptyLabel: "No amenities listed.",
|
|
82
|
-
rows: (
|
|
86
|
+
rows: (d?.amenities ?? []).map((e) => ({
|
|
83
87
|
id: e,
|
|
84
88
|
title: e
|
|
85
89
|
}))
|
|
@@ -88,6 +92,6 @@ function o() {
|
|
|
88
92
|
});
|
|
89
93
|
}
|
|
90
94
|
//#endregion
|
|
91
|
-
export {
|
|
95
|
+
export { l as default };
|
|
92
96
|
|
|
93
97
|
//# sourceMappingURL=VenueResourcesPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VenueResourcesPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/VenueResourcesPage.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useVenueQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype FloorPlanRow = {\n id: string;\n name: string;\n imageUrl?: string | null;\n};\n\nexport default function VenueResourcesPage() {\n const { id = '' } = useParams();\n const venueQuery = useVenueQuery(id);\n const venue = venueQuery.data?.venue;\n const floorPlans = useMemo(() => (venueQuery.data?.floorPlans.items ?? []) as FloorPlanRow[], [venueQuery.data]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <
|
|
1
|
+
{"version":3,"file":"VenueResourcesPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/VenueResourcesPage.tsx"],"sourcesContent":["import { EmphasisPanel, GlassCard, GradientText } from '@burdenoff/fe-libs/ui';\nimport { useMemo } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useVenueQuery } from '../../api/eventApi';\nimport { EntityListSection } from './EntityListSection';\n\ntype FloorPlanRow = {\n id: string;\n name: string;\n imageUrl?: string | null;\n};\n\nexport default function VenueResourcesPage() {\n const { id = '' } = useParams();\n const venueQuery = useVenueQuery(id);\n const venue = venueQuery.data?.venue;\n const floorPlans = useMemo(() => (venueQuery.data?.floorPlans.items ?? []) as FloorPlanRow[], [venueQuery.data]);\n\n return (\n <div className=\"space-y-6 p-6\">\n <EmphasisPanel>\n <h1 className=\"text-2xl font-bold text-text-primary\">\n <GradientText>Venue</GradientText> Resources\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {venueQuery.loading\n ? 'Loading venue resources...'\n : `Resource view for ${venue?.name ?? 'selected venue'} from live backend data.`}\n </p>\n <div className=\"mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4\">\n <GlassCard treatment=\"glass\" glow className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Status</p>\n <p className=\"mt-1 font-medium text-text-primary\">{venue?.status ?? 'unknown'}</p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Capacity</p>\n <p className=\"mt-1 font-medium tabular-nums text-text-primary\">{venue?.capacity?.toLocaleString() ?? 0}</p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Amenities</p>\n <p className=\"mt-1 font-medium tabular-nums text-text-primary\">{venue?.amenities.length ?? 0}</p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-3\">\n <p className=\"text-xs uppercase tracking-wide text-text-secondary\">Floor Plans</p>\n <p className=\"mt-1 font-medium tabular-nums text-text-primary\">{floorPlans.length}</p>\n </GlassCard>\n </div>\n </EmphasisPanel>\n\n <EntityListSection\n heading={venueQuery.loading ? 'Loading floor plans...' : `Floor Plans (${floorPlans.length})`}\n emptyLabel=\"No floor plans configured for this venue.\"\n emptyIllustration=\"empty-files\"\n rows={floorPlans.map((floorPlan) => ({\n id: floorPlan.id,\n title: floorPlan.name,\n subtitle: floorPlan.imageUrl ?? undefined,\n }))}\n />\n\n <EntityListSection\n heading=\"Amenities\"\n emptyLabel=\"No amenities listed.\"\n rows={(venue?.amenities ?? []).map((amenity) => ({\n id: amenity,\n title: amenity,\n }))}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;AAaA,SAAwB,IAAqB;CAC3C,IAAM,EAAE,QAAK,OAAO,GAAW,EACzB,IAAa,EAAc,EAAG,EAC9B,IAAQ,EAAW,MAAM,OACzB,IAAa,QAAe,EAAW,MAAM,WAAW,SAAS,EAAE,EAAqB,CAAC,EAAW,KAAK,CAAC;AAEhH,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,MAAD;KAAI,WAAU;eAAd,CACE,kBAAC,GAAD,EAAA,UAAc,SAAoB,CAAA,EAAA,aAC/B;;IACL,kBAAC,KAAD;KAAG,WAAU;eACV,EAAW,UACR,+BACA,qBAAqB,GAAO,QAAQ,iBAAiB;KACvD,CAAA;IACJ,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,GAAD;OAAW,WAAU;OAAQ,MAAA;OAAK,WAAU;iBAA5C,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAsD;QAAU,CAAA,EAC7E,kBAAC,KAAD;QAAG,WAAU;kBAAsC,GAAO,UAAU;QAAc,CAAA,CACxE;;MACZ,kBAAC,GAAD;OAAW,WAAU;OAAS,WAAU;iBAAxC,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAsD;QAAY,CAAA,EAC/E,kBAAC,KAAD;QAAG,WAAU;kBAAmD,GAAO,UAAU,gBAAgB,IAAI;QAAM,CAAA,CACjG;;MACZ,kBAAC,GAAD;OAAW,WAAU;OAAS,WAAU;iBAAxC,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAsD;QAAa,CAAA,EAChF,kBAAC,KAAD;QAAG,WAAU;kBAAmD,GAAO,UAAU,UAAU;QAAM,CAAA,CACvF;;MACZ,kBAAC,GAAD;OAAW,WAAU;OAAS,WAAU;iBAAxC,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAsD;QAAe,CAAA,EAClF,kBAAC,KAAD;QAAG,WAAU;kBAAmD,EAAW;QAAW,CAAA,CAC5E;;MACR;;IACQ,EAAA,CAAA;GAEhB,kBAAC,GAAD;IACE,SAAS,EAAW,UAAU,2BAA2B,gBAAgB,EAAW,OAAO;IAC3F,YAAW;IACX,mBAAkB;IAClB,MAAM,EAAW,KAAK,OAAe;KACnC,IAAI,EAAU;KACd,OAAO,EAAU;KACjB,UAAU,EAAU,YAAY,KAAA;KACjC,EAAE;IACH,CAAA;GAEF,kBAAC,GAAD;IACE,SAAQ;IACR,YAAW;IACX,OAAO,GAAO,aAAa,EAAE,EAAE,KAAK,OAAa;KAC/C,IAAI;KACJ,OAAO;KACR,EAAE;IACH,CAAA;GACE"}
|