@oneclick.dev/cms-core-modules 0.0.115 → 0.0.117

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 (107) hide show
  1. package/dist/{Acquisition-FV3QpaUX.mjs → Acquisition-X5-eksDw.mjs} +2 -2
  2. package/dist/{Audience-ka0b7YPE.mjs → Audience-CXryJ8tc.mjs} +2 -2
  3. package/dist/{ContentEditor-C5yNNLeV.mjs → ContentEditor-CUe6-NwF.mjs} +17650 -14456
  4. package/dist/{ContentEditor-MctMvN7D.js → ContentEditor-DWoXc0T_.js} +52 -52
  5. package/dist/{Create-BXNLRQag.mjs → Create-BPA2ywrd.mjs} +1 -1
  6. package/dist/{DateFormatter-qbhRYxI_.mjs → DateFormatter-BkKoSf_l.mjs} +5 -5
  7. package/dist/{Detail-BCOcP2ql.mjs → Detail-C1Blq61w.mjs} +1 -1
  8. package/dist/{Detail-ChD5XurA.mjs → Detail-CfsPwl4s.mjs} +17 -17
  9. package/dist/{Detail-DnX7tsqN.mjs → Detail-CtItxMX4.mjs} +1 -1
  10. package/dist/{Detail-Btzwo0Y3.mjs → Detail-Dnpnmy4-.mjs} +1 -1
  11. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-gozJKXvM.js +1 -0
  12. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-pDO9b4Pv.mjs +77 -0
  13. package/dist/{Find-zN_dKz4p.mjs → Find-BAvaNf90.mjs} +1 -1
  14. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-BXTkYCm_.mjs +1476 -0
  15. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-C2zwt5UF.js +1 -0
  16. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-BYSeUW_V.js +925 -0
  17. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-DwAUYR8p.mjs +5021 -0
  18. package/dist/{Overview-BR_y8x3W.mjs → Overview-BWLxUksJ.mjs} +1 -1
  19. package/dist/{Overview-MpgkLB6m.mjs → Overview-Bjvu9Lfc.mjs} +3 -3
  20. package/dist/Overview-CBahJviK.js +1 -0
  21. package/dist/Overview-CVQ1pkuD.mjs +527 -0
  22. package/dist/{SeoHealth-bVQj_Xgm.mjs → SeoHealth-I2mqiuLm.mjs} +3 -3
  23. package/dist/TableView-BQI3CWll.mjs +6234 -0
  24. package/dist/TableView-Cwal0BPW.js +4 -0
  25. package/dist/agenda-B3nj388v.mjs +1253 -0
  26. package/dist/agenda-Bev1mO7E.js +1 -0
  27. package/dist/availability-ClBGVgE9.js +1 -0
  28. package/dist/availability-D8JdA4rP.mjs +274 -0
  29. package/dist/booking-data-Px7XCIfU.mjs +1024 -0
  30. package/dist/booking-data-aMS1p_3g.js +1 -0
  31. package/dist/cms-core-modules.css +1 -1
  32. package/dist/exceptions-DXqc0Nza.js +1 -0
  33. package/dist/exceptions-Dgj54ULn.mjs +651 -0
  34. package/dist/{index-DZV720u-.mjs → index-52nwosIs.mjs} +45 -45
  35. package/dist/{index-CkVwMqpn.mjs → index-Bnn9LahC.mjs} +52 -52
  36. package/dist/{index-B8GvmAwh.mjs → index-DiTIA8Sh.mjs} +27 -27
  37. package/dist/index-Djp4EBb0.mjs +1245 -0
  38. package/dist/index-DliTZzwI.js +35 -0
  39. package/dist/{index-L54VBzwJ.mjs → index-ar4tbR3i.mjs} +8 -8
  40. package/dist/{index-BIF2RB7k.mjs → index-cC_2cw31.mjs} +4 -4
  41. package/dist/{index-CFzn2Lus.mjs → index-hMp4p5qA.mjs} +3 -3
  42. package/dist/index.cjs.js +1 -1
  43. package/dist/index.mjs +26 -25
  44. package/dist/{math-BJ-oX_IM.mjs → math-Bkw6u412.mjs} +11 -11
  45. package/dist/orders-1swJVKw2.js +1 -0
  46. package/dist/orders-D41GbzIa.mjs +624 -0
  47. package/dist/payment-BJHgpaeT.js +1 -0
  48. package/dist/payment-D5j-68Ig.mjs +1278 -0
  49. package/dist/refunds-D9nTeD2d.mjs +436 -0
  50. package/dist/refunds-oVB2Opib.js +1 -0
  51. package/dist/resources-8WouFvJe.js +1 -0
  52. package/dist/resources-CK0oWssj.mjs +975 -0
  53. package/dist/server-handlers.cjs.js +1 -1
  54. package/dist/server-handlers.mjs +626 -515
  55. package/dist/src/appointments/components/edit/EventDialog/BookingsList.vue.d.ts +146 -5
  56. package/dist/src/appointments/components/edit/EventDialog/CancelRefundReservationDialog.vue.d.ts +33 -0
  57. package/dist/src/appointments/components/edit/EventDialog/OrderDetailDialog.vue.d.ts +26 -8
  58. package/dist/src/appointments/components/edit/EventDialog/RefundDetailsDisplay.vue.d.ts +8 -0
  59. package/dist/src/appointments/components/edit/EventDialog/ReservationDetailDialog.vue.d.ts +91 -5
  60. package/dist/src/appointments/components/edit/EventDialog/TransferReservationDialog.vue.d.ts +20 -3
  61. package/dist/src/appointments/components/edit/NewReservationDialog/ReservationLines.vue.d.ts +5 -0
  62. package/dist/src/appointments/components/edit/OrderMetadataDisplay.vue.d.ts +20 -2
  63. package/dist/src/appointments/components/edit/dashboard/BookingsList.vue.d.ts +240 -0
  64. package/dist/src/appointments/composables/useAgendaMetadataSchema.d.ts +37 -0
  65. package/dist/src/appointments/pages/edit/orders.vue.d.ts +225 -0
  66. package/dist/src/appointments/pages/edit/refunds.vue.d.ts +2 -0
  67. package/dist/src/appointments/server.d.ts +2 -0
  68. package/dist/src/appointments/types.d.ts +6 -0
  69. package/dist/src/appointments/utils/printReservation.d.ts +65 -3
  70. package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/Table.d.ts +36 -0
  71. package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/Table.vue.d.ts +95 -0
  72. package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/TableCell.d.ts +13 -0
  73. package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/TableHeader.d.ts +6 -0
  74. package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/TableRow.d.ts +6 -0
  75. package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/index.d.ts +4 -0
  76. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/TableMenu.vue.d.ts +13 -0
  77. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/index.d.ts +14 -0
  78. package/dist/{vee-validate-zod-DNjTLCgh.mjs → vee-validate-zod-CcOwoF6y.mjs} +6 -6
  79. package/package.json +2 -2
  80. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-DWMqQvHl.mjs +0 -76
  81. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js +0 -1
  82. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Baqy-rTT.js +0 -1
  83. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Dx4Bpa2m.mjs +0 -1263
  84. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-COrK1j0S.js +0 -1
  85. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-Vb3q8EVv.mjs +0 -330
  86. package/dist/Overview-98nkJUWN.mjs +0 -481
  87. package/dist/Overview-Dl8cMlsr.js +0 -1
  88. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-CuwREvXD.js +0 -349
  89. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-GYNZ_yhD.mjs +0 -3077
  90. package/dist/TableView-CVfkyj1k.js +0 -4
  91. package/dist/TableView-zDx0IegJ.mjs +0 -6096
  92. package/dist/agenda-BaJu3-1c.js +0 -1
  93. package/dist/agenda-BwVY_8oM.mjs +0 -1165
  94. package/dist/availability-CMrRa5y2.mjs +0 -269
  95. package/dist/availability-Cf2YfMwM.js +0 -1
  96. package/dist/booking-data-DgJd0BcM.mjs +0 -889
  97. package/dist/booking-data-Di5GmH_8.js +0 -1
  98. package/dist/exceptions-B6P9UiCj.js +0 -1
  99. package/dist/exceptions-De9-FvdP.mjs +0 -646
  100. package/dist/index-DL6orwdK.js +0 -35
  101. package/dist/index-hH3e-IYz.mjs +0 -1187
  102. package/dist/orders-C65SlpJy.mjs +0 -618
  103. package/dist/orders-XVzWAgG1.js +0 -1
  104. package/dist/payment-C3ohkehF.mjs +0 -1080
  105. package/dist/payment-Dfr-Ro-a.js +0 -1
  106. package/dist/resources-CxeFd57z.js +0 -1
  107. package/dist/resources-DwYxn2Vi.mjs +0 -811
