@burdenoff/microfe-ggnomad 2026.725.2 → 2026.726.2

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.
Files changed (30) hide show
  1. package/dist/ggnomad/GGNomadRoot.d.ts.map +1 -1
  2. package/dist/ggnomad/GGNomadRoot.js +66 -52
  3. package/dist/ggnomad/GGNomadRoot.js.map +1 -1
  4. package/dist/ggnomad/GGNomadRoutes.d.ts.map +1 -1
  5. package/dist/ggnomad/GGNomadRoutes.js +13 -5
  6. package/dist/ggnomad/GGNomadRoutes.js.map +1 -1
  7. package/dist/ggnomad/components/AuditTrailDialog.d.ts +17 -0
  8. package/dist/ggnomad/components/AuditTrailDialog.d.ts.map +1 -0
  9. package/dist/ggnomad/components/AuditTrailDialog.js +88 -0
  10. package/dist/ggnomad/components/AuditTrailDialog.js.map +1 -0
  11. package/dist/ggnomad/components/CreateTravelPolicyDialog.d.ts +14 -0
  12. package/dist/ggnomad/components/CreateTravelPolicyDialog.d.ts.map +1 -0
  13. package/dist/ggnomad/components/CreateTravelPolicyDialog.js +192 -0
  14. package/dist/ggnomad/components/CreateTravelPolicyDialog.js.map +1 -0
  15. package/dist/ggnomad/components/index.d.ts +2 -0
  16. package/dist/ggnomad/components/index.d.ts.map +1 -1
  17. package/dist/ggnomad/components/index.js +2 -0
  18. package/dist/ggnomad/graphql.d.ts +20 -0
  19. package/dist/ggnomad/graphql.d.ts.map +1 -1
  20. package/dist/ggnomad/graphql.js +199 -1
  21. package/dist/ggnomad/graphql.js.map +1 -1
  22. package/dist/ggnomad/pages/OperationsQueuePage.d.ts +11 -0
  23. package/dist/ggnomad/pages/OperationsQueuePage.d.ts.map +1 -0
  24. package/dist/ggnomad/pages/OperationsQueuePage.js +323 -0
  25. package/dist/ggnomad/pages/OperationsQueuePage.js.map +1 -0
  26. package/dist/ggnomad/pages/TravelPolicyPage.d.ts +9 -0
  27. package/dist/ggnomad/pages/TravelPolicyPage.d.ts.map +1 -0
  28. package/dist/ggnomad/pages/TravelPolicyPage.js +245 -0
  29. package/dist/ggnomad/pages/TravelPolicyPage.js.map +1 -0
  30. package/package.json +1 -1
