@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.
- package/dist/{Acquisition-FV3QpaUX.mjs → Acquisition-X5-eksDw.mjs} +2 -2
- package/dist/{Audience-ka0b7YPE.mjs → Audience-CXryJ8tc.mjs} +2 -2
- package/dist/{ContentEditor-C5yNNLeV.mjs → ContentEditor-CUe6-NwF.mjs} +17650 -14456
- package/dist/{ContentEditor-MctMvN7D.js → ContentEditor-DWoXc0T_.js} +52 -52
- package/dist/{Create-BXNLRQag.mjs → Create-BPA2ywrd.mjs} +1 -1
- package/dist/{DateFormatter-qbhRYxI_.mjs → DateFormatter-BkKoSf_l.mjs} +5 -5
- package/dist/{Detail-BCOcP2ql.mjs → Detail-C1Blq61w.mjs} +1 -1
- package/dist/{Detail-ChD5XurA.mjs → Detail-CfsPwl4s.mjs} +17 -17
- package/dist/{Detail-DnX7tsqN.mjs → Detail-CtItxMX4.mjs} +1 -1
- package/dist/{Detail-Btzwo0Y3.mjs → Detail-Dnpnmy4-.mjs} +1 -1
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-gozJKXvM.js +1 -0
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-pDO9b4Pv.mjs +77 -0
- package/dist/{Find-zN_dKz4p.mjs → Find-BAvaNf90.mjs} +1 -1
- package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-BXTkYCm_.mjs +1476 -0
- package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-C2zwt5UF.js +1 -0
- package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-BYSeUW_V.js +925 -0
- package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-DwAUYR8p.mjs +5021 -0
- package/dist/{Overview-BR_y8x3W.mjs → Overview-BWLxUksJ.mjs} +1 -1
- package/dist/{Overview-MpgkLB6m.mjs → Overview-Bjvu9Lfc.mjs} +3 -3
- package/dist/Overview-CBahJviK.js +1 -0
- package/dist/Overview-CVQ1pkuD.mjs +527 -0
- package/dist/{SeoHealth-bVQj_Xgm.mjs → SeoHealth-I2mqiuLm.mjs} +3 -3
- package/dist/TableView-BQI3CWll.mjs +6234 -0
- package/dist/TableView-Cwal0BPW.js +4 -0
- package/dist/agenda-B3nj388v.mjs +1253 -0
- package/dist/agenda-Bev1mO7E.js +1 -0
- package/dist/availability-ClBGVgE9.js +1 -0
- package/dist/availability-D8JdA4rP.mjs +274 -0
- package/dist/booking-data-Px7XCIfU.mjs +1024 -0
- package/dist/booking-data-aMS1p_3g.js +1 -0
- package/dist/cms-core-modules.css +1 -1
- package/dist/exceptions-DXqc0Nza.js +1 -0
- package/dist/exceptions-Dgj54ULn.mjs +651 -0
- package/dist/{index-DZV720u-.mjs → index-52nwosIs.mjs} +45 -45
- package/dist/{index-CkVwMqpn.mjs → index-Bnn9LahC.mjs} +52 -52
- package/dist/{index-B8GvmAwh.mjs → index-DiTIA8Sh.mjs} +27 -27
- package/dist/index-Djp4EBb0.mjs +1245 -0
- package/dist/index-DliTZzwI.js +35 -0
- package/dist/{index-L54VBzwJ.mjs → index-ar4tbR3i.mjs} +8 -8
- package/dist/{index-BIF2RB7k.mjs → index-cC_2cw31.mjs} +4 -4
- package/dist/{index-CFzn2Lus.mjs → index-hMp4p5qA.mjs} +3 -3
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs +26 -25
- package/dist/{math-BJ-oX_IM.mjs → math-Bkw6u412.mjs} +11 -11
- package/dist/orders-1swJVKw2.js +1 -0
- package/dist/orders-D41GbzIa.mjs +624 -0
- package/dist/payment-BJHgpaeT.js +1 -0
- package/dist/payment-D5j-68Ig.mjs +1278 -0
- package/dist/refunds-D9nTeD2d.mjs +436 -0
- package/dist/refunds-oVB2Opib.js +1 -0
- package/dist/resources-8WouFvJe.js +1 -0
- package/dist/resources-CK0oWssj.mjs +975 -0
- package/dist/server-handlers.cjs.js +1 -1
- package/dist/server-handlers.mjs +626 -515
- package/dist/src/appointments/components/edit/EventDialog/BookingsList.vue.d.ts +146 -5
- package/dist/src/appointments/components/edit/EventDialog/CancelRefundReservationDialog.vue.d.ts +33 -0
- package/dist/src/appointments/components/edit/EventDialog/OrderDetailDialog.vue.d.ts +26 -8
- package/dist/src/appointments/components/edit/EventDialog/RefundDetailsDisplay.vue.d.ts +8 -0
- package/dist/src/appointments/components/edit/EventDialog/ReservationDetailDialog.vue.d.ts +91 -5
- package/dist/src/appointments/components/edit/EventDialog/TransferReservationDialog.vue.d.ts +20 -3
- package/dist/src/appointments/components/edit/NewReservationDialog/ReservationLines.vue.d.ts +5 -0
- package/dist/src/appointments/components/edit/OrderMetadataDisplay.vue.d.ts +20 -2
- package/dist/src/appointments/components/edit/dashboard/BookingsList.vue.d.ts +240 -0
- package/dist/src/appointments/composables/useAgendaMetadataSchema.d.ts +37 -0
- package/dist/src/appointments/pages/edit/orders.vue.d.ts +225 -0
- package/dist/src/appointments/pages/edit/refunds.vue.d.ts +2 -0
- package/dist/src/appointments/server.d.ts +2 -0
- package/dist/src/appointments/types.d.ts +6 -0
- package/dist/src/appointments/utils/printReservation.d.ts +65 -3
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/Table.d.ts +36 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/Table.vue.d.ts +95 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/TableCell.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/TableHeader.d.ts +6 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/TableRow.d.ts +6 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/index.d.ts +4 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/TableMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/index.d.ts +14 -0
- package/dist/{vee-validate-zod-DNjTLCgh.mjs → vee-validate-zod-CcOwoF6y.mjs} +6 -6
- package/package.json +2 -2
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-DWMqQvHl.mjs +0 -76
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js +0 -1
- package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Baqy-rTT.js +0 -1
- package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Dx4Bpa2m.mjs +0 -1263
- package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-COrK1j0S.js +0 -1
- package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-Vb3q8EVv.mjs +0 -330
- package/dist/Overview-98nkJUWN.mjs +0 -481
- package/dist/Overview-Dl8cMlsr.js +0 -1
- package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-CuwREvXD.js +0 -349
- package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-GYNZ_yhD.mjs +0 -3077
- package/dist/TableView-CVfkyj1k.js +0 -4
- package/dist/TableView-zDx0IegJ.mjs +0 -6096
- package/dist/agenda-BaJu3-1c.js +0 -1
- package/dist/agenda-BwVY_8oM.mjs +0 -1165
- package/dist/availability-CMrRa5y2.mjs +0 -269
- package/dist/availability-Cf2YfMwM.js +0 -1
- package/dist/booking-data-DgJd0BcM.mjs +0 -889
- package/dist/booking-data-Di5GmH_8.js +0 -1
- package/dist/exceptions-B6P9UiCj.js +0 -1
- package/dist/exceptions-De9-FvdP.mjs +0 -646
- package/dist/index-DL6orwdK.js +0 -35
- package/dist/index-hH3e-IYz.mjs +0 -1187
- package/dist/orders-C65SlpJy.mjs +0 -618
- package/dist/orders-XVzWAgG1.js +0 -1
- package/dist/payment-C3ohkehF.mjs +0 -1080
- package/dist/payment-Dfr-Ro-a.js +0 -1
- package/dist/resources-CxeFd57z.js +0 -1
- package/dist/resources-DwYxn2Vi.mjs +0 -811
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
import { defineComponent as U, reactive as $, ref as k, resolveComponent as a, openBlock as m, createBlock as y, withCtx as i, createElementVNode as s, createElementBlock as S, createVNode as t, createTextVNode as l, toDisplayString as N, createCommentVNode as w } from "vue";
|
|
2
|
-
import { _ as D } from "./EditLayout.vue_vue_type_script_setup_true_lang-DWMqQvHl.mjs";
|
|
3
|
-
import { useModuleRoute as j, useModule as W, useFirebaseIntegration as q } from "@oneclick.dev/cms-kit";
|
|
4
|
-
const z = {
|
|
5
|
-
key: 0,
|
|
6
|
-
class: "max-w-2xl"
|
|
7
|
-
}, F = {
|
|
8
|
-
key: 0,
|
|
9
|
-
class: "text-sm text-orange-500 mt-2"
|
|
10
|
-
}, H = { class: "space-y-3" }, O = { class: "flex items-center justify-between rounded-lg border p-4 bg-card" }, J = { class: "space-y-2" }, K = { class: "flex justify-start mt-8" }, h = /* @__PURE__ */ U({
|
|
11
|
-
__name: "availability",
|
|
12
|
-
setup(Q) {
|
|
13
|
-
const { params: g } = j(), { config: v } = W(), x = q(v.project), n = $({
|
|
14
|
-
minimumAdvanceNotice: {
|
|
15
|
-
value: 0,
|
|
16
|
-
unit: "minutes"
|
|
17
|
-
},
|
|
18
|
-
serviceVisibility: 60,
|
|
19
|
-
maxTicketsPerReservation: "",
|
|
20
|
-
needsApproval: !1
|
|
21
|
-
}), d = k(!1), V = k(!0), _ = async () => {
|
|
22
|
-
d.value = !0;
|
|
23
|
-
try {
|
|
24
|
-
const o = g.value.id;
|
|
25
|
-
if (!o) throw new Error("Missing agenda ID");
|
|
26
|
-
await x.update(v.agendaCollection, o, {
|
|
27
|
-
minimumAdvanceNotice: {
|
|
28
|
-
value: Number(n.minimumAdvanceNotice?.value) || 0,
|
|
29
|
-
unit: n.minimumAdvanceNotice?.unit ?? "minutes"
|
|
30
|
-
},
|
|
31
|
-
serviceVisibility: Math.max(Number(n.serviceVisibility) || 1, 1),
|
|
32
|
-
maxTicketsPerReservation: Math.max(Number(n.maxTicketsPerReservation) || 0, 0),
|
|
33
|
-
needsApproval: n.needsApproval || !1
|
|
34
|
-
});
|
|
35
|
-
} catch (o) {
|
|
36
|
-
console.error("Error saving changes:", o);
|
|
37
|
-
} finally {
|
|
38
|
-
d.value = !1;
|
|
39
|
-
}
|
|
40
|
-
}, M = async () => {
|
|
41
|
-
try {
|
|
42
|
-
const o = await x.get(v.agendaCollection, g.value.id);
|
|
43
|
-
o && (n.minimumAdvanceNotice = o.minimumAdvanceNotice || { value: 0, unit: "minutes" }, n.serviceVisibility = o.serviceVisibility || 60, n.maxTicketsPerReservation = Number(o.maxTicketsPerReservation) && o.maxTicketsPerReservation > 0 ? parseInt(o.maxTicketsPerReservation) : "", n.needsApproval = o.needsApproval || !1);
|
|
44
|
-
} catch (o) {
|
|
45
|
-
console.error("Error loading agenda data:", o);
|
|
46
|
-
} finally {
|
|
47
|
-
V.value = !1;
|
|
48
|
-
}
|
|
49
|
-
}, T = () => {
|
|
50
|
-
let o = Math.abs(n.minimumAdvanceNotice.value), e = n.minimumAdvanceNotice.unit;
|
|
51
|
-
return o === 1 ? (e.endsWith("s") && (e = e.slice(0, -1)), `Lead time is negative. Bookings remain open for 1 ${e} after the slot has started.`) : `Lead time is negative. Bookings remain open for ${o} ${e} after the slot has started.`;
|
|
52
|
-
};
|
|
53
|
-
return M(), (o, e) => {
|
|
54
|
-
const u = a("Label"), c = a("InputGroupInput"), C = a("Search"), p = a("InputGroupAddon"), I = a("SelectValue"), B = a("SelectTrigger"), f = a("SelectItem"), R = a("SelectGroup"), P = a("SelectContent"), G = a("Select"), b = a("InputGroup"), A = a("Badge"), L = a("Switch"), E = a("Button");
|
|
55
|
-
return m(), y(D, null, {
|
|
56
|
-
default: i(() => [
|
|
57
|
-
e[26] || (e[26] = s("h1", { class: "text-lg font-medium mb-8" }, "Availability Settings", -1)),
|
|
58
|
-
V.value ? w("", !0) : (m(), S("div", z, [
|
|
59
|
-
s("div", null, [
|
|
60
|
-
t(u, {
|
|
61
|
-
for: "lead-time",
|
|
62
|
-
class: "text-base font-medium mb-2"
|
|
63
|
-
}, {
|
|
64
|
-
default: i(() => [...e[6] || (e[6] = [
|
|
65
|
-
l(" Minimum Advance Notice - Lead Time (Optional) ", -1)
|
|
66
|
-
])]),
|
|
67
|
-
_: 1
|
|
68
|
-
}),
|
|
69
|
-
t(b, { class: "max-w-md" }, {
|
|
70
|
-
default: i(() => [
|
|
71
|
-
t(c, {
|
|
72
|
-
placeholder: "0",
|
|
73
|
-
id: "lead-time",
|
|
74
|
-
modelValue: n.minimumAdvanceNotice.value,
|
|
75
|
-
"onUpdate:modelValue": e[0] || (e[0] = (r) => n.minimumAdvanceNotice.value = r),
|
|
76
|
-
modelModifiers: { value: !0 },
|
|
77
|
-
type: "number",
|
|
78
|
-
class: "no-spinner"
|
|
79
|
-
}, null, 8, ["modelValue"]),
|
|
80
|
-
t(p, null, {
|
|
81
|
-
default: i(() => [
|
|
82
|
-
t(C)
|
|
83
|
-
]),
|
|
84
|
-
_: 1
|
|
85
|
-
}),
|
|
86
|
-
t(p, { align: "inline-end" }, {
|
|
87
|
-
default: i(() => [
|
|
88
|
-
t(G, {
|
|
89
|
-
modelValue: n.minimumAdvanceNotice.unit,
|
|
90
|
-
"onUpdate:modelValue": e[1] || (e[1] = (r) => n.minimumAdvanceNotice.unit = r)
|
|
91
|
-
}, {
|
|
92
|
-
default: i(() => [
|
|
93
|
-
t(B, { class: "w-[180px] border-0 bg-transparent -mr-1.5" }, {
|
|
94
|
-
default: i(() => [
|
|
95
|
-
t(I)
|
|
96
|
-
]),
|
|
97
|
-
_: 1
|
|
98
|
-
}),
|
|
99
|
-
t(P, null, {
|
|
100
|
-
default: i(() => [
|
|
101
|
-
t(R, null, {
|
|
102
|
-
default: i(() => [
|
|
103
|
-
t(f, { value: "minutes" }, {
|
|
104
|
-
default: i(() => [...e[7] || (e[7] = [
|
|
105
|
-
l(" Minutes ", -1)
|
|
106
|
-
])]),
|
|
107
|
-
_: 1
|
|
108
|
-
}),
|
|
109
|
-
t(f, { value: "hours" }, {
|
|
110
|
-
default: i(() => [...e[8] || (e[8] = [
|
|
111
|
-
l(" Hours ", -1)
|
|
112
|
-
])]),
|
|
113
|
-
_: 1
|
|
114
|
-
}),
|
|
115
|
-
t(f, { value: "days" }, {
|
|
116
|
-
default: i(() => [...e[9] || (e[9] = [
|
|
117
|
-
l(" Days ", -1)
|
|
118
|
-
])]),
|
|
119
|
-
_: 1
|
|
120
|
-
})
|
|
121
|
-
]),
|
|
122
|
-
_: 1
|
|
123
|
-
})
|
|
124
|
-
]),
|
|
125
|
-
_: 1
|
|
126
|
-
})
|
|
127
|
-
]),
|
|
128
|
-
_: 1
|
|
129
|
-
}, 8, ["modelValue"])
|
|
130
|
-
]),
|
|
131
|
-
_: 1
|
|
132
|
-
})
|
|
133
|
-
]),
|
|
134
|
-
_: 1
|
|
135
|
-
}),
|
|
136
|
-
e[10] || (e[10] = s("p", { class: "text-sm text-muted-foreground mt-2" }, " Set how far in advance a customer must book your slot. ", -1)),
|
|
137
|
-
n.minimumAdvanceNotice.value < 0 ? (m(), S("p", F, N(T()), 1)) : w("", !0)
|
|
138
|
-
]),
|
|
139
|
-
e[23] || (e[23] = s("hr", { class: "my-8" }, null, -1)),
|
|
140
|
-
s("div", null, [
|
|
141
|
-
t(u, {
|
|
142
|
-
for: "service-visibility",
|
|
143
|
-
class: "text-base font-medium mb-2"
|
|
144
|
-
}, {
|
|
145
|
-
default: i(() => [...e[11] || (e[11] = [
|
|
146
|
-
l(" Service Visibility ", -1)
|
|
147
|
-
])]),
|
|
148
|
-
_: 1
|
|
149
|
-
}),
|
|
150
|
-
t(b, { class: "max-w-md" }, {
|
|
151
|
-
default: i(() => [
|
|
152
|
-
t(c, {
|
|
153
|
-
id: "service-visibility",
|
|
154
|
-
modelValue: n.serviceVisibility,
|
|
155
|
-
"onUpdate:modelValue": e[2] || (e[2] = (r) => n.serviceVisibility = r),
|
|
156
|
-
modelModifiers: { number: !0 },
|
|
157
|
-
placeholder: "1",
|
|
158
|
-
type: "number",
|
|
159
|
-
class: "no-spinner",
|
|
160
|
-
min: "1",
|
|
161
|
-
onBlur: e[3] || (e[3] = (r) => n.serviceVisibility = Math.max(n.serviceVisibility, 1))
|
|
162
|
-
}, null, 8, ["modelValue"]),
|
|
163
|
-
t(p, { align: "inline-end" }, {
|
|
164
|
-
default: i(() => [...e[12] || (e[12] = [
|
|
165
|
-
l(" days ", -1)
|
|
166
|
-
])]),
|
|
167
|
-
_: 1
|
|
168
|
-
})
|
|
169
|
-
]),
|
|
170
|
-
_: 1
|
|
171
|
-
}),
|
|
172
|
-
e[13] || (e[13] = s("p", { class: "text-sm text-muted-foreground mt-2" }, " Set how many days in advance the service is visible to customers. ", -1))
|
|
173
|
-
]),
|
|
174
|
-
e[24] || (e[24] = s("hr", { class: "my-8" }, null, -1)),
|
|
175
|
-
s("div", null, [
|
|
176
|
-
t(u, {
|
|
177
|
-
for: "max-capacity",
|
|
178
|
-
class: "text-base font-medium mb-2"
|
|
179
|
-
}, {
|
|
180
|
-
default: i(() => [...e[14] || (e[14] = [
|
|
181
|
-
l(" Maximum Tickets Per Booking ", -1)
|
|
182
|
-
])]),
|
|
183
|
-
_: 1
|
|
184
|
-
}),
|
|
185
|
-
t(b, { class: "max-w-md" }, {
|
|
186
|
-
default: i(() => [
|
|
187
|
-
t(c, {
|
|
188
|
-
placeholder: "∞",
|
|
189
|
-
type: "number",
|
|
190
|
-
id: "max-capacity",
|
|
191
|
-
class: "no-spinner",
|
|
192
|
-
min: "1",
|
|
193
|
-
modelValue: n.maxTicketsPerReservation,
|
|
194
|
-
"onUpdate:modelValue": e[4] || (e[4] = (r) => n.maxTicketsPerReservation = r),
|
|
195
|
-
modelModifiers: { number: !0 }
|
|
196
|
-
}, null, 8, ["modelValue"]),
|
|
197
|
-
t(p, { align: "inline-end" }, {
|
|
198
|
-
default: i(() => [...e[15] || (e[15] = [
|
|
199
|
-
l(" spots ", -1)
|
|
200
|
-
])]),
|
|
201
|
-
_: 1
|
|
202
|
-
})
|
|
203
|
-
]),
|
|
204
|
-
_: 1
|
|
205
|
-
}),
|
|
206
|
-
e[16] || (e[16] = s("p", { class: "text-sm text-muted-foreground mt-2" }, " Limit how many spots a customer can book in a single reservation. ", -1))
|
|
207
|
-
]),
|
|
208
|
-
e[25] || (e[25] = s("hr", { class: "my-8" }, null, -1)),
|
|
209
|
-
s("div", H, [
|
|
210
|
-
s("div", null, [
|
|
211
|
-
t(u, { class: "text-base font-medium" }, {
|
|
212
|
-
default: i(() => [...e[17] || (e[17] = [
|
|
213
|
-
l("Booking Approval", -1)
|
|
214
|
-
])]),
|
|
215
|
-
_: 1
|
|
216
|
-
}),
|
|
217
|
-
e[18] || (e[18] = s("p", { class: "text-sm text-muted-foreground" }, " Choose whether you want to confirm booking requests manually or accept them automatically. ", -1))
|
|
218
|
-
]),
|
|
219
|
-
s("div", O, [
|
|
220
|
-
s("div", J, [
|
|
221
|
-
t(u, { class: "text-sm font-semibold" }, {
|
|
222
|
-
default: i(() => [...e[19] || (e[19] = [
|
|
223
|
-
l("Enable Manual Approval", -1)
|
|
224
|
-
])]),
|
|
225
|
-
_: 1
|
|
226
|
-
}),
|
|
227
|
-
e[22] || (e[22] = s("p", { class: "text-xs text-muted-foreground max-w-[300px]" }, " When enabled, you must approve bookings within your dashboard before they are finalized. ", -1)),
|
|
228
|
-
n.needsApproval ? (m(), y(A, { key: 0 }, {
|
|
229
|
-
default: i(() => [...e[20] || (e[20] = [
|
|
230
|
-
l("Status: Manual Review", -1)
|
|
231
|
-
])]),
|
|
232
|
-
_: 1
|
|
233
|
-
})) : (m(), y(A, {
|
|
234
|
-
key: 1,
|
|
235
|
-
variant: "secondary"
|
|
236
|
-
}, {
|
|
237
|
-
default: i(() => [...e[21] || (e[21] = [
|
|
238
|
-
l("Status: Auto-Confirm", -1)
|
|
239
|
-
])]),
|
|
240
|
-
_: 1
|
|
241
|
-
}))
|
|
242
|
-
]),
|
|
243
|
-
t(L, {
|
|
244
|
-
modelValue: n.needsApproval,
|
|
245
|
-
"onUpdate:modelValue": e[5] || (e[5] = (r) => n.needsApproval = r)
|
|
246
|
-
}, null, 8, ["modelValue"])
|
|
247
|
-
])
|
|
248
|
-
]),
|
|
249
|
-
s("div", K, [
|
|
250
|
-
t(E, {
|
|
251
|
-
onClick: _,
|
|
252
|
-
disabled: d.value
|
|
253
|
-
}, {
|
|
254
|
-
default: i(() => [
|
|
255
|
-
l(N(d.value ? "Saving..." : "Save Changes"), 1)
|
|
256
|
-
]),
|
|
257
|
-
_: 1
|
|
258
|
-
}, 8, ["disabled"])
|
|
259
|
-
])
|
|
260
|
-
]))
|
|
261
|
-
]),
|
|
262
|
-
_: 1
|
|
263
|
-
});
|
|
264
|
-
};
|
|
265
|
-
}
|
|
266
|
-
});
|
|
267
|
-
export {
|
|
268
|
-
h as default
|
|
269
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),_=require("./EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js"),c=require("@oneclick.dev/cms-kit"),E={key:0,class:"max-w-2xl"},B={key:0,class:"text-sm text-orange-500 mt-2"},M={class:"space-y-3"},h={class:"flex items-center justify-between rounded-lg border p-4 bg-card"},I={class:"space-y-2"},P={class:"flex justify-start mt-8"},R=e.defineComponent({__name:"availability",setup(L){const{params:p}=c.useModuleRoute(),{config:r}=c.useModule(),v=c.useFirebaseIntegration(r.project),o=e.reactive({minimumAdvanceNotice:{value:0,unit:"minutes"},serviceVisibility:60,maxTicketsPerReservation:"",needsApproval:!1}),l=e.ref(!1),V=e.ref(!0),N=async()=>{l.value=!0;try{const n=p.value.id;if(!n)throw new Error("Missing agenda ID");await v.update(r.agendaCollection,n,{minimumAdvanceNotice:{value:Number(o.minimumAdvanceNotice?.value)||0,unit:o.minimumAdvanceNotice?.unit??"minutes"},serviceVisibility:Math.max(Number(o.serviceVisibility)||1,1),maxTicketsPerReservation:Math.max(Number(o.maxTicketsPerReservation)||0,0),needsApproval:o.needsApproval||!1})}catch(n){console.error("Error saving changes:",n)}finally{l.value=!1}},f=async()=>{try{const n=await v.get(r.agendaCollection,p.value.id);n&&(o.minimumAdvanceNotice=n.minimumAdvanceNotice||{value:0,unit:"minutes"},o.serviceVisibility=n.serviceVisibility||60,o.maxTicketsPerReservation=Number(n.maxTicketsPerReservation)&&n.maxTicketsPerReservation>0?parseInt(n.maxTicketsPerReservation):"",o.needsApproval=n.needsApproval||!1)}catch(n){console.error("Error loading agenda data:",n)}finally{V.value=!1}},y=()=>{let n=Math.abs(o.minimumAdvanceNotice.value),t=o.minimumAdvanceNotice.unit;return n===1?(t.endsWith("s")&&(t=t.slice(0,-1)),`Lead time is negative. Bookings remain open for 1 ${t} after the slot has started.`):`Lead time is negative. Bookings remain open for ${n} ${t} after the slot has started.`};return f(),(n,t)=>{const i=e.resolveComponent("Label"),d=e.resolveComponent("InputGroupInput"),b=e.resolveComponent("Search"),s=e.resolveComponent("InputGroupAddon"),g=e.resolveComponent("SelectValue"),C=e.resolveComponent("SelectTrigger"),m=e.resolveComponent("SelectItem"),w=e.resolveComponent("SelectGroup"),k=e.resolveComponent("SelectContent"),S=e.resolveComponent("Select"),u=e.resolveComponent("InputGroup"),x=e.resolveComponent("Badge"),A=e.resolveComponent("Switch"),T=e.resolveComponent("Button");return e.openBlock(),e.createBlock(_._sfc_main,null,{default:e.withCtx(()=>[t[26]||(t[26]=e.createElementVNode("h1",{class:"text-lg font-medium mb-8"},"Availability Settings",-1)),V.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",E,[e.createElementVNode("div",null,[e.createVNode(i,{for:"lead-time",class:"text-base font-medium mb-2"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode(" Minimum Advance Notice - Lead Time (Optional) ",-1)])]),_:1}),e.createVNode(u,{class:"max-w-md"},{default:e.withCtx(()=>[e.createVNode(d,{placeholder:"0",id:"lead-time",modelValue:o.minimumAdvanceNotice.value,"onUpdate:modelValue":t[0]||(t[0]=a=>o.minimumAdvanceNotice.value=a),modelModifiers:{value:!0},type:"number",class:"no-spinner"},null,8,["modelValue"]),e.createVNode(s,null,{default:e.withCtx(()=>[e.createVNode(b)]),_:1}),e.createVNode(s,{align:"inline-end"},{default:e.withCtx(()=>[e.createVNode(S,{modelValue:o.minimumAdvanceNotice.unit,"onUpdate:modelValue":t[1]||(t[1]=a=>o.minimumAdvanceNotice.unit=a)},{default:e.withCtx(()=>[e.createVNode(C,{class:"w-[180px] border-0 bg-transparent -mr-1.5"},{default:e.withCtx(()=>[e.createVNode(g)]),_:1}),e.createVNode(k,null,{default:e.withCtx(()=>[e.createVNode(w,null,{default:e.withCtx(()=>[e.createVNode(m,{value:"minutes"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode(" Minutes ",-1)])]),_:1}),e.createVNode(m,{value:"hours"},{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode(" Hours ",-1)])]),_:1}),e.createVNode(m,{value:"days"},{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode(" Days ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t[10]||(t[10]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-2"}," Set how far in advance a customer must book your slot. ",-1)),o.minimumAdvanceNotice.value<0?(e.openBlock(),e.createElementBlock("p",B,e.toDisplayString(y()),1)):e.createCommentVNode("",!0)]),t[23]||(t[23]=e.createElementVNode("hr",{class:"my-8"},null,-1)),e.createElementVNode("div",null,[e.createVNode(i,{for:"service-visibility",class:"text-base font-medium mb-2"},{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode(" Service Visibility ",-1)])]),_:1}),e.createVNode(u,{class:"max-w-md"},{default:e.withCtx(()=>[e.createVNode(d,{id:"service-visibility",modelValue:o.serviceVisibility,"onUpdate:modelValue":t[2]||(t[2]=a=>o.serviceVisibility=a),modelModifiers:{number:!0},placeholder:"1",type:"number",class:"no-spinner",min:"1",onBlur:t[3]||(t[3]=a=>o.serviceVisibility=Math.max(o.serviceVisibility,1))},null,8,["modelValue"]),e.createVNode(s,{align:"inline-end"},{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode(" days ",-1)])]),_:1})]),_:1}),t[13]||(t[13]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-2"}," Set how many days in advance the service is visible to customers. ",-1))]),t[24]||(t[24]=e.createElementVNode("hr",{class:"my-8"},null,-1)),e.createElementVNode("div",null,[e.createVNode(i,{for:"max-capacity",class:"text-base font-medium mb-2"},{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createTextVNode(" Maximum Tickets Per Booking ",-1)])]),_:1}),e.createVNode(u,{class:"max-w-md"},{default:e.withCtx(()=>[e.createVNode(d,{placeholder:"∞",type:"number",id:"max-capacity",class:"no-spinner",min:"1",modelValue:o.maxTicketsPerReservation,"onUpdate:modelValue":t[4]||(t[4]=a=>o.maxTicketsPerReservation=a),modelModifiers:{number:!0}},null,8,["modelValue"]),e.createVNode(s,{align:"inline-end"},{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createTextVNode(" spots ",-1)])]),_:1})]),_:1}),t[16]||(t[16]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-2"}," Limit how many spots a customer can book in a single reservation. ",-1))]),t[25]||(t[25]=e.createElementVNode("hr",{class:"my-8"},null,-1)),e.createElementVNode("div",M,[e.createElementVNode("div",null,[e.createVNode(i,{class:"text-base font-medium"},{default:e.withCtx(()=>[...t[17]||(t[17]=[e.createTextVNode("Booking Approval",-1)])]),_:1}),t[18]||(t[18]=e.createElementVNode("p",{class:"text-sm text-muted-foreground"}," Choose whether you want to confirm booking requests manually or accept them automatically. ",-1))]),e.createElementVNode("div",h,[e.createElementVNode("div",I,[e.createVNode(i,{class:"text-sm font-semibold"},{default:e.withCtx(()=>[...t[19]||(t[19]=[e.createTextVNode("Enable Manual Approval",-1)])]),_:1}),t[22]||(t[22]=e.createElementVNode("p",{class:"text-xs text-muted-foreground max-w-[300px]"}," When enabled, you must approve bookings within your dashboard before they are finalized. ",-1)),o.needsApproval?(e.openBlock(),e.createBlock(x,{key:0},{default:e.withCtx(()=>[...t[20]||(t[20]=[e.createTextVNode("Status: Manual Review",-1)])]),_:1})):(e.openBlock(),e.createBlock(x,{key:1,variant:"secondary"},{default:e.withCtx(()=>[...t[21]||(t[21]=[e.createTextVNode("Status: Auto-Confirm",-1)])]),_:1}))]),e.createVNode(A,{modelValue:o.needsApproval,"onUpdate:modelValue":t[5]||(t[5]=a=>o.needsApproval=a)},null,8,["modelValue"])])]),e.createElementVNode("div",P,[e.createVNode(T,{onClick:N,disabled:l.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.value?"Saving...":"Save Changes"),1)]),_:1},8,["disabled"])])]))]),_:1})}}});exports.default=R;
|