@getmicdrop/venue-calendar 3.5.3 → 3.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/CarouselView.legacy-C9QYS3av.js +64 -0
  2. package/dist/CarouselView.legacy-C9QYS3av.js.map +1 -0
  3. package/dist/{Checkout.legacy-Btt0uT61.js → Checkout.legacy-CyiqW4Im.js} +177 -181
  4. package/dist/Checkout.legacy-CyiqW4Im.js.map +1 -0
  5. package/dist/{CollectionView.legacy-Bxih-dA-.js → CollectionView.legacy-CQeXXMOU.js} +125 -125
  6. package/dist/CollectionView.legacy-CQeXXMOU.js.map +1 -0
  7. package/dist/FeaturedView.legacy-C3td2GLq.js +128 -0
  8. package/dist/FeaturedView.legacy-C3td2GLq.js.map +1 -0
  9. package/dist/GalleryView.legacy-BJwdUDNJ.js +51 -0
  10. package/dist/GalleryView.legacy-BJwdUDNJ.js.map +1 -0
  11. package/dist/GroupedListView.legacy-DWU0K8XY.js +144 -0
  12. package/dist/GroupedListView.legacy-DWU0K8XY.js.map +1 -0
  13. package/dist/{SeriesPage.legacy-Ka81Mn73.js → SeriesPage.legacy-D-ZoVrPE.js} +2 -2
  14. package/dist/SeriesPage.legacy-D-ZoVrPE.js.map +1 -0
  15. package/dist/Success.legacy-D9zlNOn7.js +191 -0
  16. package/dist/Success.legacy-D9zlNOn7.js.map +1 -0
  17. package/dist/{VenueCalendar-B5Y29ZJD.js → VenueCalendar-DX2HF1GE.js} +4859 -4815
  18. package/dist/VenueCalendar-DX2HF1GE.js.map +1 -0
  19. package/dist/venue-calendar.css +1 -1
  20. package/dist/venue-calendar.es.js +2 -2
  21. package/dist/venue-calendar.iife.js +24 -24
  22. package/dist/venue-calendar.iife.js.map +1 -1
  23. package/dist/venue-calendar.umd.js +24 -24
  24. package/dist/venue-calendar.umd.js.map +1 -1
  25. package/package.json +2 -2
  26. package/dist/CarouselView.legacy-CRHakGOL.js +0 -64
  27. package/dist/CarouselView.legacy-CRHakGOL.js.map +0 -1
  28. package/dist/Checkout.legacy-Btt0uT61.js.map +0 -1
  29. package/dist/CollectionView.legacy-Bxih-dA-.js.map +0 -1
  30. package/dist/FeaturedView.legacy-CVEXHJBx.js +0 -128
  31. package/dist/FeaturedView.legacy-CVEXHJBx.js.map +0 -1
  32. package/dist/GalleryView.legacy-Ci-IHtAe.js +0 -51
  33. package/dist/GalleryView.legacy-Ci-IHtAe.js.map +0 -1
  34. package/dist/GroupedListView.legacy-qisy7BOS.js +0 -144
  35. package/dist/GroupedListView.legacy-qisy7BOS.js.map +0 -1
  36. package/dist/SeriesPage.legacy-Ka81Mn73.js.map +0 -1
  37. package/dist/Success.legacy-D72O08IB.js +0 -191
  38. package/dist/Success.legacy-D72O08IB.js.map +0 -1
  39. package/dist/VenueCalendar-B5Y29ZJD.js.map +0 -1
@@ -1,35 +1,35 @@
1
1
  import "svelte/internal/disclose-version";
2
2
  import * as e from "svelte/internal/client";
3
3
  import { onMount as ne, onDestroy as de } from "svelte";
4
- import { f as ce, g as ve, a as ge, i as ue, P as me, b as le, c as oe, S as fe, x as se, z as pe, A as he, D as _e, G as xe } from "./VenueCalendar-B5Y29ZJD.js";
4
+ import { f as ce, g as ve, a as ge, i as me, P as ue, b as le, c as oe, S as fe, x as ie, z as pe, A as _e, D as he, G as xe } from "./VenueCalendar-DX2HF1GE.js";
5
5
  import "svelte/transition";
6
6
  import "svelte/easing";