@@ -0,0 +1,192 @@
1
+ import { CREATE_GGNOMAD_TRAVEL_POLICY_MUTATION as e } from "../graphql.js";
2
+ import { notify as t } from "../utils/notify.js";
3
+ import { useState as n } from "react";
4
+ import { ShieldCheck as r } from "lucide-react";
5
+ import { useI18n as i } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
6
+ import { useMutation as a } from "@apollo/client/react";
7
+ import { AlertDialog as o, AlertDialogAction as s, AlertDialogCancel as c, AlertDialogContent as l, AlertDialogDescription as u, AlertDialogFooter as d, AlertDialogHeader as f, AlertDialogTitle as p } from "@burdenoff/fe-libs/ui";
8
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
9
+ //#region src/ggnomad/components/CreateTravelPolicyDialog.tsx
10
+ var g = "mt-1 w-full rounded-md border border-border-seam bg-bg-canvas px-3 py-2 text-sm text-text-primary placeholder-text-secondary focus:border-action-primary-bg focus:outline-none focus:ring-1 focus:ring-action-primary-bg disabled:opacity-50", _ = "block text-sm font-medium text-text-primary";
11
+ function v({ open: v, onOpenChange: y, onCreated: b }) {
12
+ let { t: x } = i(), [S, C] = n(""), [w, T] = n(""), [E, D] = n("USD"), [O, k] = n(""), [A, j] = n(""), [M, N] = n(""), [P, F] = n(""), [I, L] = n(!1), [R, { loading: z }] = a(e), B = () => {
13
+ C(""), T(""), D("USD"), k(""), j(""), N(""), F(""), L(!1);
14
+ }, V = async () => {
15
+ if (!S.trim()) {
16
+ t.warning(x("ggnomad.travelPolicy.create.nameRequiredTitle", "Name is required"), x("ggnomad.travelPolicy.create.nameRequiredBody", "Give this policy a short, recognizable name."));
17
+ return;
18
+ }
19
+ let e = {
20
+ name: S.trim(),
21
+ costCenter: w.trim() || null,
22
+ currency: E.trim() || "USD",
23
+ maxBookingAmount: O.trim() ? Number(O) : null,
24
+ maxMonthlyPerTraveler: A.trim() ? Number(A) : null,
25
+ blockedDestinations: M.split(",").map((e) => e.trim()).filter(Boolean),
26
+ allowedTravelClasses: P.split(",").map((e) => e.trim().toUpperCase()).filter(Boolean),
27
+ requireApprovalAlways: I
28
+ };
29
+ try {
30
+ let n = await R({ variables: { input: e } });
31
+ if (n.error) {
32
+ t.error(x("ggnomad.travelPolicy.create.errorTitle", "Could not create policy"), n.error.message);
33
+ return;
34
+ }
35
+ t.success(x("ggnomad.travelPolicy.create.successTitle", "Travel policy created"), n.data?.createGgnomadTravelPolicy.name ?? S), B(), y(!1), b?.();
36
+ } catch (e) {
37
+ t.error(x("ggnomad.travelPolicy.create.errorTitle", "Could not create policy"), e instanceof Error ? e.message : String(e));
38
+ }
39
+ };
40
+ return /* @__PURE__ */ m(o, {
41
+ open: v,
42
+ onOpenChange: (e) => {
43
+ e || B(), y(e);
44
+ },
45
+ children: /* @__PURE__ */ h(l, {
46
+ className: "max-w-2xl",
47
+ children: [
48
+ /* @__PURE__ */ h(f, { children: [/* @__PURE__ */ h(p, {
49
+ className: "flex items-center gap-2",
50
+ children: [/* @__PURE__ */ m(r, { className: "size-4" }), x("ggnomad.travelPolicy.create.title", "New travel policy")]
51
+ }), /* @__PURE__ */ m(u, { children: x("ggnomad.travelPolicy.create.description", "Bookings that violate an active policy are held for manager approval instead of confirming automatically.") })] }),
52
+ /* @__PURE__ */ h("div", {
53
+ className: "grid gap-4 sm:grid-cols-2",
54
+ children: [
55
+ /* @__PURE__ */ h("div", {
56
+ className: "sm:col-span-2",
57
+ children: [/* @__PURE__ */ m("label", {
58
+ htmlFor: "policy-name",
59
+ className: _,
60
+ children: x("ggnomad.travelPolicy.create.nameLabel", "Policy name")
61
+ }), /* @__PURE__ */ m("input", {
62
+ id: "policy-name",
63
+ type: "text",
64
+ value: S,
65
+ onChange: (e) => C(e.target.value),
66
+ disabled: z,
67
+ className: g,
68
+ placeholder: x("ggnomad.travelPolicy.create.namePlaceholder", "e.g. Sales Team Travel Policy")
69
+ })]
70
+ }),
71
+ /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("label", {
72
+ htmlFor: "policy-cost-center",
73
+ className: _,
74
+ children: x("ggnomad.travelPolicy.create.costCenterLabel", "Cost center (optional)")
75
+ }), /* @__PURE__ */ m("input", {
76
+ id: "policy-cost-center",
77
+ type: "text",
78
+ value: w,
79
+ onChange: (e) => T(e.target.value),
80
+ disabled: z,
81
+ className: g,
82
+ placeholder: x("ggnomad.travelPolicy.create.costCenterPlaceholder", "Blank = whole workspace")
83
+ })] }),
84
+ /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("label", {
85
+ htmlFor: "policy-currency",
86
+ className: _,
87
+ children: x("ggnomad.travelPolicy.create.currencyLabel", "Currency")
88
+ }), /* @__PURE__ */ m("input", {
89
+ id: "policy-currency",
90
+ type: "text",
91
+ value: E,
92
+ onChange: (e) => D(e.target.value.toUpperCase()),
93
+ disabled: z,
94
+ maxLength: 10,
95
+ className: g
96
+ })] }),
97
+ /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("label", {
98
+ htmlFor: "policy-max-booking",
99
+ className: _,
100
+ children: x("ggnomad.travelPolicy.create.maxBookingLabel", "Max per booking (optional)")
101
+ }), /* @__PURE__ */ m("input", {
102
+ id: "policy-max-booking",
103
+ type: "number",
104
+ step: "0.01",
105
+ min: "0",
106
+ value: O,
107
+ onChange: (e) => k(e.target.value),
108
+ disabled: z,
109
+ className: g,
110
+ placeholder: "500.00"
111
+ })] }),
112
+ /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("label", {
113
+ htmlFor: "policy-max-monthly",
114
+ className: _,
115
+ children: x("ggnomad.travelPolicy.create.maxMonthlyLabel", "Max per traveler / month (optional)")
116
+ }), /* @__PURE__ */ m("input", {
117
+ id: "policy-max-monthly",
118
+ type: "number",
119
+ step: "0.01",
120
+ min: "0",
121
+ value: A,
122
+ onChange: (e) => j(e.target.value),
123
+ disabled: z,
124
+ className: g,
125
+ placeholder: "2000.00"
126
+ })] }),
127
+ /* @__PURE__ */ h("div", {
128
+ className: "sm:col-span-2",
129
+ children: [/* @__PURE__ */ m("label", {
130
+ htmlFor: "policy-blocked-destinations",
131
+ className: _,
132
+ children: x("ggnomad.travelPolicy.create.blockedDestinationsLabel", "Blocked destinations (comma-separated)")
133
+ }), /* @__PURE__ */ m("input", {
134
+ id: "policy-blocked-destinations",
135
+ type: "text",
136
+ value: M,
137
+ onChange: (e) => N(e.target.value),
138
+ disabled: z,
139
+ className: g,
140
+ placeholder: "Dubai, Moscow"
141
+ })]
142
+ }),
143
+ /* @__PURE__ */ h("div", {
144
+ className: "sm:col-span-2",
145
+ children: [/* @__PURE__ */ m("label", {
146
+ htmlFor: "policy-allowed-classes",
147
+ className: _,
148
+ children: x("ggnomad.travelPolicy.create.allowedClassesLabel", "Allowed travel classes (comma-separated, optional)")
149
+ }), /* @__PURE__ */ m("input", {
150
+ id: "policy-allowed-classes",
151
+ type: "text",
152
+ value: P,
153
+ onChange: (e) => F(e.target.value),
154
+ disabled: z,
155
+ className: g,
156
+ placeholder: "ECONOMY, PREMIUM_ECONOMY"
157
+ })]
158
+ }),
159
+ /* @__PURE__ */ h("label", {
160
+ className: "flex items-center gap-2 sm:col-span-2",
161
+ children: [/* @__PURE__ */ m("input", {
162
+ type: "checkbox",
163
+ checked: I,
164
+ onChange: (e) => L(e.target.checked),
165
+ disabled: z,
166
+ className: "size-4 rounded border-border-seam"
167
+ }), /* @__PURE__ */ m("span", {
168
+ className: "text-sm text-text-primary",
169
+ children: x("ggnomad.travelPolicy.create.requireApprovalAlwaysLabel", "Always require manager approval under this policy")
170
+ })]
171
+ })
172
+ ]
173
+ }),
174
+ /* @__PURE__ */ h(d, { children: [/* @__PURE__ */ m(c, {
175
+ disabled: z,
176
+ children: x("ggnomad.travelPolicy.create.cancel", "Cancel")
177
+ }), /* @__PURE__ */ m(s, {
178
+ onClick: (e) => {
179
+ e.preventDefault(), V();
180
+ },
181
+ disabled: z,
182
+ className: "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bgHover",
183
+ children: z ? x("ggnomad.travelPolicy.create.saving", "Creating…") : x("ggnomad.travelPolicy.create.save", "Create policy")
184
+ })] })
185
+ ]
186
+ })
187
+ });
188
+ }
189
+ //#endregion
190
+ export { v as CreateTravelPolicyDialog };
191
+
192
+ //# sourceMappingURL=CreateTravelPolicyDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateTravelPolicyDialog.js","names":[],"sources":["../../../src/ggnomad/components/CreateTravelPolicyDialog.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useMutation } from '@apollo/client/react';\nimport type { TypedDocumentNode } from '@apollo/client';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { ShieldCheck } from 'lucide-react';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '@burdenoff/fe-libs/ui';\n\nimport { CREATE_GGNOMAD_TRAVEL_POLICY_MUTATION } from '../graphql';\nimport { notify } from '../utils/notify';\n\ninterface CreateTravelPolicyDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onCreated?: () => void;\n}\n\ntype CreateGgnomadTravelPolicyInput = {\n name: string;\n costCenter?: string | null;\n currency?: string;\n maxBookingAmount?: number | null;\n maxMonthlyPerTraveler?: number | null;\n blockedDestinations?: string[];\n allowedTravelClasses?: string[];\n requireApprovalAlways?: boolean;\n};\n\nconst fieldClass =\n 'mt-1 w-full rounded-md border border-border-seam bg-bg-canvas px-3 py-2 text-sm text-text-primary placeholder-text-secondary focus:border-action-primary-bg focus:outline-none focus:ring-1 focus:ring-action-primary-bg disabled:opacity-50';\nconst labelClass = 'block text-sm font-medium text-text-primary';\n\n/**\n * Manager-only form (BOFF-4365) for defining a corporate travel policy:\n * budget caps, blocked destinations, allowed travel classes, and an\n * always-require-approval override. `costCenter` left blank applies the\n * policy workspace-wide; a value scopes it to just that department.\n */\nexport function CreateTravelPolicyDialog({\n open,\n onOpenChange,\n onCreated,\n}: CreateTravelPolicyDialogProps) {\n const { t } = useI18n();\n const [name, setName] = useState('');\n const [costCenter, setCostCenter] = useState('');\n const [currency, setCurrency] = useState('USD');\n const [maxBookingAmount, setMaxBookingAmount] = useState('');\n const [maxMonthlyPerTraveler, setMaxMonthlyPerTraveler] = useState('');\n const [blockedDestinationsText, setBlockedDestinationsText] = useState('');\n const [allowedTravelClassesText, setAllowedTravelClassesText] = useState('');\n const [requireApprovalAlways, setRequireApprovalAlways] = useState(false);\n\n const [createTravelPolicy, { loading }] = useMutation(\n CREATE_GGNOMAD_TRAVEL_POLICY_MUTATION as TypedDocumentNode<\n { createGgnomadTravelPolicy: { id: string; name: string } },\n { input: CreateGgnomadTravelPolicyInput }\n >\n );\n\n const resetForm = () => {\n setName('');\n setCostCenter('');\n setCurrency('USD');\n setMaxBookingAmount('');\n setMaxMonthlyPerTraveler('');\n setBlockedDestinationsText('');\n setAllowedTravelClassesText('');\n setRequireApprovalAlways(false);\n };\n\n const handleCreate = async () => {\n if (!name.trim()) {\n notify.warning(\n t('ggnomad.travelPolicy.create.nameRequiredTitle', 'Name is required'),\n t(\n 'ggnomad.travelPolicy.create.nameRequiredBody',\n 'Give this policy a short, recognizable name.'\n )\n );\n return;\n }\n\n const input: CreateGgnomadTravelPolicyInput = {\n name: name.trim(),\n costCenter: costCenter.trim() || null,\n currency: currency.trim() || 'USD',\n maxBookingAmount: maxBookingAmount.trim() ? Number(maxBookingAmount) : null,\n maxMonthlyPerTraveler: maxMonthlyPerTraveler.trim() ? Number(maxMonthlyPerTraveler) : null,\n blockedDestinations: blockedDestinationsText\n .split(',')\n .map((entry) => entry.trim())\n .filter(Boolean),\n allowedTravelClasses: allowedTravelClassesText\n .split(',')\n .map((entry) => entry.trim().toUpperCase())\n .filter(Boolean),\n requireApprovalAlways,\n };\n\n try {\n const result = await createTravelPolicy({ variables: { input } });\n if (result.error) {\n notify.error(\n t('ggnomad.travelPolicy.create.errorTitle', 'Could not create policy'),\n result.error.message\n );\n return;\n }\n notify.success(\n t('ggnomad.travelPolicy.create.successTitle', 'Travel policy created'),\n result.data?.createGgnomadTravelPolicy.name ?? name\n );\n resetForm();\n onOpenChange(false);\n onCreated?.();\n } catch (err) {\n notify.error(\n t('ggnomad.travelPolicy.create.errorTitle', 'Could not create policy'),\n err instanceof Error ? err.message : String(err)\n );\n }\n };\n\n return (\n <AlertDialog\n open={open}\n onOpenChange={(next) => {\n if (!next) resetForm();\n onOpenChange(next);\n }}\n >\n <AlertDialogContent className=\"max-w-2xl\">\n <AlertDialogHeader>\n <AlertDialogTitle className=\"flex items-center gap-2\">\n <ShieldCheck className=\"size-4\" />\n {t('ggnomad.travelPolicy.create.title', 'New travel policy')}\n </AlertDialogTitle>\n <AlertDialogDescription>\n {t(\n 'ggnomad.travelPolicy.create.description',\n 'Bookings that violate an active policy are held for manager approval instead of confirming automatically.'\n )}\n </AlertDialogDescription>\n </AlertDialogHeader>\n\n <div className=\"grid gap-4 sm:grid-cols-2\">\n <div className=\"sm:col-span-2\">\n <label htmlFor=\"policy-name\" className={labelClass}>\n {t('ggnomad.travelPolicy.create.nameLabel', 'Policy name')}\n </label>\n <input\n id=\"policy-name\"\n type=\"text\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n disabled={loading}\n className={fieldClass}\n placeholder={t(\n 'ggnomad.travelPolicy.create.namePlaceholder',\n 'e.g. Sales Team Travel Policy'\n )}\n />\n </div>\n\n <div>\n <label htmlFor=\"policy-cost-center\" className={labelClass}>\n {t('ggnomad.travelPolicy.create.costCenterLabel', 'Cost center (optional)')}\n </label>\n <input\n id=\"policy-cost-center\"\n type=\"text\"\n value={costCenter}\n onChange={(e) => setCostCenter(e.target.value)}\n disabled={loading}\n className={fieldClass}\n placeholder={t(\n 'ggnomad.travelPolicy.create.costCenterPlaceholder',\n 'Blank = whole workspace'\n )}\n />\n </div>\n\n <div>\n <label htmlFor=\"policy-currency\" className={labelClass}>\n {t('ggnomad.travelPolicy.create.currencyLabel', 'Currency')}\n </label>\n <input\n id=\"policy-currency\"\n type=\"text\"\n value={currency}\n onChange={(e) => setCurrency(e.target.value.toUpperCase())}\n disabled={loading}\n maxLength={10}\n className={fieldClass}\n />\n </div>\n\n <div>\n <label htmlFor=\"policy-max-booking\" className={labelClass}>\n {t('ggnomad.travelPolicy.create.maxBookingLabel', 'Max per booking (optional)')}\n </label>\n <input\n id=\"policy-max-booking\"\n type=\"number\"\n step=\"0.01\"\n min=\"0\"\n value={maxBookingAmount}\n onChange={(e) => setMaxBookingAmount(e.target.value)}\n disabled={loading}\n className={fieldClass}\n placeholder=\"500.00\"\n />\n </div>\n\n <div>\n <label htmlFor=\"policy-max-monthly\" className={labelClass}>\n {t(\n 'ggnomad.travelPolicy.create.maxMonthlyLabel',\n 'Max per traveler / month (optional)'\n )}\n </label>\n <input\n id=\"policy-max-monthly\"\n type=\"number\"\n step=\"0.01\"\n min=\"0\"\n value={maxMonthlyPerTraveler}\n onChange={(e) => setMaxMonthlyPerTraveler(e.target.value)}\n disabled={loading}\n className={fieldClass}\n placeholder=\"2000.00\"\n />\n </div>\n\n <div className=\"sm:col-span-2\">\n <label htmlFor=\"policy-blocked-destinations\" className={labelClass}>\n {t(\n 'ggnomad.travelPolicy.create.blockedDestinationsLabel',\n 'Blocked destinations (comma-separated)'\n )}\n </label>\n <input\n id=\"policy-blocked-destinations\"\n type=\"text\"\n value={blockedDestinationsText}\n onChange={(e) => setBlockedDestinationsText(e.target.value)}\n disabled={loading}\n className={fieldClass}\n placeholder=\"Dubai, Moscow\"\n />\n </div>\n\n <div className=\"sm:col-span-2\">\n <label htmlFor=\"policy-allowed-classes\" className={labelClass}>\n {t(\n 'ggnomad.travelPolicy.create.allowedClassesLabel',\n 'Allowed travel classes (comma-separated, optional)'\n )}\n </label>\n <input\n id=\"policy-allowed-classes\"\n type=\"text\"\n value={allowedTravelClassesText}\n onChange={(e) => setAllowedTravelClassesText(e.target.value)}\n disabled={loading}\n className={fieldClass}\n placeholder=\"ECONOMY, PREMIUM_ECONOMY\"\n />\n </div>\n\n <label className=\"flex items-center gap-2 sm:col-span-2\">\n <input\n type=\"checkbox\"\n checked={requireApprovalAlways}\n onChange={(e) => setRequireApprovalAlways(e.target.checked)}\n disabled={loading}\n className=\"size-4 rounded border-border-seam\"\n />\n <span className=\"text-sm text-text-primary\">\n {t(\n 'ggnomad.travelPolicy.create.requireApprovalAlwaysLabel',\n 'Always require manager approval under this policy'\n )}\n </span>\n </label>\n </div>\n\n <AlertDialogFooter>\n <AlertDialogCancel disabled={loading}>\n {t('ggnomad.travelPolicy.create.cancel', 'Cancel')}\n </AlertDialogCancel>\n <AlertDialogAction\n onClick={(event) => {\n event.preventDefault();\n void handleCreate();\n }}\n disabled={loading}\n className=\"bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bgHover\"\n >\n {loading\n ? t('ggnomad.travelPolicy.create.saving', 'Creating…')\n : t('ggnomad.travelPolicy.create.save', 'Create policy')}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n}\n"],"mappings":"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"}
@@ -8,7 +8,9 @@ export { DetailHero } from './DetailHero';
8
8
  export { BookingPanel } from './BookingPanel';
