@getmicdrop/venue-calendar 3.8.4 → 4.0.4
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/README.md +700 -661
- package/dist/AirbnbSplitMain-CmX4EMJ2.js +2201 -0
- package/dist/AirbnbSplitMain-CmX4EMJ2.js.map +1 -0
- package/dist/{CarouselView.legacy-G433jD--.js → CarouselView.legacy-B4T9YnUY.js} +11 -10
- package/dist/CarouselView.legacy-B4T9YnUY.js.map +1 -0
- package/dist/CartView-C0wKcLTe.js +1667 -0
- package/dist/CartView-C0wKcLTe.js.map +1 -0
- package/dist/Checkout-DAH2LEv7.js +743 -0
- package/dist/Checkout-DAH2LEv7.js.map +1 -0
- package/dist/{Checkout.legacy-HODJd0ax.js → Checkout.legacy-CsJlr7ac.js} +374 -359
- package/dist/Checkout.legacy-CsJlr7ac.js.map +1 -0
- package/dist/CheckoutMain-CIfRFv_0.js +1403 -0
- package/dist/CheckoutMain-CIfRFv_0.js.map +1 -0
- package/dist/CheckoutTimer-DQFe_RCq.js +34 -0
- package/dist/CheckoutTimer-DQFe_RCq.js.map +1 -0
- package/dist/CollectionView-RKiSB7Gj.js +142 -0
- package/dist/CollectionView-RKiSB7Gj.js.map +1 -0
- package/dist/{CollectionView.legacy-CmNcGUzq.js → CollectionView.legacy-CHiKdISC.js} +25 -24
- package/dist/CollectionView.legacy-CHiKdISC.js.map +1 -0
- package/dist/EventDetailsView-BFXXDR_5.js +1187 -0
- package/dist/EventDetailsView-BFXXDR_5.js.map +1 -0
- package/dist/{FeaturedView.legacy-9h2qZMOt.js → FeaturedView.legacy-Bx8r9VRn.js} +15 -15
- package/dist/FeaturedView.legacy-Bx8r9VRn.js.map +1 -0
- package/dist/GalleryCard-UVhZwNEr.js +92 -0
- package/dist/GalleryCard-UVhZwNEr.js.map +1 -0
- package/dist/{GalleryView.legacy-DiA_IVST.js → GalleryView.legacy-CYYCS-Ik.js} +18 -17
- package/dist/GalleryView.legacy-CYYCS-Ik.js.map +1 -0
- package/dist/{GroupedListView.legacy-Bo-kep9X.js → GroupedListView.legacy-_lpo2UrM.js} +25 -25
- package/dist/GroupedListView.legacy-_lpo2UrM.js.map +1 -0
- package/dist/Heading-AFd3o0xt.js +44 -0
- package/dist/Heading-AFd3o0xt.js.map +1 -0
- package/dist/OrderSummarySkeleton-dDKUH741.js +16 -0
- package/dist/OrderSummarySkeleton-dDKUH741.js.map +1 -0
- package/dist/SeriesPage-CFQLBhkC.js +56 -0
- package/dist/SeriesPage-CFQLBhkC.js.map +1 -0
- package/dist/SeriesPage.legacy-C-hADRCm.js +195 -0
- package/dist/SeriesPage.legacy-C-hADRCm.js.map +1 -0
- package/dist/Success-B_q1DLLZ.js +715 -0
- package/dist/Success-B_q1DLLZ.js.map +1 -0
- package/dist/Success.legacy-DU4ReWah.js +195 -0
- package/dist/Success.legacy-DU4ReWah.js.map +1 -0
- package/dist/Text-CXR2fhx6.js +54 -0
- package/dist/Text-CXR2fhx6.js.map +1 -0
- package/dist/{VenueCalendar-DkyugLs1.js → VenueCalendar-BkiDPwSu.js} +11242 -21624
- package/dist/VenueCalendar-BkiDPwSu.js.map +1 -0
- package/dist/ViewTicketsEmbed-Lh-WqskW.js +2038 -0
- package/dist/ViewTicketsEmbed-Lh-WqskW.js.map +1 -0
- package/dist/__SKIP_NAVIGATION__-CJ96TTPE.js +7 -0
- package/dist/__SKIP_NAVIGATION__-CJ96TTPE.js.map +1 -0
- package/dist/api/api.cjs +1 -1
- package/dist/api/api.cjs.map +1 -1
- package/dist/api/api.mjs +511 -279
- package/dist/api/api.mjs.map +1 -1
- package/dist/api/client.d.ts +3 -33
- package/dist/api/cta.d.ts +38 -0
- package/dist/api/events.d.ts +3 -1
- package/dist/api/gift-cards.d.ts +88 -0
- package/dist/api/index.d.ts +6 -0
- package/dist/api/types.d.ts +353 -349
- package/dist/api/waitlist.d.ts +23 -0
- package/dist/colors-BZoMuXdh.js.map +1 -1
- package/dist/labels-BJ37eSuH.js +1351 -0
- package/dist/labels-BJ37eSuH.js.map +1 -0
- package/dist/seo/HostSeoController.d.ts +9 -1
- package/dist/seo/seo.cjs +1 -1
- package/dist/seo/seo.cjs.map +1 -1
- package/dist/seo/seo.mjs +53 -50
- package/dist/seo/seo.mjs.map +1 -1
- package/dist/seo/types.d.ts +137 -136
- package/dist/transform-C3MxXi4m.js +218 -0
- package/dist/transform-C3MxXi4m.js.map +1 -0
- package/dist/types/index.d.ts +387 -387
- package/dist/venue-calendar.css +1 -1
- package/dist/venue-calendar.es.js +36 -28
- package/dist/venue-calendar.es.js.map +1 -1
- package/dist/venue-calendar.iife.js +43 -43
- package/dist/venue-calendar.iife.js.map +1 -1
- package/dist/venue-calendar.umd.js +40 -40
- package/dist/venue-calendar.umd.js.map +1 -1
- package/package.json +44 -6
- package/src/lib/theme.js +13 -0
- package/dist/CarouselView.legacy-G433jD--.js.map +0 -1
- package/dist/Checkout.legacy-HODJd0ax.js.map +0 -1
- package/dist/CollectionView.legacy-CmNcGUzq.js.map +0 -1
- package/dist/FeaturedView.legacy-9h2qZMOt.js.map +0 -1
- package/dist/GalleryView.legacy-DiA_IVST.js.map +0 -1
- package/dist/GroupedListView.legacy-Bo-kep9X.js.map +0 -1
- package/dist/SeriesPage.legacy-BjDBPDcq.js +0 -190
- package/dist/SeriesPage.legacy-BjDBPDcq.js.map +0 -1
- package/dist/Success.legacy-D86LAPHq.js +0 -194
- package/dist/Success.legacy-D86LAPHq.js.map +0 -1
- package/dist/VenueCalendar-DkyugLs1.js.map +0 -1
|
@@ -0,0 +1,1667 @@
|
|
|
1
|
+
import "svelte/internal/disclose-version";
|
|
2
|
+
import { f as Ce, X as pt, B as Ie, Y as mt, Z as ht, I as vt, _ as _t, $ as nt, h as gt, a0 as Ue, a1 as bt, a2 as He, u as xt, A as yt, a3 as kt, a4 as Tt, J as wt, a5 as Dt, a6 as It, v as it, a7 as St, M as lt, U as Ct, t as ot, b as Et, a8 as st, p as At, a9 as Pt, aa as Mt, q as Ot, ab as dt, ac as ct, ad as Ft } from "./VenueCalendar-BkiDPwSu.js";
|
|
3
|
+
import * as e from "svelte/internal/client";
|
|
4
|
+
import "svelte/internal/flags/legacy";
|
|
5
|
+
import "svelte/transition";
|
|
6
|
+
import "svelte/easing";
|
|
7
|
+
import { onMount as ft, onDestroy as Bt } from "svelte";
|
|
8
|
+
import { g as ut } from "./__SKIP_NAVIGATION__-CJ96TTPE.js";
|
|
9
|
+
import { O as Qt } from "./OrderSummarySkeleton-dDKUH741.js";
|
|
10
|
+
import { C as Lt } from "./CheckoutTimer-DQFe_RCq.js";
|
|
11
|
+
function qt(ie, t) {
|
|
12
|
+
if (!ie || typeof ie != "object") return {};
|
|
13
|
+
if (!Array.isArray(t) || t.length === 0) {
|
|
14
|
+
const I = {};
|
|
15
|
+
for (const [s, h] of Object.entries(ie))
|
|
16
|
+
typeof h == "number" && h > 0 && (I[s] = h);
|
|
17
|
+
return I;
|
|
18
|
+
}
|
|
19
|
+
const Q = /* @__PURE__ */ new Map();
|
|
20
|
+
for (const I of t)
|
|
21
|
+
I && I.ID !== void 0 && I.ID !== null && Q.set(String(I.ID), I);
|
|
22
|
+
const b = {};
|
|
23
|
+
for (const [I, s] of Object.entries(ie)) {
|
|
24
|
+
if (typeof s != "number" || !Number.isFinite(s) || s <= 0) continue;
|
|
25
|
+
const h = Q.get(String(I));
|
|
26
|
+
let i = s;
|
|
27
|
+
if (h) {
|
|
28
|
+
const S = h.remainingCapacity;
|
|
29
|
+
typeof S == "number" && Number.isFinite(S) && (i = Math.min(i, Math.max(0, S)));
|
|
30
|
+
const C = h.maxQuantity;
|
|
31
|
+
typeof C == "number" && Number.isFinite(C) && C > 0 && (i = Math.min(i, C));
|
|
32
|
+
}
|
|
33
|
+
i > 0 && (b[I] = i);
|
|
34
|
+
}
|
|
35
|
+
return b;
|
|
36
|
+
}
|
|
37
|
+
var Nt = e.from_html('<div role="group"><!> <span class="qty-display svelte-12zmutv" aria-live="polite" aria-atomic="true" role="status"><span class="sr-only"> </span> </span> <!></div>'), zt = e.from_html('<span class="sold-out-pill text-xs whitespace-nowrap svelte-12zmutv" role="status"> </span>'), Rt = e.from_html('<span class="sales-start-badge text-xs text-secondary whitespace-nowrap svelte-12zmutv" role="status"> </span>'), jt = e.from_html('<span class="sr-only" role="alert"> </span>'), Ht = e.from_html('<div class="donation-input-wrapper svelte-12zmutv"><!> <!></div>'), Ut = e.from_html('<span class="price-lg text-primary svelte-12zmutv"> </span> <span class="price-strikethrough"><span class="sr-only"> </span> </span> <span class="price-fee" aria-hidden="true"> </span> <span class="sr-only"> </span>', 1), Gt = e.from_html('<span class="price-lg text-primary svelte-12zmutv"> </span>'), Vt = e.from_html('<span class="price-lg text-primary svelte-12zmutv"> </span> <span class="price-fee" aria-hidden="true"> </span> <span class="sr-only"> </span>', 1), Wt = e.from_html('<span class="badge badge-discount"> </span>'), Zt = e.from_html('<span class="badge badge-unlocked"> </span>'), Jt = e.from_html('<div class="flex-row-2 mb-2 flex-wrap" role="status" aria-live="polite"><!> <!></div>'), Yt = e.from_html('<p class="text-sm text-secondary mb-3 svelte-12zmutv"> </p>'), Xt = e.from_html("<span> </span>"), Kt = e.from_html('<p class="sales-end-text text-xs svelte-12zmutv" role="status"> </p>'), $t = e.from_html('<article><div class="p-4 pb-0"><div class="vc-flex-between-start gap-4"><div class="flex-1 min-w-0"><h3 class="font-medium text-primary svelte-12zmutv"> </h3></div> <!></div></div> <hr class="divider-line my-3 svelte-12zmutv" aria-hidden="true"/> <div class="p-4 pt-0"><div class="flex-row-2 mb-2"><!></div> <!> <!> <div class="flex-row-2 mb-2 flex-wrap" role="status"><!> <!></div> <!></div></article>');
|
|
38
|
+
function ea(ie, t) {
|
|
39
|
+
e.push(t, !0);
|
|
40
|
+
let Q = e.prop(t, "fee", 3, "0.00"), b = e.prop(t, "quantity", 3, 0), I = e.prop(t, "soldOut", 3, !1), s = e.prop(t, "status", 3, null), h = e.prop(t, "salesBegin", 3, null), i = e.prop(t, "salesEnd", 3, null), S = e.prop(t, "remainingCapacity", 3, null), C = e.prop(
|
|
41
|
+
t,
|
|
42
|
+
"totalCapacity",
|
|
43
|
+
3,
|
|
44
|
+
null
|
|
45
|
+
// Total ticket capacity for percentage calculation
|
|
46
|
+
);
|
|
47
|
+
e.prop(
|
|
48
|
+
t,
|
|
49
|
+
"minQuantity",
|
|
50
|
+
3,
|
|
51
|
+
1
|
|
52
|
+
// Minimum quantity per order (default 1)
|
|
53
|
+
);
|
|
54
|
+
let H = e.prop(
|
|
55
|
+
t,
|
|
56
|
+
"maxQuantity",
|
|
57
|
+
3,
|
|
58
|
+
null
|
|
59
|
+
// Maximum quantity per order (null = unlimited)
|
|
60
|
+
), oe = e.prop(
|
|
61
|
+
t,
|
|
62
|
+
"discountedPrice",
|
|
63
|
+
3,
|
|
64
|
+
null
|
|
65
|
+
// Discounted price when promo applied
|
|
66
|
+
), ee = e.prop(
|
|
67
|
+
t,
|
|
68
|
+
"isRevealed",
|
|
69
|
+
3,
|
|
70
|
+
!1
|
|
71
|
+
// Badge: Unlocked via promo
|
|
72
|
+
), N = e.prop(
|
|
73
|
+
t,
|
|
74
|
+
"isDiscounted",
|
|
75
|
+
3,
|
|
76
|
+
!1
|
|
77
|
+
// Badge: Discount applied
|
|
78
|
+
), ce = e.prop(
|
|
79
|
+
t,
|
|
80
|
+
"ticketType",
|
|
81
|
+
3,
|
|
82
|
+
0
|
|
83
|
+
// 0 = paid/standard, 1 = registration/free, 2 = donation
|
|
84
|
+
), U = e.prop(
|
|
85
|
+
t,
|
|
86
|
+
"donationAmount",
|
|
87
|
+
3,
|
|
88
|
+
""
|
|
89
|
+
// User-entered donation amount (string for input binding)
|
|
90
|
+
), f = e.prop(t, "labels", 19, () => ({}));
|
|
91
|
+
const J = e.derived(() => ce() === 2), te = e.derived(() => parseFloat(U()) || 0), T = e.derived(() => e.get(J) && U() !== "" && e.get(te) < 1 ? f().minimumDonation || "Minimum $1.00" : ""), $ = e.derived(() => !e.get(J) || U() !== "" && e.get(te) >= 1), se = e.derived(() => parseFloat(t.price) || 0), p = e.derived(() => e.get(se) === 0 ? 0 : parseFloat(Q()) || 0), x = e.derived(() => Ce(e.get(se) + e.get(p))), m = e.derived(() => Ce(e.get(p))), y = e.derived(() => oe() ? parseFloat(oe()) : null), X = e.derived(() => e.get(y) === null || e.get(y) === 0 ? 0 : parseFloat(Q()) || 0), d = e.derived(() => e.get(y) !== null ? Ce(e.get(y) + e.get(X)) : null), u = e.derived(() => C() ?? S() ?? 0), w = 10, k = 15, D = 30, L = 5, me = 20;
|
|
92
|
+
function ue(l, n) {
|
|
93
|
+
if (n === 0) return 0;
|
|
94
|
+
const v = D / n * 100, q = L / n * 100;
|
|
95
|
+
return Math.max(Math.min(l, v), q);
|
|
96
|
+
}
|
|
97
|
+
const ye = e.derived(() => {
|
|
98
|
+
const l = S() ?? 0, n = e.get(u);
|
|
99
|
+
if (n === 0 || s() === "scheduled" || s() === "sales_ended") return null;
|
|
100
|
+
if (l <= 0) return { text: "Sold out", type: "sold-out" };
|
|
101
|
+
if (e.get(
|
|
102
|
+
se
|
|
103
|
+
// no scarcity on free tickets
|
|
104
|
+
) === 0) return null;
|
|
105
|
+
const v = l / n * 100, q = ue(w, n), z = ue(k, n);
|
|
106
|
+
return v <= q && l <= me ? {
|
|
107
|
+
text: `Only ${l} left`,
|
|
108
|
+
type: "scarcity",
|
|
109
|
+
showFlame: !0
|
|
110
|
+
} : v <= z ? { text: "Few tickets left", type: "scarcity", showFlame: !0 } : null;
|
|
111
|
+
}), G = e.derived(() => e.get(ye) != null && e.get(ye).type === "scarcity");
|
|
112
|
+
function Y(l) {
|
|
113
|
+
return l ? pt(l, { year: void 0, timeZone: "UTC" }) : "";
|
|
114
|
+
}
|
|
115
|
+
function ne(l) {
|
|
116
|
+
const n = /* @__PURE__ */ new Date(), v = new Date(n);
|
|
117
|
+
return v.setDate(v.getDate() + 1), l.toDateString() === v.toDateString();
|
|
118
|
+
}
|
|
119
|
+
function ve(l) {
|
|
120
|
+
const n = /* @__PURE__ */ new Date(), q = (l.getTime() - n.getTime()) / (1e3 * 60 * 60 * 24);
|
|
121
|
+
return q > 0 && q <= 7;
|
|
122
|
+
}
|
|
123
|
+
function _(l) {
|
|
124
|
+
if (!l) return { text: "", preposition: "" };
|
|
125
|
+
const n = new Date(l), v = /* @__PURE__ */ new Date(), q = n.getTime() - v.getTime(), z = Math.round(q / (1e3 * 60)), R = q / (1e3 * 60 * 60), F = f().locale || "en-US";
|
|
126
|
+
if (z > 0 && z < 60) {
|
|
127
|
+
const B = Math.max(1, z);
|
|
128
|
+
return { text: (B === 1 ? f().inNMinute || "in {n} minute" : f().inNMinutes || "in {n} minutes").replace("{n}", String(B)), preposition: "" };
|
|
129
|
+
}
|
|
130
|
+
if (R > 0 && R < 24) {
|
|
131
|
+
const B = Math.max(1, Math.round(R));
|
|
132
|
+
return {
|
|
133
|
+
text: (B === 1 ? f().inNHour || "in {n} hour" : f().inNHours || "in {n} hours").replace("{n}", String(B)),
|
|
134
|
+
preposition: ""
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
if (ne(n)) {
|
|
138
|
+
const B = nt(l, { timeZone: "UTC" });
|
|
139
|
+
return {
|
|
140
|
+
text: (f().tomorrowAtTime || "tomorrow at {time}").replace("{time}", B),
|
|
141
|
+
preposition: ""
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
if (ve(n)) {
|
|
145
|
+
const B = new Intl.DateTimeFormat(F, { weekday: "long" }).format(n), re = nt(l, { timeZone: "UTC" });
|
|
146
|
+
return {
|
|
147
|
+
text: (f().onDayAtTime || "on {day} at {time}").replace("{day}", B).replace("{time}", re),
|
|
148
|
+
preposition: ""
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
const V = new Intl.DateTimeFormat(F, { month: "short", day: "numeric" }).format(n);
|
|
152
|
+
return {
|
|
153
|
+
text: (f().onDate || "on {date}").replace("{date}", V),
|
|
154
|
+
preposition: ""
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
function qe(l) {
|
|
158
|
+
const { text: n } = _(l);
|
|
159
|
+
return n;
|
|
160
|
+
}
|
|
161
|
+
function ke(l) {
|
|
162
|
+
return _(l);
|
|
163
|
+
}
|
|
164
|
+
const ge = e.derived(() => (() => {
|
|
165
|
+
if (!s()) return null;
|
|
166
|
+
switch (s()) {
|
|
167
|
+
case "scheduled":
|
|
168
|
+
return {
|
|
169
|
+
showAsMessage: !0,
|
|
170
|
+
// Display as inline message instead of badge
|
|
171
|
+
message: (f().salesStart || "Sales start {salesStart}").replace("{salesStart}", qe(h()))
|
|
172
|
+
};
|
|
173
|
+
case "on_sale":
|
|
174
|
+
return null;
|
|
175
|
+
case // Don't show badge for normal on-sale status
|
|
176
|
+
"sales_ended":
|
|
177
|
+
return {
|
|
178
|
+
badge: f().statusSalesEnded || "Sales ended",
|
|
179
|
+
badgeClass: "badge-ended",
|
|
180
|
+
label: "Ended",
|
|
181
|
+
date: Y(i())
|
|
182
|
+
};
|
|
183
|
+
default:
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
})());
|
|
187
|
+
var _e = $t();
|
|
188
|
+
let Fe;
|
|
189
|
+
var Ee = e.child(_e), Be = e.child(Ee), Ae = e.child(Be), Te = e.child(Ae), Ne = e.child(Te, !0);
|
|
190
|
+
e.reset(Te), e.reset(Ae);
|
|
191
|
+
var Pe = e.sibling(Ae, 2);
|
|
192
|
+
{
|
|
193
|
+
var Se = (l) => {
|
|
194
|
+
var n = Nt();
|
|
195
|
+
let v;
|
|
196
|
+
var q = e.child(n);
|
|
197
|
+
{
|
|
198
|
+
let re = e.derived(() => b() === 0), a = e.derived(() => (f().decreaseQuantity || "Decrease quantity for {title}").replace("{title}", t.title));
|
|
199
|
+
Ie(q, {
|
|
200
|
+
iconbtn: !0,
|
|
201
|
+
strokebtn: !0,
|
|
202
|
+
onclick: () => t.ondecrement?.(),
|
|
203
|
+
get disabled() {
|
|
204
|
+
return e.get(re);
|
|
205
|
+
},
|
|
206
|
+
get "aria-label"() {
|
|
207
|
+
return e.get(a);
|
|
208
|
+
},
|
|
209
|
+
class: "qty-btn",
|
|
210
|
+
children: (r, o) => {
|
|
211
|
+
mt(r, { size: 20, "aria-hidden": "true" });
|
|
212
|
+
},
|
|
213
|
+
$$slots: { default: !0 }
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
var z = e.sibling(q, 2), R = e.child(z), F = e.child(R, !0);
|
|
217
|
+
e.reset(R);
|
|
218
|
+
var V = e.sibling(R);
|
|
219
|
+
e.reset(z);
|
|
220
|
+
var B = e.sibling(z, 2);
|
|
221
|
+
{
|
|
222
|
+
let re = e.derived(() => H() !== null && b() >= H() || S() !== null && b() >= S() || !e.get($)), a = e.derived(() => (f().increaseQuantity || "Increase quantity for {title}").replace("{title}", t.title));
|
|
223
|
+
Ie(B, {
|
|
224
|
+
iconbtn: !0,
|
|
225
|
+
onclick: () => t.onincrement?.(),
|
|
226
|
+
get disabled() {
|
|
227
|
+
return e.get(re);
|
|
228
|
+
},
|
|
229
|
+
get "aria-label"() {
|
|
230
|
+
return e.get(a);
|
|
231
|
+
},
|
|
232
|
+
class: "qty-btn",
|
|
233
|
+
children: (r, o) => {
|
|
234
|
+
ht(r, { size: 20, "aria-hidden": "true" });
|
|
235
|
+
},
|
|
236
|
+
$$slots: { default: !0 }
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
e.reset(n), e.template_effect(
|
|
240
|
+
(re) => {
|
|
241
|
+
v = e.set_class(n, 1, "flex items-center quantity-selector svelte-12zmutv", null, v, { active: b() > 0 }), e.set_attribute(n, "aria-label", re), e.set_text(F, f().quantity || "Quantity:"), e.set_text(V, ` ${b() ?? ""}`);
|
|
242
|
+
},
|
|
243
|
+
[
|
|
244
|
+
() => (f().quantitySelector || "Quantity selector for {title}").replace("{title}", t.title)
|
|
245
|
+
]
|
|
246
|
+
), e.append(l, n);
|
|
247
|
+
}, we = (l) => {
|
|
248
|
+
var n = zt(), v = e.child(n, !0);
|
|
249
|
+
e.reset(n), e.template_effect(() => {
|
|
250
|
+
e.set_attribute(n, "aria-label", f().statusSoldOut || "Sold out"), e.set_text(v, f().statusSoldOut || "Sold out");
|
|
251
|
+
}), e.append(l, n);
|
|
252
|
+
}, Me = (l) => {
|
|
253
|
+
var n = Rt(), v = e.child(n, !0);
|
|
254
|
+
e.reset(n), e.template_effect(() => e.set_text(v, e.get(ge).message)), e.append(l, n);
|
|
255
|
+
};
|
|
256
|
+
e.if(Pe, (l) => {
|
|
257
|
+
!I() && s() !== "scheduled" && s() !== "sales_ended" ? l(Se) : I() ? l(we, 1) : s() === "scheduled" && e.get(ge)?.message && l(Me, 2);
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
e.reset(Be), e.reset(Ee);
|
|
261
|
+
var Qe = e.sibling(Ee, 4), be = e.child(Qe), Oe = e.child(be);
|
|
262
|
+
{
|
|
263
|
+
var Ge = (l) => {
|
|
264
|
+
var n = Ht(), v = e.child(n);
|
|
265
|
+
{
|
|
266
|
+
let R = e.derived(() => f().donationAmountLabel || "Donation amount in dollars"), F = e.derived(() => I() || s() === "scheduled" || s() === "sales_ended"), V = e.derived(() => U() !== ""), B = e.derived(() => e.get(T) ? "donation-error-" + t.title?.replace(/\s+/g, "-").toLowerCase() : void 0);
|
|
267
|
+
vt(v, {
|
|
268
|
+
get label() {
|
|
269
|
+
return e.get(R);
|
|
270
|
+
},
|
|
271
|
+
size: "full",
|
|
272
|
+
type: "text",
|
|
273
|
+
inputmode: "decimal",
|
|
274
|
+
placeholder: "0.00",
|
|
275
|
+
get value() {
|
|
276
|
+
return U();
|
|
277
|
+
},
|
|
278
|
+
oninput: (re) => t.ondonationchange?.(re.target.value),
|
|
279
|
+
get disabled() {
|
|
280
|
+
return e.get(F);
|
|
281
|
+
},
|
|
282
|
+
get displayErrorText() {
|
|
283
|
+
return e.get(T);
|
|
284
|
+
},
|
|
285
|
+
get touched() {
|
|
286
|
+
return e.get(V);
|
|
287
|
+
},
|
|
288
|
+
get "aria-describedby"() {
|
|
289
|
+
return e.get(B);
|
|
290
|
+
}
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
var q = e.sibling(v, 2);
|
|
294
|
+
{
|
|
295
|
+
var z = (R) => {
|
|
296
|
+
var F = jt(), V = e.child(F, !0);
|
|
297
|
+
e.reset(F), e.template_effect(
|
|
298
|
+
(B) => {
|
|
299
|
+
e.set_attribute(F, "id", `donation-error-${B ?? ""}`), e.set_text(V, e.get(T));
|
|
300
|
+
},
|
|
301
|
+
[() => t.title?.replace(/\s+/g, "-").toLowerCase()]
|
|
302
|
+
), e.append(R, F);
|
|
303
|
+
};
|
|
304
|
+
e.if(q, (R) => {
|
|
305
|
+
e.get(T) && R(z);
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
e.reset(n), e.append(l, n);
|
|
309
|
+
}, $e = (l) => {
|
|
310
|
+
var n = Ut(), v = e.first_child(n), q = e.child(v, !0);
|
|
311
|
+
e.reset(v);
|
|
312
|
+
var z = e.sibling(v, 2), R = e.child(z), F = e.child(R, !0);
|
|
313
|
+
e.reset(R);
|
|
314
|
+
var V = e.sibling(R, 1, !0);
|
|
315
|
+
e.reset(z);
|
|
316
|
+
var B = e.sibling(z, 2), re = e.child(B, !0);
|
|
317
|
+
e.reset(B);
|
|
318
|
+
var a = e.sibling(B, 2), r = e.child(a, !0);
|
|
319
|
+
e.reset(a), e.template_effect(
|
|
320
|
+
(o, g) => {
|
|
321
|
+
e.set_attribute(v, "aria-label", `Discounted price ${e.get(d) ?? ""}`), e.set_text(q, e.get(d)), e.set_attribute(z, "aria-label", `Original price ${e.get(x) ?? ""}`), e.set_text(F, f().originalPrice || "Original price:"), e.set_text(V, e.get(x)), e.set_text(re, o), e.set_text(r, g);
|
|
322
|
+
},
|
|
323
|
+
[
|
|
324
|
+
() => (f().inclFee || "incl. {fee} fee").replace("{fee}", e.get(m)),
|
|
325
|
+
() => (f().includingFee || "including {fee} service fee").replace("{fee}", e.get(m))
|
|
326
|
+
]
|
|
327
|
+
), e.append(l, n);
|
|
328
|
+
}, De = (l) => {
|
|
329
|
+
var n = Gt(), v = e.child(n, !0);
|
|
330
|
+
e.reset(n), e.template_effect(() => e.set_text(v, f().free || "Free")), e.append(l, n);
|
|
331
|
+
}, le = (l) => {
|
|
332
|
+
var n = Vt(), v = e.first_child(n), q = e.child(v, !0);
|
|
333
|
+
e.reset(v);
|
|
334
|
+
var z = e.sibling(v, 2), R = e.child(z, !0);
|
|
335
|
+
e.reset(z);
|
|
336
|
+
var F = e.sibling(z, 2), V = e.child(F, !0);
|
|
337
|
+
e.reset(F), e.template_effect(
|
|
338
|
+
(B, re) => {
|
|
339
|
+
e.set_attribute(v, "aria-label", `Price ${e.get(x) ?? ""}`), e.set_text(q, e.get(x)), e.set_text(R, B), e.set_text(V, re);
|
|
340
|
+
},
|
|
341
|
+
[
|
|
342
|
+
() => (f().inclFee || "incl. {fee} fee").replace("{fee}", e.get(m)),
|
|
343
|
+
() => (f().includingFee || "including {fee} service fee").replace("{fee}", e.get(m))
|
|
344
|
+
]
|
|
345
|
+
), e.append(l, n);
|
|
346
|
+
};
|
|
347
|
+
e.if(Oe, (l) => {
|
|
348
|
+
e.get(J) ? l(Ge) : e.get(d) !== null ? l($e, 1) : e.get(se) === 0 ? l(De, 2) : l(le, !1);
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
e.reset(be);
|
|
352
|
+
var ze = e.sibling(be, 2);
|
|
353
|
+
{
|
|
354
|
+
var Ve = (l) => {
|
|
355
|
+
var n = Jt(), v = e.child(n);
|
|
356
|
+
{
|
|
357
|
+
var q = (F) => {
|
|
358
|
+
var V = Wt(), B = e.child(V, !0);
|
|
359
|
+
e.reset(V), e.template_effect(() => e.set_text(B, f().discountApplied || "Discount applied")), e.append(F, V);
|
|
360
|
+
};
|
|
361
|
+
e.if(v, (F) => {
|
|
362
|
+
N() && F(q);
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
var z = e.sibling(v, 2);
|
|
366
|
+
{
|
|
367
|
+
var R = (F) => {
|
|
368
|
+
var V = Zt(), B = e.child(V, !0);
|
|
369
|
+
e.reset(V), e.template_effect(() => e.set_text(B, f().unlocked || "Unlocked")), e.append(F, V);
|
|
370
|
+
};
|
|
371
|
+
e.if(z, (F) => {
|
|
372
|
+
ee() && F(R);
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
e.reset(n), e.append(l, n);
|
|
376
|
+
};
|
|
377
|
+
e.if(ze, (l) => {
|
|
378
|
+
(N() || ee()) && l(Ve);
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
var We = e.sibling(ze, 2);
|
|
382
|
+
{
|
|
383
|
+
var et = (l) => {
|
|
384
|
+
var n = Yt(), v = e.child(n, !0);
|
|
385
|
+
e.reset(n), e.template_effect(
|
|
386
|
+
(q) => {
|
|
387
|
+
e.set_attribute(n, "id", `ticket-desc-${q ?? ""}`), e.set_text(v, t.description);
|
|
388
|
+
},
|
|
389
|
+
[
|
|
390
|
+
() => t.title?.replace(/\s+/g, "-").toLowerCase() || "ticket"
|
|
391
|
+
]
|
|
392
|
+
), e.append(l, n);
|
|
393
|
+
};
|
|
394
|
+
e.if(We, (l) => {
|
|
395
|
+
t.description && l(et);
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
var Re = e.sibling(We, 2), Ze = e.child(Re);
|
|
399
|
+
{
|
|
400
|
+
var Je = (l) => {
|
|
401
|
+
var n = Xt(), v = e.child(n, !0);
|
|
402
|
+
e.reset(n), e.template_effect(() => {
|
|
403
|
+
e.set_class(n, 1, `badge ${e.get(ge).badgeClass ?? ""}`, "svelte-12zmutv"), e.set_attribute(n, "aria-label", `${(f().statusLabel || "Status:") ?? ""} ${e.get(ge).badge ?? ""}`), e.set_text(v, e.get(ge).badge);
|
|
404
|
+
}), e.append(l, n);
|
|
405
|
+
};
|
|
406
|
+
e.if(Ze, (l) => {
|
|
407
|
+
e.get(ge) && e.get(ge).badge && l(Je);
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
var Ye = e.sibling(Ze, 2);
|
|
411
|
+
{
|
|
412
|
+
var Xe = (l) => {
|
|
413
|
+
{
|
|
414
|
+
let n = e.derived(() => S() ?? 0);
|
|
415
|
+
_t(l, {
|
|
416
|
+
get remaining() {
|
|
417
|
+
return e.get(n);
|
|
418
|
+
},
|
|
419
|
+
get total() {
|
|
420
|
+
return e.get(u);
|
|
421
|
+
},
|
|
422
|
+
context: "ticket",
|
|
423
|
+
get labels() {
|
|
424
|
+
return f();
|
|
425
|
+
}
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
};
|
|
429
|
+
e.if(Ye, (l) => {
|
|
430
|
+
e.get(G) && l(Xe);
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
e.reset(Re);
|
|
434
|
+
var Ke = e.sibling(Re, 2);
|
|
435
|
+
{
|
|
436
|
+
var Le = (l) => {
|
|
437
|
+
const n = e.derived(() => ke(i()));
|
|
438
|
+
var v = Kt(), q = e.child(v);
|
|
439
|
+
e.reset(v), e.template_effect(() => e.set_text(q, `${(f().salesEndPrefix || "Sales end") ?? ""}
|
|
440
|
+
${e.get(n).text ?? ""}`)), e.append(l, v);
|
|
441
|
+
};
|
|
442
|
+
e.if(Ke, (l) => {
|
|
443
|
+
i() && s() !== "sales_ended" && s() !== "scheduled" && l(Le);
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
e.reset(Qe), e.reset(_e), e.template_effect(
|
|
447
|
+
(l, n, v) => {
|
|
448
|
+
Fe = e.set_class(_e, 1, `ticket-block rounded-lg border transition-all ${b() > 0 ? "shadow-sm" : ""}`, "svelte-12zmutv", Fe, {
|
|
449
|
+
selected: b() > 0,
|
|
450
|
+
"disabled-ticket": I() || s() === "scheduled" || s() === "sales_ended"
|
|
451
|
+
}), e.set_attribute(_e, "aria-label", `${l ?? ""}${(I() ? f().ticketSoldOutSuffix || ", sold out" : "") ?? ""}${(s() === "scheduled" ? f().ticketSalesNotStartedSuffix || ", sales not yet started" : "") ?? ""}${(s() === "sales_ended" ? f().ticketSalesEndedSuffix || ", sales ended" : "") ?? ""}`), e.set_attribute(Te, "id", `ticket-title-${n ?? ""}`), e.set_text(Ne, t.title), e.set_attribute(be, "id", `ticket-price-${v ?? ""}`);
|
|
452
|
+
},
|
|
453
|
+
[
|
|
454
|
+
() => (f().ticketAriaLabel || "{title} ticket").replace("{title}", t.title),
|
|
455
|
+
() => t.title?.replace(/\s+/g, "-").toLowerCase() || "ticket",
|
|
456
|
+
() => t.title?.replace(/\s+/g, "-").toLowerCase() || "ticket"
|
|
457
|
+
]
|
|
458
|
+
), e.append(ie, _e), e.pop();
|
|
459
|
+
}
|
|
460
|
+
var ta = e.from_html('<div class="rounded-lg overflow-hidden animate-pulse bg-surface-primary border-default" role="status" aria-busy="true"><span class="sr-only svelte-1hpsukj">Loading ticket...</span> <div class="px-3 py-2.5 rounded-t-lg border-t border-l border-r border-border" aria-hidden="true"><div class="skeleton h-4 w-2/3 mb-2"></div> <div class="skeleton h-3 w-1/2"></div></div> <div class="flex items-center gap-2" aria-hidden="true"><div class="border w-6 rounded-full h-6 -ml-3 -mt-0.5 bg-card border-border"></div> <hr class="skeleton-divider w-full my-3 svelte-1hpsukj"/> <div class="border w-6 rounded-full h-6 -mr-3 -mt-0.5 bg-card border-border"></div></div> <div class="flex justify-between items-center px-3 py-2.5 rounded-b-lg -mt-0.5 border-b border-l border-r border-border" aria-hidden="true"><div class="space-y-1"><div class="h-4 rounded w-16 bg-bg-tertiary"></div> <div class="h-3 rounded w-20 bg-muted"></div></div> <div class="flex items-center gap-2"><div class="w-10 h-10 rounded-md bg-bg-tertiary"></div> <div class="w-10 h-10 rounded-md bg-muted"></div> <div class="w-10 h-10 rounded-md bg-bg-tertiary"></div></div></div></div>');
|
|
461
|
+
function aa(ie, t) {
|
|
462
|
+
e.push(t, !0);
|
|
463
|
+
let Q = e.prop(t, "labels", 19, () => ({}));
|
|
464
|
+
var b = ta();
|
|
465
|
+
e.template_effect(() => e.set_attribute(b, "aria-label", Q().loadingTicketInfo || "Loading ticket information")), e.append(ie, b), e.pop();
|
|
466
|
+
}
|
|
467
|
+
var ra = e.from_html('<div class="empty-state flex flex-col items-center justify-center py-12 px-6 text-center" role="status"><div class="empty-state-icon text-muted-foreground mb-4" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z"></path><path d="M13 5v2"></path><path d="M13 17v2"></path><path d="M13 11v2"></path></svg></div> <h3 class="text-lg font-semibold text-text-primary mb-2"> </h3> <p class="text-sm text-text-secondary max-w-72"> </p></div>'), ia = e.from_html('<div class="section-header bg-bg-secondary px-5 py-3"><h2 class="text-text-primary text-md font-semibold"> </h2></div>'), sa = e.from_html('<div role="group"><!> <div role="list"><!></div></div>'), na = e.from_html("<section></section>");
|
|
468
|
+
function la(ie, t) {
|
|
469
|
+
e.push(t, !0);
|
|
470
|
+
let Q = e.prop(t, "venueFeesReady", 3, !1), b = e.prop(t, "tickets", 19, () => []), I = e.prop(t, "quantities", 19, () => ({})), s = e.prop(t, "donationAmounts", 19, () => ({})), h = e.prop(t, "revealHiddenTickets", 3, !1), i = e.prop(t, "revealTicketIds", 19, () => []), S = e.prop(
|
|
471
|
+
t,
|
|
472
|
+
"currentPromoRule",
|
|
473
|
+
3,
|
|
474
|
+
null
|
|
475
|
+
// Current applied promo code rule
|
|
476
|
+
), C = e.prop(t, "labels", 19, () => ({}));
|
|
477
|
+
function H(p) {
|
|
478
|
+
const x = /* @__PURE__ */ new Date(), m = p.salesBegin || p.salesStart || p.saleBegin || p.saleStart || p.onSaleStart, y = p.salesEnd || p.saleEnd || p.onSaleEnd;
|
|
479
|
+
return m && new Date(m) > x ? "scheduled" : y && new Date(y) < x ? "sales_ended" : "on_sale";
|
|
480
|
+
}
|
|
481
|
+
function oe(p) {
|
|
482
|
+
return p.salesBegin || p.salesStart || p.saleBegin || p.saleStart || p.onSaleStart || null;
|
|
483
|
+
}
|
|
484
|
+
const ee = e.derived(() => b().filter((p) => p.visibility === 0 || h() ? !0 : i()?.includes(p.ID)));
|
|
485
|
+
function N(p) {
|
|
486
|
+
const x = [], m = [];
|
|
487
|
+
for (const y of p) {
|
|
488
|
+
const X = H(y), d = y.minQuantity ?? 1, u = y.remainingCapacity, w = y.soldOut || u != null && d > u;
|
|
489
|
+
X === "on_sale" && !w ? x.push(y) : m.push(y);
|
|
490
|
+
}
|
|
491
|
+
return [...x, ...m];
|
|
492
|
+
}
|
|
493
|
+
function ce(p) {
|
|
494
|
+
const x = {};
|
|
495
|
+
for (const m of p) {
|
|
496
|
+
const y = m.TicketSection?.name || C().other || "Other";
|
|
497
|
+
x[y] || (x[y] = []), x[y].push(m);
|
|
498
|
+
}
|
|
499
|
+
for (const m of Object.keys(x))
|
|
500
|
+
x[m] = N(x[m]);
|
|
501
|
+
return x;
|
|
502
|
+
}
|
|
503
|
+
const U = e.derived(() => ce(e.get(ee))), f = e.derived(() => C().other || "Other"), J = e.derived(() => Object.keys(e.get(U)).filter((p) => p !== e.get(f)).length > 0);
|
|
504
|
+
var te = e.comment(), T = e.first_child(te);
|
|
505
|
+
{
|
|
506
|
+
var $ = (p) => {
|
|
507
|
+
var x = ra(), m = e.sibling(e.child(x), 2), y = e.child(m, !0);
|
|
508
|
+
e.reset(m);
|
|
509
|
+
var X = e.sibling(m, 2), d = e.child(X, !0);
|
|
510
|
+
e.reset(X), e.reset(x), e.template_effect(() => {
|
|
511
|
+
e.set_attribute(x, "aria-label", C().noTicketsAvailable || "No tickets available"), e.set_text(y, C().noTicketsAvailable || "No tickets available"), e.set_text(d, C().noTicketsAvailableDescription || "There are currently no tickets available for this event.");
|
|
512
|
+
}), e.append(p, x);
|
|
513
|
+
}, se = (p) => {
|
|
514
|
+
var x = na();
|
|
515
|
+
e.each(x, 21, () => Object.entries(e.get(U)), e.index, (m, y) => {
|
|
516
|
+
var X = e.derived(() => e.to_array(e.get(y), 2));
|
|
517
|
+
let d = () => e.get(X)[0], u = () => e.get(X)[1];
|
|
518
|
+
var w = sa(), k = e.child(w);
|
|
519
|
+
{
|
|
520
|
+
var D = (G) => {
|
|
521
|
+
var Y = ia(), ne = e.child(Y), ve = e.child(ne, !0);
|
|
522
|
+
e.reset(ne), e.reset(Y), e.template_effect(
|
|
523
|
+
(_) => {
|
|
524
|
+
e.set_attribute(ne, "id", `section-${_ ?? ""}`), e.set_text(ve, d());
|
|
525
|
+
},
|
|
526
|
+
[() => d().replace(/\s+/g, "-").toLowerCase()]
|
|
527
|
+
), e.append(G, Y);
|
|
528
|
+
};
|
|
529
|
+
e.if(k, (G) => {
|
|
530
|
+
e.get(J) && d() !== e.get(f) && G(D);
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
var L = e.sibling(k, 2), me = e.child(L);
|
|
534
|
+
{
|
|
535
|
+
var ue = (G) => {
|
|
536
|
+
var Y = e.comment(), ne = e.first_child(Y);
|
|
537
|
+
e.each(ne, 17, u, e.index, (ve, _) => {
|
|
538
|
+
const qe = e.derived(() => e.get(_).visibility >= 2 && h() || i().includes(e.get(_).ID)), ke = e.derived(() => S()?.discountTicketIds || []), ge = e.derived(() => e.get(ke).length === 0 || e.get(ke).includes(e.get(_).ID)), _e = e.derived(() => S()?.provideDiscount && e.get(ge) && (S()?.discountType === "%" || S()?.discountType === "$")), Fe = e.derived(() => (() => {
|
|
539
|
+
if (!e.get(_e)) return null;
|
|
540
|
+
const Se = parseFloat(e.get(_).price) || 0, we = parseFloat(S()?.amount || "0") || 0;
|
|
541
|
+
return S().discountType === "%" ? (Se * (1 - we / 100)).toFixed(2) : S().discountType === "$" ? Math.max(
|
|
542
|
+
0,
|
|
543
|
+
Se - Ce(we)
|
|
544
|
+
/* FIXME(canonical-cleanup:toFixed): heuristic guess — verify this is USD (not cents); when migrating to TS, add `as USD` brand cast at the API-response-transform layer. */
|
|
545
|
+
) : null;
|
|
546
|
+
})()), Ee = e.derived(() => H(e.get(_))), Be = e.derived(() => oe(e.get(_))), Ae = e.derived(() => e.get(_).minQuantity ?? 1), Te = e.derived(() => e.get(_).remainingCapacity), Ne = e.derived(() => e.get(_).soldOut || e.get(Te) !== null && e.get(Te) !== void 0 && e.get(Ae) > e.get(Te)), Pe = e.derived(() => e.get(_).type ?? 0);
|
|
547
|
+
e.derived(() => e.get(Pe) === 2);
|
|
548
|
+
{
|
|
549
|
+
let Se = e.derived(() => I()[e.get(_).ID] ?? 0), we = e.derived(() => e.get(_).totalCapacity ?? e.get(_).quantity ?? e.get(_).remainingCapacity), Me = e.derived(() => e.get(_).minQuantity ?? 1), Qe = e.derived(() => e.get(_).maxQuantity ?? null), be = e.derived(() => s()[e.get(_).ID] ?? "");
|
|
550
|
+
ea(ve, {
|
|
551
|
+
get labels() {
|
|
552
|
+
return C();
|
|
553
|
+
},
|
|
554
|
+
get title() {
|
|
555
|
+
return e.get(_).name;
|
|
556
|
+
},
|
|
557
|
+
get description() {
|
|
558
|
+
return e.get(_).description;
|
|
559
|
+
},
|
|
560
|
+
get price() {
|
|
561
|
+
return e.get(_).price;
|
|
562
|
+
},
|
|
563
|
+
get discountedPrice() {
|
|
564
|
+
return e.get(Fe);
|
|
565
|
+
},
|
|
566
|
+
get quantity() {
|
|
567
|
+
return e.get(Se);
|
|
568
|
+
},
|
|
569
|
+
get soldOut() {
|
|
570
|
+
return e.get(Ne);
|
|
571
|
+
},
|
|
572
|
+
get status() {
|
|
573
|
+
return e.get(Ee);
|
|
574
|
+
},
|
|
575
|
+
get salesBegin() {
|
|
576
|
+
return e.get(Be);
|
|
577
|
+
},
|
|
578
|
+
get salesEnd() {
|
|
579
|
+
return e.get(_).salesEnd;
|
|
580
|
+
},
|
|
581
|
+
get remainingCapacity() {
|
|
582
|
+
return e.get(_).remainingCapacity;
|
|
583
|
+
},
|
|
584
|
+
get totalCapacity() {
|
|
585
|
+
return e.get(we);
|
|
586
|
+
},
|
|
587
|
+
get minQuantity() {
|
|
588
|
+
return e.get(Me);
|
|
589
|
+
},
|
|
590
|
+
get maxQuantity() {
|
|
591
|
+
return e.get(Qe);
|
|
592
|
+
},
|
|
593
|
+
get isRevealed() {
|
|
594
|
+
return e.get(qe);
|
|
595
|
+
},
|
|
596
|
+
get isDiscounted() {
|
|
597
|
+
return e.get(_e);
|
|
598
|
+
},
|
|
599
|
+
get ticketType() {
|
|
600
|
+
return e.get(Pe);
|
|
601
|
+
},
|
|
602
|
+
get donationAmount() {
|
|
603
|
+
return e.get(be);
|
|
604
|
+
},
|
|
605
|
+
onincrement: () => t.handleQuantityChange(e.get(_).ID, 1),
|
|
606
|
+
ondecrement: () => t.handleQuantityChange(e.get(_).ID, -1),
|
|
607
|
+
ondonationchange: (Oe) => t.handleDonationChange?.(e.get(_).ID, Oe)
|
|
608
|
+
});
|
|
609
|
+
}
|
|
610
|
+
}), e.append(G, Y);
|
|
611
|
+
}, ye = (G) => {
|
|
612
|
+
var Y = e.comment(), ne = e.first_child(Y);
|
|
613
|
+
e.each(ne, 16, () => Array(2), e.index, (ve, _) => {
|
|
614
|
+
aa(ve, {});
|
|
615
|
+
}), e.append(G, Y);
|
|
616
|
+
};
|
|
617
|
+
e.if(me, (G) => {
|
|
618
|
+
Q() ? G(ue) : G(ye, !1);
|
|
619
|
+
});
|
|
620
|
+
}
|
|
621
|
+
e.reset(L), e.reset(w), e.template_effect(
|
|
622
|
+
(G, Y) => {
|
|
623
|
+
e.set_class(w, 1, e.clsx(e.get(J) && d() !== e.get(f) ? "ticket-section-group border border-border rounded-lg overflow-hidden" : "")), e.set_attribute(w, "aria-labelledby", G), e.set_class(L, 1, `space-y-4 ${e.get(J) && d() !== e.get(f) ? "p-4" : ""}`), e.set_attribute(L, "aria-label", Y);
|
|
624
|
+
},
|
|
625
|
+
[
|
|
626
|
+
() => e.get(J) && d() !== e.get(f) ? `section-${d().replace(/\s+/g, "-").toLowerCase()}` : void 0,
|
|
627
|
+
() => (C().ticketsInSection || "Tickets in {section}").replace("{section}", d())
|
|
628
|
+
]
|
|
629
|
+
), e.append(m, w);
|
|
630
|
+
}), e.reset(x), e.template_effect(() => e.set_attribute(x, "aria-label", C().availableTickets || "Available tickets")), e.append(p, x);
|
|
631
|
+
};
|
|
632
|
+
e.if(T, (p) => {
|
|
633
|
+
Q() && e.get(ee).length === 0 ? p($) : p(se, !1);
|
|
634
|
+
});
|
|
635
|
+
}
|
|
636
|
+
e.append(ie, te), e.pop();
|
|
637
|
+
}
|
|
638
|
+
const oa = gt("PromocodeInput");
|
|
639
|
+
var da = e.from_html('<p id="promo-hint" class="promo-message success mt-2 body-sm text-accent-success" role="status" aria-live="polite"> </p>'), ca = e.from_html('<p id="promo-error" class="sr-only svelte-ztoygy" role="alert"> </p>'), ua = e.from_html('<div class="promo-section p-4 md:p-5" role="group" aria-labelledby="promo-label"><span id="promo-label" class="sr-only svelte-ztoygy"> </span> <div class="promo-input-wrapper flex gap-2 items-start"><div class="flex-1"><!></div> <!></div> <!> <!></div>');
|
|
640
|
+
function va(ie, t) {
|
|
641
|
+
e.push(t, !0);
|
|
642
|
+
let Q = e.prop(t, "eventID", 3, ""), b = e.prop(t, "labels", 19, () => ({})), I = e.state(""), s = e.state(!1), h = e.state(""), i = e.state(""), S = e.state(!1), C = e.state(!1);
|
|
643
|
+
const H = async () => {
|
|
644
|
+
const d = e.get(I).trim().toUpperCase();
|
|
645
|
+
if (e.set(h, ""), e.set(i, ""), e.set(S, !1), !d) {
|
|
646
|
+
e.set(h, b().pleaseEnterPromoCode || "Please enter a promo code.", !0), e.set(s, !0);
|
|
647
|
+
return;
|
|
648
|
+
}
|
|
649
|
+
e.set(C, !0);
|
|
650
|
+
try {
|
|
651
|
+
const u = await bt(Q(), d);
|
|
652
|
+
if (u.valid) {
|
|
653
|
+
e.set(S, !0);
|
|
654
|
+
let w = 0;
|
|
655
|
+
const k = [];
|
|
656
|
+
if (u.revealHiddenTickets && k.push(b().hiddenTicketsVisible || "Hidden tickets are now visible."), u.provideDiscount) {
|
|
657
|
+
const D = parseFloat(u.amount || "0") || 0;
|
|
658
|
+
w = D, u.discountType === "$" ? k.push((b().dollarDiscountAvailable || "A ${amount} discount is available.").replace("{amount}", Ce(
|
|
659
|
+
D
|
|
660
|
+
/* FIXME(canonical-cleanup:toFixed): heuristic guess — verify this is USD (not cents); when migrating to TS, add `as USD` brand cast at the API-response-transform layer. */
|
|
661
|
+
))) : u.discountType === "%" && k.push((b().percentDiscountAvailable || "A {amount}% discount is available.").replace("{amount}", String(D)));
|
|
662
|
+
}
|
|
663
|
+
e.set(
|
|
664
|
+
i,
|
|
665
|
+
k.length > 0 ? `${(b().promoApplied || "{code} applied.").replace("{code}", d)} ${k.join(" ")}` : (b().promoApplied || "{code} applied.").replace("{code}", d),
|
|
666
|
+
!0
|
|
667
|
+
), He(`checkout-promocode-${Q()}`, d, 1), He("checkout-promo-discount", w.toString(), 1), He(`checkout-promo-reveal-${Q()}`, u.revealHiddenTickets ? "1" : "0", 1), He(`checkout-promo-reveal-ids-${Q()}`, JSON.stringify(u.revealTicketIds || []), 1), He(`checkout-promo-discount-type-${Q()}`, u.discountType || "", 1), t.onpromoChange?.({
|
|
668
|
+
code: d,
|
|
669
|
+
error: "",
|
|
670
|
+
hint: e.get(i),
|
|
671
|
+
discount: w,
|
|
672
|
+
provideDiscount: u.provideDiscount || !1,
|
|
673
|
+
discountType: u.discountType || "",
|
|
674
|
+
discountTicketIds: u.discountTicketIds || [],
|
|
675
|
+
// Which tickets the discount applies to
|
|
676
|
+
revealHiddenTickets: u.revealHiddenTickets || !1,
|
|
677
|
+
revealTicketIds: u.revealTicketIds || [],
|
|
678
|
+
isApplied: !0
|
|
679
|
+
});
|
|
680
|
+
} else
|
|
681
|
+
e.set(h, b().invalidOrExpiredPromoCode || "Invalid or expired promo code.", !0), e.set(s, !0), t.onpromoChange?.({
|
|
682
|
+
code: d,
|
|
683
|
+
error: e.get(h),
|
|
684
|
+
hint: "",
|
|
685
|
+
discount: 0,
|
|
686
|
+
provideDiscount: !1,
|
|
687
|
+
discountType: "",
|
|
688
|
+
discountTicketIds: [],
|
|
689
|
+
revealHiddenTickets: !1,
|
|
690
|
+
revealTicketIds: [],
|
|
691
|
+
isApplied: !1
|
|
692
|
+
});
|
|
693
|
+
} catch (u) {
|
|
694
|
+
oa.error("Error validating promo code:", u), e.set(h, b().unableToValidatePromoCode || "Unable to validate promo code. Please try again.", !0), e.set(s, !0);
|
|
695
|
+
} finally {
|
|
696
|
+
e.set(C, !1);
|
|
697
|
+
}
|
|
698
|
+
}, oe = () => {
|
|
699
|
+
e.set(I, ""), e.set(h, ""), e.set(i, ""), e.set(S, !1), e.set(s, !1), document.cookie = `checkout-promocode-${Q()}=; Max-Age=0; path=/`, document.cookie = "checkout-promo-discount=; Max-Age=0; path=/", document.cookie = `checkout-promo-reveal-${Q()}=; Max-Age=0; path=/`, document.cookie = `checkout-promo-reveal-ids-${Q()}=; Max-Age=0; path=/`, document.cookie = `checkout-promo-discount-type-${Q()}=; Max-Age=0; path=/`, t.onpromoChange?.({
|
|
700
|
+
code: "",
|
|
701
|
+
error: "",
|
|
702
|
+
hint: "",
|
|
703
|
+
discount: 0,
|
|
704
|
+
provideDiscount: !1,
|
|
705
|
+
discountType: "",
|
|
706
|
+
discountTicketIds: [],
|
|
707
|
+
revealHiddenTickets: !1,
|
|
708
|
+
revealTicketIds: [],
|
|
709
|
+
isApplied: !1
|
|
710
|
+
});
|
|
711
|
+
}, ee = (d) => {
|
|
712
|
+
e.set(I, d.target.value, !0), e.get(h) && e.set(h, "");
|
|
713
|
+
}, N = (d) => {
|
|
714
|
+
d.key === "Enter" && (d.preventDefault(), H());
|
|
715
|
+
};
|
|
716
|
+
ft(() => {
|
|
717
|
+
const d = Ue(`checkout-promocode-${Q()}`);
|
|
718
|
+
d && (e.set(I, d, !0), H());
|
|
719
|
+
});
|
|
720
|
+
var ce = ua(), U = e.child(ce), f = e.child(U, !0);
|
|
721
|
+
e.reset(U);
|
|
722
|
+
var J = e.sibling(U, 2), te = e.child(J), T = e.child(te);
|
|
723
|
+
{
|
|
724
|
+
let d = e.derived(() => b().promoCode || "Promo code"), u = e.derived(() => e.get(S) || e.get(C)), w = e.derived(() => e.get(s) ? e.get(h) : ""), k = e.derived(() => e.get(i) ? "promo-hint" : e.get(h) ? "promo-error" : void 0);
|
|
725
|
+
vt(T, {
|
|
726
|
+
get label() {
|
|
727
|
+
return e.get(d);
|
|
728
|
+
},
|
|
729
|
+
size: "full",
|
|
730
|
+
type: "text",
|
|
731
|
+
oninput: ee,
|
|
732
|
+
onkeydown: N,
|
|
733
|
+
onblur: () => e.set(s, !0),
|
|
734
|
+
get disabled() {
|
|
735
|
+
return e.get(u);
|
|
736
|
+
},
|
|
737
|
+
get displayErrorText() {
|
|
738
|
+
return e.get(w);
|
|
739
|
+
},
|
|
740
|
+
get touched() {
|
|
741
|
+
return e.get(s);
|
|
742
|
+
},
|
|
743
|
+
get "aria-describedby"() {
|
|
744
|
+
return e.get(k);
|
|
745
|
+
},
|
|
746
|
+
get value() {
|
|
747
|
+
return e.get(I);
|
|
748
|
+
},
|
|
749
|
+
set value(D) {
|
|
750
|
+
e.set(I, D, !0);
|
|
751
|
+
}
|
|
752
|
+
});
|
|
753
|
+
}
|
|
754
|
+
e.reset(te);
|
|
755
|
+
var $ = e.sibling(te, 2);
|
|
756
|
+
{
|
|
757
|
+
var se = (d) => {
|
|
758
|
+
{
|
|
759
|
+
let u = e.derived(() => b().removePromoCode || "Remove promo code"), w = e.derived(() => e.get(I));
|
|
760
|
+
Ie(d, {
|
|
761
|
+
strokebtn: !0,
|
|
762
|
+
onclick: oe,
|
|
763
|
+
class: "h-10 self-start mt-5",
|
|
764
|
+
get "aria-label"() {
|
|
765
|
+
return `${e.get(u) ?? ""} ${e.get(w) ?? ""}`;
|
|
766
|
+
},
|
|
767
|
+
children: (k, D) => {
|
|
768
|
+
e.next();
|
|
769
|
+
var L = e.text();
|
|
770
|
+
e.template_effect(() => e.set_text(L, b().remove || "Remove")), e.append(k, L);
|
|
771
|
+
},
|
|
772
|
+
$$slots: { default: !0 }
|
|
773
|
+
});
|
|
774
|
+
}
|
|
775
|
+
}, p = (d) => {
|
|
776
|
+
{
|
|
777
|
+
let u = e.derived(() => e.get(C) ? b().checkingPromoCode || "Checking promo code" : b().applyPromoCode || "Apply promo code");
|
|
778
|
+
Ie(d, {
|
|
779
|
+
onclick: H,
|
|
780
|
+
get disabled() {
|
|
781
|
+
return e.get(C);
|
|
782
|
+
},
|
|
783
|
+
class: "h-10 self-start mt-5",
|
|
784
|
+
get "aria-label"() {
|
|
785
|
+
return e.get(u);
|
|
786
|
+
},
|
|
787
|
+
children: (w, k) => {
|
|
788
|
+
e.next();
|
|
789
|
+
var D = e.text();
|
|
790
|
+
e.template_effect(() => e.set_text(D, e.get(C) ? b().checking || "Checking..." : b().apply || "Apply")), e.append(w, D);
|
|
791
|
+
},
|
|
792
|
+
$$slots: { default: !0 }
|
|
793
|
+
});
|
|
794
|
+
}
|
|
795
|
+
};
|
|
796
|
+
e.if($, (d) => {
|
|
797
|
+
e.get(S) ? d(se) : d(p, !1);
|
|
798
|
+
});
|
|
799
|
+
}
|
|
800
|
+
e.reset(J);
|
|
801
|
+
var x = e.sibling(J, 2);
|
|
802
|
+
{
|
|
803
|
+
var m = (d) => {
|
|
804
|
+
var u = da(), w = e.child(u, !0);
|
|
805
|
+
e.reset(u), e.template_effect(() => e.set_text(w, e.get(i))), e.append(d, u);
|
|
806
|
+
};
|
|
807
|
+
e.if(x, (d) => {
|
|
808
|
+
e.get(i) && d(m);
|
|
809
|
+
});
|
|
810
|
+
}
|
|
811
|
+
var y = e.sibling(x, 2);
|
|
812
|
+
{
|
|
813
|
+
var X = (d) => {
|
|
814
|
+
var u = ca(), w = e.child(u, !0);
|
|
815
|
+
e.reset(u), e.template_effect(() => e.set_text(w, e.get(h))), e.append(d, u);
|
|
816
|
+
};
|
|
817
|
+
e.if(y, (d) => {
|
|
818
|
+
e.get(h) && e.get(s) && d(X);
|
|
819
|
+
});
|
|
820
|
+
}
|
|
821
|
+
e.reset(ce), e.template_effect(() => e.set_text(f, b().promoCodeEntry || "Promo code entry")), e.append(ie, ce), e.pop();
|
|
822
|
+
}
|
|
823
|
+
var ga = e.from_html('<div class="w-14 h-14 shrink-0 rounded-md overflow-hidden bg-bg-secondary" aria-hidden="true"><img alt="" class="w-full h-full object-contain"/></div>'), fa = e.from_html("<p> </p>"), pa = e.from_html('<div class="flex-row-2 shrink-0"><span class="price-md"> </span> <button type="button" class="sc-btn-icon btn-icon-ghost w-7 h-7"><!></button></div>'), ma = e.from_html('<header class="flex items-center gap-3 px-4 md:px-5 py-4 border-b border-border"><button type="button" class="p-2 -ml-2 rounded-full transition-colors shrink-0 text-text-secondary hover:bg-bg-secondary"><!></button> <!> <div class="flex-1 min-w-0"><h1 class="heading-lg break-words"> </h1> <div class="body-sm text-text-secondary"><p><time> </time></p> <p> </p> <!></div></div> <!></header>');
|
|
824
|
+
function ha(ie, t) {
|
|
825
|
+
e.push(t, !0);
|
|
826
|
+
let Q = e.prop(t, "variant", 3, "tickets"), b = e.prop(t, "total", 3, 0), I = e.prop(t, "onCancel", 3, () => {
|
|
827
|
+
}), s = e.prop(t, "onInfoClick", 3, () => {
|
|
828
|
+
}), h = e.prop(t, "labels", 19, () => ({})), i = e.derived(() => t.event.timeZone || xt()), S = e.derived(() => t.event.displayEndTime === !0), C = e.derived(() => t.event.displayDoorsTime === !0), H = e.derived(() => Q() === "checkout"), oe = e.derived(() => b() > 0 ? `${Ce(b())}` : (
|
|
829
|
+
/* FIXME(canonical-cleanup:toFixed): heuristic guess — verify this is USD (not cents); when migrating to TS, add `as USD` brand cast at the API-response-transform layer. */
|
|
830
|
+
h().free || "Free"
|
|
831
|
+
));
|
|
832
|
+
var ee = ma(), N = e.child(ee), ce = e.child(N);
|
|
833
|
+
yt(ce, { size: 20, "aria-hidden": "true" }), e.reset(N);
|
|
834
|
+
var U = e.sibling(N, 2);
|
|
835
|
+
{
|
|
836
|
+
var f = (k) => {
|
|
837
|
+
var D = ga(), L = e.child(D);
|
|
838
|
+
e.reset(D), e.template_effect(() => e.set_attribute(L, "src", t.event.image)), e.append(k, D);
|
|
839
|
+
};
|
|
840
|
+
e.if(U, (k) => {
|
|
841
|
+
t.event.image && k(f);
|
|
842
|
+
});
|
|
843
|
+
}
|
|
844
|
+
var J = e.sibling(U, 2), te = e.child(J), T = e.child(te, !0);
|
|
845
|
+
e.reset(te);
|
|
846
|
+
var $ = e.sibling(te, 2), se = e.child($), p = e.child(se), x = e.child(p, !0);
|
|
847
|
+
e.reset(p), e.reset(se);
|
|
848
|
+
var m = e.sibling(se, 2), y = e.child(m, !0);
|
|
849
|
+
e.reset(m);
|
|
850
|
+
var X = e.sibling(m, 2);
|
|
851
|
+
{
|
|
852
|
+
var d = (k) => {
|
|
853
|
+
var D = fa(), L = e.child(D, !0);
|
|
854
|
+
e.reset(D), e.template_effect((me) => e.set_text(L, me), [
|
|
855
|
+
() => (h().doorsOpen || "Doors open {time}").replace("{time}", Dt(t.event.doorsOpenTime, e.get(i)))
|
|
856
|
+
]), e.append(k, D);
|
|
857
|
+
};
|
|
858
|
+
e.if(X, (k) => {
|
|
859
|
+
e.get(C) && t.event.doorsOpenTime && k(d);
|
|
860
|
+
});
|
|
861
|
+
}
|
|
862
|
+
e.reset($), e.reset(J);
|
|
863
|
+
var u = e.sibling(J, 2);
|
|
864
|
+
{
|
|
865
|
+
var w = (k) => {
|
|
866
|
+
var D = pa(), L = e.child(D), me = e.child(L, !0);
|
|
867
|
+
e.reset(L);
|
|
868
|
+
var ue = e.sibling(L, 2), ye = e.child(ue);
|
|
869
|
+
It(ye, { size: 18, "aria-hidden": "true" }), e.reset(ue), e.reset(D), e.template_effect(
|
|
870
|
+
(G) => {
|
|
871
|
+
e.set_attribute(L, "aria-label", G), e.set_text(me, e.get(oe)), e.set_attribute(ue, "aria-label", h().viewOrderDetails || "View order details");
|
|
872
|
+
},
|
|
873
|
+
[
|
|
874
|
+
() => (h().ariaOrderTotal || "Order total: {total}").replace("{total}", e.get(oe))
|
|
875
|
+
]
|
|
876
|
+
), e.delegated("click", ue, function(...G) {
|
|
877
|
+
s()?.apply(this, G);
|
|
878
|
+
}), e.append(k, D);
|
|
879
|
+
};
|
|
880
|
+
e.if(u, (k) => {
|
|
881
|
+
e.get(H) && k(w);
|
|
882
|
+
});
|
|
883
|
+
}
|
|
884
|
+
e.reset(ee), e.template_effect(
|
|
885
|
+
(k, D) => {
|
|
886
|
+
e.set_attribute(N, "aria-label", e.get(H) ? h().goBackToTicketSelection || "Go back to ticket selection" : h().goBackToEventDetails || "Go back to event details"), e.set_text(T, t.event.name), e.set_attribute($, "aria-label", h().ariaEventDateTime || "Event date and time"), e.set_attribute(p, "datetime", t.event.startDateTime), e.set_text(x, k), e.set_text(y, D);
|
|
887
|
+
},
|
|
888
|
+
[
|
|
889
|
+
() => kt(t.event.startDateTime, e.get(i)),
|
|
890
|
+
() => e.get(S) && t.event.endDateTime ? Tt(t.event.startDateTime, t.event.endDateTime, e.get(i)) : wt(t.event.startDateTime, e.get(i))
|
|
891
|
+
]
|
|
892
|
+
), e.delegated("click", N, function(...k) {
|
|
893
|
+
I()?.apply(this, k);
|
|
894
|
+
}), e.append(ie, ee), e.pop();
|
|
895
|
+
}
|
|
896
|
+
e.delegate(["click"]);
|
|
897
|
+
const xe = gt("CartView");
|
|
898
|
+
var _a = e.from_html('<div class="flex items-center justify-center py-12" role="status" aria-live="polite"><p class="text-text-secondary"> </p></div>'), ba = e.from_html('<div class="text-center py-8" role="alert"><p class="text-accent-danger mb-2"> </p> <button class="go-back-btn text-white mt-4 px-4 py-2 rounded-lg svelte-19g9ni4"> </button></div>'), xa = e.from_html('<div class="text-center py-12" role="alert"><p class="text-xl font-semibold text-text-primary mb-2"> </p> <p class="text-text-secondary mb-6"> </p> <button class="go-back-btn text-white px-4 py-2 rounded-lg svelte-19g9ni4"> </button></div>'), ya = e.from_html('<div class="text-center py-12" role="alert"><p class="text-xl font-semibold text-text-primary mb-2">This event has ended</p> <p class="text-text-secondary mb-6">Tickets are no longer available for this event.</p> <button class="go-back-btn px-4 py-2 rounded-lg svelte-19g9ni4" aria-label="Go back to event details">Go back</button></div>'), ka = e.from_html('<div class="px-4 md:px-5 pt-3"><!></div>'), Ta = e.from_html('<div class="px-4 md:px-5 pt-3"><!></div>'), wa = e.from_html('<div class="hidden md:block w-80 h-[calc(100vh-40px)]"></div>'), Da = e.from_html('<div class="w-full flex md:gap-5 flex-wrap"><div class="flex-1 pb-16 md:pb-0"><div class="bg-card border-border rounded-lg md:shadow md:border py-3"><!> <!> <!> <div class="space-y-4 md:px-5"><!></div></div></div> <!> <div><!></div></div>'), Ia = e.from_html('<h3 id="error-modal-title" class="heading-lg"><!></h3>'), Sa = e.from_html('<p class="body-sm"> </p> <p class="text-text-secondary mt-2"> </p>', 1), Ca = e.from_html('<p class="body-sm"> </p> <p class="text-text-secondary mt-2"> </p>', 1), Ea = e.from_html('<div id="error-modal-description"><!></div>'), Aa = e.from_html("<!> <!>", 1), Pa = e.from_html('<div role="group" aria-label="Error modal actions"><!></div>'), Ma = e.from_html('<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/50" role="alertdialog" aria-labelledby="expired-modal-title" aria-describedby="expired-modal-description"><div class="bg-card rounded-xl shadow-lg p-6 max-w-sm mx-4 text-center"><h3 id="expired-modal-title" class="text-lg font-semibold text-text-primary mb-2"> </h3> <p id="expired-modal-description" class="text-text-secondary text-sm mb-6"> </p> <button class="px-6 py-2.5 bg-brand-primary text-white rounded-lg font-medium hover:opacity-90 transition-opacity"> </button></div></div>'), Oa = e.from_html('<h3 id="availability-modal-title" class="heading-lg"> </h3>'), Fa = e.from_html('<li class="text-text-secondary text-sm"><span class="font-medium"> </span> <!></li>'), Ba = e.from_html('<p class="text-text-secondary mt-4"> </p>'), Qa = e.from_html('<p class="text-text-secondary mt-4"> </p>'), La = e.from_html('<div id="availability-modal-description"><p class="text-text-secondary mb-4"> </p> <ul class="space-y-2"></ul> <!></div>'), qa = e.from_html('<div role="group" aria-label="Availability modal actions"><!> <!></div>'), Na = e.from_html('<div class="px-5 md:px-10 py-12 bg-card"><!></div> <!> <!> <!>', 1);
|
|
899
|
+
function Ja(ie, t) {
|
|
900
|
+
e.push(t, !0);
|
|
901
|
+
let Q = e.prop(t, "organizationId", 3, ""), b = e.prop(t, "venueId", 3, ""), I = e.prop(t, "initialEventData", 3, null), s = e.prop(t, "labels", 19, () => ({})), h = e.state(!1), i = e.state(null), S = e.state(null), C = e.state(e.proxy([])), H = e.state(!1), oe = e.state(!0), ee = e.state(null), N = e.state(!1), ce = e.state(!1), U = e.state(!1), f = e.state(0), J = e.state(void 0), te = e.state(void 0), T = e.state(e.proxy({})), $ = e.state(""), se = e.state(""), p = e.state(0), x = e.state(!1), m = e.state(0), y = e.state(!1), X = null, d = e.state(!1), u = e.state(!1), w = e.state(
|
|
902
|
+
"cart_failed"
|
|
903
|
+
// 'cart_failed' | 'cart_success_network_error'
|
|
904
|
+
), k = e.state(!1), D = e.state(!1), L = e.state(e.proxy(
|
|
905
|
+
[]
|
|
906
|
+
// Array of {ticketId, ticketName, requestedQty, availableQty}
|
|
907
|
+
)), me = e.state(0), ue = e.state(0), ye = e.derived(() => e.get(Ze) ? 0 : it(Object.entries(e.get(T)).reduce(
|
|
908
|
+
(a, [r, o]) => {
|
|
909
|
+
const g = e.get(i)?.availableTickets?.find((c) => c.ID == r);
|
|
910
|
+
return g ? a + it(o * g.price) : a;
|
|
911
|
+
},
|
|
912
|
+
0
|
|
913
|
+
))), G = e.state(0), Y = e.state(0), ne = e.state(0), ve = e.state(!1), _ = null, qe = e.derived(() => it(e.get(ye) + e.get(G) + e.get(Y))), ke = !1, ge = !1;
|
|
914
|
+
function _e(a, r) {
|
|
915
|
+
e.set(
|
|
916
|
+
T,
|
|
917
|
+
{
|
|
918
|
+
...e.get(T),
|
|
919
|
+
[a]: Math.max(0, (e.get(T)[a] ?? 0) + r)
|
|
920
|
+
},
|
|
921
|
+
!0
|
|
922
|
+
), e.get(i) && dt({
|
|
923
|
+
eventID: e.get(i).eventID,
|
|
924
|
+
quantities: e.get(T),
|
|
925
|
+
promocode: e.get($),
|
|
926
|
+
tickets: e.get(i).availableTickets
|
|
927
|
+
}), Object.values(e.get(T)).reduce((g, c) => g + c, 0) > 0 && !e.get(y) && !ke && Fe();
|
|
928
|
+
}
|
|
929
|
+
async function Fe() {
|
|
930
|
+
if (!(ke || e.get(y))) {
|
|
931
|
+
ke = !0;
|
|
932
|
+
try {
|
|
933
|
+
const a = await ct({
|
|
934
|
+
eventID: e.get(i).eventID,
|
|
935
|
+
quantities: e.get(T),
|
|
936
|
+
promoCode: e.get($) || void 0
|
|
937
|
+
});
|
|
938
|
+
a?.success && a.uuid && (ge = !0, Ve());
|
|
939
|
+
} catch (a) {
|
|
940
|
+
xe.error("Error creating cart on ticket select:", a);
|
|
941
|
+
} finally {
|
|
942
|
+
ke = !1;
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
function Ee() {
|
|
947
|
+
if (!e.get(i)?.availableTickets) return;
|
|
948
|
+
const r = e.get(i).availableTickets.filter((o) => o.visibility === 0).map((o) => parseFloat(o.price) || 0);
|
|
949
|
+
if (r.length === 0) {
|
|
950
|
+
e.set(me, e.set(ue, 0), !0);
|
|
951
|
+
return;
|
|
952
|
+
}
|
|
953
|
+
e.set(me, Ce(
|
|
954
|
+
Math.min(...r)
|
|
955
|
+
/* FIXME(canonical-cleanup:toFixed): heuristic guess — verify this is USD (not cents); when migrating to TS, add `as USD` brand cast at the API-response-transform layer. */
|
|
956
|
+
), !0), e.set(ue, Ce(
|
|
957
|
+
Math.max(...r)
|
|
958
|
+
/* FIXME(canonical-cleanup:toFixed): heuristic guess — verify this is USD (not cents); when migrating to TS, add `as USD` brand cast at the API-response-transform layer. */
|
|
959
|
+
), !0);
|
|
960
|
+
}
|
|
961
|
+
async function Be() {
|
|
962
|
+
const a = [];
|
|
963
|
+
for (const [r, o] of Object.entries(e.get(T))) {
|
|
964
|
+
if (o <= 0) continue;
|
|
965
|
+
const g = e.get(i)?.availableTickets?.find((c) => c.ID == r);
|
|
966
|
+
!g || g.price === 0 || a.push({
|
|
967
|
+
amountCents: Math.round(g.price * 100) * o,
|
|
968
|
+
reference: `ticket-${r}`,
|
|
969
|
+
quantity: o
|
|
970
|
+
});
|
|
971
|
+
}
|
|
972
|
+
if (a.length === 0) {
|
|
973
|
+
e.set(ne, 0), e.set(Y, 0), e.set(ve, !1);
|
|
974
|
+
return;
|
|
975
|
+
}
|
|
976
|
+
_ && _.abort(), _ = new AbortController(), e.set(ve, !0);
|
|
977
|
+
try {
|
|
978
|
+
const r = await fetch("https://get-micdrop.com/api/v2/public/tax-preview", {
|
|
979
|
+
method: "POST",
|
|
980
|
+
headers: { "Content-Type": "application/json" },
|
|
981
|
+
signal: _.signal,
|
|
982
|
+
body: JSON.stringify({ venueId: Number(e.get(i).venueID), lineItems: a })
|
|
983
|
+
});
|
|
984
|
+
if (!r.ok) {
|
|
985
|
+
xe.error("Tax preview failed:", r.status), e.set(ne, 0), e.set(Y, 0), e.set(ve, !1);
|
|
986
|
+
return;
|
|
987
|
+
}
|
|
988
|
+
const o = await r.json();
|
|
989
|
+
e.set(ne, (o.taxTotal ?? 0) / 100), e.set(Y, e.get(ne), !0);
|
|
990
|
+
} catch (r) {
|
|
991
|
+
if (r.name === "AbortError") return;
|
|
992
|
+
xe.error("Tax preview error:", r), e.set(ne, 0), e.set(Y, 0);
|
|
993
|
+
} finally {
|
|
994
|
+
_?.signal?.aborted || e.set(ve, !1);
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
function Ae() {
|
|
998
|
+
if (!e.get(i)) return;
|
|
999
|
+
e.set($, Ue(`checkout-promocode-${e.get(i).eventID}`) || "", !0);
|
|
1000
|
+
const a = parseFloat(Ue("checkout-promo-discount") || 0);
|
|
1001
|
+
e.set(se, e.get($) ? `${e.get($)} applied.` : "", !0), e.set(p, a, !0);
|
|
1002
|
+
}
|
|
1003
|
+
async function Te() {
|
|
1004
|
+
try {
|
|
1005
|
+
const a = await st(t.eventId), r = [];
|
|
1006
|
+
for (const [o, g] of Object.entries(e.get(T))) {
|
|
1007
|
+
if (g <= 0) continue;
|
|
1008
|
+
const c = a.find((W) => String(W.ID) === String(o));
|
|
1009
|
+
if (!c) continue;
|
|
1010
|
+
const M = c.remainingCapacity ?? c.quantity ?? 1 / 0;
|
|
1011
|
+
if (M < g) {
|
|
1012
|
+
const W = e.get(i)?.availableTickets?.find((j) => String(j.ID) === String(o));
|
|
1013
|
+
r.push({
|
|
1014
|
+
ticketId: o,
|
|
1015
|
+
ticketName: W?.name || c?.name || "Ticket",
|
|
1016
|
+
requestedQty: g,
|
|
1017
|
+
availableQty: Math.max(0, M)
|
|
1018
|
+
});
|
|
1019
|
+
}
|
|
1020
|
+
}
|
|
1021
|
+
return r;
|
|
1022
|
+
} catch (a) {
|
|
1023
|
+
return xe.error("Error checking ticket availability:", a), [];
|
|
1024
|
+
}
|
|
1025
|
+
}
|
|
1026
|
+
async function Ne() {
|
|
1027
|
+
if (!e.get(i)) return;
|
|
1028
|
+
e.set(H, !0), e.set(k, !1);
|
|
1029
|
+
const a = await Te();
|
|
1030
|
+
if (a.length > 0) {
|
|
1031
|
+
e.set(H, !1), e.set(L, a, !0), e.set(D, !0);
|
|
1032
|
+
return;
|
|
1033
|
+
}
|
|
1034
|
+
await Pe();
|
|
1035
|
+
}
|
|
1036
|
+
async function Pe() {
|
|
1037
|
+
e.set(H, !0), dt({
|
|
1038
|
+
eventID: e.get(i).eventID,
|
|
1039
|
+
quantities: e.get(T),
|
|
1040
|
+
promocode: e.get($),
|
|
1041
|
+
promoDiscountAmount: e.get(p),
|
|
1042
|
+
tickets: e.get(i).availableTickets
|
|
1043
|
+
});
|
|
1044
|
+
try {
|
|
1045
|
+
const a = await ct({
|
|
1046
|
+
eventID: e.get(i).eventID,
|
|
1047
|
+
quantities: e.get(T),
|
|
1048
|
+
promoCode: e.get($) || void 0
|
|
1049
|
+
});
|
|
1050
|
+
if (!a || !a.success) {
|
|
1051
|
+
e.set(H, !1), e.set(w, "cart_failed"), e.set(u, !0);
|
|
1052
|
+
return;
|
|
1053
|
+
}
|
|
1054
|
+
e.set(G, a.serviceFee ?? 0, !0), e.set(k, !0);
|
|
1055
|
+
} catch (a) {
|
|
1056
|
+
xe.error("Order initiation failed:", a), e.set(H, !1), e.set(w, "cart_failed"), e.set(u, !0);
|
|
1057
|
+
return;
|
|
1058
|
+
}
|
|
1059
|
+
try {
|
|
1060
|
+
if (t.onNavigateToCheckout) {
|
|
1061
|
+
t.onNavigateToCheckout(t.eventId, e.get(i)), e.set(H, !1);
|
|
1062
|
+
return;
|
|
1063
|
+
}
|
|
1064
|
+
const a = new URLSearchParams();
|
|
1065
|
+
Q() && a.set("orgId", Q()), b() && a.set("venueId", b()), a.set("event_id", t.eventId), a.set("subroute", "checkout");
|
|
1066
|
+
const r = `/?${a.toString()}`;
|
|
1067
|
+
ut(r, { noScroll: !1 }), e.set(H, !1);
|
|
1068
|
+
} catch (a) {
|
|
1069
|
+
xe.error("Navigation failed after cart creation:", a), e.set(H, !1), e.set(w, "cart_success_network_error"), e.set(u, !0);
|
|
1070
|
+
}
|
|
1071
|
+
}
|
|
1072
|
+
function Se() {
|
|
1073
|
+
for (const r of e.get(L))
|
|
1074
|
+
r.availableQty > 0 ? e.get(T)[r.ticketId] = r.availableQty : delete e.get(T)[r.ticketId];
|
|
1075
|
+
e.set(T, { ...e.get(
|
|
1076
|
+
T
|
|
1077
|
+
// Trigger reactivity
|
|
1078
|
+
) }, !0), e.set(D, !1), e.set(L, [], !0), Object.values(e.get(T)).reduce((r, o) => r + o, 0) > 0 ? Pe() : De();
|
|
1079
|
+
}
|
|
1080
|
+
function we() {
|
|
1081
|
+
e.set(D, !1), e.set(L, [], !0), De();
|
|
1082
|
+
}
|
|
1083
|
+
function Me() {
|
|
1084
|
+
e.set(u, !1), e.get(w) === "cart_failed" && De();
|
|
1085
|
+
}
|
|
1086
|
+
function Qe() {
|
|
1087
|
+
e.set(u, !1), window.location.reload();
|
|
1088
|
+
}
|
|
1089
|
+
function be() {
|
|
1090
|
+
e.set(ce, window.innerWidth < 767);
|
|
1091
|
+
}
|
|
1092
|
+
let Oe = !1;
|
|
1093
|
+
function Ge() {
|
|
1094
|
+
Oe || (window.requestAnimationFrame(() => {
|
|
1095
|
+
$e(), Oe = !1;
|
|
1096
|
+
}), Oe = !0);
|
|
1097
|
+
}
|
|
1098
|
+
function $e() {
|
|
1099
|
+
if (e.get(ce) || !e.get(te) || !e.get(J)) {
|
|
1100
|
+
e.set(U, !1);
|
|
1101
|
+
return;
|
|
1102
|
+
}
|
|
1103
|
+
const a = e.get(te).getBoundingClientRect();
|
|
1104
|
+
if (e.set(U, a.top <= 20), e.get(U)) {
|
|
1105
|
+
const r = e.get(J).getBoundingClientRect();
|
|
1106
|
+
e.set(f, r.left + r.width - 340 - 40);
|
|
1107
|
+
}
|
|
1108
|
+
}
|
|
1109
|
+
function De() {
|
|
1110
|
+
if (e.get(i) && Ct(e.get(i).eventID), t.onNavigateBack)
|
|
1111
|
+
t.onNavigateBack();
|
|
1112
|
+
else {
|
|
1113
|
+
const a = new URLSearchParams(window.location.search);
|
|
1114
|
+
a.set("subroute", "details");
|
|
1115
|
+
const r = `/?${a.toString()}`;
|
|
1116
|
+
ut(r, {});
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
let le = null;
|
|
1120
|
+
async function ze() {
|
|
1121
|
+
le && localStorage.removeItem(`checkout-expiry-${le}`), document.cookie = "checkout-cartid=; Max-Age=0; path=/", le = null, e.set(y, !1), e.set(m, 0), e.set(d, !0);
|
|
1122
|
+
}
|
|
1123
|
+
async function Ve() {
|
|
1124
|
+
if (e.get(y)) return;
|
|
1125
|
+
if (e.set(y, !0), le = typeof document < "u" && document.cookie.match(/checkout-cartid=([^;]+)/)?.[1] || null, e.set(m, 900), le) {
|
|
1126
|
+
const r = localStorage.getItem(`checkout-expiry-${le}`);
|
|
1127
|
+
if (r) {
|
|
1128
|
+
const o = Math.max(0, Math.floor((parseInt(r, 10) - Date.now()) / 1e3));
|
|
1129
|
+
if (o > 0)
|
|
1130
|
+
e.set(m, o, !0);
|
|
1131
|
+
else {
|
|
1132
|
+
await ze();
|
|
1133
|
+
return;
|
|
1134
|
+
}
|
|
1135
|
+
} else if (ge)
|
|
1136
|
+
e.set(m, 900), localStorage.setItem(`checkout-expiry-${le}`, String(Date.now() + 900 * 1e3));
|
|
1137
|
+
else {
|
|
1138
|
+
await ze();
|
|
1139
|
+
return;
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
1142
|
+
X = setInterval(
|
|
1143
|
+
() => {
|
|
1144
|
+
e.get(m) > 0 ? (e.set(m, e.get(m) - 1), e.get(m) % 10 === 0 && le && localStorage.setItem(`checkout-expiry-${le}`, String(Date.now() + e.get(m) * 1e3))) : (clearInterval(X), e.set(y, !1), e.set(d, !0), le && localStorage.removeItem(`checkout-expiry-${le}`));
|
|
1145
|
+
},
|
|
1146
|
+
1e3
|
|
1147
|
+
);
|
|
1148
|
+
const a = setInterval(
|
|
1149
|
+
async () => {
|
|
1150
|
+
if (!e.get(y) || !le) {
|
|
1151
|
+
clearInterval(a);
|
|
1152
|
+
return;
|
|
1153
|
+
}
|
|
1154
|
+
try {
|
|
1155
|
+
const r = await Ot(le);
|
|
1156
|
+
if (!r.error && r.expiresAt) {
|
|
1157
|
+
const o = Math.max(0, Math.floor((new Date(r.expiresAt) - /* @__PURE__ */ new Date()) / 1e3));
|
|
1158
|
+
e.set(m, o, !0), localStorage.setItem(`checkout-expiry-${le}`, String(new Date(r.expiresAt).getTime()));
|
|
1159
|
+
}
|
|
1160
|
+
} catch {
|
|
1161
|
+
}
|
|
1162
|
+
},
|
|
1163
|
+
6e4
|
|
1164
|
+
);
|
|
1165
|
+
}
|
|
1166
|
+
async function We(a) {
|
|
1167
|
+
const r = a?.detail ?? a, { code: o, discount: g } = r;
|
|
1168
|
+
if (e.set($, o || "", !0), e.set(p, g || 0, !0), e.set(se, o ? `${o} applied.` : "", !0), r.revealHiddenTickets !== void 0 && e.get(i) && (document.cookie = `checkout-promo-reveal-${e.get(i).eventID}=${r.revealHiddenTickets ? "1" : "0"}; path=/`, r.revealTicketIds?.length && (document.cookie = `checkout-promo-reveal-ids-${e.get(i).eventID}=${JSON.stringify(r.revealTicketIds)}; path=/`), o && r.revealHiddenTickets))
|
|
1169
|
+
try {
|
|
1170
|
+
const c = await st(t.eventId, o);
|
|
1171
|
+
c.length > 0 && e.get(i) && e.set(i, { ...e.get(i), availableTickets: c }, !0);
|
|
1172
|
+
} catch (c) {
|
|
1173
|
+
xe.error("Error re-fetching tickets with promo:", c);
|
|
1174
|
+
}
|
|
1175
|
+
}
|
|
1176
|
+
let et = e.derived(() => e.get(i) ? Ue(`checkout-promo-reveal-${e.get(i).eventID}`) === "1" : !1), Re = e.derived(() => {
|
|
1177
|
+
if (!e.get(i)) return [];
|
|
1178
|
+
try {
|
|
1179
|
+
const a = Ue(`checkout-promo-reveal-ids-${e.get(i).eventID}`);
|
|
1180
|
+
return a ? JSON.parse(a) : [];
|
|
1181
|
+
} catch {
|
|
1182
|
+
return [];
|
|
1183
|
+
}
|
|
1184
|
+
}), Ze = e.derived(() => e.get(i)?.availableTickets?.filter((a) => a.visibility === 0)?.every((a) => a.price === 0)), Je = e.derived(() => {
|
|
1185
|
+
if (!e.get(i)) return !1;
|
|
1186
|
+
const a = e.get(i).endDateTime || e.get(i).startDateTime;
|
|
1187
|
+
return a ? new Date(a) < /* @__PURE__ */ new Date() : !1;
|
|
1188
|
+
});
|
|
1189
|
+
async function Ye() {
|
|
1190
|
+
if (e.get(N)) {
|
|
1191
|
+
if (!t.eventId) {
|
|
1192
|
+
e.set(ee, s().noEventIdProvided || "No event ID provided", !0), e.set(oe, !1);
|
|
1193
|
+
return;
|
|
1194
|
+
}
|
|
1195
|
+
e.set(oe, !0), e.set(ee, null);
|
|
1196
|
+
try {
|
|
1197
|
+
if (I()) {
|
|
1198
|
+
if (e.set(S, I()), !e.get(N)) return;
|
|
1199
|
+
e.set(i, ot(e.get(S)), !0), e.set(C, e.get(i).availableTickets || [], !0);
|
|
1200
|
+
} else {
|
|
1201
|
+
try {
|
|
1202
|
+
if (e.set(S, await Et(t.eventId), !0), !e.get(N)) return;
|
|
1203
|
+
e.set(i, ot(e.get(S)), !0);
|
|
1204
|
+
} catch (o) {
|
|
1205
|
+
xe.error("Event fetch failed:", o), e.set(ee, s().failedToLoadEvent || "Failed to load event", !0), e.set(oe, !1);
|
|
1206
|
+
return;
|
|
1207
|
+
}
|
|
1208
|
+
try {
|
|
1209
|
+
if (e.set(C, await st(t.eventId), !0), !e.get(N)) return;
|
|
1210
|
+
e.get(C).length > 0 && (e.get(i).availableTickets = e.get(C));
|
|
1211
|
+
} catch (o) {
|
|
1212
|
+
if (!e.get(N)) return;
|
|
1213
|
+
xe.error("Error fetching tickets:", o), e.set(C, e.get(i).availableTickets || [], !0);
|
|
1214
|
+
}
|
|
1215
|
+
}
|
|
1216
|
+
e.get(i).availableTickets && e.get(i).availableTickets.forEach((o) => e.get(T)[o.ID] = 0);
|
|
1217
|
+
const a = At(e.get(i).eventID);
|
|
1218
|
+
if (e.set(T, qt(a.quantities || {}, e.get(i).availableTickets), !0), e.set($, a.promocode || "", !0), e.set(p, a.promoDiscountAmount || 0, !0), e.get(i).eventID && (await Pt(e.get(i).eventID), !e.get(N)))
|
|
1219
|
+
return;
|
|
1220
|
+
e.set(h, !0), Ee(), Object.values(e.get(T)).reduce((o, g) => o + g, 0) > 0 && Ve(), Ae(), await Mt({ eventID: e.get(i).eventID });
|
|
1221
|
+
} catch (a) {
|
|
1222
|
+
e.get(N) && (xe.error("Error loading event:", a), e.set(ee, a.message || s().failedToLoadEvent || "Failed to load event", !0));
|
|
1223
|
+
} finally {
|
|
1224
|
+
e.get(N) && e.set(oe, !1);
|
|
1225
|
+
}
|
|
1226
|
+
}
|
|
1227
|
+
}
|
|
1228
|
+
ft(async () => (e.set(N, !0), be(), window.addEventListener("resize", be), window.addEventListener("scroll", Ge), await Ye(), St(t.eventId).then((a) => {
|
|
1229
|
+
e.set(x, a, !0);
|
|
1230
|
+
}).catch(() => {
|
|
1231
|
+
e.set(x, !0);
|
|
1232
|
+
}), () => {
|
|
1233
|
+
window.removeEventListener("resize", be), window.removeEventListener("scroll", Ge);
|
|
1234
|
+
})), Bt(() => {
|
|
1235
|
+
e.set(N, !1), X && clearInterval(X), _ && _.abort();
|
|
1236
|
+
});
|
|
1237
|
+
let Xe = null;
|
|
1238
|
+
e.user_effect(() => {
|
|
1239
|
+
e.get(N) && t.eventId && t.eventId !== Xe && (Xe = t.eventId, Ye());
|
|
1240
|
+
}), e.user_effect(() => {
|
|
1241
|
+
const a = Object.values(e.get(T)).reduce((r, o) => r + o, 0);
|
|
1242
|
+
e.get(h) && e.get(i) && a > 0 ? Be() : a === 0 && (e.set(ne, 0), e.set(Y, 0), e.set(ve, !1));
|
|
1243
|
+
});
|
|
1244
|
+
var Ke = Na(), Le = e.first_child(Ke), l = e.child(Le);
|
|
1245
|
+
{
|
|
1246
|
+
var n = (a) => {
|
|
1247
|
+
var r = _a(), o = e.child(r), g = e.child(o, !0);
|
|
1248
|
+
e.reset(o), e.reset(r), e.template_effect(() => e.set_text(g, s().loadingEvent || "Loading event...")), e.append(a, r);
|
|
1249
|
+
}, v = (a) => {
|
|
1250
|
+
var r = ba(), o = e.child(r), g = e.child(o);
|
|
1251
|
+
e.reset(o);
|
|
1252
|
+
var c = e.sibling(o, 2), M = e.child(c, !0);
|
|
1253
|
+
e.reset(c), e.reset(r), e.template_effect(() => {
|
|
1254
|
+
e.set_text(g, `${(s().errorPrefix || "Error:") ?? ""}
|
|
1255
|
+
${e.get(ee) ?? ""}`), e.set_attribute(c, "aria-label", s().goBackToEventDetails || "Go back to event details"), e.set_text(M, s().goBack || "Go back");
|
|
1256
|
+
}), e.delegated("click", c, De), e.append(a, r);
|
|
1257
|
+
}, q = (a) => {
|
|
1258
|
+
var r = xa(), o = e.child(r), g = e.child(o, !0);
|
|
1259
|
+
e.reset(o);
|
|
1260
|
+
var c = e.sibling(o, 2), M = e.child(c, !0);
|
|
1261
|
+
e.reset(c);
|
|
1262
|
+
var W = e.sibling(c, 2), j = e.child(W, !0);
|
|
1263
|
+
e.reset(W), e.reset(r), e.template_effect(() => {
|
|
1264
|
+
e.set_text(g, s().thisEventHasEnded || "This event has ended"), e.set_text(M, s().ticketsNoLongerAvailable || "Tickets are no longer available for this event."), e.set_attribute(W, "aria-label", s().goBackToEventDetails || "Go back to event details"), e.set_text(j, s().goBack || "Go back");
|
|
1265
|
+
}), e.delegated("click", W, De), e.append(a, r);
|
|
1266
|
+
}, z = (a) => {
|
|
1267
|
+
var r = ya(), o = e.sibling(e.child(r), 4);
|
|
1268
|
+
e.reset(r), e.delegated("click", o, De), e.append(a, r);
|
|
1269
|
+
}, R = (a) => {
|
|
1270
|
+
var r = Da(), o = e.child(r), g = e.child(o), c = e.child(g);
|
|
1271
|
+
ha(c, {
|
|
1272
|
+
get event() {
|
|
1273
|
+
return e.get(i);
|
|
1274
|
+
},
|
|
1275
|
+
get lowestPrice() {
|
|
1276
|
+
return e.get(me);
|
|
1277
|
+
},
|
|
1278
|
+
get highestPrice() {
|
|
1279
|
+
return e.get(ue);
|
|
1280
|
+
},
|
|
1281
|
+
onCancel: De,
|
|
1282
|
+
get venueFeesReady() {
|
|
1283
|
+
return e.get(h);
|
|
1284
|
+
},
|
|
1285
|
+
get labels() {
|
|
1286
|
+
return s();
|
|
1287
|
+
}
|
|
1288
|
+
});
|
|
1289
|
+
var M = e.sibling(c, 2);
|
|
1290
|
+
{
|
|
1291
|
+
var W = (Z) => {
|
|
1292
|
+
var ae = ka(), he = e.child(ae);
|
|
1293
|
+
{
|
|
1294
|
+
let je = e.derived(() => e.get(m) <= 300);
|
|
1295
|
+
Lt(he, {
|
|
1296
|
+
get seconds() {
|
|
1297
|
+
return e.get(m);
|
|
1298
|
+
},
|
|
1299
|
+
get isUrgent() {
|
|
1300
|
+
return e.get(je);
|
|
1301
|
+
},
|
|
1302
|
+
get labels() {
|
|
1303
|
+
return s();
|
|
1304
|
+
}
|
|
1305
|
+
});
|
|
1306
|
+
}
|
|
1307
|
+
e.reset(ae), e.append(Z, ae);
|
|
1308
|
+
};
|
|
1309
|
+
e.if(M, (Z) => {
|
|
1310
|
+
e.get(y) && e.get(m) > 0 && Z(W);
|
|
1311
|
+
});
|
|
1312
|
+
}
|
|
1313
|
+
var j = e.sibling(M, 2);
|
|
1314
|
+
{
|
|
1315
|
+
var O = (Z) => {
|
|
1316
|
+
var ae = Ta(), he = e.child(ae);
|
|
1317
|
+
va(he, {
|
|
1318
|
+
get eventID() {
|
|
1319
|
+
return t.eventId;
|
|
1320
|
+
},
|
|
1321
|
+
onpromoChange: We,
|
|
1322
|
+
get labels() {
|
|
1323
|
+
return s();
|
|
1324
|
+
}
|
|
1325
|
+
}), e.reset(ae), e.append(Z, ae);
|
|
1326
|
+
};
|
|
1327
|
+
e.if(j, (Z) => {
|
|
1328
|
+
e.get(x) && Z(O);
|
|
1329
|
+
});
|
|
1330
|
+
}
|
|
1331
|
+
var E = e.sibling(j, 2), K = e.child(E);
|
|
1332
|
+
la(K, {
|
|
1333
|
+
get tickets() {
|
|
1334
|
+
return e.get(i).availableTickets;
|
|
1335
|
+
},
|
|
1336
|
+
get quantities() {
|
|
1337
|
+
return e.get(T);
|
|
1338
|
+
},
|
|
1339
|
+
handleQuantityChange: _e,
|
|
1340
|
+
get revealHiddenTickets() {
|
|
1341
|
+
return e.get(et);
|
|
1342
|
+
},
|
|
1343
|
+
get revealTicketIds() {
|
|
1344
|
+
return e.get(Re);
|
|
1345
|
+
},
|
|
1346
|
+
get venueFeesReady() {
|
|
1347
|
+
return e.get(h);
|
|
1348
|
+
},
|
|
1349
|
+
get labels() {
|
|
1350
|
+
return s();
|
|
1351
|
+
}
|
|
1352
|
+
}), e.reset(E), e.reset(g), e.reset(o);
|
|
1353
|
+
var de = e.sibling(o, 2);
|
|
1354
|
+
{
|
|
1355
|
+
var A = (Z) => {
|
|
1356
|
+
var ae = wa();
|
|
1357
|
+
e.append(Z, ae);
|
|
1358
|
+
};
|
|
1359
|
+
e.if(de, (Z) => {
|
|
1360
|
+
e.get(U) && !e.get(ce) && Z(A);
|
|
1361
|
+
});
|
|
1362
|
+
}
|
|
1363
|
+
var P = e.sibling(de, 2);
|
|
1364
|
+
let fe, pe;
|
|
1365
|
+
var tt = e.child(P);
|
|
1366
|
+
{
|
|
1367
|
+
var at = (Z) => {
|
|
1368
|
+
Qt(Z, {});
|
|
1369
|
+
}, rt = (Z) => {
|
|
1370
|
+
{
|
|
1371
|
+
let ae = e.derived(() => s().checkout || "Checkout"), he = e.derived(() => !!e.get(se));
|
|
1372
|
+
Ft(Z, {
|
|
1373
|
+
get btnText() {
|
|
1374
|
+
return e.get(ae);
|
|
1375
|
+
},
|
|
1376
|
+
get loading() {
|
|
1377
|
+
return e.get(H);
|
|
1378
|
+
},
|
|
1379
|
+
checkoutTicket: Ne,
|
|
1380
|
+
get quantities() {
|
|
1381
|
+
return e.get(T);
|
|
1382
|
+
},
|
|
1383
|
+
get eventTickets() {
|
|
1384
|
+
return e.get(i).availableTickets;
|
|
1385
|
+
},
|
|
1386
|
+
get promoApplied() {
|
|
1387
|
+
return e.get(he);
|
|
1388
|
+
},
|
|
1389
|
+
get promoDiscount() {
|
|
1390
|
+
return e.get(p);
|
|
1391
|
+
},
|
|
1392
|
+
get subtotal() {
|
|
1393
|
+
return e.get(ye);
|
|
1394
|
+
},
|
|
1395
|
+
get fees() {
|
|
1396
|
+
return e.get(G);
|
|
1397
|
+
},
|
|
1398
|
+
get taxes() {
|
|
1399
|
+
return e.get(Y);
|
|
1400
|
+
},
|
|
1401
|
+
get total() {
|
|
1402
|
+
return e.get(qe);
|
|
1403
|
+
}
|
|
1404
|
+
});
|
|
1405
|
+
}
|
|
1406
|
+
};
|
|
1407
|
+
e.if(tt, (Z) => {
|
|
1408
|
+
e.get(h) ? e.get(i) && e.get(i).availableTickets?.length && Z(rt, 1) : Z(at);
|
|
1409
|
+
});
|
|
1410
|
+
}
|
|
1411
|
+
e.reset(P), e.reset(r), e.bind_this(r, (Z) => e.set(te, Z), () => e.get(te)), e.template_effect(() => {
|
|
1412
|
+
fe = e.set_class(P, 1, "w-full md:w-80 flex flex-col transition-all will-change-[left] svelte-19g9ni4", null, fe, { "is-sticky": e.get(U) }), pe = e.set_style(P, "", pe, { left: e.get(U) ? `${e.get(f)}px` : "auto" });
|
|
1413
|
+
}), e.append(a, r);
|
|
1414
|
+
};
|
|
1415
|
+
e.if(l, (a) => {
|
|
1416
|
+
e.get(oe) ? a(n) : e.get(ee) ? a(v, 1) : e.get(i) && e.get(Je) ? a(q, 2) : e.get(i) && e.get(Je) ? a(z, 3) : e.get(i) && a(R, 4);
|
|
1417
|
+
});
|
|
1418
|
+
}
|
|
1419
|
+
e.reset(Le), e.bind_this(Le, (a) => e.set(J, a), () => e.get(J));
|
|
1420
|
+
var F = e.sibling(Le, 2);
|
|
1421
|
+
lt(F, {
|
|
1422
|
+
size: "sm",
|
|
1423
|
+
oncancel: Me,
|
|
1424
|
+
role: "alertdialog",
|
|
1425
|
+
"aria-labelledby": "error-modal-title",
|
|
1426
|
+
"aria-describedby": "error-modal-description",
|
|
1427
|
+
get open() {
|
|
1428
|
+
return e.get(u);
|
|
1429
|
+
},
|
|
1430
|
+
set open(g) {
|
|
1431
|
+
e.set(u, g, !0);
|
|
1432
|
+
},
|
|
1433
|
+
header: (g) => {
|
|
1434
|
+
var c = Ia(), M = e.child(c);
|
|
1435
|
+
{
|
|
1436
|
+
var W = (O) => {
|
|
1437
|
+
var E = e.text();
|
|
1438
|
+
e.template_effect(() => e.set_text(E, s().unableToReserveTickets || "Unable to Reserve Tickets")), e.append(O, E);
|
|
1439
|
+
}, j = (O) => {
|
|
1440
|
+
var E = e.text();
|
|
1441
|
+
e.template_effect(() => e.set_text(E, s().connectionIssue || "Connection Issue")), e.append(O, E);
|
|
1442
|
+
};
|
|
1443
|
+
e.if(M, (O) => {
|
|
1444
|
+
e.get(w) === "cart_failed" ? O(W) : O(j, !1);
|
|
1445
|
+
});
|
|
1446
|
+
}
|
|
1447
|
+
e.reset(c), e.append(g, c);
|
|
1448
|
+
},
|
|
1449
|
+
body: (g) => {
|
|
1450
|
+
var c = Ea(), M = e.child(c);
|
|
1451
|
+
{
|
|
1452
|
+
var W = (O) => {
|
|
1453
|
+
var E = Sa(), K = e.first_child(E), de = e.child(K, !0);
|
|
1454
|
+
e.reset(K);
|
|
1455
|
+
var A = e.sibling(K, 2), P = e.child(A, !0);
|
|
1456
|
+
e.reset(A), e.template_effect(() => {
|
|
1457
|
+
e.set_text(de, s().cartFailedMessage || "We couldn't reserve your tickets. This may be due to a network issue or the tickets may no longer be available."), e.set_text(P, s().pleaseGoBackAndTryAgain || "Please go back and try again.");
|
|
1458
|
+
}), e.append(O, E);
|
|
1459
|
+
}, j = (O) => {
|
|
1460
|
+
var E = Ca(), K = e.first_child(E), de = e.child(K, !0);
|
|
1461
|
+
e.reset(K);
|
|
1462
|
+
var A = e.sibling(K, 2), P = e.child(A, !0);
|
|
1463
|
+
e.reset(A), e.template_effect(() => {
|
|
1464
|
+
e.set_text(de, s().cartSuccessMessage || "Good news! Your tickets have been reserved and are being held for you."), e.set_text(P, s().cartSuccessNetworkError || "However, we encountered a connection issue. Please refresh the page to continue to checkout.");
|
|
1465
|
+
}), e.append(O, E);
|
|
1466
|
+
};
|
|
1467
|
+
e.if(M, (O) => {
|
|
1468
|
+
e.get(w) === "cart_failed" ? O(W) : O(j, !1);
|
|
1469
|
+
});
|
|
1470
|
+
}
|
|
1471
|
+
e.reset(c), e.append(g, c);
|
|
1472
|
+
},
|
|
1473
|
+
footer: (g) => {
|
|
1474
|
+
var c = Pa(), M = e.child(c);
|
|
1475
|
+
{
|
|
1476
|
+
var W = (O) => {
|
|
1477
|
+
{
|
|
1478
|
+
let E = e.derived(() => s().goBack || "Go back");
|
|
1479
|
+
Ie(O, {
|
|
1480
|
+
variant: "default",
|
|
1481
|
+
onclick: Me,
|
|
1482
|
+
get "aria-label"() {
|
|
1483
|
+
return e.get(E);
|
|
1484
|
+
},
|
|
1485
|
+
children: (K, de) => {
|
|
1486
|
+
e.next();
|
|
1487
|
+
var A = e.text();
|
|
1488
|
+
e.template_effect(() => e.set_text(A, s().goBack || "Go back")), e.append(K, A);
|
|
1489
|
+
},
|
|
1490
|
+
$$slots: { default: !0 }
|
|
1491
|
+
});
|
|
1492
|
+
}
|
|
1493
|
+
}, j = (O) => {
|
|
1494
|
+
var E = Aa(), K = e.first_child(E);
|
|
1495
|
+
{
|
|
1496
|
+
let A = e.derived(() => s().cancel || "Cancel");
|
|
1497
|
+
Ie(K, {
|
|
1498
|
+
variant: "alternative",
|
|
1499
|
+
onclick: Me,
|
|
1500
|
+
get "aria-label"() {
|
|
1501
|
+
return e.get(A);
|
|
1502
|
+
},
|
|
1503
|
+
children: (P, fe) => {
|
|
1504
|
+
e.next();
|
|
1505
|
+
var pe = e.text();
|
|
1506
|
+
e.template_effect(() => e.set_text(pe, s().cancel || "Cancel")), e.append(P, pe);
|
|
1507
|
+
},
|
|
1508
|
+
$$slots: { default: !0 }
|
|
1509
|
+
});
|
|
1510
|
+
}
|
|
1511
|
+
var de = e.sibling(K, 2);
|
|
1512
|
+
{
|
|
1513
|
+
let A = e.derived(() => s().refreshPage || "Refresh Page");
|
|
1514
|
+
Ie(de, {
|
|
1515
|
+
variant: "default",
|
|
1516
|
+
onclick: Qe,
|
|
1517
|
+
get "aria-label"() {
|
|
1518
|
+
return e.get(A);
|
|
1519
|
+
},
|
|
1520
|
+
children: (P, fe) => {
|
|
1521
|
+
e.next();
|
|
1522
|
+
var pe = e.text();
|
|
1523
|
+
e.template_effect(() => e.set_text(pe, s().refreshPage || "Refresh Page")), e.append(P, pe);
|
|
1524
|
+
},
|
|
1525
|
+
$$slots: { default: !0 }
|
|
1526
|
+
});
|
|
1527
|
+
}
|
|
1528
|
+
e.append(O, E);
|
|
1529
|
+
};
|
|
1530
|
+
e.if(M, (O) => {
|
|
1531
|
+
e.get(w) === "cart_failed" ? O(W) : O(j, !1);
|
|
1532
|
+
});
|
|
1533
|
+
}
|
|
1534
|
+
e.reset(c), e.append(g, c);
|
|
1535
|
+
},
|
|
1536
|
+
$$slots: { header: !0, body: !0, footer: !0 }
|
|
1537
|
+
});
|
|
1538
|
+
var V = e.sibling(F, 2);
|
|
1539
|
+
{
|
|
1540
|
+
var B = (a) => {
|
|
1541
|
+
var r = Ma(), o = e.child(r), g = e.child(o), c = e.child(g, !0);
|
|
1542
|
+
e.reset(g);
|
|
1543
|
+
var M = e.sibling(g, 2), W = e.child(M, !0);
|
|
1544
|
+
e.reset(M);
|
|
1545
|
+
var j = e.sibling(M, 2), O = e.child(j, !0);
|
|
1546
|
+
e.reset(j), e.reset(o), e.reset(r), e.template_effect(() => {
|
|
1547
|
+
e.set_text(c, s().cartExpiredTitle || "Your cart has expired"), e.set_text(W, s().cartExpiredMessage || "Your cart has expired. Please start your purchase again."), e.set_text(O, s().startOver || "Start over");
|
|
1548
|
+
}), e.delegated("click", j, () => {
|
|
1549
|
+
e.set(d, !1), document.cookie = "checkout-cartid=; Max-Age=0; path=/", window.location.reload();
|
|
1550
|
+
}), e.append(a, r);
|
|
1551
|
+
};
|
|
1552
|
+
e.if(V, (a) => {
|
|
1553
|
+
e.get(d) && a(B);
|
|
1554
|
+
});
|
|
1555
|
+
}
|
|
1556
|
+
var re = e.sibling(V, 2);
|
|
1557
|
+
lt(re, {
|
|
1558
|
+
size: "sm",
|
|
1559
|
+
oncancel: we,
|
|
1560
|
+
role: "alertdialog",
|
|
1561
|
+
"aria-labelledby": "availability-modal-title",
|
|
1562
|
+
"aria-describedby": "availability-modal-description",
|
|
1563
|
+
get open() {
|
|
1564
|
+
return e.get(D);
|
|
1565
|
+
},
|
|
1566
|
+
set open(g) {
|
|
1567
|
+
e.set(D, g, !0);
|
|
1568
|
+
},
|
|
1569
|
+
header: (g) => {
|
|
1570
|
+
var c = Oa(), M = e.child(c, !0);
|
|
1571
|
+
e.reset(c), e.template_effect(() => e.set_text(M, s().limitedAvailability || "Limited Availability")), e.append(g, c);
|
|
1572
|
+
},
|
|
1573
|
+
body: (g) => {
|
|
1574
|
+
var c = La(), M = e.child(c), W = e.child(M, !0);
|
|
1575
|
+
e.reset(M);
|
|
1576
|
+
var j = e.sibling(M, 2);
|
|
1577
|
+
e.each(j, 21, () => e.get(L), e.index, (A, P) => {
|
|
1578
|
+
var fe = Fa(), pe = e.child(fe), tt = e.child(pe);
|
|
1579
|
+
e.reset(pe);
|
|
1580
|
+
var at = e.sibling(pe, 2);
|
|
1581
|
+
{
|
|
1582
|
+
var rt = (ae) => {
|
|
1583
|
+
var he = e.text();
|
|
1584
|
+
e.template_effect((je) => e.set_text(he, je), [
|
|
1585
|
+
() => (s().onlyNAvailable || "Only {available} available (you selected {requested})").replace("{available}", String(e.get(P).availableQty)).replace("{requested}", String(e.get(P).requestedQty))
|
|
1586
|
+
]), e.append(ae, he);
|
|
1587
|
+
}, Z = (ae) => {
|
|
1588
|
+
var he = e.text();
|
|
1589
|
+
e.template_effect((je) => e.set_text(he, je), [
|
|
1590
|
+
() => (s().soldOutYouSelected || "Sold out (you selected {requested})").replace("{requested}", String(e.get(P).requestedQty))
|
|
1591
|
+
]), e.append(ae, he);
|
|
1592
|
+
};
|
|
1593
|
+
e.if(at, (ae) => {
|
|
1594
|
+
e.get(P).availableQty > 0 ? ae(rt) : ae(Z, !1);
|
|
1595
|
+
});
|
|
1596
|
+
}
|
|
1597
|
+
e.reset(fe), e.template_effect(() => e.set_text(tt, `${e.get(P).ticketName ?? ""}:`)), e.append(A, fe);
|
|
1598
|
+
}), e.reset(j);
|
|
1599
|
+
var O = e.sibling(j, 2);
|
|
1600
|
+
{
|
|
1601
|
+
var E = (A) => {
|
|
1602
|
+
var P = Ba(), fe = e.child(P, !0);
|
|
1603
|
+
e.reset(P), e.template_effect(() => e.set_text(fe, s().partialAvailabilityContinue || "Would you like to continue with the available tickets?")), e.append(A, P);
|
|
1604
|
+
}, K = e.derived(() => e.get(L).some((A) => A.availableQty > 0)), de = (A) => {
|
|
1605
|
+
var P = Qa(), fe = e.child(P, !0);
|
|
1606
|
+
e.reset(P), e.template_effect(() => e.set_text(fe, s().allTicketsSoldOut || "Unfortunately, all the tickets you selected have sold out.")), e.append(A, P);
|
|
1607
|
+
};
|
|
1608
|
+
e.if(O, (A) => {
|
|
1609
|
+
e.get(K) ? A(E) : A(de, !1);
|
|
1610
|
+
});
|
|
1611
|
+
}
|
|
1612
|
+
e.reset(c), e.template_effect(() => {
|
|
1613
|
+
e.set_text(W, s().ticketsNoLongerAvailableMessage || "Some tickets you selected are no longer available in the requested quantities:"), e.set_attribute(j, "aria-label", s().ticketAvailabilityChanges || "Ticket availability changes");
|
|
1614
|
+
}), e.append(g, c);
|
|
1615
|
+
},
|
|
1616
|
+
footer: (g) => {
|
|
1617
|
+
var c = qa(), M = e.child(c);
|
|
1618
|
+
{
|
|
1619
|
+
let E = e.derived(() => s().goBack || "Go back");
|
|
1620
|
+
Ie(M, {
|
|
1621
|
+
variant: "alternative",
|
|
1622
|
+
onclick: we,
|
|
1623
|
+
get "aria-label"() {
|
|
1624
|
+
return e.get(E);
|
|
1625
|
+
},
|
|
1626
|
+
children: (K, de) => {
|
|
1627
|
+
e.next();
|
|
1628
|
+
var A = e.text();
|
|
1629
|
+
e.template_effect(() => e.set_text(A, s().goBack || "Go back")), e.append(K, A);
|
|
1630
|
+
},
|
|
1631
|
+
$$slots: { default: !0 }
|
|
1632
|
+
});
|
|
1633
|
+
}
|
|
1634
|
+
var W = e.sibling(M, 2);
|
|
1635
|
+
{
|
|
1636
|
+
var j = (E) => {
|
|
1637
|
+
{
|
|
1638
|
+
let K = e.derived(() => s().continueWithAvailable || "Continue with available");
|
|
1639
|
+
Ie(E, {
|
|
1640
|
+
variant: "default",
|
|
1641
|
+
onclick: Se,
|
|
1642
|
+
get "aria-label"() {
|
|
1643
|
+
return e.get(K);
|
|
1644
|
+
},
|
|
1645
|
+
children: (de, A) => {
|
|
1646
|
+
e.next();
|
|
1647
|
+
var P = e.text();
|
|
1648
|
+
e.template_effect(() => e.set_text(P, s().continueWithAvailable || "Continue with available")), e.append(de, P);
|
|
1649
|
+
},
|
|
1650
|
+
$$slots: { default: !0 }
|
|
1651
|
+
});
|
|
1652
|
+
}
|
|
1653
|
+
}, O = e.derived(() => e.get(L).some((E) => E.availableQty > 0));
|
|
1654
|
+
e.if(W, (E) => {
|
|
1655
|
+
e.get(O) && E(j);
|
|
1656
|
+
});
|
|
1657
|
+
}
|
|
1658
|
+
e.reset(c), e.append(g, c);
|
|
1659
|
+
},
|
|
1660
|
+
$$slots: { header: !0, body: !0, footer: !0 }
|
|
1661
|
+
}), e.append(ie, Ke), e.pop();
|
|
1662
|
+
}
|
|
1663
|
+
e.delegate(["click"]);
|
|
1664
|
+
export {
|
|
1665
|
+
Ja as default
|
|
1666
|
+
};
|
|
1667
|
+
//# sourceMappingURL=CartView-C0wKcLTe.js.map
|