7
- var be = e.from_html('<div class="w-16 min-w-16 py-4 px-2.5 flex flex-col items-center justify-start bg-gray-50 dark:bg-gray-900 border-r border-gray-200 dark:border-gray-700 max-sm:w-12 max-sm:min-w-12 max-sm:py-2.5 max-sm:px-1.5" aria-hidden="true"><span class="text-xs font-semibold text-gray-600 dark:text-gray-300 uppercase tracking-tight"> </span> <span class="text-2xl max-sm:text-lg font-bold text-gray-900 dark:text-white leading-tight"> </span> <span class="text-xs font-semibold text-gray-600 dark:text-gray-300 uppercase tracking-tight"> </span></div>'), ye = e.from_html('<p class="event-description text-sm text-gray-600 dark:text-gray-300 mt-1.5 mb-0 line-clamp-2 max-sm:hidden svelte-1aw0ssq"> </p>'), we = e.from_html("<span> </span>"), ke = e.from_html('<li class="list-none"><div tabindex="0" role="button"><div class="w-36 h-24 min-w-36 max-sm:w-20 max-sm:h-16 max-sm:min-w-20 rounded-lg overflow-hidden bg-gray-50 dark:bg-gray-900 flex items-center justify-center" aria-hidden="true"><img alt="" class="w-full h-full object-contain svelte-1aw0ssq" loading="lazy"/></div> <div class="flex-1 flex flex-col gap-1.5 min-w-0" aria-hidden="true"><h3 class="text-lg max-sm:text-sm font-semibold text-gray-900 dark:text-white m-0 leading-snug"> </h3> <time class="text-sm max-sm:text-xs font-medium text-gray-600 dark:text-gray-300"> </time> <!></div> <div class="flex items-start pt-0.5" aria-hidden="true"><!></div></div></li>'), De = e.from_html('<div class="date-group flex border-b border-gray-200 dark:border-gray-700 last:border-b-0 svelte-1aw0ssq" role="group"><!> <ul class="events-column flex-1 flex flex-col list-none p-0 m-0 svelte-1aw0ssq"></ul></div>'), Te = e.from_html('<div class="flex justify-center items-center p-6 text-gray-600 dark:text-gray-300" role="status" aria-live="polite"><span class="text-sm"> </span></div>'), qe = e.from_html('<section><h2 class="sr-only svelte-1aw0ssq"> </h2> <!> <!></section>');
7
+ var be = e.from_html('<div class="w-16 min-w-16 py-4 px-2.5 flex flex-col items-center justify-start bg-bg-secondary border-r border-border max-sm:w-12 max-sm:min-w-12 max-sm:py-2.5 max-sm:px-1.5" aria-hidden="true"><span class="text-xs font-semibold text-text-secondary uppercase tracking-tight"> </span> <span class="text-2xl max-sm:text-lg font-bold text-text-primary leading-tight"> </span> <span class="text-xs font-semibold text-text-secondary uppercase tracking-tight"> </span></div>'), we = e.from_html('<p class="event-description text-sm text-text-secondary mt-1.5 mb-0 line-clamp-2 max-sm:hidden svelte-1aw0ssq"> </p>'), ye = e.from_html("<span> </span>"), De = e.from_html('<li class="list-none"><div tabindex="0" role="button"><div class="w-36 h-24 min-w-36 max-sm:w-20 max-sm:h-16 max-sm:min-w-20 rounded-lg overflow-hidden bg-bg-secondary flex items-center justify-center" aria-hidden="true"><img alt="" class="w-full h-full object-contain svelte-1aw0ssq" loading="lazy"/></div> <div class="flex-1 flex flex-col gap-1.5 min-w-0" aria-hidden="true"><h3 class="text-lg max-sm:text-sm font-semibold text-text-primary m-0 leading-snug"> </h3> <time class="text-sm max-sm:text-xs font-medium text-text-secondary"> </time> <!></div> <div class="flex items-start pt-0.5" aria-hidden="true"><!></div></div></li>'), Te = e.from_html('<div class="date-group flex border-b border-border last:border-b-0 svelte-1aw0ssq" role="group"><!> <ul class="events-column flex-1 flex flex-col list-none p-0 m-0 svelte-1aw0ssq"></ul></div>'), ke = e.from_html('<div class="flex justify-center items-center p-6 text-text-secondary" role="status" aria-live="polite"><span class="text-sm"> </span></div>'), qe = e.from_html('<section><h2 class="sr-only svelte-1aw0ssq"> </h2> <!> <!></section>');
8
8
  function Ee(H, d) {
9
9
  e.push(d, !0);
10
- let Z = e.prop(d, "events", 19, () => []), Q = e.prop(d, "initialCount", 3, 10), W = e.prop(d, "loadMoreCount", 3, 10), g = e.prop(d, "showDateColumn", 3, !0), f = e.prop(d, "filterFutureOnly", 3, !0), p = e.prop(d, "labels", 19, () => ({})), w = e.state(e.proxy(Q())), h = e.state(void 0), _, P = e.derived(() => f() ? ce(Z()) : Z()), O = e.derived(() => X(e.get(P).slice(0, e.get(w)))), k = e.derived(() => e.get(w) < e.get(P).length);
10
+ let Z = e.prop(d, "events", 19, () => []), Q = e.prop(d, "initialCount", 3, 10), W = e.prop(d, "loadMoreCount", 3, 10), g = e.prop(d, "showDateColumn", 3, !0), f = e.prop(d, "filterFutureOnly", 3, !0), p = e.prop(d, "labels", 19, () => ({})), y = e.state(e.proxy(Q())), _ = e.state(void 0), h, P = e.derived(() => f() ? ce(Z()) : Z()), O = e.derived(() => X(e.get(P).slice(0, e.get(y)))), D = e.derived(() => e.get(y) < e.get(P).length);
11
11
  function J() {
12
- e.set(w, e.get(w) + W());
12
+ e.set(y, e.get(y) + W());
13
13
  }
14
14
  ne(() => {
15
- _ = new IntersectionObserver(
15
+ h = new IntersectionObserver(
16
16
  (c) => {
17
- c[0].isIntersecting && e.get(k) && J();
17
+ c[0].isIntersecting && e.get(D) && J();
18
18
  },
19
19
  { rootMargin: "100px" }
20
- ), e.get(h) && _.observe(e.get(h));
20
+ ), e.get(_) && h.observe(e.get(_));
21
21
  }), de(() => {
22
- _ && _.disconnect();
22
+ h && h.disconnect();
23
23
  }), e.user_effect(() => {
24
- _ && e.get(h) && (_.disconnect(), _.observe(e.get(h)));
24
+ h && e.get(_) && (h.disconnect(), h.observe(e.get(_)));
25
25
  });
26
26
  function X(c) {
27
27
  const l = {};
28
28
  for (const n of c) {
29
- const u = n.date;
30
- l[u] || (l[u] = []), l[u].push(n);
29
+ const m = n.date;
30
+ l[m] || (l[m] = []), l[m].push(n);
31
31
  }
32
- return Object.entries(l).sort(([n], [u]) => new Date(n) - new Date(u)).map(([n, u]) => ({ date: n, events: u, formattedDate: Y(u) }));
32
+ return Object.entries(l).sort(([n], [m]) => new Date(n) - new Date(m)).map(([n, m]) => ({ date: n, events: m, formattedDate: Y(m) }));
33
33
  }
34
34
  function Y(c) {
35
35
  const l = c[0];
@@ -53,57 +53,57 @@ function Ee(H, d) {
53
53
  e.reset(G);
54
54
  var V = e.sibling(G, 2);
55
55
  e.each(V, 17, () => e.get(O), e.index, (c, l) => {
56
- var n = De(), u = e.child(n);
56
+ var n = Te(), m = e.child(n);
57
57
  {
58
58
  var B = (r) => {
59
- var a = be(), v = e.child(a), T = e.child(v, !0);
59
+ var a = be(), v = e.child(a), k = e.child(v, !0);
60
60
  e.reset(v);
61
- var m = e.sibling(v, 2), b = e.child(m, !0);
62
- e.reset(m);
63
- var y = e.sibling(m, 2), x = e.child(y, !0);
64
- e.reset(y), e.reset(a), e.template_effect(() => {
65
- e.set_text(T, e.get(l).formattedDate.month), e.set_text(b, e.get(l).formattedDate.day), e.set_text(x, e.get(l).formattedDate.weekday);
61
+ var u = e.sibling(v, 2), b = e.child(u, !0);
62
+ e.reset(u);
63
+ var w = e.sibling(u, 2), x = e.child(w, !0);
64
+ e.reset(w), e.reset(a), e.template_effect(() => {
65
+ e.set_text(k, e.get(l).formattedDate.month), e.set_text(b, e.get(l).formattedDate.day), e.set_text(x, e.get(l).formattedDate.weekday);
66
66
  }), e.append(r, a);
67
67
  };
68
- e.if(u, (r) => {
68
+ e.if(m, (r) => {
69
69
  g() && r(B);
70
70
  });
71
71
  }
72
- var t = e.sibling(u, 2);
72
+ var t = e.sibling(m, 2);
73
73
  e.each(t, 21, () => e.get(l).events, e.index, (r, a) => {
74
- const v = e.derived(() => ge(e.get(a))), T = e.derived(() => ue(e.get(v)));
75
- var m = ke(), b = e.child(m);
76
- let y;
74
+ const v = e.derived(() => ge(e.get(a))), k = e.derived(() => me(e.get(v)));
75
+ var u = De(), b = e.child(u);
76
+ let w;
77
77
  var x = e.child(b), U = e.child(x);
78
78
  e.reset(x);
79
79
  var j = e.sibling(x, 2), C = e.child(j), S = e.child(C, !0);
80
80
  e.reset(C);
81
- var D = e.sibling(C, 2), q = e.child(D, !0);
82
- e.reset(D);
83
- var M = e.sibling(D, 2);
81
+ var T = e.sibling(C, 2), q = e.child(T, !0);
82
+ e.reset(T);
83
+ var M = e.sibling(T, 2);
84
84
  {
85
- var F = (i) => {
86
- var s = ye(), o = e.child(s, !0);
87
- e.reset(s), e.template_effect(() => e.set_text(o, e.get(a).description)), e.append(i, s);
85
+ var F = (s) => {
86
+ var i = we(), o = e.child(i, !0);
87
+ e.reset(i), e.template_effect(() => e.set_text(o, e.get(a).description)), e.append(s, i);
88
88
  };
89
- e.if(M, (i) => {
90
- e.get(a).description && i(F);
89
+ e.if(M, (s) => {
90
+ e.get(a).description && s(F);
91
91
  });
92
92
  }
93
93
  e.reset(j);
94
94
  var K = e.sibling(j, 2), te = e.child(K);
95
95
  {
96
- var ae = (i) => {
97
- var s = we(), o = e.child(s, !0);
98
- e.reset(s), e.template_effect(() => {
99
- e.set_class(s, 1, `status-badge status-${e.get(v).type ?? ""}`, "svelte-1aw0ssq"), e.set_text(o, e.get(v).text);
100
- }), e.append(i, s);
101
- }, ie = (i) => {
96
+ var ae = (s) => {
97
+ var i = ye(), o = e.child(i, !0);
98
+ e.reset(i), e.template_effect(() => {
99
+ e.set_class(i, 1, `status-badge status-${e.get(v).type ?? ""}`, "svelte-1aw0ssq"), e.set_text(o, e.get(v).text);
100
+ }), e.append(s, i);
101
+ }, se = (s) => {
102
102
  {
103
- let s = e.derived(() => e.get(a).ticketsRemaining ?? 0), o = e.derived(() => e.get(a).ticketsTotal ?? 0);
104
- fe(i, {
103
+ let i = e.derived(() => e.get(a).ticketsRemaining ?? 0), o = e.derived(() => e.get(a).ticketsTotal ?? 0);
104
+ fe(s, {
105
105
  get remaining() {
106
- return e.get(s);
106
+ return e.get(i);
107
107
  },
108
108
  get total() {
109
109
  return e.get(o);
@@ -115,19 +115,19 @@ function Ee(H, d) {
115
115
  });
116
116
  }
117
117
  };
118
- e.if(te, (i) => {
119
- e.get(v) ? i(ae) : (e.get(a).ticketsTotal > 0 || e.get(a).ticketsRemaining === 0) && i(ie, 1);
118
+ e.if(te, (s) => {
119
+ e.get(v) ? s(ae) : (e.get(a).ticketsTotal > 0 || e.get(a).ticketsRemaining === 0) && s(se, 1);
120
120
  });
121
121
  }
122
- e.reset(K), e.reset(b), e.reset(m), e.template_effect(
123
- (i, s) => {
124
- y = e.set_class(b, 1, "event-row flex gap-4 max-sm:gap-2.5 p-5 max-sm:p-3 cursor-pointer transition-colors duration-150 bg-white dark:bg-gray-800 border-b border-gray-200/50 dark:border-gray-700/50 last:border-b-0 hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-2 focus:outline-blue-700 dark:focus:outline-blue-400 focus:-outline-offset-2 focus-visible:outline-2 focus-visible:outline-blue-700 dark:focus-visible:outline-blue-400 focus-visible:-outline-offset-2 svelte-1aw0ssq", null, y, { "row-unavailable": e.get(T) }), e.set_attribute(b, "aria-label", i), e.set_attribute(U, "src", e.get(a).image || me), e.set_text(S, e.get(a).name), e.set_attribute(D, "datetime", e.get(a).startDateTime || e.get(l).date), e.set_text(q, s);
122
+ e.reset(K), e.reset(b), e.reset(u), e.template_effect(
123
+ (s, i) => {
124
+ w = e.set_class(b, 1, "event-row flex gap-4 max-sm:gap-2.5 p-5 max-sm:p-3 cursor-pointer transition-colors duration-150 bg-card border-b border-border/50 last:border-b-0 hover:bg-bg-secondary focus:outline-2 focus:outline-brand-primary focus:-outline-offset-2 focus-visible:outline-2 focus-visible:outline-brand-primary:outline-brand-primary focus-visible:-outline-offset-2 svelte-1aw0ssq", null, w, { "row-unavailable": e.get(k) }), e.set_attribute(b, "aria-label", s), e.set_attribute(U, "src", e.get(a).image || ue), e.set_text(S, e.get(a).name), e.set_attribute(T, "datetime", e.get(a).startDateTime || e.get(l).date), e.set_text(q, i);
125
125
  },
126
126
  [
127
127
  () => `${e.get(a).name} on ${e.get(a).startDateTime ? le(e.get(a).startDateTime, e.get(a).timeZone) : e.get(l).date} at ${e.get(a).startDateTime ? oe(e.get(a).startDateTime, e.get(a).timeZone) : ""}, ${e.get(v)?.text || e.get(a).status || p().statusOnSale || "On Sale"}. ${p().pressEnterToView || "Press Enter to view details"}`,
128
128
  () => e.get(a).startDateTime ? oe(e.get(a).startDateTime, e.get(a).timeZone) : ""
129
129
  ]
130
- ), e.delegated("click", b, () => E(e.get(a))), e.delegated("keydown", b, (i) => $(i, e.get(a))), e.append(r, m);
130
+ ), e.delegated("click", b, () => E(e.get(a))), e.delegated("keydown", b, (s) => $(s, e.get(a))), e.append(r, u);
131
131
  }), e.reset(t), e.reset(n), e.template_effect((r) => e.set_attribute(n, "aria-label", `Events on ${r ?? ""}`), [
132
132
  () => e.get(l).events[0]?.startDateTime ? le(e.get(l).events[0].startDateTime, e.get(l).events[0].timeZone) : e.get(l).date
133
133
  ]), e.append(c, n);
@@ -135,11 +135,11 @@ function Ee(H, d) {
135
135
  var ee = e.sibling(V, 2);
136
136
  {
137
137
  var A = (c) => {
138
- var l = Te(), n = e.child(l), u = e.child(n, !0);
139
- e.reset(n), e.reset(l), e.bind_this(l, (B) => e.set(h, B), () => e.get(h)), e.template_effect(() => e.set_text(u, p().loadingMoreEvents || "Loading more events...")), e.append(c, l);
138
+ var l = ke(), n = e.child(l), m = e.child(n, !0);
139
+ e.reset(n), e.reset(l), e.bind_this(l, (B) => e.set(_, B), () => e.get(_)), e.template_effect(() => e.set_text(m, p().loadingMoreEvents || "Loading more events...")), e.append(c, l);
140
140
  };
141
141
  e.if(ee, (c) => {
142
- e.get(k) && c(A);
142
+ e.get(D) && c(A);
143
143
  });
144
144
  }
145
145
  e.reset(I), e.template_effect(() => {
@@ -150,13 +150,13 @@ e.delegate(["click", "keydown"]);
150
150
  var je = e.from_html('<p class="password-error-text svelte-q3tjav"> </p>'), Ce = e.from_html('<div class="password-container svelte-q3tjav"><div class="password-card svelte-q3tjav"><h2 class="password-title svelte-q3tjav"> </h2> <p class="password-description svelte-q3tjav"> </p> <form class="password-form svelte-q3tjav"><input type="password"/> <!> <button type="submit" class="password-submit svelte-q3tjav"> </button></form></div></div>'), Se = e.from_html('<div class="error-container svelte-q3tjav"><p class="error-text svelte-q3tjav"> </p></div>'), Pe = e.from_html('<div class="cover-image svelte-q3tjav"><div class="cover-blur svelte-q3tjav"></div> <img class="svelte-q3tjav"/></div>'), Ie = e.from_html('<p class="collection-summary svelte-q3tjav"> </p>'), Me = e.from_html('<div class="collection-description svelte-q3tjav"> </div>'), Le = e.from_html('<div class="view-switcher svelte-q3tjav" role="group"><button type="button"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect></svg></button> <button type="button"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line></svg></button></div>'), Re = e.from_html('<div class="events-grid svelte-q3tjav"></div>'), Oe = e.from_html('<!> <div class="collection-header svelte-q3tjav"><h1 class="collection-title svelte-q3tjav"> </h1> <!> <!></div> <div class="events-section svelte-q3tjav"><div class="events-section-header svelte-q3tjav"><h2 class="events-heading svelte-q3tjav"> </h2> <!></div> <!></div>', 1), Ue = e.from_html('<div class="collection-view svelte-q3tjav"><!></div>');
151
151
  function Ze(H, d) {
152
152
  e.push(d, !0), e.prop(d, "organizationId", 3, "");
153
- let Z = e.prop(d, "password", 3, void 0), Q = e.prop(d, "displayMode", 3, "gallery"), W = e.prop(d, "showViewSwitcher", 3, !0), g = e.prop(d, "labels", 19, () => ({})), f = e.state(null), p = e.state(!0), w = e.state(null), h = e.state(!1), _ = e.state(!1), P = e.state(""), O = e.state(!1), k = e.state(e.proxy(Q()));
153
+ let Z = e.prop(d, "password", 3, void 0), Q = e.prop(d, "displayMode", 3, "gallery"), W = e.prop(d, "showViewSwitcher", 3, !0), g = e.prop(d, "labels", 19, () => ({})), f = e.state(null), p = e.state(!0), y = e.state(null), _ = e.state(!1), h = e.state(!1), P = e.state(""), O = e.state(!1), D = e.state(e.proxy(Q()));
154
154
  function J(t) {
155
155
  return {
156
156
  id: t.id,
157
157
  name: t.title || t.name || "",
158
158
  date: t.startDateTime ? t.startDateTime.split("T")[0] : "",
159
- image: t.image ? se(t.image) : "",
159
+ image: t.image ? ie(t.image) : "",
160
160
  timeline: t.startDateTime ? Y(t.startDateTime) : "",
161
161
  status: t.status || "on_sale",
162
162
  slug: t.slug || "",
@@ -170,7 +170,7 @@ function Ze(H, d) {
170
170
  name: t.title || t.name || "",
171
171
  date: t.startDateTime ? t.startDateTime.split("T")[0] : "",
172
172
  startDateTime: t.startDateTime || "",
173
- image: t.image ? se(t.image) : "",
173
+ image: t.image ? ie(t.image) : "",
174
174
  status: t.status || "on_sale",
175
175
  slug: t.slug || "",
176
176
  description: t.description || "",
@@ -192,35 +192,35 @@ function Ze(H, d) {
192
192
  }
193
193
  }
194
194
  async function V(t) {
195
- if (e.get(h)) {
195
+ if (e.get(_)) {
196
196
  if (!d.collectionId) {
197
- e.set(w, g().noCollectionIdProvided || "No collection ID provided", !0), e.set(p, !1);
197
+ e.set(y, g().noCollectionIdProvided || "No collection ID provided", !0), e.set(p, !1);
198
198
  return;
199
199
  }
200
- e.set(p, !0), e.set(w, null), e.set(O, !1);
200
+ e.set(p, !0), e.set(y, null), e.set(O, !1);
201
201
  try {
202
202
  const r = await pe(d.collectionId, t);
203
- if (!e.get(h)) return;
203
+ if (!e.get(_)) return;
204
204
  if (r) {
205
205
  if (r.passwordRequired || r.error?.code === "PASSWORD_REQUIRED") {
206
- e.set(_, !0), e.set(p, !1);
206
+ e.set(h, !0), e.set(p, !1);
207
207
  return;
208
208
  }
209
- e.set(f, r, !0), e.set(_, !1);
209
+ e.set(f, r, !0), e.set(h, !1);
210
210
  } else {
211
211
  if (t) {
212
- e.set(_, !0), e.set(O, !0), e.set(p, !1);
212
+ e.set(h, !0), e.set(O, !0), e.set(p, !1);
213
213
  return;
214
214
  }
215
- e.set(w, g().failedToLoadCollection || "Failed to load collection", !0);
215
+ e.set(y, g().failedToLoadCollection || "Failed to load collection", !0);
216
216
  }
217
217
  } catch (r) {
218
- if (e.get(h)) {
218
+ if (e.get(_)) {
219
219
  const a = r.message || "";
220
- a.includes("401") || a.includes("403") || a.includes("password") ? e.set(_, !0) : e.set(w, a || "Failed to load collection", !0);
220
+ a.includes("401") || a.includes("403") || a.includes("password") ? e.set(h, !0) : e.set(y, a || "Failed to load collection", !0);
221
221
  }
222
222
  } finally {
223
- e.get(h) && e.set(p, !1);
223
+ e.get(_) && e.set(p, !1);
224
224
  }
225
225
  }
226
226
  }
@@ -228,20 +228,20 @@ function Ze(H, d) {
228
228
  t.preventDefault(), e.get(P).trim() && V(e.get(P));
229
229
  }
230
230
  ne(async () => {
231
- e.set(h, !0), await V(Z());
231
+ e.set(_, !0), await V(Z());
232
232
  }), de(() => {
233
- e.set(h, !1);
233
+ e.set(_, !1);
234
234
  });
235
235
  var A = Ue(), c = e.child(A);
236
236
  {
237
237
  var l = (t) => {
238
- he(t, { type: "gallery" });
238
+ _e(t, { type: "gallery" });
239
239
  }, n = (t) => {
240
- var r = Ce(), a = e.child(r), v = e.child(a), T = e.child(v, !0);
240
+ var r = Ce(), a = e.child(r), v = e.child(a), k = e.child(v, !0);
241
241
  e.reset(v);
242
- var m = e.sibling(v, 2), b = e.child(m, !0);
243
- e.reset(m);
244
- var y = e.sibling(m, 2), x = e.child(y);
242
+ var u = e.sibling(v, 2), b = e.child(u, !0);
243
+ e.reset(u);
244
+ var w = e.sibling(u, 2), x = e.child(w);
245
245
  e.remove_input_defaults(x);
246
246
  let U;
247
247
  var j = e.sibling(x, 2);
@@ -254,107 +254,107 @@ function Ze(H, d) {
254
254
  e.get(O) && q(C);
255
255
  });
256
256
  }
257
- var S = e.sibling(j, 2), D = e.child(S, !0);
258
- e.reset(S), e.reset(y), e.reset(a), e.reset(r), e.template_effect(() => {
259
- e.set_text(T, g().collectionPrivateTitle || "This collection is private"), e.set_text(b, g().collectionPrivateDescription || "Please enter the password to view this collection."), e.set_attribute(x, "placeholder", g().enterPassword || "Enter password"), U = e.set_class(x, 1, "password-input svelte-q3tjav", null, U, { "password-input-error": e.get(O) }), e.set_text(D, g().viewCollection || "View Collection");
260
- }), e.event("submit", y, ee), e.bind_value(x, () => e.get(P), (q) => e.set(P, q)), e.append(t, r);
261
- }, u = (t) => {
257
+ var S = e.sibling(j, 2), T = e.child(S, !0);
258
+ e.reset(S), e.reset(w), e.reset(a), e.reset(r), e.template_effect(() => {
259
+ e.set_text(k, g().collectionPrivateTitle || "This collection is private"), e.set_text(b, g().collectionPrivateDescription || "Please enter the password to view this collection."), e.set_attribute(x, "placeholder", g().enterPassword || "Enter password"), U = e.set_class(x, 1, "password-input svelte-q3tjav", null, U, { "password-input-error": e.get(O) }), e.set_text(T, g().viewCollection || "View Collection");
260
+ }), e.event("submit", w, ee), e.bind_value(x, () => e.get(P), (q) => e.set(P, q)), e.append(t, r);
261
+ }, m = (t) => {
262
262
  var r = Se(), a = e.child(r), v = e.child(a);
263
- e.reset(a), e.reset(r), e.template_effect(() => e.set_text(v, `${(g().errorPrefix || "Error:") ?? ""} ${e.get(w) ?? ""}`)), e.append(t, r);
263
+ e.reset(a), e.reset(r), e.template_effect(() => e.set_text(v, `${(g().errorPrefix || "Error:") ?? ""} ${e.get(y) ?? ""}`)), e.append(t, r);
264
264
  }, B = (t) => {
265
265
  var r = Oe(), a = e.first_child(r);
266
266
  {
267
- var v = (i) => {
268
- const s = e.derived(() => se(e.get(f).coverImage));
267
+ var v = (s) => {
268
+ const i = e.derived(() => ie(e.get(f).coverImage));
269
269
  var o = Pe(), L = e.child(o), R = e.sibling(L, 2);
270
270
  e.reset(o), e.template_effect(() => {
271
- e.set_style(L, `background-image: url(${e.get(s) ?? ""})`), e.set_attribute(R, "src", e.get(s)), e.set_attribute(R, "alt", e.get(f).collectionTitle);
272
- }), e.append(i, o);
271
+ e.set_style(L, `background-image: url(${e.get(i) ?? ""})`), e.set_attribute(R, "src", e.get(i)), e.set_attribute(R, "alt", e.get(f).collectionTitle);
272
+ }), e.append(s, o);
273
273
  };
274
- e.if(a, (i) => {
275
- e.get(f).coverImage && i(v);
274
+ e.if(a, (s) => {
275
+ e.get(f).coverImage && s(v);
276
276
  });
277
277
  }
278
- var T = e.sibling(a, 2), m = e.child(T), b = e.child(m, !0);
279
- e.reset(m);
280
- var y = e.sibling(m, 2);
278
+ var k = e.sibling(a, 2), u = e.child(k), b = e.child(u, !0);
279
+ e.reset(u);
280
+ var w = e.sibling(u, 2);
281
281
  {
282
- var x = (i) => {
283
- var s = Ie(), o = e.child(s, !0);
284
- e.reset(s), e.template_effect(() => e.set_text(o, e.get(f).summary)), e.append(i, s);
282
+ var x = (s) => {
283
+ var i = Ie(), o = e.child(i, !0);
284
+ e.reset(i), e.template_effect(() => e.set_text(o, e.get(f).summary)), e.append(s, i);
285
285
  };
286
- e.if(y, (i) => {
287
- e.get(f).summary && i(x);
286
+ e.if(w, (s) => {
287
+ e.get(f).summary && s(x);
288
288
  });
289
289
  }
290
- var U = e.sibling(y, 2);
290
+ var U = e.sibling(w, 2);
291
291
  {
292
- var j = (i) => {
293
- var s = Me(), o = e.child(s, !0);
294
- e.reset(s), e.template_effect(() => e.set_text(o, e.get(f).description)), e.append(i, s);
292
+ var j = (s) => {
293
+ var i = Me(), o = e.child(i, !0);
294
+ e.reset(i), e.template_effect(() => e.set_text(o, e.get(f).description)), e.append(s, i);
295
295
  };
296
- e.if(U, (i) => {
297
- e.get(f).description && i(j);
296
+ e.if(U, (s) => {
297
+ e.get(f).description && s(j);
298
298
  });
299
299
  }
300
+ e.reset(k);
301
+ var C = e.sibling(k, 2), S = e.child(C), T = e.child(S), q = e.child(T);
300
302
  e.reset(T);
301
- var C = e.sibling(T, 2), S = e.child(C), D = e.child(S), q = e.child(D);
302
- e.reset(D);
303
- var M = e.sibling(D, 2);
303
+ var M = e.sibling(T, 2);
304
304
  {
305
- var F = (i) => {
306
- var s = Le(), o = e.child(s);
305
+ var F = (s) => {
306
+ var i = Le(), o = e.child(i);
307
307
  let L;
308
308
  var R = e.sibling(o, 2);
309
309
  let re;
310
- e.reset(s), e.template_effect(() => {
311
- e.set_attribute(s, "aria-label", g().viewOptions || "Display mode"), L = e.set_class(o, 1, "view-switcher-btn svelte-q3tjav", null, L, {
312
- "view-switcher-btn-active": e.get(k) === "gallery"
313
- }), e.set_attribute(o, "aria-label", g().galleryView || "Gallery view"), e.set_attribute(o, "aria-pressed", e.get(k) === "gallery"), re = e.set_class(R, 1, "view-switcher-btn svelte-q3tjav", null, re, {
314
- "view-switcher-btn-active": e.get(k) === "list"
315
- }), e.set_attribute(R, "aria-label", g().listView || "List view"), e.set_attribute(R, "aria-pressed", e.get(k) === "list");
316
- }), e.delegated("click", o, () => e.set(k, "gallery")), e.delegated("click", R, () => e.set(k, "list")), e.append(i, s);
310
+ e.reset(i), e.template_effect(() => {
311
+ e.set_attribute(i, "aria-label", g().viewOptions || "Display mode"), L = e.set_class(o, 1, "view-switcher-btn svelte-q3tjav", null, L, {
312
+ "view-switcher-btn-active": e.get(D) === "gallery"
313
+ }), e.set_attribute(o, "aria-label", g().galleryView || "Gallery view"), e.set_attribute(o, "aria-pressed", e.get(D) === "gallery"), re = e.set_class(R, 1, "view-switcher-btn svelte-q3tjav", null, re, {
314
+ "view-switcher-btn-active": e.get(D) === "list"
315
+ }), e.set_attribute(R, "aria-label", g().listView || "List view"), e.set_attribute(R, "aria-pressed", e.get(D) === "list");
316
+ }), e.delegated("click", o, () => e.set(D, "gallery")), e.delegated("click", R, () => e.set(D, "list")), e.append(s, i);
317
317
  };
318
- e.if(M, (i) => {
319
- e.get(N) && i(F);
318
+ e.if(M, (s) => {
319
+ e.get(N) && s(F);
320
320
  });
321
321
  }
322
322
  e.reset(S);
323
323
  var K = e.sibling(S, 2);
324
324
  {
325
- var te = (i) => {
325
+ var te = (s) => {
326
326
  {
327
- let s = e.derived(() => g().noUpcomingEvents || "No upcoming events"), o = e.derived(() => g().noUpcomingEventsSubtext || "There are no events in this collection right now. Check back soon!");
328
- _e(i, {
327
+ let i = e.derived(() => g().noUpcomingEvents || "No upcoming events"), o = e.derived(() => g().noUpcomingEventsSubtext || "There are no events in this collection right now. Check back soon!");
328
+ he(s, {
329
329
  get message() {
330
- return e.get(s);
330
+ return e.get(i);
331
331
  },
332
332
  get subtext() {
333
333
  return e.get(o);
334
334
  }
335
335
  });
336
336
  }
337
- }, ae = (i) => {
338
- Ee(i, {
337
+ }, ae = (s) => {
338
+ Ee(s, {
339
339
  get events() {
340
340
  return e.get(I);
341
341
  },
342
342
  filterFutureOnly: !1,
343
343
  oneventClick: z
344
344
  });
345
- }, ie = (i) => {
346
- var s = Re();
347
- e.each(s, 21, () => e.get($), (o) => o.id, (o, L) => {
345
+ }, se = (s) => {
346
+ var i = Re();
347
+ e.each(i, 21, () => e.get($), (o) => o.id, (o, L) => {
348
348
  xe(o, {
349
349
  get event() {
350
350
  return e.get(L);
351
351
  },
352
352
  oneventClick: z
353
353
  });
354
- }), e.reset(s), e.append(i, s);
354
+ }), e.reset(i), e.append(s, i);
355
355
  };
356
- e.if(K, (i) => {
357
- e.get(E).length === 0 ? i(te) : e.get(k) === "list" ? i(ae, 1) : i(ie, !1);
356
+ e.if(K, (s) => {
357
+ e.get(E).length === 0 ? s(te) : e.get(D) === "list" ? s(ae, 1) : s(se, !1);
358
358
  });
359
359
  }
360
360
  e.reset(C), e.template_effect(() => {
@@ -362,7 +362,7 @@ function Ze(H, d) {
362
362
  }), e.append(t, r);
363
363
  };
364
364
  e.if(c, (t) => {
365
- e.get(p) ? t(l) : e.get(_) ? t(n, 1) : e.get(w) ? t(u, 2) : e.get(f) && t(B, 3);
365
+ e.get(p) ? t(l) : e.get(h) ? t(n, 1) : e.get(y) ? t(m, 2) : e.get(f) && t(B, 3);
366
366
  });
367
367
  }
368
368
  e.reset(A), e.append(H, A), e.pop();
@@ -371,4 +371,4 @@ e.delegate(["click"]);
371
371
  export {
372
372
  Ze as default
373
373
  };
374
- //# sourceMappingURL=CollectionView.legacy-Bxih-dA-.js.map
374
+ //# sourceMappingURL=CollectionView.legacy-CQeXXMOU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollectionView.legacy-CQeXXMOU.js","sources":["../src/components/Calendar/GroupedListView.svelte","../src/components/Views/CollectionView.legacy.svelte"],"sourcesContent":["<script>\r\n import { onMount, onDestroy } from \"svelte\";\r\n import { PLACEHOLDER_IMAGE } from \"$lib/utils/constants.js\";\r\n import { getDateParts, formatFullDate, formatEventTime } from \"$lib/utils/datetime.js\";\r\n import { getBrowseStatus, isEventUnavailable, filterTodayAndFuture } from \"$lib/utils/browse-status.js\";\r\n import ScarcityBadge from \"../ScarcityBadge.svelte\";\r\n\r\n let {\r\n events = [],\r\n initialCount = 10,\r\n loadMoreCount = 10,\r\n showDateColumn = true,\r\n filterFutureOnly = true,\r\n oneventClick,\r\n labels = {},\r\n } = $props();\r\n\r\n let displayedCount = $state(initialCount);\r\n let loadMoreTrigger = $state();\r\n let observer;\r\n\r\n // Filter to today and future (if enabled), then group by date\r\n let filteredEvents = $derived(filterFutureOnly ? filterTodayAndFuture(events) : events);\r\n let groupedEvents = $derived(groupEventsByDate(filteredEvents.slice(0, displayedCount)));\r\n let hasMore = $derived(displayedCount < filteredEvents.length);\r\n\r\n function loadMore() {\r\n displayedCount += loadMoreCount;\r\n }\r\n\r\n onMount(() => {\r\n observer = new IntersectionObserver(\r\n (entries) => {\r\n if (entries[0].isIntersecting && hasMore) {\r\n loadMore();\r\n }\r\n },\r\n { rootMargin: '100px' }\r\n );\r\n\r\n if (loadMoreTrigger) {\r\n observer.observe(loadMoreTrigger);\r\n }\r\n });\r\n\r\n onDestroy(() => {\r\n if (observer) {\r\n observer.disconnect();\r\n }\r\n });\r\n\r\n // Re-observe when trigger element changes\r\n $effect(() => {\r\n if (observer && loadMoreTrigger) {\r\n observer.disconnect();\r\n observer.observe(loadMoreTrigger);\r\n }\r\n });\r\n\r\n function groupEventsByDate(eventList) {\r\n const groups = {};\r\n\r\n for (const event of eventList) {\r\n const dateKey = event.date; // YYYY-MM-DD format\r\n if (!groups[dateKey]) {\r\n groups[dateKey] = [];\r\n }\r\n groups[dateKey].push(event);\r\n }\r\n\r\n // Convert to array sorted by date\r\n return Object.entries(groups)\r\n .sort(([a], [b]) => new Date(a) - new Date(b))\r\n .map(([date, events]) => ({\r\n date,\r\n events,\r\n formattedDate: formatGroupDate(events),\r\n }));\r\n }\r\n\r\n function formatGroupDate(events) {\r\n // Use the first event in the group to get timezone-aware date parts\r\n const firstEvent = events[0];\r\n if (!firstEvent?.startDateTime) return { month: '', day: '', weekday: '' };\r\n const parts = getDateParts(firstEvent.startDateTime, firstEvent.timeZone);\r\n return {\r\n month: parts.month.toUpperCase(),\r\n day: String(parts.date).padStart(2, '0'),\r\n weekday: parts.day.toUpperCase(),\r\n };\r\n }\r\n\r\n function handleEventClick(event) {\r\n oneventClick?.(event);\r\n }\r\n\r\n function handleKeydown(e, event) {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n handleEventClick(event);\r\n }\r\n }\r\n</script>\r\n\r\n<section class=\"flex flex-col gap-0\" class:no-date-column={!showDateColumn} aria-label={labels.eventListings || 'Event listings'}>\r\n <h2 class=\"sr-only\">{labels.eventListGroupedByDate || 'Event list grouped by date'}</h2>\r\n {#each groupedEvents as group}\r\n <div class=\"date-group flex border-b border-border last:border-b-0\" role=\"group\" aria-label=\"Events on {group.events[0]?.startDateTime ? formatFullDate(group.events[0].startDateTime, group.events[0].timeZone) : group.date}\">\r\n <!-- Date Column -->\r\n {#if showDateColumn}\r\n <div class=\"w-16 min-w-16 py-4 px-2.5 flex flex-col items-center justify-start bg-bg-secondary border-r border-border max-sm:w-12 max-sm:min-w-12 max-sm:py-2.5 max-sm:px-1.5\" aria-hidden=\"true\">\r\n <span class=\"text-xs font-semibold text-text-secondary uppercase tracking-tight\">{group.formattedDate.month}</span>\r\n <span class=\"text-2xl max-sm:text-lg font-bold text-text-primary leading-tight\">{group.formattedDate.day}</span>\r\n <span class=\"text-xs font-semibold text-text-secondary uppercase tracking-tight\">{group.formattedDate.weekday}</span>\r\n </div>\r\n {/if}\r\n\r\n <!-- Events Column -->\r\n <ul class=\"events-column flex-1 flex flex-col list-none p-0 m-0\">\r\n {#each group.events as event, eventIndex}\r\n {@const eventStatus = getBrowseStatus(event)}\r\n {@const isUnavailable = isEventUnavailable(eventStatus)}\r\n <li class=\"list-none\">\r\n <div\r\n class=\"event-row flex gap-4 max-sm:gap-2.5 p-5 max-sm:p-3 cursor-pointer transition-colors duration-150 bg-card border-b border-border/50 last:border-b-0 hover:bg-bg-secondary focus:outline-2 focus:outline-brand-primary focus:-outline-offset-2 focus-visible:outline-2 focus-visible:outline-brand-primary:outline-brand-primary focus-visible:-outline-offset-2\"\r\n class:row-unavailable={isUnavailable}\r\n onclick={() => handleEventClick(event)}\r\n onkeydown={(e) => handleKeydown(e, event)}\r\n tabindex=\"0\"\r\n role=\"button\"\r\n aria-label={`${event.name} on ${event.startDateTime ? formatFullDate(event.startDateTime, event.timeZone) : group.date} at ${event.startDateTime ? formatEventTime(event.startDateTime, event.timeZone) : ''}, ${eventStatus?.text || event.status || labels.statusOnSale || 'On Sale'}. ${labels.pressEnterToView || 'Press Enter to view details'}`}\r\n >\r\n <!-- Event Image -->\r\n <div class=\"w-36 h-24 min-w-36 max-sm:w-20 max-sm:h-16 max-sm:min-w-20 rounded-lg overflow-hidden bg-bg-secondary flex items-center justify-center\" aria-hidden=\"true\">\r\n <img\r\n src={event.image || PLACEHOLDER_IMAGE}\r\n alt=\"\"\r\n class=\"w-full h-full object-contain\"\r\n loading=\"lazy\"\r\n />\r\n </div>\r\n\r\n <!-- Event Details (visually shown but also in aria-label, so hide from SR) -->\r\n <div class=\"flex-1 flex flex-col gap-1.5 min-w-0\" aria-hidden=\"true\">\r\n <h3 class=\"text-lg max-sm:text-sm font-semibold text-text-primary m-0 leading-snug\">{event.name}</h3>\r\n <time class=\"text-sm max-sm:text-xs font-medium text-text-secondary\" datetime={event.startDateTime || group.date}>{event.startDateTime ? formatEventTime(event.startDateTime, event.timeZone) : ''}</time>\r\n {#if event.description}\r\n <p class=\"event-description text-sm text-text-secondary mt-1.5 mb-0 line-clamp-2 max-sm:hidden\">{event.description}</p>\r\n {/if}\r\n </div>\r\n\r\n <!-- Status / Scarcity Badge -->\r\n <div class=\"flex items-start pt-0.5\" aria-hidden=\"true\">\r\n {#if eventStatus}\r\n <span class=\"status-badge status-{eventStatus.type}\">{eventStatus.text}</span>\r\n {:else if event.ticketsTotal > 0 || event.ticketsRemaining === 0}\r\n <ScarcityBadge\r\n remaining={event.ticketsRemaining ?? 0}\r\n total={event.ticketsTotal ?? 0}\r\n context=\"browse\"\r\n {labels}\r\n />\r\n {/if}\r\n </div>\r\n </div>\r\n </li>\r\n {/each}\r\n </ul>\r\n </div>\r\n {/each}\r\n\r\n <!-- Infinite scroll trigger -->\r\n {#if hasMore}\r\n <div bind:this={loadMoreTrigger} class=\"flex justify-center items-center p-6 text-text-secondary\" role=\"status\" aria-live=\"polite\">\r\n <span class=\"text-sm\">{labels.loadingMoreEvents || 'Loading more events...'}</span>\r\n </div>\r\n {/if}\r\n</section>\r\n\r\n<style>\r\n /* When no date column, remove left border styling */\r\n .no-date-column .date-group {\r\n border-bottom: 0;\r\n }\r\n\r\n .no-date-column .events-column {\r\n border-left: 0;\r\n }\r\n\r\n .event-description {\r\n display: -webkit-box;\r\n -webkit-box-orient: vertical;\r\n overflow: hidden;\r\n }\r\n\r\n /* Unavailable row dimming */\r\n .row-unavailable {\r\n opacity: 0.6;\r\n }\r\n\r\n .row-unavailable img {\r\n filter: grayscale(0.5);\r\n }\r\n\r\n /* Status badges -- distinct visual treatments matching gallery cards */\r\n .status-badge {\r\n display: inline-flex;\r\n align-items: center;\r\n font-size: 0.75rem;\r\n line-height: 1rem;\r\n font-weight: 700;\r\n padding: 0.25rem 0.625rem;\r\n border-radius: 0.25rem;\r\n white-space: nowrap;\r\n letter-spacing: 0.02em;\r\n }\r\n\r\n .status-cancelled {\r\n background-color: hsl(var(--accent-danger) / 0.1);\r\n color: hsl(var(--accent-danger));\r\n text-decoration: line-through;\r\n text-decoration-thickness: 1.5px;\r\n\r\n \r\n }\r\n\r\n .status-past {\r\n background-color: hsl(var(--bg-tertiary));\r\n color: hsl(var(--text-tertiary));\r\n\r\n \r\n }\r\n\r\n .status-sold_out {\r\n background-color: hsl(var(--accent-danger) / 0.1);\r\n color: hsl(var(--accent-danger));\r\n text-transform: uppercase;\r\n letter-spacing: 0.05em;\r\n font-size: 0.65rem;\r\n\r\n \r\n }\r\n\r\n .status-sales_ended {\r\n background-color: hsl(var(--bg-tertiary));\r\n color: hsl(var(--text-tertiary));\r\n border: 1px solid hsl(var(--stroke-primary));\r\n\r\n \r\n }\r\n\r\n .status-coming_soon {\r\n background-color: hsl(var(--brand-primary) / 0.15);\r\n color: hsl(var(--brand-primary));\r\n\r\n \r\n }\r\n\r\n /* Reduced motion */\r\n @media (prefers-reduced-motion: reduce) {\r\n .event-row {\r\n transition: none;\r\n }\r\n }\r\n\r\n /* Screen reader only text */\r\n .sr-only {\r\n position: absolute;\r\n width: 1px;\r\n height: 1px;\r\n padding: 0;\r\n margin: -1px;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n white-space: nowrap;\r\n border-width: 0;\r\n }\r\n</style>\r\n","<script>\r\n import { onMount, onDestroy } from 'svelte';\r\n import { fetchPublicCollection } from '../../lib/api/events.ts';\r\n import { getImageUrl } from '$lib/utils/utils.js';\r\n import { EmptyState } from '@getmicdrop/svelte-components';\r\n import GalleryCard from '../Calendar/GalleryCard.svelte';\r\n import GroupedListView from '../Calendar/GroupedListView.svelte';\r\n import SkeletonLoader from '../SkeletonLoader/SkeletonLoader.svelte';\r\n\r\n let {\r\n collectionId,\r\n organizationId = '',\r\n onNavigateToEvent,\r\n password: initialPassword = undefined,\r\n displayMode: initialDisplayMode = 'gallery',\r\n showViewSwitcher = true,\r\n labels = {},\r\n } = $props();\r\n\r\n let collection = $state(null);\r\n let isLoading = $state(true);\r\n let error = $state(null);\r\n let isMounted = $state(false);\r\n let passwordRequired = $state(false);\r\n let passwordInput = $state('');\r\n let passwordError = $state(false);\r\n let activeDisplayMode = $state(initialDisplayMode);\r\n\r\n // Transform collection events into the shape GalleryCard expects\r\n function toGalleryEvent(event) {\r\n return {\r\n id: event.id,\r\n name: event.title || event.name || '',\r\n date: event.startDateTime ? event.startDateTime.split('T')[0] : '',\r\n image: event.image ? getImageUrl(event.image) : '',\r\n timeline: event.startDateTime ? formatTimeline(event.startDateTime) : '',\r\n status: event.status || 'on_sale',\r\n slug: event.slug || '',\r\n ticketsRemaining: event.ticketsRemaining ?? event.ticketsAvailable,\r\n ticketsTotal: event.ticketsTotal ?? event.capacity,\r\n };\r\n }\r\n\r\n // Transform collection events into the shape GroupedListView expects\r\n function toListEvent(event) {\r\n return {\r\n id: event.id,\r\n name: event.title || event.name || '',\r\n date: event.startDateTime ? event.startDateTime.split('T')[0] : '',\r\n startDateTime: event.startDateTime || '',\r\n image: event.image ? getImageUrl(event.image) : '',\r\n status: event.status || 'on_sale',\r\n slug: event.slug || '',\r\n description: event.description || '',\r\n ticketsRemaining: event.ticketsRemaining ?? event.ticketsAvailable,\r\n ticketsTotal: event.ticketsTotal ?? event.capacity,\r\n };\r\n }\r\n\r\n function formatTimeline(iso) {\r\n if (!iso) return '';\r\n const date = new Date(iso);\r\n return date.toLocaleTimeString('en-US', {\r\n hour: 'numeric',\r\n minute: '2-digit',\r\n hour12: true,\r\n });\r\n }\r\n\r\n let displayEvents = $derived(\r\n collection ? sortByStartTime(collection.events || []) : []\r\n );\r\n\r\n let galleryEvents = $derived(displayEvents.map(toGalleryEvent));\r\n let listEvents = $derived(displayEvents.map(toListEvent));\r\n\r\n // Only show view switcher when there are 2+ events\r\n let canShowSwitcher = $derived(showViewSwitcher && displayEvents.length >= 2);\r\n\r\n function sortByStartTime(events) {\r\n return [...events].sort((a, b) => {\r\n if (!a.startDateTime && !b.startDateTime) return 0;\r\n if (!a.startDateTime) return 1;\r\n if (!b.startDateTime) return -1;\r\n return new Date(a.startDateTime).getTime() - new Date(b.startDateTime).getTime();\r\n });\r\n }\r\n\r\n function handleEventClick(galleryEvent) {\r\n if (onNavigateToEvent) {\r\n const eventData = galleryEvent.detail || galleryEvent;\r\n onNavigateToEvent(eventData.id, eventData.slug || '');\r\n }\r\n }\r\n\r\n async function loadCollection(pwd) {\r\n if (!isMounted) return;\r\n if (!collectionId) {\r\n error = labels.noCollectionIdProvided || 'No collection ID provided';\r\n isLoading = false;\r\n return;\r\n }\r\n\r\n isLoading = true;\r\n error = null;\r\n passwordError = false;\r\n\r\n try {\r\n const data = await fetchPublicCollection(collectionId, pwd);\r\n if (!isMounted) return;\r\n\r\n if (data) {\r\n // Check if the response indicates password is required\r\n if (data.passwordRequired || data.error?.code === 'PASSWORD_REQUIRED') {\r\n passwordRequired = true;\r\n isLoading = false;\r\n return;\r\n }\r\n collection = data;\r\n passwordRequired = false;\r\n } else {\r\n // A null response after providing a password likely means wrong password\r\n if (pwd) {\r\n passwordRequired = true;\r\n passwordError = true;\r\n isLoading = false;\r\n return;\r\n }\r\n error = labels.failedToLoadCollection || 'Failed to load collection';\r\n }\r\n } catch (err) {\r\n if (isMounted) {\r\n // Check for password-related error responses\r\n const msg = err.message || '';\r\n if (msg.includes('401') || msg.includes('403') || msg.includes('password')) {\r\n passwordRequired = true;\r\n } else {\r\n error = msg || 'Failed to load collection';\r\n }\r\n }\r\n } finally {\r\n if (isMounted) {\r\n isLoading = false;\r\n }\r\n }\r\n }\r\n\r\n function handlePasswordSubmit(e) {\r\n e.preventDefault();\r\n if (!passwordInput.trim()) return;\r\n loadCollection(passwordInput);\r\n }\r\n\r\n onMount(async () => {\r\n isMounted = true;\r\n await loadCollection(initialPassword);\r\n });\r\n\r\n onDestroy(() => {\r\n isMounted = false;\r\n });\r\n</script>\r\n\r\n<div class=\"collection-view\">\r\n {#if isLoading}\r\n <SkeletonLoader type=\"gallery\" />\r\n {:else if passwordRequired}\r\n <div class=\"password-container\">\r\n <div class=\"password-card\">\r\n <h2 class=\"password-title\">{labels.collectionPrivateTitle || 'This collection is private'}</h2>\r\n <p class=\"password-description\">{labels.collectionPrivateDescription || 'Please enter the password to view this collection.'}</p>\r\n <form onsubmit={handlePasswordSubmit} class=\"password-form\">\r\n <input\r\n type=\"password\"\r\n bind:value={passwordInput}\r\n placeholder={labels.enterPassword || \"Enter password\"}\r\n class=\"password-input\"\r\n class:password-input-error={passwordError}\r\n />\r\n {#if passwordError}\r\n <p class=\"password-error-text\">{labels.incorrectPassword || 'Incorrect password. Please try again.'}</p>\r\n {/if}\r\n <button type=\"submit\" class=\"password-submit\">{labels.viewCollection || 'View Collection'}</button>\r\n </form>\r\n </div>\r\n </div>\r\n {:else if error}\r\n <div class=\"error-container\">\r\n <p class=\"error-text\">{labels.errorPrefix || 'Error:'} {error}</p>\r\n </div>\r\n {:else if collection}\r\n <!-- Cover Image with Blur -->\r\n {#if collection.coverImage}\r\n {@const imageUrl = getImageUrl(collection.coverImage)}\r\n <div class=\"cover-image\">\r\n <div class=\"cover-blur\" style=\"background-image: url({imageUrl})\"></div>\r\n <img src={imageUrl} alt={collection.collectionTitle} />\r\n </div>\r\n {/if}\r\n\r\n <!-- Collection Header -->\r\n <div class=\"collection-header\">\r\n <h1 class=\"collection-title\">{collection.collectionTitle}</h1>\r\n {#if collection.summary}\r\n <p class=\"collection-summary\">{collection.summary}</p>\r\n {/if}\r\n {#if collection.description}\r\n <div class=\"collection-description\">{collection.description}</div>\r\n {/if}\r\n </div>\r\n\r\n <!-- Events Section -->\r\n <div class=\"events-section\">\r\n <div class=\"events-section-header\">\r\n <h2 class=\"events-heading\">Events ({displayEvents.length})</h2>\r\n\r\n {#if canShowSwitcher}\r\n <div class=\"view-switcher\" role=\"group\" aria-label={labels.viewOptions || \"Display mode\"}>\r\n <button\r\n type=\"button\"\r\n class=\"view-switcher-btn\"\r\n class:view-switcher-btn-active={activeDisplayMode === 'gallery'}\r\n onclick={() => activeDisplayMode = 'gallery'}\r\n aria-label={labels.galleryView || \"Gallery view\"}\r\n aria-pressed={activeDisplayMode === 'gallery'}\r\n >\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"></rect>\r\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"></rect>\r\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"></rect>\r\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"></rect>\r\n </svg>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"view-switcher-btn\"\r\n class:view-switcher-btn-active={activeDisplayMode === 'list'}\r\n onclick={() => activeDisplayMode = 'list'}\r\n aria-label={labels.listView || \"List view\"}\r\n aria-pressed={activeDisplayMode === 'list'}\r\n >\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"></line>\r\n <line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"></line>\r\n <line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"></line>\r\n <line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"></line>\r\n <line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"></line>\r\n <line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"></line>\r\n </svg>\r\n </button>\r\n </div>\r\n {/if}\r\n </div>\r\n\r\n {#if displayEvents.length === 0}\r\n <EmptyState\r\n message={labels.noUpcomingEvents || \"No upcoming events\"}\r\n subtext={labels.noUpcomingEventsSubtext || \"There are no events in this collection right now. Check back soon!\"}\r\n />\r\n {:else if activeDisplayMode === 'list'}\r\n <GroupedListView\r\n events={listEvents}\r\n filterFutureOnly={false}\r\n oneventClick={handleEventClick}\r\n />\r\n {:else}\r\n <div class=\"events-grid\">\r\n {#each galleryEvents as event (event.id)}\r\n <GalleryCard {event} oneventClick={handleEventClick} />\r\n {/each}\r\n </div>\r\n {/if}\r\n </div>\r\n {/if}\r\n</div>\r\n\r\n<style>\r\n .collection-view {\r\n width: 100%;\r\n max-width: 64rem;\r\n margin-left: auto;\r\n margin-right: auto;\r\n padding-left: 1rem;\r\n padding-right: 1rem;\r\n color: hsl(var(--text-primary, 0 0% 10%));\r\n }\r\n\r\n .error-container,\r\n .password-container {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n min-height: 50vh;\r\n text-align: center;\r\n }\r\n\r\n .error-text {\r\n color: hsl(var(--status-sold-out, 0 72% 51%));\r\n }\r\n\r\n /* Password gate */\r\n .password-card {\r\n border-radius: 0.5rem;\r\n padding: 2rem;\r\n max-width: 24rem;\r\n width: 100%;\r\n background: hsl(var(--surface-primary, 0 0% 100%));\r\n box-shadow: 0 2px 10px color-mix(in srgb, black 10%, transparent);\r\n }\r\n\r\n .password-title {\r\n font-size: 1.25rem;\r\n line-height: 1.75rem;\r\n font-weight: 700;\r\n margin-bottom: 0.5rem;\r\n color: hsl(var(--text-primary, 0 0% 10%));\r\n }\r\n\r\n .password-description {\r\n font-size: 0.875rem;\r\n line-height: 1.25rem;\r\n margin-bottom: 1.5rem;\r\n color: hsl(var(--text-secondary, 0 0% 45%));\r\n }\r\n\r\n .password-form {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.75rem;\r\n }\r\n\r\n .password-input {\r\n width: 100%;\r\n padding: 0.5rem 0.75rem;\r\n border-radius: 0.5rem;\r\n font-size: 0.875rem;\r\n line-height: 1.25rem;\r\n border: 1px solid hsl(var(--stroke-secondary, 0 0% 85%));\r\n color: hsl(var(--text-primary, 0 0% 10%));\r\n background: hsl(var(--surface-primary, 0 0% 100%));\r\n }\r\n\r\n .password-input:focus {\r\n outline: none;\r\n border-color: hsl(var(--brand-primary, 220 90% 56%));\r\n box-shadow: 0 0 0 2px hsl(var(--brand-primary, 220 90% 56%) / 0.2);\r\n }\r\n\r\n .password-input-error {\r\n border-color: hsl(var(--status-sold-out, 0 72% 51%));\r\n }\r\n\r\n .password-error-text {\r\n font-size: 0.75rem;\r\n line-height: 1rem;\r\n color: hsl(var(--status-sold-out, 0 72% 51%));\r\n }\r\n\r\n .password-submit {\r\n padding: 0.5rem 1rem;\r\n border-radius: 0.5rem;\r\n font-size: 0.875rem;\r\n line-height: 1.25rem;\r\n font-weight: 600;\r\n background: hsl(var(--brand-primary, 220 90% 56%));\r\n color: hsl(var(--text-on-primary, 0 0% 100%));\r\n }\r\n\r\n .password-submit:hover {\r\n filter: brightness(0.95);\r\n }\r\n\r\n /* Cover Image with blur background */\r\n .cover-image {\r\n position: relative;\r\n width: 100%;\r\n overflow: hidden;\r\n border-radius: 0.5rem;\r\n margin-bottom: 2rem;\r\n height: 350px;\r\n }\r\n\r\n .cover-blur {\r\n position: absolute;\r\n inset: 0;\r\n background-size: cover;\r\n background-position: center;\r\n filter: blur(24px) saturate(1.2);\r\n transform: scale(1.15);\r\n }\r\n\r\n .cover-image img {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: contain;\r\n }\r\n\r\n /* Header */\r\n .collection-header {\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .collection-title {\r\n font-size: 1.875rem;\r\n line-height: 2.25rem;\r\n font-weight: 700;\r\n margin-bottom: 0.5rem;\r\n color: hsl(var(--text-primary, 0 0% 10%));\r\n }\r\n\r\n .collection-summary {\r\n font-size: 1.125rem;\r\n line-height: 1.75rem;\r\n margin-bottom: 1rem;\r\n color: hsl(var(--text-secondary, 0 0% 45%));\r\n }\r\n\r\n .collection-description {\r\n line-height: 1.625;\r\n color: hsl(var(--text-secondary, 0 0% 35%));\r\n }\r\n\r\n /* Events Section */\r\n .events-section {\r\n margin-bottom: 2rem;\r\n }\r\n\r\n .events-section-header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-bottom: 1rem;\r\n }\r\n\r\n .events-heading {\r\n font-size: 1.5rem;\r\n line-height: 2rem;\r\n font-weight: 700;\r\n color: hsl(var(--text-primary, 0 0% 10%));\r\n }\r\n\r\n /* View Switcher */\r\n .view-switcher {\r\n display: flex;\r\n gap: 0.25rem;\r\n padding: 0.25rem;\r\n border-radius: 0.5rem;\r\n background: hsl(var(--surface-secondary, 0 0% 96%));\r\n }\r\n\r\n .view-switcher-btn {\r\n padding: 0.375rem;\r\n border-radius: 0.375rem;\r\n transition: color 0.15s;\r\n color: hsl(var(--text-secondary, 0 0% 45%));\r\n }\r\n\r\n .view-switcher-btn:hover {\r\n color: hsl(var(--text-primary, 0 0% 10%));\r\n }\r\n\r\n .view-switcher-btn-active {\r\n color: hsl(var(--text-primary, 0 0% 10%));\r\n background: hsl(var(--surface-primary, 0 0% 100%));\r\n box-shadow: 0 1px 2px color-mix(in srgb, black 8%, transparent);\r\n }\r\n\r\n .events-grid {\r\n display: grid;\r\n gap: 1.5rem;\r\n grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));\r\n }\r\n\r\n /* Responsive */\r\n @media (max-width: 640px) {\r\n .cover-image {\r\n height: 250px;\r\n }\r\n\r\n .collection-title {\r\n font-size: 1.5rem;\r\n line-height: 2rem;\r\n }\r\n\r\n .events-grid {\r\n grid-template-columns: repeat(2, 1fr);\r\n }\r\n }\r\n\r\n @media (max-width: 400px) {\r\n .events-grid {\r\n grid-template-columns: 1fr;\r\n }\r\n }\r\n</style>\r\n"],"names":["events","$","$$props","initialCount","loadMoreCount","showDateColumn","filterFutureOnly","labels","displayedCount","loadMoreTrigger","observer","filteredEvents","filterTodayAndFuture","groupedEvents","groupEventsByDate","hasMore","loadMore","onMount","entries","onDestroy","eventList","groups","event","dateKey","a","b","date","formatGroupDate","firstEvent","parts","getDateParts","handleEventClick","handleKeydown","e","section","root","h2","node","group","div","root_1","div_1","root_2","span","span_1","span_2","$$render","consequent","ul","node_1","eventStatus","getBrowseStatus","isUnavailable","isEventUnavailable","li","root_3","div_2","div_3","img","div_4","h3","time","p","root_4","text_6","consequent_1","div_5","span_3","root_5","text_7","ScarcityBadge","$$anchor","consequent_2","consequent_3","classes_1","$0","PLACEHOLDER_IMAGE","text_4","formatFullDate","formatEventTime","div_6","root_7","span_4","$$value","consequent_4","classes","initialPassword","initialDisplayMode","showViewSwitcher","collection","isLoading","error","isMounted","passwordRequired","passwordInput","passwordError","activeDisplayMode","toGalleryEvent","getImageUrl","formatTimeline","toListEvent","iso","displayEvents","sortByStartTime","galleryEvents","listEvents","canShowSwitcher","galleryEvent","eventData","loadCollection","pwd","data","fetchPublicCollection","err","msg","handlePasswordSubmit","SkeletonLoader","form","input","p_1","button","p_2","imageUrl","root_6","node_2","h1","p_3","consequent_5","div_7","root_8","consequent_6","div_8","div_9","h2_1","div_10","root_9","button_1","button_2","classes_2","consequent_7","EmptyState","GroupedListView","div_11","root_12","GalleryCard","consequent_8","consequent_9","alternate","text_5","text_8","consequent_10"],"mappings":";;;;;;;kBAAA;;MAQIA,IAAMC,EAAA,KAAAC,GAAA,UAAA,IAAA,MAAA,EAAA,GACNC,iCAAe,EAAE,GACjBC,kCAAgB,EAAE,GAClBC,mCAAiB,EAAI,GACrBC,qCAAmB,EAAI,GAEvBC,IAAMN,EAAA,KAAAC,GAAA,UAAA,IAAA,OAAA,CAAA,EAAA,GAGJM,IAAiBP,EAAA,MAAMA,EAAA,MAACE,EAAY,CAAA,CAAA,GACpCM,IAAkBR,EAAA,MAAM,MAAA,GACxBS,GAGAC,oBAA0BL,MAAmBM,GAAqBZ,EAAM,KAAIA,GAAM,GAClFa,IAAaZ,EAAA,QAAA,MAAYa,EAAiBb,EAAA,IAACU,CAAc,EAAC,MAAM,GAACV,EAAA,IAAEO,CAAc,CAAA,CAAA,CAAA,GACjFO,IAAOd,EAAA,QAAA,MAAAA,EAAA,IAAYO,CAAc,IAAAP,EAAA,IAAGU,CAAc,EAAC,MAAM;AAEpD,WAAAK,IAAW;UAClBR,GAAcP,EAAA,IAAdO,CAAc,IAAIJ,GAAa;AAAA,EACjC;AAEA,EAAAa,SAAc;AACZ,IAAAP,QAAe;AAAA,MACZ,CAAAQ,MAAY;AACP,QAAAA,EAAQ,CAAC,EAAE,kBAAcjB,EAAA,IAAIc,CAAO,KACtCC,EAAQ;AAAA,MAEZ;AAAA,MACE,EAAA,YAAY,QAAO;AAAA,OAGnBf,EAAA,IAAAQ,CAAe,KACjBC,EAAS,QAAOT,EAAA,IAACQ,CAAe,CAAA;AAAA,EAEpC,CAAC,GAEDU,SAAgB;AACV,IAAAT,KACFA,EAAS,WAAU;AAAA,EAEvB,CAAC,GAGDT,EAAA,kBAAc;IACRS,KAAQT,EAAA,IAAIQ,CAAe,MAC7BC,EAAS,WAAU,GACnBA,EAAS,QAAOT,EAAA,IAACQ,CAAe,CAAA;AAAA,EAEpC,CAAC;WAEQK,EAAkBM,GAAW;UAC9BC,IAAM,CAAA;eAEDC,KAASF,GAAW;YACvBG,IAAUD,EAAM;MACjBD,EAAOE,CAAO,MACjBF,EAAOE,CAAO,IAAA,CAAA,IAEhBF,EAAOE,CAAO,EAAE,KAAKD,CAAK;AAAA,IAC5B;AAGO,WAAA,OAAO,QAAQD,CAAM,EACzB,KAAI,CAAA,CAAGG,CAAC,GAAA,CAAIC,CAAC,MAAA,IAAU,KAAKD,CAAC,IAAA,IAAQ,KAAKC,CAAC,CAAA,EAC3C,IAAG,CAAA,CAAGC,GAAM1B,CAAM,OAAA,EACjB,MAAA0B,GACA,QAAA1B,GACA,eAAe2B,EAAgB3B,CAAM,EAAA,EAAA;AAAA,EAE3C;WAES2B,EAAgB3B,GAAQ;UAEzB4B,IAAa5B,EAAO,CAAC;AACtB,QAAA,CAAA4B,GAAY,cAAa,QAAA,EAAW,OAAO,IAAI,KAAK,IAAI,SAAS,GAAE;UAClEC,IAAQC,GAAaF,EAAW,eAAeA,EAAW,QAAQ;;MAEtE,OAAOC,EAAM,MAAM,YAAW;AAAA,MAC9B,KAAK,OAAOA,EAAM,IAAI,EAAE,SAAS,GAAG,GAAG;AAAA,MACvC,SAASA,EAAM,IAAI,YAAW;AAAA;EAElC;WAESE,EAAiBT,GAAO;qBAChBA,CAAK;AAAA,EACtB;AAES,WAAAU,EAAcC,GAAGX,GAAO;KAC3BW,EAAE,QAAQ,WAAWA,EAAE,QAAQ,SACjCA,EAAE,eAAc,GAChBF,EAAiBT,CAAK;AAAA,EAE1B;MAGDY,IAAOC,GAAA;;AACL,MAAAC,YADFF,CAAO,eACLE,GAAE,EAAA;UAAFA,CAAE;oBAAFA,GAAE,CAAA;AACI,EAAAnC,EAAA,KAAAoC,GAAA,IAAA,MAAApC,EAAA,IAAAY,CAAa,gBAAIyB,MAAK;QAC1BC,IAAGC,GAAA,eAAHD,CAAG;;;YAGCE,IAAGC,GAAA,GACDC,YADFF,CAAG,eACDE,GAAI,EAAA;gBAAJA,CAAI;AACJ,YAAAC,cADAD,GAAI,CAAA,eACJC,GAAI,EAAA;gBAAJA,CAAI;AACJ,YAAAC,cADAD,GAAI,CAAA,eACJC,GAAI,EAAA;gBAAJA,CAAI,WAHNJ,CAAG;8BACgFH,CAAK,EAAC,cAAc,KAAK,uBAC1BA,CAAK,EAAC,cAAc,GAAG,uBACtBA,CAAK,EAAC,cAAc,OAAO;AAAA,wBAH9GG,CAAG;AAAA;;QADDpC,EAAc,KAAAyC,EAAAC,CAAA;AAAA;;QASlBC,IAAE/C,EAAA,QAAAgD,GAAA,CAAA;AAAF,IAAAhD,EAAA,KAAA+C,GAAE,IAAA,MAAA/C,EAAA,IACMqC,CAAK,EAAC,qBAAUhB,MAAK;YAClB4B,IAAWjD,EAAA,QAAA,MAAGkD,GAAelD,EAAA,IAACqB,CAAK,CAAA,CAAA,GACnC8B,IAAanD,EAAA,QAAA,MAAGoD,GAAkBpD,EAAA,IAACiD,CAAW,CAAA,CAAA;UACrDI,IAAEC,GAAA,GACAC,YADFF,CAAE;;AAWE,UAAAG,YAVFD,CAAG,GAWCE,YADFD,CAAG;cAAHA,CAAG;AAUH,UAAAE,cAVAF,GAAG,CAAA,GAWDG,YADFD,CAAG,eACDC,GAAE,EAAA;cAAFA,CAAE;AACF,UAAAC,cADAD,GAAE,CAAA,eACFC,GAAI,EAAA;cAAJA,CAAI;wBAAJA,GAAI,CAAA;;;cAEFC,IAACC,GAAA,eAADD,GAAC,EAAA;kBAADA,CAAC,GAA+F7D,EAAA,gBAAA,MAAAA,EAAA,SAAA+D,GAAA/D,EAAA,IAAAqB,CAAK,EAAC,WAAW,CAAA,eAAjHwC,CAAC;AAAA;;AADC,UAAA7D,EAAA,IAAAqB,CAAK,EAAC,eAAWwB,EAAAmB,CAAA;AAAA;;cAHvBN,CAAG;AASH,UAAAO,cATAP,GAAG,CAAA,gBASHO,CAAG;;;cAECC,IAAIC,GAAA,eAAJD,GAAI,EAAA;kBAAJA,CAAI;wBAAJA,GAAI,GAAA,uBAAAlE,EAAA,IAA6BiD,CAAW,EAAC,QAAI,EAAA,IAAA,gBAAA,GAAIjD,EAAA,SAAAoE,GAAApE,EAAA,IAAAiD,CAAW,EAAC,IAAI;AAAA,0BAArEiB,CAAI;AAAA;;0CAGQ7C,CAAK,EAAC,oBAAoB,CAAC,6BAC/BA,CAAK,EAAC,gBAAgB,CAAC;AAF/B,YAAAgD,GAAaC,GAAA;AAAA;;;;;;;;uBAIXhE,EAAM;AAAA;;;;;gBAPN2C,CAAW,IAAAJ,EAAA0B,EAAA,KAAAvE,EAAA,IAENqB,CAAK,EAAC,eAAe,KAACrB,EAAA,IAAIqB,CAAK,EAAC,qBAAqB,MAACwB,EAAA2B,IAAA,CAAA;AAAA;;cAHjEP,CAAG,WA7BLV,CAAG,WADLF,CAAE;;AACA,UAAAoB,IAAAzE,EAAA,UAAAuD,2ZAEwBJ,CAAa,EAAA,CAAA,mBAFrCI,GAAG,cAAAmB,CAAA,GAWC1E,EAAA,cAAAyD,GAAG,OAAAzD,EAAA,IACGqB,CAAK,EAAC,SAASsD,EAAiB,GAS8C3E,EAAA,SAAA4E,GAAA5E,EAAA,IAAAqB,CAAK,EAAC,IAAI,GAC9FrB,EAAA,cAAA4D,qBAA8EvC,CAAK,EAAC,iBAAarB,EAAA,IAAIqC,CAAK,EAAC,IAAI;;;UAfnG,MAAA,GAAArC,EAAA,IAAAqB,CAAK,EAAC,IAAI,OAAArB,EAAA,IAAOqB,CAAK,EAAC,gBAAgBwD,SAAexD,CAAK,EAAC,eAAarB,EAAA,IAAEqB,CAAK,EAAC,QAAQ,IAAIrB,EAAA,IAAAqC,CAAK,EAAC,IAAI,OAAArC,EAAA,IAAOqB,CAAK,EAAC,gBAAgByD,SAAgBzD,CAAK,EAAC,eAAarB,EAAA,IAAEqB,CAAK,EAAC,QAAQ,IAAI,EAAE,WAAK4B,CAAW,GAAE,QAAIjD,EAAA,IAAIqB,CAAK,EAAC,UAAUf,EAAM,EAAC,gBAAgB,SAAS,KAAKA,EAAM,EAAC,oBAAoB,6BAA6B;AAAA,UAe9N,MAAAN,EAAA,IAAAqB,CAAK,EAAC,gBAAgByD,SAAgBzD,CAAK,EAAC,eAAarB,EAAA,IAAEqB,CAAK,EAAC,QAAQ,IAAI;AAAA;8BAtBnMkC,GAAG,MAGazB,EAAgB9B,EAAA,IAACqB,CAAK,CAAA,CAAA,GAHtCrB,EAAA,UAAA,WAAAuD,IAIavB,MAAMD,EAAcC,SAAGX,CAAK,CAAA,CAAA,eAL3CgC,CAAE;AAAA,gBAJNN,CAAE,WAXJT,CAAG,4CAAHA,GAAG,cAAA,aAAAoC,KAAA,EAAA,EAAA,GAAA;AAAA,MAAoG,MAAA1E,EAAA,IAAAqC,CAAK,EAAC,OAAO,CAAC,GAAG,gBAAgBwC,GAAc7E,EAAA,IAACqC,CAAK,EAAC,OAAO,CAAC,EAAE,eAAarC,EAAA,IAAEqC,CAAK,EAAC,OAAO,CAAC,EAAE,QAAQ,IAAIrC,EAAA,IAAAqC,CAAK,EAAC;AAAA,oBAAxNC,CAAG;AAAA;;;;UAkEHyC,IAAGC,GAAA,GACDC,YADFF,CAAG,eACDE,GAAI,EAAA;cAAJA,CAAI,WADNF,CAAG,eAAHA,GAAG,CAAAG,MAAAlF,EAAA,IAAYQ,GAAe0E,CAAA,GAAA,MAAAlF,EAAA,IAAfQ,CAAe,CAAA,yCACNF,EAAM,EAAC,qBAAqB,wBAAwB,CAAA,eAD5EyE,CAAG;AAAA;;YADDjE,CAAO,KAAA+B,EAAAsC,CAAA;AAAA;;UApEblD,CAAO;AAAP,IAAAmD,IAAApF,EAAA,UAAAiC,0EAA2D7B,EAAc,EAAA,CAAA,GAAzEJ,EAAA,cAAAiC,GAAO,cAAgF3B,EAAM,EAAC,iBAAiB,gBAAgB,iBACzGA,EAAM,EAAC,0BAA0B,4BAA4B;AAAA,kBADnF2B,CAAO;AAFA;;;kBCtGR;gDAWqB,EAAE;AAET,MAAAoD,6BAAkB,MAAS,GACxBC,gCAAqB,SAAS,GAC3CC,qCAAmB,EAAI,GACvBjF,IAAMN,EAAA,KAAAC,GAAA,UAAA,IAAA,OAAA,GAAA,GAGJuF,IAAaxF,EAAA,MAAO,IAAI,GACxByF,IAAYzF,EAAA,MAAO,EAAI,GACvB0F,IAAQ1F,EAAA,MAAO,IAAI,GACnB2F,IAAY3F,EAAA,MAAO,EAAK,GACxB4F,IAAmB5F,EAAA,MAAO,EAAK,GAC/B6F,IAAgB7F,EAAA,MAAO,EAAE,GACzB8F,IAAgB9F,EAAA,MAAO,EAAK,GAC5B+F,IAAoB/F,EAAA,MAAMA,EAAA,MAACsF,EAAkB,CAAA,CAAA;WAGxCU,EAAe3E,GAAO;;MAE3B,IAAIA,EAAM;AAAA,MACV,MAAMA,EAAM,SAASA,EAAM,QAAQ;AAAA,MACnC,MAAMA,EAAM,gBAAgBA,EAAM,cAAc,MAAM,GAAG,EAAE,CAAC,IAAI;AAAA,MAChE,OAAOA,EAAM,QAAQ4E,GAAY5E,EAAM,KAAK,IAAI;AAAA,MAChD,UAAUA,EAAM,gBAAgB6E,EAAe7E,EAAM,aAAa,IAAI;AAAA,MACtE,QAAQA,EAAM,UAAU;AAAA,MACxB,MAAMA,EAAM,QAAQ;AAAA,MACpB,kBAAkBA,EAAM,oBAAoBA,EAAM;AAAA,MAClD,cAAcA,EAAM,gBAAgBA,EAAM;AAAA;EAE9C;WAGS8E,EAAY9E,GAAO;;MAExB,IAAIA,EAAM;AAAA,MACV,MAAMA,EAAM,SAASA,EAAM,QAAQ;AAAA,MACnC,MAAMA,EAAM,gBAAgBA,EAAM,cAAc,MAAM,GAAG,EAAE,CAAC,IAAI;AAAA,MAChE,eAAeA,EAAM,iBAAiB;AAAA,MACtC,OAAOA,EAAM,QAAQ4E,GAAY5E,EAAM,KAAK,IAAI;AAAA,MAChD,QAAQA,EAAM,UAAU;AAAA,MACxB,MAAMA,EAAM,QAAQ;AAAA,MACpB,aAAaA,EAAM,eAAe;AAAA,MAClC,kBAAkBA,EAAM,oBAAoBA,EAAM;AAAA,MAClD,cAAcA,EAAM,gBAAgBA,EAAM;AAAA;EAE9C;WAES6E,EAAeE,GAAK;AACtB,WAAAA,IACK,IAAO,KAAKA,CAAG,EACb,mBAAmB,WAC7B,MAAM,WACN,QAAQ,WACR,QAAQ,IAAI,IALG;AAAA,EAOnB;AAEI,MAAAC,0BACFb,CAAU,IAAGc,EAAetG,EAAA,IAACwF,CAAU,EAAC,UAAM,CAAA,CAAA,IAAA,EAAA,GAG5Ce,IAAavG,EAAA,QAAA,MAAAA,EAAA,IAAYqG,CAAa,EAAC,IAAIL,CAAc,CAAA,GACzDQ,IAAUxG,EAAA,QAAA,MAAAA,EAAA,IAAYqG,CAAa,EAAC,IAAIF,CAAW,CAAA,GAGnDM,oBAA2BlB,EAAgB,KAAAvF,EAAA,IAAIqG,CAAa,EAAC,UAAU,CAAC;WAEnEC,EAAgBvG,GAAQ;AACpB,WAAA,CAAA,GAAAA,CAAM,EAAE,KAAI,CAAEwB,GAAGC,MACrB,CAAAD,EAAE,iBAAa,CAAKC,EAAE,gBAAsB,IAC5CD,EAAE,gBACFC,EAAE,gBACI,IAAA,KAAKD,EAAE,aAAa,EAAE,YAAO,IAAS,KAAKC,EAAE,aAAa,EAAE,QAAO,IAD1D,KADS,CAG9B;AAAA,EACH;WAESM,EAAiB4E,GAAc;6BACf;AACf,YAAAC,IAAYD,EAAa,UAAUA;AACvB,MAAAzG,EAAA,kBAAA0G,EAAU,IAAIA,EAAU,QAAQ,EAAE;AAAA,IACtD;AAAA,EACF;iBAEeC,EAAeC,GAAK;cAC5BlB,CAAS;2BACK;AACjB,QAAA3F,EAAA,IAAA0F,GAAQpF,EAAM,EAAC,0BAA0B,6BAA2B,EAAA,GACpEN,EAAA,IAAAyF,GAAY,EAAK;;MAEnB;AAEA,MAAAzF,EAAA,IAAAyF,GAAY,EAAI,GAChBzF,EAAA,IAAA0F,GAAQ,IAAI,GACZ1F,EAAA,IAAA8F,GAAgB,EAAK;UAEjB;cACIgB,IAAI,MAASC,GAAqB9G,EAAA,cAAe4G,CAAG;mBACrDlB,CAAS,EAAA;AAEV,YAAAmB,GAAM;cAEJA,EAAK,oBAAoBA,EAAK,OAAO,SAAS,qBAAqB;AACrE,YAAA9G,EAAA,IAAA4F,GAAmB,EAAI,GACvB5F,EAAA,IAAAyF,GAAY,EAAK;;UAEnB;AACA,UAAAzF,EAAA,IAAAwF,GAAasB,GAAI,EAAA,GACjB9G,EAAA,IAAA4F,GAAmB,EAAK;AAAA,QAC1B,OAAO;AAED,cAAAiB,GAAK;AACP,YAAA7G,EAAA,IAAA4F,GAAmB,EAAI,GACvB5F,EAAA,IAAA8F,GAAgB,EAAI,GACpB9F,EAAA,IAAAyF,GAAY,EAAK;;UAEnB;AACA,UAAAzF,EAAA,IAAA0F,GAAQpF,EAAM,EAAC,0BAA0B,6BAA2B,EAAA;AAAA,QACtE;AAAA,MACF,SAAS0G,GAAK;AACR,YAAAhH,EAAA,IAAA2F,CAAS,GAAE;AAEP,gBAAAsB,IAAMD,EAAI,WAAW;AACvB,UAAAC,EAAI,SAAS,KAAK,KAAKA,EAAI,SAAS,KAAK,KAAKA,EAAI,SAAS,UAAU,IACvEjH,EAAA,IAAA4F,GAAmB,EAAI,UAEvBF,GAAQuB,KAAO,6BAA2B,EAAA;AAAA,QAE9C;AAAA,MACF,UAAC;AACK,QAAAjH,EAAA,IAAA2F,CAAS,KACX3F,EAAA,IAAAyF,GAAY,EAAK;AAAA,MAErB;AAAA;AAAA,EACF;WAESyB,GAAqBlF,GAAG;AAE1B,IADLA,EAAE,eAAc,GACXhC,EAAA,IAAA6F,CAAa,EAAC,KAAI,KACvBe,QAAef,CAAa,CAAA;AAAA,EAC9B;AAEA,EAAA7E,eAAoB;AAClB,IAAAhB,EAAA,IAAA2F,GAAY,EAAI,GACV,MAAAiB,EAAevB,GAAe;AAAA,EACtC,CAAC,GAEDnE,SAAgB;AACd,IAAAlB,EAAA,IAAA2F,GAAY,EAAK;AAAA,EACnB,CAAC;MAGFrD,IAAGJ,GAAA,eAAHI,CAAG;;;AAEC,MAAA6E,GAAc7C,GAAA,EAAA,MAAA,UAAA,CAAA;AAAA;UAEd9B,IAAGC,GAAA,GACDc,YADFf,CAAG,GAECL,YADFoB,CAAG,eACDpB,GAAE,EAAA;cAAFA,CAAE;AACF,UAAA0B,cADA1B,GAAE,CAAA,eACF0B,GAAC,EAAA;cAADA,CAAC;AACD,UAAAuD,cADAvD,GAAC,CAAA,GAECwD,YADFD,CAAI;8BACFC,CAAK;;wBAALA,GAAK,CAAA;;;cAQHC,IAAChE,GAAA,eAADgE,GAAC,EAAA;kBAADA,CAAC,yCAA8BhH,EAAM,EAAC,qBAAqB,uCAAuC,CAAA,eAAlGgH,CAAC;AAAA;;gBADCxB,CAAa,KAAAjD,EAAAmB,CAAA;AAAA;;UAGjBuD,IAAMvH,EAAA,QAAAgD,GAAA,CAAA,eAANuE,GAAM,EAAA;cAANA,CAAM,WAXRH,CAAI,WAHN7D,CAAG,WADLf,CAAG;sBAE4BlC,EAAM,EAAC,0BAA0B,4BAA4B,iBACxDA,EAAM,EAAC,gCAAgC,oDAAoD,GAEzHN,EAAA,cAAAqH,GAAK,eAGS/G,EAAM,EAAC,iBAAiB,gBAAgB,GAHtD8E,IAAApF,EAAA,UAAAqH,+EAK6BvB,CAAa,EAAA,CAAA,iBAKIxF,EAAM,EAAC,kBAAkB,iBAAiB;AAAA,UAX1FN,EAAA,MAAA,UAAAoH,GAAeF,EAAoB,gBACjCG,GAAK,MAAArH,EAAA,IAEQ6F,CAAa,GAAA,CAAAX,MAAAlF,EAAA,IAAb6F,GAAaX,CAAA,CAAA,eAPhC1C,CAAG;AAAA;UAoBHgB,IAAGM,GAAA,GACD0D,YADFhE,CAAG,eACDgE,CAAC;cAADA,CAAC,WADHhE,CAAG,GACqBxD,EAAA,gBAAA,MAAAA,EAAA,SAAA4E,GAAA,IAAAtE,IAAO,eAAe,yBAAWoF,CAAK,KAAA,EAAA,EAAA,CAAA,eAD9DlC,CAAG;AAAA;;;;AAMM,gBAAAiE,IAAQzH,EAAA,QAAA,MAAGiG,GAAWjG,EAAA,IAACwF,CAAU,EAAC,UAAU,CAAA;cACnD9B,IAAGgE,GAAA,GACDzD,YADFP,CAAG,GAEDD,cADAQ,GAAG,CAAA;kBADLP,CAAG;AACD,YAAA1D,EAAA,UAAAiE,kCAAqDwD,CAAQ,KAAA,EAAA,GAAA,GAC7DzH,EAAA,cAAAyD,gBAASgE,CAAQ,CAAA,mBAAjBhE,GAAG,OAAAzD,EAAA,IAAqBwF,CAAU,EAAC,eAAe;AAAA,0BAFpD9B,CAAG;AAAA;;AAFD,UAAA1D,EAAA,IAAAwF,CAAU,EAAC,cAAU3C,EAAAsC,CAAA;AAAA;;UASzBJ,IAAG/E,EAAA,QAAA2H,GAAA,CAAA,GACDC,YADF7C,CAAG,eACD6C,GAAE,EAAA;cAAFA,CAAE;wBAAFA,GAAE,CAAA;;;cAEAC,IAAC7C,GAAA,eAAD6C,GAAC,EAAA;kBAADA,CAAC,GAA6B7H,EAAA,gBAAA,MAAAA,EAAA,SAAA+D,GAAA/D,EAAA,IAAAwF,CAAU,EAAC,OAAO,CAAA,eAAhDqC,CAAC;AAAA;;AADC,UAAA7H,EAAA,IAAAwF,CAAU,EAAC,WAAO3C,EAAAiF,CAAA;AAAA;;;;;cAIpBC,IAAGC,GAAA,eAAHD,GAAG,EAAA;kBAAHA,CAAG,GAAiC/H,EAAA,gBAAA,MAAAA,EAAA,SAAAoE,GAAApE,EAAA,IAAAwF,CAAU,EAAC,WAAW,CAAA,eAA1DuC,CAAG;AAAA;;AADD,UAAA/H,EAAA,IAAAwF,CAAU,EAAC,eAAW3C,EAAAoF,CAAA;AAAA;;cAL5BlD,CAAG;AAWH,UAAAmD,cAXAnD,GAAG,CAAA,GAYDoD,YADFD,CAAG,GAECE,YADFD,CAAG,eACDC,CAAE;cAAFA,CAAE;wBAAFA,GAAE,CAAA;;;cAGAC,IAAGC,GAAA,GACDC,YADFF,CAAG;;AAgBD,cAAAG,cAfAD,GAAM,CAAA;;kBADRF,CAAG;AAAH,YAAArI,EAAA,cAAAqI,GAAG,cAAgD/H,EAAM,EAAC,eAAe,cAAc,mBACrFiI,GAAM,GAAA,mCAAA,MAAA9D,GAAA;AAAA,cAG2B,4BAAAzE,EAAA,IAAA+F,CAAiB,MAAK;AAAA,gBAHvD/F,EAAA,cAAAuI,GAAM,cAKOjI,EAAM,EAAC,eAAe,cAAc,mBALjDiI,GAAM,gBAAAvI,EAAA,IAMS+F,CAAiB,MAAK,SAAS,oBAS9CyC,GAAM,GAAA,mCAAA,MAAAC,IAAA;AAAA,cAG2B,4BAAAzI,EAAA,IAAA+F,CAAiB,MAAK;AAAA,gBAHvD/F,EAAA,cAAAwI,GAAM,cAKOlI,EAAM,EAAC,YAAY,WAAW,mBAL3CkI,GAAM,gBAAAxI,EAAA,IAMS+F,CAAiB,MAAK,MAAM;AAAA,mCArB3CwC,GAAM,MAAAvI,EAAA,IAIU+F,GAAoB,SAAS,CAAA,wBAW7CyC,GAAM,MAAAxI,EAAA,IAIU+F,GAAoB,MAAM,CAAA,eApB5CsC,CAAG;AAAA;;gBADD5B,CAAe,KAAA5D,EAAA6F,CAAA;AAAA;;cAHrBP,CAAG;wBAAHA,GAAG,CAAA;;;;oCA2CS7H,EAAM,EAAC,oBAAoB,oBAAoB,uBAC/CA,EAAM,EAAC,2BAA2B,oEAAoE;AAFhH,YAAAqI,GAAUrE,GAAA;AAAA;;;;;;;;;AAKV,UAAAsE,GAAetE,GAAA;AAAA;2BACNkC,CAAU;AAAA;8BACA;AAAA,0BACJ1E;AAAA;;cAGf+G,IAAGC,GAAA;iBAAHD,GAAG,IAAA,MAAA7I,EAAA,IACKuG,CAAa,GAAA,CAAIlF,MAAOA,EAAM,IAAE,CAAAiD,GAAfjD,MAAK;AAC1B,YAAA0H,GAAWzE,GAAA;AAAA;6BAAEjD,CAAK;AAAA;4BAAgBS;AAAA;sBAFtC+G,CAAG,eAAHA,CAAG;AAAA;;AAZD,UAAA7I,EAAA,IAAAqG,CAAa,EAAC,WAAW,IAACxD,EAAAmG,EAAA,IAAAhJ,EAAA,IAKrB+F,CAAiB,MAAK,SAAMlD,EAAAoG,IAAA,CAAA,IAAApG,EAAAqG,IAAA,EAAA;AAAA;;cA/CvChB,CAAG;AAV4B,QAAAlI,EAAA,SAAAmJ,GAAAnJ,EAAA,IAAAwF,CAAU,EAAC,eAAe,GAYlBxF,EAAA,SAAAoJ,GAAA,WAAApJ,EAAA,IAAAqG,CAAa,EAAC,UAAM,EAAA,GAAA;AAAA;;;AAlDzD,MAAArG,EAAA,IAAAyF,CAAS,IAAA5C,EAAAC,CAAA,IAAA9C,EAAA,IAEJ4F,CAAgB,IAAA/C,EAAA0B,GAAA,CAAA,IAAAvE,EAAA,IAoBhB0F,CAAK,oBAILF,CAAU,KAAA3C,EAAAwG,GAAA,CAAA;AAAA;;UA3BrB/G,CAAG,eAAHA,CAAG;AAFI;;"}