9
9
  export { ReviewsSection } from './ReviewsSection';
10
10
  export { ListingEditDialog } from './ListingEditDialog';
11
+ export { CreateTravelPolicyDialog } from './CreateTravelPolicyDialog';
11
12
  export { TicketDialog } from './TicketDialog';
12
13
  export type { GgnomadTicket } from './TicketDialog';
13
14
  export { RedeemTicketPanel } from './RedeemTicketPanel';
15
+ export { AuditTrailDialog } from './AuditTrailDialog';
14
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -8,5 +8,7 @@ import "./DetailHero.js";
8
8
  import "./BookingPanel.js";
9
9
  import "./ReviewsSection.js";
10
10
  import "./ListingEditDialog.js";
11
+ import "./CreateTravelPolicyDialog.js";
11
12
  import "./TicketDialog.js";
12
13
  import "./RedeemTicketPanel.js";
14
+ import "./AuditTrailDialog.js";
@@ -48,4 +48,24 @@ export declare const UPDATE_GGNOMAD_PROPERTY_MUTATION: import('graphql').Documen
48
48
  export declare const UPDATE_GGNOMAD_TOUR_MUTATION: import('graphql').DocumentNode;
49
49
  export declare const UPDATE_GGNOMAD_EVENT_MUTATION: import('graphql').DocumentNode;
50
50
  export declare const UPDATE_GGNOMAD_ACTIVITY_MUTATION: import('graphql').DocumentNode;
51
+ export declare const GGNOMAD_TRAVEL_POLICIES_QUERY: import('graphql').DocumentNode;
52
+ export declare const CREATE_GGNOMAD_TRAVEL_POLICY_MUTATION: import('graphql').DocumentNode;
53
+ export declare const UPDATE_GGNOMAD_TRAVEL_POLICY_MUTATION: import('graphql').DocumentNode;
54
+ export declare const DELETE_GGNOMAD_TRAVEL_POLICY_MUTATION: import('graphql').DocumentNode;
55
+ export declare const GGNOMAD_BOOKING_APPROVALS_QUERY: import('graphql').DocumentNode;
56
+ export declare const APPROVE_GGNOMAD_BOOKING_APPROVAL_MUTATION: import('graphql').DocumentNode;
57
+ export declare const REJECT_GGNOMAD_BOOKING_APPROVAL_MUTATION: import('graphql').DocumentNode;
58
+ export declare const GGNOMAD_SPEND_SUMMARY_QUERY: import('graphql').DocumentNode;
59
+ export declare const GGNOMAD_LISTING_REVIEW_QUEUE_QUERY: import('graphql').DocumentNode;
60
+ export declare const SUBMIT_GGNOMAD_LISTING_FOR_REVIEW_MUTATION: import('graphql').DocumentNode;
61
+ export declare const APPROVE_GGNOMAD_LISTING_MUTATION: import('graphql').DocumentNode;
62
+ export declare const REJECT_GGNOMAD_LISTING_MUTATION: import('graphql').DocumentNode;
63
+ export declare const PAUSE_GGNOMAD_LISTING_MUTATION: import('graphql').DocumentNode;
64
+ export declare const RESUME_GGNOMAD_LISTING_MUTATION: import('graphql').DocumentNode;
65
+ export declare const ARCHIVE_GGNOMAD_LISTING_MUTATION: import('graphql').DocumentNode;
66
+ export declare const GGNOMAD_BOOKING_QUEUE_QUERY: import('graphql').DocumentNode;
67
+ export declare const CHECK_IN_GGNOMAD_BOOKING_MUTATION: import('graphql').DocumentNode;
68
+ export declare const COMPLETE_GGNOMAD_BOOKING_MUTATION: import('graphql').DocumentNode;
69
+ export declare const MARK_GGNOMAD_BOOKING_NO_SHOW_MUTATION: import('graphql').DocumentNode;
70
+ export declare const GGNOMAD_AUDIT_LOG_QUERY: import('graphql').DocumentNode;
51
71
  //# sourceMappingURL=graphql.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/ggnomad/graphql.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,gCAgBlC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,gCA2BzC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,gCAmB1C,CAAC;AAEF,eAAO,MAAM,uBAAuB,gCAenC,CAAC;AAEF,eAAO,MAAM,wBAAwB,gCAkBpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,gCA4BlC,CAAC;AAGF,eAAO,MAAM,kCAAkC,gCAS9C,CAAC;AAEF,eAAO,MAAM,mBAAmB,gCAkB/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,gCAwB9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,gCAiBhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,gCAuB/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,gCAoBpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,gCA0BlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,gCAoB/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,gCAwBlC,CAAC;AAEF,eAAO,MAAM,uBAAuB,gCAInC,CAAC;AAEF,eAAO,MAAM,+BAA+B,gCAe3C,CAAC;AAEF,eAAO,MAAM,gCAAgC,gCAI5C,CAAC;AAEF,eAAO,MAAM,+BAA+B,gCAO3C,CAAC;AAGF,eAAO,MAAM,qBAAqB,gCAejC,CAAC;AAEF,eAAO,MAAM,6BAA6B,gCAWzC,CAAC;AAEF,eAAO,MAAM,8BAA8B,gCAW1C,CAAC;AAEF,eAAO,MAAM,8BAA8B,gCAS1C,CAAC;AAGF,eAAO,MAAM,wBAAwB,gCAepC,CAAC;AAEF,eAAO,MAAM,uBAAuB,gCA2BnC,CAAC;AAGF,eAAO,MAAM,iCAAiC,gCAe7C,CAAC;AAEF,eAAO,MAAM,iCAAiC,gCAe7C,CAAC;AAEF,eAAO,MAAM,iCAAiC,gCAI7C,CAAC;AAEF,eAAO,MAAM,mCAAmC,gCAc/C,CAAC;AAEF,eAAO,MAAM,sCAAsC,gCAIlD,CAAC;AAGF,eAAO,MAAM,4BAA4B,gCAQxC,CAAC;AAEF,eAAO,MAAM,qBAAqB,gCAwBjC,CAAC;AAGF,eAAO,MAAM,8BAA8B,gCAS1C,CAAC;AAEF,eAAO,MAAM,+BAA+B,gCAQ3C,CAAC;AAGF,eAAO,MAAM,gCAAgC,gCAW5C,CAAC;AAEF,eAAO,MAAM,4BAA4B,gCAWxC,CAAC;AAEF,eAAO,MAAM,6BAA6B,gCAWzC,CAAC;AAEF,eAAO,MAAM,gCAAgC,gCAW5C,CAAC"}
