@getmicdrop/venue-calendar 4.0.108 → 4.0.110
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 +740 -740
- package/dist/CartView-bMHSoj75.js +2475 -0
- package/dist/CartView-bMHSoj75.js.map +1 -0
- package/dist/{Checkout-C4zUFYYG.js → Checkout-DDXZc-yj.js} +266 -276
- package/dist/Checkout-DDXZc-yj.js.map +1 -0
- package/dist/{Checkout-CACB_Qvi.js → Checkout-DG2iHmHC.js} +215 -214
- package/dist/Checkout-DG2iHmHC.js.map +1 -0
- package/dist/{CheckoutTimer-D5llSBPs.js → CheckoutTimer-Bwq6a_Hl.js} +5 -5
- package/dist/CheckoutTimer-Bwq6a_Hl.js.map +1 -0
- package/dist/{ClockIcon-BJnxLZ4f.js → ClockIcon-ZgeMNNI1.js} +2 -2
- package/dist/ClockIcon-ZgeMNNI1.js.map +1 -0
- package/dist/{CollectionView-BLpwWRcN.js → CollectionView-1pf2C4kX.js} +85 -84
- package/dist/CollectionView-1pf2C4kX.js.map +1 -0
- package/dist/{Event-DXp4Ypv4.js → Event-D3o0fguY.js} +1693 -1611
- package/dist/Event-D3o0fguY.js.map +1 -0
- package/dist/EventPage-DqO-AV8i.js +995 -0
- package/dist/EventPage-DqO-AV8i.js.map +1 -0
- package/dist/{Heading-C_Pc_j8f.js → Heading-pURRwiIC.js} +5 -5
- package/dist/Heading-pURRwiIC.js.map +1 -0
- package/dist/{ScarcityBadge-CSi-i0-w.js → ScarcityBadge-ykz32KS9.js} +25 -25
- package/dist/ScarcityBadge-ykz32KS9.js.map +1 -0
- package/dist/SeriesPage-BmNk80cF.js +34 -0
- package/dist/SeriesPage-BmNk80cF.js.map +1 -0
- package/dist/{Spinner-BFIjCOTb.js → Spinner-OGA1hrc5.js} +2 -2
- package/dist/Spinner-OGA1hrc5.js.map +1 -0
- package/dist/Success-DLlQ54_-.js +896 -0
- package/dist/Success-DLlQ54_-.js.map +1 -0
- package/dist/{Text-tWGKQJab.js → Text-DMpMLgcU.js} +27 -27
- package/dist/Text-DMpMLgcU.js.map +1 -0
- package/dist/{VenueCalendar-Dhoi9hF5.js → VenueCalendar-ClSRsS6u.js} +8133 -8270
- package/dist/VenueCalendar-ClSRsS6u.js.map +1 -0
- package/dist/{ViewTicketsEmbed-BrXae6cK.js → ViewTicketsEmbed-5LMG2xwn.js} +151 -150
- package/dist/ViewTicketsEmbed-5LMG2xwn.js.map +1 -0
- package/dist/__SKIP_PATHS__-BtJ0tS93.js +10 -0
- package/dist/__SKIP_PATHS__-BtJ0tS93.js.map +1 -0
- package/dist/api/api/events.d.ts +28 -12
- package/dist/api/api/index.d.ts +1 -1
- package/dist/api/api/route-manifest.d.ts +179 -0
- package/dist/api/api.cjs +1 -1
- package/dist/api/api.cjs.map +1 -1
- package/dist/api/api.mjs +388 -385
- package/dist/api/api.mjs.map +1 -1
- package/dist/api/types.d.ts +483 -483
- package/dist/{labels-CGndTgO9.js → labels-Ws4MJjH5.js} +141 -136
- package/dist/labels-Ws4MJjH5.js.map +1 -0
- package/dist/{modalManager.svelte-BgW5Xd6y.js → modalManager.svelte-BPA2JF6c.js} +2 -2
- package/dist/modalManager.svelte-BPA2JF6c.js.map +1 -0
- package/dist/navigation--gZASiSa.js +19 -0
- package/dist/navigation--gZASiSa.js.map +1 -0
- package/dist/promo-vXx1bxQm.js +29 -0
- package/dist/promo-vXx1bxQm.js.map +1 -0
- package/dist/seo/helpers.d.ts +11 -0
- package/dist/seo/seo.cjs +1 -1
- package/dist/seo/seo.cjs.map +1 -1
- package/dist/seo/seo.mjs +463 -325
- package/dist/seo/seo.mjs.map +1 -1
- package/dist/seo/types.d.ts +0 -1
- package/dist/{showcase-state-options-BxLP2R1L.js → showcase-state-options-9SoS5WuT.js} +21 -21
- package/dist/showcase-state-options-9SoS5WuT.js.map +1 -0
- package/dist/{transform-CVOgA-Ky.js → transform-BD9xXAq7.js} +83 -79
- package/dist/transform-BD9xXAq7.js.map +1 -0
- package/dist/types/index.d.ts +459 -455
- package/dist/utm-rT0TPh8G.js +288 -0
- package/dist/utm-rT0TPh8G.js.map +1 -0
- package/dist/venue-calendar.css +1 -1
- package/dist/venue-calendar.es.js +4 -4
- package/dist/venue-calendar.iife.js +49 -49
- package/dist/venue-calendar.iife.js.map +1 -1
- package/dist/venue-calendar.umd.js +44 -44
- package/dist/venue-calendar.umd.js.map +1 -1
- package/package.json +199 -195
- package/src/lib/theme.js +222 -222
- package/dist/CartView-eQNOdQSz.js +0 -2354
- package/dist/CartView-eQNOdQSz.js.map +0 -1
- package/dist/Checkout-C4zUFYYG.js.map +0 -1
- package/dist/Checkout-CACB_Qvi.js.map +0 -1
- package/dist/CheckoutTimer-D5llSBPs.js.map +0 -1
- package/dist/ClockIcon-BJnxLZ4f.js.map +0 -1
- package/dist/CollectionView-BLpwWRcN.js.map +0 -1
- package/dist/Event-DXp4Ypv4.js.map +0 -1
- package/dist/EventPage-Dfxyzfg2.js +0 -949
- package/dist/EventPage-Dfxyzfg2.js.map +0 -1
- package/dist/Heading-C_Pc_j8f.js.map +0 -1
- package/dist/ScarcityBadge-CSi-i0-w.js.map +0 -1
- package/dist/SeriesPage-bPZlyzQ6.js +0 -33
- package/dist/SeriesPage-bPZlyzQ6.js.map +0 -1
- package/dist/Spinner-BFIjCOTb.js.map +0 -1
- package/dist/Success-Cv8d2syu.js +0 -886
- package/dist/Success-Cv8d2syu.js.map +0 -1
- package/dist/Text-tWGKQJab.js.map +0 -1
- package/dist/VenueCalendar-Dhoi9hF5.js.map +0 -1
- package/dist/ViewTicketsEmbed-BrXae6cK.js.map +0 -1
- package/dist/labels-CGndTgO9.js.map +0 -1
- package/dist/modalManager.svelte-BgW5Xd6y.js.map +0 -1
- package/dist/promo-WWbp2OWI.js +0 -12
- package/dist/promo-WWbp2OWI.js.map +0 -1
- package/dist/showcase-state-options-BxLP2R1L.js.map +0 -1
- package/dist/transform-CVOgA-Ky.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { aN as D, Q as v } from "./VenueCalendar-ClSRsS6u.js";
|
|
2
2
|
import * as i from "svelte/internal/client";
|
|
3
3
|
function e(n, s, g = 0) {
|
|
4
4
|
const o = /* @__PURE__ */ new Date(), h = (5 - o.getUTCDay() + 7) % 7 || 7, r = new Date(
|
|
@@ -11,11 +11,11 @@ function e(n, s, g = 0) {
|
|
|
11
11
|
function m(n) {
|
|
12
12
|
return e(n, 0).slice(0, 10);
|
|
13
13
|
}
|
|
14
|
-
const
|
|
14
|
+
const k = {
|
|
15
15
|
id: 101,
|
|
16
16
|
name: "The Laugh Factory",
|
|
17
17
|
address: "8001 Sunset Blvd, Los Angeles, CA 90046",
|
|
18
|
-
timezone:
|
|
18
|
+
timezone: v(),
|
|
19
19
|
serviceFeePercentage: 10,
|
|
20
20
|
serviceFeeCents: 0,
|
|
21
21
|
taxPercentage: 9.5,
|
|
@@ -36,7 +36,7 @@ const v = {
|
|
|
36
36
|
displayName: "Mike Thompson",
|
|
37
37
|
profileImage: "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=200&h=200&fit=crop"
|
|
38
38
|
}
|
|
39
|
-
],
|
|
39
|
+
], P = [
|
|
40
40
|
{
|
|
41
41
|
question: "What time do doors open?",
|
|
42
42
|
answer: "Doors open at 7:00 PM, one hour before showtime. We recommend arriving early to get the best seats."
|
|
@@ -209,13 +209,13 @@ Whether you're a comedy regular or a first-timer, this show delivers. Grab your
|
|
|
209
209
|
startDateTime: `${d}T20:00:00-08:00`,
|
|
210
210
|
endDateTime: `${d}T22:00:00-08:00`,
|
|
211
211
|
doorsOpenTime: `${d}T19:00:00-08:00`,
|
|
212
|
-
timezone:
|
|
212
|
+
timezone: D,
|
|
213
213
|
imageUrl: "/posters/Friday Night Showdown.jpg",
|
|
214
214
|
// wide landscape 800×400
|
|
215
|
-
venue:
|
|
215
|
+
venue: k,
|
|
216
216
|
performers: u,
|
|
217
217
|
tickets: p,
|
|
218
|
-
faqs:
|
|
218
|
+
faqs: P,
|
|
219
219
|
disclaimer: "",
|
|
220
220
|
status: "on_sale",
|
|
221
221
|
isPasswordProtected: !1,
|
|
@@ -238,7 +238,7 @@ Whether you're a comedy regular or a first-timer, this show delivers. Grab your
|
|
|
238
238
|
status: "sold_out"
|
|
239
239
|
}))
|
|
240
240
|
});
|
|
241
|
-
const
|
|
241
|
+
const _ = {
|
|
242
242
|
...t,
|
|
243
243
|
id: 2407,
|
|
244
244
|
title: "Open Mic Night",
|
|
@@ -283,7 +283,7 @@ const O = {
|
|
|
283
283
|
...t,
|
|
284
284
|
collectionEvents: (e(0, 20), e(1, 21), e(2, 14), e(7, 20), e(8, 19), e(8, 22))
|
|
285
285
|
});
|
|
286
|
-
const
|
|
286
|
+
const A = {
|
|
287
287
|
...t,
|
|
288
288
|
id: 2408,
|
|
289
289
|
title: "Stand-Up Comedy Workshop",
|
|
@@ -313,7 +313,7 @@ const _ = {
|
|
|
313
313
|
],
|
|
314
314
|
totalTicketsRemaining: 8,
|
|
315
315
|
totalTicketsCapacity: 12
|
|
316
|
-
},
|
|
316
|
+
}, x = {
|
|
317
317
|
...t,
|
|
318
318
|
id: 2414,
|
|
319
319
|
title: "Charity Comedy Benefit",
|
|
@@ -383,7 +383,7 @@ const _ = {
|
|
|
383
383
|
({
|
|
384
384
|
...t
|
|
385
385
|
});
|
|
386
|
-
class
|
|
386
|
+
class q {
|
|
387
387
|
#e;
|
|
388
388
|
get current() {
|
|
389
389
|
return i.get(this.#e);
|
|
@@ -409,14 +409,14 @@ class P {
|
|
|
409
409
|
this.#e = i.state("default"), this.#t = i.state(i.proxy([])), this.#a = i.state(!1);
|
|
410
410
|
}
|
|
411
411
|
}
|
|
412
|
-
const
|
|
412
|
+
const C = new q(), a = {
|
|
413
413
|
success: "bg-accent-success",
|
|
414
414
|
info: "bg-sky-500",
|
|
415
415
|
brand: "bg-brand-primary",
|
|
416
416
|
danger: "bg-accent-danger",
|
|
417
417
|
warningSubtle: "bg-status-warning-bg0"
|
|
418
418
|
};
|
|
419
|
-
function
|
|
419
|
+
function H() {
|
|
420
420
|
return [
|
|
421
421
|
{ value: "default", label: "Standard", color: a.success },
|
|
422
422
|
{ value: "free", label: "Free", color: a.info },
|
|
@@ -427,7 +427,7 @@ function C() {
|
|
|
427
427
|
{ value: "promo", label: "Promo discount", color: a.success }
|
|
428
428
|
];
|
|
429
429
|
}
|
|
430
|
-
function
|
|
430
|
+
function F() {
|
|
431
431
|
return [
|
|
432
432
|
{ value: "default", label: "Standard", color: a.success },
|
|
433
433
|
{ value: "free", label: "Free", color: a.info },
|
|
@@ -436,12 +436,12 @@ function H() {
|
|
|
436
436
|
];
|
|
437
437
|
}
|
|
438
438
|
export {
|
|
439
|
-
|
|
440
|
-
|
|
439
|
+
A as a,
|
|
440
|
+
_ as b,
|
|
441
441
|
t as c,
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
442
|
+
C as d,
|
|
443
|
+
H as e,
|
|
444
|
+
F as g,
|
|
445
|
+
x as m
|
|
446
446
|
};
|
|
447
|
-
//# sourceMappingURL=showcase-state-options-
|
|
447
|
+
//# sourceMappingURL=showcase-state-options-9SoS5WuT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"showcase-state-options-9SoS5WuT.js","sources":["../src/lib/public-calendar-flow/mock-data.ts","../src/lib/public-calendar-flow/data-toggle-store.svelte.ts","../src/lib/public-calendar-flow/showcase-state-options.ts"],"sourcesContent":["import { getDefaultTimezone } from '@getmicdrop/svelte-components/utils/timezones';\r\nimport { DEFAULT_TIMEZONE } from '$lib/utils/timezone.js';\n// Premium Ticket Experience — Mock Data\r\n// Realistic event data for all design variants. DO NOT MODIFY per-variant.\r\n\r\nimport type {\r\n EventData,\r\n PerformerData,\r\n FAQItem,\r\n VenueData,\r\n TicketTypeData,\r\n} from './types';\r\n\r\n// All dates here are anchored to \"the upcoming Friday at 8pm\" so the showcase\r\n// stays in the future regardless of when it's loaded. Hardcoded calendar dates\r\n// rot every few months and cause `event_past` CTAs even when status === 'on_sale'.\r\nfunction showcaseDate(\r\n daysFromFriday: number,\r\n hour: number,\r\n minute = 0\r\n): string {\r\n const now = new Date(); // @datetime-escape: mock/demo fixture data — not a live datetime path\r\n const day = now.getUTCDay(); // 0=Sun..6=Sat\r\n const daysToFriday = (5 - day + 7) % 7 || 7; // always the NEXT Friday (never today)\r\n // @datetime-escape: mock/demo fixture data — not a live datetime path\r\n const base = new Date(\r\n Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate())\r\n );\r\n base.setUTCDate(base.getUTCDate() + daysToFriday + daysFromFriday);\r\n const y = base.getUTCFullYear();\r\n const m = String(base.getUTCMonth() + 1).padStart(2, '0');\r\n const d = String(base.getUTCDate()).padStart(2, '0');\r\n const hh = String(hour).padStart(2, '0');\r\n const mm = String(minute).padStart(2, '0');\r\n return `${y}-${m}-${d}T${hh}:${mm}:00-08:00`;\r\n}\r\n\r\nfunction showcaseDateOnly(daysFromFriday: number): string {\r\n return showcaseDate(daysFromFriday, 0).slice(0, 10);\r\n}\r\n\r\n// --- Venue ---\r\nexport const mockVenue: VenueData = {\r\n id: 101,\r\n name: 'The Laugh Factory',\r\n address: '8001 Sunset Blvd, Los Angeles, CA 90046',\r\n timezone: getDefaultTimezone(),\r\n serviceFeePercentage: 10,\r\n serviceFeeCents: 0,\r\n taxPercentage: 9.5,\r\n contactEmail: 'help@thelaughfactory.com',\r\n};\r\n\r\n// --- Performers ---\r\nexport const mockPerformers: PerformerData[] = [\r\n {\r\n id: 1,\r\n displayName: 'Dave Martinez',\r\n profileImage:\r\n 'https://images.unsplash.com/photo-1506794778202-cad84cf45f1d?w=200&h=200&fit=crop',\r\n },\r\n {\r\n id: 2,\r\n displayName: 'Sarah Chen',\r\n profileImage:\r\n 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=200&h=200&fit=crop',\r\n },\r\n {\r\n id: 3,\r\n displayName: 'Mike Thompson',\r\n profileImage:\r\n 'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=200&h=200&fit=crop',\r\n },\r\n];\r\n\r\n// --- FAQs ---\r\nexport const mockFaqs: FAQItem[] = [\r\n {\r\n question: 'What time do doors open?',\r\n answer:\r\n 'Doors open at 7:00 PM, one hour before showtime. We recommend arriving early to get the best seats.',\r\n },\r\n {\r\n question: 'Is there a drink minimum?',\r\n answer:\r\n 'Yes, there is a 2-drink minimum per person. Both alcoholic and non-alcoholic beverages count toward the minimum.',\r\n },\r\n {\r\n question: 'Can I get a refund?',\r\n answer:\r\n 'Tickets are non-refundable but can be transferred to another person up to 24 hours before the show. Contact us for transfers.',\r\n },\r\n {\r\n question: 'Is the venue accessible?',\r\n answer:\r\n 'Yes, the venue is fully wheelchair accessible with ADA-compliant seating available. Please contact us to reserve accessible seating.',\r\n },\r\n];\r\n\r\n// --- Ticket Types ---\r\nexport const mockTickets: TicketTypeData[] = [\r\n\t{\r\n\t\tid: 101,\r\n\t\tname: 'General Admission',\r\n\t\tdescription: 'Standard seating in the main room',\r\n\t\tprice: 25,\r\n\t\tfee: 2.5,\r\n\t\tquantityAvailable: 12,\r\n\t\tquantityTotal: 150,\r\n\t\tminPerOrder: 1,\r\n\t\tmaxPerOrder: 8,\r\n\t\tstatus: 'on_sale',\r\n\t\tsalesEndDate: '2026-02-20T20:00:00-08:00',\r\n\t\tisDonation: false,\r\n\t\tisHidden: false\r\n\t},\r\n\t{\r\n\t\tid: 102,\r\n\t\tname: 'VIP Front Row',\r\n\t\tdescription: 'Premium seats in the first two rows with a complimentary drink',\r\n\t\tprice: 55,\r\n\t\tfee: 5.5,\r\n\t\tquantityAvailable: 3,\r\n\t\tquantityTotal: 20,\r\n\t\tminPerOrder: 1,\r\n\t\tmaxPerOrder: 4,\r\n\t\tstatus: 'on_sale',\r\n\t\tsalesEndDate: '2026-02-20T20:00:00-08:00',\r\n\t\tisDonation: false,\r\n\t\tisHidden: false\r\n\t},\r\n\t{\r\n\t\tid: 103,\r\n\t\tname: 'Table for 4',\r\n\t\tdescription: 'Reserved table for four guests with bottle service',\r\n\t\tprice: 180,\r\n\t\tfee: 18,\r\n\t\tquantityAvailable: 8,\r\n\t\tquantityTotal: 15,\r\n\t\tminPerOrder: 1,\r\n\t\tmaxPerOrder: 3,\r\n\t\tstatus: 'on_sale',\r\n\t\tisDonation: false,\r\n\t\tisHidden: false\r\n\t},\r\n\t{\r\n\t\tid: 104,\r\n\t\tname: 'Student Discount',\r\n\t\tdescription: 'Valid student ID required at the door',\r\n\t\tprice: 15,\r\n\t\tfee: 1.5,\r\n\t\tquantityAvailable: 45,\r\n\t\tquantityTotal: 50,\r\n\t\tminPerOrder: 1,\r\n\t\tmaxPerOrder: 2,\r\n\t\tstatus: 'on_sale',\r\n\t\tisDonation: false,\r\n\t\tisHidden: false\r\n\t},\r\n\t{\r\n\t\tid: 105,\r\n\t\tname: 'Early Bird Special',\r\n\t\tdescription: 'Limited early bird pricing — first come, first served',\r\n\t\tprice: 20,\r\n\t\tfee: 2,\r\n\t\tquantityAvailable: 15,\r\n\t\tquantityTotal: 30,\r\n\t\tminPerOrder: 1,\r\n\t\tmaxPerOrder: 4,\r\n\t\tstatus: 'on_sale',\r\n\t\tisDonation: false,\r\n\t\tisHidden: false\r\n\t},\r\n\t{\r\n\t\tid: 106,\r\n\t\tname: 'Senior (65+)',\r\n\t\tdescription: 'Senior discount with valid ID at the door',\r\n\t\tprice: 18,\r\n\t\tfee: 1.8,\r\n\t\tquantityAvailable: 30,\r\n\t\tquantityTotal: 40,\r\n\t\tminPerOrder: 1,\r\n\t\tmaxPerOrder: 4,\r\n\t\tstatus: 'on_sale',\r\n\t\tisDonation: false,\r\n\t\tisHidden: false\r\n\t},\r\n\t{\r\n\t\tid: 107,\r\n\t\tname: 'Industry Comp',\r\n\t\tdescription: 'Discount for industry professionals — credentials required',\r\n\t\tprice: 12,\r\n\t\tfee: 1.2,\r\n\t\tquantityAvailable: 25,\r\n\t\tquantityTotal: 30,\r\n\t\tminPerOrder: 1,\r\n\t\tmaxPerOrder: 2,\r\n\t\tstatus: 'on_sale',\r\n\t\tisDonation: false,\r\n\t\tisHidden: false\r\n\t},\r\n\t{\r\n\t\tid: 108,\r\n\t\tname: 'Group of 6',\r\n\t\tdescription: 'Reserved booth for six guests with priority seating',\r\n\t\tprice: 240,\r\n\t\tfee: 24,\r\n\t\tquantityAvailable: 5,\r\n\t\tquantityTotal: 8,\r\n\t\tminPerOrder: 1,\r\n\t\tmaxPerOrder: 2,\r\n\t\tstatus: 'on_sale',\r\n\t\tisDonation: false,\r\n\t\tisHidden: false\r\n\t},\r\n\t{\r\n\t\tid: 109,\r\n\t\tname: 'Standing Room',\r\n\t\tdescription: 'Standing room only at the back of the venue',\r\n\t\tprice: 12,\r\n\t\tfee: 1.2,\r\n\t\tquantityAvailable: 50,\r\n\t\tquantityTotal: 60,\r\n\t\tminPerOrder: 1,\r\n\t\tmaxPerOrder: 6,\r\n\t\tstatus: 'on_sale',\r\n\t\tisDonation: false,\r\n\t\tisHidden: false\r\n\t},\r\n\t{\r\n\t\tid: 110,\r\n\t\tname: 'Day-of Door',\r\n\t\tdescription: 'Day-of pricing for walk-ins — limited availability',\r\n\t\tprice: 35,\r\n\t\tfee: 3.5,\r\n\t\tquantityAvailable: 20,\r\n\t\tquantityTotal: 25,\r\n\t\tminPerOrder: 1,\r\n\t\tmaxPerOrder: 4,\r\n\t\tstatus: 'on_sale',\r\n\t\tisDonation: false,\r\n\t\tisHidden: false\r\n\t}\r\n];\r\n\r\n// --- Main Event (on sale, multiple ticket types, scarcity on VIP) ---\r\n// Computed relative to today (showcase use): always lands ~21 days in the\r\n// future so the BookingWidget renders the on-sale state, not \"Sales ended\".\r\n// Memory: [[user_mastermind_date_awareness]] — never hardcode showcase dates.\r\nconst _now = new Date(); // @datetime-escape: mock/demo fixture data — not a live datetime path\r\nconst _evDate = new Date(_now.getFullYear(), _now.getMonth(), _now.getDate() + 21); // @datetime-escape: mock/demo fixture data — not a live datetime path\r\nconst _ymd = `${_evDate.getFullYear()}-${String(_evDate.getMonth() + 1).padStart(2, '0')}-${String(_evDate.getDate()).padStart(2, '0')}`;\r\n\r\nexport const mockEvent: EventData = {\r\n id: 2405,\r\n title: 'Friday Night Comedy Throwdown',\r\n slug: 'friday-night-comedy-throwdown',\r\n description: `Get ready for the funniest night of the week! The Friday Night Comedy Throwdown brings together three of LA's hottest stand-up comics for two hours of non-stop laughs.\r\n\r\nHeadliner Dave Martinez (as seen on Netflix's \"Comedy Knockout\") brings his signature high-energy style, while Sarah Chen delivers her razor-sharp observational humor that's earned her a devoted following. Host Mike Thompson keeps the energy up between sets with crowd work that'll have you crying laughing.\r\n\r\nWhether you're a comedy regular or a first-timer, this show delivers. Grab your crew, grab some drinks, and prepare to laugh until your abs hurt.`,\r\n\tdate: _ymd,\r\n\tstartDateTime: `${_ymd}T20:00:00-08:00`,\r\n\tendDateTime: `${_ymd}T22:00:00-08:00`,\r\n\tdoorsOpenTime: `${_ymd}T19:00:00-08:00`,\r\n\ttimezone: DEFAULT_TIMEZONE,\r\n\timageUrl: '/posters/Friday Night Showdown.jpg', // wide landscape 800×400\r\n\tvenue: mockVenue,\r\n\tperformers: mockPerformers,\r\n\ttickets: mockTickets,\r\n\tfaqs: mockFaqs,\r\n\tdisclaimer: '',\r\n\tstatus: 'on_sale',\r\n\tisPasswordProtected: false,\r\n\tisRegistrationEvent: false,\r\n\ttotalTicketsRemaining: 68,\r\n\ttotalTicketsCapacity: 265,\r\n\tdisplayStartTime: true,\r\n\tdisplayEndTime: true,\r\n\tdisplayDoorsTime: true\r\n};\r\n\r\n// --- Sold Out Event (no end time shown) ---\r\nexport const mockSoldOutEvent: EventData = {\r\n ...mockEvent,\r\n id: 2406,\r\n title: 'Saturday Night Special',\r\n slug: 'saturday-night-special',\r\n imageUrl: '/posters/the-duel-square.webp', // square 3000×3000\r\n date: showcaseDateOnly(1),\r\n startDateTime: showcaseDate(1, 21),\r\n endDateTime: showcaseDate(1, 23),\r\n displayEndTime: false,\r\n status: 'sold_out',\r\n totalTicketsRemaining: 0,\r\n tickets: mockTickets.map(t => ({\r\n ...t,\r\n quantityAvailable: 0,\r\n status: 'sold_out' as const,\r\n })),\r\n};\r\n\r\n// --- Free Event (no doors time shown) ---\r\nexport const mockFreeEvent: EventData = {\r\n ...mockEvent,\r\n id: 2407,\r\n title: 'Open Mic Night',\r\n slug: 'open-mic-night',\r\n imageUrl: '/posters/OpenMic-Twitter.jpg', // wide landscape 2127×1075\r\n date: showcaseDateOnly(-2),\r\n startDateTime: showcaseDate(-2, 19),\r\n endDateTime: showcaseDate(-2, 21),\r\n displayDoorsTime: false,\r\n description:\r\n 'Free open mic night! Sign up at the door. All skill levels welcome.',\r\n status: 'on_sale',\r\n tickets: [\r\n {\r\n id: 201,\r\n name: 'Free Entry',\r\n description: 'Sign up at the door for a 5-minute set',\r\n price: 0,\r\n fee: 0,\r\n quantityAvailable: 40,\r\n quantityTotal: 50,\r\n minPerOrder: 1,\r\n maxPerOrder: 2,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n },\r\n ],\r\n totalTicketsRemaining: 40,\r\n totalTicketsCapacity: 50,\r\n};\r\n\r\n// --- Series Event (with occurrences) ---\r\nexport const mockSeriesEvent: EventData = {\r\n ...mockEvent,\r\n id: 2410,\r\n title: 'Improv Throwdown',\r\n slug: 'improv-throwdown',\r\n imageUrl: '/posters/laughlab-tall.webp', // tall portrait 2550×3300\r\n eventSeriesId: 42,\r\n description:\r\n 'Weekly improv comedy show featuring rotating guest performers and audience participation games.',\r\n seriesOccurrences: [\r\n // Same-day shows (Fri Feb 20 — 7pm, 8pm, 9:30pm)\r\n {\r\n id: 2410,\r\n slug: 'improv-throwdown-feb-20-7pm',\r\n startDateTime: showcaseDate(0, 19),\r\n endDateTime: showcaseDate(0, 20, 30),\r\n status: 'sold_out',\r\n ctaText: 'Sold out',\r\n ctaDisabled: true,\r\n },\r\n {\r\n id: 2414,\r\n slug: 'improv-throwdown-feb-20-8pm',\r\n startDateTime: showcaseDate(0, 20),\r\n endDateTime: showcaseDate(0, 21, 30),\r\n status: 'on_sale',\r\n ctaText: 'Get tickets',\r\n ctaDisabled: false,\r\n },\r\n {\r\n id: 2415,\r\n slug: 'improv-throwdown-feb-20-930pm',\r\n startDateTime: showcaseDate(0, 21, 30),\r\n endDateTime: showcaseDate(0, 23),\r\n status: 'on_sale',\r\n ctaText: 'Get tickets',\r\n ctaDisabled: false,\r\n },\r\n // Single show days\r\n {\r\n id: 2411,\r\n slug: 'improv-throwdown-feb-27',\r\n startDateTime: showcaseDate(7, 20),\r\n endDateTime: showcaseDate(7, 22),\r\n status: 'sold_out',\r\n ctaText: 'Sold out',\r\n ctaDisabled: true,\r\n },\r\n {\r\n id: 2412,\r\n slug: 'improv-throwdown-mar-06',\r\n startDateTime: showcaseDate(14, 20),\r\n endDateTime: showcaseDate(14, 22),\r\n status: 'on_sale',\r\n ctaText: 'Get tickets',\r\n ctaDisabled: false,\r\n },\r\n {\r\n id: 2413,\r\n slug: 'improv-throwdown-mar-13',\r\n startDateTime: showcaseDate(21, 20),\r\n endDateTime: showcaseDate(21, 22),\r\n status: 'coming_soon',\r\n ctaText: 'Coming soon',\r\n ctaDisabled: true,\r\n },\r\n ],\r\n};\r\n\r\n// --- Series Instance (one specific occurrence of the series — regular event page with series link) ---\r\nexport const mockSeriesInstanceEvent: EventData = {\r\n ...mockEvent,\r\n id: 2414,\r\n title: 'Improv Throwdown',\r\n slug: 'improv-throwdown-feb-20-8pm',\r\n imageUrl: '/posters/laughlab-tall.webp',\r\n eventSeriesId: 42,\r\n startDateTime: showcaseDate(0, 20),\r\n endDateTime: showcaseDate(0, 21, 30),\r\n description:\r\n 'Weekly improv comedy show featuring rotating guest performers and audience participation games.',\r\n // No seriesOccurrences — this is a single instance, not the series home\r\n};\r\n\r\n// --- Collection Home (loose grouping of different events with widgets) ---\r\nexport const mockCollectionEvent: EventData = {\r\n ...mockEvent,\r\n id: 3000,\r\n title: 'February Comedy Festival',\r\n slug: 'february-comedy-festival',\r\n imageUrl: '/posters/Friday Night Showdown.jpg',\r\n description:\r\n \"A curated collection of the best comedy shows this February. From improv to stand-up, sketch to open mic — there's something for every comedy fan.\",\r\n collectionId: 7,\r\n collectionEvents: [\r\n {\r\n id: 2401,\r\n name: 'Friday Night Comedy Throwdown',\r\n slug: 'friday-night-comedy-throwdown',\r\n image: '/posters/Friday Night Showdown.jpg',\r\n startDateTime: showcaseDate(0, 20),\r\n status: 'on_sale',\r\n ticketsRemaining: 42,\r\n ticketsTotal: 200,\r\n },\r\n {\r\n id: 2402,\r\n name: 'Saturday Night Special',\r\n slug: 'saturday-night-special',\r\n image: '/posters/the-duel-square.webp',\r\n startDateTime: showcaseDate(1, 21),\r\n status: 'on_sale',\r\n ticketsRemaining: 8,\r\n ticketsTotal: 150,\r\n },\r\n {\r\n id: 2403,\r\n name: 'Stand-Up Comedy Workshop',\r\n slug: 'standup-comedy-workshop',\r\n image: '/posters/stand up 101.png',\r\n startDateTime: showcaseDate(2, 14),\r\n status: 'on_sale',\r\n ticketsRemaining: 15,\r\n ticketsTotal: 30,\r\n },\r\n {\r\n id: 2410,\r\n name: 'Improv Throwdown',\r\n slug: 'improv-throwdown',\r\n image: '/posters/laughlab-tall.webp',\r\n startDateTime: showcaseDate(7, 20),\r\n status: 'on_sale',\r\n ticketsRemaining: 65,\r\n ticketsTotal: 200,\r\n },\r\n {\r\n id: 2404,\r\n name: 'Open Mic Night',\r\n slug: 'open-mic-night',\r\n image: '/posters/OpenMic-Twitter.jpg',\r\n startDateTime: showcaseDate(8, 19),\r\n status: 'on_sale',\r\n ticketsRemaining: 100,\r\n ticketsTotal: 100,\r\n },\r\n {\r\n id: 2405,\r\n name: 'Late Night Comedy Underground',\r\n slug: 'late-night-comedy-underground',\r\n image: '/posters/standup-portrait.webp',\r\n startDateTime: showcaseDate(8, 22),\r\n status: 'sold_out',\r\n ticketsRemaining: 0,\r\n ticketsTotal: 80,\r\n },\r\n ],\r\n};\r\n\r\n// --- Registration Event (workshop — no time shown, just date + doors) ---\r\nexport const mockRegistrationEvent: EventData = {\r\n ...mockEvent,\r\n id: 2408,\r\n title: 'Stand-Up Comedy Workshop',\r\n slug: 'standup-comedy-workshop',\r\n imageUrl: '/posters/stand up 101.png', // 16:9 landscape 1920×1080\r\n description:\r\n 'Learn the fundamentals of stand-up comedy in this 3-hour intensive workshop. Write, refine, and perform your first 5-minute set.',\r\n isRegistrationEvent: true,\r\n displayStartTime: false,\r\n displayEndTime: false,\r\n status: 'on_sale',\r\n tickets: [\r\n {\r\n id: 301,\r\n name: 'Workshop Seat',\r\n description: 'Includes materials and performance slot',\r\n price: 75,\r\n fee: 7.5,\r\n quantityAvailable: 8,\r\n quantityTotal: 12,\r\n minPerOrder: 1,\r\n maxPerOrder: 1,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n },\r\n ],\r\n totalTicketsRemaining: 8,\r\n totalTicketsCapacity: 12,\r\n};\r\n\r\n// --- Donation Event ---\r\nexport const mockDonationEvent: EventData = {\r\n ...mockEvent,\r\n id: 2414,\r\n title: 'Charity Comedy Benefit',\r\n slug: 'charity-comedy-benefit',\r\n imageUrl: '/posters/Friday Night Showdown.jpg',\r\n description:\r\n 'All proceeds go to the LA Comedy Relief Fund. Choose your own donation amount or grab a standard ticket.',\r\n status: 'on_sale',\r\n tickets: [\r\n {\r\n id: 401,\r\n name: 'Donation',\r\n description: 'Support the cause — choose your amount',\r\n price: 0,\r\n fee: 0,\r\n quantityAvailable: 200,\r\n quantityTotal: 200,\r\n minPerOrder: 1,\r\n maxPerOrder: 10,\r\n status: 'on_sale',\r\n isDonation: true,\r\n isHidden: false,\r\n ticketType: 2,\r\n },\r\n {\r\n id: 402,\r\n name: 'Standard Admission',\r\n description: 'Includes one drink ticket',\r\n price: 30,\r\n fee: 3,\r\n quantityAvailable: 80,\r\n quantityTotal: 100,\r\n minPerOrder: 1,\r\n maxPerOrder: 6,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n },\r\n ],\r\n totalTicketsRemaining: 280,\r\n totalTicketsCapacity: 300,\r\n};\r\n\r\n// --- Mixed Event (ALL ticket states in one event) ---\r\nexport const mockMixedEvent: EventData = {\r\n ...mockEvent,\r\n id: 2415,\r\n title: 'The Everything Show',\r\n slug: 'the-everything-show',\r\n imageUrl: '/posters/the-duel-square.webp',\r\n description:\r\n 'A showcase event with every ticket state possible — for testing all edge cases.',\r\n status: 'on_sale',\r\n tickets: [\r\n {\r\n id: 501,\r\n name: 'General Admission',\r\n description: 'Standard seating in the main room',\r\n price: 25,\r\n fee: 2.5,\r\n quantityAvailable: 45,\r\n quantityTotal: 150,\r\n minPerOrder: 1,\r\n maxPerOrder: 8,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n },\r\n {\r\n id: 502,\r\n name: 'Basic Entry',\r\n price: 15,\r\n fee: 1.5,\r\n quantityAvailable: 60,\r\n quantityTotal: 80,\r\n minPerOrder: 1,\r\n maxPerOrder: 4,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n },\r\n {\r\n id: 503,\r\n name: 'VIP Front Row',\r\n description: 'Premium seats with complimentary drink',\r\n price: 75,\r\n fee: 7.5,\r\n quantityAvailable: 2,\r\n quantityTotal: 20,\r\n minPerOrder: 1,\r\n maxPerOrder: 4,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n },\r\n {\r\n id: 504,\r\n name: 'Early Bird',\r\n description: 'Limited early bird pricing',\r\n price: 20,\r\n fee: 2,\r\n quantityAvailable: 0,\r\n quantityTotal: 30,\r\n minPerOrder: 1,\r\n maxPerOrder: 4,\r\n status: 'sold_out',\r\n isDonation: false,\r\n isHidden: false,\r\n },\r\n {\r\n id: 505,\r\n name: 'Late Night Add-On',\r\n description: 'Access to the after-party at midnight',\r\n price: 40,\r\n fee: 4,\r\n quantityAvailable: 50,\r\n quantityTotal: 50,\r\n minPerOrder: 1,\r\n maxPerOrder: 2,\r\n status: 'coming_soon',\r\n salesStartDate: showcaseDate(9, 10),\r\n isDonation: false,\r\n isHidden: false,\r\n },\r\n {\r\n id: 506,\r\n name: 'Weekend Bundle',\r\n description: 'Includes Saturday + Sunday shows',\r\n price: 45,\r\n fee: 4.5,\r\n quantityAvailable: 0,\r\n quantityTotal: 25,\r\n minPerOrder: 1,\r\n maxPerOrder: 4,\r\n status: 'sales_ended',\r\n salesEndDate: showcaseDate(-10, 23, 59),\r\n isDonation: false,\r\n isHidden: false,\r\n },\r\n {\r\n id: 507,\r\n name: 'Donation',\r\n description: 'Support the performers directly',\r\n price: 0,\r\n fee: 0,\r\n quantityAvailable: 100,\r\n quantityTotal: 100,\r\n minPerOrder: 1,\r\n maxPerOrder: 5,\r\n status: 'on_sale',\r\n isDonation: true,\r\n isHidden: false,\r\n ticketType: 2,\r\n },\r\n {\r\n id: 508,\r\n name: 'Secret VIP Lounge',\r\n description: 'Backstage access with meet & greet',\r\n price: 150,\r\n fee: 15,\r\n quantityAvailable: 10,\r\n quantityTotal: 10,\r\n minPerOrder: 1,\r\n maxPerOrder: 2,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: true,\r\n },\r\n {\r\n id: 509,\r\n name: 'Industry Comp',\r\n description: 'Complimentary ticket for industry professionals',\r\n price: 0,\r\n fee: 0,\r\n quantityAvailable: 20,\r\n quantityTotal: 20,\r\n minPerOrder: 1,\r\n maxPerOrder: 1,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: true,\r\n },\r\n ],\r\n totalTicketsRemaining: 287,\r\n totalTicketsCapacity: 485,\r\n};\r\n\r\n// --- Sectioned Event (tickets grouped by section) ---\r\nexport const mockSectionedEvent: EventData = {\r\n ...mockEvent,\r\n id: 2416,\r\n title: 'Multi-Stage Festival',\r\n slug: 'multi-stage-festival',\r\n imageUrl: '/posters/OpenMic-Twitter.jpg',\r\n description:\r\n 'Three stages, one incredible night. Choose your zone and enjoy performances across the venue.',\r\n status: 'on_sale',\r\n tickets: [\r\n {\r\n id: 601,\r\n name: 'Floor Standing',\r\n description: 'Standing room on the main floor',\r\n price: 35,\r\n fee: 3.5,\r\n quantityAvailable: 100,\r\n quantityTotal: 200,\r\n minPerOrder: 1,\r\n maxPerOrder: 8,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n sectionName: 'Floor',\r\n },\r\n {\r\n id: 602,\r\n name: 'Floor Reserved',\r\n description: 'Reserved seat on the main floor',\r\n price: 50,\r\n fee: 5,\r\n quantityAvailable: 30,\r\n quantityTotal: 80,\r\n minPerOrder: 1,\r\n maxPerOrder: 6,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n sectionName: 'Floor',\r\n },\r\n {\r\n id: 603,\r\n name: 'Balcony Standard',\r\n description: 'Standard balcony seating with great views',\r\n price: 40,\r\n fee: 4,\r\n quantityAvailable: 50,\r\n quantityTotal: 60,\r\n minPerOrder: 1,\r\n maxPerOrder: 6,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n sectionName: 'Balcony',\r\n },\r\n {\r\n id: 604,\r\n name: 'Balcony Premium',\r\n description: 'Front-row balcony seats',\r\n price: 60,\r\n fee: 6,\r\n quantityAvailable: 5,\r\n quantityTotal: 20,\r\n minPerOrder: 1,\r\n maxPerOrder: 4,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n sectionName: 'Balcony',\r\n },\r\n {\r\n id: 605,\r\n name: 'VIP Lounge Table',\r\n description:\r\n 'Private table for 4 with bottle service and backstage access',\r\n price: 250,\r\n fee: 25,\r\n quantityAvailable: 3,\r\n quantityTotal: 8,\r\n minPerOrder: 1,\r\n maxPerOrder: 2,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n sectionName: 'VIP Lounge',\r\n },\r\n ],\r\n totalTicketsRemaining: 188,\r\n totalTicketsCapacity: 368,\r\n};\r\n\r\n// --- Promo Event (hidden tickets for promo reveal testing) ---\r\nexport const mockPromoEvent: EventData = {\r\n ...mockEvent,\r\n id: 2417,\r\n title: 'Secret Show',\r\n slug: 'secret-show',\r\n imageUrl: '/posters/luke-null-tall.webp',\r\n description:\r\n 'An intimate comedy experience. Some tickets are only available with a promo code.',\r\n status: 'on_sale',\r\n tickets: [\r\n {\r\n id: 701,\r\n name: 'General Admission',\r\n price: 30,\r\n fee: 3,\r\n quantityAvailable: 40,\r\n quantityTotal: 60,\r\n minPerOrder: 1,\r\n maxPerOrder: 6,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n },\r\n {\r\n id: 702,\r\n name: 'Premium Seat',\r\n description: 'Reserved seating in rows 1-5',\r\n price: 50,\r\n fee: 5,\r\n quantityAvailable: 15,\r\n quantityTotal: 30,\r\n minPerOrder: 1,\r\n maxPerOrder: 4,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n },\r\n {\r\n id: 703,\r\n name: 'Artist Meet & Greet',\r\n description:\r\n 'Backstage pass with photo opportunity — promo code required',\r\n price: 100,\r\n fee: 10,\r\n quantityAvailable: 8,\r\n quantityTotal: 10,\r\n minPerOrder: 1,\r\n maxPerOrder: 2,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: true,\r\n },\r\n {\r\n id: 704,\r\n name: 'Industry Comp',\r\n description: 'Complimentary entry for industry professionals',\r\n price: 0,\r\n fee: 0,\r\n quantityAvailable: 10,\r\n quantityTotal: 10,\r\n minPerOrder: 1,\r\n maxPerOrder: 1,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: true,\r\n },\r\n ],\r\n totalTicketsRemaining: 73,\r\n totalTicketsCapacity: 110,\r\n};\r\n\r\n// --- Hidden-Only Event (MIC-1039) — no visible tickets, only hidden remain ---\r\n// Lands the user on a page where the only purchasable seats are gated behind\r\n// a promo code. With zero visible tickets the page should suppress the ticket\r\n// list entirely and render only the PromoCodeInput.\r\nexport const mockHiddenOnlyEvent: EventData = {\r\n ...mockEvent,\r\n id: 2419,\r\n title: 'Industry Showcase',\r\n slug: 'industry-showcase',\r\n description:\r\n 'A private comedy showcase. Tickets are only available with a promo code.',\r\n status: 'on_sale',\r\n tickets: [\r\n {\r\n id: 902,\r\n name: 'Industry Comp',\r\n description:\r\n 'Complimentary entry for industry professionals — promo code required',\r\n price: 0,\r\n fee: 0,\r\n quantityAvailable: 15,\r\n quantityTotal: 20,\r\n minPerOrder: 1,\r\n maxPerOrder: 2,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: true,\r\n },\r\n {\r\n id: 903,\r\n name: 'Artist Hold',\r\n description: 'Held for artist guests — promo code required',\r\n price: 50,\r\n fee: 5,\r\n quantityAvailable: 5,\r\n quantityTotal: 10,\r\n minPerOrder: 1,\r\n maxPerOrder: 4,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: true,\r\n },\r\n ],\r\n totalTicketsRemaining: 0,\r\n totalTicketsCapacity: 0,\r\n};\r\n\r\n// --- Multi-Stage Event (stage name + age restriction) ---\r\nexport const mockMultiStageEvent: EventData = {\r\n ...mockEvent,\r\n id: 2418,\r\n title: 'Late Night Comedy Underground',\r\n slug: 'late-night-comedy-underground',\r\n imageUrl: '/posters/laughlab-tall.webp',\r\n description:\r\n 'The raunchiest, most unfiltered comedy night in LA. Side stage, no holds barred.',\r\n status: 'on_sale',\r\n stageName: 'Side Stage',\r\n ageRestriction: 21,\r\n displayAgeRestriction: true,\r\n tickets: [\r\n {\r\n id: 801,\r\n name: 'General Admission',\r\n price: 20,\r\n fee: 2,\r\n quantityAvailable: 25,\r\n quantityTotal: 40,\r\n minPerOrder: 1,\r\n maxPerOrder: 4,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n },\r\n {\r\n id: 802,\r\n name: 'VIP Booth',\r\n description: 'Reserved booth for 2 with drinks included',\r\n price: 80,\r\n fee: 8,\r\n quantityAvailable: 4,\r\n quantityTotal: 6,\r\n minPerOrder: 1,\r\n maxPerOrder: 2,\r\n status: 'on_sale',\r\n isDonation: false,\r\n isHidden: false,\r\n },\r\n ],\r\n totalTicketsRemaining: 29,\r\n totalTicketsCapacity: 46,\r\n};\r\n\r\n// --- Long Name Event (Laugh Factory-style: all performers in the title) ---\r\nexport const mockLongNameEvent: EventData = {\r\n ...mockEvent,\r\n id: 2420,\r\n title:\r\n 'The Friday Night All-Star Comedy Throwdown featuring Dave Martinez, Sarah Chen, Mike Thompson, Bobby Lee, Andrew Santino, Hasan Minhaj, and Very Special Guests from Netflix, Comedy Central, HBO, and Amazon Prime',\r\n slug: 'the-friday-night-all-star-comedy-throwdown',\r\n imageUrl: '/posters/laughlab-tall.webp',\r\n description: `The biggest lineup of the year! Seven of the hottest comics in LA on one stage for one unforgettable night. This is the show comedy fans have been waiting for — a stacked bill from top to bottom with headliners you've seen on every major streaming platform.\r\n\r\nDave Martinez (Netflix's \"Comedy Knockout\") headlines with his signature high-energy style. Sarah Chen brings her razor-sharp observational humor. Mike Thompson keeps the energy sky-high between sets. Bobby Lee delivers his unhinged brilliance. Andrew Santino roasts everything in sight. Hasan Minhaj brings the political heat. Plus surprise guests you won't want to miss.\r\n\r\nTwo-drink minimum. No photography or recording. Arrive early — seating is first come, first served.`,\r\n ageRestriction: 18,\r\n displayAgeRestriction: true,\r\n displayStartTime: true,\r\n displayEndTime: true,\r\n displayDoorsTime: true,\r\n performers: [\r\n ...mockPerformers,\r\n {\r\n id: 4,\r\n displayName: 'Bobby Lee',\r\n profileImage:\r\n 'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=200&h=200&fit=crop',\r\n },\r\n {\r\n id: 5,\r\n displayName: 'Andrew Santino',\r\n profileImage:\r\n 'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=200&h=200&fit=crop',\r\n },\r\n {\r\n id: 6,\r\n displayName: 'Hasan Minhaj',\r\n profileImage:\r\n 'https://images.unsplash.com/photo-1519085360753-af0119f7cbe7?w=200&h=200&fit=crop',\r\n },\r\n ],\r\n};\r\n\r\n// --- Wide/Panoramic Image Event (tests min-height behavior) ---\r\nexport const mockWideImageEvent: EventData = {\r\n ...mockEvent,\r\n id: 2421,\r\n title: 'Sunset Sessions: Rooftop Jazz & Cocktails',\r\n slug: 'sunset-sessions-rooftop-jazz',\r\n imageUrl: '/posters/Wide.jpg',\r\n description: `Join us on the rooftop for an evening of smooth jazz, craft cocktails, and stunning sunset views over the city. Featuring a rotating cast of LA's finest jazz musicians in an intimate outdoor setting.\r\n\r\nFull bar available with specialty cocktails curated for the evening. Light bites and small plates from our kitchen. Dress code: smart casual.`,\r\n displayStartTime: true,\r\n displayEndTime: true,\r\n displayDoorsTime: true,\r\n};\r\n\r\n// --- Password Protected Event ---\r\nexport const mockPasswordEvent: EventData = {\r\n ...mockEvent,\r\n id: 2409,\r\n title: 'Secret Comedy Club',\r\n slug: 'secret-comedy-club',\r\n imageUrl: '/posters/luke-null-tall.webp', // tall portrait 625×937\r\n description: 'An exclusive underground comedy experience. Password required.',\r\n isPasswordProtected: true,\r\n status: 'on_sale',\r\n};\r\n","export type DataVariant =\r\n\t| 'default'\r\n\t| 'sold_out'\r\n\t| 'free'\r\n\t| 'registration'\r\n\t| 'series'\r\n\t| 'series_instance'\r\n\t| 'collection'\r\n\t| 'donation'\r\n\t| 'mixed'\r\n\t| 'sections'\r\n\t| 'promo'\r\n\t| 'multi_stage'\r\n\t| 'long'\r\n\t| 'wide';\r\n\r\nexport interface ToggleOption {\r\n\tvalue: string;\r\n\tlabel: string;\r\n\tcolor: string;\r\n}\r\n\r\nclass DataToggleStore {\r\n\tcurrent = $state<string>('default');\r\n\toptions = $state<ToggleOption[]>([]);\r\n\tisActive = $state(false);\r\n}\r\n\r\nexport const dataToggleStore = new DataToggleStore();\r\n","/**\r\n * Canonical state-option sets for the public-calendar-flow showcase.\r\n *\r\n * Per R-PATTERN-01 (canonicals-golden-rules.md): function form is the source,\r\n * static snapshots derive at module init. Every showcase surface that drives\r\n * `dataToggleStore` reads its option set from here — Checkout, Success and\r\n * ShowcaseEvent each used to inline their own array beside the variant union\r\n * they switch on, so the same `{ default, free, registration, donation }` core\r\n * lived in three places and could drift silently.\r\n *\r\n * Ordering is per-surface and deliberate: Checkout lists donation before\r\n * registration, Success lists registration before donation. The sets stay\r\n * distinct rather than merged so no surface's toggle order changes.\r\n */\r\nimport type { ToggleOption } from '$lib/public-calendar-flow/data-toggle-store.svelte';\r\n\r\n/**\r\n * Categorical hues for the showcase toggle dots — keyed by hue role, not by\r\n * state, so each class is named once and reused across every set.\r\n *\r\n * `info` is raw Tailwind palette (`bg-sky-500`) rather than an SC semantic\r\n * token, carried over verbatim from the arrays this module absorbed. It is the\r\n * one non-token hue here; replacing it is a color-category call, not an\r\n * options-array one.\r\n */\r\nconst HUE = {\r\n\tsuccess: 'bg-accent-success',\r\n\tneutral: 'bg-muted-foreground',\r\n\tinfo: 'bg-sky-500',\r\n\tbrand: 'bg-brand-primary',\r\n\tdanger: 'bg-accent-danger',\r\n\twarning: 'bg-accent-warning',\r\n\twarningSubtle: 'bg-status-warning-bg0',\r\n} as const;\r\n\r\nexport function getShowcaseBrowseStates(): ToggleOption[] {\r\n\treturn [\r\n\t\t{ value: 'default', label: 'Default', color: HUE.success },\r\n\t\t{ value: 'empty', label: 'Empty', color: HUE.neutral },\r\n\t\t{ value: 'sparse', label: '2 events', color: HUE.info },\r\n\t\t{ value: 'busy', label: 'Many events', color: HUE.brand },\r\n\t];\r\n}\r\n\r\nexport function getShowcaseCalendarStates(): ToggleOption[] {\r\n\treturn [\r\n\t\t{ value: 'default', label: 'Default', color: HUE.success },\r\n\t\t{ value: 'empty', label: 'Empty month', color: HUE.neutral },\r\n\t\t{ value: 'busy', label: 'Busy month', color: HUE.brand },\r\n\t];\r\n}\r\n\r\nexport function getShowcaseCheckoutStates(): ToggleOption[] {\r\n\treturn [\r\n\t\t{ value: 'default', label: 'Standard', color: HUE.success },\r\n\t\t{ value: 'free', label: 'Free', color: HUE.info },\r\n\t\t{ value: 'donation', label: 'Donation', color: HUE.danger },\r\n\t\t{ value: 'registration', label: 'Registration', color: HUE.brand },\r\n\t\t{ value: 'timer_warning', label: 'Timer warning', color: HUE.warningSubtle },\r\n\t\t{ value: 'expired', label: 'Expired', color: HUE.danger },\r\n\t\t{ value: 'promo', label: 'Promo discount', color: HUE.success },\r\n\t];\r\n}\r\n\r\nexport function getShowcaseSuccessStates(): ToggleOption[] {\r\n\treturn [\r\n\t\t{ value: 'default', label: 'Standard', color: HUE.success },\r\n\t\t{ value: 'free', label: 'Free', color: HUE.info },\r\n\t\t{ value: 'registration', label: 'Registration', color: HUE.brand },\r\n\t\t{ value: 'donation', label: 'Donation', color: HUE.danger },\r\n\t];\r\n}\r\n\r\n/**\r\n * Event showcase picker — five hues cover 14 variants; the label disambiguates.\r\n * `default` reads \"On sale\" and `free` is brand-hued here, unlike Checkout and\r\n * Success: an event is on sale, a checkout is standard.\r\n */\r\nexport function getShowcaseEventStates(): ToggleOption[] {\r\n\treturn [\r\n\t\t{ value: 'default', label: 'On sale', color: HUE.success },\r\n\t\t{ value: 'sold_out', label: 'Sold out', color: HUE.neutral },\r\n\t\t{ value: 'free', label: 'Free', color: HUE.brand },\r\n\t\t{ value: 'registration', label: 'Registration', color: HUE.brand },\r\n\t\t{ value: 'series', label: 'Series', color: HUE.brand },\r\n\t\t{ value: 'series_instance', label: 'Instance', color: HUE.warning },\r\n\t\t{ value: 'collection', label: 'Collection', color: HUE.danger },\r\n\t\t{ value: 'donation', label: 'Donation', color: HUE.danger },\r\n\t\t{ value: 'mixed', label: 'Mixed', color: HUE.warning },\r\n\t\t{ value: 'sections', label: 'Sections', color: HUE.brand },\r\n\t\t{ value: 'promo', label: 'Promo codes', color: HUE.success },\r\n\t\t{ value: 'multi_stage', label: 'Multi-stage', color: HUE.danger },\r\n\t\t{ value: 'long', label: 'Long name', color: HUE.warning },\r\n\t\t{ value: 'wide', label: 'Wide image', color: HUE.neutral },\r\n\t];\r\n}\r\n\r\n/** Static snapshots derived from the functions above — for non-reactive consumers. */\r\nexport const SHOWCASE_BROWSE_STATES = getShowcaseBrowseStates();\r\nexport const SHOWCASE_CALENDAR_STATES = getShowcaseCalendarStates();\r\n"],"names":["showcaseDate","daysFromFriday","hour","minute","now","daysToFriday","base","y","m","d","hh","mm","showcaseDateOnly","mockVenue","getDefaultTimezone","mockPerformers","mockFaqs","mockTickets","_now","_evDate","_ymd","mockEvent","DEFAULT_TIMEZONE","t","mockFreeEvent","mockRegistrationEvent","mockDonationEvent","DataToggleStore","#current","$","#isActive","dataToggleStore","HUE","getShowcaseCheckoutStates","getShowcaseSuccessStates"],"mappings":"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"}
|
|
@@ -1,68 +1,68 @@
|
|
|
1
1
|
import "svelte/internal/disclose-version";
|
|
2
2
|
import * as i from "svelte/internal/client";
|
|
3
|
-
import { u as
|
|
4
|
-
var
|
|
5
|
-
function
|
|
3
|
+
import { u as w, aH as C, a$ as y, aW as D, b0 as P, ai as T, aj as _, ak as I } from "./VenueCalendar-ClSRsS6u.js";
|
|
4
|
+
var E = i.from_svg('<path d="M216,112v96a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V112A16,16,0,0,1,56,96h64v48a8,8,0,0,0,16,0V96h64A16,16,0,0,1,216,112ZM136,43.31l26.34,26.35a8,8,0,0,0,11.32-11.32l-40-40a8,8,0,0,0-11.32,0l-40,40A8,8,0,0,0,93.66,69.66L120,43.31V96h16Z"></path>'), q = i.from_svg('<path d="M176,104h24a8,8,0,0,1,8,8v96a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V112a8,8,0,0,1,8-8H80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></path><polyline points="88 64 128 24 168 64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></polyline><line x1="128" y1="24" x2="128" y2="136" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></line>', 1), N = i.from_svg('<svg aria-hidden="true" viewBox="0 0 256 256" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><!></svg>');
|
|
5
|
+
function G(e, t) {
|
|
6
6
|
i.push(t, !0);
|
|
7
7
|
let n = i.prop(t, "size", 3, "24"), r = i.prop(t, "color", 3, "currentColor"), o = i.prop(t, "class", 3, "");
|
|
8
|
-
const s =
|
|
9
|
-
let
|
|
10
|
-
var l =
|
|
8
|
+
const s = w();
|
|
9
|
+
let d = i.derived(() => t.weight ?? s?.weight ?? "regular");
|
|
10
|
+
var l = N();
|
|
11
11
|
let m;
|
|
12
12
|
var f = i.child(l);
|
|
13
13
|
{
|
|
14
|
-
var p = (
|
|
15
|
-
var g =
|
|
16
|
-
i.append(
|
|
17
|
-
}, c = (
|
|
18
|
-
var g =
|
|
19
|
-
i.next(2), i.append(
|
|
14
|
+
var p = (u) => {
|
|
15
|
+
var g = E();
|
|
16
|
+
i.append(u, g);
|
|
17
|
+
}, c = (u) => {
|
|
18
|
+
var g = q();
|
|
19
|
+
i.next(2), i.append(u, g);
|
|
20
20
|
};
|
|
21
|
-
i.if(f, (
|
|
22
|
-
i.get(
|
|
21
|
+
i.if(f, (u) => {
|
|
22
|
+
i.get(d) === "fill" ? u(p) : u(c, -1);
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
i.reset(l), i.template_effect(() => {
|
|
26
26
|
i.set_class(l, 0, i.clsx(o())), i.set_attribute(l, "width", n()), i.set_attribute(l, "height", n()), m = i.set_style(l, "", m, { color: r() });
|
|
27
27
|
}), i.append(e, l), i.pop();
|
|
28
28
|
}
|
|
29
|
-
var
|
|
30
|
-
function
|
|
29
|
+
var R = i.from_svg('<path d="M128,16a88.1,88.1,0,0,0-88,88c0,75.3,80,132.17,83.41,134.55a8,8,0,0,0,9.18,0C136,236.17,216,179.3,216,104A88.1,88.1,0,0,0,128,16Zm0,56a32,32,0,1,1-32,32A32,32,0,0,1,128,72Z"></path>'), U = i.from_svg('<circle cx="128" cy="104" r="32" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></circle><path d="M208,104c0,72-80,128-80,128S48,176,48,104a80,80,0,0,1,160,0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></path>', 1), z = i.from_svg('<svg aria-hidden="true" viewBox="0 0 256 256" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><!></svg>');
|
|
30
|
+
function Q(e, t) {
|
|
31
31
|
i.push(t, !0);
|
|
32
32
|
let n = i.prop(t, "size", 3, "24"), r = i.prop(t, "color", 3, "currentColor"), o = i.prop(t, "class", 3, "");
|
|
33
|
-
const s =
|
|
34
|
-
let
|
|
35
|
-
var l =
|
|
33
|
+
const s = w();
|
|
34
|
+
let d = i.derived(() => t.weight ?? s?.weight ?? "regular");
|
|
35
|
+
var l = z();
|
|
36
36
|
let m;
|
|
37
37
|
var f = i.child(l);
|
|
38
38
|
{
|
|
39
|
-
var p = (
|
|
40
|
-
var g =
|
|
41
|
-
i.append(
|
|
42
|
-
}, c = (
|
|
43
|
-
var g =
|
|
44
|
-
i.next(), i.append(
|
|
39
|
+
var p = (u) => {
|
|
40
|
+
var g = R();
|
|
41
|
+
i.append(u, g);
|
|
42
|
+
}, c = (u) => {
|
|
43
|
+
var g = U();
|
|
44
|
+
i.next(), i.append(u, g);
|
|
45
45
|
};
|
|
46
|
-
i.if(f, (
|
|
47
|
-
i.get(
|
|
46
|
+
i.if(f, (u) => {
|
|
47
|
+
i.get(d) === "fill" ? u(p) : u(c, -1);
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
50
|
i.reset(l), i.template_effect(() => {
|
|
51
51
|
i.set_class(l, 0, i.clsx(o())), i.set_attribute(l, "width", n()), i.set_attribute(l, "height", n()), m = i.set_style(l, "", m, { color: r() });
|
|
52
52
|
}), i.append(e, l), i.pop();
|
|
53
53
|
}
|
|
54
|
-
async function
|
|
54
|
+
async function F(e) {
|
|
55
55
|
if (typeof navigator < "u" && navigator.clipboard && typeof navigator.clipboard.writeText == "function")
|
|
56
56
|
try {
|
|
57
57
|
return await navigator.clipboard.writeText(e), !0;
|
|
58
58
|
} catch {
|
|
59
59
|
}
|
|
60
|
-
return
|
|
60
|
+
return O(e);
|
|
61
61
|
}
|
|
62
|
-
function
|
|
62
|
+
function O(e) {
|
|
63
63
|
if (typeof document > "u" || typeof document.execCommand != "function")
|
|
64
64
|
return !1;
|
|
65
|
-
const t = document.activeElement, n = document.getSelection(), r = n ? Array.from({ length: n.rangeCount }, (s,
|
|
65
|
+
const t = document.activeElement, n = document.getSelection(), r = n ? Array.from({ length: n.rangeCount }, (s, d) => n.getRangeAt(d).cloneRange()) : [], o = document.createElement("textarea");
|
|
66
66
|
try {
|
|
67
67
|
return o.value = e, o.setAttribute("readonly", ""), o.style.position = "fixed", o.style.top = "-9999px", o.style.left = "-9999px", o.style.opacity = "0", document.body.appendChild(o), o.select(), o.setSelectionRange(0, e.length), document.execCommand("copy");
|
|
68
68
|
} catch {
|
|
@@ -76,22 +76,22 @@ function z(e) {
|
|
|
76
76
|
t?.focus?.();
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
function
|
|
79
|
+
function k(e) {
|
|
80
80
|
if (!e) return [];
|
|
81
81
|
const t = e.split(",").map((o) => o.trim());
|
|
82
82
|
if (t.length < 2) return [e];
|
|
83
83
|
const r = t[t.length - 1].match(/^([A-Z]{2})\s+(\d{5}(-\d{4})?)$/);
|
|
84
84
|
if (r && t.length >= 3) {
|
|
85
|
-
const o = r[1], s = r[2],
|
|
86
|
-
return l.push(`${
|
|
85
|
+
const o = r[1], s = r[2], d = t[t.length - 2], l = t.slice(0, -2);
|
|
86
|
+
return l.push(`${d}, ${o} ${s}`), l;
|
|
87
87
|
}
|
|
88
88
|
return [t[0], t.slice(1).join(", ")];
|
|
89
89
|
}
|
|
90
|
-
function
|
|
90
|
+
function x(e) {
|
|
91
91
|
return e ? `https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(e)}` : "";
|
|
92
92
|
}
|
|
93
|
-
function
|
|
94
|
-
const t = e, n =
|
|
93
|
+
function L(e) {
|
|
94
|
+
const t = e, n = C(
|
|
95
95
|
e.timeZone || t.timezone || t.time_zone || "UTC"
|
|
96
96
|
), r = y(e.image || "", { cdn: !0 }), o = (e.occurrences || []).map(
|
|
97
97
|
(c) => ({
|
|
@@ -103,15 +103,15 @@ function U(e) {
|
|
|
103
103
|
ctaText: c.ctaState?.text || "Get Tickets",
|
|
104
104
|
ctaDisabled: c.ctaState?.disabled || !1
|
|
105
105
|
})
|
|
106
|
-
), s = e.occurrences?.[0],
|
|
106
|
+
), s = e.occurrences?.[0], d = s?.startDateTime ? D(s.startDateTime, n) : "", l = e.venue?.faq;
|
|
107
107
|
let m = [];
|
|
108
108
|
Array.isArray(l) ? m = l.map((c) => ({
|
|
109
109
|
question: c.question || "",
|
|
110
110
|
answer: c.answer || ""
|
|
111
111
|
})) : typeof l == "string" && l && (m = [{ question: "FAQ", answer: l }]);
|
|
112
112
|
const f = (e.performers || []).map(
|
|
113
|
-
(c,
|
|
114
|
-
id:
|
|
113
|
+
(c, u) => ({
|
|
114
|
+
id: u + 1,
|
|
115
115
|
displayName: c.displayName || [c.firstName, c.lastName].filter(Boolean).join(" "),
|
|
116
116
|
profileImage: c.profileImage || void 0
|
|
117
117
|
})
|
|
@@ -121,7 +121,7 @@ function U(e) {
|
|
|
121
121
|
title: e.title || "",
|
|
122
122
|
slug: "",
|
|
123
123
|
description: e.description || e.eventSummary || "",
|
|
124
|
-
date:
|
|
124
|
+
date: d,
|
|
125
125
|
startDateTime: s?.startDateTime || "",
|
|
126
126
|
endDateTime: s?.endDateTime || "",
|
|
127
127
|
doorsOpenTime: "",
|
|
@@ -147,11 +147,11 @@ function U(e) {
|
|
|
147
147
|
isRegistrationEvent: !1,
|
|
148
148
|
totalTicketsRemaining: 0,
|
|
149
149
|
totalTicketsCapacity: 0,
|
|
150
|
-
venueAddressLines:
|
|
151
|
-
googleMapsUrl:
|
|
150
|
+
venueAddressLines: k(p),
|
|
151
|
+
googleMapsUrl: x(p)
|
|
152
152
|
};
|
|
153
153
|
}
|
|
154
|
-
function
|
|
154
|
+
function H(e) {
|
|
155
155
|
const t = (e.events || []).map(
|
|
156
156
|
(r) => ({
|
|
157
157
|
id: r.id,
|
|
@@ -196,7 +196,7 @@ function F(e) {
|
|
|
196
196
|
totalTicketsCapacity: 0
|
|
197
197
|
};
|
|
198
198
|
}
|
|
199
|
-
async function
|
|
199
|
+
async function Z(e) {
|
|
200
200
|
if (typeof navigator < "u" && typeof navigator.share == "function")
|
|
201
201
|
try {
|
|
202
202
|
return await navigator.share({ url: e }), "shared";
|
|
@@ -204,13 +204,13 @@ async function L(e) {
|
|
|
204
204
|
if (t?.name === "AbortError")
|
|
205
205
|
return "shared";
|
|
206
206
|
}
|
|
207
|
-
return await
|
|
207
|
+
return await F(e) ? "copied" : "failed";
|
|
208
208
|
}
|
|
209
|
-
function
|
|
209
|
+
function W() {
|
|
210
210
|
let e = i.state("idle"), t = i.state(""), n;
|
|
211
211
|
async function r(s) {
|
|
212
|
-
const
|
|
213
|
-
|
|
212
|
+
const d = await Z(s);
|
|
213
|
+
d === "copied" ? (i.set(t, ""), i.set(e, "copied"), clearTimeout(n), n = setTimeout(() => i.set(e, "idle"), 2500)) : d === "failed" && (clearTimeout(n), i.set(e, "failed"), i.set(t, s, !0));
|
|
214
214
|
}
|
|
215
215
|
function o() {
|
|
216
216
|
clearTimeout(n);
|
|
@@ -226,11 +226,15 @@ function V() {
|
|
|
226
226
|
dispose: o
|
|
227
227
|
};
|
|
228
228
|
}
|
|
229
|
-
function
|
|
230
|
-
const t =
|
|
231
|
-
|
|
229
|
+
function B(e) {
|
|
230
|
+
const t = I(), n = e.remainingCapacity ?? e.quantityRemaining ?? e.quantity ?? 0, r = e.salesBegin || e.salesStart || e.saleBegin || e.onSaleStart, o = e.salesEnd || e.saleEnd || e.onSaleEnd;
|
|
231
|
+
if (n <= 0) return "sold_out";
|
|
232
|
+
const s = T(o);
|
|
233
|
+
if (s && _(s, t) < 0) return "sales_ended";
|
|
234
|
+
const d = T(r);
|
|
235
|
+
return d && _(d, t) > 0 ? "coming_soon" : "on_sale";
|
|
232
236
|
}
|
|
233
|
-
function
|
|
237
|
+
function M(e, t) {
|
|
234
238
|
const n = (e || "").toLowerCase().replace(/\s+/g, "_");
|
|
235
239
|
if (n === "cancelled" || n === "canceled") return "cancelled";
|
|
236
240
|
if (n === "past" || n === "ended") return "past";
|
|
@@ -249,8 +253,8 @@ function H(e, t) {
|
|
|
249
253
|
}
|
|
250
254
|
return n === "sold_out" || n === "soldout" ? "sold_out" : n === "coming_soon" || n === "comingsoon" ? "coming_soon" : n === "sales_ended" || n === "salesended" ? "sales_ended" : "on_sale";
|
|
251
255
|
}
|
|
252
|
-
function
|
|
253
|
-
const t =
|
|
256
|
+
function K(e) {
|
|
257
|
+
const t = P(e), n = t.venue || {}, r = C(
|
|
254
258
|
t.timeZone || t.timezone || n.timeZone || n.timezone || "UTC"
|
|
255
259
|
), s = (e.availableTickets || []).map((a) => ({
|
|
256
260
|
id: a.id || a.ID,
|
|
@@ -262,20 +266,20 @@ function Q(e) {
|
|
|
262
266
|
quantityTotal: a.totalCapacity ?? a.quantity ?? 0,
|
|
263
267
|
minPerOrder: a.minPerOrder ?? a.minQuantity ?? 1,
|
|
264
268
|
maxPerOrder: a.maxPerOrder ?? a.maxQuantity ?? 10,
|
|
265
|
-
status:
|
|
269
|
+
status: B(a),
|
|
266
270
|
salesStartDate: a.salesBegin || a.salesStart || a.saleBegin || a.onSaleStart || void 0,
|
|
267
271
|
salesEndDate: a.salesEnd || a.saleEnd || a.onSaleEnd || void 0,
|
|
268
272
|
isDonation: a.type === 2 || a.ticketType === 2 || a.isDonation === !0,
|
|
269
273
|
isHidden: a.visibility === 2 || a.isHidden === !0,
|
|
270
274
|
ticketType: a.type || a.ticketType || void 0,
|
|
271
275
|
sectionName: a.sectionName || a.section || void 0
|
|
272
|
-
})),
|
|
276
|
+
})), d = s.filter((a) => !a.isHidden && !a.isDonation), l = d.reduce(
|
|
273
277
|
(a, v) => a + v.quantityAvailable,
|
|
274
278
|
0
|
|
275
|
-
), m =
|
|
279
|
+
), m = d.reduce(
|
|
276
280
|
(a, v) => a + v.quantityTotal,
|
|
277
281
|
0
|
|
278
|
-
), f =
|
|
282
|
+
), f = M(t.status, s), p = e.image || e.imageUrl || e.image_url || "", c = p.startsWith("http") ? p : y(p, { cdn: !0 }), u = {
|
|
279
283
|
id: n.id || n.ID || 0,
|
|
280
284
|
name: n.name || n.googleLocationNameCache || "",
|
|
281
285
|
address: n.address || n.googleLocationNameCache || "",
|
|
@@ -284,12 +288,12 @@ function Q(e) {
|
|
|
284
288
|
serviceFeeCents: n.serviceFeeCents ?? 0,
|
|
285
289
|
taxPercentage: n.taxPercentage ?? n.tax ?? 0,
|
|
286
290
|
contactEmail: n.contactEmail || n.email || void 0
|
|
287
|
-
},
|
|
291
|
+
}, S = (t.performers || []).map((a) => ({
|
|
288
292
|
id: a.id || a.ID,
|
|
289
293
|
displayName: a.displayName || a.name || "",
|
|
290
294
|
profileImage: a.avatar || a.profileImage || void 0,
|
|
291
295
|
role: a.role || void 0
|
|
292
|
-
})),
|
|
296
|
+
})), b = (t.faqs || []).map((a) => ({
|
|
293
297
|
question: a.question || "",
|
|
294
298
|
answer: a.answer || ""
|
|
295
299
|
})), h = (t.showtimes || []).filter((a) => a.published !== !1).map((a, v) => ({
|
|
@@ -300,22 +304,22 @@ function Q(e) {
|
|
|
300
304
|
status: a.ctaState?.reason === "sold_out" ? "sold_out" : "on_sale",
|
|
301
305
|
ctaText: a.ctaState?.text || "Get tickets",
|
|
302
306
|
ctaDisabled: a.ctaState?.disabled || !1
|
|
303
|
-
})),
|
|
307
|
+
})), A = t.startDateTime ? D(t.startDateTime, r) : "";
|
|
304
308
|
return {
|
|
305
309
|
id: t.id,
|
|
306
310
|
title: t.title || "",
|
|
307
311
|
slug: t.slug || "",
|
|
308
312
|
description: t.description || t.eventSummary || "",
|
|
309
|
-
date:
|
|
313
|
+
date: A,
|
|
310
314
|
startDateTime: t.startDateTime || "",
|
|
311
315
|
endDateTime: t.endDateTime || "",
|
|
312
316
|
doorsOpenTime: t.doorsOpenTime || "",
|
|
313
317
|
timezone: r,
|
|
314
318
|
imageUrl: c,
|
|
315
|
-
venue:
|
|
316
|
-
performers:
|
|
319
|
+
venue: u,
|
|
320
|
+
performers: S,
|
|
317
321
|
tickets: s,
|
|
318
|
-
faqs:
|
|
322
|
+
faqs: b,
|
|
319
323
|
disclaimer: t.disclaimer || void 0,
|
|
320
324
|
status: f,
|
|
321
325
|
eventSeriesId: t.eventSeriesId || void 0,
|
|
@@ -335,26 +339,26 @@ function Q(e) {
|
|
|
335
339
|
displayDoorsTime: t.displayDoorsTime ?? !0,
|
|
336
340
|
collectionId: t.collectionId || void 0,
|
|
337
341
|
// domain folds collection_id
|
|
338
|
-
venueAddressLines:
|
|
342
|
+
venueAddressLines: k(
|
|
339
343
|
n.address || n.googleLocationNameCache || ""
|
|
340
344
|
),
|
|
341
|
-
googleMapsUrl:
|
|
345
|
+
googleMapsUrl: x(
|
|
342
346
|
n.address || n.googleLocationNameCache || ""
|
|
343
347
|
)
|
|
344
348
|
};
|
|
345
349
|
}
|
|
346
|
-
function
|
|
347
|
-
return
|
|
350
|
+
function J(e) {
|
|
351
|
+
return L(e);
|
|
348
352
|
}
|
|
349
|
-
function
|
|
350
|
-
return
|
|
353
|
+
function X(e) {
|
|
354
|
+
return H(e);
|
|
351
355
|
}
|
|
352
356
|
export {
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
357
|
+
G as E,
|
|
358
|
+
Q as L,
|
|
359
|
+
J as a,
|
|
360
|
+
X as b,
|
|
361
|
+
W as c,
|
|
362
|
+
K as t
|
|
359
363
|
};
|
|
360
|
-
//# sourceMappingURL=transform-
|
|
364
|
+
//# sourceMappingURL=transform-BD9xXAq7.js.map
|