@getmicdrop/venue-calendar 4.0.69 → 4.0.71
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/{CarouselView.legacy-H5I8FG8q.js → CarouselView.legacy-ClHr7g2d.js} +3 -3
- package/dist/{CarouselView.legacy-H5I8FG8q.js.map → CarouselView.legacy-ClHr7g2d.js.map} +1 -1
- package/dist/{CartView-Bp50FEe3.js → CartView-BncT-vVW.js} +53 -53
- package/dist/{CartView-Bp50FEe3.js.map → CartView-BncT-vVW.js.map} +1 -1
- package/dist/{Checkout-C_7r24PK.js → Checkout-7rhwtJSX.js} +278 -273
- package/dist/Checkout-7rhwtJSX.js.map +1 -0
- package/dist/{Checkout-CbltFN5w.js → Checkout-DUwzAkMN.js} +114 -114
- package/dist/{Checkout-CbltFN5w.js.map → Checkout-DUwzAkMN.js.map} +1 -1
- package/dist/{Checkout.legacy-C8IT4aEk.js → Checkout.legacy-D9nNe_AZ.js} +5 -5
- package/dist/{Checkout.legacy-C8IT4aEk.js.map → Checkout.legacy-D9nNe_AZ.js.map} +1 -1
- package/dist/{CheckoutTimer-BDGvUG7s.js → CheckoutTimer-Vgrjjbvg.js} +2 -2
- package/dist/{CheckoutTimer-BDGvUG7s.js.map → CheckoutTimer-Vgrjjbvg.js.map} +1 -1
- package/dist/{CollectionView-BjcFcBDn.js → CollectionView-DLcoMjuw.js} +5 -5
- package/dist/{CollectionView-BjcFcBDn.js.map → CollectionView-DLcoMjuw.js.map} +1 -1
- package/dist/{CollectionView.legacy-DXRPPTGM.js → CollectionView.legacy-B_8a2U1u.js} +31 -31
- package/dist/{CollectionView.legacy-DXRPPTGM.js.map → CollectionView.legacy-B_8a2U1u.js.map} +1 -1
- package/dist/{Event-DNTpd-NG.js → Event-BBIEvf3e.js} +145 -145
- package/dist/{Event-DNTpd-NG.js.map → Event-BBIEvf3e.js.map} +1 -1
- package/dist/{EventDetailsView-DokL1zEd.js → EventDetailsView-BHxDjZCb.js} +6 -6
- package/dist/{EventDetailsView-DokL1zEd.js.map → EventDetailsView-BHxDjZCb.js.map} +1 -1
- package/dist/{EventPage-DfER-ohd.js → EventPage-CtJ9YZcS.js} +5 -5
- package/dist/{EventPage-DfER-ohd.js.map → EventPage-CtJ9YZcS.js.map} +1 -1
- package/dist/{EventPage.legacy-DKCXDcqQ.js → EventPage.legacy-CQ1MAI_B.js} +49 -49
- package/dist/{EventPage.legacy-DKCXDcqQ.js.map → EventPage.legacy-CQ1MAI_B.js.map} +1 -1
- package/dist/{FeaturedView.legacy-DkEiwirz.js → FeaturedView.legacy-aKrVnwkw.js} +19 -19
- package/dist/{FeaturedView.legacy-DkEiwirz.js.map → FeaturedView.legacy-aKrVnwkw.js.map} +1 -1
- package/dist/{GalleryCard-DBSyzYbv.js → GalleryCard-Da9zFkLr.js} +9 -9
- package/dist/{GalleryCard-DBSyzYbv.js.map → GalleryCard-Da9zFkLr.js.map} +1 -1
- package/dist/{GalleryView.legacy-CcqQNcMK.js → GalleryView.legacy-D3A9pCKp.js} +3 -3
- package/dist/{GalleryView.legacy-CcqQNcMK.js.map → GalleryView.legacy-D3A9pCKp.js.map} +1 -1
- package/dist/{GroupedListView.legacy-Bueg0Oxp.js → GroupedListView.legacy-BaoTHCTN.js} +23 -23
- package/dist/{GroupedListView.legacy-Bueg0Oxp.js.map → GroupedListView.legacy-BaoTHCTN.js.map} +1 -1
- package/dist/{OrderSummary-D_G9VNpM.js → OrderSummary-DaBRHOX_.js} +7 -7
- package/dist/{OrderSummary-D_G9VNpM.js.map → OrderSummary-DaBRHOX_.js.map} +1 -1
- package/dist/{PromoCodeInput-w7EGNs3a.js → PromoCodeInput-C_RKyiKy.js} +30 -30
- package/dist/{PromoCodeInput-w7EGNs3a.js.map → PromoCodeInput-C_RKyiKy.js.map} +1 -1
- package/dist/{SeriesPage-bCW_8Ewp.js → SeriesPage-Cp9hhvIY.js} +5 -5
- package/dist/{SeriesPage-bCW_8Ewp.js.map → SeriesPage-Cp9hhvIY.js.map} +1 -1
- package/dist/{SeriesPage.legacy-DZmmNEWc.js → SeriesPage.legacy-Jk6vH4SQ.js} +38 -38
- package/dist/{SeriesPage.legacy-DZmmNEWc.js.map → SeriesPage.legacy-Jk6vH4SQ.js.map} +1 -1
- package/dist/{Success-CKSUEqXp.js → Success-C7SFYk8j.js} +24 -24
- package/dist/{Success-CKSUEqXp.js.map → Success-C7SFYk8j.js.map} +1 -1
- package/dist/{Success.legacy-BnjWS130.js → Success.legacy-VgQ_-sfp.js} +2 -2
- package/dist/{Success.legacy-BnjWS130.js.map → Success.legacy-VgQ_-sfp.js.map} +1 -1
- package/dist/{VenueCalendar-n-T-MmLU.js → VenueCalendar-BYs68ta2.js} +1790 -1774
- package/dist/{VenueCalendar-n-T-MmLU.js.map → VenueCalendar-BYs68ta2.js.map} +1 -1
- package/dist/{ViewTicketsEmbed-CV6ipR3B.js → ViewTicketsEmbed-DLjGYNC1.js} +42 -42
- package/dist/{ViewTicketsEmbed-CV6ipR3B.js.map → ViewTicketsEmbed-DLjGYNC1.js.map} +1 -1
- package/dist/{WaitlistModal-BDzMplxL.js → WaitlistModal-BRRzVbhX.js} +35 -35
- package/dist/{WaitlistModal-BDzMplxL.js.map → WaitlistModal-BRRzVbhX.js.map} +1 -1
- package/dist/api/api.cjs +1 -1
- package/dist/api/api.cjs.map +1 -1
- package/dist/api/api.mjs +160 -157
- package/dist/api/api.mjs.map +1 -1
- package/dist/{api-Bj-wXy71.js → api-COTZNjyj.js} +2 -2
- package/dist/{api-Bj-wXy71.js.map → api-COTZNjyj.js.map} +1 -1
- package/dist/{data-toggle-store.svelte-DmcpAUWu.js → data-toggle-store.svelte-C65MzzYZ.js} +2 -2
- package/dist/{data-toggle-store.svelte-DmcpAUWu.js.map → data-toggle-store.svelte-C65MzzYZ.js.map} +1 -1
- package/dist/{transform-BLT4wYBC.js → transform-TJz04LxL.js} +2 -2
- package/dist/{transform-BLT4wYBC.js.map → transform-TJz04LxL.js.map} +1 -1
- package/dist/venue-calendar.es.js +1 -1
- package/dist/venue-calendar.iife.js +32 -32
- package/dist/venue-calendar.iife.js.map +1 -1
- package/dist/venue-calendar.umd.js +30 -30
- package/dist/venue-calendar.umd.js.map +1 -1
- package/package.json +1 -1
- package/dist/Checkout-C_7r24PK.js.map +0 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import "svelte/internal/disclose-version";
|
|
2
2
|
import * as e from "svelte/internal/client";
|
|
3
|
-
import {
|
|
3
|
+
import { aA as ge, M as xe, j as he, k as be, l as ye, b3 as we, T as $e, ad as ee, m as Pe, B as R, b4 as ke } from "./VenueCalendar-BYs68ta2.js";
|
|
4
4
|
import "svelte/transition";
|
|
5
5
|
import "svelte/easing";
|
|
6
|
-
var Ee = e.from_html('<p class="text-xs text-muted-foreground mt-2"> </p>'), Me = e.from_html('<div class="flex flex-col items-center text-center pt-6 px-4 pb-4"><div class="w-16 h-16 rounded-full flex items-center justify-center mb-4 bg-accent-success/10 text-accent-success" aria-hidden="true"><!></div> <h3 id="waitlist-title" class="text-xl font-semibold text-text-primary mb-2"> </h3> <p id="waitlist-description" class="text-sm text-text-secondary leading-relaxed max-w-72"> </p> <!></div>'), Te = e.from_html('<p class="text-xs text-accent-danger mt-1"> </p>'),
|
|
6
|
+
var Ee = e.from_html('<p class="text-xs text-muted-foreground mt-2"> </p>'), Me = e.from_html('<div class="flex flex-col items-center text-center pt-6 px-4 pb-4"><div class="w-16 h-16 rounded-full flex items-center justify-center mb-4 bg-accent-success/10 text-accent-success" aria-hidden="true"><!></div> <h3 id="waitlist-title" class="text-xl font-semibold text-text-primary mb-2"> </h3> <p id="waitlist-description" class="text-sm text-text-secondary leading-relaxed max-w-72"> </p> <!></div>'), Te = e.from_html('<p class="text-xs text-accent-danger mt-1"> </p>'), Oe = e.from_html('<p class="text-xs text-accent-danger mt-1"> </p>'), je = e.from_html('<div class="ml-7"><!> <!> <p class="text-xs text-muted-foreground mt-1"> </p></div>'), ze = e.from_html('<div class="p-3 bg-status-error-bg border border-status-error-border rounded-lg"><p class="text-sm text-accent-danger"> </p></div>'), De = e.from_html('<div class="flex flex-col pt-6 px-4 pb-4"><div class="flex items-center justify-center mb-4"><div class="w-12 h-12 rounded-full flex items-center justify-center bg-brand-primary/10 text-brand-primary" aria-hidden="true"><!></div></div> <h3 id="waitlist-title" class="text-xl font-semibold text-text-primary mb-2 text-center"> </h3> <p id="waitlist-description" class="text-sm text-text-secondary leading-relaxed text-center mb-6"> </p> <form class="space-y-4"><div><label for="waitlist-email" class="block text-sm font-medium text-text-secondary mb-1"> </label> <div class="relative"><!></div> <!></div> <div class="space-y-2"><label class="flex items-start gap-3 cursor-pointer"><input type="checkbox" name="smsOptIn" class="mt-0.5 w-4 h-4 text-brand-primary border-stroke-primary rounded focus:ring-focus-ring"/> <span class="text-sm text-text-secondary"> </span></label> <!></div> <!></form></div>'), Ie = e.from_html("<!> <!>", 1), Ve = e.from_html('<div class="flex gap-3 w-full" role="group"><!></div>'), Ae = e.from_html("<!> <!>", 1), Ce = e.from_html("<!> <!>", 1);
|
|
7
7
|
function Le(te, w) {
|
|
8
8
|
e.push(w, !0);
|
|
9
|
-
let
|
|
9
|
+
let z = e.prop(w, "show", 15, !1);
|
|
10
10
|
e.prop(w, "eventName", 3, "this event");
|
|
11
11
|
let ae = e.prop(w, "onClose", 3, () => {
|
|
12
|
-
}), t = e.prop(w, "labels", 19, () => ({})), c = e.state(""), d = e.state(""), n = e.state(!1), u = e.state(!1), x = e.state(""), M = e.state(!1), T = e.derived(() => e.get(c) && !Y(e.get(c)) ? t().pleaseEnterValidEmail || "Please enter a valid email" : ""),
|
|
12
|
+
}), t = e.prop(w, "labels", 19, () => ({})), c = e.state(""), d = e.state(""), n = e.state(!1), u = e.state(!1), x = e.state(""), M = e.state(!1), T = e.derived(() => e.get(c) && !Y(e.get(c)) ? t().pleaseEnterValidEmail || "Please enter a valid email" : ""), O = e.derived(() => e.get(d) && e.get(n) && !q(e.get(d)) ? t().pleaseEnterValidPhone || "Please enter a valid phone number" : "");
|
|
13
13
|
function Y(o) {
|
|
14
14
|
return ge(o);
|
|
15
15
|
}
|
|
@@ -31,55 +31,55 @@ function Le(te, w) {
|
|
|
31
31
|
e.set(u, !1), o.success ? e.set(M, !0) : e.set(x, o.error, !0);
|
|
32
32
|
}
|
|
33
33
|
function G() {
|
|
34
|
-
e.set(c, ""), e.set(d, ""), e.set(n, !1), e.set(x, ""), e.set(M, !1),
|
|
34
|
+
e.set(c, ""), e.set(d, ""), e.set(n, !1), e.set(x, ""), e.set(M, !1), z(!1), ae()();
|
|
35
35
|
}
|
|
36
36
|
xe(te, {
|
|
37
37
|
size: "sm",
|
|
38
38
|
get open() {
|
|
39
|
-
return
|
|
39
|
+
return z();
|
|
40
40
|
},
|
|
41
41
|
set open(o) {
|
|
42
|
-
|
|
42
|
+
z(o);
|
|
43
43
|
},
|
|
44
44
|
children: (o, D) => {
|
|
45
|
-
var H =
|
|
45
|
+
var H = Ce(), K = e.first_child(H);
|
|
46
46
|
he(K, {});
|
|
47
47
|
var re = e.sibling(K, 2);
|
|
48
48
|
be(re, {
|
|
49
|
-
children: (se,
|
|
50
|
-
var Q =
|
|
49
|
+
children: (se, Se) => {
|
|
50
|
+
var Q = Ae(), U = e.first_child(Q);
|
|
51
51
|
ye(U, {
|
|
52
52
|
children: (I, ie) => {
|
|
53
53
|
var h = e.comment(), V = e.first_child(h);
|
|
54
54
|
{
|
|
55
|
-
var
|
|
55
|
+
var A = (r) => {
|
|
56
56
|
var l = Me(), i = e.child(l), v = e.child(i);
|
|
57
57
|
we(v, { size: 32, "aria-hidden": "true" }), e.reset(i);
|
|
58
58
|
var p = e.sibling(i, 2), _ = e.child(p, !0);
|
|
59
59
|
e.reset(p);
|
|
60
60
|
var m = e.sibling(p, 2), g = e.child(m, !0);
|
|
61
61
|
e.reset(m);
|
|
62
|
-
var
|
|
62
|
+
var S = e.sibling(m, 2);
|
|
63
63
|
{
|
|
64
64
|
var $ = (b) => {
|
|
65
|
-
var y = Ee(),
|
|
66
|
-
e.reset(y), e.template_effect(() => e.set_text(
|
|
65
|
+
var y = Ee(), W = e.child(y, !0);
|
|
66
|
+
e.reset(y), e.template_effect(() => e.set_text(W, t().waitlistSmsAlerts || "You'll also receive SMS alerts.")), e.append(b, y);
|
|
67
67
|
};
|
|
68
|
-
e.if(
|
|
68
|
+
e.if(S, (b) => {
|
|
69
69
|
e.get(n) && e.get(d) && b($);
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
e.reset(l), e.template_effect(() => {
|
|
73
73
|
e.set_text(_, t().youreOnTheList || "You're on the waitlist"), e.set_text(g, t().waitlistNotifyByEmail || "We'll let you know if tickets become available.");
|
|
74
74
|
}), e.append(r, l);
|
|
75
|
-
},
|
|
75
|
+
}, C = (r) => {
|
|
76
76
|
var l = De(), i = e.child(l), v = e.child(i), p = e.child(v);
|
|
77
77
|
$e(p, { size: 24, "aria-hidden": "true" }), e.reset(v), e.reset(i);
|
|
78
78
|
var _ = e.sibling(i, 2), m = e.child(_, !0);
|
|
79
79
|
e.reset(_);
|
|
80
|
-
var g = e.sibling(_, 2),
|
|
80
|
+
var g = e.sibling(_, 2), S = e.child(g, !0);
|
|
81
81
|
e.reset(g);
|
|
82
|
-
var $ = e.sibling(g, 2), b = e.child($), y = e.child(b),
|
|
82
|
+
var $ = e.sibling(g, 2), b = e.child($), y = e.child(b), W = e.child(y, !0);
|
|
83
83
|
e.reset(y);
|
|
84
84
|
var B = e.sibling(y, 2), de = e.child(B);
|
|
85
85
|
{
|
|
@@ -124,9 +124,9 @@ function Le(te, w) {
|
|
|
124
124
|
var ve = e.sibling(F, 2);
|
|
125
125
|
{
|
|
126
126
|
var pe = (a) => {
|
|
127
|
-
var s =
|
|
127
|
+
var s = je(), f = e.child(s);
|
|
128
128
|
{
|
|
129
|
-
let k = e.derived(() => t().waitlistPhonePlaceholder || "(555) 123-4567"), E = e.derived(() => e.get(
|
|
129
|
+
let k = e.derived(() => t().waitlistPhonePlaceholder || "(555) 123-4567"), E = e.derived(() => e.get(O) ? "border-status-error-border" : "");
|
|
130
130
|
ee(f, {
|
|
131
131
|
id: "waitlist-phone",
|
|
132
132
|
type: "tel",
|
|
@@ -147,17 +147,17 @@ function Le(te, w) {
|
|
|
147
147
|
}
|
|
148
148
|
});
|
|
149
149
|
}
|
|
150
|
-
var
|
|
150
|
+
var j = e.sibling(f, 2);
|
|
151
151
|
{
|
|
152
152
|
var ue = (k) => {
|
|
153
|
-
var E =
|
|
154
|
-
e.reset(E), e.template_effect(() => e.set_text(L, e.get(
|
|
153
|
+
var E = Oe(), L = e.child(E, !0);
|
|
154
|
+
e.reset(E), e.template_effect(() => e.set_text(L, e.get(O))), e.append(k, E);
|
|
155
155
|
};
|
|
156
|
-
e.if(
|
|
157
|
-
e.get(
|
|
156
|
+
e.if(j, (k) => {
|
|
157
|
+
e.get(O) && k(ue);
|
|
158
158
|
});
|
|
159
159
|
}
|
|
160
|
-
var Z = e.sibling(
|
|
160
|
+
var Z = e.sibling(j, 2), _e = e.child(Z, !0);
|
|
161
161
|
e.reset(Z), e.reset(s), e.template_effect(() => e.set_text(_e, t().smsDisclaimer || "Message & data rates may apply. Reply STOP to unsubscribe.")), e.append(a, s);
|
|
162
162
|
};
|
|
163
163
|
e.if(ve, (a) => {
|
|
@@ -168,21 +168,21 @@ function Le(te, w) {
|
|
|
168
168
|
var me = e.sibling(N, 2);
|
|
169
169
|
{
|
|
170
170
|
var fe = (a) => {
|
|
171
|
-
var s =
|
|
172
|
-
e.reset(f), e.reset(s), e.template_effect(() => e.set_text(
|
|
171
|
+
var s = ze(), f = e.child(s), j = e.child(f, !0);
|
|
172
|
+
e.reset(f), e.reset(s), e.template_effect(() => e.set_text(j, e.get(x))), e.append(a, s);
|
|
173
173
|
};
|
|
174
174
|
e.if(me, (a) => {
|
|
175
175
|
e.get(x) && a(fe);
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
178
|
e.reset($), e.reset(l), e.template_effect(() => {
|
|
179
|
-
e.set_text(m, t().waitlistTitle || "This show is sold out."), e.set_text(
|
|
179
|
+
e.set_text(m, t().waitlistTitle || "This show is sold out."), e.set_text(S, t().waitlistDescription || "Want to be notified if tickets become available?"), e.set_text(W, t().waitlistEmailLabel || "Email address"), e.set_attribute(P, "aria-label", t().smsOptIn || "Text me when tickets are available"), P.disabled = e.get(u), e.set_text(ce, t().smsOptIn || "Text me when tickets are available");
|
|
180
180
|
}), e.event("submit", $, (a) => {
|
|
181
181
|
a.preventDefault(), J();
|
|
182
182
|
}), e.bind_checked(P, () => e.get(n), (a) => e.set(n, a)), e.append(r, l);
|
|
183
183
|
};
|
|
184
184
|
e.if(V, (r) => {
|
|
185
|
-
e.get(M) ? r(
|
|
185
|
+
e.get(M) ? r(A) : r(C, !1);
|
|
186
186
|
});
|
|
187
187
|
}
|
|
188
188
|
e.append(I, h);
|
|
@@ -194,7 +194,7 @@ function Le(te, w) {
|
|
|
194
194
|
children: (I, ie) => {
|
|
195
195
|
var h = Ve(), V = e.child(h);
|
|
196
196
|
{
|
|
197
|
-
var
|
|
197
|
+
var A = (r) => {
|
|
198
198
|
R(r, {
|
|
199
199
|
size: "full",
|
|
200
200
|
variant: "default",
|
|
@@ -206,7 +206,7 @@ function Le(te, w) {
|
|
|
206
206
|
},
|
|
207
207
|
$$slots: { default: !0 }
|
|
208
208
|
});
|
|
209
|
-
},
|
|
209
|
+
}, C = (r) => {
|
|
210
210
|
var l = Ie(), i = e.first_child(l);
|
|
211
211
|
R(i, {
|
|
212
212
|
size: "full",
|
|
@@ -224,7 +224,7 @@ function Le(te, w) {
|
|
|
224
224
|
});
|
|
225
225
|
var v = e.sibling(i, 2);
|
|
226
226
|
{
|
|
227
|
-
let p = e.derived(() => !e.get(c) || !!e.get(T) || e.get(n) && e.get(d) && !!e.get(
|
|
227
|
+
let p = e.derived(() => !e.get(c) || !!e.get(T) || e.get(n) && e.get(d) && !!e.get(O));
|
|
228
228
|
R(v, {
|
|
229
229
|
size: "full",
|
|
230
230
|
variant: "default",
|
|
@@ -246,7 +246,7 @@ function Le(te, w) {
|
|
|
246
246
|
e.append(r, l);
|
|
247
247
|
};
|
|
248
248
|
e.if(V, (r) => {
|
|
249
|
-
e.get(M) ? r(
|
|
249
|
+
e.get(M) ? r(A) : r(C, !1);
|
|
250
250
|
});
|
|
251
251
|
}
|
|
252
252
|
e.reset(h), e.template_effect(() => e.set_attribute(h, "aria-label", t().dialogActions || "Dialog actions")), e.append(I, h);
|
|
@@ -263,4 +263,4 @@ function Le(te, w) {
|
|
|
263
263
|
export {
|
|
264
264
|
Le as W
|
|
265
265
|
};
|
|
266
|
-
//# sourceMappingURL=WaitlistModal-
|
|
266
|
+
//# sourceMappingURL=WaitlistModal-BRRzVbhX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WaitlistModal-BDzMplxL.js","sources":["../src/components/Modals/WaitlistModal.svelte"],"sourcesContent":["<script>\r\n import { ModalRoot, ModalOverlay, ModalPanel, ModalBody, ModalFooter, Button, Input, isEmailAddress } from '@getmicdrop/svelte-components';\r\n import { Time, Email, Phone, CheckmarkFilled } from 'carbon-icons-svelte';\r\n import { joinWaitlist } from '$lib/api';\r\n\r\n let {\r\n show = $bindable(false),\r\n eventId,\r\n eventName = 'this event',\r\n onClose = () => {},\r\n labels = {},\r\n } = $props();\r\n\r\n // Form state\r\n let email = $state('');\r\n let phone = $state('');\r\n let smsOptIn = $state(false);\r\n let loading = $state(false);\r\n let error = $state('');\r\n let success = $state(false);\r\n\r\n // Validation\r\n let emailError = $derived(email && !isValidEmail(email) ? (labels.pleaseEnterValidEmail || 'Please enter a valid email') : '');\r\n let phoneError = $derived(phone && smsOptIn && !isValidPhone(phone) ? (labels.pleaseEnterValidPhone || 'Please enter a valid phone number') : '');\r\n\r\n function isValidEmail(email) {\r\n return isEmailAddress(email);\r\n }\r\n\r\n function isValidPhone(phone) {\r\n // Allow various phone formats\r\n const cleaned = phone.replace(/\\D/g, '');\r\n return cleaned.length >= 10 && cleaned.length <= 15;\r\n }\r\n\r\n async function handleSubmit() {\r\n error = '';\r\n\r\n if (!email || !isValidEmail(email)) {\r\n error = labels.pleaseEnterValidEmailAddress || 'Please enter a valid email address';\r\n return;\r\n }\r\n\r\n if (smsOptIn && phone && !isValidPhone(phone)) {\r\n error = labels.pleaseEnterValidPhone || 'Please enter a valid phone number';\r\n return;\r\n }\r\n\r\n loading = true;\r\n\r\n const result = await joinWaitlist(\r\n eventId,\r\n email,\r\n smsOptIn ? phone : null,\r\n smsOptIn\r\n );\r\n\r\n loading = false;\r\n\r\n if (result.success) {\r\n success = true;\r\n } else {\r\n error = result.error;\r\n }\r\n }\r\n\r\n function handleClose() {\r\n // Reset state when closing\r\n email = '';\r\n phone = '';\r\n smsOptIn = false;\r\n error = '';\r\n success = false;\r\n show = false;\r\n onClose();\r\n }\r\n</script>\r\n\r\n<ModalRoot\r\n bind:open={show}\r\n size=\"sm\"\r\n>\r\n <ModalOverlay />\r\n <ModalPanel>\r\n <ModalBody>\r\n {#if success}\r\n <!-- Success State -->\r\n <div class=\"flex flex-col items-center text-center pt-6 px-4 pb-4\">\r\n <div class=\"w-16 h-16 rounded-full flex items-center justify-center mb-4 bg-accent-success/10 text-accent-success\" aria-hidden=\"true\">\r\n <CheckmarkFilled size={32} aria-hidden=\"true\" />\r\n </div>\r\n <h3 id=\"waitlist-title\" class=\"text-xl font-semibold text-text-primary mb-2\">\r\n {labels.youreOnTheList || \"You're on the waitlist\"}\r\n </h3>\r\n <p id=\"waitlist-description\" class=\"text-sm text-text-secondary leading-relaxed max-w-72\">\r\n {labels.waitlistNotifyByEmail || \"We'll let you know if tickets become available.\"}\r\n </p>\r\n {#if smsOptIn && phone}\r\n <p class=\"text-xs text-muted-foreground mt-2\">\r\n {labels.waitlistSmsAlerts || \"You'll also receive SMS alerts.\"}\r\n </p>\r\n {/if}\r\n </div>\r\n {:else}\r\n <!-- Form State -->\r\n <div class=\"flex flex-col pt-6 px-4 pb-4\">\r\n <div class=\"flex items-center justify-center mb-4\">\r\n <div class=\"w-12 h-12 rounded-full flex items-center justify-center bg-brand-primary/10 text-brand-primary\" aria-hidden=\"true\">\r\n <Time size={24} aria-hidden=\"true\" />\r\n </div>\r\n </div>\r\n <h3 id=\"waitlist-title\" class=\"text-xl font-semibold text-text-primary mb-2 text-center\">\r\n {labels.waitlistTitle || 'This show is sold out.'}\r\n </h3>\r\n <p id=\"waitlist-description\" class=\"text-sm text-text-secondary leading-relaxed text-center mb-6\">\r\n {labels.waitlistDescription || 'Want to be notified if tickets become available?'}\r\n </p>\r\n\r\n <form onsubmit={(e) => { e.preventDefault(); handleSubmit(); }} class=\"space-y-4\">\r\n <!-- Email Input -->\r\n <div>\r\n <label for=\"waitlist-email\" class=\"block text-sm font-medium text-text-secondary mb-1\">\r\n {labels.waitlistEmailLabel || 'Email address'}\r\n </label>\r\n <div class=\"relative\">\r\n <Input\r\n id=\"waitlist-email\"\r\n type=\"email\"\r\n bind:value={email}\r\n placeholder={labels.waitlistEmailPlaceholder || \"you@example.com\"}\r\n required\r\n disabled={loading}\r\n class={emailError ? 'border-status-error-border' : ''}\r\n />\r\n </div>\r\n {#if emailError}\r\n <p class=\"text-xs text-accent-danger mt-1\">{emailError}</p>\r\n {/if}\r\n </div>\r\n\r\n <!-- SMS Opt-in -->\r\n <div class=\"space-y-2\">\r\n <label class=\"flex items-start gap-3 cursor-pointer\">\r\n <input\r\n type=\"checkbox\"\r\n name=\"smsOptIn\"\r\n aria-label={labels.smsOptIn || 'Text me when tickets are available'}\r\n bind:checked={smsOptIn}\r\n disabled={loading}\r\n class=\"mt-0.5 w-4 h-4 text-brand-primary border-stroke-primary rounded focus:ring-focus-ring\"\r\n />\r\n <span class=\"text-sm text-text-secondary\">\r\n {labels.smsOptIn || 'Text me when tickets are available'}\r\n </span>\r\n </label>\r\n\r\n {#if smsOptIn}\r\n <div class=\"ml-7\">\r\n <Input\r\n id=\"waitlist-phone\"\r\n type=\"tel\"\r\n bind:value={phone}\r\n placeholder={labels.waitlistPhonePlaceholder || \"(555) 123-4567\"}\r\n disabled={loading}\r\n class={phoneError ? 'border-status-error-border' : ''}\r\n />\r\n {#if phoneError}\r\n <p class=\"text-xs text-accent-danger mt-1\">{phoneError}</p>\r\n {/if}\r\n <p class=\"text-xs text-muted-foreground mt-1\">\r\n {labels.smsDisclaimer || 'Message & data rates may apply. Reply STOP to unsubscribe.'}\r\n </p>\r\n </div>\r\n {/if}\r\n </div>\r\n\r\n {#if error}\r\n <div class=\"p-3 bg-status-error-bg border border-status-error-border rounded-lg\">\r\n <p class=\"text-sm text-accent-danger\">{error}</p>\r\n </div>\r\n {/if}\r\n </form>\r\n </div>\r\n {/if}\r\n </ModalBody>\r\n <ModalFooter>\r\n <div class=\"flex gap-3 w-full\" role=\"group\" aria-label={labels.dialogActions || \"Dialog actions\"}>\r\n {#if success}\r\n <Button size=\"full\" variant=\"default\" onclick={handleClose}>\r\n {labels.done || 'Done'}\r\n </Button>\r\n {:else}\r\n <Button size=\"full\" variant=\"alternative\" onclick={handleClose} disabled={loading}>\r\n {labels.cancel || 'Cancel'}\r\n </Button>\r\n <Button\r\n size=\"full\"\r\n variant=\"default\"\r\n onclick={handleSubmit}\r\n {loading}\r\n disabled={!email || !!emailError || (smsOptIn && phone && !!phoneError)}\r\n >\r\n {loading ? (labels.joining || 'Joining...') : (labels.notifyMe || 'Notify Me')}\r\n </Button>\r\n {/if}\r\n </div>\r\n </ModalFooter>\r\n </ModalPanel>\r\n</ModalRoot>\r\n"],"names":["show","onClose","$","$$props","labels","email","phone","smsOptIn","loading","error","success","emailError","isValidEmail","phoneError","isValidPhone","isEmailAddress","cleaned","handleSubmit","result","joinWaitlist","handleClose","ModalRoot","$$anchor","$$value","ModalOverlay","node","ModalPanel","node_1","ModalBody","node_2","div","root_4","div_1","CheckmarkFilled","h3","p","p_1","root_5","$$render","consequent","div_2","root_6","div_3","div_4","Time","h3_1","p_2","form","div_5","label","div_6","Input","node_7","p_3","root_7","consequent_2","div_7","label_1","input","span","div_8","root_8","node_10","p_4","root_9","consequent_3","p_5","node_11","consequent_4","div_9","root_10","p_6","consequent_5","e","consequent_1","alternate","ModalFooter","node_13","div_10","root_11","Button","node_15","$0","node_16","consequent_6","alternate_1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WaitlistModal-BRRzVbhX.js","sources":["../src/components/Modals/WaitlistModal.svelte"],"sourcesContent":["<script>\r\n import { ModalRoot, ModalOverlay, ModalPanel, ModalBody, ModalFooter, Button, Input, isEmailAddress } from '@getmicdrop/svelte-components';\r\n import { Time, Email, Phone, CheckmarkFilled } from 'carbon-icons-svelte';\r\n import { joinWaitlist } from '$lib/api';\r\n\r\n let {\r\n show = $bindable(false),\r\n eventId,\r\n eventName = 'this event',\r\n onClose = () => {},\r\n labels = {},\r\n } = $props();\r\n\r\n // Form state\r\n let email = $state('');\r\n let phone = $state('');\r\n let smsOptIn = $state(false);\r\n let loading = $state(false);\r\n let error = $state('');\r\n let success = $state(false);\r\n\r\n // Validation\r\n let emailError = $derived(email && !isValidEmail(email) ? (labels.pleaseEnterValidEmail || 'Please enter a valid email') : '');\r\n let phoneError = $derived(phone && smsOptIn && !isValidPhone(phone) ? (labels.pleaseEnterValidPhone || 'Please enter a valid phone number') : '');\r\n\r\n function isValidEmail(email) {\r\n return isEmailAddress(email);\r\n }\r\n\r\n function isValidPhone(phone) {\r\n // Allow various phone formats\r\n const cleaned = phone.replace(/\\D/g, '');\r\n return cleaned.length >= 10 && cleaned.length <= 15;\r\n }\r\n\r\n async function handleSubmit() {\r\n error = '';\r\n\r\n if (!email || !isValidEmail(email)) {\r\n error = labels.pleaseEnterValidEmailAddress || 'Please enter a valid email address';\r\n return;\r\n }\r\n\r\n if (smsOptIn && phone && !isValidPhone(phone)) {\r\n error = labels.pleaseEnterValidPhone || 'Please enter a valid phone number';\r\n return;\r\n }\r\n\r\n loading = true;\r\n\r\n const result = await joinWaitlist(\r\n eventId,\r\n email,\r\n smsOptIn ? phone : null,\r\n smsOptIn\r\n );\r\n\r\n loading = false;\r\n\r\n if (result.success) {\r\n success = true;\r\n } else {\r\n error = result.error;\r\n }\r\n }\r\n\r\n function handleClose() {\r\n // Reset state when closing\r\n email = '';\r\n phone = '';\r\n smsOptIn = false;\r\n error = '';\r\n success = false;\r\n show = false;\r\n onClose();\r\n }\r\n</script>\r\n\r\n<ModalRoot\r\n bind:open={show}\r\n size=\"sm\"\r\n>\r\n <ModalOverlay />\r\n <ModalPanel>\r\n <ModalBody>\r\n {#if success}\r\n <!-- Success State -->\r\n <div class=\"flex flex-col items-center text-center pt-6 px-4 pb-4\">\r\n <div class=\"w-16 h-16 rounded-full flex items-center justify-center mb-4 bg-accent-success/10 text-accent-success\" aria-hidden=\"true\">\r\n <CheckmarkFilled size={32} aria-hidden=\"true\" />\r\n </div>\r\n <h3 id=\"waitlist-title\" class=\"text-xl font-semibold text-text-primary mb-2\">\r\n {labels.youreOnTheList || \"You're on the waitlist\"}\r\n </h3>\r\n <p id=\"waitlist-description\" class=\"text-sm text-text-secondary leading-relaxed max-w-72\">\r\n {labels.waitlistNotifyByEmail || \"We'll let you know if tickets become available.\"}\r\n </p>\r\n {#if smsOptIn && phone}\r\n <p class=\"text-xs text-muted-foreground mt-2\">\r\n {labels.waitlistSmsAlerts || \"You'll also receive SMS alerts.\"}\r\n </p>\r\n {/if}\r\n </div>\r\n {:else}\r\n <!-- Form State -->\r\n <div class=\"flex flex-col pt-6 px-4 pb-4\">\r\n <div class=\"flex items-center justify-center mb-4\">\r\n <div class=\"w-12 h-12 rounded-full flex items-center justify-center bg-brand-primary/10 text-brand-primary\" aria-hidden=\"true\">\r\n <Time size={24} aria-hidden=\"true\" />\r\n </div>\r\n </div>\r\n <h3 id=\"waitlist-title\" class=\"text-xl font-semibold text-text-primary mb-2 text-center\">\r\n {labels.waitlistTitle || 'This show is sold out.'}\r\n </h3>\r\n <p id=\"waitlist-description\" class=\"text-sm text-text-secondary leading-relaxed text-center mb-6\">\r\n {labels.waitlistDescription || 'Want to be notified if tickets become available?'}\r\n </p>\r\n\r\n <form onsubmit={(e) => { e.preventDefault(); handleSubmit(); }} class=\"space-y-4\">\r\n <!-- Email Input -->\r\n <div>\r\n <label for=\"waitlist-email\" class=\"block text-sm font-medium text-text-secondary mb-1\">\r\n {labels.waitlistEmailLabel || 'Email address'}\r\n </label>\r\n <div class=\"relative\">\r\n <Input\r\n id=\"waitlist-email\"\r\n type=\"email\"\r\n bind:value={email}\r\n placeholder={labels.waitlistEmailPlaceholder || \"you@example.com\"}\r\n required\r\n disabled={loading}\r\n class={emailError ? 'border-status-error-border' : ''}\r\n />\r\n </div>\r\n {#if emailError}\r\n <p class=\"text-xs text-accent-danger mt-1\">{emailError}</p>\r\n {/if}\r\n </div>\r\n\r\n <!-- SMS Opt-in -->\r\n <div class=\"space-y-2\">\r\n <label class=\"flex items-start gap-3 cursor-pointer\">\r\n <input\r\n type=\"checkbox\"\r\n name=\"smsOptIn\"\r\n aria-label={labels.smsOptIn || 'Text me when tickets are available'}\r\n bind:checked={smsOptIn}\r\n disabled={loading}\r\n class=\"mt-0.5 w-4 h-4 text-brand-primary border-stroke-primary rounded focus:ring-focus-ring\"\r\n />\r\n <span class=\"text-sm text-text-secondary\">\r\n {labels.smsOptIn || 'Text me when tickets are available'}\r\n </span>\r\n </label>\r\n\r\n {#if smsOptIn}\r\n <div class=\"ml-7\">\r\n <Input\r\n id=\"waitlist-phone\"\r\n type=\"tel\"\r\n bind:value={phone}\r\n placeholder={labels.waitlistPhonePlaceholder || \"(555) 123-4567\"}\r\n disabled={loading}\r\n class={phoneError ? 'border-status-error-border' : ''}\r\n />\r\n {#if phoneError}\r\n <p class=\"text-xs text-accent-danger mt-1\">{phoneError}</p>\r\n {/if}\r\n <p class=\"text-xs text-muted-foreground mt-1\">\r\n {labels.smsDisclaimer || 'Message & data rates may apply. Reply STOP to unsubscribe.'}\r\n </p>\r\n </div>\r\n {/if}\r\n </div>\r\n\r\n {#if error}\r\n <div class=\"p-3 bg-status-error-bg border border-status-error-border rounded-lg\">\r\n <p class=\"text-sm text-accent-danger\">{error}</p>\r\n </div>\r\n {/if}\r\n </form>\r\n </div>\r\n {/if}\r\n </ModalBody>\r\n <ModalFooter>\r\n <div class=\"flex gap-3 w-full\" role=\"group\" aria-label={labels.dialogActions || \"Dialog actions\"}>\r\n {#if success}\r\n <Button size=\"full\" variant=\"default\" onclick={handleClose}>\r\n {labels.done || 'Done'}\r\n </Button>\r\n {:else}\r\n <Button size=\"full\" variant=\"alternative\" onclick={handleClose} disabled={loading}>\r\n {labels.cancel || 'Cancel'}\r\n </Button>\r\n <Button\r\n size=\"full\"\r\n variant=\"default\"\r\n onclick={handleSubmit}\r\n {loading}\r\n disabled={!email || !!emailError || (smsOptIn && phone && !!phoneError)}\r\n >\r\n {loading ? (labels.joining || 'Joining...') : (labels.notifyMe || 'Notify Me')}\r\n </Button>\r\n {/if}\r\n </div>\r\n </ModalFooter>\r\n </ModalPanel>\r\n</ModalRoot>\r\n"],"names":["show","onClose","$","$$props","labels","email","phone","smsOptIn","loading","error","success","emailError","isValidEmail","phoneError","isValidPhone","isEmailAddress","cleaned","handleSubmit","result","joinWaitlist","handleClose","ModalRoot","$$anchor","$$value","ModalOverlay","node","ModalPanel","node_1","ModalBody","node_2","div","root_4","div_1","CheckmarkFilled","h3","p","p_1","root_5","$$render","consequent","div_2","root_6","div_3","div_4","Time","h3_1","p_2","form","div_5","label","div_6","Input","node_7","p_3","root_7","consequent_2","div_7","label_1","input","span","div_8","root_8","node_10","p_4","root_9","consequent_3","p_5","node_11","consequent_4","div_9","root_10","p_6","consequent_5","e","consequent_1","alternate","ModalFooter","node_13","div_10","root_11","Button","node_15","$0","node_16","consequent_6","alternate_1"],"mappings":"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"}
|
package/dist/api/api.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("@getmicdrop/svelte-components/utils/logger"),A=require("@getmicdrop/svelte-components"),U=require("@getmicdrop/svelte-components/utils/formatters"),q=p.createLogger("VC"),K={baseUrl:"https://get-micdrop.com",timeout:3e4,retries:2,retryDelay:500,onError:e=>q.error("API Error:",e)};let v={...K};function X(e){v={...v,...e}}function Z(){return{...v}}function i(){return`${v.baseUrl}/api/v2/public`}function ee(){return`${v.baseUrl}/api/public`}function D(){return`${v.baseUrl}/api/orders/v2/public`}async function re(){return""}const te=e=>new Promise(r=>setTimeout(r,e));async function M(e,r,t){const n=(r.method||"GET").toUpperCase(),a=n==="GET"||n==="HEAD"?t.retries+1:1;let o;for(let c=1;c<=a;c++){const l=new AbortController,C=setTimeout(()=>l.abort(),t.timeout),h=r.signal;let m;h&&(h.aborted?l.abort():(m=()=>l.abort(),h.addEventListener("abort",m,{once:!0})));try{const w=await fetch(e,{...r,signal:l.signal});if(w.status>=500&&c<a)o=new Error(`HTTP ${w.status}`);else return w}catch(w){if(o=w,h?.aborted)throw w}finally{clearTimeout(C),h&&m&&h.removeEventListener("abort",m)}c<a&&await te(t.retryDelay*Math.pow(2,c-1))}throw o}async function $(e,r){return k("GET",e,void 0,r)}async function g(e,r,t){return k("POST",e,r,t)}async function ne(e,r,t){return k("PUT",e,r,t)}async function z(e,r){return k("DELETE",e,void 0,r)}async function k(e,r,t,n){const s=r.startsWith("http")?r:`${i()}${r}`;try{const a=await M(s,{method:e,headers:{"Content-Type":"application/json",...n?.headers},body:t!==void 0?JSON.stringify(t):void 0,credentials:"include",...n},v);if(!a.ok){const c=await a.json().catch(()=>({})),l=c.error||c.message||`HTTP ${a.status}`;return v.onError(new Error(l)),{success:!1,error:l,statusCode:a.status}}return{success:!0,data:await a.json(),statusCode:a.status}}catch(a){const o=a instanceof Error?a.name==="AbortError"?"Request timed out":a.message:"Unknown error";return v.onError(a instanceof Error?a:new Error(o)),{success:!1,error:o}}}async function y(e,r){try{const t=await M(e,{credentials:"include",...r},v);if(!t.ok){const n=await t.json().catch(()=>({}));return q.error(`API request failed: ${t.status}`,n),null}return t.json()}catch(t){return q.error("API request error:",t),null}}const f=p.createLogger("VC");async function se(e,r,t){try{const n=await g(`${D()}/cart/${e}/payment-intent`,{productQuantities:r,...t&&Object.keys(t).length>0?{donationAmounts:t}:{}});if(!n.success)throw f.error("Payment intent creation failed:",n.error),new A.AppError(n.error||"Failed to create payment intent","lib/api/orders/createPaymentIntent");return f.debug("Payment intent created:",n.data),n.data}catch(n){return f.error("createPaymentIntent error:",n),null}}async function oe(e,r){if(!e)return null;try{const t=await $(`${D()}/cart/${e}`);if(!t.success)return null;const n=t.data,s=n.UUID??n.uuid??"",a=Number(n.EventID??n.eventID??0),o=n.Status??n.status??"",c=n.ExpiresAt??n.expiresAt??"",C=(n.Reservations??n.reservations??[]).map(h=>{const m=h;return{ticketID:Number(m.TicketID??m.ticketID??0),quantity:Number(m.Quantity??m.quantity??0),priceAtReservation:Number(m.PriceAtReservation??m.priceAtReservation??0),status:String(m.Status??m.status??"")}});return o!=="reserved"&&o!=="active"||r!==void 0&&a!==Number(r)?null:{uuid:s,eventID:a,status:o,expiresAt:c,reservations:C}}catch(t){return f.error("getCartByUUID error:",t),null}}async function ae(e,r,t){try{const n={};for(const[o,c]of Object.entries(r)){const l=typeof o=="number"?o:parseInt(o,10);!Number.isNaN(l)&&c>0&&(n[l]=c)}const s={};if(t)for(const[o,c]of Object.entries(t)){const l=typeof o=="number"?o:parseInt(o,10);!Number.isNaN(l)&&c>0&&(s[l]=c)}const a=await fetch(`${D()}/cart/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({quantities:n,...Object.keys(s).length>0?{donationAmounts:s}:{}})});if(!a.ok){const o=await a.json().catch(()=>({}));return f.error("Cart update failed:",o),!1}return!0}catch(n){return f.error("updateCartQuantities error:",n),!1}}async function ce(e){try{const r=await g(`${i()}/orders/complete/${e}`);return r.success?{success:!0,message:r.data?.message}:{success:!1,error:r.error||"Failed to complete reservation"}}catch(r){return f.error("Error completing reservation:",r),{success:!1,error:"Network error completing reservation"}}}async function ie(e){try{const r=await g(`${i()}/orders/cancel/${e}`);return r.success?{success:!0,message:r.data?.message}:{success:!1,error:r.error||"Failed to cancel reservation"}}catch(r){return f.error("Error cancelling reservation:",r),{success:!1,error:"Network error cancelling reservation"}}}async function ue(e,r){try{const t=await g(`${i()}/orders/create`,{eventID:e,promoCode:r});return t.success?t.data:(f.error("Create order failed:",t.error),null)}catch(t){return f.error("createOrder error:",t),null}}async function le(e){return y(`${i()}/orders/${e}`)}async function de(e,r){try{const t=await g(`${D()}/validatePaymentIntent/${e}`,r);if(!t.success)return f.error("Payment validation failed:",t.error),{success:!1,status:"failed",error:t.error||"Payment validation failed"};const n=t.data;return{success:!0,status:n.status||"Payment succeeded",orderUUID:n.orderUUID||n.uuid}}catch(t){return f.error("validatePaymentIntent error:",t),null}}async function fe(e){try{const r=await g(`${i()}/orders/extend-session`,{orderUuid:e});if(!r.success)return{success:!1,error:r.error||"Failed to extend session",statusCode:r.statusCode};const t=r.data;return{success:!0,newExpiryTime:t.newExpiryTime,remainingExtensions:t.remainingExtensions}}catch(r){return f.error("Error extending checkout session:",r),{success:!1,error:"Network error extending session"}}}async function me(e){try{const r=await $(`${i()}/orders/session/${e}`);if(!r.success)return{error:r.error||"No active session found",notFound:r.statusCode===404};const t=r.data;return{expiresAt:t.expiresAt,extensionCount:t.extensionCount,remainingExtensions:t.remainingExtensions,canExtend:t.canExtend,reservationCount:t.reservationCount}}catch(r){return f.error("Error getting session status:",r),{error:"Network error getting session status"}}}async function ge(e={}){try{const r=await g(`${i()}/orders/create`,e);return r.success?r.data?.uuid??null:(f.error("Order initiation failed:",r.error),null)}catch(r){return f.error("initiateOrder error:",r),null}}async function ye(e){if(typeof window>"u")return;const t=new URLSearchParams(window.location.search).get("utm_source")||"Direct";try{await fetch(`${i()}/utm/${e}/${encodeURIComponent(t)}`)}catch(n){f.error("UTM tracking failed:",n)}}const E=p.createLogger("VC");async function he(e,r){try{if(!r||!r.trim())return{valid:!1,error:"Promo code is required"};const t=encodeURIComponent(r.trim()),n=await $(`/promo-codes/validate/${e}/${t}`);if(!n.success)return n.statusCode===404?{valid:!1,error:"Invalid promo code"}:{valid:!1,error:"Failed to validate code"};const s=n.data;return{valid:s.valid??!0,revealHiddenTickets:s.revealHiddenTickets,revealTicketIds:s.revealTicketIds,provideDiscount:s.provideDiscount,discountType:s.discountType,amount:s.amount,code:s.code||r}}catch(t){return E.error("Error validating promo code:",t),{valid:!1,error:"Network error validating code"}}}async function ve(e){try{const r=await $(`/promo-codes/check/${e}`);return r.success?r.data.hasPromoCodes===!0:!0}catch(r){return E.error("Error checking promo codes availability:",r),!0}}async function we(e,r){try{const t=await g(`/orders/${e}/apply-promo`,{code:r});return t.success?{success:!0}:{success:!1,error:t.error||"Failed to apply promo code"}}catch(t){return E.error("Error applying promo code:",t),{success:!1,error:"Network error applying code"}}}async function _e(e){try{const r=await g(`/orders/${e}/remove-promo`);return r.success?{success:!0}:{success:!1,error:r.error||"Failed to remove promo code"}}catch(r){return E.error("Error removing promo code:",r),{success:!1,error:"Network error removing code"}}}const u=p.createLogger("VC"),F=new Map;async function be(e,r=fetch){const t=String(e);if(r===fetch){const s=F.get(t);if(s)return s}const n=(async()=>{try{const s=await r(`${i()}/events/${e}`);if(!s.ok)throw new A.AppError(`Failed to fetch event details: ${s.status}`,"lib/api/events/fetchEventDetails");return await s.json()}catch(s){return u.error("Error fetching event details:",s),null}})();return r===fetch&&(F.set(t,n),n.finally(()=>{F.get(t)===n&&F.delete(t)})),n}async function Ce(e){try{const r=await y(`${i()}/tickets/event/${e}`);return Array.isArray(r)?r:[]}catch(r){return u.error("Error fetching tickets:",r),[]}}async function Pe(e){try{if(!e)return u.warn("fetchEventPerformers called without eventId"),{performers:[],showPerformers:!1};const r=await y(`${i()}/events/${e}/performers`);return r?{performers:Array.isArray(r.performers)?r.performers:[],showPerformers:r.showPerformers===!0}:(u.error("Failed to fetch performers: network or server error"),{performers:[],showPerformers:!1})}catch(r){return u.error("Error fetching event performers:",r),{performers:[],showPerformers:!1}}}async function $e(e){try{if(!e)return u.warn("fetchAllVenues called without orgId"),[];const r=await y(`${i()}/venues/organization/${e}`);return r?Array.isArray(r)?r:[]:(u.error("Failed to fetch venues: network or server error"),[])}catch(r){return u.error("Error fetching venues:",r),[]}}async function pe(e){try{if(!e)return u.warn("fetchVenueEvents called without venueId"),[];const r=await y(`${i()}/events/venue/${e}`);return r?Array.isArray(r)?r:[]:(u.error("Failed to fetch venue events: network or server error"),[])}catch(r){return u.error("Error fetching venue events:",r),[]}}async function Ae(e,r,t){try{const n=await y(`${i()}/events/venue/${e}/month/${r}/${t}`);return n?Array.isArray(n)?n:Array.isArray(n.events)?n.events:[]:(u.error("Failed to fetch month events: network or server error"),[])}catch(n){return u.error("Error fetching month events:",n),[]}}async function Se(e,r,t){try{const n=await y(`${i()}/events/organization/${e}/month/${r}/${t}`);return n?Array.isArray(n)?n:Array.isArray(n.events)?n.events:[]:(u.error("Failed to fetch org month events: network or server error"),[])}catch(n){return u.error("Error fetching org month events:",n),[]}}async function Ie(e){try{const r=await y(`${i()}/series/${e}/occurrences`);return r||(u.error("Failed to fetch series occurrences: network or server error"),null)}catch(r){return u.error("Error fetching series occurrences:",r),null}}async function De(e,r){try{const t=await y(`${i()}/series/${e}/occurrences?venueId=${r}`);return t||(u.error("Failed to fetch series with CTA: network or server error"),null)}catch(t){return u.error("Error fetching series occurrences:",t),null}}async function Ne(e,r){try{const t=r?`?slug=${encodeURIComponent(r)}`:"",n=await y(`${i()}/resolve/${encodeURIComponent(String(e))}${t}`);if(!n||!n.type)throw new A.AppError("Failed to resolve entity","lib/api/events/resolvePublicEntity");return n}catch(t){return u.error("Error resolving public entity:",t),null}}async function Re(e){try{const r=await y(`${i()}/series/${e}/page`);if(!r)throw new A.AppError("Failed to fetch series page","lib/api/events/fetchSeriesPage");return r}catch(r){return u.error("Error fetching series page:",r),null}}async function xe(e,r){try{const t=r?`${i()}/collections/${e}/public?password=${encodeURIComponent(r)}`:`${i()}/collections/${e}/public`,n=await y(t);if(!n)throw new A.AppError("Failed to fetch collection","lib/api/events/fetchPublicCollection");return n}catch(t){return u.error("Error fetching collection:",t),null}}async function Ue(e,r){try{const t=encodeURIComponent(r);return(await y(`${i()}/collections/${e}/check-password/${t}`))?.valid===!0}catch(t){return u.error("Error checking collection password:",t),!1}}async function Fe(e,r){try{const t=await g(`${i()}/events/${e}/check-password`,{password:r});if(!t.success)return{valid:!1};const n=t.data;return typeof n=="boolean"?{valid:n}:{valid:n.valid===!0}}catch(t){return u.error("Error checking event password:",t),{valid:!1}}}async function ke(e,r){try{const t=r?`${i()}/events/venue/${r}`:e?`${i()}/venues/organization/${e}`:`${i()}/health`;return(await fetch(t,{method:"HEAD"})).ok}catch(t){return u.error("Network connection test failed:",t),!1}}const I=p.createLogger("VC");async function O(e){try{if(!e)return I.warn("getVenue called without venueId"),null;const r=await $(`/venues/${e}`);return r.success?r.data??null:(I.error(`Failed to fetch venue: ${r.statusCode}`),null)}catch(r){return I.error("Error fetching venue:",r),null}}async function Ee(e){const r=await O(e);return r?{serviceFeePercentage:r.serviceFeePercentage??0,serviceFeeCents:r.serviceFeeCents??0,taxPercentage:r.taxPercentage??0}:null}async function qe(e){try{if(!e)return I.warn("getVenueBySlug called without slug"),null;const r=encodeURIComponent(e),t=await $(`/venues/slug/${r}`);return t.success?t.data??null:(I.error(`Failed to fetch venue by slug: ${t.statusCode}`),null)}catch(r){return I.error("Error fetching venue by slug:",r),null}}const b=p.createLogger("VC"),Le="https://get-micdrop.com",Ge=`${Le}/api/orders/v2`,B=()=>D();async function Be(e){try{const r=await g(`${Ge}/gift-cards`,e);if(!r.success)throw b.error("Gift card purchase creation failed:",r.error),new A.AppError(r.error||"Failed to create gift card purchase","lib/api/gift-cards/createGiftCardPurchase");return b.debug("Gift card purchase created:",r.data),r.data}catch(r){return b.error("Gift card purchase creation error:",r),null}}async function Te(e,r){try{const t=await g(`${B()}/cart/${e}/apply-gift-card`,{giftCardCode:r});if(!t.success)return t.statusCode===429?{valid:!1,error:"Too many attempts. Please wait a moment and try again."}:(b.error("Apply gift card failed:",t.error),{valid:!1,error:t.error||"Invalid gift card code"});const n=t.data;return{valid:!0,giftCardCode:n.giftCardCode,giftCardAmount:n.giftCardAmount,giftCardBalance:n.giftCardBalance,paymentType:n.paymentType,stripeAmount:n.stripeAmount,orderTotal:n.orderTotal,requiresStripe:n.requiresStripe}}catch(t){return b.error("applyGiftCard error:",t),{valid:!1,error:"Network error. Please check your connection and try again."}}}async function je(e){try{const r=await z(`${B()}/cart/${e}/gift-card`);return r.success?{success:!0}:(b.error("Remove gift card failed:",r.error),{success:!1,error:r.error||"Failed to remove gift card"})}catch(r){return b.error("removeGiftCard error:",r),{success:!1,error:"Network error. Please check your connection and try again."}}}async function Me(e,r){try{const t=await g(`${B()}/cart/${e}/complete-gift-card-payment`,{firstName:r.firstName,lastName:r.lastName,email:r.email,phoneNumber:r.phoneNumber||null,mailingList:r.mailingList||!1});return t.success?{success:!0,orderId:t.data?.orderId,confirmationNumber:t.data?.confirmationNumber}:(b.error("Complete gift card payment failed:",t.error),{success:!1,error:t.error||"Failed to complete payment"})}catch(t){return b.error("completeGiftCardPayment error:",t),{success:!1,error:"Network error. Please check your connection and try again."}}}const L=p.createLogger("VC"),ze={waitlist_not_enabled:"Waitlist is not available for this event",event_not_found:"Event not found",invalid_phone:"Please enter a valid phone number",already_purchased:"You have already purchased tickets for this event",phone_already_registered:"This phone number is already on the waitlist"};async function Oe(e,r,t=null,n=!1){try{const s={email:r};t&&n&&(s.phone=t,s.smsOptIn=!0);const a=await g(`/events/${e}/waitlist`,s);return a.success?{success:!0,updated:a.data?.updated}:(L.error("Join waitlist failed:",a.error),{success:!1,error:ze[a.error??""]||"Failed to join waitlist. Please try again."})}catch(s){return L.error("joinWaitlist error:",s),{success:!1,error:"Network error. Please check your connection and try again."}}}async function He(e){const r={waitlistEnabled:!1,soldOut:!1,gated:!1};try{const t=await $(`/events/${e}/waitlist/status`);return t.success?{waitlistEnabled:!!t.data?.waitlistEnabled,soldOut:!!t.data?.soldOut,gated:!!t.data?.gated}:r}catch(t){return L.error("getWaitlistStatus error:",t),r}}function We(e){if(!e||!(e.isHidden===!0||typeof e.visibility=="number"&&e.visibility>=2)||e.salesChannel===2)return!1;const t=new Date,n=e.salesBegin||e.salesStart||e.saleBegin||e.onSaleStart,s=e.salesEnd||e.saleEnd||e.onSaleEnd;if(n&&new Date(n)>t||s&&new Date(s)<t)return!1;const a=e.remainingCapacity??e.quantityRemaining??e.quantity;return!(e.soldOut||a!=null&&a<=0)}function Qe(e,r,t={}){const{cancelled:n=!1,isRegistration:s=!1,waitlistEnabled:a=!1}=t,o=new Date;if(n)return{text:"Cancelled",disabled:!0,reason:"cancelled"};const c=e.endDateTime||e.startDateTime;if(c&&new Date(c)<o)return{text:"Sales ended",disabled:!0,reason:"event_past"};const l=e?.hasPurchasableHiddenTickets===!0||Array.isArray(r)&&r.some(We),C=(r||[]).filter(d=>d.salesChannel!==2&&!d.isHidden&&!(typeof d.visibility=="number"&&d.visibility>=2));if(C.length===0)return l?{text:s?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"}:{text:"No tickets available",disabled:!0,reason:"no_tickets"};let h=!1,m=!0,w=!0,_=null;for(const d of C){const S=d.salesBegin||d.salesStart||d.saleBegin||d.onSaleStart,x=d.salesEnd||d.saleEnd||d.onSaleEnd,P=d.remainingCapacity??d.quantityRemaining??d.quantity,N=d.soldOut||P!=null&&P<=0,R=S?new Date(S)>o:!1,T=x?new Date(x)<o:!1;if(!N&&!R&&!T&&(h=!0),N||(m=!1),R||(w=!1),R&&S&&!N&&!T){const j=new Date(S);(!_||j<_)&&(_=j)}}if(h)return{text:s?"Reserve a spot":"Get tickets",disabled:!1,reason:"available"};if(w&&_){if(l)return{text:s?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"};const d=_.getTime()-o.getTime(),S=d/(1e3*60*60),x=d/(1e3*60*60*24);let P;if(S<24)P=U.formatTime(_,{hour12:!0},"en-US");else if(x<=7)P=U.formatDateRaw(_,{weekday:"short",hour:"numeric",minute:"2-digit",hour12:!0},"en-US");else{const N=U.formatDateRaw(_,{month:"short",day:"numeric"},"en-US"),R=U.formatTime(_,{hour12:!0},"en-US");P=`${N} ${R}`}return{text:`On sale ${P}`,disabled:!0,reason:"coming_soon"}}return m?l?{text:s?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"}:a?{text:"Join Waitlist",disabled:!1,reason:"sold_out_waitlist"}:{text:"Sold out",disabled:!0,reason:"sold_out"}:l?{text:s?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"}:{text:"Sales ended",disabled:!0,reason:"sales_ended"}}function H(e){return{uuid:e.uuid||String(e.id||e.ID||""),id:e.id||e.ID,ticketNumber:e.ticketNumber||e.ticket_number,orderId:e.orderId||e.order_id,attendeeFirstName:e.attendeeFirstName||e.attendee_first_name||e.firstName,attendeeLastName:e.attendeeLastName||e.attendee_last_name||e.lastName,attendeeEmail:e.attendeeEmail||e.attendee_email||e.email,ticketName:e.ticketName||e.ticket_name||e.name||"",ticketTypeId:e.ticketTypeId||e.ticket_type_id,purchasePrice:e.purchasePrice||e.purchase_price||e.price||0,status:e.status,checkedIn:e.checkedIn||e.checked_in,checkedInAt:e.checkedInAt||e.checked_in_at}}function W(e){const r=e.purchasedTickets||e.tickets||e.purchased_tickets||[];return{uuid:e.uuid||String(e.id||e.ID||""),id:e.id||e.ID,customerEmail:e.customerEmail||e.email||e.customer_email||"",customerFirstName:e.customerFirstName||e.firstName||e.first_name,customerLastName:e.customerLastName||e.lastName||e.last_name,status:e.status||"unknown",totalAmount:e.totalAmount||e.total||e.total_amount||0,subtotal:e.subtotal,serviceFeesAmount:e.serviceFeesAmount||e.serviceFee||e.service_fee||e.service_fees_amount||0,taxAmount:e.taxAmount||e.tax||e.tax_amount||0,discount:e.discount||0,paymentIntentId:e.paymentIntentId||e.payment_intent_id,paymentMethod:e.paymentMethod||e.payment_method,purchasedTickets:r.map(H),createdAt:e.createdAt||e.created_at,updatedAt:e.updatedAt||e.updated_at}}function Je(e){const r=W(e),t=r.uuid.split("-")[0]||r.uuid;return{orderId:r.uuid,displayOrderId:t,email:r.customerEmail,customerName:[r.customerFirstName,r.customerLastName].filter(Boolean).join(" "),total:r.totalAmount,formattedTotal:`${A.formatCurrency(r.totalAmount/100)}`,ticketCount:r.purchasedTickets.length,status:r.status}}const Ve="https://micdrop-images.sfo3.digitaloceanspaces.com";function Q(e){return e?e.startsWith("http")?e:`${Ve}/${e.replace(/^\//,"")}`:""}function G(e){const r=e.imageUrl||e.imageURL||e.image_url||e.image||"";return Q(r)}function J(e){const r=e.ctaState||e.cta_state;if(r)return r;if(e.isCancelled||e.is_cancelled)return"ended";const t=e.startDateTime||e.start_date_time||e.date;if(t){const o=new Date(t).getTime(),c=Date.now();if(o<c)return"ended"}const n=e.ticketsAvailable??e.tickets_available;if(n!==void 0)return n<=0?"sold_out":"available";const s=e.availableTickets||e.available_tickets||e.tickets||[];return s.length===0?"coming_soon":s.reduce((o,c)=>{const l=c.quantityAvailable??c.quantity_available??c.quantity??0,C=c.quantitySold??c.quantity_sold??0;return o+Math.max(0,l-C)},0)<=0?"sold_out":"available"}function V(e){return{id:e.id||e.ID,name:e.name||e.ticketName||"",description:e.description,price:e.price||0,quantity:e.quantity||e.totalQuantity||0,quantitySold:e.quantitySold||e.quantity_sold||0,quantityAvailable:e.quantityAvailable||e.quantity_available||(e.quantity||0)-(e.quantitySold||0),minPerOrder:e.minPerOrder||e.min_per_order||1,maxPerOrder:e.maxPerOrder||e.max_per_order||10,saleStartDate:e.saleStartDate||e.sale_start_date,saleEndDate:e.saleEndDate||e.sale_end_date,isHidden:e.isHidden||e.is_hidden||!1,revealWithPromoCode:e.revealWithPromoCode||e.reveal_with_promo_code,ticketType:e.ticketType||e.ticket_type||0,sectionId:e.sectionId||e.section_id,sortOrder:e.sortOrder||e.sort_order||0}}function Y(e){const t=(e.availableTickets||e.available_tickets||e.tickets||[]).map(V),n=t.map(o=>o.price).filter(o=>o>0),s=n.length>0?Math.min(...n):void 0,a=n.length>0?Math.max(...n):void 0;return{eventID:e.eventID||e.id||e.ID||0,id:e.id||e.ID,name:e.name||e.title||"",title:e.title||e.name,slug:e.slug,description:e.description,date:e.date||e.startDateTime||e.start_date_time||"",startDateTime:e.startDateTime||e.start_date_time,endDateTime:e.endDateTime||e.end_date_time,doorsOpenTime:e.doorsOpenTime||e.doors_open_time,timezone:e.timezone||e.time_zone,venueId:e.venueId||e.venue_id,venueName:e.venueName||e.venue_name,venueAddress:e.venueAddress||e.venue_address,location:e.location||e.venueAddress||e.venue_address,imageUrl:G(e),imageURL:G(e),status:e.status,isPublished:e.isPublished??e.is_published,isCancelled:e.isCancelled??e.is_cancelled,availableTickets:t,ticketsAvailable:e.ticketsAvailable??e.tickets_available??t.reduce((o,c)=>o+(c.quantityAvailable||0),0),ticketsSold:e.ticketsSold??e.tickets_sold,minPrice:e.minPrice??e.min_price??s,maxPrice:e.maxPrice??e.max_price??a,ctaText:e.ctaText||e.cta_text,ctaState:J(e),showPerformers:e.showPerformers??e.show_performers,eventSeriesId:e.eventSeriesId||e.event_series_id,seriesInstanceNumber:e.seriesInstanceNumber||e.series_instance_number}}const Ye=Y,Ke="https://micdrop-images.sfo3.digitaloceanspaces.com";function Xe(e){return e?e.startsWith("http")?e:`${Ke}/${e.replace(/^\//,"")}`:""}function Ze(e){const r=e.logoUrl||e.logo_url||e.logo;return{id:e.id||e.ID||0,name:e.name||"",slug:e.slug,address:e.address,googleLocationNameCache:e.googleLocationNameCache||e.google_location_name_cache,city:e.city,state:e.state,zipCode:e.zipCode||e.zip_code,country:e.country,timezone:e.timezone||e.time_zone,logoUrl:Xe(r),serviceFeePercentage:e.serviceFeePercentage??e.service_fee_percentage??0,serviceFeeCents:e.serviceFeeCents??e.service_fee_cents??0,taxPercentage:e.taxPercentage??e.tax_percentage??0,organizationId:e.organizationId||e.organization_id}}function er(e){return{serviceFeePercentage:e.serviceFeePercentage??e.service_fee_percentage??0,serviceFeeCents:e.serviceFeeCents??e.service_fee_cents??0,taxPercentage:e.taxPercentage??e.tax_percentage??0}}function rr(e){return[e.address,e.city,e.state,e.zipCode].filter(Boolean).join(", ")}exports.apiDelete=z;exports.apiGet=$;exports.apiPost=g;exports.apiPut=ne;exports.applyGiftCard=Te;exports.applyPromoCode=we;exports.calculateCtaState=J;exports.cancelReservation=ie;exports.checkCollectionPassword=Ue;exports.checkEventPassword=Fe;exports.completeGiftCardPayment=Me;exports.completeReservation=ce;exports.computeCtaState=Qe;exports.configureApi=X;exports.createGiftCardPurchase=Be;exports.createOrder=ue;exports.createPaymentIntent=se;exports.extendCheckoutSession=fe;exports.extractVenueFees=er;exports.fetchAllVenues=$e;exports.fetchEventDetails=be;exports.fetchEventPerformers=Pe;exports.fetchEventTickets=Ce;exports.fetchPublicCollection=xe;exports.fetchSeriesOccurrences=De;exports.fetchSeriesPage=Re;exports.fetchVenueEvents=pe;exports.formatVenueAddress=rr;exports.getApiConfig=Z;exports.getCDNImageUrl=Q;exports.getCartByUUID=oe;exports.getClientIP=re;exports.getEventImageUrl=G;exports.getLegacyPublicUrl=ee;exports.getMonthEvents=Ae;exports.getOrder=le;exports.getOrdersV2Url=D;exports.getOrgMonthEvents=Se;exports.getPublicBaseUrl=i;exports.getSeriesOccurrences=Ie;exports.getSessionStatus=me;exports.getVenue=O;exports.getVenueBySlug=qe;exports.getVenueFees=Ee;exports.getWaitlistStatus=He;exports.hasPromoCodes=ve;exports.initiateOrder=ge;exports.joinWaitlist=Oe;exports.removeGiftCard=je;exports.removePromoCode=_e;exports.resolvePublicEntity=Ne;exports.testNetworkConnection=ke;exports.trackUTMSource=ye;exports.transformAvailableTicket=V;exports.transformEvent=Y;exports.transformEventData=Ye;exports.transformOrder=W;exports.transformOrderForDisplay=Je;exports.transformTicket=H;exports.transformVenue=Ze;exports.updateCartQuantities=ae;exports.validatePaymentIntent=de;exports.validatePromoCode=he;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("@getmicdrop/svelte-components/utils/logger"),p=require("@getmicdrop/svelte-components"),U=require("@getmicdrop/svelte-components/utils/formatters"),q=S.createLogger("VC"),K={baseUrl:"https://get-micdrop.com",timeout:3e4,retries:2,retryDelay:500,onError:e=>q.error("API Error:",e)};let v={...K};function X(e){v={...v,...e}}function Z(){return{...v}}function i(){return`${v.baseUrl}/api/v2/public`}function ee(){return`${v.baseUrl}/api/public`}function A(){return`${v.baseUrl}/api/orders/v2/public`}async function re(){return""}const te=e=>new Promise(r=>setTimeout(r,e));async function M(e,r,t){const n=(r.method||"GET").toUpperCase(),a=n==="GET"||n==="HEAD"?t.retries+1:1;let o;for(let c=1;c<=a;c++){const l=new AbortController,C=setTimeout(()=>l.abort(),t.timeout),h=r.signal;let m;h&&(h.aborted?l.abort():(m=()=>l.abort(),h.addEventListener("abort",m,{once:!0})));try{const w=await fetch(e,{...r,signal:l.signal});if(w.status>=500&&c<a)o=new Error(`HTTP ${w.status}`);else return w}catch(w){if(o=w,h?.aborted)throw w}finally{clearTimeout(C),h&&m&&h.removeEventListener("abort",m)}c<a&&await te(t.retryDelay*Math.pow(2,c-1))}throw o}async function $(e,r){return k("GET",e,void 0,r)}async function g(e,r,t){return k("POST",e,r,t)}async function ne(e,r,t){return k("PUT",e,r,t)}async function O(e,r){return k("DELETE",e,void 0,r)}async function k(e,r,t,n){const s=r.startsWith("http")?r:`${i()}${r}`;try{const a=await M(s,{method:e,headers:{"Content-Type":"application/json",...n?.headers},body:t!==void 0?JSON.stringify(t):void 0,credentials:"include",...n},v);if(!a.ok){const c=await a.json().catch(()=>({})),l=c.error||c.message||`HTTP ${a.status}`;return v.onError(new Error(l)),{success:!1,error:l,statusCode:a.status}}return{success:!0,data:await a.json(),statusCode:a.status}}catch(a){const o=a instanceof Error?a.name==="AbortError"?"Request timed out":a.message:"Unknown error";return v.onError(a instanceof Error?a:new Error(o)),{success:!1,error:o}}}async function y(e,r){try{const t=await M(e,{credentials:"include",...r},v);if(!t.ok){const n=await t.json().catch(()=>({}));return q.error(`API request failed: ${t.status}`,n),null}return t.json()}catch(t){return q.error("API request error:",t),null}}const f=S.createLogger("VC");async function se(e,r,t){try{const n=await g(`${A()}/cart/${e}/payment-intent`,{productQuantities:r,...t&&Object.keys(t).length>0?{donationAmounts:t}:{}});if(!n.success)throw f.error("Payment intent creation failed:",n.error),new p.AppError(n.error||"Failed to create payment intent","lib/api/orders/createPaymentIntent");return f.debug("Payment intent created:",n.data),n.data}catch(n){return f.error("createPaymentIntent error:",n),null}}async function oe(e,r){if(!e)return null;try{const t=await $(`${A()}/cart/${e}`);if(!t.success)return null;const n=t.data,s=n.UUID??n.uuid??"",a=Number(n.EventID??n.eventID??0),o=n.Status??n.status??"",c=n.ExpiresAt??n.expiresAt??"",C=(n.Reservations??n.reservations??[]).map(h=>{const m=h;return{ticketID:Number(m.TicketID??m.ticketID??0),quantity:Number(m.Quantity??m.quantity??0),priceAtReservation:Number(m.PriceAtReservation??m.priceAtReservation??0),status:String(m.Status??m.status??"")}});return o!=="reserved"&&o!=="active"||r!==void 0&&a!==Number(r)?null:{uuid:s,eventID:a,status:o,expiresAt:c,reservations:C}}catch(t){return f.error("getCartByUUID error:",t),null}}async function ae(e,r,t){try{const n={};for(const[o,c]of Object.entries(r)){const l=typeof o=="number"?o:parseInt(o,10);!Number.isNaN(l)&&c>0&&(n[l]=c)}const s={};if(t)for(const[o,c]of Object.entries(t)){const l=typeof o=="number"?o:parseInt(o,10);!Number.isNaN(l)&&c>0&&(s[l]=c)}const a=await fetch(`${A()}/cart/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({quantities:n,...Object.keys(s).length>0?{donationAmounts:s}:{}})});if(!a.ok){const o=await a.json().catch(()=>({}));return f.error("Cart update failed:",o),!1}return!0}catch(n){return f.error("updateCartQuantities error:",n),!1}}async function ce(e){try{const r=await g(`${i()}/orders/complete/${e}`);return r.success?{success:!0,message:r.data?.message}:{success:!1,error:r.error||"Failed to complete reservation"}}catch(r){return f.error("Error completing reservation:",r),{success:!1,error:"Network error completing reservation"}}}async function ie(e){try{const r=await g(`${i()}/orders/cancel/${e}`);return r.success?{success:!0,message:r.data?.message}:{success:!1,error:r.error||"Failed to cancel reservation"}}catch(r){return f.error("Error cancelling reservation:",r),{success:!1,error:"Network error cancelling reservation"}}}async function ue(e,r){try{const t=await g(`${i()}/orders/create`,{eventID:e,promoCode:r});return t.success?t.data:(f.error("Create order failed:",t.error),null)}catch(t){return f.error("createOrder error:",t),null}}async function le(e){return y(`${i()}/orders/${e}`)}async function de(e,r){try{const t=await g(`${A()}/validatePaymentIntent/${e}`,r);if(!t.success)return f.error("Payment validation failed:",t.error),{success:!1,status:"failed",error:t.error||"Payment validation failed"};const n=t.data;return{success:!0,status:n.status||"Payment succeeded",orderUUID:n.orderUUID||n.uuid}}catch(t){return f.error("validatePaymentIntent error:",t),null}}async function fe(e){try{const r=await g(`${i()}/orders/extend-session`,{orderUuid:e});if(!r.success)return{success:!1,error:r.error||"Failed to extend session",statusCode:r.statusCode};const t=r.data;return{success:!0,newExpiryTime:t.newExpiryTime,remainingExtensions:t.remainingExtensions}}catch(r){return f.error("Error extending checkout session:",r),{success:!1,error:"Network error extending session"}}}async function me(e){try{const r=await $(`${i()}/orders/session/${e}`);if(!r.success)return{error:r.error||"No active session found",notFound:r.statusCode===404};const t=r.data;return{expiresAt:t.expiresAt,extensionCount:t.extensionCount,remainingExtensions:t.remainingExtensions,canExtend:t.canExtend,reservationCount:t.reservationCount}}catch(r){return f.error("Error getting session status:",r),{error:"Network error getting session status"}}}async function ge(e={}){try{const r=await g(`${i()}/orders/create`,e);return r.success?r.data?.uuid??null:(f.error("Order initiation failed:",r.error),null)}catch(r){return f.error("initiateOrder error:",r),null}}async function ye(e){if(typeof window>"u")return;const t=new URLSearchParams(window.location.search).get("utm_source")||"Direct";try{await fetch(`${i()}/utm/${e}/${encodeURIComponent(t)}`)}catch(n){f.error("UTM tracking failed:",n)}}const E=S.createLogger("VC"),he=()=>A();async function ve(e,r){try{if(!r||!r.trim())return{valid:!1,error:"Promo code is required"};const t=encodeURIComponent(r.trim()),n=await $(`/promo-codes/validate/${e}/${t}`);if(!n.success)return n.statusCode===404?{valid:!1,error:"Invalid promo code"}:{valid:!1,error:"Failed to validate code"};const s=n.data;return{valid:s.valid??!0,revealHiddenTickets:s.revealHiddenTickets,revealTicketIds:s.revealTicketIds,provideDiscount:s.provideDiscount,discountType:s.discountType,amount:s.amount,code:s.code||r}}catch(t){return E.error("Error validating promo code:",t),{valid:!1,error:"Network error validating code"}}}async function we(e){try{const r=await $(`/promo-codes/check/${e}`);return r.success?r.data.hasPromoCodes===!0:!0}catch(r){return E.error("Error checking promo codes availability:",r),!0}}async function _e(e,r){try{const t=await g(`${he()}/cart/${e}/apply-promo`,{promoCode:r});return t.success?{success:!0}:{success:!1,error:t.error||"Failed to apply promo code"}}catch(t){return E.error("Error applying promo code:",t),{success:!1,error:"Network error applying code"}}}async function be(e){try{const r=await g(`/orders/${e}/remove-promo`);return r.success?{success:!0}:{success:!1,error:r.error||"Failed to remove promo code"}}catch(r){return E.error("Error removing promo code:",r),{success:!1,error:"Network error removing code"}}}const u=S.createLogger("VC"),F=new Map;async function Ce(e,r=fetch){const t=String(e);if(r===fetch){const s=F.get(t);if(s)return s}const n=(async()=>{try{const s=await r(`${i()}/events/${e}`);if(!s.ok)throw new p.AppError(`Failed to fetch event details: ${s.status}`,"lib/api/events/fetchEventDetails");return await s.json()}catch(s){return u.error("Error fetching event details:",s),null}})();return r===fetch&&(F.set(t,n),n.finally(()=>{F.get(t)===n&&F.delete(t)})),n}async function Pe(e){try{const r=await y(`${i()}/tickets/event/${e}`);return Array.isArray(r)?r:[]}catch(r){return u.error("Error fetching tickets:",r),[]}}async function $e(e){try{if(!e)return u.warn("fetchEventPerformers called without eventId"),{performers:[],showPerformers:!1};const r=await y(`${i()}/events/${e}/performers`);return r?{performers:Array.isArray(r.performers)?r.performers:[],showPerformers:r.showPerformers===!0}:(u.error("Failed to fetch performers: network or server error"),{performers:[],showPerformers:!1})}catch(r){return u.error("Error fetching event performers:",r),{performers:[],showPerformers:!1}}}async function Se(e){try{if(!e)return u.warn("fetchAllVenues called without orgId"),[];const r=await y(`${i()}/venues/organization/${e}`);return r?Array.isArray(r)?r:[]:(u.error("Failed to fetch venues: network or server error"),[])}catch(r){return u.error("Error fetching venues:",r),[]}}async function pe(e){try{if(!e)return u.warn("fetchVenueEvents called without venueId"),[];const r=await y(`${i()}/events/venue/${e}`);return r?Array.isArray(r)?r:[]:(u.error("Failed to fetch venue events: network or server error"),[])}catch(r){return u.error("Error fetching venue events:",r),[]}}async function Ae(e,r,t){try{const n=await y(`${i()}/events/venue/${e}/month/${r}/${t}`);return n?Array.isArray(n)?n:Array.isArray(n.events)?n.events:[]:(u.error("Failed to fetch month events: network or server error"),[])}catch(n){return u.error("Error fetching month events:",n),[]}}async function Ie(e,r,t){try{const n=await y(`${i()}/events/organization/${e}/month/${r}/${t}`);return n?Array.isArray(n)?n:Array.isArray(n.events)?n.events:[]:(u.error("Failed to fetch org month events: network or server error"),[])}catch(n){return u.error("Error fetching org month events:",n),[]}}async function De(e){try{const r=await y(`${i()}/series/${e}/occurrences`);return r||(u.error("Failed to fetch series occurrences: network or server error"),null)}catch(r){return u.error("Error fetching series occurrences:",r),null}}async function Ne(e,r){try{const t=await y(`${i()}/series/${e}/occurrences?venueId=${r}`);return t||(u.error("Failed to fetch series with CTA: network or server error"),null)}catch(t){return u.error("Error fetching series occurrences:",t),null}}async function Re(e,r){try{const t=r?`?slug=${encodeURIComponent(r)}`:"",n=await y(`${i()}/resolve/${encodeURIComponent(String(e))}${t}`);if(!n||!n.type)throw new p.AppError("Failed to resolve entity","lib/api/events/resolvePublicEntity");return n}catch(t){return u.error("Error resolving public entity:",t),null}}async function xe(e){try{const r=await y(`${i()}/series/${e}/page`);if(!r)throw new p.AppError("Failed to fetch series page","lib/api/events/fetchSeriesPage");return r}catch(r){return u.error("Error fetching series page:",r),null}}async function Ue(e,r){try{const t=r?`${i()}/collections/${e}?password=${encodeURIComponent(r)}`:`${i()}/collections/${e}`,n=await y(t);if(!n)throw new p.AppError("Failed to fetch collection","lib/api/events/fetchPublicCollection");return n}catch(t){return u.error("Error fetching collection:",t),null}}async function Fe(e,r){try{const t=encodeURIComponent(r);return(await y(`${i()}/collections/${e}/check-password/${t}`))?.valid===!0}catch(t){return u.error("Error checking collection password:",t),!1}}async function ke(e,r){try{const t=await g(`${i()}/events/${e}/check-password`,{password:r});if(!t.success)return{valid:!1};const n=t.data;return typeof n=="boolean"?{valid:n}:{valid:n.valid===!0}}catch(t){return u.error("Error checking event password:",t),{valid:!1}}}async function Ee(e,r){try{const t=r?`${i()}/events/venue/${r}`:e?`${i()}/venues/organization/${e}`:`${i()}/health`;return(await fetch(t,{method:"HEAD"})).ok}catch(t){return u.error("Network connection test failed:",t),!1}}const D=S.createLogger("VC");async function z(e){try{if(!e)return D.warn("getVenue called without venueId"),null;const r=await $(`/venues/${e}`);return r.success?r.data??null:(D.error(`Failed to fetch venue: ${r.statusCode}`),null)}catch(r){return D.error("Error fetching venue:",r),null}}async function qe(e){const r=await z(e);return r?{serviceFeePercentage:r.serviceFeePercentage??0,serviceFeeCents:r.serviceFeeCents??0,taxPercentage:r.taxPercentage??0}:null}async function Le(e){try{if(!e)return D.warn("getVenueBySlug called without slug"),null;const r=encodeURIComponent(e),t=await $(`/venues/slug/${r}`);return t.success?t.data??null:(D.error(`Failed to fetch venue by slug: ${t.statusCode}`),null)}catch(r){return D.error("Error fetching venue by slug:",r),null}}const b=S.createLogger("VC"),Ge="https://get-micdrop.com",Be=`${Ge}/api/orders/v2`,B=()=>A();async function Te(e){try{const r=await g(`${Be}/gift-cards`,e);if(!r.success)throw b.error("Gift card purchase creation failed:",r.error),new p.AppError(r.error||"Failed to create gift card purchase","lib/api/gift-cards/createGiftCardPurchase");return b.debug("Gift card purchase created:",r.data),r.data}catch(r){return b.error("Gift card purchase creation error:",r),null}}async function je(e,r){try{const t=await g(`${B()}/cart/${e}/apply-gift-card`,{giftCardCode:r});if(!t.success)return t.statusCode===429?{valid:!1,error:"Too many attempts. Please wait a moment and try again."}:(b.error("Apply gift card failed:",t.error),{valid:!1,error:t.error||"Invalid gift card code"});const n=t.data;return{valid:!0,giftCardCode:n.giftCardCode,giftCardAmount:n.giftCardAmount,giftCardBalance:n.giftCardBalance,paymentType:n.paymentType,stripeAmount:n.stripeAmount,orderTotal:n.orderTotal,requiresStripe:n.requiresStripe}}catch(t){return b.error("applyGiftCard error:",t),{valid:!1,error:"Network error. Please check your connection and try again."}}}async function Me(e){try{const r=await O(`${B()}/cart/${e}/gift-card`);return r.success?{success:!0}:(b.error("Remove gift card failed:",r.error),{success:!1,error:r.error||"Failed to remove gift card"})}catch(r){return b.error("removeGiftCard error:",r),{success:!1,error:"Network error. Please check your connection and try again."}}}async function Oe(e,r){try{const t=await g(`${B()}/cart/${e}/complete-gift-card-payment`,{firstName:r.firstName,lastName:r.lastName,email:r.email,phoneNumber:r.phoneNumber||null,mailingList:r.mailingList||!1});return t.success?{success:!0,orderId:t.data?.orderId,confirmationNumber:t.data?.confirmationNumber}:(b.error("Complete gift card payment failed:",t.error),{success:!1,error:t.error||"Failed to complete payment"})}catch(t){return b.error("completeGiftCardPayment error:",t),{success:!1,error:"Network error. Please check your connection and try again."}}}const L=S.createLogger("VC"),ze={waitlist_not_enabled:"Waitlist is not available for this event",event_not_found:"Event not found",invalid_phone:"Please enter a valid phone number",already_purchased:"You have already purchased tickets for this event",phone_already_registered:"This phone number is already on the waitlist"};async function He(e,r,t=null,n=!1){try{const s={email:r};t&&n&&(s.phone=t,s.smsOptIn=!0);const a=await g(`/events/${e}/waitlist`,s);return a.success?{success:!0,updated:a.data?.updated}:(L.error("Join waitlist failed:",a.error),{success:!1,error:ze[a.error??""]||"Failed to join waitlist. Please try again."})}catch(s){return L.error("joinWaitlist error:",s),{success:!1,error:"Network error. Please check your connection and try again."}}}async function We(e){const r={waitlistEnabled:!1,soldOut:!1,gated:!1};try{const t=await $(`/events/${e}/waitlist/status`);return t.success?{waitlistEnabled:!!t.data?.waitlistEnabled,soldOut:!!t.data?.soldOut,gated:!!t.data?.gated}:r}catch(t){return L.error("getWaitlistStatus error:",t),r}}function Qe(e){if(!e||!(e.isHidden===!0||typeof e.visibility=="number"&&e.visibility>=2)||e.salesChannel===2)return!1;const t=new Date,n=e.salesBegin||e.salesStart||e.saleBegin||e.onSaleStart,s=e.salesEnd||e.saleEnd||e.onSaleEnd;if(n&&new Date(n)>t||s&&new Date(s)<t)return!1;const a=e.remainingCapacity??e.quantityRemaining??e.quantity;return!(e.soldOut||a!=null&&a<=0)}function Je(e,r,t={}){const{cancelled:n=!1,isRegistration:s=!1,waitlistEnabled:a=!1}=t,o=new Date;if(n)return{text:"Cancelled",disabled:!0,reason:"cancelled"};const c=e.endDateTime||e.startDateTime;if(c&&new Date(c)<o)return{text:"Sales ended",disabled:!0,reason:"event_past"};const l=e?.hasPurchasableHiddenTickets===!0||Array.isArray(r)&&r.some(Qe),C=(r||[]).filter(d=>d.salesChannel!==2&&!d.isHidden&&!(typeof d.visibility=="number"&&d.visibility>=2));if(C.length===0)return l?{text:s?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"}:{text:"No tickets available",disabled:!0,reason:"no_tickets"};let h=!1,m=!0,w=!0,_=null;for(const d of C){const I=d.salesBegin||d.salesStart||d.saleBegin||d.onSaleStart,x=d.salesEnd||d.saleEnd||d.onSaleEnd,P=d.remainingCapacity??d.quantityRemaining??d.quantity,N=d.soldOut||P!=null&&P<=0,R=I?new Date(I)>o:!1,T=x?new Date(x)<o:!1;if(!N&&!R&&!T&&(h=!0),N||(m=!1),R||(w=!1),R&&I&&!N&&!T){const j=new Date(I);(!_||j<_)&&(_=j)}}if(h)return{text:s?"Reserve a spot":"Get tickets",disabled:!1,reason:"available"};if(w&&_){if(l)return{text:s?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"};const d=_.getTime()-o.getTime(),I=d/(1e3*60*60),x=d/(1e3*60*60*24);let P;if(I<24)P=U.formatTime(_,{hour12:!0},"en-US");else if(x<=7)P=U.formatDateRaw(_,{weekday:"short",hour:"numeric",minute:"2-digit",hour12:!0},"en-US");else{const N=U.formatDateRaw(_,{month:"short",day:"numeric"},"en-US"),R=U.formatTime(_,{hour12:!0},"en-US");P=`${N} ${R}`}return{text:`On sale ${P}`,disabled:!0,reason:"coming_soon"}}return m?l?{text:s?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"}:a?{text:"Join Waitlist",disabled:!1,reason:"sold_out_waitlist"}:{text:"Sold out",disabled:!0,reason:"sold_out"}:l?{text:s?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"}:{text:"Sales ended",disabled:!0,reason:"sales_ended"}}function H(e){return{uuid:e.uuid||String(e.id||e.ID||""),id:e.id||e.ID,ticketNumber:e.ticketNumber||e.ticket_number,orderId:e.orderId||e.order_id,attendeeFirstName:e.attendeeFirstName||e.attendee_first_name||e.firstName,attendeeLastName:e.attendeeLastName||e.attendee_last_name||e.lastName,attendeeEmail:e.attendeeEmail||e.attendee_email||e.email,ticketName:e.ticketName||e.ticket_name||e.name||"",ticketTypeId:e.ticketTypeId||e.ticket_type_id,purchasePrice:e.purchasePrice||e.purchase_price||e.price||0,status:e.status,checkedIn:e.checkedIn||e.checked_in,checkedInAt:e.checkedInAt||e.checked_in_at}}function W(e){const r=e.purchasedTickets||e.tickets||e.purchased_tickets||[];return{uuid:e.uuid||String(e.id||e.ID||""),id:e.id||e.ID,customerEmail:e.customerEmail||e.email||e.customer_email||"",customerFirstName:e.customerFirstName||e.firstName||e.first_name,customerLastName:e.customerLastName||e.lastName||e.last_name,status:e.status||"unknown",totalAmount:e.totalAmount||e.total||e.total_amount||0,subtotal:e.subtotal,serviceFeesAmount:e.serviceFeesAmount||e.serviceFee||e.service_fee||e.service_fees_amount||0,taxAmount:e.taxAmount||e.tax||e.tax_amount||0,discount:e.discount||0,paymentIntentId:e.paymentIntentId||e.payment_intent_id,paymentMethod:e.paymentMethod||e.payment_method,purchasedTickets:r.map(H),createdAt:e.createdAt||e.created_at,updatedAt:e.updatedAt||e.updated_at}}function Ve(e){const r=W(e),t=r.uuid.split("-")[0]||r.uuid;return{orderId:r.uuid,displayOrderId:t,email:r.customerEmail,customerName:[r.customerFirstName,r.customerLastName].filter(Boolean).join(" "),total:r.totalAmount,formattedTotal:`${p.formatCurrency(r.totalAmount/100)}`,ticketCount:r.purchasedTickets.length,status:r.status}}const Ye="https://micdrop-images.sfo3.digitaloceanspaces.com";function Q(e){return e?e.startsWith("http")?e:`${Ye}/${e.replace(/^\//,"")}`:""}function G(e){const r=e.imageUrl||e.imageURL||e.image_url||e.image||"";return Q(r)}function J(e){const r=e.ctaState||e.cta_state;if(r)return r;if(e.isCancelled||e.is_cancelled)return"ended";const t=e.startDateTime||e.start_date_time||e.date;if(t){const o=new Date(t).getTime(),c=Date.now();if(o<c)return"ended"}const n=e.ticketsAvailable??e.tickets_available;if(n!==void 0)return n<=0?"sold_out":"available";const s=e.availableTickets||e.available_tickets||e.tickets||[];return s.length===0?"coming_soon":s.reduce((o,c)=>{const l=c.quantityAvailable??c.quantity_available??c.quantity??0,C=c.quantitySold??c.quantity_sold??0;return o+Math.max(0,l-C)},0)<=0?"sold_out":"available"}function V(e){return{id:e.id||e.ID,name:e.name||e.ticketName||"",description:e.description,price:e.price||0,quantity:e.quantity||e.totalQuantity||0,quantitySold:e.quantitySold||e.quantity_sold||0,quantityAvailable:e.quantityAvailable||e.quantity_available||(e.quantity||0)-(e.quantitySold||0),minPerOrder:e.minPerOrder||e.min_per_order||1,maxPerOrder:e.maxPerOrder||e.max_per_order||10,saleStartDate:e.saleStartDate||e.sale_start_date,saleEndDate:e.saleEndDate||e.sale_end_date,isHidden:e.isHidden||e.is_hidden||!1,revealWithPromoCode:e.revealWithPromoCode||e.reveal_with_promo_code,ticketType:e.ticketType||e.ticket_type||0,sectionId:e.sectionId||e.section_id,sortOrder:e.sortOrder||e.sort_order||0}}function Y(e){const t=(e.availableTickets||e.available_tickets||e.tickets||[]).map(V),n=t.map(o=>o.price).filter(o=>o>0),s=n.length>0?Math.min(...n):void 0,a=n.length>0?Math.max(...n):void 0;return{eventID:e.eventID||e.id||e.ID||0,id:e.id||e.ID,name:e.name||e.title||"",title:e.title||e.name,slug:e.slug,description:e.description,date:e.date||e.startDateTime||e.start_date_time||"",startDateTime:e.startDateTime||e.start_date_time,endDateTime:e.endDateTime||e.end_date_time,doorsOpenTime:e.doorsOpenTime||e.doors_open_time,timezone:e.timezone||e.time_zone,venueId:e.venueId||e.venue_id,venueName:e.venueName||e.venue_name,venueAddress:e.venueAddress||e.venue_address,location:e.location||e.venueAddress||e.venue_address,imageUrl:G(e),imageURL:G(e),status:e.status,isPublished:e.isPublished??e.is_published,isCancelled:e.isCancelled??e.is_cancelled,availableTickets:t,ticketsAvailable:e.ticketsAvailable??e.tickets_available??t.reduce((o,c)=>o+(c.quantityAvailable||0),0),ticketsSold:e.ticketsSold??e.tickets_sold,minPrice:e.minPrice??e.min_price??s,maxPrice:e.maxPrice??e.max_price??a,ctaText:e.ctaText||e.cta_text,ctaState:J(e),showPerformers:e.showPerformers??e.show_performers,eventSeriesId:e.eventSeriesId||e.event_series_id,seriesInstanceNumber:e.seriesInstanceNumber||e.series_instance_number}}const Ke=Y,Xe="https://micdrop-images.sfo3.digitaloceanspaces.com";function Ze(e){return e?e.startsWith("http")?e:`${Xe}/${e.replace(/^\//,"")}`:""}function er(e){const r=e.logoUrl||e.logo_url||e.logo;return{id:e.id||e.ID||0,name:e.name||"",slug:e.slug,address:e.address,googleLocationNameCache:e.googleLocationNameCache||e.google_location_name_cache,city:e.city,state:e.state,zipCode:e.zipCode||e.zip_code,country:e.country,timezone:e.timezone||e.time_zone,logoUrl:Ze(r),serviceFeePercentage:e.serviceFeePercentage??e.service_fee_percentage??0,serviceFeeCents:e.serviceFeeCents??e.service_fee_cents??0,taxPercentage:e.taxPercentage??e.tax_percentage??0,organizationId:e.organizationId||e.organization_id}}function rr(e){return{serviceFeePercentage:e.serviceFeePercentage??e.service_fee_percentage??0,serviceFeeCents:e.serviceFeeCents??e.service_fee_cents??0,taxPercentage:e.taxPercentage??e.tax_percentage??0}}function tr(e){return[e.address,e.city,e.state,e.zipCode].filter(Boolean).join(", ")}exports.apiDelete=O;exports.apiGet=$;exports.apiPost=g;exports.apiPut=ne;exports.applyGiftCard=je;exports.applyPromoCode=_e;exports.calculateCtaState=J;exports.cancelReservation=ie;exports.checkCollectionPassword=Fe;exports.checkEventPassword=ke;exports.completeGiftCardPayment=Oe;exports.completeReservation=ce;exports.computeCtaState=Je;exports.configureApi=X;exports.createGiftCardPurchase=Te;exports.createOrder=ue;exports.createPaymentIntent=se;exports.extendCheckoutSession=fe;exports.extractVenueFees=rr;exports.fetchAllVenues=Se;exports.fetchEventDetails=Ce;exports.fetchEventPerformers=$e;exports.fetchEventTickets=Pe;exports.fetchPublicCollection=Ue;exports.fetchSeriesOccurrences=Ne;exports.fetchSeriesPage=xe;exports.fetchVenueEvents=pe;exports.formatVenueAddress=tr;exports.getApiConfig=Z;exports.getCDNImageUrl=Q;exports.getCartByUUID=oe;exports.getClientIP=re;exports.getEventImageUrl=G;exports.getLegacyPublicUrl=ee;exports.getMonthEvents=Ae;exports.getOrder=le;exports.getOrdersV2Url=A;exports.getOrgMonthEvents=Ie;exports.getPublicBaseUrl=i;exports.getSeriesOccurrences=De;exports.getSessionStatus=me;exports.getVenue=z;exports.getVenueBySlug=Le;exports.getVenueFees=qe;exports.getWaitlistStatus=We;exports.hasPromoCodes=we;exports.initiateOrder=ge;exports.joinWaitlist=He;exports.removeGiftCard=Me;exports.removePromoCode=be;exports.resolvePublicEntity=Re;exports.testNetworkConnection=Ee;exports.trackUTMSource=ye;exports.transformAvailableTicket=V;exports.transformEvent=Y;exports.transformEventData=Ke;exports.transformOrder=W;exports.transformOrderForDisplay=Ve;exports.transformTicket=H;exports.transformVenue=er;exports.updateCartQuantities=ae;exports.validatePaymentIntent=de;exports.validatePromoCode=ve;
|
|
2
2
|
//# sourceMappingURL=api.cjs.map
|