@burdenoff/microfe-eventfullymanaged 2026.529.1 → 2026.625.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/eventfullymanaged/components/PageLayout.js +44 -38
- package/dist/eventfullymanaged/components/PageLayout.js.map +1 -1
- package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js +39 -27
- package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js +40 -41
- package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/AttendeeProfilePage.js +67 -65
- package/dist/eventfullymanaged/pages/modules/AttendeeProfilePage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/CommunicationPage.js +48 -50
- package/dist/eventfullymanaged/pages/modules/CommunicationPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/EntityListSection.js +57 -25
- package/dist/eventfullymanaged/pages/modules/EntityListSection.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/EventsPage.js +55 -57
- package/dist/eventfullymanaged/pages/modules/EventsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/KioskPage.js +17 -19
- package/dist/eventfullymanaged/pages/modules/KioskPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/NetworkingPage.js +22 -22
- package/dist/eventfullymanaged/pages/modules/NetworkingPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/OperationsHubPage.js +90 -82
- package/dist/eventfullymanaged/pages/modules/OperationsHubPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/RegistrationPage.js +28 -29
- package/dist/eventfullymanaged/pages/modules/RegistrationPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/SponsorDetailsPage.js +67 -65
- package/dist/eventfullymanaged/pages/modules/SponsorDetailsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/SponsorLeadsPage.js +18 -20
- package/dist/eventfullymanaged/pages/modules/SponsorLeadsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/VenueResourcesPage.js +68 -64
- package/dist/eventfullymanaged/pages/modules/VenueResourcesPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/WorkflowsPage.js +57 -60
- package/dist/eventfullymanaged/pages/modules/WorkflowsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/sponsors/SponsorFormPage.js +197 -199
- package/dist/eventfullymanaged/pages/sponsors/SponsorFormPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/sponsors/SponsorsListPage.js +57 -39
- package/dist/eventfullymanaged/pages/sponsors/SponsorsListPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/FloorPlansPage.js +41 -31
- package/dist/eventfullymanaged/pages/venues/FloorPlansPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/VenueDetailPage.js +79 -62
- package/dist/eventfullymanaged/pages/venues/VenueDetailPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/VenueFormPage.js +185 -189
- package/dist/eventfullymanaged/pages/venues/VenueFormPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/VenueListPage.js +63 -35
- package/dist/eventfullymanaged/pages/venues/VenueListPage.js.map +1 -1
- package/package.json +2 -2
|
@@ -5,8 +5,9 @@ import { useParams as s } from "react-router-dom";
|
|
|
5
5
|
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
6
6
|
import { ArrowLeft as u, Save as d } from "lucide-react";
|
|
7
7
|
import { useI18n as f } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
8
|
+
import { Button as p, GlassCard as m, Input as h, Textarea as g } from "@burdenoff/fe-libs/ui";
|
|
8
9
|
//#region src/eventfullymanaged/pages/venues/VenueFormPage.tsx
|
|
9
|
-
var
|
|
10
|
+
var _ = {
|
|
10
11
|
name: "",
|
|
11
12
|
description: "",
|
|
12
13
|
addressLine1: "",
|
|
@@ -18,233 +19,228 @@ var p = {
|
|
|
18
19
|
amenities: "",
|
|
19
20
|
status: "ACTIVE"
|
|
20
21
|
};
|
|
21
|
-
function
|
|
22
|
-
let { t:
|
|
23
|
-
let n =
|
|
22
|
+
function v() {
|
|
23
|
+
let { t: v } = f(), y = (e, t) => {
|
|
24
|
+
let n = v(e);
|
|
24
25
|
return n === e ? t : n;
|
|
25
|
-
}, { id:
|
|
26
|
+
}, { id: b = "" } = s(), x = a(() => !!b, [b]), { navigate: S } = e(), { data: C } = r(b), [w, { loading: T }] = t(), [E, { loading: D }] = n(), [O, k] = o(_);
|
|
26
27
|
i(() => {
|
|
27
|
-
!
|
|
28
|
-
name:
|
|
29
|
-
description:
|
|
30
|
-
addressLine1:
|
|
31
|
-
city:
|
|
32
|
-
state:
|
|
33
|
-
country:
|
|
34
|
-
postalCode:
|
|
35
|
-
capacity:
|
|
36
|
-
amenities: (
|
|
37
|
-
status:
|
|
28
|
+
!x || !C?.venue || k({
|
|
29
|
+
name: C.venue.name ?? "",
|
|
30
|
+
description: C.venue.description ?? "",
|
|
31
|
+
addressLine1: C.venue.addressLine1 ?? "",
|
|
32
|
+
city: C.venue.city ?? "",
|
|
33
|
+
state: C.venue.state ?? "",
|
|
34
|
+
country: C.venue.country ?? "India",
|
|
35
|
+
postalCode: C.venue.postalCode ?? "",
|
|
36
|
+
capacity: C.venue.capacity ? String(C.venue.capacity) : "",
|
|
37
|
+
amenities: (C.venue.amenities ?? []).join(", "),
|
|
38
|
+
status: C.venue.status ?? "ACTIVE"
|
|
38
39
|
});
|
|
39
|
-
}, [
|
|
40
|
-
let
|
|
41
|
-
|
|
40
|
+
}, [C, x]);
|
|
41
|
+
let A = (e, t) => {
|
|
42
|
+
k((n) => ({
|
|
42
43
|
...n,
|
|
43
44
|
[e]: t
|
|
44
45
|
}));
|
|
45
|
-
},
|
|
46
|
+
}, j = async (e) => {
|
|
46
47
|
e.preventDefault();
|
|
47
48
|
let t = {
|
|
48
|
-
name:
|
|
49
|
-
description:
|
|
50
|
-
addressLine1:
|
|
51
|
-
city:
|
|
52
|
-
state:
|
|
53
|
-
country:
|
|
54
|
-
postalCode:
|
|
55
|
-
capacity:
|
|
56
|
-
amenities:
|
|
57
|
-
status:
|
|
49
|
+
name: O.name,
|
|
50
|
+
description: O.description,
|
|
51
|
+
addressLine1: O.addressLine1,
|
|
52
|
+
city: O.city,
|
|
53
|
+
state: O.state,
|
|
54
|
+
country: O.country,
|
|
55
|
+
postalCode: O.postalCode,
|
|
56
|
+
capacity: O.capacity ? Number(O.capacity) : null,
|
|
57
|
+
amenities: O.amenities.split(",").map((e) => e.trim()).filter(Boolean),
|
|
58
|
+
status: O.status,
|
|
58
59
|
pricing: {},
|
|
59
60
|
openingHours: {},
|
|
60
61
|
metadata: {}
|
|
61
62
|
};
|
|
62
|
-
if (
|
|
63
|
-
await
|
|
64
|
-
id:
|
|
63
|
+
if (x) {
|
|
64
|
+
await E({ variables: {
|
|
65
|
+
id: b,
|
|
65
66
|
input: t
|
|
66
|
-
} }),
|
|
67
|
+
} }), S(`/venues/${b}`);
|
|
67
68
|
return;
|
|
68
69
|
}
|
|
69
|
-
let n = (await
|
|
70
|
-
|
|
71
|
-
},
|
|
70
|
+
let n = (await w({ variables: { input: t } })).data?.createVenue?.id;
|
|
71
|
+
S(n ? `/venues/${n}` : "/venues");
|
|
72
|
+
}, M = T || D;
|
|
72
73
|
return /* @__PURE__ */ l("div", {
|
|
73
74
|
className: "space-y-6 p-6",
|
|
74
75
|
children: [/* @__PURE__ */ l("div", { children: [
|
|
75
|
-
/* @__PURE__ */ l(
|
|
76
|
+
/* @__PURE__ */ l(p, {
|
|
76
77
|
type: "button",
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
variant: "ghost",
|
|
79
|
+
size: "sm",
|
|
80
|
+
onClick: () => S("/venues"),
|
|
81
|
+
children: [/* @__PURE__ */ c(u, { className: "h-4 w-4" }), y("eventfullymanaged.venues.form.backToVenues", "Back to Venues")]
|
|
80
82
|
}),
|
|
81
83
|
/* @__PURE__ */ c("h1", {
|
|
82
84
|
className: "mt-3 text-2xl font-bold text-text-primary",
|
|
83
|
-
children:
|
|
85
|
+
children: x ? y("eventfullymanaged.venues.form.editTitle", "Edit Venue") : y("eventfullymanaged.venues.form.createTitle", "Create Venue")
|
|
84
86
|
}),
|
|
85
87
|
/* @__PURE__ */ c("p", {
|
|
86
88
|
className: "mt-1 text-sm text-text-secondary",
|
|
87
|
-
children:
|
|
89
|
+
children: y("eventfullymanaged.venues.form.description", "Manage venue details with live backend persistence.")
|
|
88
90
|
})
|
|
89
|
-
] }), /* @__PURE__ */
|
|
90
|
-
|
|
91
|
-
className: "
|
|
92
|
-
children:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
children: h("eventfullymanaged.venues.form.fields.name", "Name")
|
|
100
|
-
}), /* @__PURE__ */ c("input", {
|
|
101
|
-
value: w.name,
|
|
102
|
-
onChange: (e) => E("name", e.target.value),
|
|
103
|
-
required: !0,
|
|
104
|
-
className: "w-full rounded-md border border-border-default px-3 py-2"
|
|
105
|
-
})]
|
|
106
|
-
}), /* @__PURE__ */ l("label", {
|
|
107
|
-
className: "space-y-1 text-sm",
|
|
108
|
-
children: [/* @__PURE__ */ c("span", {
|
|
109
|
-
className: "font-medium text-text-primary",
|
|
110
|
-
children: h("eventfullymanaged.venues.form.fields.capacity", "Capacity")
|
|
111
|
-
}), /* @__PURE__ */ c("input", {
|
|
112
|
-
value: w.capacity,
|
|
113
|
-
onChange: (e) => E("capacity", e.target.value),
|
|
114
|
-
type: "number",
|
|
115
|
-
min: "0",
|
|
116
|
-
className: "w-full rounded-md border border-border-default px-3 py-2"
|
|
117
|
-
})]
|
|
118
|
-
})]
|
|
119
|
-
}),
|
|
120
|
-
/* @__PURE__ */ l("label", {
|
|
121
|
-
className: "block space-y-1 text-sm",
|
|
122
|
-
children: [/* @__PURE__ */ c("span", {
|
|
123
|
-
className: "font-medium text-text-primary",
|
|
124
|
-
children: h("eventfullymanaged.venues.form.fields.description", "Description")
|
|
125
|
-
}), /* @__PURE__ */ c("textarea", {
|
|
126
|
-
value: w.description,
|
|
127
|
-
onChange: (e) => E("description", e.target.value),
|
|
128
|
-
rows: 3,
|
|
129
|
-
className: "w-full rounded-md border border-border-default px-3 py-2"
|
|
130
|
-
})]
|
|
131
|
-
}),
|
|
132
|
-
/* @__PURE__ */ l("div", {
|
|
133
|
-
className: "grid grid-cols-1 gap-4 md:grid-cols-4",
|
|
134
|
-
children: [
|
|
135
|
-
/* @__PURE__ */ l("label", {
|
|
136
|
-
className: "space-y-1 text-sm md:col-span-2",
|
|
137
|
-
children: [/* @__PURE__ */ c("span", {
|
|
138
|
-
className: "font-medium text-text-primary",
|
|
139
|
-
children: h("eventfullymanaged.venues.form.fields.address", "Address")
|
|
140
|
-
}), /* @__PURE__ */ c("input", {
|
|
141
|
-
value: w.addressLine1,
|
|
142
|
-
onChange: (e) => E("addressLine1", e.target.value),
|
|
143
|
-
className: "w-full rounded-md border border-border-default px-3 py-2"
|
|
144
|
-
})]
|
|
145
|
-
}),
|
|
146
|
-
/* @__PURE__ */ l("label", {
|
|
147
|
-
className: "space-y-1 text-sm",
|
|
148
|
-
children: [/* @__PURE__ */ c("span", {
|
|
149
|
-
className: "font-medium text-text-primary",
|
|
150
|
-
children: h("eventfullymanaged.venues.form.fields.city", "City")
|
|
151
|
-
}), /* @__PURE__ */ c("input", {
|
|
152
|
-
value: w.city,
|
|
153
|
-
onChange: (e) => E("city", e.target.value),
|
|
154
|
-
className: "w-full rounded-md border border-border-default px-3 py-2"
|
|
155
|
-
})]
|
|
156
|
-
}),
|
|
157
|
-
/* @__PURE__ */ l("label", {
|
|
158
|
-
className: "space-y-1 text-sm",
|
|
159
|
-
children: [/* @__PURE__ */ c("span", {
|
|
160
|
-
className: "font-medium text-text-primary",
|
|
161
|
-
children: h("eventfullymanaged.venues.form.fields.state", "State")
|
|
162
|
-
}), /* @__PURE__ */ c("input", {
|
|
163
|
-
value: w.state,
|
|
164
|
-
onChange: (e) => E("state", e.target.value),
|
|
165
|
-
className: "w-full rounded-md border border-border-default px-3 py-2"
|
|
166
|
-
})]
|
|
167
|
-
})
|
|
168
|
-
]
|
|
169
|
-
}),
|
|
170
|
-
/* @__PURE__ */ l("div", {
|
|
171
|
-
className: "grid grid-cols-1 gap-4 md:grid-cols-3",
|
|
172
|
-
children: [
|
|
173
|
-
/* @__PURE__ */ l("label", {
|
|
174
|
-
className: "space-y-1 text-sm",
|
|
175
|
-
children: [/* @__PURE__ */ c("span", {
|
|
176
|
-
className: "font-medium text-text-primary",
|
|
177
|
-
children: h("eventfullymanaged.venues.form.fields.country", "Country")
|
|
178
|
-
}), /* @__PURE__ */ c("input", {
|
|
179
|
-
value: w.country,
|
|
180
|
-
onChange: (e) => E("country", e.target.value),
|
|
181
|
-
className: "w-full rounded-md border border-border-default px-3 py-2"
|
|
182
|
-
})]
|
|
183
|
-
}),
|
|
184
|
-
/* @__PURE__ */ l("label", {
|
|
91
|
+
] }), /* @__PURE__ */ c(m, {
|
|
92
|
+
treatment: "plain",
|
|
93
|
+
className: "border-border-seam p-5",
|
|
94
|
+
children: /* @__PURE__ */ l("form", {
|
|
95
|
+
onSubmit: j,
|
|
96
|
+
className: "space-y-4",
|
|
97
|
+
children: [
|
|
98
|
+
/* @__PURE__ */ l("div", {
|
|
99
|
+
className: "grid grid-cols-1 gap-4 md:grid-cols-2",
|
|
100
|
+
children: [/* @__PURE__ */ l("label", {
|
|
185
101
|
className: "space-y-1 text-sm",
|
|
186
102
|
children: [/* @__PURE__ */ c("span", {
|
|
187
103
|
className: "font-medium text-text-primary",
|
|
188
|
-
children:
|
|
189
|
-
}), /* @__PURE__ */ c(
|
|
190
|
-
value:
|
|
191
|
-
onChange: (e) =>
|
|
192
|
-
|
|
104
|
+
children: y("eventfullymanaged.venues.form.fields.name", "Name")
|
|
105
|
+
}), /* @__PURE__ */ c(h, {
|
|
106
|
+
value: O.name,
|
|
107
|
+
onChange: (e) => A("name", e.target.value),
|
|
108
|
+
required: !0
|
|
193
109
|
})]
|
|
194
|
-
}),
|
|
195
|
-
/* @__PURE__ */ l("label", {
|
|
110
|
+
}), /* @__PURE__ */ l("label", {
|
|
196
111
|
className: "space-y-1 text-sm",
|
|
197
112
|
children: [/* @__PURE__ */ c("span", {
|
|
198
113
|
className: "font-medium text-text-primary",
|
|
199
|
-
children:
|
|
200
|
-
}), /* @__PURE__ */
|
|
201
|
-
value:
|
|
202
|
-
onChange: (e) =>
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
/* @__PURE__ */ c("option", {
|
|
206
|
-
value: "ACTIVE",
|
|
207
|
-
children: h("eventfullymanaged.venues.form.statusOptions.active", "Active")
|
|
208
|
-
}),
|
|
209
|
-
/* @__PURE__ */ c("option", {
|
|
210
|
-
value: "INACTIVE",
|
|
211
|
-
children: h("eventfullymanaged.venues.form.statusOptions.inactive", "Inactive")
|
|
212
|
-
}),
|
|
213
|
-
/* @__PURE__ */ c("option", {
|
|
214
|
-
value: "MAINTENANCE",
|
|
215
|
-
children: h("eventfullymanaged.venues.form.statusOptions.maintenance", "Maintenance")
|
|
216
|
-
})
|
|
217
|
-
]
|
|
114
|
+
children: y("eventfullymanaged.venues.form.fields.capacity", "Capacity")
|
|
115
|
+
}), /* @__PURE__ */ c(h, {
|
|
116
|
+
value: O.capacity,
|
|
117
|
+
onChange: (e) => A("capacity", e.target.value),
|
|
118
|
+
type: "number",
|
|
119
|
+
min: "0"
|
|
218
120
|
})]
|
|
121
|
+
})]
|
|
122
|
+
}),
|
|
123
|
+
/* @__PURE__ */ l("label", {
|
|
124
|
+
className: "block space-y-1 text-sm",
|
|
125
|
+
children: [/* @__PURE__ */ c("span", {
|
|
126
|
+
className: "font-medium text-text-primary",
|
|
127
|
+
children: y("eventfullymanaged.venues.form.fields.description", "Description")
|
|
128
|
+
}), /* @__PURE__ */ c(g, {
|
|
129
|
+
value: O.description,
|
|
130
|
+
onChange: (e) => A("description", e.target.value),
|
|
131
|
+
rows: 3
|
|
132
|
+
})]
|
|
133
|
+
}),
|
|
134
|
+
/* @__PURE__ */ l("div", {
|
|
135
|
+
className: "grid grid-cols-1 gap-4 md:grid-cols-4",
|
|
136
|
+
children: [
|
|
137
|
+
/* @__PURE__ */ l("label", {
|
|
138
|
+
className: "space-y-1 text-sm md:col-span-2",
|
|
139
|
+
children: [/* @__PURE__ */ c("span", {
|
|
140
|
+
className: "font-medium text-text-primary",
|
|
141
|
+
children: y("eventfullymanaged.venues.form.fields.address", "Address")
|
|
142
|
+
}), /* @__PURE__ */ c(h, {
|
|
143
|
+
value: O.addressLine1,
|
|
144
|
+
onChange: (e) => A("addressLine1", e.target.value)
|
|
145
|
+
})]
|
|
146
|
+
}),
|
|
147
|
+
/* @__PURE__ */ l("label", {
|
|
148
|
+
className: "space-y-1 text-sm",
|
|
149
|
+
children: [/* @__PURE__ */ c("span", {
|
|
150
|
+
className: "font-medium text-text-primary",
|
|
151
|
+
children: y("eventfullymanaged.venues.form.fields.city", "City")
|
|
152
|
+
}), /* @__PURE__ */ c(h, {
|
|
153
|
+
value: O.city,
|
|
154
|
+
onChange: (e) => A("city", e.target.value)
|
|
155
|
+
})]
|
|
156
|
+
}),
|
|
157
|
+
/* @__PURE__ */ l("label", {
|
|
158
|
+
className: "space-y-1 text-sm",
|
|
159
|
+
children: [/* @__PURE__ */ c("span", {
|
|
160
|
+
className: "font-medium text-text-primary",
|
|
161
|
+
children: y("eventfullymanaged.venues.form.fields.state", "State")
|
|
162
|
+
}), /* @__PURE__ */ c(h, {
|
|
163
|
+
value: O.state,
|
|
164
|
+
onChange: (e) => A("state", e.target.value)
|
|
165
|
+
})]
|
|
166
|
+
})
|
|
167
|
+
]
|
|
168
|
+
}),
|
|
169
|
+
/* @__PURE__ */ l("div", {
|
|
170
|
+
className: "grid grid-cols-1 gap-4 md:grid-cols-3",
|
|
171
|
+
children: [
|
|
172
|
+
/* @__PURE__ */ l("label", {
|
|
173
|
+
className: "space-y-1 text-sm",
|
|
174
|
+
children: [/* @__PURE__ */ c("span", {
|
|
175
|
+
className: "font-medium text-text-primary",
|
|
176
|
+
children: y("eventfullymanaged.venues.form.fields.country", "Country")
|
|
177
|
+
}), /* @__PURE__ */ c(h, {
|
|
178
|
+
value: O.country,
|
|
179
|
+
onChange: (e) => A("country", e.target.value)
|
|
180
|
+
})]
|
|
181
|
+
}),
|
|
182
|
+
/* @__PURE__ */ l("label", {
|
|
183
|
+
className: "space-y-1 text-sm",
|
|
184
|
+
children: [/* @__PURE__ */ c("span", {
|
|
185
|
+
className: "font-medium text-text-primary",
|
|
186
|
+
children: y("eventfullymanaged.venues.form.fields.postalCode", "Postal Code")
|
|
187
|
+
}), /* @__PURE__ */ c(h, {
|
|
188
|
+
value: O.postalCode,
|
|
189
|
+
onChange: (e) => A("postalCode", e.target.value)
|
|
190
|
+
})]
|
|
191
|
+
}),
|
|
192
|
+
/* @__PURE__ */ l("label", {
|
|
193
|
+
className: "space-y-1 text-sm",
|
|
194
|
+
children: [/* @__PURE__ */ c("span", {
|
|
195
|
+
className: "font-medium text-text-primary",
|
|
196
|
+
children: y("eventfullymanaged.venues.form.fields.status", "Status")
|
|
197
|
+
}), /* @__PURE__ */ l("select", {
|
|
198
|
+
value: O.status,
|
|
199
|
+
onChange: (e) => A("status", e.target.value),
|
|
200
|
+
className: "w-full rounded-input border border-border-default bg-bg-surface px-3 py-2 text-sm text-text-primary transition-colors focus-visible:border-border-focus focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus)] focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]",
|
|
201
|
+
children: [
|
|
202
|
+
/* @__PURE__ */ c("option", {
|
|
203
|
+
value: "ACTIVE",
|
|
204
|
+
children: y("eventfullymanaged.venues.form.statusOptions.active", "Active")
|
|
205
|
+
}),
|
|
206
|
+
/* @__PURE__ */ c("option", {
|
|
207
|
+
value: "INACTIVE",
|
|
208
|
+
children: y("eventfullymanaged.venues.form.statusOptions.inactive", "Inactive")
|
|
209
|
+
}),
|
|
210
|
+
/* @__PURE__ */ c("option", {
|
|
211
|
+
value: "MAINTENANCE",
|
|
212
|
+
children: y("eventfullymanaged.venues.form.statusOptions.maintenance", "Maintenance")
|
|
213
|
+
})
|
|
214
|
+
]
|
|
215
|
+
})]
|
|
216
|
+
})
|
|
217
|
+
]
|
|
218
|
+
}),
|
|
219
|
+
/* @__PURE__ */ l("label", {
|
|
220
|
+
className: "block space-y-1 text-sm",
|
|
221
|
+
children: [/* @__PURE__ */ c("span", {
|
|
222
|
+
className: "font-medium text-text-primary",
|
|
223
|
+
children: y("eventfullymanaged.venues.form.fields.amenities", "Amenities (comma separated)")
|
|
224
|
+
}), /* @__PURE__ */ c(h, {
|
|
225
|
+
value: O.amenities,
|
|
226
|
+
onChange: (e) => A("amenities", e.target.value),
|
|
227
|
+
placeholder: y("eventfullymanaged.venues.form.amenitiesPlaceholder", "wifi, parking, catering")
|
|
228
|
+
})]
|
|
229
|
+
}),
|
|
230
|
+
/* @__PURE__ */ c("div", {
|
|
231
|
+
className: "flex justify-end",
|
|
232
|
+
children: /* @__PURE__ */ l(p, {
|
|
233
|
+
type: "submit",
|
|
234
|
+
disabled: M,
|
|
235
|
+
children: [/* @__PURE__ */ c(d, { className: "h-4 w-4" }), M ? y("eventfullymanaged.venues.form.actions.saving", "Saving...") : y("eventfullymanaged.venues.form.actions.save", "Save Venue")]
|
|
219
236
|
})
|
|
220
|
-
]
|
|
221
|
-
}),
|
|
222
|
-
/* @__PURE__ */ l("label", {
|
|
223
|
-
className: "block space-y-1 text-sm",
|
|
224
|
-
children: [/* @__PURE__ */ c("span", {
|
|
225
|
-
className: "font-medium text-text-primary",
|
|
226
|
-
children: h("eventfullymanaged.venues.form.fields.amenities", "Amenities (comma separated)")
|
|
227
|
-
}), /* @__PURE__ */ c("input", {
|
|
228
|
-
value: w.amenities,
|
|
229
|
-
onChange: (e) => E("amenities", e.target.value),
|
|
230
|
-
placeholder: h("eventfullymanaged.venues.form.amenitiesPlaceholder", "wifi, parking, catering"),
|
|
231
|
-
className: "w-full rounded-md border border-border-default px-3 py-2"
|
|
232
|
-
})]
|
|
233
|
-
}),
|
|
234
|
-
/* @__PURE__ */ c("div", {
|
|
235
|
-
className: "flex justify-end",
|
|
236
|
-
children: /* @__PURE__ */ l("button", {
|
|
237
|
-
type: "submit",
|
|
238
|
-
disabled: O,
|
|
239
|
-
className: "inline-flex items-center rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:opacity-90 disabled:opacity-60",
|
|
240
|
-
children: [/* @__PURE__ */ c(d, { className: "mr-2 h-4 w-4" }), O ? h("eventfullymanaged.venues.form.actions.saving", "Saving...") : h("eventfullymanaged.venues.form.actions.save", "Save Venue")]
|
|
241
237
|
})
|
|
242
|
-
|
|
243
|
-
|
|
238
|
+
]
|
|
239
|
+
})
|
|
244
240
|
})]
|
|
245
241
|
});
|
|
246
242
|
}
|
|
247
243
|
//#endregion
|
|
248
|
-
export {
|
|
244
|
+
export { v as default };
|
|
249
245
|
|
|
250
246
|
//# sourceMappingURL=VenueFormPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VenueFormPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/venues/VenueFormPage.tsx"],"sourcesContent":["/* eslint-disable react-hooks/set-state-in-effect */\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { ArrowLeft, Save } from 'lucide-react';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useCreateVenueMutation, useUpdateVenueMutation, useVenueQuery } from '../../api/eventApi';\nimport { useEventfullyManaged } from '../../context/EventfullyManagedContext';\n\ntype VenueFormState = {\n name: string;\n description: string;\n addressLine1: string;\n city: string;\n state: string;\n country: string;\n postalCode: string;\n capacity: string;\n amenities: string;\n status: string;\n};\n\nconst initialState: VenueFormState = {\n name: '',\n description: '',\n addressLine1: '',\n city: '',\n state: '',\n country: 'India',\n postalCode: '',\n capacity: '',\n amenities: '',\n status: 'ACTIVE',\n};\n\nexport default function VenueFormPage() {\n const { t: translate } = useI18n();\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n const { id = '' } = useParams<{ id: string }>();\n const isEdit = useMemo(() => Boolean(id), [id]);\n const { navigate } = useEventfullyManaged();\n const { data } = useVenueQuery(id);\n const [createVenue, { loading: creating }] = useCreateVenueMutation();\n const [updateVenue, { loading: updating }] = useUpdateVenueMutation();\n const [form, setForm] = useState<VenueFormState>(initialState);\n\n useEffect(() => {\n if (!isEdit || !data?.venue) {\n return;\n }\n setForm({\n name: data.venue.name ?? '',\n description: data.venue.description ?? '',\n addressLine1: data.venue.addressLine1 ?? '',\n city: data.venue.city ?? '',\n state: data.venue.state ?? '',\n country: data.venue.country ?? 'India',\n postalCode: data.venue.postalCode ?? '',\n capacity: data.venue.capacity ? String(data.venue.capacity) : '',\n amenities: (data.venue.amenities ?? []).join(', '),\n status: data.venue.status ?? 'ACTIVE',\n });\n }, [data, isEdit]);\n\n const onChange = (field: keyof VenueFormState, value: string) => {\n setForm((prev) => ({ ...prev, [field]: value }));\n };\n\n const onSubmit = async (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n const payload = {\n name: form.name,\n description: form.description,\n addressLine1: form.addressLine1,\n city: form.city,\n state: form.state,\n country: form.country,\n postalCode: form.postalCode,\n capacity: form.capacity ? Number(form.capacity) : null,\n amenities: form.amenities\n .split(',')\n .map((item) => item.trim())\n .filter(Boolean),\n status: form.status,\n pricing: {},\n openingHours: {},\n metadata: {},\n };\n\n if (isEdit) {\n await updateVenue({ variables: { id, input: payload } });\n navigate(`/venues/${id}`);\n return;\n }\n\n const response = await createVenue({ variables: { input: payload } });\n const createdId = response.data?.createVenue?.id;\n navigate(createdId ? `/venues/${createdId}` : '/venues');\n };\n\n const isSaving = creating || updating;\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <button\n type=\"button\"\n onClick={() => navigate('/venues')}\n className=\"inline-flex items-center gap-2 text-sm text-text-secondary hover:text-text-primary\"\n >\n <ArrowLeft className=\"h-4 w-4\" />\n {t('eventfullymanaged.venues.form.backToVenues', 'Back to Venues')}\n </button>\n <h1 className=\"mt-3 text-2xl font-bold text-text-primary\">\n {isEdit\n ? t('eventfullymanaged.venues.form.editTitle', 'Edit Venue')\n : t('eventfullymanaged.venues.form.createTitle', 'Create Venue')}\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {t('eventfullymanaged.venues.form.description', 'Manage venue details with live backend persistence.')}\n </p>\n </div>\n\n <form onSubmit={onSubmit} className=\"space-y-4 rounded-lg border border-border-default bg-bg-surface p-5\">\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.name', 'Name')}\n </span>\n <input\n value={form.name}\n onChange={(e) => onChange('name', e.target.value)}\n required\n className=\"w-full rounded-md border border-border-default px-3 py-2\"\n />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.capacity', 'Capacity')}\n </span>\n <input\n value={form.capacity}\n onChange={(e) => onChange('capacity', e.target.value)}\n type=\"number\"\n min=\"0\"\n className=\"w-full rounded-md border border-border-default px-3 py-2\"\n />\n </label>\n </div>\n\n <label className=\"block space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.description', 'Description')}\n </span>\n <textarea\n value={form.description}\n onChange={(e) => onChange('description', e.target.value)}\n rows={3}\n className=\"w-full rounded-md border border-border-default px-3 py-2\"\n />\n </label>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-4\">\n <label className=\"space-y-1 text-sm md:col-span-2\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.address', 'Address')}\n </span>\n <input\n value={form.addressLine1}\n onChange={(e) => onChange('addressLine1', e.target.value)}\n className=\"w-full rounded-md border border-border-default px-3 py-2\"\n />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.city', 'City')}\n </span>\n <input\n value={form.city}\n onChange={(e) => onChange('city', e.target.value)}\n className=\"w-full rounded-md border border-border-default px-3 py-2\"\n />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.state', 'State')}\n </span>\n <input\n value={form.state}\n onChange={(e) => onChange('state', e.target.value)}\n className=\"w-full rounded-md border border-border-default px-3 py-2\"\n />\n </label>\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-3\">\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.country', 'Country')}\n </span>\n <input\n value={form.country}\n onChange={(e) => onChange('country', e.target.value)}\n className=\"w-full rounded-md border border-border-default px-3 py-2\"\n />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.postalCode', 'Postal Code')}\n </span>\n <input\n value={form.postalCode}\n onChange={(e) => onChange('postalCode', e.target.value)}\n className=\"w-full rounded-md border border-border-default px-3 py-2\"\n />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.status', 'Status')}\n </span>\n <select\n value={form.status}\n onChange={(e) => onChange('status', e.target.value)}\n className=\"w-full rounded-md border border-border-default px-3 py-2\"\n >\n <option value=\"ACTIVE\">{t('eventfullymanaged.venues.form.statusOptions.active', 'Active')}</option>\n <option value=\"INACTIVE\">{t('eventfullymanaged.venues.form.statusOptions.inactive', 'Inactive')}</option>\n <option value=\"MAINTENANCE\">\n {t('eventfullymanaged.venues.form.statusOptions.maintenance', 'Maintenance')}\n </option>\n </select>\n </label>\n </div>\n\n <label className=\"block space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.amenities', 'Amenities (comma separated)')}\n </span>\n <input\n value={form.amenities}\n onChange={(e) => onChange('amenities', e.target.value)}\n placeholder={t('eventfullymanaged.venues.form.amenitiesPlaceholder', 'wifi, parking, catering')}\n className=\"w-full rounded-md border border-border-default px-3 py-2\"\n />\n </label>\n\n <div className=\"flex justify-end\">\n <button\n type=\"submit\"\n disabled={isSaving}\n className=\"inline-flex items-center rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:opacity-90 disabled:opacity-60\"\n >\n <Save className=\"mr-2 h-4 w-4\" />\n {isSaving\n ? t('eventfullymanaged.venues.form.actions.saving', 'Saving...')\n : t('eventfullymanaged.venues.form.actions.save', 'Save Venue')}\n </button>\n </div>\n </form>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VenueFormPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/venues/VenueFormPage.tsx"],"sourcesContent":["/* eslint-disable react-hooks/set-state-in-effect */\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { ArrowLeft, Save } from 'lucide-react';\nimport { Button, GlassCard, Input, Textarea } from '@burdenoff/fe-libs/ui';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useCreateVenueMutation, useUpdateVenueMutation, useVenueQuery } from '../../api/eventApi';\nimport { useEventfullyManaged } from '../../context/EventfullyManagedContext';\n\ntype VenueFormState = {\n name: string;\n description: string;\n addressLine1: string;\n city: string;\n state: string;\n country: string;\n postalCode: string;\n capacity: string;\n amenities: string;\n status: string;\n};\n\nconst initialState: VenueFormState = {\n name: '',\n description: '',\n addressLine1: '',\n city: '',\n state: '',\n country: 'India',\n postalCode: '',\n capacity: '',\n amenities: '',\n status: 'ACTIVE',\n};\n\nexport default function VenueFormPage() {\n const { t: translate } = useI18n();\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n const { id = '' } = useParams<{ id: string }>();\n const isEdit = useMemo(() => Boolean(id), [id]);\n const { navigate } = useEventfullyManaged();\n const { data } = useVenueQuery(id);\n const [createVenue, { loading: creating }] = useCreateVenueMutation();\n const [updateVenue, { loading: updating }] = useUpdateVenueMutation();\n const [form, setForm] = useState<VenueFormState>(initialState);\n\n useEffect(() => {\n if (!isEdit || !data?.venue) {\n return;\n }\n setForm({\n name: data.venue.name ?? '',\n description: data.venue.description ?? '',\n addressLine1: data.venue.addressLine1 ?? '',\n city: data.venue.city ?? '',\n state: data.venue.state ?? '',\n country: data.venue.country ?? 'India',\n postalCode: data.venue.postalCode ?? '',\n capacity: data.venue.capacity ? String(data.venue.capacity) : '',\n amenities: (data.venue.amenities ?? []).join(', '),\n status: data.venue.status ?? 'ACTIVE',\n });\n }, [data, isEdit]);\n\n const onChange = (field: keyof VenueFormState, value: string) => {\n setForm((prev) => ({ ...prev, [field]: value }));\n };\n\n const onSubmit = async (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n const payload = {\n name: form.name,\n description: form.description,\n addressLine1: form.addressLine1,\n city: form.city,\n state: form.state,\n country: form.country,\n postalCode: form.postalCode,\n capacity: form.capacity ? Number(form.capacity) : null,\n amenities: form.amenities\n .split(',')\n .map((item) => item.trim())\n .filter(Boolean),\n status: form.status,\n pricing: {},\n openingHours: {},\n metadata: {},\n };\n\n if (isEdit) {\n await updateVenue({ variables: { id, input: payload } });\n navigate(`/venues/${id}`);\n return;\n }\n\n const response = await createVenue({ variables: { input: payload } });\n const createdId = response.data?.createVenue?.id;\n navigate(createdId ? `/venues/${createdId}` : '/venues');\n };\n\n const isSaving = creating || updating;\n const selectClass =\n 'w-full rounded-input border border-border-default bg-bg-surface px-3 py-2 text-sm text-text-primary transition-colors focus-visible:border-border-focus focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus)] focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]';\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <Button type=\"button\" variant=\"ghost\" size=\"sm\" onClick={() => navigate('/venues')}>\n <ArrowLeft className=\"h-4 w-4\" />\n {t('eventfullymanaged.venues.form.backToVenues', 'Back to Venues')}\n </Button>\n <h1 className=\"mt-3 text-2xl font-bold text-text-primary\">\n {isEdit\n ? t('eventfullymanaged.venues.form.editTitle', 'Edit Venue')\n : t('eventfullymanaged.venues.form.createTitle', 'Create Venue')}\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {t('eventfullymanaged.venues.form.description', 'Manage venue details with live backend persistence.')}\n </p>\n </div>\n\n <GlassCard treatment=\"plain\" className=\"border-border-seam p-5\">\n <form onSubmit={onSubmit} className=\"space-y-4\">\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.name', 'Name')}\n </span>\n <Input value={form.name} onChange={(e) => onChange('name', e.target.value)} required />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.capacity', 'Capacity')}\n </span>\n <Input\n value={form.capacity}\n onChange={(e) => onChange('capacity', e.target.value)}\n type=\"number\"\n min=\"0\"\n />\n </label>\n </div>\n\n <label className=\"block space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.description', 'Description')}\n </span>\n <Textarea value={form.description} onChange={(e) => onChange('description', e.target.value)} rows={3} />\n </label>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-4\">\n <label className=\"space-y-1 text-sm md:col-span-2\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.address', 'Address')}\n </span>\n <Input value={form.addressLine1} onChange={(e) => onChange('addressLine1', e.target.value)} />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.city', 'City')}\n </span>\n <Input value={form.city} onChange={(e) => onChange('city', e.target.value)} />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.state', 'State')}\n </span>\n <Input value={form.state} onChange={(e) => onChange('state', e.target.value)} />\n </label>\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-3\">\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.country', 'Country')}\n </span>\n <Input value={form.country} onChange={(e) => onChange('country', e.target.value)} />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.postalCode', 'Postal Code')}\n </span>\n <Input value={form.postalCode} onChange={(e) => onChange('postalCode', e.target.value)} />\n </label>\n <label className=\"space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.status', 'Status')}\n </span>\n <select value={form.status} onChange={(e) => onChange('status', e.target.value)} className={selectClass}>\n <option value=\"ACTIVE\">{t('eventfullymanaged.venues.form.statusOptions.active', 'Active')}</option>\n <option value=\"INACTIVE\">\n {t('eventfullymanaged.venues.form.statusOptions.inactive', 'Inactive')}\n </option>\n <option value=\"MAINTENANCE\">\n {t('eventfullymanaged.venues.form.statusOptions.maintenance', 'Maintenance')}\n </option>\n </select>\n </label>\n </div>\n\n <label className=\"block space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.venues.form.fields.amenities', 'Amenities (comma separated)')}\n </span>\n <Input\n value={form.amenities}\n onChange={(e) => onChange('amenities', e.target.value)}\n placeholder={t('eventfullymanaged.venues.form.amenitiesPlaceholder', 'wifi, parking, catering')}\n />\n </label>\n\n <div className=\"flex justify-end\">\n <Button type=\"submit\" disabled={isSaving}>\n <Save className=\"h-4 w-4\" />\n {isSaving\n ? t('eventfullymanaged.venues.form.actions.saving', 'Saving...')\n : t('eventfullymanaged.venues.form.actions.save', 'Save Venue')}\n </Button>\n </div>\n </form>\n </GlassCard>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;AAuBA,IAAM,IAA+B;CACnC,MAAM;CACN,aAAa;CACb,cAAc;CACd,MAAM;CACN,OAAO;CACP,SAAS;CACT,YAAY;CACZ,UAAU;CACV,WAAW;CACX,QAAQ;CACT;AAED,SAAwB,IAAgB;CACtC,IAAM,EAAE,GAAG,MAAc,GAAS,EAC5B,KAAK,GAAa,MAAqB;EAC3C,IAAM,IAAQ,EAAU,EAAI;AAC5B,SAAO,MAAU,IAAM,IAAW;IAE9B,EAAE,QAAK,OAAO,GAA2B,EACzC,IAAS,QAAc,EAAQ,GAAK,CAAC,EAAG,CAAC,EACzC,EAAE,gBAAa,GAAsB,EACrC,EAAE,YAAS,EAAc,EAAG,EAC5B,CAAC,GAAa,EAAE,SAAS,OAAc,GAAwB,EAC/D,CAAC,GAAa,EAAE,SAAS,OAAc,GAAwB,EAC/D,CAAC,GAAM,KAAW,EAAyB,EAAa;AAE9D,SAAgB;AACV,GAAC,KAAU,CAAC,GAAM,SAGtB,EAAQ;GACN,MAAM,EAAK,MAAM,QAAQ;GACzB,aAAa,EAAK,MAAM,eAAe;GACvC,cAAc,EAAK,MAAM,gBAAgB;GACzC,MAAM,EAAK,MAAM,QAAQ;GACzB,OAAO,EAAK,MAAM,SAAS;GAC3B,SAAS,EAAK,MAAM,WAAW;GAC/B,YAAY,EAAK,MAAM,cAAc;GACrC,UAAU,EAAK,MAAM,WAAW,OAAO,EAAK,MAAM,SAAS,GAAG;GAC9D,YAAY,EAAK,MAAM,aAAa,EAAE,EAAE,KAAK,KAAK;GAClD,QAAQ,EAAK,MAAM,UAAU;GAC9B,CAAC;IACD,CAAC,GAAM,EAAO,CAAC;CAElB,IAAM,KAAY,GAA6B,MAAkB;AAC/D,KAAS,OAAU;GAAE,GAAG;IAAO,IAAQ;GAAO,EAAE;IAG5C,IAAW,OAAO,MAA4C;AAClE,IAAM,gBAAgB;EACtB,IAAM,IAAU;GACd,MAAM,EAAK;GACX,aAAa,EAAK;GAClB,cAAc,EAAK;GACnB,MAAM,EAAK;GACX,OAAO,EAAK;GACZ,SAAS,EAAK;GACd,YAAY,EAAK;GACjB,UAAU,EAAK,WAAW,OAAO,EAAK,SAAS,GAAG;GAClD,WAAW,EAAK,UACb,MAAM,IAAI,CACV,KAAK,MAAS,EAAK,MAAM,CAAC,CAC1B,OAAO,QAAQ;GAClB,QAAQ,EAAK;GACb,SAAS,EAAE;GACX,cAAc,EAAE;GAChB,UAAU,EAAE;GACb;AAED,MAAI,GAAQ;AAEV,GADA,MAAM,EAAY,EAAE,WAAW;IAAE;IAAI,OAAO;IAAS,EAAE,CAAC,EACxD,EAAS,WAAW,IAAK;AACzB;;EAIF,IAAM,KADW,MAAM,EAAY,EAAE,WAAW,EAAE,OAAO,GAAS,EAAE,CAAC,EAC1C,MAAM,aAAa;AAC9C,IAAS,IAAY,WAAW,MAAc,UAAU;IAGpD,IAAW,KAAY;AAI7B,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD,EAAA,UAAA;GACE,kBAAC,GAAD;IAAQ,MAAK;IAAS,SAAQ;IAAQ,MAAK;IAAK,eAAe,EAAS,UAAU;cAAlF,CACE,kBAAC,GAAD,EAAW,WAAU,WAAY,CAAA,EAChC,EAAE,8CAA8C,iBAAiB,CAC3D;;GACT,kBAAC,MAAD;IAAI,WAAU;cACX,IACG,EAAE,2CAA2C,aAAa,GAC1D,EAAE,6CAA6C,eAAe;IAC/D,CAAA;GACL,kBAAC,KAAD;IAAG,WAAU;cACV,EAAE,6CAA6C,sDAAsD;IACpG,CAAA;GACA,EAAA,CAAA,EAEN,kBAAC,GAAD;GAAW,WAAU;GAAQ,WAAU;aACrC,kBAAC,QAAD;IAAgB;IAAU,WAAU;cAApC;KACE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,SAAD;OAAO,WAAU;iBAAjB,CACE,kBAAC,QAAD;QAAM,WAAU;kBACb,EAAE,6CAA6C,OAAO;QAClD,CAAA,EACP,kBAAC,GAAD;QAAO,OAAO,EAAK;QAAM,WAAW,MAAM,EAAS,QAAQ,EAAE,OAAO,MAAM;QAAE,UAAA;QAAW,CAAA,CACjF;UACR,kBAAC,SAAD;OAAO,WAAU;iBAAjB,CACE,kBAAC,QAAD;QAAM,WAAU;kBACb,EAAE,iDAAiD,WAAW;QAC1D,CAAA,EACP,kBAAC,GAAD;QACE,OAAO,EAAK;QACZ,WAAW,MAAM,EAAS,YAAY,EAAE,OAAO,MAAM;QACrD,MAAK;QACL,KAAI;QACJ,CAAA,CACI;SACJ;;KAEN,kBAAC,SAAD;MAAO,WAAU;gBAAjB,CACE,kBAAC,QAAD;OAAM,WAAU;iBACb,EAAE,oDAAoD,cAAc;OAChE,CAAA,EACP,kBAAC,GAAD;OAAU,OAAO,EAAK;OAAa,WAAW,MAAM,EAAS,eAAe,EAAE,OAAO,MAAM;OAAE,MAAM;OAAK,CAAA,CAClG;;KAER,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,SAAD;QAAO,WAAU;kBAAjB,CACE,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAE,gDAAgD,UAAU;SACxD,CAAA,EACP,kBAAC,GAAD;SAAO,OAAO,EAAK;SAAc,WAAW,MAAM,EAAS,gBAAgB,EAAE,OAAO,MAAM;SAAI,CAAA,CACxF;;OACR,kBAAC,SAAD;QAAO,WAAU;kBAAjB,CACE,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAE,6CAA6C,OAAO;SAClD,CAAA,EACP,kBAAC,GAAD;SAAO,OAAO,EAAK;SAAM,WAAW,MAAM,EAAS,QAAQ,EAAE,OAAO,MAAM;SAAI,CAAA,CACxE;;OACR,kBAAC,SAAD;QAAO,WAAU;kBAAjB,CACE,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAE,8CAA8C,QAAQ;SACpD,CAAA,EACP,kBAAC,GAAD;SAAO,OAAO,EAAK;SAAO,WAAW,MAAM,EAAS,SAAS,EAAE,OAAO,MAAM;SAAI,CAAA,CAC1E;;OACJ;;KAEN,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,SAAD;QAAO,WAAU;kBAAjB,CACE,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAE,gDAAgD,UAAU;SACxD,CAAA,EACP,kBAAC,GAAD;SAAO,OAAO,EAAK;SAAS,WAAW,MAAM,EAAS,WAAW,EAAE,OAAO,MAAM;SAAI,CAAA,CAC9E;;OACR,kBAAC,SAAD;QAAO,WAAU;kBAAjB,CACE,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAE,mDAAmD,cAAc;SAC/D,CAAA,EACP,kBAAC,GAAD;SAAO,OAAO,EAAK;SAAY,WAAW,MAAM,EAAS,cAAc,EAAE,OAAO,MAAM;SAAI,CAAA,CACpF;;OACR,kBAAC,SAAD;QAAO,WAAU;kBAAjB,CACE,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAE,+CAA+C,SAAS;SACtD,CAAA,EACP,kBAAC,UAAD;SAAQ,OAAO,EAAK;SAAQ,WAAW,MAAM,EAAS,UAAU,EAAE,OAAO,MAAM;SAAE,WAtF3F;mBAsFU;UACE,kBAAC,UAAD;WAAQ,OAAM;qBAAU,EAAE,sDAAsD,SAAS;WAAU,CAAA;UACnG,kBAAC,UAAD;WAAQ,OAAM;qBACX,EAAE,wDAAwD,WAAW;WAC/D,CAAA;UACT,kBAAC,UAAD;WAAQ,OAAM;qBACX,EAAE,2DAA2D,cAAc;WACrE,CAAA;UACF;WACH;;OACJ;;KAEN,kBAAC,SAAD;MAAO,WAAU;gBAAjB,CACE,kBAAC,QAAD;OAAM,WAAU;iBACb,EAAE,kDAAkD,8BAA8B;OAC9E,CAAA,EACP,kBAAC,GAAD;OACE,OAAO,EAAK;OACZ,WAAW,MAAM,EAAS,aAAa,EAAE,OAAO,MAAM;OACtD,aAAa,EAAE,sDAAsD,0BAA0B;OAC/F,CAAA,CACI;;KAER,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD;OAAQ,MAAK;OAAS,UAAU;iBAAhC,CACE,kBAAC,GAAD,EAAM,WAAU,WAAY,CAAA,EAC3B,IACG,EAAE,gDAAgD,YAAY,GAC9D,EAAE,8CAA8C,aAAa,CAC1D;;MACL,CAAA;KACD;;GACG,CAAA,CACR"}
|