@burdenoff/microfe-ggnomad 2026.510.105
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/README.md +12 -0
- package/dist/dev/main.d.ts +2 -0
- package/dist/dev/main.d.ts.map +1 -0
- package/dist/generated/global-operations.d.ts +2 -0
- package/dist/generated/global-operations.d.ts.map +1 -0
- package/dist/generated/global-types.d.ts +20716 -0
- package/dist/generated/global-types.d.ts.map +1 -0
- package/dist/generated/wspace-operations.d.ts +2 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -0
- package/dist/generated/wspace-types.d.ts +53363 -0
- package/dist/generated/wspace-types.d.ts.map +1 -0
- package/dist/ggnomad/GGNomadRoot.d.ts +5 -0
- package/dist/ggnomad/GGNomadRoot.d.ts.map +1 -0
- package/dist/ggnomad/GGNomadRoot.js +118 -0
- package/dist/ggnomad/GGNomadRoot.js.map +1 -0
- package/dist/ggnomad/GGNomadRoutes.d.ts +2 -0
- package/dist/ggnomad/GGNomadRoutes.d.ts.map +1 -0
- package/dist/ggnomad/GGNomadRoutes.js +87 -0
- package/dist/ggnomad/GGNomadRoutes.js.map +1 -0
- package/dist/ggnomad/graphql.d.ts +17 -0
- package/dist/ggnomad/graphql.d.ts.map +1 -0
- package/dist/ggnomad/graphql.js +288 -0
- package/dist/ggnomad/graphql.js.map +1 -0
- package/dist/ggnomad/index.d.ts +4 -0
- package/dist/ggnomad/index.d.ts.map +1 -0
- package/dist/ggnomad/index.js +2 -0
- package/dist/ggnomad/pages/ActivityDetailsPage.d.ts +2 -0
- package/dist/ggnomad/pages/ActivityDetailsPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/ActivityDetailsPage.js +46 -0
- package/dist/ggnomad/pages/ActivityDetailsPage.js.map +1 -0
- package/dist/ggnomad/pages/AnalyticsPage.d.ts +2 -0
- package/dist/ggnomad/pages/AnalyticsPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/AnalyticsPage.js +64 -0
- package/dist/ggnomad/pages/AnalyticsPage.js.map +1 -0
- package/dist/ggnomad/pages/BookingsPage.d.ts +2 -0
- package/dist/ggnomad/pages/BookingsPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/BookingsPage.js +71 -0
- package/dist/ggnomad/pages/BookingsPage.js.map +1 -0
- package/dist/ggnomad/pages/DashboardPage.d.ts +2 -0
- package/dist/ggnomad/pages/DashboardPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/DashboardPage.js +128 -0
- package/dist/ggnomad/pages/DashboardPage.js.map +1 -0
- package/dist/ggnomad/pages/EntertainmentPage.d.ts +2 -0
- package/dist/ggnomad/pages/EntertainmentPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/EntertainmentPage.js +43 -0
- package/dist/ggnomad/pages/EntertainmentPage.js.map +1 -0
- package/dist/ggnomad/pages/EventDetailsPage.d.ts +2 -0
- package/dist/ggnomad/pages/EventDetailsPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/EventDetailsPage.js +49 -0
- package/dist/ggnomad/pages/EventDetailsPage.js.map +1 -0
- package/dist/ggnomad/pages/FavoritesPage.d.ts +2 -0
- package/dist/ggnomad/pages/FavoritesPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/FavoritesPage.js +40 -0
- package/dist/ggnomad/pages/FavoritesPage.js.map +1 -0
- package/dist/ggnomad/pages/HospitalityPage.d.ts +2 -0
- package/dist/ggnomad/pages/HospitalityPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/HospitalityPage.js +53 -0
- package/dist/ggnomad/pages/HospitalityPage.js.map +1 -0
- package/dist/ggnomad/pages/PageShell.d.ts +7 -0
- package/dist/ggnomad/pages/PageShell.d.ts.map +1 -0
- package/dist/ggnomad/pages/PageShell.js +18 -0
- package/dist/ggnomad/pages/PageShell.js.map +1 -0
- package/dist/ggnomad/pages/PropertyDetailsPage.d.ts +2 -0
- package/dist/ggnomad/pages/PropertyDetailsPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/PropertyDetailsPage.js +54 -0
- package/dist/ggnomad/pages/PropertyDetailsPage.js.map +1 -0
- package/dist/ggnomad/pages/ProviderPage.d.ts +2 -0
- package/dist/ggnomad/pages/ProviderPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/ProviderPage.js +42 -0
- package/dist/ggnomad/pages/ProviderPage.js.map +1 -0
- package/dist/ggnomad/pages/SearchPage.d.ts +2 -0
- package/dist/ggnomad/pages/SearchPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/SearchPage.js +70 -0
- package/dist/ggnomad/pages/SearchPage.js.map +1 -0
- package/dist/ggnomad/pages/TourDetailsPage.d.ts +2 -0
- package/dist/ggnomad/pages/TourDetailsPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/TourDetailsPage.js +49 -0
- package/dist/ggnomad/pages/TourDetailsPage.js.map +1 -0
- package/dist/ggnomad/pages/TourismPage.d.ts +2 -0
- package/dist/ggnomad/pages/TourismPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/TourismPage.js +75 -0
- package/dist/ggnomad/pages/TourismPage.js.map +1 -0
- package/dist/ggnomad/pages/TravelPage.d.ts +2 -0
- package/dist/ggnomad/pages/TravelPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/TravelPage.js +37 -0
- package/dist/ggnomad/pages/TravelPage.js.map +1 -0
- package/dist/ggnomad/providers/GGNomadProvider.d.ts +6 -0
- package/dist/ggnomad/providers/GGNomadProvider.d.ts.map +1 -0
- package/dist/ggnomad/providers/GGNomadProvider.js +62 -0
- package/dist/ggnomad/providers/GGNomadProvider.js.map +1 -0
- package/dist/ggnomad/types/index.d.ts +58 -0
- package/dist/ggnomad/types/index.d.ts.map +1 -0
- package/dist/ggnomad/utils/cn.d.ts +4 -0
- package/dist/ggnomad/utils/cn.d.ts.map +1 -0
- package/dist/ggnomad/utils/navigation.d.ts +2 -0
- package/dist/ggnomad/utils/navigation.d.ts.map +1 -0
- package/dist/ggnomad/utils/navigation.js +8 -0
- package/dist/ggnomad/utils/navigation.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/package.json +103 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { GGNOMAD_OVERVIEW_QUERY as e } from "../graphql.js";
|
|
2
|
+
import { PageShell as t } from "./PageShell.js";
|
|
3
|
+
import { useQuery as n } from "@apollo/client/react";
|
|
4
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
5
|
+
//#region src/ggnomad/pages/AnalyticsPage.tsx
|
|
6
|
+
function a() {
|
|
7
|
+
let { data: a } = n(e), o = a?.ggnomadAnalytics;
|
|
8
|
+
return /* @__PURE__ */ i(t, {
|
|
9
|
+
title: "Analytics",
|
|
10
|
+
subtitle: "GGNomad performance and growth analytics",
|
|
11
|
+
children: [/* @__PURE__ */ i("div", {
|
|
12
|
+
className: "grid gap-4 md:grid-cols-4",
|
|
13
|
+
children: [
|
|
14
|
+
/* @__PURE__ */ i("div", {
|
|
15
|
+
className: "rounded-lg border p-4",
|
|
16
|
+
children: [/* @__PURE__ */ r("p", {
|
|
17
|
+
className: "text-sm text-muted-foreground",
|
|
18
|
+
children: "Revenue"
|
|
19
|
+
}), /* @__PURE__ */ i("p", {
|
|
20
|
+
className: "text-xl font-semibold",
|
|
21
|
+
children: ["$", Number(o?.totalRevenue ?? 0).toLocaleString()]
|
|
22
|
+
})]
|
|
23
|
+
}),
|
|
24
|
+
/* @__PURE__ */ i("div", {
|
|
25
|
+
className: "rounded-lg border p-4",
|
|
26
|
+
children: [/* @__PURE__ */ r("p", {
|
|
27
|
+
className: "text-sm text-muted-foreground",
|
|
28
|
+
children: "Bookings"
|
|
29
|
+
}), /* @__PURE__ */ r("p", {
|
|
30
|
+
className: "text-xl font-semibold",
|
|
31
|
+
children: o?.totalBookings ?? 0
|
|
32
|
+
})]
|
|
33
|
+
}),
|
|
34
|
+
/* @__PURE__ */ i("div", {
|
|
35
|
+
className: "rounded-lg border p-4",
|
|
36
|
+
children: [/* @__PURE__ */ r("p", {
|
|
37
|
+
className: "text-sm text-muted-foreground",
|
|
38
|
+
children: "Users"
|
|
39
|
+
}), /* @__PURE__ */ r("p", {
|
|
40
|
+
className: "text-xl font-semibold",
|
|
41
|
+
children: o?.totalUsers ?? 0
|
|
42
|
+
})]
|
|
43
|
+
}),
|
|
44
|
+
/* @__PURE__ */ i("div", {
|
|
45
|
+
className: "rounded-lg border p-4",
|
|
46
|
+
children: [/* @__PURE__ */ r("p", {
|
|
47
|
+
className: "text-sm text-muted-foreground",
|
|
48
|
+
children: "Conversion"
|
|
49
|
+
}), /* @__PURE__ */ i("p", {
|
|
50
|
+
className: "text-xl font-semibold",
|
|
51
|
+
children: [Number(o?.conversionRate ?? 0).toFixed(2), "%"]
|
|
52
|
+
})]
|
|
53
|
+
})
|
|
54
|
+
]
|
|
55
|
+
}), /* @__PURE__ */ r("pre", {
|
|
56
|
+
className: "overflow-auto rounded-lg border p-4 text-xs",
|
|
57
|
+
children: JSON.stringify(o?.revenueByCategory ?? {}, null, 2)
|
|
58
|
+
})]
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
//#endregion
|
|
62
|
+
export { a as AnalyticsPage };
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=AnalyticsPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsPage.js","names":[],"sources":["../../../src/ggnomad/pages/AnalyticsPage.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client/react';\n\nimport { GGNOMAD_OVERVIEW_QUERY } from '../graphql';\nimport { PageShell } from './PageShell';\n\nexport function AnalyticsPage() {\n const { data } = useQuery<{\n ggnomadAnalytics: {\n totalRevenue: number;\n totalBookings: number;\n totalUsers: number;\n conversionRate: number;\n revenueByCategory: Record<string, unknown>;\n };\n }>(GGNOMAD_OVERVIEW_QUERY);\n const analytics = data?.ggnomadAnalytics;\n\n return (\n <PageShell title=\"Analytics\" subtitle=\"GGNomad performance and growth analytics\">\n <div className=\"grid gap-4 md:grid-cols-4\">\n <div className=\"rounded-lg border p-4\">\n <p className=\"text-sm text-muted-foreground\">Revenue</p>\n <p className=\"text-xl font-semibold\">\n ${Number(analytics?.totalRevenue ?? 0).toLocaleString()}\n </p>\n </div>\n <div className=\"rounded-lg border p-4\">\n <p className=\"text-sm text-muted-foreground\">Bookings</p>\n <p className=\"text-xl font-semibold\">{analytics?.totalBookings ?? 0}</p>\n </div>\n <div className=\"rounded-lg border p-4\">\n <p className=\"text-sm text-muted-foreground\">Users</p>\n <p className=\"text-xl font-semibold\">{analytics?.totalUsers ?? 0}</p>\n </div>\n <div className=\"rounded-lg border p-4\">\n <p className=\"text-sm text-muted-foreground\">Conversion</p>\n <p className=\"text-xl font-semibold\">\n {Number(analytics?.conversionRate ?? 0).toFixed(2)}%\n </p>\n </div>\n </div>\n <pre className=\"overflow-auto rounded-lg border p-4 text-xs\">\n {JSON.stringify(analytics?.revenueByCategory ?? {}, null, 2)}\n </pre>\n </PageShell>\n );\n}\n"],"mappings":";;;;;AAKA,SAAgB,IAAgB;CAC9B,IAAM,EAAE,YAAS,EAQd,EAAuB,EACpB,IAAY,GAAM;AAExB,QACE,kBAAC,GAAD;EAAW,OAAM;EAAY,UAAS;YAAtC,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,KAAD;MAAG,WAAU;gBAAgC;MAAW,CAAA,EACxD,kBAAC,KAAD;MAAG,WAAU;gBAAb,CAAqC,KACjC,OAAO,GAAW,gBAAgB,EAAE,CAAC,gBAAgB,CACrD;QACA;;IACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,KAAD;MAAG,WAAU;gBAAgC;MAAY,CAAA,EACzD,kBAAC,KAAD;MAAG,WAAU;gBAAyB,GAAW,iBAAiB;MAAM,CAAA,CACpE;;IACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,KAAD;MAAG,WAAU;gBAAgC;MAAS,CAAA,EACtD,kBAAC,KAAD;MAAG,WAAU;gBAAyB,GAAW,cAAc;MAAM,CAAA,CACjE;;IACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,KAAD;MAAG,WAAU;gBAAgC;MAAc,CAAA,EAC3D,kBAAC,KAAD;MAAG,WAAU;gBAAb,CACG,OAAO,GAAW,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAC,IACjD;QACA;;IACF;MACN,kBAAC,OAAD;GAAK,WAAU;aACZ,KAAK,UAAU,GAAW,qBAAqB,EAAE,EAAE,MAAM,EAAE;GACxD,CAAA,CACI"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BookingsPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/BookingsPage.tsx"],"names":[],"mappings":"AAUA,wBAAgB,YAAY,4CAsG3B"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { CANCEL_GGNOMAD_BOOKING_MUTATION as e, CREATE_GGNOMAD_BOOKING_MUTATION as t, GGNOMAD_BOOKINGS_QUERY as n } from "../graphql.js";
|
|
2
|
+
import { PageShell as r } from "./PageShell.js";
|
|
3
|
+
import { useI18n as i } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
4
|
+
import { useMutation as a, useQuery as o } from "@apollo/client/react";
|
|
5
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
6
|
+
//#region src/ggnomad/pages/BookingsPage.tsx
|
|
7
|
+
function l() {
|
|
8
|
+
let { t: l } = i(), { data: u, refetch: d } = o(n, { variables: {
|
|
9
|
+
first: 20,
|
|
10
|
+
skip: 0
|
|
11
|
+
} }), [f, { loading: p }] = a(t, { onCompleted: () => void d() }), [m] = a(e, { onCompleted: () => void d() }), h = u?.ggnomadBookings ?? [];
|
|
12
|
+
return /* @__PURE__ */ c(r, {
|
|
13
|
+
title: l("ggnomad.bookings.title", "Bookings"),
|
|
14
|
+
subtitle: l("ggnomad.bookings.subtitle", "End-to-end booking operations with real API mutations"),
|
|
15
|
+
children: [/* @__PURE__ */ s("div", {
|
|
16
|
+
className: "flex gap-2",
|
|
17
|
+
children: /* @__PURE__ */ s("button", {
|
|
18
|
+
className: "rounded-md border px-3 py-2 text-sm",
|
|
19
|
+
disabled: p,
|
|
20
|
+
onClick: () => {
|
|
21
|
+
f({ variables: { input: {
|
|
22
|
+
bookingType: "PROPERTY",
|
|
23
|
+
itemId: "demo-property",
|
|
24
|
+
itemName: "Demo Property",
|
|
25
|
+
guestName: "Demo Guest",
|
|
26
|
+
guestEmail: "demo@burdenoff.com",
|
|
27
|
+
guestPhone: "+910000000000",
|
|
28
|
+
guests: 2,
|
|
29
|
+
totalPrice: 299,
|
|
30
|
+
currency: "USD",
|
|
31
|
+
paymentMethod: "card"
|
|
32
|
+
} } });
|
|
33
|
+
},
|
|
34
|
+
type: "button",
|
|
35
|
+
children: l("ggnomad.bookings.actions.createDemoBooking", "Create demo booking")
|
|
36
|
+
})
|
|
37
|
+
}), /* @__PURE__ */ s("div", {
|
|
38
|
+
className: "space-y-2",
|
|
39
|
+
children: h.map((e) => /* @__PURE__ */ c("div", {
|
|
40
|
+
className: "flex items-center justify-between rounded-lg border p-3 text-sm",
|
|
41
|
+
children: [/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("p", {
|
|
42
|
+
className: "font-medium",
|
|
43
|
+
children: e.referenceCode
|
|
44
|
+
}), /* @__PURE__ */ s("p", { children: e.itemName })] }), /* @__PURE__ */ c("div", {
|
|
45
|
+
className: "flex items-center gap-2",
|
|
46
|
+
children: [/* @__PURE__ */ c("span", { children: [
|
|
47
|
+
e.status,
|
|
48
|
+
" - ",
|
|
49
|
+
e.currency,
|
|
50
|
+
" ",
|
|
51
|
+
Number(e.totalPrice).toFixed(2)
|
|
52
|
+
] }), e.status === "CANCELLED" ? null : /* @__PURE__ */ s("button", {
|
|
53
|
+
className: "rounded border px-2 py-1",
|
|
54
|
+
onClick: () => {
|
|
55
|
+
m({ variables: {
|
|
56
|
+
id: e.id,
|
|
57
|
+
reason: l("ggnomad.bookings.actions.cancelReason", "Cancelled via UI")
|
|
58
|
+
} });
|
|
59
|
+
},
|
|
60
|
+
type: "button",
|
|
61
|
+
children: l("ggnomad.bookings.actions.cancel", "Cancel")
|
|
62
|
+
})]
|
|
63
|
+
})]
|
|
64
|
+
}, e.id))
|
|
65
|
+
})]
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
//#endregion
|
|
69
|
+
export { l as BookingsPage };
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=BookingsPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BookingsPage.js","names":[],"sources":["../../../src/ggnomad/pages/BookingsPage.tsx"],"sourcesContent":["import { useMutation, useQuery } from '@apollo/client/react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\nimport {\n CANCEL_GGNOMAD_BOOKING_MUTATION,\n CREATE_GGNOMAD_BOOKING_MUTATION,\n GGNOMAD_BOOKINGS_QUERY,\n} from '../graphql';\nimport { PageShell } from './PageShell';\n\nexport function BookingsPage() {\n const { t } = useI18n();\n const { data, refetch } = useQuery<{\n ggnomadBookings: Array<{\n id: string;\n referenceCode: string;\n itemName: string;\n status: string;\n totalPrice: number;\n currency: string;\n }>;\n }>(GGNOMAD_BOOKINGS_QUERY, { variables: { first: 20, skip: 0 } });\n const [createBooking, { loading: creating }] = useMutation(CREATE_GGNOMAD_BOOKING_MUTATION, {\n onCompleted: () => void refetch(),\n });\n const [cancelBooking] = useMutation(CANCEL_GGNOMAD_BOOKING_MUTATION, {\n onCompleted: () => void refetch(),\n });\n\n const bookings = data?.ggnomadBookings ?? [];\n\n return (\n <PageShell\n title={t('ggnomad.bookings.title', 'Bookings')}\n subtitle={t(\n 'ggnomad.bookings.subtitle',\n 'End-to-end booking operations with real API mutations'\n )}\n >\n <div className=\"flex gap-2\">\n <button\n className=\"rounded-md border px-3 py-2 text-sm\"\n disabled={creating}\n onClick={() => {\n void createBooking({\n variables: {\n input: {\n bookingType: 'PROPERTY',\n itemId: 'demo-property',\n itemName: 'Demo Property',\n guestName: 'Demo Guest',\n guestEmail: 'demo@burdenoff.com',\n guestPhone: '+910000000000',\n guests: 2,\n totalPrice: 299,\n currency: 'USD',\n paymentMethod: 'card',\n },\n },\n });\n }}\n type=\"button\"\n >\n {t('ggnomad.bookings.actions.createDemoBooking', 'Create demo booking')}\n </button>\n </div>\n\n <div className=\"space-y-2\">\n {bookings.map(\n (booking: {\n id: string;\n referenceCode: string;\n itemName: string;\n status: string;\n totalPrice: number;\n currency: string;\n }) => (\n <div\n key={booking.id}\n className=\"flex items-center justify-between rounded-lg border p-3 text-sm\"\n >\n <div>\n <p className=\"font-medium\">{booking.referenceCode}</p>\n <p>{booking.itemName}</p>\n </div>\n <div className=\"flex items-center gap-2\">\n <span>\n {booking.status} - {booking.currency} {Number(booking.totalPrice).toFixed(2)}\n </span>\n {booking.status !== 'CANCELLED' ? (\n <button\n className=\"rounded border px-2 py-1\"\n onClick={() => {\n void cancelBooking({\n variables: {\n id: booking.id,\n reason: t('ggnomad.bookings.actions.cancelReason', 'Cancelled via UI'),\n },\n });\n }}\n type=\"button\"\n >\n {t('ggnomad.bookings.actions.cancel', 'Cancel')}\n </button>\n ) : null}\n </div>\n </div>\n )\n )}\n </div>\n </PageShell>\n );\n}\n"],"mappings":";;;;;;AAUA,SAAgB,IAAe;CAC7B,IAAM,EAAE,SAAM,GAAS,EACjB,EAAE,SAAM,eAAY,EASvB,GAAwB,EAAE,WAAW;EAAE,OAAO;EAAI,MAAM;EAAG,EAAE,CAAC,EAC3D,CAAC,GAAe,EAAE,SAAS,OAAc,EAAY,GAAiC,EAC1F,mBAAmB,KAAK,GAAS,EAClC,CAAC,EACI,CAAC,KAAiB,EAAY,GAAiC,EACnE,mBAAmB,KAAK,GAAS,EAClC,CAAC,EAEI,IAAW,GAAM,mBAAmB,EAAE;AAE5C,QACE,kBAAC,GAAD;EACE,OAAO,EAAE,0BAA0B,WAAW;EAC9C,UAAU,EACR,6BACA,wDACD;YALH,CAOE,kBAAC,OAAD;GAAK,WAAU;aACb,kBAAC,UAAD;IACE,WAAU;IACV,UAAU;IACV,eAAe;AACR,OAAc,EACjB,WAAW,EACT,OAAO;MACL,aAAa;MACb,QAAQ;MACR,UAAU;MACV,WAAW;MACX,YAAY;MACZ,YAAY;MACZ,QAAQ;MACR,YAAY;MACZ,UAAU;MACV,eAAe;MAChB,EACF,EACF,CAAC;;IAEJ,MAAK;cAEJ,EAAE,8CAA8C,sBAAsB;IAChE,CAAA;GACL,CAAA,EAEN,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAS,KACP,MAQC,kBAAC,OAAD;IAEE,WAAU;cAFZ,CAIE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;KAAG,WAAU;eAAe,EAAQ;KAAkB,CAAA,EACtD,kBAAC,KAAD,EAAA,UAAI,EAAQ,UAAa,CAAA,CACrB,EAAA,CAAA,EACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,QAAD,EAAA,UAAA;MACG,EAAQ;MAAO;MAAI,EAAQ;MAAS;MAAE,OAAO,EAAQ,WAAW,CAAC,QAAQ,EAAE;MACvE,EAAA,CAAA,EACN,EAAQ,WAAW,cAehB,OAdF,kBAAC,UAAD;MACE,WAAU;MACV,eAAe;AACR,SAAc,EACjB,WAAW;QACT,IAAI,EAAQ;QACZ,QAAQ,EAAE,yCAAyC,mBAAmB;QACvE,EACF,CAAC;;MAEJ,MAAK;gBAEJ,EAAE,mCAAmC,SAAS;MACxC,CAAA,CAEP;OACF;MA5BC,EAAQ,GA4BT,CAET;GACG,CAAA,CACI"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/DashboardPage.tsx"],"names":[],"mappings":"AAYA,wBAAgB,aAAa,4CAuH5B"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { GGNOMAD_BOOKINGS_QUERY as e, GGNOMAD_EVENTS_QUERY as t, GGNOMAD_OVERVIEW_QUERY as n, GGNOMAD_PROPERTIES_QUERY as r, GGNOMAD_TOURS_QUERY as i } from "../graphql.js";
|
|
2
|
+
import { PageShell as a } from "./PageShell.js";
|
|
3
|
+
import { useI18n as o } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
4
|
+
import { useQuery as s } from "@apollo/client/react";
|
|
5
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
6
|
+
//#region src/ggnomad/pages/DashboardPage.tsx
|
|
7
|
+
function u() {
|
|
8
|
+
let { t: u } = o(), d = s(n), f = s(e, { variables: {
|
|
9
|
+
first: 5,
|
|
10
|
+
skip: 0
|
|
11
|
+
} }), p = s(r, { variables: {
|
|
12
|
+
first: 4,
|
|
13
|
+
skip: 0
|
|
14
|
+
} }), m = s(i, { variables: {
|
|
15
|
+
first: 4,
|
|
16
|
+
skip: 0
|
|
17
|
+
} }), h = s(t, { variables: {
|
|
18
|
+
first: 4,
|
|
19
|
+
skip: 0
|
|
20
|
+
} }), g = d.data?.ggnomadOverviewStats;
|
|
21
|
+
return /* @__PURE__ */ l(a, {
|
|
22
|
+
title: u("ggnomad.dashboard.title", "GGNomad Dashboard"),
|
|
23
|
+
subtitle: u("ggnomad.dashboard.subtitle", "Unified travel, hospitality, tourism and entertainment operations"),
|
|
24
|
+
children: [/* @__PURE__ */ l("section", {
|
|
25
|
+
className: "grid gap-4 md:grid-cols-4",
|
|
26
|
+
children: [
|
|
27
|
+
/* @__PURE__ */ l("div", {
|
|
28
|
+
className: "rounded-lg border p-4",
|
|
29
|
+
children: [/* @__PURE__ */ c("p", {
|
|
30
|
+
className: "text-sm text-muted-foreground",
|
|
31
|
+
children: u("ggnomad.dashboard.stats.users", "Users")
|
|
32
|
+
}), /* @__PURE__ */ c("p", {
|
|
33
|
+
className: "text-2xl font-semibold",
|
|
34
|
+
children: g?.users ?? 0
|
|
35
|
+
})]
|
|
36
|
+
}),
|
|
37
|
+
/* @__PURE__ */ l("div", {
|
|
38
|
+
className: "rounded-lg border p-4",
|
|
39
|
+
children: [/* @__PURE__ */ c("p", {
|
|
40
|
+
className: "text-sm text-muted-foreground",
|
|
41
|
+
children: u("ggnomad.dashboard.stats.listings", "Listings")
|
|
42
|
+
}), /* @__PURE__ */ c("p", {
|
|
43
|
+
className: "text-2xl font-semibold",
|
|
44
|
+
children: g?.listings ?? 0
|
|
45
|
+
})]
|
|
46
|
+
}),
|
|
47
|
+
/* @__PURE__ */ l("div", {
|
|
48
|
+
className: "rounded-lg border p-4",
|
|
49
|
+
children: [/* @__PURE__ */ c("p", {
|
|
50
|
+
className: "text-sm text-muted-foreground",
|
|
51
|
+
children: u("ggnomad.dashboard.stats.bookings", "Bookings")
|
|
52
|
+
}), /* @__PURE__ */ c("p", {
|
|
53
|
+
className: "text-2xl font-semibold",
|
|
54
|
+
children: g?.bookings ?? 0
|
|
55
|
+
})]
|
|
56
|
+
}),
|
|
57
|
+
/* @__PURE__ */ l("div", {
|
|
58
|
+
className: "rounded-lg border p-4",
|
|
59
|
+
children: [/* @__PURE__ */ c("p", {
|
|
60
|
+
className: "text-sm text-muted-foreground",
|
|
61
|
+
children: u("ggnomad.dashboard.stats.monthlyRevenue", "Monthly Revenue")
|
|
62
|
+
}), /* @__PURE__ */ l("p", {
|
|
63
|
+
className: "text-2xl font-semibold",
|
|
64
|
+
children: ["$", Number(g?.monthlyRevenue ?? 0).toLocaleString()]
|
|
65
|
+
})]
|
|
66
|
+
})
|
|
67
|
+
]
|
|
68
|
+
}), /* @__PURE__ */ l("section", {
|
|
69
|
+
className: "grid gap-4 lg:grid-cols-2",
|
|
70
|
+
children: [/* @__PURE__ */ l("div", {
|
|
71
|
+
className: "rounded-lg border p-4",
|
|
72
|
+
children: [/* @__PURE__ */ c("h2", {
|
|
73
|
+
className: "mb-3 text-lg font-medium",
|
|
74
|
+
children: u("ggnomad.dashboard.sections.recentBookings", "Recent bookings")
|
|
75
|
+
}), /* @__PURE__ */ c("ul", {
|
|
76
|
+
className: "space-y-2 text-sm",
|
|
77
|
+
children: (f.data?.ggnomadBookings ?? []).map((e) => /* @__PURE__ */ l("li", {
|
|
78
|
+
className: "flex items-center justify-between rounded border p-2",
|
|
79
|
+
children: [/* @__PURE__ */ l("span", { children: [
|
|
80
|
+
e.referenceCode,
|
|
81
|
+
" - ",
|
|
82
|
+
e.itemName
|
|
83
|
+
] }), /* @__PURE__ */ c("span", {
|
|
84
|
+
className: "text-muted-foreground",
|
|
85
|
+
children: e.status
|
|
86
|
+
})]
|
|
87
|
+
}, e.id))
|
|
88
|
+
})]
|
|
89
|
+
}), /* @__PURE__ */ l("div", {
|
|
90
|
+
className: "rounded-lg border p-4",
|
|
91
|
+
children: [/* @__PURE__ */ c("h2", {
|
|
92
|
+
className: "mb-3 text-lg font-medium",
|
|
93
|
+
children: u("ggnomad.dashboard.sections.featuredInventory", "Featured inventory")
|
|
94
|
+
}), /* @__PURE__ */ l("div", {
|
|
95
|
+
className: "grid gap-2 text-sm",
|
|
96
|
+
children: [
|
|
97
|
+
/* @__PURE__ */ l("p", { children: [
|
|
98
|
+
u("ggnomad.dashboard.inventory.properties", "Properties"),
|
|
99
|
+
":",
|
|
100
|
+
" ",
|
|
101
|
+
p.data?.ggnomadProperties?.length ?? 0
|
|
102
|
+
] }),
|
|
103
|
+
/* @__PURE__ */ l("p", { children: [
|
|
104
|
+
u("ggnomad.dashboard.inventory.tours", "Tours"),
|
|
105
|
+
":",
|
|
106
|
+
" ",
|
|
107
|
+
m.data?.ggnomadTours?.length ?? 0
|
|
108
|
+
] }),
|
|
109
|
+
/* @__PURE__ */ l("p", { children: [
|
|
110
|
+
u("ggnomad.dashboard.inventory.events", "Events"),
|
|
111
|
+
":",
|
|
112
|
+
" ",
|
|
113
|
+
h.data?.ggnomadEvents?.length ?? 0
|
|
114
|
+
] }),
|
|
115
|
+
/* @__PURE__ */ c("p", {
|
|
116
|
+
className: "text-muted-foreground",
|
|
117
|
+
children: u("ggnomad.dashboard.inventory.liveDataNotice", "Data is live from `wspace-ggnomad-svc` GraphQL APIs.")
|
|
118
|
+
})
|
|
119
|
+
]
|
|
120
|
+
})]
|
|
121
|
+
})]
|
|
122
|
+
})]
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
//#endregion
|
|
126
|
+
export { u as DashboardPage };
|
|
127
|
+
|
|
128
|
+
//# sourceMappingURL=DashboardPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardPage.js","names":[],"sources":["../../../src/ggnomad/pages/DashboardPage.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client/react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\nimport {\n GGNOMAD_OVERVIEW_QUERY,\n GGNOMAD_BOOKINGS_QUERY,\n GGNOMAD_PROPERTIES_QUERY,\n GGNOMAD_TOURS_QUERY,\n GGNOMAD_EVENTS_QUERY,\n} from '../graphql';\nimport { PageShell } from './PageShell';\n\nexport function DashboardPage() {\n const { t } = useI18n();\n const overview = useQuery<{\n ggnomadOverviewStats: {\n users: number;\n listings: number;\n bookings: number;\n monthlyRevenue: number;\n };\n }>(GGNOMAD_OVERVIEW_QUERY);\n const bookings = useQuery<{\n ggnomadBookings: Array<{ id: string; referenceCode: string; itemName: string; status: string }>;\n }>(GGNOMAD_BOOKINGS_QUERY, {\n variables: { first: 5, skip: 0 },\n });\n const properties = useQuery<{ ggnomadProperties: Array<{ id: string }> }>(\n GGNOMAD_PROPERTIES_QUERY,\n { variables: { first: 4, skip: 0 } }\n );\n const tours = useQuery<{ ggnomadTours: Array<{ id: string }> }>(GGNOMAD_TOURS_QUERY, {\n variables: { first: 4, skip: 0 },\n });\n const events = useQuery<{ ggnomadEvents: Array<{ id: string }> }>(GGNOMAD_EVENTS_QUERY, {\n variables: { first: 4, skip: 0 },\n });\n\n const stats = overview.data?.ggnomadOverviewStats;\n\n return (\n <PageShell\n title={t('ggnomad.dashboard.title', 'GGNomad Dashboard')}\n subtitle={t(\n 'ggnomad.dashboard.subtitle',\n 'Unified travel, hospitality, tourism and entertainment operations'\n )}\n >\n <section className=\"grid gap-4 md:grid-cols-4\">\n <div className=\"rounded-lg border p-4\">\n <p className=\"text-sm text-muted-foreground\">\n {t('ggnomad.dashboard.stats.users', 'Users')}\n </p>\n <p className=\"text-2xl font-semibold\">{stats?.users ?? 0}</p>\n </div>\n <div className=\"rounded-lg border p-4\">\n <p className=\"text-sm text-muted-foreground\">\n {t('ggnomad.dashboard.stats.listings', 'Listings')}\n </p>\n <p className=\"text-2xl font-semibold\">{stats?.listings ?? 0}</p>\n </div>\n <div className=\"rounded-lg border p-4\">\n <p className=\"text-sm text-muted-foreground\">\n {t('ggnomad.dashboard.stats.bookings', 'Bookings')}\n </p>\n <p className=\"text-2xl font-semibold\">{stats?.bookings ?? 0}</p>\n </div>\n <div className=\"rounded-lg border p-4\">\n <p className=\"text-sm text-muted-foreground\">\n {t('ggnomad.dashboard.stats.monthlyRevenue', 'Monthly Revenue')}\n </p>\n <p className=\"text-2xl font-semibold\">\n ${Number(stats?.monthlyRevenue ?? 0).toLocaleString()}\n </p>\n </div>\n </section>\n\n <section className=\"grid gap-4 lg:grid-cols-2\">\n <div className=\"rounded-lg border p-4\">\n <h2 className=\"mb-3 text-lg font-medium\">\n {t('ggnomad.dashboard.sections.recentBookings', 'Recent bookings')}\n </h2>\n <ul className=\"space-y-2 text-sm\">\n {(bookings.data?.ggnomadBookings ?? []).map(\n (booking: {\n id: string;\n referenceCode: string;\n itemName: string;\n status: string;\n }) => (\n <li\n key={booking.id}\n className=\"flex items-center justify-between rounded border p-2\"\n >\n <span>\n {booking.referenceCode} - {booking.itemName}\n </span>\n <span className=\"text-muted-foreground\">{booking.status}</span>\n </li>\n )\n )}\n </ul>\n </div>\n <div className=\"rounded-lg border p-4\">\n <h2 className=\"mb-3 text-lg font-medium\">\n {t('ggnomad.dashboard.sections.featuredInventory', 'Featured inventory')}\n </h2>\n <div className=\"grid gap-2 text-sm\">\n <p>\n {t('ggnomad.dashboard.inventory.properties', 'Properties')}:{' '}\n {properties.data?.ggnomadProperties?.length ?? 0}\n </p>\n <p>\n {t('ggnomad.dashboard.inventory.tours', 'Tours')}:{' '}\n {tours.data?.ggnomadTours?.length ?? 0}\n </p>\n <p>\n {t('ggnomad.dashboard.inventory.events', 'Events')}:{' '}\n {events.data?.ggnomadEvents?.length ?? 0}\n </p>\n <p className=\"text-muted-foreground\">\n {t(\n 'ggnomad.dashboard.inventory.liveDataNotice',\n 'Data is live from `wspace-ggnomad-svc` GraphQL APIs.'\n )}\n </p>\n </div>\n </div>\n </section>\n </PageShell>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntertainmentPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/EntertainmentPage.tsx"],"names":[],"mappings":"AAMA,wBAAgB,iBAAiB,4CA0ChC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { GGNOMAD_EVENTS_QUERY as e } from "../graphql.js";
|
|
2
|
+
import { PageShell as t } from "./PageShell.js";
|
|
3
|
+
import { Link as n } from "react-router-dom";
|
|
4
|
+
import { useQuery as r } from "@apollo/client/react";
|
|
5
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
|
+
//#region src/ggnomad/pages/EntertainmentPage.tsx
|
|
7
|
+
function o() {
|
|
8
|
+
let { data: o } = r(e, { variables: {
|
|
9
|
+
first: 20,
|
|
10
|
+
skip: 0
|
|
11
|
+
} });
|
|
12
|
+
return /* @__PURE__ */ i(t, {
|
|
13
|
+
title: "Entertainment",
|
|
14
|
+
subtitle: "Events and live experiences",
|
|
15
|
+
children: /* @__PURE__ */ i("div", {
|
|
16
|
+
className: "grid gap-3 md:grid-cols-2",
|
|
17
|
+
children: (o?.ggnomadEvents ?? []).map((e) => /* @__PURE__ */ a(n, {
|
|
18
|
+
to: e.id,
|
|
19
|
+
className: "rounded-lg border p-4 text-sm hover:bg-muted/30",
|
|
20
|
+
children: [
|
|
21
|
+
/* @__PURE__ */ i("p", {
|
|
22
|
+
className: "font-medium",
|
|
23
|
+
children: e.name
|
|
24
|
+
}),
|
|
25
|
+
/* @__PURE__ */ i("p", {
|
|
26
|
+
className: "text-muted-foreground",
|
|
27
|
+
children: e.category
|
|
28
|
+
}),
|
|
29
|
+
/* @__PURE__ */ i("p", { children: new Date(e.startsAt).toLocaleString() }),
|
|
30
|
+
/* @__PURE__ */ a("p", { children: [
|
|
31
|
+
e.currency,
|
|
32
|
+
" ",
|
|
33
|
+
Number(e.price).toFixed(2)
|
|
34
|
+
] })
|
|
35
|
+
]
|
|
36
|
+
}, e.id))
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
export { o as EntertainmentPage };
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=EntertainmentPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntertainmentPage.js","names":[],"sources":["../../../src/ggnomad/pages/EntertainmentPage.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client/react';\nimport { Link } from 'react-router-dom';\n\nimport { GGNOMAD_EVENTS_QUERY } from '../graphql';\nimport { PageShell } from './PageShell';\n\nexport function EntertainmentPage() {\n const { data } = useQuery<{\n ggnomadEvents: Array<{\n id: string;\n name: string;\n category: string;\n startsAt: string;\n price: number;\n currency: string;\n }>;\n }>(GGNOMAD_EVENTS_QUERY, { variables: { first: 20, skip: 0 } });\n const events = data?.ggnomadEvents ?? [];\n\n return (\n <PageShell title=\"Entertainment\" subtitle=\"Events and live experiences\">\n <div className=\"grid gap-3 md:grid-cols-2\">\n {events.map(\n (event: {\n id: string;\n name: string;\n category: string;\n startsAt: string;\n price: number;\n currency: string;\n }) => (\n <Link\n key={event.id}\n to={event.id}\n className=\"rounded-lg border p-4 text-sm hover:bg-muted/30\"\n >\n <p className=\"font-medium\">{event.name}</p>\n <p className=\"text-muted-foreground\">{event.category}</p>\n <p>{new Date(event.startsAt).toLocaleString()}</p>\n <p>\n {event.currency} {Number(event.price).toFixed(2)}\n </p>\n </Link>\n )\n )}\n </div>\n </PageShell>\n );\n}\n"],"mappings":";;;;;;AAMA,SAAgB,IAAoB;CAClC,IAAM,EAAE,YAAS,EASd,GAAsB,EAAE,WAAW;EAAE,OAAO;EAAI,MAAM;EAAG,EAAE,CAAC;AAG/D,QACE,kBAAC,GAAD;EAAW,OAAM;EAAgB,UAAS;YACxC,kBAAC,OAAD;GAAK,WAAU;cAJJ,GAAM,iBAAiB,EAAE,EAK1B,KACL,MAQC,kBAAC,GAAD;IAEE,IAAI,EAAM;IACV,WAAU;cAHZ;KAKE,kBAAC,KAAD;MAAG,WAAU;gBAAe,EAAM;MAAS,CAAA;KAC3C,kBAAC,KAAD;MAAG,WAAU;gBAAyB,EAAM;MAAa,CAAA;KACzD,kBAAC,KAAD,EAAA,UAAI,IAAI,KAAK,EAAM,SAAS,CAAC,gBAAgB,EAAK,CAAA;KAClD,kBAAC,KAAD,EAAA,UAAA;MACG,EAAM;MAAS;MAAE,OAAO,EAAM,MAAM,CAAC,QAAQ,EAAE;MAC9C,EAAA,CAAA;KACC;MAVA,EAAM,GAUN,CAEV;GACG,CAAA;EACI,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventDetailsPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/EventDetailsPage.tsx"],"names":[],"mappings":"AAMA,wBAAgB,gBAAgB,4CA4C/B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { GGNOMAD_EVENT_QUERY as e } from "../graphql.js";
|
|
2
|
+
import { PageShell as t } from "./PageShell.js";
|
|
3
|
+
import { useParams as n } from "react-router-dom";
|
|
4
|
+
import { useQuery as r } from "@apollo/client/react";
|
|
5
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
|
+
//#region src/ggnomad/pages/EventDetailsPage.tsx
|
|
7
|
+
function o() {
|
|
8
|
+
let { id: o = "" } = n(), { data: s } = r(e, {
|
|
9
|
+
variables: { id: o },
|
|
10
|
+
skip: !o
|
|
11
|
+
}), c = s?.ggnomadEvent;
|
|
12
|
+
return /* @__PURE__ */ i(t, {
|
|
13
|
+
title: c?.name ?? "Event details",
|
|
14
|
+
subtitle: "Live event details, venue and lineup",
|
|
15
|
+
children: c ? /* @__PURE__ */ a("div", {
|
|
16
|
+
className: "grid gap-4 md:grid-cols-2 text-sm",
|
|
17
|
+
children: [/* @__PURE__ */ a("div", {
|
|
18
|
+
className: "rounded-lg border p-4",
|
|
19
|
+
children: [
|
|
20
|
+
/* @__PURE__ */ a("p", { children: ["Category: ", c.category] }),
|
|
21
|
+
/* @__PURE__ */ a("p", { children: ["Starts: ", new Date(c.startsAt).toLocaleString()] }),
|
|
22
|
+
/* @__PURE__ */ a("p", { children: ["Ends: ", c.endsAt ? new Date(c.endsAt).toLocaleString() : "N/A"] }),
|
|
23
|
+
/* @__PURE__ */ a("p", { children: [
|
|
24
|
+
"Price: ",
|
|
25
|
+
c.currency,
|
|
26
|
+
" ",
|
|
27
|
+
Number(c.price).toFixed(2)
|
|
28
|
+
] })
|
|
29
|
+
]
|
|
30
|
+
}), /* @__PURE__ */ a("div", {
|
|
31
|
+
className: "rounded-lg border p-4",
|
|
32
|
+
children: [/* @__PURE__ */ i("p", {
|
|
33
|
+
className: "font-medium",
|
|
34
|
+
children: "Performers"
|
|
35
|
+
}), /* @__PURE__ */ i("ul", {
|
|
36
|
+
className: "list-inside list-disc",
|
|
37
|
+
children: (c.performers ?? []).map((e) => /* @__PURE__ */ i("li", { children: e }, e))
|
|
38
|
+
})]
|
|
39
|
+
})]
|
|
40
|
+
}) : /* @__PURE__ */ i("div", {
|
|
41
|
+
className: "rounded-lg border p-4 text-muted-foreground",
|
|
42
|
+
children: "No event found."
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
export { o as EventDetailsPage };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=EventDetailsPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventDetailsPage.js","names":[],"sources":["../../../src/ggnomad/pages/EventDetailsPage.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client/react';\nimport { useParams } from 'react-router-dom';\n\nimport { GGNOMAD_EVENT_QUERY } from '../graphql';\nimport { PageShell } from './PageShell';\n\nexport function EventDetailsPage() {\n const { id = '' } = useParams();\n const { data } = useQuery<{\n ggnomadEvent: {\n name: string;\n category: string;\n startsAt: string;\n endsAt?: string;\n currency: string;\n price: number;\n performers: string[];\n } | null;\n }>(GGNOMAD_EVENT_QUERY, { variables: { id }, skip: !id });\n const event = data?.ggnomadEvent;\n\n return (\n <PageShell\n title={event?.name ?? 'Event details'}\n subtitle=\"Live event details, venue and lineup\"\n >\n {!event ? (\n <div className=\"rounded-lg border p-4 text-muted-foreground\">No event found.</div>\n ) : (\n <div className=\"grid gap-4 md:grid-cols-2 text-sm\">\n <div className=\"rounded-lg border p-4\">\n <p>Category: {event.category}</p>\n <p>Starts: {new Date(event.startsAt).toLocaleString()}</p>\n <p>Ends: {event.endsAt ? new Date(event.endsAt).toLocaleString() : 'N/A'}</p>\n <p>\n Price: {event.currency} {Number(event.price).toFixed(2)}\n </p>\n </div>\n <div className=\"rounded-lg border p-4\">\n <p className=\"font-medium\">Performers</p>\n <ul className=\"list-inside list-disc\">\n {(event.performers ?? []).map((performer: string) => (\n <li key={performer}>{performer}</li>\n ))}\n </ul>\n </div>\n </div>\n )}\n </PageShell>\n );\n}\n"],"mappings":";;;;;;AAMA,SAAgB,IAAmB;CACjC,IAAM,EAAE,QAAK,OAAO,GAAW,EACzB,EAAE,YAAS,EAUd,GAAqB;EAAE,WAAW,EAAE,OAAI;EAAE,MAAM,CAAC;EAAI,CAAC,EACnD,IAAQ,GAAM;AAEpB,QACE,kBAAC,GAAD;EACE,OAAO,GAAO,QAAQ;EACtB,UAAS;YAEP,IAGA,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,KAAD,EAAA,UAAA,CAAG,cAAW,EAAM,SAAa,EAAA,CAAA;KACjC,kBAAC,KAAD,EAAA,UAAA,CAAG,YAAS,IAAI,KAAK,EAAM,SAAS,CAAC,gBAAgB,CAAK,EAAA,CAAA;KAC1D,kBAAC,KAAD,EAAA,UAAA,CAAG,UAAO,EAAM,SAAS,IAAI,KAAK,EAAM,OAAO,CAAC,gBAAgB,GAAG,MAAU,EAAA,CAAA;KAC7E,kBAAC,KAAD,EAAA,UAAA;MAAG;MACO,EAAM;MAAS;MAAE,OAAO,EAAM,MAAM,CAAC,QAAQ,EAAE;MACrD,EAAA,CAAA;KACA;OACN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,KAAD;KAAG,WAAU;eAAc;KAAc,CAAA,EACzC,kBAAC,MAAD;KAAI,WAAU;gBACV,EAAM,cAAc,EAAE,EAAE,KAAK,MAC7B,kBAAC,MAAD,EAAA,UAAqB,GAAe,EAA3B,EAA2B,CACpC;KACC,CAAA,CACD;MACF;OAnBN,kBAAC,OAAD;GAAK,WAAU;aAA8C;GAAqB,CAAA;EAqB1E,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FavoritesPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/FavoritesPage.tsx"],"names":[],"mappings":"AAKA,wBAAgB,aAAa,4CAqC5B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { GGNOMAD_FAVORITES_QUERY as e, TOGGLE_GGNOMAD_FAVORITE_MUTATION as t } from "../graphql.js";
|
|
2
|
+
import { PageShell as n } from "./PageShell.js";
|
|
3
|
+
import { useMutation as r, useQuery as i } from "@apollo/client/react";
|
|
4
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
5
|
+
//#region src/ggnomad/pages/FavoritesPage.tsx
|
|
6
|
+
function s() {
|
|
7
|
+
let { data: s, refetch: c } = i(e), [l] = r(t, { onCompleted: () => void c() }), u = s?.ggnomadFavorites ?? [];
|
|
8
|
+
return /* @__PURE__ */ o(n, {
|
|
9
|
+
title: "Favorites",
|
|
10
|
+
subtitle: "Social ecosystem: saved entities across GGNomad domains",
|
|
11
|
+
children: [/* @__PURE__ */ a("div", {
|
|
12
|
+
className: "flex gap-2",
|
|
13
|
+
children: /* @__PURE__ */ a("button", {
|
|
14
|
+
className: "rounded-md border px-3 py-2 text-sm",
|
|
15
|
+
onClick: () => {
|
|
16
|
+
l({ variables: { input: {
|
|
17
|
+
targetType: "PROPERTY",
|
|
18
|
+
targetId: "demo-property"
|
|
19
|
+
} } });
|
|
20
|
+
},
|
|
21
|
+
type: "button",
|
|
22
|
+
children: "Toggle demo favorite"
|
|
23
|
+
})
|
|
24
|
+
}), /* @__PURE__ */ a("div", {
|
|
25
|
+
className: "space-y-2",
|
|
26
|
+
children: u.map((e) => /* @__PURE__ */ o("div", {
|
|
27
|
+
className: "rounded-lg border p-3 text-sm",
|
|
28
|
+
children: [
|
|
29
|
+
e.targetType,
|
|
30
|
+
" - ",
|
|
31
|
+
e.targetId
|
|
32
|
+
]
|
|
33
|
+
}, e.id))
|
|
34
|
+
})]
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { s as FavoritesPage };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=FavoritesPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FavoritesPage.js","names":[],"sources":["../../../src/ggnomad/pages/FavoritesPage.tsx"],"sourcesContent":["import { useMutation, useQuery } from '@apollo/client/react';\n\nimport { GGNOMAD_FAVORITES_QUERY, TOGGLE_GGNOMAD_FAVORITE_MUTATION } from '../graphql';\nimport { PageShell } from './PageShell';\n\nexport function FavoritesPage() {\n const { data, refetch } = useQuery<{\n ggnomadFavorites: Array<{ id: string; targetType: string; targetId: string }>;\n }>(GGNOMAD_FAVORITES_QUERY);\n const [toggleFavorite] = useMutation(TOGGLE_GGNOMAD_FAVORITE_MUTATION, {\n onCompleted: () => void refetch(),\n });\n const favorites = (data?.ggnomadFavorites ?? []) as Array<{\n id: string;\n targetType: string;\n targetId: string;\n }>;\n\n return (\n <PageShell title=\"Favorites\" subtitle=\"Social ecosystem: saved entities across GGNomad domains\">\n <div className=\"flex gap-2\">\n <button\n className=\"rounded-md border px-3 py-2 text-sm\"\n onClick={() => {\n void toggleFavorite({\n variables: { input: { targetType: 'PROPERTY', targetId: 'demo-property' } },\n });\n }}\n type=\"button\"\n >\n Toggle demo favorite\n </button>\n </div>\n <div className=\"space-y-2\">\n {favorites.map((favorite) => (\n <div key={favorite.id} className=\"rounded-lg border p-3 text-sm\">\n {favorite.targetType} - {favorite.targetId}\n </div>\n ))}\n </div>\n </PageShell>\n );\n}\n"],"mappings":";;;;;AAKA,SAAgB,IAAgB;CAC9B,IAAM,EAAE,SAAM,eAAY,EAEvB,EAAwB,EACrB,CAAC,KAAkB,EAAY,GAAkC,EACrE,mBAAmB,KAAK,GAAS,EAClC,CAAC,EACI,IAAa,GAAM,oBAAoB,EAAE;AAM/C,QACE,kBAAC,GAAD;EAAW,OAAM;EAAY,UAAS;YAAtC,CACE,kBAAC,OAAD;GAAK,WAAU;aACb,kBAAC,UAAD;IACE,WAAU;IACV,eAAe;AACR,OAAe,EAClB,WAAW,EAAE,OAAO;MAAE,YAAY;MAAY,UAAU;MAAiB,EAAE,EAC5E,CAAC;;IAEJ,MAAK;cACN;IAEQ,CAAA;GACL,CAAA,EACN,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAU,KAAK,MACd,kBAAC,OAAD;IAAuB,WAAU;cAAjC;KACG,EAAS;KAAW;KAAI,EAAS;KAC9B;MAFI,EAAS,GAEb,CACN;GACE,CAAA,CACI"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HospitalityPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/HospitalityPage.tsx"],"names":[],"mappings":"AAOA,wBAAgB,eAAe,4CAoD9B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { GGNOMAD_PROPERTIES_QUERY as e } from "../graphql.js";
|
|
2
|
+
import { PageShell as t } from "./PageShell.js";
|
|
3
|
+
import { useI18n as n } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
4
|
+
import { Link as r } from "react-router-dom";
|
|
5
|
+
import { useQuery as i } from "@apollo/client/react";
|
|
6
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
7
|
+
//#region src/ggnomad/pages/HospitalityPage.tsx
|
|
8
|
+
function s() {
|
|
9
|
+
let { t: s } = n(), { data: c } = i(e, { variables: {
|
|
10
|
+
first: 20,
|
|
11
|
+
skip: 0
|
|
12
|
+
} }), l = c?.ggnomadProperties ?? [];
|
|
13
|
+
return /* @__PURE__ */ a(t, {
|
|
14
|
+
title: s("ggnomad.hospitality.title", "Hospitality"),
|
|
15
|
+
subtitle: s("ggnomad.hospitality.subtitle", "Property discovery powered by live GraphQL data"),
|
|
16
|
+
children: /* @__PURE__ */ a("div", {
|
|
17
|
+
className: "grid gap-3 md:grid-cols-2",
|
|
18
|
+
children: l.map((e) => /* @__PURE__ */ o(r, {
|
|
19
|
+
to: e.id,
|
|
20
|
+
className: "rounded-lg border p-4 text-sm hover:bg-muted/30",
|
|
21
|
+
children: [
|
|
22
|
+
/* @__PURE__ */ a("p", {
|
|
23
|
+
className: "font-medium",
|
|
24
|
+
children: e.name
|
|
25
|
+
}),
|
|
26
|
+
/* @__PURE__ */ a("p", {
|
|
27
|
+
className: "text-muted-foreground",
|
|
28
|
+
children: e.type
|
|
29
|
+
}),
|
|
30
|
+
/* @__PURE__ */ o("p", { children: [
|
|
31
|
+
e.currency,
|
|
32
|
+
" ",
|
|
33
|
+
Number(e.pricePerNight).toFixed(2),
|
|
34
|
+
" ",
|
|
35
|
+
s("ggnomad.hospitality.card.perNight", "per night")
|
|
36
|
+
] }),
|
|
37
|
+
/* @__PURE__ */ o("p", {
|
|
38
|
+
className: "text-muted-foreground",
|
|
39
|
+
children: [
|
|
40
|
+
s("ggnomad.hospitality.card.rating", "Rating"),
|
|
41
|
+
": ",
|
|
42
|
+
e.rating ?? "N/A"
|
|
43
|
+
]
|
|
44
|
+
})
|
|
45
|
+
]
|
|
46
|
+
}, e.id))
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
export { s as HospitalityPage };
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=HospitalityPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HospitalityPage.js","names":[],"sources":["../../../src/ggnomad/pages/HospitalityPage.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client/react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { Link } from 'react-router-dom';\n\nimport { GGNOMAD_PROPERTIES_QUERY } from '../graphql';\nimport { PageShell } from './PageShell';\n\nexport function HospitalityPage() {\n const { t } = useI18n();\n const { data } = useQuery<{\n ggnomadProperties: Array<{\n id: string;\n name: string;\n type: string;\n pricePerNight: number;\n currency: string;\n rating?: number;\n }>;\n }>(GGNOMAD_PROPERTIES_QUERY, { variables: { first: 20, skip: 0 } });\n const properties = data?.ggnomadProperties ?? [];\n\n return (\n <PageShell\n title={t('ggnomad.hospitality.title', 'Hospitality')}\n subtitle={t(\n 'ggnomad.hospitality.subtitle',\n 'Property discovery powered by live GraphQL data'\n )}\n >\n <div className=\"grid gap-3 md:grid-cols-2\">\n {properties.map(\n (property: {\n id: string;\n name: string;\n type: string;\n pricePerNight: number;\n currency: string;\n rating?: number;\n }) => (\n <Link\n key={property.id}\n to={property.id}\n className=\"rounded-lg border p-4 text-sm hover:bg-muted/30\"\n >\n <p className=\"font-medium\">{property.name}</p>\n <p className=\"text-muted-foreground\">{property.type}</p>\n <p>\n {property.currency} {Number(property.pricePerNight).toFixed(2)}{' '}\n {t('ggnomad.hospitality.card.perNight', 'per night')}\n </p>\n <p className=\"text-muted-foreground\">\n {t('ggnomad.hospitality.card.rating', 'Rating')}: {property.rating ?? 'N/A'}\n </p>\n </Link>\n )\n )}\n </div>\n </PageShell>\n );\n}\n"],"mappings":";;;;;;;AAOA,SAAgB,IAAkB;CAChC,IAAM,EAAE,SAAM,GAAS,EACjB,EAAE,YAAS,EASd,GAA0B,EAAE,WAAW;EAAE,OAAO;EAAI,MAAM;EAAG,EAAE,CAAC,EAC7D,IAAa,GAAM,qBAAqB,EAAE;AAEhD,QACE,kBAAC,GAAD;EACE,OAAO,EAAE,6BAA6B,cAAc;EACpD,UAAU,EACR,gCACA,kDACD;YAED,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAW,KACT,MAQC,kBAAC,GAAD;IAEE,IAAI,EAAS;IACb,WAAU;cAHZ;KAKE,kBAAC,KAAD;MAAG,WAAU;gBAAe,EAAS;MAAS,CAAA;KAC9C,kBAAC,KAAD;MAAG,WAAU;gBAAyB,EAAS;MAAS,CAAA;KACxD,kBAAC,KAAD,EAAA,UAAA;MACG,EAAS;MAAS;MAAE,OAAO,EAAS,cAAc,CAAC,QAAQ,EAAE;MAAE;MAC/D,EAAE,qCAAqC,YAAY;MAClD,EAAA,CAAA;KACJ,kBAAC,KAAD;MAAG,WAAU;gBAAb;OACG,EAAE,mCAAmC,SAAS;OAAC;OAAG,EAAS,UAAU;OACpE;;KACC;MAbA,EAAS,GAaT,CAEV;GACG,CAAA;EACI,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageShell.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/PageShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE,iBAAiB,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,2CAUxD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as e, jsxs as t } from "react/jsx-runtime";
|
|
2
|
+
//#region src/ggnomad/pages/PageShell.tsx
|
|
3
|
+
function n({ title: n, subtitle: r, children: i }) {
|
|
4
|
+
return /* @__PURE__ */ t("div", {
|
|
5
|
+
className: "space-y-6 p-6",
|
|
6
|
+
children: [/* @__PURE__ */ t("header", { children: [/* @__PURE__ */ e("h1", {
|
|
7
|
+
className: "text-3xl font-semibold tracking-tight",
|
|
8
|
+
children: n
|
|
9
|
+
}), /* @__PURE__ */ e("p", {
|
|
10
|
+
className: "text-sm text-muted-foreground",
|
|
11
|
+
children: r
|
|
12
|
+
})] }), i]
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { n as PageShell };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=PageShell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageShell.js","names":[],"sources":["../../../src/ggnomad/pages/PageShell.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\n\nexport function PageShell({\n title,\n subtitle,\n children,\n}: PropsWithChildren<{ title: string; subtitle: string }>) {\n return (\n <div className=\"space-y-6 p-6\">\n <header>\n <h1 className=\"text-3xl font-semibold tracking-tight\">{title}</h1>\n <p className=\"text-sm text-muted-foreground\">{subtitle}</p>\n </header>\n {children}\n </div>\n );\n}\n"],"mappings":";;AAEA,SAAgB,EAAU,EACxB,UACA,aACA,eACyD;AACzD,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,UAAD,EAAA,UAAA,CACE,kBAAC,MAAD;GAAI,WAAU;aAAyC;GAAW,CAAA,EAClE,kBAAC,KAAD;GAAG,WAAU;aAAiC;GAAa,CAAA,CACpD,EAAA,CAAA,EACR,EACG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyDetailsPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/PropertyDetailsPage.tsx"],"names":[],"mappings":"AAMA,wBAAgB,mBAAmB,4CA6ClC"}
|