@@ -1,618 +0,0 @@
1
- import { defineComponent as ye, ref as _, computed as y, provide as ke, onMounted as be, watch as ee, resolveComponent as k, openBlock as n, createElementBlock as l, Fragment as N, createVNode as r, withCtx as v, createElementVNode as a, unref as o, createTextVNode as b, renderList as M, toDisplayString as d, createBlock as te, createCommentVNode as w, normalizeClass as we, withDirectives as De, isRef as se, vModelText as Ce, normalizeStyle as ae, nextTick as Ie } from "vue";
2
- import { useRoute as Se, useRouter as Pe, useOverlayParams as Ne, useModuleRoute as ze, useModule as Oe, useFirebaseIntegration as je } from "@oneclick.dev/cms-kit";
3
- import { ShoppingBag as oe, Users as L, ChevronLeft as Ae, ChevronRight as Te, RefreshCw as Re, CalendarIcon as E, Search as Fe, X as Be, Clock as ne } from "lucide-vue-next";
4
- import { F as $e, _ as H, a as Ue } from "./ReservationDetailDialog.vue_vue_type_script_setup_true_lang-GYNZ_yhD.mjs";
5
- import { _ as Ve } from "./EditLayout.vue_vue_type_script_setup_true_lang-DWMqQvHl.mjs";
6
- import { _ as Me } from "./OrderDetailDialog.vue_vue_type_script_setup_true_lang-Vb3q8EVv.mjs";
7
- import { _ as Le } from "./_plugin-vue_export-helper-CHgC5LLL.mjs";
8
- const Ee = { class: "space-y-6" }, He = { class: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4" }, qe = { class: "text-2xl font-semibold tracking-tight flex items-center gap-2" }, Ye = { class: "flex gap-1 border rounded-lg p-1 w-fit" }, Qe = { class: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4" }, Xe = { class: "flex items-center gap-1" }, Ge = { class: "flex items-center gap-1" }, Je = { class: "flex items-center gap-2" }, Ke = { class: "flex items-center gap-1" }, We = { class: "mt-2 text-sm text-muted-foreground" }, Ze = { class: "orders-date-trigger" }, et = { class: "relative mb-4" }, tt = {
9
- key: 0,
10
- class: "mb-3 text-sm text-muted-foreground"
11
- }, st = {
12
- key: 1,
13
- class: "flex items-center justify-center py-8"
14
- }, at = {
15
- key: 2,
16
- class: "text-center py-8 text-muted-foreground"
17
- }, ot = {
18
- key: 3,
19
- class: "text-center py-8 text-muted-foreground"
20
- }, nt = {
21
- key: 4,
22
- class: "space-y-2"
23
- }, rt = ["onClick"], lt = { class: "flex items-start justify-between" }, it = { class: "flex-1" }, dt = { class: "font-medium" }, ct = { class: "text-sm text-muted-foreground" }, ut = { class: "text-sm text-muted-foreground" }, mt = { class: "flex items-center gap-4 flex-wrap mt-1" }, ft = { class: "flex items-center gap-2 text-xs text-muted-foreground" }, vt = { class: "flex items-center gap-2 text-xs text-muted-foreground" }, pt = {
24
- key: 0,
25
- class: "flex items-center gap-1 text-xs text-muted-foreground"
26
- }, xt = { class: "flex items-center gap-2 mt-1 text-xs text-muted-foreground" }, gt = { class: "text-right" }, _t = {
27
- key: 0,
28
- 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"
29
- }, ht = {
30
- key: 1,
31
- 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"
32
- }, yt = {
33
- key: 2,
34
- 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"
35
- }, kt = {
36
- key: 3,
37
- 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"
38
- }, bt = {
39
- key: 4,
40
- 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"
41
- }, wt = {
42
- key: 5,
43
- 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"
44
- }, Dt = {
45
- key: 6,
46
- 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"
47
- }, Ct = {
48
- key: 7,
49
- class: "text-sm font-medium mt-1"
50
- }, It = ["onClick"], St = { class: "flex items-start justify-between" }, Pt = { class: "flex-1" }, Nt = { class: "flex items-center gap-2" }, zt = { class: "font-medium" }, Ot = { class: "text-sm text-muted-foreground" }, jt = { class: "text-sm text-muted-foreground" }, At = { class: "flex items-center gap-2 mt-1 text-xs text-muted-foreground" }, Tt = { class: "text-right" }, Rt = {
51
- key: 0,
52
- 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"
53
- }, Ft = {
54
- key: 1,
55
- 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"
56
- }, Bt = {
57
- key: 2,
58
- 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"
59
- }, $t = { class: "text-sm font-medium mt-1" }, Ut = ["onClick"], Vt = { class: "flex items-center justify-between" }, Mt = { class: "flex items-center gap-4 flex-wrap" }, Lt = { class: "flex items-center gap-2 text-xs text-muted-foreground" }, Et = { class: "flex items-center gap-2 text-xs text-muted-foreground" }, Ht = {
60
- key: 0,
61
- class: "flex items-center gap-1 text-xs text-muted-foreground"
62
- }, qt = {
63
- key: 0,
64
- class: "text-right flex items-center gap-2"
65
- }, Yt = {
66
- key: 0,
67
- 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"
68
- }, Qt = {
69
- key: 1,
70
- 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"
71
- }, Xt = {
72
- key: 2,
73
- 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"
74
- }, Gt = {
75
- key: 3,
76
- 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"
77
- }, Jt = {
78
- key: 4,
79
- 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"
80
- }, Kt = {
81
- key: 5,
82
- class: "text-sm font-medium"
83
- }, Wt = /* @__PURE__ */ ye({
84
- __name: "orders",
85
- setup(Zt) {
86
- const q = Se();
87
- Pe();
88
- const Y = Ne(), { params: Q } = ze(), { config: z } = Oe(), A = je(z.project), x = _([]), T = _([]), S = _(!0), O = _(null), R = y(() => O?.value?.metadataSchema || []), h = _(""), P = _(null), F = _(null), I = _("confirmed"), D = /* @__PURE__ */ new Date(), m = _(/* @__PURE__ */ new Date()), X = _(null), re = y(() => ({
89
- date: G(m.value),
90
- resource: null
91
- }));
92
- ke("event", re);
93
- const B = y({
94
- get: () => G(m.value),
95
- set: (e) => {
96
- if (!e) {
97
- m.value = /* @__PURE__ */ new Date();
98
- return;
99
- }
100
- m.value = /* @__PURE__ */ new Date(`${e}T00:00:00`);
101
- }
102
- }), le = () => {
103
- const e = X.value;
104
- if (e) {
105
- if (typeof e.showPicker == "function") {
106
- e.showPicker();
107
- return;
108
- }
109
- e.focus(), e.click();
110
- }
111
- }, ie = y(() => {
112
- const e = new Date(D);
113
- e.setDate(D.getDate() - 1);
114
- const t = new Date(D);
115
- return t.setDate(D.getDate() + 1), m.value.toDateString() === D.toDateString() ? "Today" : m.value.toDateString() === e.toDateString() ? "Yesterday" : m.value.toDateString() === t.toDateString() ? "Tomorrow" : m.value.toLocaleDateString("en-US", {
116
- weekday: "long",
117
- month: "long",
118
- day: "numeric",
119
- year: "numeric"
120
- });
121
- }), de = () => {
122
- const e = new Date(m.value);
123
- e.setDate(e.getDate() - 1), m.value = e;
124
- }, ce = () => {
125
- const e = new Date(m.value);
126
- e.setDate(e.getDate() + 1), e <= D && (m.value = e);
127
- }, ue = y(() => {
128
- const e = new Date(m.value);
129
- return e.setDate(e.getDate() + 1), e <= D;
130
- }), me = () => {
131
- m.value = /* @__PURE__ */ new Date();
132
- }, G = (e) => {
133
- const t = e.getFullYear(), i = String(e.getMonth() + 1).padStart(2, "0"), u = String(e.getDate()).padStart(2, "0");
134
- return `${t}-${i}-${u}`;
135
- }, J = (e) => e ? new Date(e).toLocaleTimeString("en-US", {
136
- hour: "2-digit",
137
- minute: "2-digit",
138
- hour12: !1
139
- }) : "", K = (e) => e ? new Date(e).toLocaleDateString("en-US", {
140
- weekday: "short",
141
- month: "short",
142
- day: "numeric"
143
- }) : "", W = (e, t) => {
144
- const i = T.value.find((p) => p.id === t.resourceId), u = e.id || e.orderId || t.orderId || "";
145
- return {
146
- customerInfo: e.customerInfo,
147
- amountDue: e.amountDue,
148
- amountPaid: e.amountPaid,
149
- status: e.status,
150
- reservationStatus: t.status,
151
- subtotal: e.subtotal,
152
- total: e.total,
153
- discount: e.discount,
154
- id: u,
155
- res_id: t.id,
156
- resourceId: t.resourceId,
157
- spots: t.spots,
158
- date: t.date,
159
- createdAt: e.createdAt,
160
- startTime: t.timeslot?.startTime,
161
- endTime: t.timeslot?.endTime,
162
- reservationPrice: t.totalPrice,
163
- reservationBasePrice: t.basePrice,
164
- reservationAddOnsPrice: t.addOnsPrice,
165
- pricingOptionId: t.pricingOptionId,
166
- pricingOption: t.pricingOption,
167
- resourceName: i?.name || "Unknown",
168
- resourceColor: i?.color,
169
- metadata: e.metadata || {},
170
- reservationMetadata: t.metadata || {},
171
- adjustments: e.adjustments || [],
172
- reservationAdjustments: t.adjustments || []
173
- };
174
- }, $ = async () => {
175
- await Ie(), await new Promise((e) => {
176
- if (typeof requestAnimationFrame == "function") {
177
- requestAnimationFrame(() => e());
178
- return;
179
- }
180
- e();
181
- });
182
- }, U = y(() => h.value.trim() ? new $e(x.value, {
183
- keys: [
184
- "customerInfo.firstName",
185
- "customerInfo.lastName",
186
- "customerInfo.email",
187
- "customerInfo.phone",
188
- "resourceName"
189
- ],
190
- threshold: 0.3,
191
- ignoreLocation: !0
192
- }).search(h.value).map((t) => t.item) : x.value), fe = y(() => {
193
- const e = /* @__PURE__ */ new Map();
194
- for (const t of U.value) {
195
- e.has(t.id) || e.set(t.id, {
196
- id: t.id,
197
- customerInfo: t.customerInfo,
198
- status: t.status,
199
- createdAt: t.createdAt,
200
- metadata: t.metadata || {},
201
- reservations: [],
202
- adjustments: t.adjustments || [],
203
- totalPrice: 0,
204
- totalSpots: 0
205
- });
206
- const i = e.get(t.id);
207
- i.reservations.push(t), i.totalPrice = typeof t.total == "number" ? t.total : i.totalPrice + (t.reservationPrice || 0), i.totalSpots += t.spots || 0;
208
- }
209
- return Array.from(e.values());
210
- }), j = y(() => ({
211
- spots: x.value.reduce((e, t) => e + (t.spots || 0), 0),
212
- bookings: x.value.length,
213
- revenue: x.value.reduce((e, t) => e + (t.reservationPrice || 0), 0)
214
- })), ve = () => {
215
- h.value = "";
216
- }, pe = async () => {
217
- try {
218
- const e = Q.value.id, t = await A.get(z.agendaCollection, e);
219
- O.value = t, T.value = t?.resources?.filter((i) => i.isActive) || [];
220
- } catch (e) {
221
- console.error("Error loading resources:", e), T.value = [];
222
- }
223
- }, C = async () => {
224
- S.value = !0, x.value = [];
225
- try {
226
- const e = Q.value.id, t = new Date(m.value);
227
- t.setHours(0, 0, 0, 0);
228
- const i = new Date(m.value);
229
- i.setHours(23, 59, 59, 999);
230
- const u = await A.find(z.reservationsCollection, {
231
- filters: [
232
- { field: "agendaId", operator: "==", value: e },
233
- { field: "createdAt", operator: ">=", value: t.toISOString() },
234
- { field: "createdAt", operator: "<=", value: i.toISOString() },
235
- { field: "status", operator: "==", value: I.value }
236
- ]
237
- });
238
- let p = [];
239
- u.forEach((f) => {
240
- (f.reservations || []).forEach((V) => {
241
- p.push(W(f, V));
242
- });
243
- }), x.value = p.sort((f, g) => (g.createdAt || "").localeCompare(f.createdAt || ""));
244
- } catch (e) {
245
- console.error("Error loading orders:", e), x.value = [];
246
- } finally {
247
- S.value = !1;
248
- }
249
- }, xe = async () => {
250
- await pe(), await C();
251
- }, Z = async (e, t) => {
252
- const i = await A.get(z.reservationsCollection, e);
253
- if (!i) return;
254
- const u = { ...i, id: i.id || e }, p = (u.reservations || []).map((f) => W(u, f));
255
- if (t) {
256
- const f = p.find((g) => g.res_id === t);
257
- if (!f) return;
258
- await $(), P.value?.openDialog(f);
259
- return;
260
- }
261
- p.length && (await $(), F.value?.openDialog({
262
- id: u.id,
263
- customerInfo: u.customerInfo,
264
- status: u.status,
265
- createdAt: u.createdAt,
266
- metadata: u.metadata || {},
267
- reservations: p,
268
- adjustments: u.adjustments || [],
269
- totalPrice: typeof u.total == "number" ? u.total : p.reduce((f, g) => f + (g.reservationPrice || 0), 0),
270
- totalSpots: p.reduce((f, g) => f + (g.spots || 0), 0)
271
- }));
272
- }, ge = async (e) => {
273
- await $(), P.value?.openDialog(e);
274
- };
275
- return xe(), be(async () => {
276
- const e = Y.value.orderId || q.query.orderId, t = Y.value.reservationId || q.query.reservationId;
277
- if (e) {
278
- const i = new URL(window.location.href);
279
- i.searchParams.delete("orderId"), i.searchParams.delete("reservationId"), window.history.replaceState(window.history.state, "", i.toString()), await Z(e, t);
280
- }
281
- }), ee(m, () => {
282
- C();
283
- }), ee(I, () => {
284
- C();
285
- }), (e, t) => {
286
- const i = k("Button"), u = k("Badge"), p = k("CardTitle"), f = k("CardDescription"), g = k("CardHeader"), V = k("Input"), _e = k("CardContent"), he = k("Card");
287
- return n(), l(N, null, [
288
- r(Ve, null, {
289
- default: v(() => [
290
- a("div", Ee, [
291
- a("div", He, [
292
- a("div", null, [
293
- a("h1", qe, [
294
- r(o(oe), { class: "size-6" }),
295
- t[4] || (t[4] = b(" Orders ", -1))
296
- ]),
297
- t[5] || (t[5] = a("p", { class: "text-muted-foreground text-sm mt-1" }, " View orders by when they were placed ", -1))
298
- ])
299
- ]),
300
- a("div", Ye, [
301
- (n(), l(N, null, M(["confirmed", "pending", "cancelled"], (s) => r(i, {
302
- key: s,
303
- variant: o(I) === s ? "default" : "ghost",
304
- size: "sm",
305
- class: "capitalize",
306
- onClick: (c) => I.value = s
307
- }, {
308
- default: v(() => [
309
- b(d(s), 1)
310
- ]),
311
- _: 2
312
- }, 1032, ["variant", "onClick"])), 64))
313
- ]),
314
- r(he, null, {
315
- default: v(() => [
316
- r(g, null, {
317
- default: v(() => [
318
- a("div", Qe, [
319
- a("div", null, [
320
- r(p, { class: "flex items-center gap-2" }, {
321
- default: v(() => [
322
- t[6] || (t[6] = b(" Orders received ", -1)),
323
- o(j).bookings > 0 ? (n(), te(u, {
324
- key: 0,
325
- variant: "secondary"
326
- }, {
327
- default: v(() => [
328
- b(d(o(j).bookings), 1)
329
- ]),
330
- _: 1
331
- })) : w("", !0)
332
- ]),
333
- _: 1
334
- }),
335
- r(f, { class: "flex items-center gap-4 mt-1" }, {
336
- default: v(() => [
337
- a("span", Xe, [
338
- r(o(L), { size: 14 }),
339
- b(" " + d(o(j).spots) + " spots ", 1)
340
- ]),
341
- a("span", Ge, " €" + d(o(j).revenue.toFixed(2)) + d(o(I) === "pending" ? " pending " : o(I) === "cancelled" ? " cancelled " : " ") + "revenue ", 1)
342
- ]),
343
- _: 1
344
- })
345
- ]),
346
- a("div", Je, [
347
- a("div", Ke, [
348
- r(i, {
349
- variant: "outline",
350
- size: "icon",
351
- class: "size-8",
352
- onClick: de
353
- }, {
354
- default: v(() => [
355
- r(o(Ae), { size: 16 })
356
- ]),
357
- _: 1
358
- }),
359
- r(i, {
360
- variant: "outline",
361
- size: "sm",
362
- class: "h-8 px-3 text-xs",
363
- onClick: me
364
- }, {
365
- default: v(() => [...t[7] || (t[7] = [
366
- b(" Today ", -1)
367
- ])]),
368
- _: 1
369
- }),
370
- r(i, {
371
- variant: "outline",
372
- size: "icon",
373
- class: "size-8",
374
- onClick: ce,
375
- disabled: !o(ue)
376
- }, {
377
- default: v(() => [
378
- r(o(Te), { size: 16 })
379
- ]),
380
- _: 1
381
- }, 8, ["disabled"])
382
- ]),
383
- r(i, {
384
- variant: "outline",
385
- size: "icon",
386
- onClick: C,
387
- disabled: o(S)
388
- }, {
389
- default: v(() => [
390
- r(o(Re), {
391
- size: 16,
392
- class: we({ "animate-spin": o(S) })
393
- }, null, 8, ["class"])
394
- ]),
395
- _: 1
396
- }, 8, ["disabled"])
397
- ])
398
- ]),
399
- a("div", We, [
400
- a("div", Ze, [
401
- r(i, {
402
- type: "button",
403
- variant: "outline",
404
- onClick: le
405
- }, {
406
- default: v(() => [
407
- r(o(E), { class: "size-4" }),
408
- b(" " + d(o(ie)), 1)
409
- ]),
410
- _: 1
411
- }),
412
- De(a("input", {
413
- ref_key: "dateInputRef",
414
- ref: X,
415
- "onUpdate:modelValue": t[0] || (t[0] = (s) => se(B) ? B.value = s : null),
416
- type: "date",
417
- class: "orders-date-picker",
418
- "aria-label": "Select order date"
419
- }, null, 512), [
420
- [Ce, o(B)]
421
- ])
422
- ])
423
- ])
424
- ]),
425
- _: 1
426
- }),
427
- r(_e, null, {
428
- default: v(() => [
429
- a("div", et, [
430
- r(o(Fe), {
431
- size: 16,
432
- class: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"
433
- }),
434
- r(V, {
435
- modelValue: o(h),
436
- "onUpdate:modelValue": t[1] || (t[1] = (s) => se(h) ? h.value = s : null),
437
- placeholder: "Search by name, email, or phone...",
438
- class: "pl-9 pr-9"
439
- }, null, 8, ["modelValue"]),
440
- o(h) ? (n(), te(i, {
441
- key: 0,
442
- variant: "ghost",
443
- size: "icon",
444
- class: "absolute right-1 top-1/2 -translate-y-1/2 h-7 w-7",
445
- onClick: ve
446
- }, {
447
- default: v(() => [
448
- r(o(Be), { size: 14 })
449
- ]),
450
- _: 1
451
- })) : w("", !0)
452
- ]),
453
- o(h) ? (n(), l("div", tt, " Showing " + d(o(U).length) + " of " + d(o(x).length) + " orders ", 1)) : w("", !0),
454
- o(S) ? (n(), l("div", st, [...t[8] || (t[8] = [
455
- a("div", { class: "animate-spin rounded-full h-8 w-8 border-b-2 border-primary" }, null, -1)
456
- ])])) : o(x).length === 0 ? (n(), l("div", at, [
457
- r(o(oe), { class: "size-12 mx-auto mb-3 opacity-50" }),
458
- t[9] || (t[9] = a("p", null, "No orders received on this day", -1))
459
- ])) : o(U).length === 0 ? (n(), l("div", ot, " No orders match your search ")) : (n(), l("div", nt, [
460
- (n(!0), l(N, null, M(o(fe), (s) => (n(), l("div", {
461
- key: s.id,
462
- class: "border rounded-lg overflow-hidden shadow-sm"
463
- }, [
464
- s.reservations.length === 1 ? (n(), l("div", {
465
- key: 0,
466
- class: "p-3 hover:bg-muted/50 transition-colors cursor-pointer",
467
- onClick: (c) => o(P)?.openDialog(s.reservations[0])
468
- }, [
469
- a("div", lt, [
470
- a("div", it, [
471
- a("div", dt, d(s.customerInfo?.firstName || s.customerInfo?.lastName ? [s.customerInfo?.firstName, s.customerInfo?.lastName].filter(Boolean).join(" ") : "Unknown Customer"), 1),
472
- a("div", ct, d(s.customerInfo?.email), 1),
473
- a("div", ut, d(s.customerInfo?.phone), 1),
474
- a("div", mt, [
475
- a("div", ft, [
476
- r(o(E), { size: 12 }),
477
- a("span", null, d(K(s.reservations[0].date)) + " · " + d(s.reservations[0].startTime) + " - " + d(s.reservations[0].endTime), 1)
478
- ]),
479
- a("div", vt, [
480
- r(o(L), { size: 12 }),
481
- a("span", null, d(s.reservations[0].spots) + " spots", 1)
482
- ]),
483
- s.reservations[0].resourceName ? (n(), l("div", pt, [
484
- a("div", {
485
- class: "w-3 h-3 rounded-full",
486
- style: ae({ backgroundColor: s.reservations[0].resourceColor || "#6b7280" })
487
- }, null, 4),
488
- a("span", null, d(s.reservations[0].resourceName), 1)
489
- ])) : w("", !0)
490
- ]),
491
- a("div", xt, [
492
- r(o(ne), { size: 12 }),
493
- a("span", null, "Ordered at " + d(J(s.createdAt)), 1)
494
- ]),
495
- r(H, {
496
- metadata: { ...s.reservations[0].metadata, ...s.reservations[0].reservationMetadata },
497
- schema: o(R),
498
- "display-filter": ["highlight", "badge"],
499
- compact: "",
500
- class: "mt-1"
501
- }, null, 8, ["metadata", "schema"])
502
- ]),
503
- a("div", gt, [
504
- s.reservations[0].status === "pending" ? (n(), l("span", _t, "Pending")) : s.reservations[0].status === "cancelled" ? (n(), l("span", ht, "Cancelled")) : s.reservations[0].reservationStatus === "needs_approval" ? (n(), l("span", yt, "Needs Approval")) : s.reservations[0].reservationStatus === "approved" ? (n(), l("span", kt, "Approved")) : s.reservations[0].reservationStatus === "cancelled" ? (n(), l("span", bt, "Cancelled")) : s.reservations[0].reservationStatus === "rejected" ? (n(), l("span", wt, "Rejected")) : (n(), l("span", Dt, "Pending")),
505
- s.reservations[0].reservationPrice || s.reservations[0].reservationPrice === 0 ? (n(), l("div", Ct, " €" + d(s.reservations[0].reservationPrice.toFixed(2)), 1)) : w("", !0)
506
- ])
507
- ])
508
- ], 8, rt)) : (n(), l(N, { key: 1 }, [
509
- a("div", {
510
- class: "p-3 bg-muted/30 hover:bg-muted/50 transition-colors cursor-pointer",
511
- onClick: (c) => o(F)?.openDialog(s)
512
- }, [
513
- a("div", St, [
514
- a("div", Pt, [
515
- a("div", Nt, [
516
- a("div", zt, d(s.customerInfo?.firstName || s.customerInfo?.lastName ? [s.customerInfo?.firstName, s.customerInfo?.lastName].filter(Boolean).join(" ") : "Unknown Customer"), 1),
517
- r(u, {
518
- variant: "secondary",
519
- class: "text-xs"
520
- }, {
521
- default: v(() => [
522
- b(d(s.reservations.length) + " reservations ", 1)
523
- ]),
524
- _: 2
525
- }, 1024)
526
- ]),
527
- a("div", Ot, d(s.customerInfo?.email), 1),
528
- a("div", jt, d(s.customerInfo?.phone), 1),
529
- a("div", At, [
530
- r(o(ne), { size: 12 }),
531
- a("span", null, "Ordered at " + d(J(s.createdAt)), 1)
532
- ]),
533
- r(H, {
534
- metadata: s.metadata,
535
- schema: o(R),
536
- "display-filter": ["highlight", "badge"],
537
- compact: "",
538
- class: "mt-1"
539
- }, null, 8, ["metadata", "schema"])
540
- ]),
541
- a("div", Tt, [
542
- s.status === "pending" ? (n(), l("span", Rt, "Pending")) : s.status === "cancelled" ? (n(), l("span", Ft, "Cancelled")) : (n(), l("span", Bt, "Confirmed")),
543
- a("div", $t, " €" + d(s.totalPrice.toFixed(2)), 1)
544
- ])
545
- ])
546
- ], 8, It),
547
- (n(!0), l(N, null, M(s.reservations, (c) => (n(), l("div", {
548
- key: c.res_id,
549
- class: "p-3 border-t bg-muted/50 dark:bg-transparent dark:hover:bg-muted/50 transition-colors cursor-pointer",
550
- onClick: (es) => o(P)?.openDialog(c)
551
- }, [
552
- a("div", Vt, [
553
- a("div", Mt, [
554
- a("div", Lt, [
555
- r(o(E), { size: 12 }),
556
- a("span", null, d(K(c.date)) + " · " + d(c.startTime) + " - " + d(c.endTime), 1)
557
- ]),
558
- a("div", Et, [
559
- r(o(L), { size: 12 }),
560
- a("span", null, d(c.spots) + " spots", 1)
561
- ]),
562
- c.resourceName ? (n(), l("div", Ht, [
563
- a("div", {
564
- class: "w-3 h-3 rounded-full",
565
- style: ae({ backgroundColor: c.resourceColor || "#6b7280" })
566
- }, null, 4),
567
- a("span", null, d(c.resourceName), 1)
568
- ])) : w("", !0)
569
- ]),
570
- c.status === "confirmed" ? (n(), l("div", qt, [
571
- c.reservationStatus === "needs_approval" ? (n(), l("span", Yt, "Needs Approval")) : c.reservationStatus === "approved" ? (n(), l("span", Qt, "Approved")) : c.reservationStatus === "cancelled" ? (n(), l("span", Xt, "Cancelled")) : c.reservationStatus === "rejected" ? (n(), l("span", Gt, "Rejected")) : (n(), l("span", Jt, "Pending")),
572
- c.reservationPrice || c.reservationPrice === 0 ? (n(), l("div", Kt, " €" + d(c.reservationPrice.toFixed(2)), 1)) : w("", !0)
573
- ])) : w("", !0)
574
- ]),
575
- r(H, {
576
- metadata: c.reservationMetadata,
577
- schema: o(R),
578
- "display-filter": ["highlight", "badge"],
579
- compact: "",
580
- class: "mt-1"
581
- }, null, 8, ["metadata", "schema"])
582
- ], 8, Ut))), 128))
583
- ], 64))
584
- ]))), 128))
585
- ]))
586
- ]),
587
- _: 1
588
- })
589
- ]),
590
- _: 1
591
- })
592
- ])
593
- ]),
594
- _: 1
595
- }),
596
- r(Ue, {
597
- ref_key: "reservationDetailDialog",
598
- ref: P,
599
- "agenda-data": o(O),
600
- "show-order-link": "",
601
- onCancelled: C,
602
- onConfirmed: C,
603
- onRejected: C,
604
- onOpenOrder: t[2] || (t[2] = (s) => Z(s))
605
- }, null, 8, ["agenda-data"]),
606
- r(Me, {
607
- ref_key: "orderDetailDialog",
608
- ref: F,
609
- "agenda-data": o(O),
610
- onOpenReservation: t[3] || (t[3] = (s) => ge(s))
611
- }, null, 8, ["agenda-data"])
612
- ], 64);
613
- };
614
- }
615
- }), is = /* @__PURE__ */ Le(Wt, [["__scopeId", "data-v-b75d229e"]]);
616
- export {
617
- is as default
618
- };