@oneclick.dev/cms-core-modules 0.0.104 → 0.0.106

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/{Acquisition-CPlZzUBo.mjs → Acquisition-B2pM5vSp.mjs} +2 -2
  2. package/dist/{Acquisition-Br1Pfny3.js → Acquisition-Dt2rREU8.js} +1 -1
  3. package/dist/{Audience-BfkrmBuQ.js → Audience-Bs7b0TNm.js} +1 -1
  4. package/dist/{Audience-DTblSAiL.mjs → Audience-VLnUsQvW.mjs} +2 -2
  5. package/dist/{ContentEditor-B1nfKG_5.mjs → ContentEditor-BNLEv-qJ.mjs} +3119 -3098
  6. package/dist/{ContentEditor-DdFU8piH.js → ContentEditor-BUvvqfG1.js} +36 -36
  7. package/dist/{Create-qPeQxkdl.js → Create-89z41K73.js} +1 -1
  8. package/dist/{Create-BRBh0xjM.mjs → Create-Cn_Eufga.mjs} +5 -1
  9. package/dist/{Entries-C8UJkrVC.mjs → Entries-BdhUyJR5.mjs} +1 -1
  10. package/dist/{Entries-BaS6H6ak.js → Entries-CEXM_SkO.js} +1 -1
  11. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Ceoje52V.js +1 -0
  12. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-DMGcRmm-.mjs +1255 -0
  13. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-COrK1j0S.js +1 -0
  14. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-Vb3q8EVv.mjs +330 -0
  15. package/dist/{Overview-CpHhuiaV.js → Overview-Bn1Xx3_j.js} +1 -1
  16. package/dist/{Overview-BrCwozey.js → Overview-DC9io1bk.js} +1 -1
  17. package/dist/Overview-Di84CsR5.mjs +476 -0
  18. package/dist/Overview-UoZHUMUz.js +1 -0
  19. package/dist/{Overview-kaMhsIUq.mjs → Overview-ejh4vUMT.mjs} +3 -3
  20. package/dist/{Overview-D_T3K6aq.mjs → Overview-lWAyyenp.mjs} +1 -1
  21. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-CuwREvXD.js +349 -0
  22. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-GYNZ_yhD.mjs +3077 -0
  23. package/dist/{SeoHealth-BzcWd_w7.mjs → SeoHealth-DsbVdd2l.mjs} +3 -3
  24. package/dist/SeoHealth-az1YuNF2.js +1 -0
  25. package/dist/{TableView-DXmEF6pY.mjs → TableView-Bm6HaRHm.mjs} +1 -1
  26. package/dist/{TableView-CPAw3h8g.js → TableView-DQW0A1oG.js} +1 -1
  27. package/dist/agenda-IOqtALWf.js +1 -0
  28. package/dist/agenda-neyeLWv-.mjs +1165 -0
  29. package/dist/cms-core-modules.css +1 -1
  30. package/dist/{index-C4YUVWzJ.js → index-A2kp8Isi.js} +6 -6
  31. package/dist/{index-BuzLn4Km.js → index-B5aBwdxY.js} +2 -2
  32. package/dist/{index-p5Uqu8c2.mjs → index-BRdCrvcz.mjs} +52 -47
  33. package/dist/{index-D3L8WAJI.js → index-BiT55eU0.js} +2 -2
  34. package/dist/{index-CMk3uhUt.mjs → index-Bvxc5xv_.mjs} +153 -147
  35. package/dist/{index-DQYBP8Js.js → index-G7cIlnGN.js} +4 -4
  36. package/dist/{index-DjDCYQ_6.mjs → index-X6LV64jK.mjs} +102 -101
  37. package/dist/{index-_2lRVt_k.mjs → index-uOkqO74I.mjs} +105 -107
  38. package/dist/index-unsDfNYv.mjs +1187 -0
  39. package/dist/index-vHmvbEwa.js +35 -0
  40. package/dist/index.cjs.js +1 -1
  41. package/dist/index.mjs +14 -14
  42. package/dist/interpolation-CHn59tIC.js +1 -0
  43. package/dist/interpolation-w7IRDJwK.mjs +180 -0
  44. package/dist/orders-C65SlpJy.mjs +618 -0
  45. package/dist/orders-XVzWAgG1.js +1 -0
  46. package/dist/src/appointments/components/edit/EventDialog/BookingsList.vue.d.ts +11 -2
  47. package/dist/src/appointments/components/edit/EventDialog/OrderDetailDialog.vue.d.ts +55 -0
  48. package/dist/src/appointments/components/edit/EventDialog/ReservationDetailDialog.vue.d.ts +6 -1
  49. package/dist/src/appointments/components/edit/NewReservationDialog/CustomerInformation.vue.d.ts +10 -0
  50. package/dist/src/appointments/components/edit/NewReservationDialog/NewReservationDialog.vue.d.ts +25 -1
  51. package/dist/src/appointments/components/edit/NewReservationDialog/QuickReservationAdder.vue.d.ts +26 -0
  52. package/dist/src/appointments/components/edit/NewReservationDialog/ReservationLines.vue.d.ts +31 -0
  53. package/dist/src/appointments/components/edit/dashboard/Timeline.vue.d.ts +3 -1
  54. package/dist/src/appointments/composables/useHorizontalScroll.d.ts +20 -0
  55. package/dist/src/lib/interpolation.d.ts +6 -0
  56. package/package.json +2 -2
  57. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-9Q7TMm4u.mjs +0 -401
  58. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-DiNzGl-q.js +0 -1
  59. package/dist/Overview-BYMrsZjM.mjs +0 -332
  60. package/dist/Overview-t0pG5xjA.js +0 -1
  61. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-Cz_22Oce.mjs +0 -2927
  62. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-DPPNc-Z5.js +0 -349
  63. package/dist/SeoHealth-09sEOu3G.js +0 -1
  64. package/dist/agenda-BNG05SAq.js +0 -1
  65. package/dist/agenda-D1RxMxBS.mjs +0 -1152
  66. package/dist/index-BtujSJeg.js +0 -35
  67. package/dist/index-dOdMm1pV.mjs +0 -1105
  68. package/dist/interpolation-DEDSLETn.mjs +0 -128
  69. package/dist/interpolation-DERg6Lwt.js +0 -1
  70. package/dist/orders-CzzcFQha.mjs +0 -559
  71. package/dist/orders-ETtbA4aQ.js +0 -1
  72. package/dist/src/appointments/components/edit/dashboard/BookingsList.vue.d.ts +0 -110
  73. package/dist/src/appointments/pages/edit/orders.vue.d.ts +0 -98