1
+ {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/ggnomad/graphql.ts"],"names":[],"mappings":"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"}
@@ -575,8 +575,206 @@ var j = e`
575
575
  images
576
576
  }
577
577
  }
578
+ `, F = e`
579
+ query GGNomadTravelPolicies($limit: Int, $offset: Int) {
580
+ ggnomadTravelPolicies(pagination: { limit: $limit, offset: $offset }) {
581
+ id
582
+ name
583
+ isActive
584
+ costCenter
585
+ currency
586
+ maxBookingAmount
587
+ maxMonthlyPerTraveler
588
+ blockedDestinations
589
+ allowedTravelClasses
590
+ requireApprovalAlways
591
+ createdAt
592
+ }
593
+ }
594
+ `, I = e`
595
+ mutation CreateGGNomadTravelPolicy($input: CreateGgnomadTravelPolicyInput!) {
596
+ createGgnomadTravelPolicy(input: $input) {
597
+ id
598
+ name
599
+ isActive
600
+ costCenter
601
+ currency
602
+ maxBookingAmount
603
+ maxMonthlyPerTraveler
604
+ blockedDestinations
605
+ allowedTravelClasses
606
+ requireApprovalAlways
607
+ }
608
+ }
609
+ `;
610
+ e`
611
+ mutation UpdateGGNomadTravelPolicy($id: ID!, $input: UpdateGgnomadTravelPolicyInput!) {
612
+ updateGgnomadTravelPolicy(id: $id, input: $input) {
613
+ id
614
+ isActive
615
+ }
616
+ }
617
+ `;
618
+ var L = e`
619
+ mutation DeleteGGNomadTravelPolicy($id: ID!) {
620
+ deleteGgnomadTravelPolicy(id: $id)
621
+ }
622
+ `, R = e`
623
+ query GGNomadBookingApprovals($status: GgnomadApprovalStatus, $limit: Int, $offset: Int) {
624
+ ggnomadBookingApprovals(status: $status, pagination: { limit: $limit, offset: $offset }) {
625
+ id
626
+ bookingId
627
+ requestedBy
628
+ costCenter
629
+ reasons
630
+ status
631
+ reviewedBy
632
+ reviewedAt
633
+ reviewNote
634
+ createdAt
635
+ booking {
636
+ id
637
+ referenceCode
638
+ itemName
639
+ totalPrice
640
+ currency
641
+ status
642
+ paymentStatus
643
+ }
644
+ }
645
+ }
646
+ `, z = e`
647
+ mutation ApproveGGNomadBookingApproval($id: ID!, $note: String) {
648
+ approveGgnomadBookingApproval(id: $id, note: $note) {
649
+ id
650
+ status
651
+ reviewedBy
652
+ reviewedAt
653
+ }
654
+ }
655
+ `, B = e`
656
+ mutation RejectGGNomadBookingApproval($id: ID!, $reason: String!) {
657
+ rejectGgnomadBookingApproval(id: $id, reason: $reason) {
658
+ id
659
+ status
660
+ reviewedBy
661
+ reviewedAt
662
+ reviewNote
663
+ }
664
+ }
665
+ `, V = e`
666
+ query GGNomadSpendSummary($costCenter: String) {
667
+ ggnomadSpendSummary(costCenter: $costCenter) {
668
+ totalSpend
669
+ bookingCount
670
+ pendingApprovalCount
671
+ pendingApprovalAmount
672
+ byCostCenter
673
+ }
674
+ }
675
+ `, H = "\n __typename\n ... on GgnomadProperty {\n id\n name\n status\n pricePerNight\n currency\n providerId\n updatedAt\n }\n ... on GgnomadTour {\n id\n name\n status\n price\n currency\n providerId\n updatedAt\n }\n ... on GgnomadEvent {\n id\n name\n status\n price\n currency\n providerId\n updatedAt\n }\n ... on GgnomadActivity {\n id\n name\n status\n price\n currency\n providerId\n updatedAt\n }\n", U = e`
676
+ query GGNomadListingReviewQueue($limit: Int, $offset: Int) {
677
+ ggnomadListingReviewQueue(pagination: { limit: $limit, offset: $offset }) {
678
+ ${H}
679
+ }
680
+ }
681
+ `;
682
+ e`
683
+ mutation SubmitGGNomadListingForReview($listingType: GgnomadListingType!, $id: ID!) {
684
+ submitGgnomadListingForReview(listingType: $listingType, id: $id) {
685
+ ${H}
686
+ }
687
+ }
688
+ `;
689
+ var W = e`
690
+ mutation ApproveGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $note: String) {
691
+ approveGgnomadListing(listingType: $listingType, id: $id, note: $note) {
692
+ ${H}
693
+ }
694
+ }
695
+ `, G = e`
696
+ mutation RejectGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $reason: String!) {
697
+ rejectGgnomadListing(listingType: $listingType, id: $id, reason: $reason) {
698
+ ${H}
699
+ }
700
+ }
701
+ `;
702
+ e`
703
+ mutation PauseGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $reason: String) {
704
+ pauseGgnomadListing(listingType: $listingType, id: $id, reason: $reason) {
705
+ ${H}
706
+ }
707
+ }
708
+ `, e`
709
+ mutation ResumeGGNomadListing($listingType: GgnomadListingType!, $id: ID!) {
710
+ resumeGgnomadListing(listingType: $listingType, id: $id) {
711
+ ${H}
712
+ }
713
+ }
714
+ `, e`
715
+ mutation ArchiveGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $reason: String) {
716
+ archiveGgnomadListing(listingType: $listingType, id: $id, reason: $reason) {
717
+ ${H}
718
+ }
719
+ }
720
+ `;
721
+ var K = e`
722
+ query GGNomadBookingQueue($limit: Int, $offset: Int) {
723
+ ggnomadBookingQueue(pagination: { limit: $limit, offset: $offset }) {
724
+ id
725
+ referenceCode
726
+ bookingType
727
+ status
728
+ itemName
729
+ guestName
730
+ guests
731
+ checkIn
732
+ checkOut
733
+ eventDate
734
+ totalPrice
735
+ currency
736
+ createdAt
737
+ }
738
+ }
739
+ `, q = e`
740
+ mutation CheckInGGNomadBooking($id: ID!) {
741
+ checkInGgnomadBooking(id: $id) {
742
+ id
743
+ status
744
+ }
745
+ }
746
+ `, J = e`
747
+ mutation CompleteGGNomadBooking($id: ID!) {
748
+ completeGgnomadBooking(id: $id) {
749
+ id
750
+ status
751
+ }
752
+ }
753
+ `, Y = e`
754
+ mutation MarkGGNomadBookingNoShow($id: ID!, $reason: String) {
755
+ markGgnomadBookingNoShow(id: $id, reason: $reason) {
756
+ id
757
+ status
758
+ }
759
+ }
760
+ `, X = e`
761
+ query GGNomadAuditLog($entityType: String!, $entityId: String!, $limit: Int, $offset: Int) {
762
+ ggnomadAuditLog(
763
+ entityType: $entityType
764
+ entityId: $entityId
765
+ pagination: { limit: $limit, offset: $offset }
766
+ ) {
767
+ id
768
+ action
769
+ fromStatus
770
+ toStatus
771
+ reason
772
+ actorId
773
+ createdAt
774
+ }
775
+ }
578
776
  `;
579
777
  //#endregion
580
- export { E as ADD_GGNOMAD_TRIP_PLAN_ITEM_MUTATION, v as CANCEL_GGNOMAD_BOOKING_MUTATION, g as CREATE_GGNOMAD_BOOKING_MUTATION, A as CREATE_GGNOMAD_REVIEW_MUTATION, w as CREATE_GGNOMAD_TRIP_PLAN_MUTATION, d as GGNOMAD_ACTIVITIES_QUERY, f as GGNOMAD_ACTIVITY_QUERY, n as GGNOMAD_BOOKABLE_SAMPLE_QUERY, m as GGNOMAD_BOOKINGS_QUERY, l as GGNOMAD_EVENTS_QUERY, u as GGNOMAD_EVENT_QUERY, h as GGNOMAD_FAVORITES_QUERY, r as GGNOMAD_FAVORITE_TARGETS_QUERY, t as GGNOMAD_OVERVIEW_QUERY, a as GGNOMAD_PROPERTIES_QUERY, o as GGNOMAD_PROPERTY_QUERY, i as GGNOMAD_PROVIDERS_QUERY, k as GGNOMAD_REVIEWS_QUERY, O as GGNOMAD_REVIEW_SUMMARY_QUERY, y as GGNOMAD_TICKETS_QUERY, s as GGNOMAD_TOURS_QUERY, c as GGNOMAD_TOUR_QUERY, p as GGNOMAD_TRIPS_QUERY, S as GGNOMAD_TRIP_PLANS_QUERY, C as GGNOMAD_TRIP_PLAN_QUERY, b as ISSUE_GGNOMAD_TICKET_MUTATION, x as REDEEM_GGNOMAD_TICKET_MUTATION, D as REMOVE_GGNOMAD_TRIP_PLAN_ITEM_MUTATION, _ as TOGGLE_GGNOMAD_FAVORITE_MUTATION, P as UPDATE_GGNOMAD_ACTIVITY_MUTATION, N as UPDATE_GGNOMAD_EVENT_MUTATION, j as UPDATE_GGNOMAD_PROPERTY_MUTATION, M as UPDATE_GGNOMAD_TOUR_MUTATION, T as UPDATE_GGNOMAD_TRIP_PLAN_MUTATION };
778
+ export { E as ADD_GGNOMAD_TRIP_PLAN_ITEM_MUTATION, z as APPROVE_GGNOMAD_BOOKING_APPROVAL_MUTATION, W as APPROVE_GGNOMAD_LISTING_MUTATION, v as CANCEL_GGNOMAD_BOOKING_MUTATION, q as CHECK_IN_GGNOMAD_BOOKING_MUTATION, J as COMPLETE_GGNOMAD_BOOKING_MUTATION, g as CREATE_GGNOMAD_BOOKING_MUTATION, A as CREATE_GGNOMAD_REVIEW_MUTATION, I as CREATE_GGNOMAD_TRAVEL_POLICY_MUTATION, w as CREATE_GGNOMAD_TRIP_PLAN_MUTATION, L as DELETE_GGNOMAD_TRAVEL_POLICY_MUTATION, d as GGNOMAD_ACTIVITIES_QUERY, f as GGNOMAD_ACTIVITY_QUERY, X as GGNOMAD_AUDIT_LOG_QUERY, n as GGNOMAD_BOOKABLE_SAMPLE_QUERY, m as GGNOMAD_BOOKINGS_QUERY, R as GGNOMAD_BOOKING_APPROVALS_QUERY, K as GGNOMAD_BOOKING_QUEUE_QUERY, l as GGNOMAD_EVENTS_QUERY, u as GGNOMAD_EVENT_QUERY, h as GGNOMAD_FAVORITES_QUERY, r as GGNOMAD_FAVORITE_TARGETS_QUERY, U as GGNOMAD_LISTING_REVIEW_QUEUE_QUERY, t as GGNOMAD_OVERVIEW_QUERY, a as GGNOMAD_PROPERTIES_QUERY, o as GGNOMAD_PROPERTY_QUERY, i as GGNOMAD_PROVIDERS_QUERY, k as GGNOMAD_REVIEWS_QUERY, O as GGNOMAD_REVIEW_SUMMARY_QUERY, V as GGNOMAD_SPEND_SUMMARY_QUERY, y as GGNOMAD_TICKETS_QUERY, s as GGNOMAD_TOURS_QUERY, c as GGNOMAD_TOUR_QUERY, F as GGNOMAD_TRAVEL_POLICIES_QUERY, p as GGNOMAD_TRIPS_QUERY, S as GGNOMAD_TRIP_PLANS_QUERY, C as GGNOMAD_TRIP_PLAN_QUERY, b as ISSUE_GGNOMAD_TICKET_MUTATION, Y as MARK_GGNOMAD_BOOKING_NO_SHOW_MUTATION, x as REDEEM_GGNOMAD_TICKET_MUTATION, B as REJECT_GGNOMAD_BOOKING_APPROVAL_MUTATION, G as REJECT_GGNOMAD_LISTING_MUTATION, D as REMOVE_GGNOMAD_TRIP_PLAN_ITEM_MUTATION, _ as TOGGLE_GGNOMAD_FAVORITE_MUTATION, P as UPDATE_GGNOMAD_ACTIVITY_MUTATION, N as UPDATE_GGNOMAD_EVENT_MUTATION, j as UPDATE_GGNOMAD_PROPERTY_MUTATION, M as UPDATE_GGNOMAD_TOUR_MUTATION, T as UPDATE_GGNOMAD_TRIP_PLAN_MUTATION };
581
779
 
582
780
  //# sourceMappingURL=graphql.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.js","names":[],"sources":["../../src/ggnomad/graphql.ts"],"sourcesContent":["import { gql } from '@apollo/client/core';\n\nexport const GGNOMAD_OVERVIEW_QUERY = gql`\n query GGNomadOverview {\n ggnomadOverviewStats {\n users\n listings\n bookings\n monthlyRevenue\n }\n ggnomadAnalytics {\n totalRevenue\n totalBookings\n totalUsers\n conversionRate\n revenueByCategory\n }\n }\n`;\n\n/**\n * One bookable item of each type (properties are priced per night, the rest\n * carry a flat price). Used to seed the Bookings \"create demo booking\" action\n * with a REAL listing id so the mutation passes the backend's\n * assertTargetInWorkspace check instead of failing on a synthetic id.\n */\nexport const GGNOMAD_BOOKABLE_SAMPLE_QUERY = gql`\n query GGNomadBookableSample {\n ggnomadProperties(pagination: { limit: 1, offset: 0 }) {\n id\n name\n pricePerNight\n currency\n }\n ggnomadTours(pagination: { limit: 1, offset: 0 }) {\n id\n name\n price\n currency\n }\n ggnomadEvents(pagination: { limit: 1, offset: 0 }) {\n id\n name\n price\n currency\n }\n ggnomadActivities(pagination: { limit: 1, offset: 0 }) {\n id\n name\n price\n currency\n }\n }\n`;\n\n/**\n * id + name for every favouritable listing type, used to (a) resolve the real\n * entity name for a saved favorite (which the backend only exposes as\n * targetType + targetId) and (b) seed the \"toggle demo favorite\" action with a\n * real target id.\n */\nexport const GGNOMAD_FAVORITE_TARGETS_QUERY = gql`\n query GGNomadFavoriteTargets {\n ggnomadProperties(pagination: { limit: 100, offset: 0 }) {\n id\n name\n }\n ggnomadTours(pagination: { limit: 100, offset: 0 }) {\n id\n name\n }\n ggnomadEvents(pagination: { limit: 100, offset: 0 }) {\n id\n name\n }\n ggnomadActivities(pagination: { limit: 100, offset: 0 }) {\n id\n name\n }\n }\n`;\n\nexport const GGNOMAD_PROVIDERS_QUERY = gql`\n query GGNomadProviders($limit: Int, $offset: Int) {\n ggnomadProviders(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n type\n status\n listingCount\n totalRevenue\n rating\n reviewCount\n contactEmail\n website\n }\n }\n`;\n\nexport const GGNOMAD_PROPERTIES_QUERY = gql`\n query GGNomadProperties($limit: Int, $offset: Int) {\n ggnomadProperties(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n type\n status\n description\n pricePerNight\n currency\n rating\n reviewCount\n maxGuests\n amenities\n images\n providerId\n }\n }\n`;\n\nexport const GGNOMAD_PROPERTY_QUERY = gql`\n query GGNomadProperty($id: ID!) {\n ggnomadProperty(id: $id) {\n id\n name\n type\n status\n description\n address\n pricePerNight\n currency\n rating\n reviewCount\n bedrooms\n bathrooms\n maxGuests\n checkInTime\n checkOutTime\n amenities\n images\n provider {\n id\n name\n type\n rating\n }\n }\n }\n`;\n\n// Query to get property details for booking - ensures id is included\nexport const GGNOMAD_PROPERTY_FOR_BOOKING_QUERY = gql`\n query GGNomadPropertyForBooking($id: ID!) {\n ggnomadProperty(id: $id) {\n id\n name\n pricePerNight\n currency\n }\n }\n`;\n\nexport const GGNOMAD_TOURS_QUERY = gql`\n query GGNomadTours($limit: Int, $offset: Int) {\n ggnomadTours(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n description\n type\n status\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n highlights\n images\n }\n }\n`;\n\nexport const GGNOMAD_TOUR_QUERY = gql`\n query GGNomadTour($id: ID!) {\n ggnomadTour(id: $id) {\n id\n name\n description\n type\n status\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n highlights\n images\n languages\n guideName\n provider {\n id\n name\n }\n }\n }\n`;\n\nexport const GGNOMAD_EVENTS_QUERY = gql`\n query GGNomadEvents($limit: Int, $offset: Int) {\n ggnomadEvents(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n description\n category\n status\n startsAt\n price\n currency\n rating\n reviewCount\n performers\n images\n }\n }\n`;\n\nexport const GGNOMAD_EVENT_QUERY = gql`\n query GGNomadEvent($id: ID!) {\n ggnomadEvent(id: $id) {\n id\n name\n description\n category\n status\n startsAt\n endsAt\n venue\n price\n currency\n rating\n reviewCount\n performers\n images\n provider {\n id\n name\n }\n }\n }\n`;\n\nexport const GGNOMAD_ACTIVITIES_QUERY = gql`\n query GGNomadActivities($limit: Int, $offset: Int) {\n ggnomadActivities(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n description\n category\n status\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n maxParticipants\n includes\n requirements\n images\n }\n }\n`;\n\nexport const GGNOMAD_ACTIVITY_QUERY = gql`\n query GGNomadActivity($id: ID!) {\n ggnomadActivity(id: $id) {\n id\n name\n description\n category\n status\n location\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n maxParticipants\n includes\n requirements\n safetyInfo\n images\n provider {\n id\n name\n }\n }\n }\n`;\n\nexport const GGNOMAD_TRIPS_QUERY = gql`\n query GGNomadTrips($limit: Int, $offset: Int) {\n ggnomadTrips(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n transportMode\n status\n origin\n destination\n departureAt\n arrivalAt\n isRoundTrip\n carrier\n class\n price\n currency\n passengers\n ecoFriendly\n }\n }\n`;\n\nexport const GGNOMAD_BOOKINGS_QUERY = gql`\n query GGNomadBookings($limit: Int, $offset: Int) {\n ggnomadBookings(pagination: { limit: $limit, offset: $offset }) {\n id\n referenceCode\n bookingType\n status\n itemId\n itemName\n guestName\n guestEmail\n guestPhone\n guests\n checkIn\n checkOut\n eventDate\n totalPrice\n currency\n paymentStatus\n paymentMethod\n specialRequests\n createdAt\n }\n }\n`;\n\nexport const GGNOMAD_FAVORITES_QUERY = gql`\n query GGNomadFavorites {\n ggnomadFavorites\n }\n`;\n\nexport const CREATE_GGNOMAD_BOOKING_MUTATION = gql`\n mutation CreateGGNomadBooking($input: CreateGgnomadBookingInput!) {\n createGgnomadBooking(input: $input) {\n id\n referenceCode\n bookingType\n status\n itemId\n itemName\n guestName\n totalPrice\n currency\n createdAt\n }\n }\n`;\n\nexport const TOGGLE_GGNOMAD_FAVORITE_MUTATION = gql`\n mutation ToggleGGNomadFavorite($input: ToggleGgnomadFavoriteInput!) {\n toggleGgnomadFavorite(input: $input)\n }\n`;\n\nexport const CANCEL_GGNOMAD_BOOKING_MUTATION = gql`\n mutation CancelGGNomadBooking($id: ID!, $reason: String) {\n cancelGgnomadBooking(id: $id, reason: $reason) {\n id\n status\n }\n }\n`;\n\n// Mobile tickets / QR-code redemption (BOFF-4362)\nexport const GGNOMAD_TICKETS_QUERY = gql`\n query GGNomadTickets($bookingId: String) {\n ggnomadTickets(bookingId: $bookingId) {\n id\n bookingId\n ticketCode\n qrCodeDataUrl\n status\n issuedAt\n redeemedAt\n redeemedBy\n revokedAt\n revokedReason\n }\n }\n`;\n\nexport const ISSUE_GGNOMAD_TICKET_MUTATION = gql`\n mutation IssueGGNomadTicket($bookingId: ID!) {\n issueGgnomadTicket(bookingId: $bookingId) {\n id\n bookingId\n ticketCode\n qrCodeDataUrl\n status\n issuedAt\n }\n }\n`;\n\nexport const REDEEM_GGNOMAD_TICKET_MUTATION = gql`\n mutation RedeemGGNomadTicket($token: String!) {\n redeemGgnomadTicket(token: $token) {\n id\n bookingId\n ticketCode\n status\n redeemedAt\n redeemedBy\n }\n }\n`;\n\nexport const REVOKE_GGNOMAD_TICKET_MUTATION = gql`\n mutation RevokeGGNomadTicket($id: ID!, $reason: String) {\n revokeGgnomadTicket(id: $id, reason: $reason) {\n id\n status\n revokedAt\n revokedReason\n }\n }\n`;\n\n// Trip Plan Queries\nexport const GGNOMAD_TRIP_PLANS_QUERY = gql`\n query GGNomadTripPlans($limit: Int, $offset: Int) {\n ggnomadTripPlans(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n createdAt\n }\n }\n`;\n\nexport const GGNOMAD_TRIP_PLAN_QUERY = gql`\n query GGNomadTripPlan($id: ID!) {\n ggnomadTripPlan(id: $id) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n items {\n id\n itemType\n itemId\n itemName\n day\n scheduledAt\n price\n currency\n notes\n }\n createdAt\n updatedAt\n }\n }\n`;\n\n// Trip Plan Mutations\nexport const CREATE_GGNOMAD_TRIP_PLAN_MUTATION = gql`\n mutation CreateGGNomadTripPlan($input: CreateGgnomadTripPlanInput!) {\n createGgnomadTripPlan(input: $input) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n createdAt\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_TRIP_PLAN_MUTATION = gql`\n mutation UpdateGGNomadTripPlan($id: ID!, $input: UpdateGgnomadTripPlanInput!) {\n updateGgnomadTripPlan(id: $id, input: $input) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n updatedAt\n }\n }\n`;\n\nexport const DELETE_GGNOMAD_TRIP_PLAN_MUTATION = gql`\n mutation DeleteGGNomadTripPlan($id: ID!) {\n deleteGgnomadTripPlan(id: $id)\n }\n`;\n\nexport const ADD_GGNOMAD_TRIP_PLAN_ITEM_MUTATION = gql`\n mutation AddGGNomadTripPlanItem($tripPlanId: ID!, $input: AddGgnomadTripPlanItemInput!) {\n addGgnomadTripPlanItem(tripPlanId: $tripPlanId, input: $input) {\n id\n itemType\n itemId\n itemName\n day\n scheduledAt\n price\n currency\n notes\n }\n }\n`;\n\nexport const REMOVE_GGNOMAD_TRIP_PLAN_ITEM_MUTATION = gql`\n mutation RemoveGGNomadTripPlanItem($id: ID!) {\n removeGgnomadTripPlanItem(id: $id)\n }\n`;\n\n// Review Queries\nexport const GGNOMAD_REVIEW_SUMMARY_QUERY = gql`\n query GGNomadReviewSummary($targetType: GgnomadBookingType!, $targetId: String!) {\n ggnomadReviewSummary(targetType: $targetType, targetId: $targetId) {\n average\n count\n distribution\n }\n }\n`;\n\nexport const GGNOMAD_REVIEWS_QUERY = gql`\n query GGNomadReviews(\n $targetType: GgnomadBookingType!\n $targetId: String!\n $limit: Int\n $offset: Int\n ) {\n ggnomadReviews(\n targetType: $targetType\n targetId: $targetId\n pagination: { limit: $limit, offset: $offset }\n ) {\n id\n rating\n title\n content\n images\n isVerified\n helpfulCount\n response\n respondedAt\n createdAt\n }\n }\n`;\n\n// Review Mutations\nexport const CREATE_GGNOMAD_REVIEW_MUTATION = gql`\n mutation CreateGGNomadReview($input: CreateGgnomadReviewInput!) {\n createGgnomadReview(input: $input) {\n id\n rating\n title\n content\n }\n }\n`;\n\nexport const RESPOND_GGNOMAD_REVIEW_MUTATION = gql`\n mutation RespondGGNomadReview($id: ID!, $response: String!) {\n respondGgnomadReview(id: $id, response: $response) {\n id\n response\n respondedAt\n }\n }\n`;\n\n// Listing Edit Mutations\nexport const UPDATE_GGNOMAD_PROPERTY_MUTATION = gql`\n mutation UpdateGGNomadProperty($id: ID!, $input: UpdateGgnomadPropertyInput!) {\n updateGgnomadProperty(id: $id, input: $input) {\n id\n name\n description\n pricePerNight\n status\n images\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_TOUR_MUTATION = gql`\n mutation UpdateGGNomadTour($id: ID!, $input: UpdateGgnomadTourInput!) {\n updateGgnomadTour(id: $id, input: $input) {\n id\n name\n description\n price\n status\n images\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_EVENT_MUTATION = gql`\n mutation UpdateGGNomadEvent($id: ID!, $input: UpdateGgnomadEventInput!) {\n updateGgnomadEvent(id: $id, input: $input) {\n id\n name\n description\n price\n status\n images\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_ACTIVITY_MUTATION = gql`\n mutation UpdateGGNomadActivity($id: ID!, $input: UpdateGgnomadActivityInput!) {\n updateGgnomadActivity(id: $id, input: $input) {\n id\n name\n description\n price\n status\n images\n }\n }\n`;\n"],"mappings":";;AAEA,IAAa,IAAyB,CAAG;;;;;;;;;;;;;;;;GAwB5B,IAAgC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCnC,IAAiC,CAAG;;;;;;;;;;;;;;;;;;;GAqBpC,IAA0B,CAAG;;;;;;;;;;;;;;;GAiB7B,IAA2B,CAAG;;;;;;;;;;;;;;;;;;GAoB9B,IAAyB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BS,CAAG;;;;;;;;;;AAWrD,IAAa,IAAsB,CAAG;;;;;;;;;;;;;;;;;;GAoBzB,IAAqB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;GA0BxB,IAAuB,CAAG;;;;;;;;;;;;;;;;;GAmB1B,IAAsB,CAAG;;;;;;;;;;;;;;;;;;;;;;;GAyBzB,IAA2B,CAAG;;;;;;;;;;;;;;;;;;;;GAsB9B,IAAyB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;GA4B5B,IAAsB,CAAG;;;;;;;;;;;;;;;;;;;;GAsBzB,IAAyB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;GA0B5B,IAA0B,CAAG;;;;GAM7B,IAAkC,CAAG;;;;;;;;;;;;;;;GAiBrC,IAAmC,CAAG;;;;GAMtC,IAAkC,CAAG;;;;;;;GAUrC,IAAwB,CAAG;;;;;;;;;;;;;;;GAiB3B,IAAgC,CAAG;;;;;;;;;;;GAanC,IAAiC,CAAG;;;;;;;;;;;;AAaH,CAAG;;;;;;;;;;AAYjD,IAAa,IAA2B,CAAG;;;;;;;;;;;;;;;GAiB9B,IAA0B,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8B7B,IAAoC,CAAG;;;;;;;;;;;;;;;GAiBvC,IAAoC,CAAG;;;;;;;;;;;;;;;;AAiBH,CAAG;;;;;AAMpD,IAAa,IAAsC,CAAG;;;;;;;;;;;;;;GAgBzC,IAAyC,CAAG;;;;GAO5C,IAA+B,CAAG;;;;;;;;GAUlC,IAAwB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;GA2B3B,IAAiC,CAAG;;;;;;;;;;AAWF,CAAG;;;;;;;;;AAWlD,IAAa,IAAmC,CAAG;;;;;;;;;;;GAatC,IAA+B,CAAG;;;;;;;;;;;GAalC,IAAgC,CAAG;;;;;;;;;;;GAanC,IAAmC,CAAG"}
1
+ {"version":3,"file":"graphql.js","names":[],"sources":["../../src/ggnomad/graphql.ts"],"sourcesContent":["import { gql } from '@apollo/client/core';\n\nexport const GGNOMAD_OVERVIEW_QUERY = gql`\n query GGNomadOverview {\n ggnomadOverviewStats {\n users\n listings\n bookings\n monthlyRevenue\n }\n ggnomadAnalytics {\n totalRevenue\n totalBookings\n totalUsers\n conversionRate\n revenueByCategory\n }\n }\n`;\n\n/**\n * One bookable item of each type (properties are priced per night, the rest\n * carry a flat price). Used to seed the Bookings \"create demo booking\" action\n * with a REAL listing id so the mutation passes the backend's\n * assertTargetInWorkspace check instead of failing on a synthetic id.\n */\nexport const GGNOMAD_BOOKABLE_SAMPLE_QUERY = gql`\n query GGNomadBookableSample {\n ggnomadProperties(pagination: { limit: 1, offset: 0 }) {\n id\n name\n pricePerNight\n currency\n }\n ggnomadTours(pagination: { limit: 1, offset: 0 }) {\n id\n name\n price\n currency\n }\n ggnomadEvents(pagination: { limit: 1, offset: 0 }) {\n id\n name\n price\n currency\n }\n ggnomadActivities(pagination: { limit: 1, offset: 0 }) {\n id\n name\n price\n currency\n }\n }\n`;\n\n/**\n * id + name for every favouritable listing type, used to (a) resolve the real\n * entity name for a saved favorite (which the backend only exposes as\n * targetType + targetId) and (b) seed the \"toggle demo favorite\" action with a\n * real target id.\n */\nexport const GGNOMAD_FAVORITE_TARGETS_QUERY = gql`\n query GGNomadFavoriteTargets {\n ggnomadProperties(pagination: { limit: 100, offset: 0 }) {\n id\n name\n }\n ggnomadTours(pagination: { limit: 100, offset: 0 }) {\n id\n name\n }\n ggnomadEvents(pagination: { limit: 100, offset: 0 }) {\n id\n name\n }\n ggnomadActivities(pagination: { limit: 100, offset: 0 }) {\n id\n name\n }\n }\n`;\n\nexport const GGNOMAD_PROVIDERS_QUERY = gql`\n query GGNomadProviders($limit: Int, $offset: Int) {\n ggnomadProviders(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n type\n status\n listingCount\n totalRevenue\n rating\n reviewCount\n contactEmail\n website\n }\n }\n`;\n\nexport const GGNOMAD_PROPERTIES_QUERY = gql`\n query GGNomadProperties($limit: Int, $offset: Int) {\n ggnomadProperties(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n type\n status\n description\n pricePerNight\n currency\n rating\n reviewCount\n maxGuests\n amenities\n images\n providerId\n }\n }\n`;\n\nexport const GGNOMAD_PROPERTY_QUERY = gql`\n query GGNomadProperty($id: ID!) {\n ggnomadProperty(id: $id) {\n id\n name\n type\n status\n description\n address\n pricePerNight\n currency\n rating\n reviewCount\n bedrooms\n bathrooms\n maxGuests\n checkInTime\n checkOutTime\n amenities\n images\n provider {\n id\n name\n type\n rating\n }\n }\n }\n`;\n\n// Query to get property details for booking - ensures id is included\nexport const GGNOMAD_PROPERTY_FOR_BOOKING_QUERY = gql`\n query GGNomadPropertyForBooking($id: ID!) {\n ggnomadProperty(id: $id) {\n id\n name\n pricePerNight\n currency\n }\n }\n`;\n\nexport const GGNOMAD_TOURS_QUERY = gql`\n query GGNomadTours($limit: Int, $offset: Int) {\n ggnomadTours(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n description\n type\n status\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n highlights\n images\n }\n }\n`;\n\nexport const GGNOMAD_TOUR_QUERY = gql`\n query GGNomadTour($id: ID!) {\n ggnomadTour(id: $id) {\n id\n name\n description\n type\n status\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n highlights\n images\n languages\n guideName\n provider {\n id\n name\n }\n }\n }\n`;\n\nexport const GGNOMAD_EVENTS_QUERY = gql`\n query GGNomadEvents($limit: Int, $offset: Int) {\n ggnomadEvents(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n description\n category\n status\n startsAt\n price\n currency\n rating\n reviewCount\n performers\n images\n }\n }\n`;\n\nexport const GGNOMAD_EVENT_QUERY = gql`\n query GGNomadEvent($id: ID!) {\n ggnomadEvent(id: $id) {\n id\n name\n description\n category\n status\n startsAt\n endsAt\n venue\n price\n currency\n rating\n reviewCount\n performers\n images\n provider {\n id\n name\n }\n }\n }\n`;\n\nexport const GGNOMAD_ACTIVITIES_QUERY = gql`\n query GGNomadActivities($limit: Int, $offset: Int) {\n ggnomadActivities(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n description\n category\n status\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n maxParticipants\n includes\n requirements\n images\n }\n }\n`;\n\nexport const GGNOMAD_ACTIVITY_QUERY = gql`\n query GGNomadActivity($id: ID!) {\n ggnomadActivity(id: $id) {\n id\n name\n description\n category\n status\n location\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n maxParticipants\n includes\n requirements\n safetyInfo\n images\n provider {\n id\n name\n }\n }\n }\n`;\n\nexport const GGNOMAD_TRIPS_QUERY = gql`\n query GGNomadTrips($limit: Int, $offset: Int) {\n ggnomadTrips(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n transportMode\n status\n origin\n destination\n departureAt\n arrivalAt\n isRoundTrip\n carrier\n class\n price\n currency\n passengers\n ecoFriendly\n }\n }\n`;\n\nexport const GGNOMAD_BOOKINGS_QUERY = gql`\n query GGNomadBookings($limit: Int, $offset: Int) {\n ggnomadBookings(pagination: { limit: $limit, offset: $offset }) {\n id\n referenceCode\n bookingType\n status\n itemId\n itemName\n guestName\n guestEmail\n guestPhone\n guests\n checkIn\n checkOut\n eventDate\n totalPrice\n currency\n paymentStatus\n paymentMethod\n specialRequests\n createdAt\n }\n }\n`;\n\nexport const GGNOMAD_FAVORITES_QUERY = gql`\n query GGNomadFavorites {\n ggnomadFavorites\n }\n`;\n\nexport const CREATE_GGNOMAD_BOOKING_MUTATION = gql`\n mutation CreateGGNomadBooking($input: CreateGgnomadBookingInput!) {\n createGgnomadBooking(input: $input) {\n id\n referenceCode\n bookingType\n status\n itemId\n itemName\n guestName\n totalPrice\n currency\n createdAt\n }\n }\n`;\n\nexport const TOGGLE_GGNOMAD_FAVORITE_MUTATION = gql`\n mutation ToggleGGNomadFavorite($input: ToggleGgnomadFavoriteInput!) {\n toggleGgnomadFavorite(input: $input)\n }\n`;\n\nexport const CANCEL_GGNOMAD_BOOKING_MUTATION = gql`\n mutation CancelGGNomadBooking($id: ID!, $reason: String) {\n cancelGgnomadBooking(id: $id, reason: $reason) {\n id\n status\n }\n }\n`;\n\n// Mobile tickets / QR-code redemption (BOFF-4362)\nexport const GGNOMAD_TICKETS_QUERY = gql`\n query GGNomadTickets($bookingId: String) {\n ggnomadTickets(bookingId: $bookingId) {\n id\n bookingId\n ticketCode\n qrCodeDataUrl\n status\n issuedAt\n redeemedAt\n redeemedBy\n revokedAt\n revokedReason\n }\n }\n`;\n\nexport const ISSUE_GGNOMAD_TICKET_MUTATION = gql`\n mutation IssueGGNomadTicket($bookingId: ID!) {\n issueGgnomadTicket(bookingId: $bookingId) {\n id\n bookingId\n ticketCode\n qrCodeDataUrl\n status\n issuedAt\n }\n }\n`;\n\nexport const REDEEM_GGNOMAD_TICKET_MUTATION = gql`\n mutation RedeemGGNomadTicket($token: String!) {\n redeemGgnomadTicket(token: $token) {\n id\n bookingId\n ticketCode\n status\n redeemedAt\n redeemedBy\n }\n }\n`;\n\nexport const REVOKE_GGNOMAD_TICKET_MUTATION = gql`\n mutation RevokeGGNomadTicket($id: ID!, $reason: String) {\n revokeGgnomadTicket(id: $id, reason: $reason) {\n id\n status\n revokedAt\n revokedReason\n }\n }\n`;\n\n// Trip Plan Queries\nexport const GGNOMAD_TRIP_PLANS_QUERY = gql`\n query GGNomadTripPlans($limit: Int, $offset: Int) {\n ggnomadTripPlans(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n createdAt\n }\n }\n`;\n\nexport const GGNOMAD_TRIP_PLAN_QUERY = gql`\n query GGNomadTripPlan($id: ID!) {\n ggnomadTripPlan(id: $id) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n items {\n id\n itemType\n itemId\n itemName\n day\n scheduledAt\n price\n currency\n notes\n }\n createdAt\n updatedAt\n }\n }\n`;\n\n// Trip Plan Mutations\nexport const CREATE_GGNOMAD_TRIP_PLAN_MUTATION = gql`\n mutation CreateGGNomadTripPlan($input: CreateGgnomadTripPlanInput!) {\n createGgnomadTripPlan(input: $input) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n createdAt\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_TRIP_PLAN_MUTATION = gql`\n mutation UpdateGGNomadTripPlan($id: ID!, $input: UpdateGgnomadTripPlanInput!) {\n updateGgnomadTripPlan(id: $id, input: $input) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n updatedAt\n }\n }\n`;\n\nexport const DELETE_GGNOMAD_TRIP_PLAN_MUTATION = gql`\n mutation DeleteGGNomadTripPlan($id: ID!) {\n deleteGgnomadTripPlan(id: $id)\n }\n`;\n\nexport const ADD_GGNOMAD_TRIP_PLAN_ITEM_MUTATION = gql`\n mutation AddGGNomadTripPlanItem($tripPlanId: ID!, $input: AddGgnomadTripPlanItemInput!) {\n addGgnomadTripPlanItem(tripPlanId: $tripPlanId, input: $input) {\n id\n itemType\n itemId\n itemName\n day\n scheduledAt\n price\n currency\n notes\n }\n }\n`;\n\nexport const REMOVE_GGNOMAD_TRIP_PLAN_ITEM_MUTATION = gql`\n mutation RemoveGGNomadTripPlanItem($id: ID!) {\n removeGgnomadTripPlanItem(id: $id)\n }\n`;\n\n// Review Queries\nexport const GGNOMAD_REVIEW_SUMMARY_QUERY = gql`\n query GGNomadReviewSummary($targetType: GgnomadBookingType!, $targetId: String!) {\n ggnomadReviewSummary(targetType: $targetType, targetId: $targetId) {\n average\n count\n distribution\n }\n }\n`;\n\nexport const GGNOMAD_REVIEWS_QUERY = gql`\n query GGNomadReviews(\n $targetType: GgnomadBookingType!\n $targetId: String!\n $limit: Int\n $offset: Int\n ) {\n ggnomadReviews(\n targetType: $targetType\n targetId: $targetId\n pagination: { limit: $limit, offset: $offset }\n ) {\n id\n rating\n title\n content\n images\n isVerified\n helpfulCount\n response\n respondedAt\n createdAt\n }\n }\n`;\n\n// Review Mutations\nexport const CREATE_GGNOMAD_REVIEW_MUTATION = gql`\n mutation CreateGGNomadReview($input: CreateGgnomadReviewInput!) {\n createGgnomadReview(input: $input) {\n id\n rating\n title\n content\n }\n }\n`;\n\nexport const RESPOND_GGNOMAD_REVIEW_MUTATION = gql`\n mutation RespondGGNomadReview($id: ID!, $response: String!) {\n respondGgnomadReview(id: $id, response: $response) {\n id\n response\n respondedAt\n }\n }\n`;\n\n// Listing Edit Mutations\nexport const UPDATE_GGNOMAD_PROPERTY_MUTATION = gql`\n mutation UpdateGGNomadProperty($id: ID!, $input: UpdateGgnomadPropertyInput!) {\n updateGgnomadProperty(id: $id, input: $input) {\n id\n name\n description\n pricePerNight\n status\n images\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_TOUR_MUTATION = gql`\n mutation UpdateGGNomadTour($id: ID!, $input: UpdateGgnomadTourInput!) {\n updateGgnomadTour(id: $id, input: $input) {\n id\n name\n description\n price\n status\n images\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_EVENT_MUTATION = gql`\n mutation UpdateGGNomadEvent($id: ID!, $input: UpdateGgnomadEventInput!) {\n updateGgnomadEvent(id: $id, input: $input) {\n id\n name\n description\n price\n status\n images\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_ACTIVITY_MUTATION = gql`\n mutation UpdateGGNomadActivity($id: ID!, $input: UpdateGgnomadActivityInput!) {\n updateGgnomadActivity(id: $id, input: $input) {\n id\n name\n description\n price\n status\n images\n }\n }\n`;\n\n// Corporate travel management — policy, budgets, approvals (BOFF-4365)\nexport const GGNOMAD_TRAVEL_POLICIES_QUERY = gql`\n query GGNomadTravelPolicies($limit: Int, $offset: Int) {\n ggnomadTravelPolicies(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n isActive\n costCenter\n currency\n maxBookingAmount\n maxMonthlyPerTraveler\n blockedDestinations\n allowedTravelClasses\n requireApprovalAlways\n createdAt\n }\n }\n`;\n\nexport const CREATE_GGNOMAD_TRAVEL_POLICY_MUTATION = gql`\n mutation CreateGGNomadTravelPolicy($input: CreateGgnomadTravelPolicyInput!) {\n createGgnomadTravelPolicy(input: $input) {\n id\n name\n isActive\n costCenter\n currency\n maxBookingAmount\n maxMonthlyPerTraveler\n blockedDestinations\n allowedTravelClasses\n requireApprovalAlways\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_TRAVEL_POLICY_MUTATION = gql`\n mutation UpdateGGNomadTravelPolicy($id: ID!, $input: UpdateGgnomadTravelPolicyInput!) {\n updateGgnomadTravelPolicy(id: $id, input: $input) {\n id\n isActive\n }\n }\n`;\n\nexport const DELETE_GGNOMAD_TRAVEL_POLICY_MUTATION = gql`\n mutation DeleteGGNomadTravelPolicy($id: ID!) {\n deleteGgnomadTravelPolicy(id: $id)\n }\n`;\n\nexport const GGNOMAD_BOOKING_APPROVALS_QUERY = gql`\n query GGNomadBookingApprovals($status: GgnomadApprovalStatus, $limit: Int, $offset: Int) {\n ggnomadBookingApprovals(status: $status, pagination: { limit: $limit, offset: $offset }) {\n id\n bookingId\n requestedBy\n costCenter\n reasons\n status\n reviewedBy\n reviewedAt\n reviewNote\n createdAt\n booking {\n id\n referenceCode\n itemName\n totalPrice\n currency\n status\n paymentStatus\n }\n }\n }\n`;\n\nexport const APPROVE_GGNOMAD_BOOKING_APPROVAL_MUTATION = gql`\n mutation ApproveGGNomadBookingApproval($id: ID!, $note: String) {\n approveGgnomadBookingApproval(id: $id, note: $note) {\n id\n status\n reviewedBy\n reviewedAt\n }\n }\n`;\n\nexport const REJECT_GGNOMAD_BOOKING_APPROVAL_MUTATION = gql`\n mutation RejectGGNomadBookingApproval($id: ID!, $reason: String!) {\n rejectGgnomadBookingApproval(id: $id, reason: $reason) {\n id\n status\n reviewedBy\n reviewedAt\n reviewNote\n }\n }\n`;\n\nexport const GGNOMAD_SPEND_SUMMARY_QUERY = gql`\n query GGNomadSpendSummary($costCenter: String) {\n ggnomadSpendSummary(costCenter: $costCenter) {\n totalSpend\n bookingCount\n pendingApprovalCount\n pendingApprovalAmount\n byCostCenter\n }\n }\n`;\n\n// ─── BOFF-4388 — listing verification + booking lifecycle operations queue ─\n\nconst LISTING_QUEUE_FIELDS = `\n __typename\n ... on GgnomadProperty {\n id\n name\n status\n pricePerNight\n currency\n providerId\n updatedAt\n }\n ... on GgnomadTour {\n id\n name\n status\n price\n currency\n providerId\n updatedAt\n }\n ... on GgnomadEvent {\n id\n name\n status\n price\n currency\n providerId\n updatedAt\n }\n ... on GgnomadActivity {\n id\n name\n status\n price\n currency\n providerId\n updatedAt\n }\n`;\n\nexport const GGNOMAD_LISTING_REVIEW_QUEUE_QUERY = gql`\n query GGNomadListingReviewQueue($limit: Int, $offset: Int) {\n ggnomadListingReviewQueue(pagination: { limit: $limit, offset: $offset }) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const SUBMIT_GGNOMAD_LISTING_FOR_REVIEW_MUTATION = gql`\n mutation SubmitGGNomadListingForReview($listingType: GgnomadListingType!, $id: ID!) {\n submitGgnomadListingForReview(listingType: $listingType, id: $id) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const APPROVE_GGNOMAD_LISTING_MUTATION = gql`\n mutation ApproveGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $note: String) {\n approveGgnomadListing(listingType: $listingType, id: $id, note: $note) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const REJECT_GGNOMAD_LISTING_MUTATION = gql`\n mutation RejectGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $reason: String!) {\n rejectGgnomadListing(listingType: $listingType, id: $id, reason: $reason) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const PAUSE_GGNOMAD_LISTING_MUTATION = gql`\n mutation PauseGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $reason: String) {\n pauseGgnomadListing(listingType: $listingType, id: $id, reason: $reason) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const RESUME_GGNOMAD_LISTING_MUTATION = gql`\n mutation ResumeGGNomadListing($listingType: GgnomadListingType!, $id: ID!) {\n resumeGgnomadListing(listingType: $listingType, id: $id) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const ARCHIVE_GGNOMAD_LISTING_MUTATION = gql`\n mutation ArchiveGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $reason: String) {\n archiveGgnomadListing(listingType: $listingType, id: $id, reason: $reason) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const GGNOMAD_BOOKING_QUEUE_QUERY = gql`\n query GGNomadBookingQueue($limit: Int, $offset: Int) {\n ggnomadBookingQueue(pagination: { limit: $limit, offset: $offset }) {\n id\n referenceCode\n bookingType\n status\n itemName\n guestName\n guests\n checkIn\n checkOut\n eventDate\n totalPrice\n currency\n createdAt\n }\n }\n`;\n\nexport const CHECK_IN_GGNOMAD_BOOKING_MUTATION = gql`\n mutation CheckInGGNomadBooking($id: ID!) {\n checkInGgnomadBooking(id: $id) {\n id\n status\n }\n }\n`;\n\nexport const COMPLETE_GGNOMAD_BOOKING_MUTATION = gql`\n mutation CompleteGGNomadBooking($id: ID!) {\n completeGgnomadBooking(id: $id) {\n id\n status\n }\n }\n`;\n\nexport const MARK_GGNOMAD_BOOKING_NO_SHOW_MUTATION = gql`\n mutation MarkGGNomadBookingNoShow($id: ID!, $reason: String) {\n markGgnomadBookingNoShow(id: $id, reason: $reason) {\n id\n status\n }\n }\n`;\n\nexport const GGNOMAD_AUDIT_LOG_QUERY = gql`\n query GGNomadAuditLog($entityType: String!, $entityId: String!, $limit: Int, $offset: Int) {\n ggnomadAuditLog(\n entityType: $entityType\n entityId: $entityId\n pagination: { limit: $limit, offset: $offset }\n ) {\n id\n action\n fromStatus\n toStatus\n reason\n actorId\n createdAt\n }\n }\n`;\n"],"mappings":";;AAEA,IAAa,IAAyB,CAAG;;;;;;;;;;;;;;;;GAwB5B,IAAgC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCnC,IAAiC,CAAG;;;;;;;;;;;;;;;;;;;GAqBpC,IAA0B,CAAG;;;;;;;;;;;;;;;GAiB7B,IAA2B,CAAG;;;;;;;;;;;;;;;;;;GAoB9B,IAAyB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BS,CAAG;;;;;;;;;;AAWrD,IAAa,IAAsB,CAAG;;;;;;;;;;;;;;;;;;GAoBzB,IAAqB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;GA0BxB,IAAuB,CAAG;;;;;;;;;;;;;;;;;GAmB1B,IAAsB,CAAG;;;;;;;;;;;;;;;;;;;;;;;GAyBzB,IAA2B,CAAG;;;;;;;;;;;;;;;;;;;;GAsB9B,IAAyB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;GA4B5B,IAAsB,CAAG;;;;;;;;;;;;;;;;;;;;GAsBzB,IAAyB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;GA0B5B,IAA0B,CAAG;;;;GAM7B,IAAkC,CAAG;;;;;;;;;;;;;;;GAiBrC,IAAmC,CAAG;;;;GAMtC,IAAkC,CAAG;;;;;;;GAUrC,IAAwB,CAAG;;;;;;;;;;;;;;;GAiB3B,IAAgC,CAAG;;;;;;;;;;;GAanC,IAAiC,CAAG;;;;;;;;;;;;AAaH,CAAG;;;;;;;;;;AAYjD,IAAa,IAA2B,CAAG;;;;;;;;;;;;;;;GAiB9B,IAA0B,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8B7B,IAAoC,CAAG;;;;;;;;;;;;;;;GAiBvC,IAAoC,CAAG;;;;;;;;;;;;;;;;AAiBH,CAAG;;;;;AAMpD,IAAa,IAAsC,CAAG;;;;;;;;;;;;;;GAgBzC,IAAyC,CAAG;;;;GAO5C,IAA+B,CAAG;;;;;;;;GAUlC,IAAwB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;GA2B3B,IAAiC,CAAG;;;;;;;;;;AAWF,CAAG;;;;;;;;;AAWlD,IAAa,IAAmC,CAAG;;;;;;;;;;;GAatC,IAA+B,CAAG;;;;;;;;;;;GAalC,IAAgC,CAAG;;;;;;;;;;;GAanC,IAAmC,CAAG;;;;;;;;;;;GActC,IAAgC,CAAG;;;;;;;;;;;;;;;;GAkBnC,IAAwC,CAAG;;;;;;;;;;;;;;;;AAiBH,CAAG;;;;;;;;AASxD,IAAa,IAAwC,CAAG;;;;GAM3C,IAAkC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;GA0BrC,IAA4C,CAAG;;;;;;;;;GAW/C,IAA2C,CAAG;;;;;;;;;;GAY9C,IAA8B,CAAG;;;;;;;;;;GAcxC,IAAuB,ifAwChB,IAAqC,CAAG;;;QAG7C,EAAqB;;;;AAK6B,CAAG;;;QAGrD,EAAqB;;;;AAK7B,IAAa,IAAmC,CAAG;;;QAG3C,EAAqB;;;GAKhB,IAAkC,CAAG;;;QAG1C,EAAqB;;;;AAKiB,CAAG;;;QAGzC,EAAqB;;;GAKkB,CAAG;;;QAG1C,EAAqB;;;GAKmB,CAAG;;;QAG3C,EAAqB;;;;AAK7B,IAAa,IAA8B,CAAG;;;;;;;;;;;;;;;;;;GAoBjC,IAAoC,CAAG;;;;;;;GASvC,IAAoC,CAAG;;;;;;;GASvC,IAAwC,CAAG;;;;;;;GAS3C,IAA0B,CAAG"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * BOFF-4388 — the operational side of the marketplace: a marketplace operator
3
+ * (or host-operator for their own submissions) reviews PENDING_REVIEW
4
+ * listings and works the incoming booking queue from one place. Every action
5
+ * here calls a real, guarded mutation on wspace-ggnomad-svc — approve/reject
6
+ * on listings are gated server-side by the `ggnomad:manage` RBAC action
7
+ * (marketplace operator only); check-in/complete/no-show/cancel are gated by
8
+ * `ggnomad:update` (host-operator and above).
9
+ */
10
+ export declare function OperationsQueuePage(): import("react").JSX.Element;
11
+ //# sourceMappingURL=OperationsQueuePage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationsQueuePage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/OperationsQueuePage.tsx"],"names":[],"mappings":"AAoFA;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,gCAkiBlC"}