@burdenoff/microfe-ggnomad 2026.725.1 → 2026.726.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ggnomad/GGNomadRoot.d.ts.map +1 -1
- package/dist/ggnomad/GGNomadRoot.js +60 -53
- package/dist/ggnomad/GGNomadRoot.js.map +1 -1
- package/dist/ggnomad/GGNomadRoutes.d.ts.map +1 -1
- package/dist/ggnomad/GGNomadRoutes.js +9 -5
- package/dist/ggnomad/GGNomadRoutes.js.map +1 -1
- package/dist/ggnomad/components/CreateTravelPolicyDialog.d.ts +14 -0
- package/dist/ggnomad/components/CreateTravelPolicyDialog.d.ts.map +1 -0
- package/dist/ggnomad/components/CreateTravelPolicyDialog.js +192 -0
- package/dist/ggnomad/components/CreateTravelPolicyDialog.js.map +1 -0
- package/dist/ggnomad/components/RedeemTicketPanel.d.ts.map +1 -1
- package/dist/ggnomad/components/RedeemTicketPanel.js.map +1 -1
- package/dist/ggnomad/components/TicketDialog.d.ts.map +1 -1
- package/dist/ggnomad/components/TicketDialog.js.map +1 -1
- package/dist/ggnomad/components/index.d.ts +1 -0
- package/dist/ggnomad/components/index.d.ts.map +1 -1
- package/dist/ggnomad/components/index.js +1 -0
- package/dist/ggnomad/graphql.d.ts +8 -0
- package/dist/ggnomad/graphql.d.ts.map +1 -1
- package/dist/ggnomad/graphql.js +98 -1
- package/dist/ggnomad/graphql.js.map +1 -1
- package/dist/ggnomad/pages/TravelPolicyPage.d.ts +9 -0
- package/dist/ggnomad/pages/TravelPolicyPage.d.ts.map +1 -0
- package/dist/ggnomad/pages/TravelPolicyPage.js +245 -0
- package/dist/ggnomad/pages/TravelPolicyPage.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GGNomadRoot.d.ts","sourceRoot":"","sources":["../../src/ggnomad/GGNomadRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"GGNomadRoot.d.ts","sourceRoot":"","sources":["../../src/ggnomad/GGNomadRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAqBhC,OAAO,KAAK,EAAE,gBAAgB,EAAW,MAAM,SAAS,CAAC;AAGzD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAiI5C,CAAC"}
|
|
@@ -2,124 +2,131 @@ import { GGNomadProvider as e } from "./providers/GGNomadProvider.js";
|
|
|
2
2
|
import { joinPath as t } from "./utils/navigation.js";
|
|
3
3
|
import { GGNomadRoutes as n } from "./GGNomadRoutes.js";
|
|
4
4
|
import { useEffect as r } from "react";
|
|
5
|
-
import { Activity as i, BarChart3 as a, Building as o, CalendarCheck as s, Compass as c, LayoutDashboard as l, Map as u, MapPinned as d, Search as f,
|
|
6
|
-
import { useI18n as
|
|
7
|
-
import { jsx as
|
|
8
|
-
import { FeatureFlagProvider as
|
|
5
|
+
import { Activity as i, BarChart3 as a, Building as o, CalendarCheck as s, Compass as c, LayoutDashboard as l, Map as u, MapPinned as d, Search as f, ShieldCheck as p, Star as m, Tickets as h } from "lucide-react";
|
|
6
|
+
import { useI18n as g } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
7
|
+
import { jsx as _ } from "react/jsx-runtime";
|
|
8
|
+
import { FeatureFlagProvider as v } from "@burdenoff/fe-libs/shared/feature-flags";
|
|
9
9
|
//#region src/ggnomad/GGNomadRoot.tsx
|
|
10
|
-
var
|
|
11
|
-
let { registerNavItems:
|
|
10
|
+
var y = (y) => {
|
|
11
|
+
let { registerNavItems: b, registerFooterItems: x, basePath: S = "/" } = y, { t: C } = g();
|
|
12
12
|
return r(() => {
|
|
13
|
-
if (
|
|
13
|
+
if (b) return b({
|
|
14
14
|
id: "ggnomad",
|
|
15
|
-
label:
|
|
16
|
-
path:
|
|
17
|
-
icon: /* @__PURE__ */
|
|
15
|
+
label: C("ggnomad.nav.root", "GGNomad"),
|
|
16
|
+
path: S,
|
|
17
|
+
icon: /* @__PURE__ */ _(l, { size: 18 }),
|
|
18
18
|
order: 80,
|
|
19
19
|
group: "products",
|
|
20
20
|
children: [
|
|
21
21
|
{
|
|
22
22
|
id: "ggnomad-dashboard",
|
|
23
|
-
label:
|
|
24
|
-
path:
|
|
25
|
-
icon: /* @__PURE__ */
|
|
23
|
+
label: C("ggnomad.nav.dashboard", "Dashboard"),
|
|
24
|
+
path: S,
|
|
25
|
+
icon: /* @__PURE__ */ _(l, { size: 16 }),
|
|
26
26
|
order: 0
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
id: "ggnomad-search",
|
|
30
|
-
label:
|
|
31
|
-
path: t(
|
|
32
|
-
icon: /* @__PURE__ */
|
|
30
|
+
label: C("ggnomad.nav.search", "Search"),
|
|
31
|
+
path: t(S, "search"),
|
|
32
|
+
icon: /* @__PURE__ */ _(f, { size: 16 }),
|
|
33
33
|
order: 5
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
id: "ggnomad-travel",
|
|
37
|
-
label:
|
|
38
|
-
path: t(
|
|
39
|
-
icon: /* @__PURE__ */
|
|
37
|
+
label: C("ggnomad.nav.travel", "Travel"),
|
|
38
|
+
path: t(S, "travel"),
|
|
39
|
+
icon: /* @__PURE__ */ _(c, { size: 16 }),
|
|
40
40
|
order: 10
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
id: "ggnomad-hospitality",
|
|
44
|
-
label:
|
|
45
|
-
path: t(
|
|
46
|
-
icon: /* @__PURE__ */
|
|
44
|
+
label: C("ggnomad.nav.hospitality", "Hospitality"),
|
|
45
|
+
path: t(S, "hospitality"),
|
|
46
|
+
icon: /* @__PURE__ */ _(o, { size: 16 }),
|
|
47
47
|
order: 20
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
id: "ggnomad-tourism",
|
|
51
|
-
label:
|
|
52
|
-
path: t(
|
|
53
|
-
icon: /* @__PURE__ */
|
|
51
|
+
label: C("ggnomad.nav.tourism", "Tourism"),
|
|
52
|
+
path: t(S, "tourism"),
|
|
53
|
+
icon: /* @__PURE__ */ _(d, { size: 16 }),
|
|
54
54
|
order: 30
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
id: "ggnomad-entertainment",
|
|
58
|
-
label:
|
|
59
|
-
path: t(
|
|
60
|
-
icon: /* @__PURE__ */
|
|
58
|
+
label: C("ggnomad.nav.entertainment", "Entertainment"),
|
|
59
|
+
path: t(S, "entertainment"),
|
|
60
|
+
icon: /* @__PURE__ */ _(i, { size: 16 }),
|
|
61
61
|
order: 40
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
64
|
id: "ggnomad-trips",
|
|
65
|
-
label:
|
|
66
|
-
path: t(
|
|
67
|
-
icon: /* @__PURE__ */
|
|
65
|
+
label: C("ggnomad.nav.trips", "Trips"),
|
|
66
|
+
path: t(S, "trips"),
|
|
67
|
+
icon: /* @__PURE__ */ _(u, { size: 16 }),
|
|
68
68
|
order: 45
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
71
|
id: "ggnomad-bookings",
|
|
72
|
-
label:
|
|
73
|
-
path: t(
|
|
74
|
-
icon: /* @__PURE__ */
|
|
72
|
+
label: C("ggnomad.nav.bookings", "Bookings"),
|
|
73
|
+
path: t(S, "bookings"),
|
|
74
|
+
icon: /* @__PURE__ */ _(s, { size: 16 }),
|
|
75
75
|
order: 50
|
|
76
76
|
},
|
|
77
|
+
{
|
|
78
|
+
id: "ggnomad-travel-policy",
|
|
79
|
+
label: C("ggnomad.nav.travelPolicy", "Travel Policy"),
|
|
80
|
+
path: t(S, "travel-policy"),
|
|
81
|
+
icon: /* @__PURE__ */ _(p, { size: 16 }),
|
|
82
|
+
order: 55
|
|
83
|
+
},
|
|
77
84
|
{
|
|
78
85
|
id: "ggnomad-favorites",
|
|
79
|
-
label:
|
|
80
|
-
path: t(
|
|
81
|
-
icon: /* @__PURE__ */
|
|
86
|
+
label: C("ggnomad.nav.favorites", "Favorites"),
|
|
87
|
+
path: t(S, "favorites"),
|
|
88
|
+
icon: /* @__PURE__ */ _(m, { size: 16 }),
|
|
82
89
|
order: 60
|
|
83
90
|
},
|
|
84
91
|
{
|
|
85
92
|
id: "ggnomad-provider",
|
|
86
|
-
label:
|
|
87
|
-
path: t(
|
|
88
|
-
icon: /* @__PURE__ */
|
|
93
|
+
label: C("ggnomad.nav.providers", "Providers"),
|
|
94
|
+
path: t(S, "provider"),
|
|
95
|
+
icon: /* @__PURE__ */ _(h, { size: 16 }),
|
|
89
96
|
order: 70
|
|
90
97
|
},
|
|
91
98
|
{
|
|
92
99
|
id: "ggnomad-analytics",
|
|
93
|
-
label:
|
|
94
|
-
path: t(
|
|
95
|
-
icon: /* @__PURE__ */
|
|
100
|
+
label: C("ggnomad.nav.analytics", "Analytics"),
|
|
101
|
+
path: t(S, "analytics"),
|
|
102
|
+
icon: /* @__PURE__ */ _(a, { size: 16 }),
|
|
96
103
|
order: 80
|
|
97
104
|
}
|
|
98
105
|
]
|
|
99
106
|
});
|
|
100
107
|
}, [
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
108
|
+
b,
|
|
109
|
+
S,
|
|
110
|
+
C
|
|
104
111
|
]), r(() => {
|
|
105
|
-
if (
|
|
112
|
+
if (x) return x([{
|
|
106
113
|
id: "ggnomad-ready",
|
|
107
|
-
label:
|
|
114
|
+
label: C("ggnomad.footer.ready", "GGNomad Ready"),
|
|
108
115
|
type: "status",
|
|
109
116
|
section: "left",
|
|
110
117
|
order: 10
|
|
111
118
|
}]);
|
|
112
|
-
}, [
|
|
119
|
+
}, [x, C]), /* @__PURE__ */ _(v, {
|
|
113
120
|
workspaceId: null,
|
|
114
121
|
gateway: "global",
|
|
115
122
|
defaultEnabled: !0,
|
|
116
|
-
children: /* @__PURE__ */
|
|
117
|
-
...
|
|
118
|
-
children: /* @__PURE__ */
|
|
123
|
+
children: /* @__PURE__ */ _(e, {
|
|
124
|
+
...y,
|
|
125
|
+
children: /* @__PURE__ */ _(n, {})
|
|
119
126
|
})
|
|
120
127
|
});
|
|
121
128
|
};
|
|
122
129
|
//#endregion
|
|
123
|
-
export {
|
|
130
|
+
export { y as GGNomadRoot };
|
|
124
131
|
|
|
125
132
|
//# sourceMappingURL=GGNomadRoot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GGNomadRoot.js","names":[],"sources":["../../src/ggnomad/GGNomadRoot.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { useEffect } from 'react';\nimport {\n Activity,\n BarChart3,\n Building,\n CalendarCheck,\n Compass,\n LayoutDashboard,\n MapPinned,\n Map,\n Search,\n Star,\n Tickets,\n} from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\nimport { GGNomadRoutes } from './GGNomadRoutes';\nimport { FeatureFlagProvider } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { GGNomadProvider } from './providers/GGNomadProvider';\nimport type { GGNomadRootProps, NavItem } from './types';\nimport { joinPath } from './utils/navigation';\n\nexport const GGNomadRoot: FC<GGNomadRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const { t } = useI18n();\n\n useEffect(() => {\n if (!registerNavItems) {\n return;\n }\n\n const navItem: NavItem = {\n id: 'ggnomad',\n label: t('ggnomad.nav.root', 'GGNomad'),\n path: basePath,\n icon: <LayoutDashboard size={18} />,\n order: 80,\n group: 'products',\n children: [\n {\n id: 'ggnomad-dashboard',\n label: t('ggnomad.nav.dashboard', 'Dashboard'),\n path: basePath,\n icon: <LayoutDashboard size={16} />,\n order: 0,\n },\n {\n id: 'ggnomad-search',\n label: t('ggnomad.nav.search', 'Search'),\n path: joinPath(basePath, 'search'),\n icon: <Search size={16} />,\n order: 5,\n },\n {\n id: 'ggnomad-travel',\n label: t('ggnomad.nav.travel', 'Travel'),\n path: joinPath(basePath, 'travel'),\n icon: <Compass size={16} />,\n order: 10,\n },\n {\n id: 'ggnomad-hospitality',\n label: t('ggnomad.nav.hospitality', 'Hospitality'),\n path: joinPath(basePath, 'hospitality'),\n icon: <Building size={16} />,\n order: 20,\n },\n {\n id: 'ggnomad-tourism',\n label: t('ggnomad.nav.tourism', 'Tourism'),\n path: joinPath(basePath, 'tourism'),\n icon: <MapPinned size={16} />,\n order: 30,\n },\n {\n id: 'ggnomad-entertainment',\n label: t('ggnomad.nav.entertainment', 'Entertainment'),\n path: joinPath(basePath, 'entertainment'),\n icon: <Activity size={16} />,\n order: 40,\n },\n {\n id: 'ggnomad-trips',\n label: t('ggnomad.nav.trips', 'Trips'),\n path: joinPath(basePath, 'trips'),\n icon: <Map size={16} />,\n order: 45,\n },\n {\n id: 'ggnomad-bookings',\n label: t('ggnomad.nav.bookings', 'Bookings'),\n path: joinPath(basePath, 'bookings'),\n icon: <CalendarCheck size={16} />,\n order: 50,\n },\n {\n id: 'ggnomad-favorites',\n label: t('ggnomad.nav.favorites', 'Favorites'),\n path: joinPath(basePath, 'favorites'),\n icon: <Star size={16} />,\n order: 60,\n },\n {\n id: 'ggnomad-provider',\n label: t('ggnomad.nav.providers', 'Providers'),\n path: joinPath(basePath, 'provider'),\n icon: <Tickets size={16} />,\n order: 70,\n },\n {\n id: 'ggnomad-analytics',\n label: t('ggnomad.nav.analytics', 'Analytics'),\n path: joinPath(basePath, 'analytics'),\n icon: <BarChart3 size={16} />,\n order: 80,\n },\n ],\n };\n\n return registerNavItems(navItem);\n }, [registerNavItems, basePath, t]);\n\n useEffect(() => {\n if (!registerFooterItems) {\n return;\n }\n return registerFooterItems([\n {\n id: 'ggnomad-ready',\n label: t('ggnomad.footer.ready', 'GGNomad Ready'),\n type: 'status',\n section: 'left',\n order: 10,\n },\n ]);\n }, [registerFooterItems, t]);\n\n return (\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <GGNomadProvider {...props}>\n <GGNomadRoutes />\n </GGNomadProvider>\n </FeatureFlagProvider>\n );\n};\n"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"GGNomadRoot.js","names":[],"sources":["../../src/ggnomad/GGNomadRoot.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { useEffect } from 'react';\nimport {\n Activity,\n BarChart3,\n Building,\n CalendarCheck,\n Compass,\n LayoutDashboard,\n MapPinned,\n Map,\n Search,\n ShieldCheck,\n Star,\n Tickets,\n} from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\nimport { GGNomadRoutes } from './GGNomadRoutes';\nimport { FeatureFlagProvider } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { GGNomadProvider } from './providers/GGNomadProvider';\nimport type { GGNomadRootProps, NavItem } from './types';\nimport { joinPath } from './utils/navigation';\n\nexport const GGNomadRoot: FC<GGNomadRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const { t } = useI18n();\n\n useEffect(() => {\n if (!registerNavItems) {\n return;\n }\n\n const navItem: NavItem = {\n id: 'ggnomad',\n label: t('ggnomad.nav.root', 'GGNomad'),\n path: basePath,\n icon: <LayoutDashboard size={18} />,\n order: 80,\n group: 'products',\n children: [\n {\n id: 'ggnomad-dashboard',\n label: t('ggnomad.nav.dashboard', 'Dashboard'),\n path: basePath,\n icon: <LayoutDashboard size={16} />,\n order: 0,\n },\n {\n id: 'ggnomad-search',\n label: t('ggnomad.nav.search', 'Search'),\n path: joinPath(basePath, 'search'),\n icon: <Search size={16} />,\n order: 5,\n },\n {\n id: 'ggnomad-travel',\n label: t('ggnomad.nav.travel', 'Travel'),\n path: joinPath(basePath, 'travel'),\n icon: <Compass size={16} />,\n order: 10,\n },\n {\n id: 'ggnomad-hospitality',\n label: t('ggnomad.nav.hospitality', 'Hospitality'),\n path: joinPath(basePath, 'hospitality'),\n icon: <Building size={16} />,\n order: 20,\n },\n {\n id: 'ggnomad-tourism',\n label: t('ggnomad.nav.tourism', 'Tourism'),\n path: joinPath(basePath, 'tourism'),\n icon: <MapPinned size={16} />,\n order: 30,\n },\n {\n id: 'ggnomad-entertainment',\n label: t('ggnomad.nav.entertainment', 'Entertainment'),\n path: joinPath(basePath, 'entertainment'),\n icon: <Activity size={16} />,\n order: 40,\n },\n {\n id: 'ggnomad-trips',\n label: t('ggnomad.nav.trips', 'Trips'),\n path: joinPath(basePath, 'trips'),\n icon: <Map size={16} />,\n order: 45,\n },\n {\n id: 'ggnomad-bookings',\n label: t('ggnomad.nav.bookings', 'Bookings'),\n path: joinPath(basePath, 'bookings'),\n icon: <CalendarCheck size={16} />,\n order: 50,\n },\n {\n id: 'ggnomad-travel-policy',\n label: t('ggnomad.nav.travelPolicy', 'Travel Policy'),\n path: joinPath(basePath, 'travel-policy'),\n icon: <ShieldCheck size={16} />,\n order: 55,\n },\n {\n id: 'ggnomad-favorites',\n label: t('ggnomad.nav.favorites', 'Favorites'),\n path: joinPath(basePath, 'favorites'),\n icon: <Star size={16} />,\n order: 60,\n },\n {\n id: 'ggnomad-provider',\n label: t('ggnomad.nav.providers', 'Providers'),\n path: joinPath(basePath, 'provider'),\n icon: <Tickets size={16} />,\n order: 70,\n },\n {\n id: 'ggnomad-analytics',\n label: t('ggnomad.nav.analytics', 'Analytics'),\n path: joinPath(basePath, 'analytics'),\n icon: <BarChart3 size={16} />,\n order: 80,\n },\n ],\n };\n\n return registerNavItems(navItem);\n }, [registerNavItems, basePath, t]);\n\n useEffect(() => {\n if (!registerFooterItems) {\n return;\n }\n return registerFooterItems([\n {\n id: 'ggnomad-ready',\n label: t('ggnomad.footer.ready', 'GGNomad Ready'),\n type: 'status',\n section: 'left',\n order: 10,\n },\n ]);\n }, [registerFooterItems, t]);\n\n return (\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <GGNomadProvider {...props}>\n <GGNomadRoutes />\n </GGNomadProvider>\n </FeatureFlagProvider>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GGNomadRoutes.d.ts","sourceRoot":"","sources":["../../src/ggnomad/GGNomadRoutes.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GGNomadRoutes.d.ts","sourceRoot":"","sources":["../../src/ggnomad/GGNomadRoutes.tsx"],"names":[],"mappings":"AA6DA,wBAAgB,aAAa,gCAyB5B"}
|
|
@@ -4,16 +4,16 @@ import { Loader2 as r } from "lucide-react";
|
|
|
4
4
|
import { Navigate as i, Route as a, Routes as o } from "react-router-dom";
|
|
5
5
|
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
6
6
|
//#region src/ggnomad/GGNomadRoutes.tsx
|
|
7
|
-
var l = n(() => import("./pages/SearchPage.js").then((e) => ({ default: e.SearchPage }))), u = n(() => import("./pages/TravelPage.js").then((e) => ({ default: e.TravelPage }))), d = n(() => import("./pages/HospitalityPage.js").then((e) => ({ default: e.HospitalityPage }))), f = n(() => import("./pages/PropertyDetailsPage.js").then((e) => ({ default: e.PropertyDetailsPage }))), p = n(() => import("./pages/TourismPage.js").then((e) => ({ default: e.TourismPage }))), m = n(() => import("./pages/TourDetailsPage.js").then((e) => ({ default: e.TourDetailsPage }))), h = n(() => import("./pages/ActivityDetailsPage.js").then((e) => ({ default: e.ActivityDetailsPage }))), g = n(() => import("./pages/EntertainmentPage.js").then((e) => ({ default: e.EntertainmentPage }))), _ = n(() => import("./pages/EventDetailsPage.js").then((e) => ({ default: e.EventDetailsPage }))), v = n(() => import("./pages/BookingsPage.js").then((e) => ({ default: e.BookingsPage }))), y = n(() => import("./pages/FavoritesPage.js").then((e) => ({ default: e.FavoritesPage }))), b = n(() => import("./pages/ProviderPage.js").then((e) => ({ default: e.ProviderPage }))), x = n(() => import("./pages/AnalyticsPage.js").then((e) => ({ default: e.AnalyticsPage }))), S = n(() => import("./pages/TripsPage.js").then((e) => ({ default: e.TripsPage }))), C = n(() => import("./pages/TripPlanDetailPage.js").then((e) => ({ default: e.TripPlanDetailPage })));
|
|
8
|
-
function
|
|
7
|
+
var l = n(() => import("./pages/SearchPage.js").then((e) => ({ default: e.SearchPage }))), u = n(() => import("./pages/TravelPage.js").then((e) => ({ default: e.TravelPage }))), d = n(() => import("./pages/HospitalityPage.js").then((e) => ({ default: e.HospitalityPage }))), f = n(() => import("./pages/PropertyDetailsPage.js").then((e) => ({ default: e.PropertyDetailsPage }))), p = n(() => import("./pages/TourismPage.js").then((e) => ({ default: e.TourismPage }))), m = n(() => import("./pages/TourDetailsPage.js").then((e) => ({ default: e.TourDetailsPage }))), h = n(() => import("./pages/ActivityDetailsPage.js").then((e) => ({ default: e.ActivityDetailsPage }))), g = n(() => import("./pages/EntertainmentPage.js").then((e) => ({ default: e.EntertainmentPage }))), _ = n(() => import("./pages/EventDetailsPage.js").then((e) => ({ default: e.EventDetailsPage }))), v = n(() => import("./pages/BookingsPage.js").then((e) => ({ default: e.BookingsPage }))), y = n(() => import("./pages/FavoritesPage.js").then((e) => ({ default: e.FavoritesPage }))), b = n(() => import("./pages/ProviderPage.js").then((e) => ({ default: e.ProviderPage }))), x = n(() => import("./pages/AnalyticsPage.js").then((e) => ({ default: e.AnalyticsPage }))), S = n(() => import("./pages/TripsPage.js").then((e) => ({ default: e.TripsPage }))), C = n(() => import("./pages/TripPlanDetailPage.js").then((e) => ({ default: e.TripPlanDetailPage }))), w = n(() => import("./pages/TravelPolicyPage.js").then((e) => ({ default: e.TravelPolicyPage })));
|
|
8
|
+
function T() {
|
|
9
9
|
return /* @__PURE__ */ s("div", {
|
|
10
10
|
className: "flex min-h-[320px] items-center justify-center",
|
|
11
11
|
children: /* @__PURE__ */ s(r, { className: "h-8 w-8 animate-spin text-primary" })
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
function
|
|
14
|
+
function E() {
|
|
15
15
|
return /* @__PURE__ */ s(t, {
|
|
16
|
-
fallback: /* @__PURE__ */ s(
|
|
16
|
+
fallback: /* @__PURE__ */ s(T, {}),
|
|
17
17
|
children: /* @__PURE__ */ c(o, { children: [
|
|
18
18
|
/* @__PURE__ */ s(a, {
|
|
19
19
|
index: !0,
|
|
@@ -59,6 +59,10 @@ function T() {
|
|
|
59
59
|
path: "bookings",
|
|
60
60
|
element: /* @__PURE__ */ s(v, {})
|
|
61
61
|
}),
|
|
62
|
+
/* @__PURE__ */ s(a, {
|
|
63
|
+
path: "travel-policy",
|
|
64
|
+
element: /* @__PURE__ */ s(w, {})
|
|
65
|
+
}),
|
|
62
66
|
/* @__PURE__ */ s(a, {
|
|
63
67
|
path: "favorites",
|
|
64
68
|
element: /* @__PURE__ */ s(y, {})
|
|
@@ -90,6 +94,6 @@ function T() {
|
|
|
90
94
|
});
|
|
91
95
|
}
|
|
92
96
|
//#endregion
|
|
93
|
-
export {
|
|
97
|
+
export { E as GGNomadRoutes };
|
|
94
98
|
|
|
95
99
|
//# sourceMappingURL=GGNomadRoutes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GGNomadRoutes.js","names":[],"sources":["../../src/ggnomad/GGNomadRoutes.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react';\nimport { Loader2 } from 'lucide-react';\nimport { Navigate, Route, Routes } from 'react-router-dom';\n\nimport { DashboardPage } from './pages/DashboardPage';\n\nconst SearchPage = lazy(() =>\n import('./pages/SearchPage').then((m) => ({ default: m.SearchPage }))\n);\nconst TravelPage = lazy(() =>\n import('./pages/TravelPage').then((m) => ({ default: m.TravelPage }))\n);\nconst HospitalityPage = lazy(() =>\n import('./pages/HospitalityPage').then((m) => ({ default: m.HospitalityPage }))\n);\nconst PropertyDetailsPage = lazy(() =>\n import('./pages/PropertyDetailsPage').then((m) => ({ default: m.PropertyDetailsPage }))\n);\nconst TourismPage = lazy(() =>\n import('./pages/TourismPage').then((m) => ({ default: m.TourismPage }))\n);\nconst TourDetailsPage = lazy(() =>\n import('./pages/TourDetailsPage').then((m) => ({ default: m.TourDetailsPage }))\n);\nconst ActivityDetailsPage = lazy(() =>\n import('./pages/ActivityDetailsPage').then((m) => ({ default: m.ActivityDetailsPage }))\n);\nconst EntertainmentPage = lazy(() =>\n import('./pages/EntertainmentPage').then((m) => ({ default: m.EntertainmentPage }))\n);\nconst EventDetailsPage = lazy(() =>\n import('./pages/EventDetailsPage').then((m) => ({ default: m.EventDetailsPage }))\n);\nconst BookingsPage = lazy(() =>\n import('./pages/BookingsPage').then((m) => ({ default: m.BookingsPage }))\n);\nconst FavoritesPage = lazy(() =>\n import('./pages/FavoritesPage').then((m) => ({ default: m.FavoritesPage }))\n);\nconst ProviderPage = lazy(() =>\n import('./pages/ProviderPage').then((m) => ({ default: m.ProviderPage }))\n);\nconst AnalyticsPage = lazy(() =>\n import('./pages/AnalyticsPage').then((m) => ({ default: m.AnalyticsPage }))\n);\nconst TripsPage = lazy(() => import('./pages/TripsPage').then((m) => ({ default: m.TripsPage })));\nconst TripPlanDetailPage = lazy(() =>\n import('./pages/TripPlanDetailPage').then((m) => ({ default: m.TripPlanDetailPage }))\n);\n\nfunction PageLoader() {\n return (\n <div className=\"flex min-h-[320px] items-center justify-center\">\n <Loader2 className=\"h-8 w-8 animate-spin text-primary\" />\n </div>\n );\n}\n\nexport function GGNomadRoutes() {\n return (\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={<DashboardPage />} />\n <Route path=\"search\" element={<SearchPage />} />\n <Route path=\"travel\" element={<TravelPage />} />\n <Route path=\"hospitality\" element={<HospitalityPage />} />\n <Route path=\"hospitality/:id\" element={<PropertyDetailsPage />} />\n <Route path=\"tourism\" element={<TourismPage />} />\n <Route path=\"tourism/tours/:id\" element={<TourDetailsPage />} />\n <Route path=\"tourism/activities/:id\" element={<ActivityDetailsPage />} />\n <Route path=\"entertainment\" element={<EntertainmentPage />} />\n <Route path=\"entertainment/:id\" element={<EventDetailsPage />} />\n <Route path=\"bookings\" element={<BookingsPage />} />\n <Route path=\"favorites\" element={<FavoritesPage />} />\n <Route path=\"provider\" element={<ProviderPage />} />\n <Route path=\"analytics\" element={<AnalyticsPage />} />\n <Route path=\"trips\" element={<TripsPage />} />\n <Route path=\"trips/:id\" element={<TripPlanDetailPage />} />\n <Route path=\"*\" element={<Navigate to=\"\" replace />} />\n </Routes>\n </Suspense>\n );\n}\n"],"mappings":";;;;;;AAMA,IAAM,IAAa,QACjB,OAAO,yBAAsB,MAAM,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CACtE,GACM,IAAa,QACjB,OAAO,yBAAsB,MAAM,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CACtE,GACM,IAAkB,QACtB,OAAO,8BAA2B,MAAM,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAChF,GACM,IAAsB,QAC1B,OAAO,kCAA+B,MAAM,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,CACxF,GACM,IAAc,QAClB,OAAO,0BAAuB,MAAM,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CACxE,GACM,IAAkB,QACtB,OAAO,8BAA2B,MAAM,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAChF,GACM,IAAsB,QAC1B,OAAO,kCAA+B,MAAM,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,CACxF,GACM,IAAoB,QACxB,OAAO,gCAA6B,MAAM,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CACpF,GACM,IAAmB,QACvB,OAAO,+BAA4B,MAAM,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAClF,GACM,IAAe,QACnB,OAAO,2BAAwB,MAAM,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAC1E,GACM,IAAgB,QACpB,OAAO,4BAAyB,MAAM,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAC5E,GACM,IAAe,QACnB,OAAO,2BAAwB,MAAM,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAC1E,GACM,IAAgB,QACpB,OAAO,4BAAyB,MAAM,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAC5E,GACM,IAAY,QAAW,OAAO,wBAAqB,MAAM,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAC1F,IAAqB,QACzB,OAAO,iCAA8B,MAAM,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,CACtF;AAEA,SAAS,IAAa;CACpB,OACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD,EAAS,WAAU,oCAAqC,CAAA;CACrD,CAAA;AAET;AAEA,SAAgB,IAAgB;CAC9B,OACE,kBAAC,GAAD;EAAU,UAAU,kBAAC,GAAD,CAAa,CAAA;YAC/B,kBAAC,GAAD,EAAA,UAAA;GACE,kBAAC,GAAD;IAAO,OAAA;IAAM,SAAS,kBAAC,GAAD,CAAgB,CAAA;GAAI,CAAA;GAC1C,kBAAC,GAAD;IAAO,MAAK;IAAS,SAAS,kBAAC,GAAD,CAAa,CAAA;GAAI,CAAA;GAC/C,kBAAC,GAAD;IAAO,MAAK;IAAS,SAAS,kBAAC,GAAD,CAAa,CAAA;GAAI,CAAA;GAC/C,kBAAC,GAAD;IAAO,MAAK;IAAc,SAAS,kBAAC,GAAD,CAAkB,CAAA;GAAI,CAAA;GACzD,kBAAC,GAAD;IAAO,MAAK;IAAkB,SAAS,kBAAC,GAAD,CAAsB,CAAA;GAAI,CAAA;GACjE,kBAAC,GAAD;IAAO,MAAK;IAAU,SAAS,kBAAC,GAAD,CAAc,CAAA;GAAI,CAAA;GACjD,kBAAC,GAAD;IAAO,MAAK;IAAoB,SAAS,kBAAC,GAAD,CAAkB,CAAA;GAAI,CAAA;GAC/D,kBAAC,GAAD;IAAO,MAAK;IAAyB,SAAS,kBAAC,GAAD,CAAsB,CAAA;GAAI,CAAA;GACxE,kBAAC,GAAD;IAAO,MAAK;IAAgB,SAAS,kBAAC,GAAD,CAAoB,CAAA;GAAI,CAAA;GAC7D,kBAAC,GAAD;IAAO,MAAK;IAAoB,SAAS,kBAAC,GAAD,CAAmB,CAAA;GAAI,CAAA;GAChE,kBAAC,GAAD;IAAO,MAAK;IAAW,SAAS,kBAAC,GAAD,CAAe,CAAA;GAAI,CAAA;GACnD,kBAAC,GAAD;IAAO,MAAK;IAAY,SAAS,kBAAC,GAAD,CAAgB,CAAA;GAAI,CAAA;GACrD,kBAAC,GAAD;IAAO,MAAK;IAAW,SAAS,kBAAC,GAAD,CAAe,CAAA;GAAI,CAAA;GACnD,kBAAC,GAAD;IAAO,MAAK;IAAY,SAAS,kBAAC,GAAD,CAAgB,CAAA;GAAI,CAAA;GACrD,kBAAC,GAAD;IAAO,MAAK;IAAQ,SAAS,kBAAC,GAAD,CAAY,CAAA;GAAI,CAAA;GAC7C,kBAAC,GAAD;IAAO,MAAK;IAAY,SAAS,kBAAC,GAAD,CAAqB,CAAA;GAAI,CAAA;GAC1D,kBAAC,GAAD;IAAO,MAAK;IAAI,SAAS,kBAAC,GAAD;KAAU,IAAG;KAAG,SAAA;IAAS,CAAA;GAAI,CAAA;EAChD,EAAA,CAAA;CACA,CAAA;AAEd"}
|
|
1
|
+
{"version":3,"file":"GGNomadRoutes.js","names":[],"sources":["../../src/ggnomad/GGNomadRoutes.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react';\nimport { Loader2 } from 'lucide-react';\nimport { Navigate, Route, Routes } from 'react-router-dom';\n\nimport { DashboardPage } from './pages/DashboardPage';\n\nconst SearchPage = lazy(() =>\n import('./pages/SearchPage').then((m) => ({ default: m.SearchPage }))\n);\nconst TravelPage = lazy(() =>\n import('./pages/TravelPage').then((m) => ({ default: m.TravelPage }))\n);\nconst HospitalityPage = lazy(() =>\n import('./pages/HospitalityPage').then((m) => ({ default: m.HospitalityPage }))\n);\nconst PropertyDetailsPage = lazy(() =>\n import('./pages/PropertyDetailsPage').then((m) => ({ default: m.PropertyDetailsPage }))\n);\nconst TourismPage = lazy(() =>\n import('./pages/TourismPage').then((m) => ({ default: m.TourismPage }))\n);\nconst TourDetailsPage = lazy(() =>\n import('./pages/TourDetailsPage').then((m) => ({ default: m.TourDetailsPage }))\n);\nconst ActivityDetailsPage = lazy(() =>\n import('./pages/ActivityDetailsPage').then((m) => ({ default: m.ActivityDetailsPage }))\n);\nconst EntertainmentPage = lazy(() =>\n import('./pages/EntertainmentPage').then((m) => ({ default: m.EntertainmentPage }))\n);\nconst EventDetailsPage = lazy(() =>\n import('./pages/EventDetailsPage').then((m) => ({ default: m.EventDetailsPage }))\n);\nconst BookingsPage = lazy(() =>\n import('./pages/BookingsPage').then((m) => ({ default: m.BookingsPage }))\n);\nconst FavoritesPage = lazy(() =>\n import('./pages/FavoritesPage').then((m) => ({ default: m.FavoritesPage }))\n);\nconst ProviderPage = lazy(() =>\n import('./pages/ProviderPage').then((m) => ({ default: m.ProviderPage }))\n);\nconst AnalyticsPage = lazy(() =>\n import('./pages/AnalyticsPage').then((m) => ({ default: m.AnalyticsPage }))\n);\nconst TripsPage = lazy(() => import('./pages/TripsPage').then((m) => ({ default: m.TripsPage })));\nconst TripPlanDetailPage = lazy(() =>\n import('./pages/TripPlanDetailPage').then((m) => ({ default: m.TripPlanDetailPage }))\n);\nconst TravelPolicyPage = lazy(() =>\n import('./pages/TravelPolicyPage').then((m) => ({ default: m.TravelPolicyPage }))\n);\n\nfunction PageLoader() {\n return (\n <div className=\"flex min-h-[320px] items-center justify-center\">\n <Loader2 className=\"h-8 w-8 animate-spin text-primary\" />\n </div>\n );\n}\n\nexport function GGNomadRoutes() {\n return (\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={<DashboardPage />} />\n <Route path=\"search\" element={<SearchPage />} />\n <Route path=\"travel\" element={<TravelPage />} />\n <Route path=\"hospitality\" element={<HospitalityPage />} />\n <Route path=\"hospitality/:id\" element={<PropertyDetailsPage />} />\n <Route path=\"tourism\" element={<TourismPage />} />\n <Route path=\"tourism/tours/:id\" element={<TourDetailsPage />} />\n <Route path=\"tourism/activities/:id\" element={<ActivityDetailsPage />} />\n <Route path=\"entertainment\" element={<EntertainmentPage />} />\n <Route path=\"entertainment/:id\" element={<EventDetailsPage />} />\n <Route path=\"bookings\" element={<BookingsPage />} />\n <Route path=\"travel-policy\" element={<TravelPolicyPage />} />\n <Route path=\"favorites\" element={<FavoritesPage />} />\n <Route path=\"provider\" element={<ProviderPage />} />\n <Route path=\"analytics\" element={<AnalyticsPage />} />\n <Route path=\"trips\" element={<TripsPage />} />\n <Route path=\"trips/:id\" element={<TripPlanDetailPage />} />\n <Route path=\"*\" element={<Navigate to=\"\" replace />} />\n </Routes>\n </Suspense>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface CreateTravelPolicyDialogProps {
|
|
2
|
+
open: boolean;
|
|
3
|
+
onOpenChange: (open: boolean) => void;
|
|
4
|
+
onCreated?: () => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Manager-only form (BOFF-4365) for defining a corporate travel policy:
|
|
8
|
+
* budget caps, blocked destinations, allowed travel classes, and an
|
|
9
|
+
* always-require-approval override. `costCenter` left blank applies the
|
|
10
|
+
* policy workspace-wide; a value scopes it to just that department.
|
|
11
|
+
*/
|
|
12
|
+
export declare function CreateTravelPolicyDialog({ open, onOpenChange, onCreated, }: CreateTravelPolicyDialogProps): import("react").JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=CreateTravelPolicyDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateTravelPolicyDialog.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/components/CreateTravelPolicyDialog.tsx"],"names":[],"mappings":"AAmBA,UAAU,6BAA6B;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAiBD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,IAAI,EACJ,YAAY,EACZ,SAAS,GACV,EAAE,6BAA6B,+BA0Q/B"}
|
|
@@ -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":";;;;;;;;;AAoCA,IAAM,IACJ,gPACI,IAAa;AAQnB,SAAgB,EAAyB,EACvC,SACA,iBACA,gBACgC;CAChC,IAAM,EAAE,SAAM,EAAQ,GAChB,CAAC,GAAM,KAAW,EAAS,EAAE,GAC7B,CAAC,GAAY,KAAiB,EAAS,EAAE,GACzC,CAAC,GAAU,KAAe,EAAS,KAAK,GACxC,CAAC,GAAkB,KAAuB,EAAS,EAAE,GACrD,CAAC,GAAuB,KAA4B,EAAS,EAAE,GAC/D,CAAC,GAAyB,KAA8B,EAAS,EAAE,GACnE,CAAC,GAA0B,KAA+B,EAAS,EAAE,GACrE,CAAC,GAAuB,KAA4B,EAAS,EAAK,GAElE,CAAC,GAAoB,EAAE,gBAAa,EACxC,CAIF,GAEM,UAAkB;EAQtB,AAPA,EAAQ,EAAE,GACV,EAAc,EAAE,GAChB,EAAY,KAAK,GACjB,EAAoB,EAAE,GACtB,EAAyB,EAAE,GAC3B,EAA2B,EAAE,GAC7B,EAA4B,EAAE,GAC9B,EAAyB,EAAK;CAChC,GAEM,IAAe,YAAY;EAC/B,IAAI,CAAC,EAAK,KAAK,GAAG;GAChB,EAAO,QACL,EAAE,iDAAiD,kBAAkB,GACrE,EACE,gDACA,8CACF,CACF;GACA;EACF;EAEA,IAAM,IAAwC;GAC5C,MAAM,EAAK,KAAK;GAChB,YAAY,EAAW,KAAK,KAAK;GACjC,UAAU,EAAS,KAAK,KAAK;GAC7B,kBAAkB,EAAiB,KAAK,IAAI,OAAO,CAAgB,IAAI;GACvE,uBAAuB,EAAsB,KAAK,IAAI,OAAO,CAAqB,IAAI;GACtF,qBAAqB,EAClB,MAAM,GAAG,EACT,KAAK,MAAU,EAAM,KAAK,CAAC,EAC3B,OAAO,OAAO;GACjB,sBAAsB,EACnB,MAAM,GAAG,EACT,KAAK,MAAU,EAAM,KAAK,EAAE,YAAY,CAAC,EACzC,OAAO,OAAO;GACjB;EACF;EAEA,IAAI;GACF,IAAM,IAAS,MAAM,EAAmB,EAAE,WAAW,EAAE,SAAM,EAAE,CAAC;GAChE,IAAI,EAAO,OAAO;IAChB,EAAO,MACL,EAAE,0CAA0C,yBAAyB,GACrE,EAAO,MAAM,OACf;IACA;GACF;GAOA,AANA,EAAO,QACL,EAAE,4CAA4C,uBAAuB,GACrE,EAAO,MAAM,0BAA0B,QAAQ,CACjD,GACA,EAAU,GACV,EAAa,EAAK,GAClB,IAAY;EACd,SAAS,GAAK;GACZ,EAAO,MACL,EAAE,0CAA0C,yBAAyB,GACrE,aAAe,QAAQ,EAAI,UAAU,OAAO,CAAG,CACjD;EACF;CACF;CAEA,OACE,kBAAC,GAAD;EACQ;EACN,eAAe,MAAS;GAEtB,AADK,KAAM,EAAU,GACrB,EAAa,CAAI;EACnB;YAEA,kBAAC,GAAD;GAAoB,WAAU;aAA9B;IACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;KAAkB,WAAU;eAA5B,CACE,kBAAC,GAAD,EAAa,WAAU,SAAU,CAAA,GAChC,EAAE,qCAAqC,mBAAmB,CAC3C;QAClB,kBAAC,GAAD,EAAA,UACG,EACC,2CACA,2GACF,EACsB,CAAA,CACP,EAAA,CAAA;IAEnB,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,SAAD;QAAO,SAAQ;QAAc,WAAW;kBACrC,EAAE,yCAAyC,aAAa;OACpD,CAAA,GACP,kBAAC,SAAD;QACE,IAAG;QACH,MAAK;QACL,OAAO;QACP,WAAW,MAAM,EAAQ,EAAE,OAAO,KAAK;QACvC,UAAU;QACV,WAAW;QACX,aAAa,EACX,+CACA,+BACF;OACD,CAAA,CACE;;MAEL,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;OAAO,SAAQ;OAAqB,WAAW;iBAC5C,EAAE,+CAA+C,wBAAwB;MACrE,CAAA,GACP,kBAAC,SAAD;OACE,IAAG;OACH,MAAK;OACL,OAAO;OACP,WAAW,MAAM,EAAc,EAAE,OAAO,KAAK;OAC7C,UAAU;OACV,WAAW;OACX,aAAa,EACX,qDACA,yBACF;MACD,CAAA,CACE,EAAA,CAAA;MAEL,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;OAAO,SAAQ;OAAkB,WAAW;iBACzC,EAAE,6CAA6C,UAAU;MACrD,CAAA,GACP,kBAAC,SAAD;OACE,IAAG;OACH,MAAK;OACL,OAAO;OACP,WAAW,MAAM,EAAY,EAAE,OAAO,MAAM,YAAY,CAAC;OACzD,UAAU;OACV,WAAW;OACX,WAAW;MACZ,CAAA,CACE,EAAA,CAAA;MAEL,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;OAAO,SAAQ;OAAqB,WAAW;iBAC5C,EAAE,+CAA+C,4BAA4B;MACzE,CAAA,GACP,kBAAC,SAAD;OACE,IAAG;OACH,MAAK;OACL,MAAK;OACL,KAAI;OACJ,OAAO;OACP,WAAW,MAAM,EAAoB,EAAE,OAAO,KAAK;OACnD,UAAU;OACV,WAAW;OACX,aAAY;MACb,CAAA,CACE,EAAA,CAAA;MAEL,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;OAAO,SAAQ;OAAqB,WAAW;iBAC5C,EACC,+CACA,qCACF;MACK,CAAA,GACP,kBAAC,SAAD;OACE,IAAG;OACH,MAAK;OACL,MAAK;OACL,KAAI;OACJ,OAAO;OACP,WAAW,MAAM,EAAyB,EAAE,OAAO,KAAK;OACxD,UAAU;OACV,WAAW;OACX,aAAY;MACb,CAAA,CACE,EAAA,CAAA;MAEL,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,SAAD;QAAO,SAAQ;QAA8B,WAAW;kBACrD,EACC,wDACA,wCACF;OACK,CAAA,GACP,kBAAC,SAAD;QACE,IAAG;QACH,MAAK;QACL,OAAO;QACP,WAAW,MAAM,EAA2B,EAAE,OAAO,KAAK;QAC1D,UAAU;QACV,WAAW;QACX,aAAY;OACb,CAAA,CACE;;MAEL,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,SAAD;QAAO,SAAQ;QAAyB,WAAW;kBAChD,EACC,mDACA,oDACF;OACK,CAAA,GACP,kBAAC,SAAD;QACE,IAAG;QACH,MAAK;QACL,OAAO;QACP,WAAW,MAAM,EAA4B,EAAE,OAAO,KAAK;QAC3D,UAAU;QACV,WAAW;QACX,aAAY;OACb,CAAA,CACE;;MAEL,kBAAC,SAAD;OAAO,WAAU;iBAAjB,CACE,kBAAC,SAAD;QACE,MAAK;QACL,SAAS;QACT,WAAW,MAAM,EAAyB,EAAE,OAAO,OAAO;QAC1D,UAAU;QACV,WAAU;OACX,CAAA,GACD,kBAAC,QAAD;QAAM,WAAU;kBACb,EACC,0DACA,mDACF;OACI,CAAA,CACD;;KACJ;;IAEL,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;KAAmB,UAAU;eAC1B,EAAE,sCAAsC,QAAQ;IAChC,CAAA,GACnB,kBAAC,GAAD;KACE,UAAU,MAAU;MAElB,AADA,EAAM,eAAe,GACrB,EAAkB;KACpB;KACA,UAAU;KACV,WAAU;eAET,IACG,EAAE,sCAAsC,WAAW,IACnD,EAAE,oCAAoC,eAAe;IACxC,CAAA,CACF,EAAA,CAAA;GACD;;CACT,CAAA;AAEjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedeemTicketPanel.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/components/RedeemTicketPanel.tsx"],"names":[],"mappings":"AAmBA,UAAU,sBAAsB;IAC9B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE,sBAAsB,+
|
|
1
|
+
{"version":3,"file":"RedeemTicketPanel.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/components/RedeemTicketPanel.tsx"],"names":[],"mappings":"AAmBA,UAAU,sBAAsB;IAC9B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE,sBAAsB,+BAsFvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedeemTicketPanel.js","names":[],"sources":["../../../src/ggnomad/components/RedeemTicketPanel.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 { ScanLine } from 'lucide-react';\nimport { GlassCard } from '@burdenoff/fe-libs/ui';\n\nimport { REDEEM_GGNOMAD_TICKET_MUTATION } from '../graphql';\nimport { notify } from '../utils/notify';\n\ninterface RedeemedTicket {\n id: string;\n bookingId: string;\n ticketCode: string;\n status: string;\n redeemedAt: string | null;\n redeemedBy: string | null;\n}\n\ninterface RedeemTicketPanelProps {\n onRedeemed?: () => void;\n}\n\n/**\n * Provider-facing check-in panel (BOFF-4362). A venue operator pastes/scans a\n * guest's QR token here to validate + redeem it — the same\n * `redeemGgnomadTicket` mutation a dedicated scanner device would call.\n * Redemption is server-side validated (signature + live ticket status), so\n * this panel never has to trust anything about the token itself.\n */\nexport function RedeemTicketPanel({ onRedeemed }: RedeemTicketPanelProps) {\n const { t } = useI18n();\n const [token, setToken] = useState('');\n\n const [redeemTicket, { loading }] = useMutation(\n REDEEM_GGNOMAD_TICKET_MUTATION as TypedDocumentNode<\n { redeemGgnomadTicket: RedeemedTicket },\n { token: string }\n >\n );\n\n const handleRedeem = async () => {\n const trimmed = token.trim();\n if (!trimmed) return;\n\n try {\n const result = await redeemTicket({ variables: { token: trimmed } });\n if (result.error) {\n notify.error(t('ggnomad.redeem.errorTitle', 'Could not redeem ticket')
|
|
1
|
+
{"version":3,"file":"RedeemTicketPanel.js","names":[],"sources":["../../../src/ggnomad/components/RedeemTicketPanel.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 { ScanLine } from 'lucide-react';\nimport { GlassCard } from '@burdenoff/fe-libs/ui';\n\nimport { REDEEM_GGNOMAD_TICKET_MUTATION } from '../graphql';\nimport { notify } from '../utils/notify';\n\ninterface RedeemedTicket {\n id: string;\n bookingId: string;\n ticketCode: string;\n status: string;\n redeemedAt: string | null;\n redeemedBy: string | null;\n}\n\ninterface RedeemTicketPanelProps {\n onRedeemed?: () => void;\n}\n\n/**\n * Provider-facing check-in panel (BOFF-4362). A venue operator pastes/scans a\n * guest's QR token here to validate + redeem it — the same\n * `redeemGgnomadTicket` mutation a dedicated scanner device would call.\n * Redemption is server-side validated (signature + live ticket status), so\n * this panel never has to trust anything about the token itself.\n */\nexport function RedeemTicketPanel({ onRedeemed }: RedeemTicketPanelProps) {\n const { t } = useI18n();\n const [token, setToken] = useState('');\n\n const [redeemTicket, { loading }] = useMutation(\n REDEEM_GGNOMAD_TICKET_MUTATION as TypedDocumentNode<\n { redeemGgnomadTicket: RedeemedTicket },\n { token: string }\n >\n );\n\n const handleRedeem = async () => {\n const trimmed = token.trim();\n if (!trimmed) return;\n\n try {\n const result = await redeemTicket({ variables: { token: trimmed } });\n if (result.error) {\n notify.error(\n t('ggnomad.redeem.errorTitle', 'Could not redeem ticket'),\n result.error.message\n );\n return;\n }\n const redeemed = result.data?.redeemGgnomadTicket;\n notify.success(\n t('ggnomad.redeem.successTitle', 'Guest checked in'),\n redeemed\n ? t('ggnomad.redeem.successBody', 'Ticket {{code}} redeemed.').replace(\n '{{code}}',\n redeemed.ticketCode\n )\n : undefined\n );\n setToken('');\n onRedeemed?.();\n } catch (err) {\n notify.error(\n t('ggnomad.redeem.errorTitle', 'Could not redeem ticket'),\n err instanceof Error ? err.message : String(err)\n );\n }\n };\n\n return (\n <GlassCard treatment=\"glass\" className=\"border-border-seam p-5\">\n <div className=\"mb-3 flex items-center gap-2\">\n <ScanLine className=\"size-4 text-text-secondary\" aria-hidden=\"true\" />\n <h2 className=\"text-lg font-medium tracking-tight text-text-primary\">\n {t('ggnomad.redeem.title', 'Check in a guest')}\n </h2>\n </div>\n <p className=\"mb-4 text-sm text-text-secondary\">\n {t(\n 'ggnomad.redeem.purpose',\n 'Paste the token from a scanned QR ticket to validate and check the guest in. Revoked or already-redeemed tickets are rejected automatically.'\n )}\n </p>\n <form\n className=\"flex flex-col gap-2 sm:flex-row\"\n onSubmit={(event) => {\n event.preventDefault();\n void handleRedeem();\n }}\n >\n <input\n type=\"text\"\n value={token}\n onChange={(e) => setToken(e.target.value)}\n disabled={loading}\n placeholder={t('ggnomad.redeem.placeholder', 'Scanned ticket token')}\n aria-label={t('ggnomad.redeem.inputLabel', 'Ticket token')}\n className=\"min-w-0 flex-1 rounded-md border border-border-seam bg-bg-canvas px-3 py-2 text-sm font-mono 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\"\n />\n <button\n type=\"submit\"\n disabled={loading || !token.trim()}\n className=\"shrink-0 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bgHover disabled:opacity-50\"\n >\n {loading\n ? t('ggnomad.redeem.checking', 'Checking in…')\n : t('ggnomad.redeem.action', 'Check in')}\n </button>\n </form>\n </GlassCard>\n );\n}\n"],"mappings":";;;;;;;;;AA8BA,SAAgB,EAAkB,EAAE,iBAAsC;CACxE,IAAM,EAAE,SAAM,EAAQ,GAChB,CAAC,GAAO,KAAY,EAAS,EAAE,GAE/B,CAAC,GAAc,EAAE,gBAAa,EAClC,CAIF,GAEM,IAAe,YAAY;EAC/B,IAAM,IAAU,EAAM,KAAK;EACtB,OAEL,IAAI;GACF,IAAM,IAAS,MAAM,EAAa,EAAE,WAAW,EAAE,OAAO,EAAQ,EAAE,CAAC;GACnE,IAAI,EAAO,OAAO;IAChB,EAAO,MACL,EAAE,6BAA6B,yBAAyB,GACxD,EAAO,MAAM,OACf;IACA;GACF;GACA,IAAM,IAAW,EAAO,MAAM;GAW9B,AAVA,EAAO,QACL,EAAE,+BAA+B,kBAAkB,GACnD,IACI,EAAE,8BAA8B,2BAA2B,EAAE,QAC3D,YACA,EAAS,UACX,IACA,KAAA,CACN,GACA,EAAS,EAAE,GACX,IAAa;EACf,SAAS,GAAK;GACZ,EAAO,MACL,EAAE,6BAA6B,yBAAyB,GACxD,aAAe,QAAQ,EAAI,UAAU,OAAO,CAAG,CACjD;EACF;CACF;CAEA,OACE,kBAAC,GAAD;EAAW,WAAU;EAAQ,WAAU;YAAvC;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD;KAAU,WAAU;KAA6B,eAAY;IAAQ,CAAA,GACrE,kBAAC,MAAD;KAAI,WAAU;eACX,EAAE,wBAAwB,kBAAkB;IAC3C,CAAA,CACD;;GACL,kBAAC,KAAD;IAAG,WAAU;cACV,EACC,0BACA,8IACF;GACC,CAAA;GACH,kBAAC,QAAD;IACE,WAAU;IACV,WAAW,MAAU;KAEnB,AADA,EAAM,eAAe,GACrB,EAAkB;IACpB;cALF,CAOE,kBAAC,SAAD;KACE,MAAK;KACL,OAAO;KACP,WAAW,MAAM,EAAS,EAAE,OAAO,KAAK;KACxC,UAAU;KACV,aAAa,EAAE,8BAA8B,sBAAsB;KACnE,cAAY,EAAE,6BAA6B,cAAc;KACzD,WAAU;IACX,CAAA,GACD,kBAAC,UAAD;KACE,MAAK;KACL,UAAU,KAAW,CAAC,EAAM,KAAK;KACjC,WAAU;eAET,IACG,EAAE,2BAA2B,cAAc,IAC3C,EAAE,yBAAyB,UAAU;IACnC,CAAA,CACJ;;EACG;;AAEf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TicketDialog.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/components/TicketDialog.tsx"],"names":[],"mappings":"AAkBA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAKD,UAAU,iBAAiB;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AASD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,GACd,EAAE,iBAAiB,+
|
|
1
|
+
{"version":3,"file":"TicketDialog.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/components/TicketDialog.tsx"],"names":[],"mappings":"AAkBA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAKD,UAAU,iBAAiB;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AASD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,GACd,EAAE,iBAAiB,+BAsJnB"}
|