@@ -1,559 +0,0 @@
1
- import { defineComponent as me, ref as h, computed as D, provide as fe, onMounted as ve, watch as X, resolveComponent as y, openBlock as n, createElementBlock as i, Fragment as N, createVNode as l, withCtx as p, createElementVNode as e, unref as o, createTextVNode as C, renderList as $, toDisplayString as d, createBlock as G, createCommentVNode as k, normalizeClass as pe, isRef as xe, normalizeStyle as J, nextTick as ge } from "vue";
2
- import { useRoute as _e, useRouter as he, useOverlayParams as ye, useModuleRoute as ke, useModule as be, useFirebaseIntegration as we } from "@oneclick.dev/cms-kit";
3
- import { ShoppingBag as K, Users as L, ChevronLeft as De, ChevronRight as Ce, RefreshCw as Ie, Search as Se, X as Pe, Calendar as W, Clock as Z } from "lucide-vue-next";
4
- import { F as Ne, _ as V, a as Oe } from "./ReservationDetailDialog.vue_vue_type_script_setup_true_lang-Cz_22Oce.mjs";
5
- import { _ as ze } from "./EditLayout.vue_vue_type_script_setup_true_lang-DWMqQvHl.mjs";
6
- const Te = { class: "space-y-6" }, Ae = { class: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4" }, je = { class: "text-2xl font-semibold tracking-tight flex items-center gap-2" }, Re = { class: "flex gap-1 border rounded-lg p-1 w-fit" }, Be = { class: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4" }, Fe = { class: "flex items-center gap-1" }, Ue = { class: "flex items-center gap-1" }, Me = { class: "flex items-center gap-2" }, $e = { class: "flex items-center gap-1" }, Le = { class: "text-sm text-muted-foreground mt-2" }, Ve = { class: "relative mb-4" }, Ee = {
7
- key: 0,
8
- class: "mb-3 text-sm text-muted-foreground"
9
- }, He = {
10
- key: 1,
11
- class: "flex items-center justify-center py-8"
12
- }, qe = {
13
- key: 2,
14
- class: "text-center py-8 text-muted-foreground"
15
- }, Ye = {
16
- key: 3,
17
- class: "text-center py-8 text-muted-foreground"
18
- }, Qe = {
19
- key: 4,
20
- class: "space-y-2"
21
- }, Xe = ["onClick"], Ge = { class: "flex items-start justify-between" }, Je = { class: "flex-1" }, Ke = { class: "font-medium" }, We = { class: "text-sm text-muted-foreground" }, Ze = { class: "text-sm text-muted-foreground" }, et = { class: "flex items-center gap-4 flex-wrap mt-1" }, tt = { class: "flex items-center gap-2 text-xs text-muted-foreground" }, st = { class: "flex items-center gap-2 text-xs text-muted-foreground" }, at = {
22
- key: 0,
23
- class: "flex items-center gap-1 text-xs text-muted-foreground"
24
- }, ot = { class: "flex items-center gap-2 mt-1 text-xs text-muted-foreground" }, nt = { class: "text-right" }, rt = {
25
- key: 0,
26
- class: "inline-block px-2 py-1 text-xs rounded-full bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400"
27
- }, it = {
28
- key: 1,
29
- class: "inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"
30
- }, lt = {
31
- key: 2,
32
- class: "inline-block px-2 py-1 text-xs rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400"
33
- }, dt = {
34
- key: 3,
35
- class: "inline-block px-2 py-1 text-xs rounded-full bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400"
36
- }, ct = {
37
- key: 4,
38
- class: "inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"
39
- }, ut = {
40
- key: 5,
41
- class: "inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"
42
- }, mt = {
43
- key: 6,
44
- class: "inline-block px-2 py-1 text-xs rounded-full bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400"
45
- }, ft = {
46
- key: 7,
47
- class: "text-sm font-medium mt-1"
48
- }, vt = { class: "p-3 bg-muted/30" }, pt = { class: "flex items-start justify-between" }, xt = { class: "flex-1" }, gt = { class: "flex items-center gap-2" }, _t = { class: "font-medium" }, ht = { class: "text-sm text-muted-foreground" }, yt = { class: "text-sm text-muted-foreground" }, kt = { class: "flex items-center gap-2 mt-1 text-xs text-muted-foreground" }, bt = { class: "text-right" }, wt = {
49
- key: 0,
50
- class: "inline-block px-2 py-1 text-xs rounded-full bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400"
51
- }, Dt = {
52
- key: 1,
53
- class: "inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"
54
- }, Ct = {
55
- key: 2,
56
- class: "inline-block px-2 py-1 text-xs rounded-full bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400"
57
- }, It = { class: "text-sm font-medium mt-1" }, St = ["onClick"], Pt = { class: "flex items-center justify-between" }, Nt = { class: "flex items-center gap-4 flex-wrap" }, Ot = { class: "flex items-center gap-2 text-xs text-muted-foreground" }, zt = { class: "flex items-center gap-2 text-xs text-muted-foreground" }, Tt = {
58
- key: 0,
59
- class: "flex items-center gap-1 text-xs text-muted-foreground"
60
- }, At = {
61
- key: 0,
62
- class: "text-right flex items-center gap-2"
63
- }, jt = {
64
- key: 0,
65
- class: "inline-block px-2 py-1 text-xs rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400"
66
- }, Rt = {
67
- key: 1,
68
- class: "inline-block px-2 py-1 text-xs rounded-full bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400"
69
- }, Bt = {
70
- key: 2,
71
- class: "inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"
72
- }, Ft = {
73
- key: 3,
74
- class: "inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"
75
- }, Ut = {
76
- key: 4,
77
- class: "inline-block px-2 py-1 text-xs rounded-full bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400"
78
- }, Mt = {
79
- key: 5,
80
- class: "text-sm font-medium"
81
- }, Qt = /* @__PURE__ */ me({
82
- __name: "orders",
83
- setup($t) {
84
- const E = _e();
85
- he();
86
- const H = ye(), { params: q } = ke(), { config: O } = be(), R = we(O.project), x = h([]), z = h([]), P = h(!0), B = h(null), F = D(() => B?.value?.metadataSchema || []), _ = h(""), T = h(null), I = h("confirmed"), b = /* @__PURE__ */ new Date(), v = h(/* @__PURE__ */ new Date()), ee = D(() => ({
87
- date: re(v.value),
88
- resource: null
89
- }));
90
- fe("event", ee);
91
- const te = D(() => {
92
- const t = new Date(b);
93
- t.setDate(b.getDate() - 1);
94
- const s = new Date(b);
95
- return s.setDate(b.getDate() + 1), v.value.toDateString() === b.toDateString() ? "Today" : v.value.toDateString() === t.toDateString() ? "Yesterday" : v.value.toDateString() === s.toDateString() ? "Tomorrow" : v.value.toLocaleDateString("en-US", {
96
- weekday: "long",
97
- month: "long",
98
- day: "numeric",
99
- year: "numeric"
100
- });
101
- }), se = () => {
102
- const t = new Date(v.value);
103
- t.setDate(t.getDate() - 1), v.value = t;
104
- }, ae = () => {
105
- const t = new Date(v.value);
106
- t.setDate(t.getDate() + 1), t <= b && (v.value = t);
107
- }, oe = D(() => {
108
- const t = new Date(v.value);
109
- return t.setDate(t.getDate() + 1), t <= b;
110
- }), ne = () => {
111
- v.value = /* @__PURE__ */ new Date();
112
- }, re = (t) => {
113
- const s = t.getFullYear(), r = String(t.getMonth() + 1).padStart(2, "0"), c = String(t.getDate()).padStart(2, "0");
114
- return `${s}-${r}-${c}`;
115
- }, Y = (t) => t ? new Date(t).toLocaleTimeString("en-US", {
116
- hour: "2-digit",
117
- minute: "2-digit",
118
- hour12: !1
119
- }) : "", Q = (t) => t ? new Date(t).toLocaleDateString("en-US", {
120
- weekday: "short",
121
- month: "short",
122
- day: "numeric"
123
- }) : "", U = D(() => _.value.trim() ? new Ne(x.value, {
124
- keys: [
125
- "customerInfo.firstName",
126
- "customerInfo.lastName",
127
- "customerInfo.email",
128
- "customerInfo.phone",
129
- "resourceName"
130
- ],
131
- threshold: 0.3,
132
- ignoreLocation: !0
133
- }).search(_.value).map((s) => s.item) : x.value), ie = D(() => {
134
- const t = /* @__PURE__ */ new Map();
135
- for (const s of U.value) {
136
- t.has(s.id) || t.set(s.id, {
137
- id: s.id,
138
- customerInfo: s.customerInfo,
139
- status: s.status,
140
- createdAt: s.createdAt,
141
- metadata: s.metadata || {},
142
- reservations: [],
143
- totalPrice: 0,
144
- totalSpots: 0
145
- });
146
- const r = t.get(s.id);
147
- r.reservations.push(s), r.totalPrice += s.reservationPrice || 0, r.totalSpots += s.spots || 0;
148
- }
149
- return Array.from(t.values());
150
- }), A = D(() => ({
151
- spots: x.value.reduce((t, s) => t + (s.spots || 0), 0),
152
- bookings: x.value.length,
153
- revenue: x.value.reduce((t, s) => t + (s.reservationPrice || 0), 0)
154
- })), le = () => {
155
- _.value = "";
156
- }, de = async () => {
157
- try {
158
- const t = q.value.id, s = await R.get(O.agendaCollection, t);
159
- B.value = s, z.value = s?.resources?.filter((r) => r.isActive) || [];
160
- } catch (t) {
161
- console.error("Error loading resources:", t), z.value = [];
162
- }
163
- }, w = async () => {
164
- P.value = !0, x.value = [];
165
- try {
166
- const t = q.value.id, s = new Date(v.value);
167
- s.setHours(0, 0, 0, 0);
168
- const r = new Date(v.value);
169
- r.setHours(23, 59, 59, 999);
170
- const c = await R.find(O.reservationsCollection, {
171
- filters: [
172
- { field: "agendaId", operator: "==", value: t },
173
- { field: "createdAt", operator: ">=", value: s.toISOString() },
174
- { field: "createdAt", operator: "<=", value: r.toISOString() },
175
- { field: "status", operator: "==", value: I.value }
176
- ]
177
- });
178
- let g = [];
179
- c.forEach((m) => {
180
- (m.reservations || []).forEach((f) => {
181
- const j = z.value.find((M) => M.id === f.resourceId);
182
- g.push({
183
- customerInfo: m.customerInfo,
184
- amountDue: m.amountDue,
185
- amountPaid: m.amountPaid,
186
- status: m.status,
187
- reservationStatus: f.status,
188
- subtotal: m.subtotal,
189
- total: m.total,
190
- discount: m.discount,
191
- id: m.id,
192
- res_id: f.id,
193
- resourceId: f.resourceId,
194
- spots: f.spots,
195
- date: f.date,
196
- createdAt: m.createdAt,
197
- startTime: f.timeslot?.startTime,
198
- endTime: f.timeslot?.endTime,
199
- reservationPrice: f.totalPrice,
200
- reservationBasePrice: f.basePrice,
201
- reservationAddOnsPrice: f.addOnsPrice,
202
- pricingOptionId: f.pricingOptionId,
203
- pricingOption: f.pricingOption,
204
- resourceName: j?.name || "Unknown",
205
- resourceColor: j?.color,
206
- metadata: m.metadata || {},
207
- reservationMetadata: f.metadata || {}
208
- });
209
- });
210
- }), x.value = g.sort((m, S) => (S.createdAt || "").localeCompare(m.createdAt || ""));
211
- } catch (t) {
212
- console.error("Error loading orders:", t), x.value = [];
213
- } finally {
214
- P.value = !1;
215
- }
216
- }, ce = async () => {
217
- await de(), await w();
218
- }, ue = async (t, s) => {
219
- const r = await R.get(O.reservationsCollection, t), c = r?.reservations?.find((g) => g.id === s);
220
- if (c) {
221
- const g = z.value.find((S) => S.id === c.resourceId), m = {
222
- customerInfo: r.customerInfo,
223
- amountDue: r.amountDue,
224
- amountPaid: r.amountPaid,
225
- status: r.status,
226
- reservationStatus: c.status,
227
- subtotal: r.subtotal,
228
- total: r.total,
229
- discount: r.discount,
230
- id: r.id,
231
- res_id: c.id,
232
- resourceId: c.resourceId,
233
- spots: c.spots,
234
- date: c.date,
235
- createdAt: r.createdAt,
236
- startTime: c.timeslot?.startTime,
237
- endTime: c.timeslot?.endTime,
238
- reservationPrice: c.totalPrice,
239
- reservationBasePrice: c.basePrice,
240
- reservationAddOnsPrice: c.addOnsPrice,
241
- pricingOptionId: c.pricingOptionId,
242
- pricingOption: c.pricingOption,
243
- resourceName: g?.name || "Unknown",
244
- resourceColor: g?.color,
245
- metadata: r.metadata || {},
246
- reservationMetadata: c.metadata || {}
247
- };
248
- await ge(), T.value?.openDialog(m);
249
- }
250
- };
251
- return ce(), ve(async () => {
252
- const t = H.value.orderId || E.query.orderId, s = H.value.reservationId || E.query.reservationId;
253
- if (t) {
254
- const r = new URL(window.location.href);
255
- r.searchParams.delete("orderId"), r.searchParams.delete("reservationId"), window.history.replaceState(window.history.state, "", r.toString()), await ue(t, s);
256
- }
257
- }), X(v, () => {
258
- w();
259
- }), X(I, () => {
260
- w();
261
- }), (t, s) => {
262
- const r = y("Button"), c = y("Badge"), g = y("CardTitle"), m = y("CardDescription"), S = y("CardHeader"), f = y("Input"), j = y("CardContent"), M = y("Card");
263
- return n(), i(N, null, [
264
- l(ze, null, {
265
- default: p(() => [
266
- e("div", Te, [
267
- e("div", Ae, [
268
- e("div", null, [
269
- e("h1", je, [
270
- l(o(K), { class: "size-6" }),
271
- s[1] || (s[1] = C(" Orders ", -1))
272
- ]),
273
- s[2] || (s[2] = e("p", { class: "text-muted-foreground text-sm mt-1" }, " View orders by when they were placed ", -1))
274
- ])
275
- ]),
276
- e("div", Re, [
277
- (n(), i(N, null, $(["confirmed", "pending", "cancelled"], (a) => l(r, {
278
- key: a,
279
- variant: o(I) === a ? "default" : "ghost",
280
- size: "sm",
281
- class: "capitalize",
282
- onClick: (u) => I.value = a
283
- }, {
284
- default: p(() => [
285
- C(d(a), 1)
286
- ]),
287
- _: 2
288
- }, 1032, ["variant", "onClick"])), 64))
289
- ]),
290
- l(M, null, {
291
- default: p(() => [
292
- l(S, null, {
293
- default: p(() => [
294
- e("div", Be, [
295
- e("div", null, [
296
- l(g, { class: "flex items-center gap-2" }, {
297
- default: p(() => [
298
- s[3] || (s[3] = C(" Orders received ", -1)),
299
- o(A).bookings > 0 ? (n(), G(c, {
300
- key: 0,
301
- variant: "secondary"
302
- }, {
303
- default: p(() => [
304
- C(d(o(A).bookings), 1)
305
- ]),
306
- _: 1
307
- })) : k("", !0)
308
- ]),
309
- _: 1
310
- }),
311
- l(m, { class: "flex items-center gap-4 mt-1" }, {
312
- default: p(() => [
313
- e("span", Fe, [
314
- l(o(L), { size: 14 }),
315
- C(" " + d(o(A).spots) + " spots ", 1)
316
- ]),
317
- e("span", Ue, " €" + d(o(A).revenue.toFixed(2)) + d(o(I) === "pending" ? " pending " : o(I) === "cancelled" ? " cancelled " : " ") + "revenue ", 1)
318
- ]),
319
- _: 1
320
- })
321
- ]),
322
- e("div", Me, [
323
- e("div", $e, [
324
- l(r, {
325
- variant: "ghost",
326
- size: "icon",
327
- class: "size-8",
328
- onClick: se
329
- }, {
330
- default: p(() => [
331
- l(o(De), { size: 16 })
332
- ]),
333
- _: 1
334
- }),
335
- l(r, {
336
- variant: "ghost",
337
- size: "sm",
338
- class: "h-8 px-3 text-xs",
339
- onClick: ne
340
- }, {
341
- default: p(() => [...s[4] || (s[4] = [
342
- C(" Today ", -1)
343
- ])]),
344
- _: 1
345
- }),
346
- l(r, {
347
- variant: "ghost",
348
- size: "icon",
349
- class: "size-8",
350
- onClick: ae,
351
- disabled: !o(oe)
352
- }, {
353
- default: p(() => [
354
- l(o(Ce), { size: 16 })
355
- ]),
356
- _: 1
357
- }, 8, ["disabled"])
358
- ]),
359
- l(r, {
360
- variant: "ghost",
361
- size: "icon",
362
- onClick: w,
363
- disabled: o(P)
364
- }, {
365
- default: p(() => [
366
- l(o(Ie), {
367
- size: 16,
368
- class: pe({ "animate-spin": o(P) })
369
- }, null, 8, ["class"])
370
- ]),
371
- _: 1
372
- }, 8, ["disabled"])
373
- ])
374
- ]),
375
- e("div", Le, d(o(te)), 1)
376
- ]),
377
- _: 1
378
- }),
379
- l(j, null, {
380
- default: p(() => [
381
- e("div", Ve, [
382
- l(o(Se), {
383
- size: 16,
384
- class: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"
385
- }),
386
- l(f, {
387
- modelValue: o(_),
388
- "onUpdate:modelValue": s[0] || (s[0] = (a) => xe(_) ? _.value = a : null),
389
- placeholder: "Search by name, email, or phone...",
390
- class: "pl-9 pr-9"
391
- }, null, 8, ["modelValue"]),
392
- o(_) ? (n(), G(r, {
393
- key: 0,
394
- variant: "ghost",
395
- size: "icon",
396
- class: "absolute right-1 top-1/2 -translate-y-1/2 h-7 w-7",
397
- onClick: le
398
- }, {
399
- default: p(() => [
400
- l(o(Pe), { size: 14 })
401
- ]),
402
- _: 1
403
- })) : k("", !0)
404
- ]),
405
- o(_) ? (n(), i("div", Ee, " Showing " + d(o(U).length) + " of " + d(o(x).length) + " orders ", 1)) : k("", !0),
406
- o(P) ? (n(), i("div", He, [...s[5] || (s[5] = [
407
- e("div", { class: "animate-spin rounded-full h-8 w-8 border-b-2 border-primary" }, null, -1)
408
- ])])) : o(x).length === 0 ? (n(), i("div", qe, [
409
- l(o(K), { class: "size-12 mx-auto mb-3 opacity-50" }),
410
- s[6] || (s[6] = e("p", null, "No orders received on this day", -1))
411
- ])) : o(U).length === 0 ? (n(), i("div", Ye, " No orders match your search ")) : (n(), i("div", Qe, [
412
- (n(!0), i(N, null, $(o(ie), (a) => (n(), i("div", {
413
- key: a.id,
414
- class: "border rounded-lg overflow-hidden shadow-sm"
415
- }, [
416
- a.reservations.length === 1 ? (n(), i("div", {
417
- key: 0,
418
- class: "p-3 hover:bg-muted/50 transition-colors cursor-pointer",
419
- onClick: (u) => o(T)?.openDialog(a.reservations[0])
420
- }, [
421
- e("div", Ge, [
422
- e("div", Je, [
423
- e("div", Ke, d(a.customerInfo?.firstName || a.customerInfo?.lastName ? [a.customerInfo?.firstName, a.customerInfo?.lastName].filter(Boolean).join(" ") : "Unknown Customer"), 1),
424
- e("div", We, d(a.customerInfo?.email), 1),
425
- e("div", Ze, d(a.customerInfo?.phone), 1),
426
- e("div", et, [
427
- e("div", tt, [
428
- l(o(W), { size: 12 }),
429
- e("span", null, d(Q(a.reservations[0].date)) + " · " + d(a.reservations[0].startTime) + " - " + d(a.reservations[0].endTime), 1)
430
- ]),
431
- e("div", st, [
432
- l(o(L), { size: 12 }),
433
- e("span", null, d(a.reservations[0].spots) + " spots", 1)
434
- ]),
435
- a.reservations[0].resourceName ? (n(), i("div", at, [
436
- e("div", {
437
- class: "w-3 h-3 rounded-full",
438
- style: J({ backgroundColor: a.reservations[0].resourceColor || "#6b7280" })
439
- }, null, 4),
440
- e("span", null, d(a.reservations[0].resourceName), 1)
441
- ])) : k("", !0)
442
- ]),
443
- e("div", ot, [
444
- l(o(Z), { size: 12 }),
445
- e("span", null, "Ordered at " + d(Y(a.createdAt)), 1)
446
- ]),
447
- l(V, {
448
- metadata: { ...a.reservations[0].metadata, ...a.reservations[0].reservationMetadata },
449
- schema: o(F),
450
- "display-filter": ["highlight", "badge"],
451
- compact: "",
452
- class: "mt-1"
453
- }, null, 8, ["metadata", "schema"])
454
- ]),
455
- e("div", nt, [
456
- a.reservations[0].status === "pending" ? (n(), i("span", rt, "Pending")) : a.reservations[0].status === "cancelled" ? (n(), i("span", it, "Cancelled")) : a.reservations[0].reservationStatus === "needs_approval" ? (n(), i("span", lt, "Needs Approval")) : a.reservations[0].reservationStatus === "approved" ? (n(), i("span", dt, "Approved")) : a.reservations[0].reservationStatus === "cancelled" ? (n(), i("span", ct, "Cancelled")) : a.reservations[0].reservationStatus === "rejected" ? (n(), i("span", ut, "Rejected")) : (n(), i("span", mt, "Pending")),
457
- a.reservations[0].reservationPrice || a.reservations[0].reservationPrice === 0 ? (n(), i("div", ft, " €" + d(a.reservations[0].reservationPrice.toFixed(2)), 1)) : k("", !0)
458
- ])
459
- ])
460
- ], 8, Xe)) : (n(), i(N, { key: 1 }, [
461
- e("div", vt, [
462
- e("div", pt, [
463
- e("div", xt, [
464
- e("div", gt, [
465
- e("div", _t, d(a.customerInfo?.firstName || a.customerInfo?.lastName ? [a.customerInfo?.firstName, a.customerInfo?.lastName].filter(Boolean).join(" ") : "Unknown Customer"), 1),
466
- l(c, {
467
- variant: "secondary",
468
- class: "text-xs"
469
- }, {
470
- default: p(() => [
471
- C(d(a.reservations.length) + " reservations ", 1)
472
- ]),
473
- _: 2
474
- }, 1024)
475
- ]),
476
- e("div", ht, d(a.customerInfo?.email), 1),
477
- e("div", yt, d(a.customerInfo?.phone), 1),
478
- e("div", kt, [
479
- l(o(Z), { size: 12 }),
480
- e("span", null, "Ordered at " + d(Y(a.createdAt)), 1)
481
- ]),
482
- l(V, {
483
- metadata: a.metadata,
484
- schema: o(F),
485
- "display-filter": ["highlight", "badge"],
486
- compact: "",
487
- class: "mt-1"
488
- }, null, 8, ["metadata", "schema"])
489
- ]),
490
- e("div", bt, [
491
- a.status === "pending" ? (n(), i("span", wt, "Pending")) : a.status === "cancelled" ? (n(), i("span", Dt, "Cancelled")) : (n(), i("span", Ct, "Confirmed")),
492
- e("div", It, " €" + d(a.totalPrice.toFixed(2)), 1)
493
- ])
494
- ])
495
- ]),
496
- (n(!0), i(N, null, $(a.reservations, (u) => (n(), i("div", {
497
- key: u.res_id,
498
- class: "p-3 border-t bg-muted/50 dark:bg-transparent dark:hover:bg-muted/50 transition-colors cursor-pointer",
499
- onClick: (Lt) => o(T)?.openDialog(u)
500
- }, [
501
- e("div", Pt, [
502
- e("div", Nt, [
503
- e("div", Ot, [
504
- l(o(W), { size: 12 }),
505
- e("span", null, d(Q(u.date)) + " · " + d(u.startTime) + " - " + d(u.endTime), 1)
506
- ]),
507
- e("div", zt, [
508
- l(o(L), { size: 12 }),
509
- e("span", null, d(u.spots) + " spots", 1)
510
- ]),
511
- u.resourceName ? (n(), i("div", Tt, [
512
- e("div", {
513
- class: "w-3 h-3 rounded-full",
514
- style: J({ backgroundColor: u.resourceColor || "#6b7280" })
515
- }, null, 4),
516
- e("span", null, d(u.resourceName), 1)
517
- ])) : k("", !0)
518
- ]),
519
- u.status === "confirmed" ? (n(), i("div", At, [
520
- u.reservationStatus === "needs_approval" ? (n(), i("span", jt, "Needs Approval")) : u.reservationStatus === "approved" ? (n(), i("span", Rt, "Approved")) : u.reservationStatus === "cancelled" ? (n(), i("span", Bt, "Cancelled")) : u.reservationStatus === "rejected" ? (n(), i("span", Ft, "Rejected")) : (n(), i("span", Ut, "Pending")),
521
- u.reservationPrice || u.reservationPrice === 0 ? (n(), i("div", Mt, " €" + d(u.reservationPrice.toFixed(2)), 1)) : k("", !0)
522
- ])) : k("", !0)
523
- ]),
524
- l(V, {
525
- metadata: u.reservationMetadata,
526
- schema: o(F),
527
- "display-filter": ["highlight", "badge"],
528
- compact: "",
529
- class: "mt-1"
530
- }, null, 8, ["metadata", "schema"])
531
- ], 8, St))), 128))
532
- ], 64))
533
- ]))), 128))
534
- ]))
535
- ]),
536
- _: 1
537
- })
538
- ]),
539
- _: 1
540
- })
541
- ])
542
- ]),
543
- _: 1
544
- }),
545
- l(Oe, {
546
- ref_key: "reservationDetailDialog",
547
- ref: T,
548
- "agenda-data": o(B),
549
- onCancelled: w,
550
- onConfirmed: w,
551
- onRejected: w
552
- }, null, 8, ["agenda-data"])
553
- ], 64);
554
- };
555
- }
556
- });
557
- export {
558
- Qt as default
559
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),k=require("@oneclick.dev/cms-kit"),d=require("lucide-vue-next"),y=require("./ReservationDetailDialog.vue_vue_type_script_setup_true_lang-DPPNc-Z5.js"),Q=require("./EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js"),X={class:"space-y-6"},G={class:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"},J={class:"text-2xl font-semibold tracking-tight flex items-center gap-2"},W={class:"flex gap-1 border rounded-lg p-1 w-fit"},Z={class:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"},ee={class:"flex items-center gap-1"},te={class:"flex items-center gap-1"},oe={class:"flex items-center gap-2"},ae={class:"flex items-center gap-1"},ne={class:"text-sm text-muted-foreground mt-2"},se={class:"relative mb-4"},re={key:0,class:"mb-3 text-sm text-muted-foreground"},le={key:1,class:"flex items-center justify-center py-8"},ce={key:2,class:"text-center py-8 text-muted-foreground"},ie={key:3,class:"text-center py-8 text-muted-foreground"},de={key:4,class:"space-y-2"},ue=["onClick"],me={class:"flex items-start justify-between"},pe={class:"flex-1"},fe={class:"font-medium"},ve={class:"text-sm text-muted-foreground"},ge={class:"text-sm text-muted-foreground"},xe={class:"flex items-center gap-4 flex-wrap mt-1"},ke={class:"flex items-center gap-2 text-xs text-muted-foreground"},_e={class:"flex items-center gap-2 text-xs text-muted-foreground"},ye={key:0,class:"flex items-center gap-1 text-xs text-muted-foreground"},he={class:"flex items-center gap-2 mt-1 text-xs text-muted-foreground"},Ne={class:"text-right"},be={key:0,class:"inline-block px-2 py-1 text-xs rounded-full bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400"},Ve={key:1,class:"inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"},we={key:2,class:"inline-block px-2 py-1 text-xs rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400"},De={key:3,class:"inline-block px-2 py-1 text-xs rounded-full bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400"},Ee={key:4,class:"inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"},Be={key:5,class:"inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"},Ce={key:6,class:"inline-block px-2 py-1 text-xs rounded-full bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400"},Se={key:7,class:"text-sm font-medium mt-1"},Ie={class:"p-3 bg-muted/30"},Pe={class:"flex items-start justify-between"},Te={class:"flex-1"},Oe={class:"flex items-center gap-2"},ze={class:"font-medium"},Ae={class:"text-sm text-muted-foreground"},je={class:"text-sm text-muted-foreground"},Re={class:"flex items-center gap-2 mt-1 text-xs text-muted-foreground"},Fe={class:"text-right"},Ue={key:0,class:"inline-block px-2 py-1 text-xs rounded-full bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400"},Le={key:1,class:"inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"},Me={key:2,class:"inline-block px-2 py-1 text-xs rounded-full bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400"},qe={class:"text-sm font-medium mt-1"},$e=["onClick"],He={class:"flex items-center justify-between"},Ye={class:"flex items-center gap-4 flex-wrap"},Ke={class:"flex items-center gap-2 text-xs text-muted-foreground"},Qe={class:"flex items-center gap-2 text-xs text-muted-foreground"},Xe={key:0,class:"flex items-center gap-1 text-xs text-muted-foreground"},Ge={key:0,class:"text-right flex items-center gap-2"},Je={key:0,class:"inline-block px-2 py-1 text-xs rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400"},We={key:1,class:"inline-block px-2 py-1 text-xs rounded-full bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400"},Ze={key:2,class:"inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"},et={key:3,class:"inline-block px-2 py-1 text-xs rounded-full bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"},tt={key:4,class:"inline-block px-2 py-1 text-xs rounded-full bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400"},ot={key:5,class:"text-sm font-medium"},at=e.defineComponent({__name:"orders",setup(nt){const I=k.useRoute();k.useRouter();const P=k.useOverlayParams(),{params:T}=k.useModuleRoute(),{config:h}=k.useModule(),D=k.useFirebaseIntegration(h.project),u=e.ref([]),N=e.ref([]),_=e.ref(!0),E=e.ref(null),B=e.computed(()=>E?.value?.metadataSchema||[]),p=e.ref(""),b=e.ref(null),g=e.ref("confirmed"),f=new Date,i=e.ref(new Date),A=e.computed(()=>({date:M(i.value),resource:null}));e.provide("event",A);const j=e.computed(()=>{const t=new Date(f);t.setDate(f.getDate()-1);const o=new Date(f);return o.setDate(f.getDate()+1),i.value.toDateString()===f.toDateString()?"Today":i.value.toDateString()===t.toDateString()?"Yesterday":i.value.toDateString()===o.toDateString()?"Tomorrow":i.value.toLocaleDateString("en-US",{weekday:"long",month:"long",day:"numeric",year:"numeric"})}),R=()=>{const t=new Date(i.value);t.setDate(t.getDate()-1),i.value=t},F=()=>{const t=new Date(i.value);t.setDate(t.getDate()+1),t<=f&&(i.value=t)},U=e.computed(()=>{const t=new Date(i.value);return t.setDate(t.getDate()+1),t<=f}),L=()=>{i.value=new Date},M=t=>{const o=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),s=String(t.getDate()).padStart(2,"0");return`${o}-${n}-${s}`},O=t=>t?new Date(t).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}):"",z=t=>t?new Date(t).toLocaleDateString("en-US",{weekday:"short",month:"short",day:"numeric"}):"",C=e.computed(()=>p.value.trim()?new y.Fuse(u.value,{keys:["customerInfo.firstName","customerInfo.lastName","customerInfo.email","customerInfo.phone","resourceName"],threshold:.3,ignoreLocation:!0}).search(p.value).map(o=>o.item):u.value),q=e.computed(()=>{const t=new Map;for(const o of C.value){t.has(o.id)||t.set(o.id,{id:o.id,customerInfo:o.customerInfo,status:o.status,createdAt:o.createdAt,metadata:o.metadata||{},reservations:[],totalPrice:0,totalSpots:0});const n=t.get(o.id);n.reservations.push(o),n.totalPrice+=o.reservationPrice||0,n.totalSpots+=o.spots||0}return Array.from(t.values())}),V=e.computed(()=>({spots:u.value.reduce((t,o)=>t+(o.spots||0),0),bookings:u.value.length,revenue:u.value.reduce((t,o)=>t+(o.reservationPrice||0),0)})),$=()=>{p.value=""},H=async()=>{try{const t=T.value.id,o=await D.get(h.agendaCollection,t);E.value=o,N.value=o?.resources?.filter(n=>n.isActive)||[]}catch(t){console.error("Error loading resources:",t),N.value=[]}},v=async()=>{_.value=!0,u.value=[];try{const t=T.value.id,o=new Date(i.value);o.setHours(0,0,0,0);const n=new Date(i.value);n.setHours(23,59,59,999);const s=await D.find(h.reservationsCollection,{filters:[{field:"agendaId",operator:"==",value:t},{field:"createdAt",operator:">=",value:o.toISOString()},{field:"createdAt",operator:"<=",value:n.toISOString()},{field:"status",operator:"==",value:g.value}]});let m=[];s.forEach(l=>{(l.reservations||[]).forEach(c=>{const w=N.value.find(S=>S.id===c.resourceId);m.push({customerInfo:l.customerInfo,amountDue:l.amountDue,amountPaid:l.amountPaid,status:l.status,reservationStatus:c.status,subtotal:l.subtotal,total:l.total,discount:l.discount,id:l.id,res_id:c.id,resourceId:c.resourceId,spots:c.spots,date:c.date,createdAt:l.createdAt,startTime:c.timeslot?.startTime,endTime:c.timeslot?.endTime,reservationPrice:c.totalPrice,reservationBasePrice:c.basePrice,reservationAddOnsPrice:c.addOnsPrice,pricingOptionId:c.pricingOptionId,pricingOption:c.pricingOption,resourceName:w?.name||"Unknown",resourceColor:w?.color,metadata:l.metadata||{},reservationMetadata:c.metadata||{}})})}),u.value=m.sort((l,x)=>(x.createdAt||"").localeCompare(l.createdAt||""))}catch(t){console.error("Error loading orders:",t),u.value=[]}finally{_.value=!1}},Y=async()=>{await H(),await v()},K=async(t,o)=>{const n=await D.get(h.reservationsCollection,t),s=n?.reservations?.find(m=>m.id===o);if(s){const m=N.value.find(x=>x.id===s.resourceId),l={customerInfo:n.customerInfo,amountDue:n.amountDue,amountPaid:n.amountPaid,status:n.status,reservationStatus:s.status,subtotal:n.subtotal,total:n.total,discount:n.discount,id:n.id,res_id:s.id,resourceId:s.resourceId,spots:s.spots,date:s.date,createdAt:n.createdAt,startTime:s.timeslot?.startTime,endTime:s.timeslot?.endTime,reservationPrice:s.totalPrice,reservationBasePrice:s.basePrice,reservationAddOnsPrice:s.addOnsPrice,pricingOptionId:s.pricingOptionId,pricingOption:s.pricingOption,resourceName:m?.name||"Unknown",resourceColor:m?.color,metadata:n.metadata||{},reservationMetadata:s.metadata||{}};await e.nextTick(),b.value?.openDialog(l)}};return Y(),e.onMounted(async()=>{const t=P.value.orderId||I.query.orderId,o=P.value.reservationId||I.query.reservationId;if(t){const n=new URL(window.location.href);n.searchParams.delete("orderId"),n.searchParams.delete("reservationId"),window.history.replaceState(window.history.state,"",n.toString()),await K(t,o)}}),e.watch(i,()=>{v()}),e.watch(g,()=>{v()}),(t,o)=>{const n=e.resolveComponent("Button"),s=e.resolveComponent("Badge"),m=e.resolveComponent("CardTitle"),l=e.resolveComponent("CardDescription"),x=e.resolveComponent("CardHeader"),c=e.resolveComponent("Input"),w=e.resolveComponent("CardContent"),S=e.resolveComponent("Card");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(Q._sfc_main,null,{default:e.withCtx(()=>[e.createElementVNode("div",X,[e.createElementVNode("div",G,[e.createElementVNode("div",null,[e.createElementVNode("h1",J,[e.createVNode(e.unref(d.ShoppingBag),{class:"size-6"}),o[1]||(o[1]=e.createTextVNode(" Orders ",-1))]),o[2]||(o[2]=e.createElementVNode("p",{class:"text-muted-foreground text-sm mt-1"}," View orders by when they were placed ",-1))])]),e.createElementVNode("div",W,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["confirmed","pending","cancelled"],a=>e.createVNode(n,{key:a,variant:e.unref(g)===a?"default":"ghost",size:"sm",class:"capitalize",onClick:r=>g.value=a},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a),1)]),_:2},1032,["variant","onClick"])),64))]),e.createVNode(S,null,{default:e.withCtx(()=>[e.createVNode(x,null,{default:e.withCtx(()=>[e.createElementVNode("div",Z,[e.createElementVNode("div",null,[e.createVNode(m,{class:"flex items-center gap-2"},{default:e.withCtx(()=>[o[3]||(o[3]=e.createTextVNode(" Orders received ",-1)),e.unref(V).bookings>0?(e.openBlock(),e.createBlock(s,{key:0,variant:"secondary"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(V).bookings),1)]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(l,{class:"flex items-center gap-4 mt-1"},{default:e.withCtx(()=>[e.createElementVNode("span",ee,[e.createVNode(e.unref(d.Users),{size:14}),e.createTextVNode(" "+e.toDisplayString(e.unref(V).spots)+" spots ",1)]),e.createElementVNode("span",te," €"+e.toDisplayString(e.unref(V).revenue.toFixed(2))+e.toDisplayString(e.unref(g)==="pending"?" pending ":e.unref(g)==="cancelled"?" cancelled ":" ")+"revenue ",1)]),_:1})]),e.createElementVNode("div",oe,[e.createElementVNode("div",ae,[e.createVNode(n,{variant:"ghost",size:"icon",class:"size-8",onClick:R},{default:e.withCtx(()=>[e.createVNode(e.unref(d.ChevronLeft),{size:16})]),_:1}),e.createVNode(n,{variant:"ghost",size:"sm",class:"h-8 px-3 text-xs",onClick:L},{default:e.withCtx(()=>[...o[4]||(o[4]=[e.createTextVNode(" Today ",-1)])]),_:1}),e.createVNode(n,{variant:"ghost",size:"icon",class:"size-8",onClick:F,disabled:!e.unref(U)},{default:e.withCtx(()=>[e.createVNode(e.unref(d.ChevronRight),{size:16})]),_:1},8,["disabled"])]),e.createVNode(n,{variant:"ghost",size:"icon",onClick:v,disabled:e.unref(_)},{default:e.withCtx(()=>[e.createVNode(e.unref(d.RefreshCw),{size:16,class:e.normalizeClass({"animate-spin":e.unref(_)})},null,8,["class"])]),_:1},8,["disabled"])])]),e.createElementVNode("div",ne,e.toDisplayString(e.unref(j)),1)]),_:1}),e.createVNode(w,null,{default:e.withCtx(()=>[e.createElementVNode("div",se,[e.createVNode(e.unref(d.Search),{size:16,class:"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"}),e.createVNode(c,{modelValue:e.unref(p),"onUpdate:modelValue":o[0]||(o[0]=a=>e.isRef(p)?p.value=a:null),placeholder:"Search by name, email, or phone...",class:"pl-9 pr-9"},null,8,["modelValue"]),e.unref(p)?(e.openBlock(),e.createBlock(n,{key:0,variant:"ghost",size:"icon",class:"absolute right-1 top-1/2 -translate-y-1/2 h-7 w-7",onClick:$},{default:e.withCtx(()=>[e.createVNode(e.unref(d.X),{size:14})]),_:1})):e.createCommentVNode("",!0)]),e.unref(p)?(e.openBlock(),e.createElementBlock("div",re," Showing "+e.toDisplayString(e.unref(C).length)+" of "+e.toDisplayString(e.unref(u).length)+" orders ",1)):e.createCommentVNode("",!0),e.unref(_)?(e.openBlock(),e.createElementBlock("div",le,[...o[5]||(o[5]=[e.createElementVNode("div",{class:"animate-spin rounded-full h-8 w-8 border-b-2 border-primary"},null,-1)])])):e.unref(u).length===0?(e.openBlock(),e.createElementBlock("div",ce,[e.createVNode(e.unref(d.ShoppingBag),{class:"size-12 mx-auto mb-3 opacity-50"}),o[6]||(o[6]=e.createElementVNode("p",null,"No orders received on this day",-1))])):e.unref(C).length===0?(e.openBlock(),e.createElementBlock("div",ie," No orders match your search ")):(e.openBlock(),e.createElementBlock("div",de,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(q),a=>(e.openBlock(),e.createElementBlock("div",{key:a.id,class:"border rounded-lg overflow-hidden shadow-sm"},[a.reservations.length===1?(e.openBlock(),e.createElementBlock("div",{key:0,class:"p-3 hover:bg-muted/50 transition-colors cursor-pointer",onClick:r=>e.unref(b)?.openDialog(a.reservations[0])},[e.createElementVNode("div",me,[e.createElementVNode("div",pe,[e.createElementVNode("div",fe,e.toDisplayString(a.customerInfo?.firstName||a.customerInfo?.lastName?[a.customerInfo?.firstName,a.customerInfo?.lastName].filter(Boolean).join(" "):"Unknown Customer"),1),e.createElementVNode("div",ve,e.toDisplayString(a.customerInfo?.email),1),e.createElementVNode("div",ge,e.toDisplayString(a.customerInfo?.phone),1),e.createElementVNode("div",xe,[e.createElementVNode("div",ke,[e.createVNode(e.unref(d.Calendar),{size:12}),e.createElementVNode("span",null,e.toDisplayString(z(a.reservations[0].date))+" · "+e.toDisplayString(a.reservations[0].startTime)+" - "+e.toDisplayString(a.reservations[0].endTime),1)]),e.createElementVNode("div",_e,[e.createVNode(e.unref(d.Users),{size:12}),e.createElementVNode("span",null,e.toDisplayString(a.reservations[0].spots)+" spots",1)]),a.reservations[0].resourceName?(e.openBlock(),e.createElementBlock("div",ye,[e.createElementVNode("div",{class:"w-3 h-3 rounded-full",style:e.normalizeStyle({backgroundColor:a.reservations[0].resourceColor||"#6b7280"})},null,4),e.createElementVNode("span",null,e.toDisplayString(a.reservations[0].resourceName),1)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",he,[e.createVNode(e.unref(d.Clock),{size:12}),e.createElementVNode("span",null,"Ordered at "+e.toDisplayString(O(a.createdAt)),1)]),e.createVNode(y._sfc_main,{metadata:{...a.reservations[0].metadata,...a.reservations[0].reservationMetadata},schema:e.unref(B),"display-filter":["highlight","badge"],compact:"",class:"mt-1"},null,8,["metadata","schema"])]),e.createElementVNode("div",Ne,[a.reservations[0].status==="pending"?(e.openBlock(),e.createElementBlock("span",be,"Pending")):a.reservations[0].status==="cancelled"?(e.openBlock(),e.createElementBlock("span",Ve,"Cancelled")):a.reservations[0].reservationStatus==="needs_approval"?(e.openBlock(),e.createElementBlock("span",we,"Needs Approval")):a.reservations[0].reservationStatus==="approved"?(e.openBlock(),e.createElementBlock("span",De,"Approved")):a.reservations[0].reservationStatus==="cancelled"?(e.openBlock(),e.createElementBlock("span",Ee,"Cancelled")):a.reservations[0].reservationStatus==="rejected"?(e.openBlock(),e.createElementBlock("span",Be,"Rejected")):(e.openBlock(),e.createElementBlock("span",Ce,"Pending")),a.reservations[0].reservationPrice||a.reservations[0].reservationPrice===0?(e.openBlock(),e.createElementBlock("div",Se," €"+e.toDisplayString(a.reservations[0].reservationPrice.toFixed(2)),1)):e.createCommentVNode("",!0)])])],8,ue)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",Ie,[e.createElementVNode("div",Pe,[e.createElementVNode("div",Te,[e.createElementVNode("div",Oe,[e.createElementVNode("div",ze,e.toDisplayString(a.customerInfo?.firstName||a.customerInfo?.lastName?[a.customerInfo?.firstName,a.customerInfo?.lastName].filter(Boolean).join(" "):"Unknown Customer"),1),e.createVNode(s,{variant:"secondary",class:"text-xs"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.reservations.length)+" reservations ",1)]),_:2},1024)]),e.createElementVNode("div",Ae,e.toDisplayString(a.customerInfo?.email),1),e.createElementVNode("div",je,e.toDisplayString(a.customerInfo?.phone),1),e.createElementVNode("div",Re,[e.createVNode(e.unref(d.Clock),{size:12}),e.createElementVNode("span",null,"Ordered at "+e.toDisplayString(O(a.createdAt)),1)]),e.createVNode(y._sfc_main,{metadata:a.metadata,schema:e.unref(B),"display-filter":["highlight","badge"],compact:"",class:"mt-1"},null,8,["metadata","schema"])]),e.createElementVNode("div",Fe,[a.status==="pending"?(e.openBlock(),e.createElementBlock("span",Ue,"Pending")):a.status==="cancelled"?(e.openBlock(),e.createElementBlock("span",Le,"Cancelled")):(e.openBlock(),e.createElementBlock("span",Me,"Confirmed")),e.createElementVNode("div",qe," €"+e.toDisplayString(a.totalPrice.toFixed(2)),1)])])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.reservations,r=>(e.openBlock(),e.createElementBlock("div",{key:r.res_id,class:"p-3 border-t bg-muted/50 dark:bg-transparent dark:hover:bg-muted/50 transition-colors cursor-pointer",onClick:st=>e.unref(b)?.openDialog(r)},[e.createElementVNode("div",He,[e.createElementVNode("div",Ye,[e.createElementVNode("div",Ke,[e.createVNode(e.unref(d.Calendar),{size:12}),e.createElementVNode("span",null,e.toDisplayString(z(r.date))+" · "+e.toDisplayString(r.startTime)+" - "+e.toDisplayString(r.endTime),1)]),e.createElementVNode("div",Qe,[e.createVNode(e.unref(d.Users),{size:12}),e.createElementVNode("span",null,e.toDisplayString(r.spots)+" spots",1)]),r.resourceName?(e.openBlock(),e.createElementBlock("div",Xe,[e.createElementVNode("div",{class:"w-3 h-3 rounded-full",style:e.normalizeStyle({backgroundColor:r.resourceColor||"#6b7280"})},null,4),e.createElementVNode("span",null,e.toDisplayString(r.resourceName),1)])):e.createCommentVNode("",!0)]),r.status==="confirmed"?(e.openBlock(),e.createElementBlock("div",Ge,[r.reservationStatus==="needs_approval"?(e.openBlock(),e.createElementBlock("span",Je,"Needs Approval")):r.reservationStatus==="approved"?(e.openBlock(),e.createElementBlock("span",We,"Approved")):r.reservationStatus==="cancelled"?(e.openBlock(),e.createElementBlock("span",Ze,"Cancelled")):r.reservationStatus==="rejected"?(e.openBlock(),e.createElementBlock("span",et,"Rejected")):(e.openBlock(),e.createElementBlock("span",tt,"Pending")),r.reservationPrice||r.reservationPrice===0?(e.openBlock(),e.createElementBlock("div",ot," €"+e.toDisplayString(r.reservationPrice.toFixed(2)),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),e.createVNode(y._sfc_main,{metadata:r.reservationMetadata,schema:e.unref(B),"display-filter":["highlight","badge"],compact:"",class:"mt-1"},null,8,["metadata","schema"])],8,$e))),128))],64))]))),128))]))]),_:1})]),_:1})])]),_:1}),e.createVNode(y._sfc_main$1,{ref_key:"reservationDetailDialog",ref:b,"agenda-data":e.unref(E),onCancelled:v,onConfirmed:v,onRejected:v},null,8,["agenda-data"])],64)}}});exports.default=at;