@code-collective/booking-widget 1.0.7 → 1.0.8

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.
@@ -2417,10 +2417,18 @@ function hi(e) {
2417
2417
  //#region src/lib/api.ts
2418
2418
  var gi = class extends Error {
2419
2419
  status;
2420
- constructor(e) {
2421
- super(`API error ${e}`), this.status = e;
2420
+ body;
2421
+ constructor(e, t) {
2422
+ super(`API error ${e}`), this.status = e, this.body = t;
2423
+ }
2424
+ get code() {
2425
+ return typeof this.body == "object" && this.body !== null && "error" in this.body ? String(this.body.error) : void 0;
2422
2426
  }
2423
- }, _i = class {
2427
+ };
2428
+ function _i(e) {
2429
+ return e instanceof gi && e.status === 400 && e.code === "PRICE_MISMATCH";
2430
+ }
2431
+ var vi = class {
2424
2432
  sessionToken = "";
2425
2433
  cartToken = "";
2426
2434
  client;
@@ -2428,7 +2436,7 @@ var gi = class extends Error {
2428
2436
  this.client = ni({ baseUrl: e }), this.client.use({ onRequest: ({ request: e }) => (e.headers.set("Origin", window.location.origin), this.sessionToken && e.headers.set("Morii-Checkout-Session", this.sessionToken), this.cartToken && e.headers.set("Morii-Checkout-Cart", this.cartToken), e) });
2429
2437
  }
2430
2438
  unwrap(e) {
2431
- if (e.data === void 0) throw new gi(e.response.status);
2439
+ if (e.data === void 0) throw new gi(e.response.status, e.error);
2432
2440
  return e.data;
2433
2441
  }
2434
2442
  async startSession(e) {
@@ -2487,7 +2495,7 @@ var gi = class extends Error {
2487
2495
  async confirmCart() {
2488
2496
  return this.unwrap(await this.client.POST("/v1/checkout/cart/confirm"));
2489
2497
  }
2490
- }, vi = 3e5, yi = 12e4, bi = class {
2498
+ }, yi = 3e5, bi = 12e4, xi = class {
2491
2499
  api;
2492
2500
  sessions = /* @__PURE__ */ new Map();
2493
2501
  intervalId = null;
@@ -2502,7 +2510,7 @@ var gi = class extends Error {
2502
2510
  return this.sessions.set(e, n), this.activeCheckoutKey = e, n;
2503
2511
  }
2504
2512
  startBackgroundRefresh() {
2505
- this.intervalId ||= setInterval(() => this.refreshExpiringSessions(), vi);
2513
+ this.intervalId ||= setInterval(() => this.refreshExpiringSessions(), yi);
2506
2514
  }
2507
2515
  stop() {
2508
2516
  this.intervalId &&= (clearInterval(this.intervalId), null);
@@ -2514,7 +2522,7 @@ var gi = class extends Error {
2514
2522
  return new Date(e.expiresAt ?? 0).getTime() <= Date.now();
2515
2523
  }
2516
2524
  isExpiringSoon(e) {
2517
- return new Date(e.refreshAfter ?? 0).getTime() <= Date.now() + yi;
2525
+ return new Date(e.refreshAfter ?? 0).getTime() <= Date.now() + bi;
2518
2526
  }
2519
2527
  async refreshExpiringSessions() {
2520
2528
  for (let [e, t] of this.sessions) {
@@ -2531,7 +2539,7 @@ var gi = class extends Error {
2531
2539
  }
2532
2540
  }
2533
2541
  }
2534
- }, xi = "morii-checkout-cart", Si = class {
2542
+ }, Si = "morii-checkout-cart", Ci = typeof sessionStorage < "u" ? sessionStorage : null, wi = class {
2535
2543
  api;
2536
2544
  cart = null;
2537
2545
  constructor(e) {
@@ -2549,9 +2557,9 @@ var gi = class extends Error {
2549
2557
  return this.cart = e, this.saveToStorage(), e;
2550
2558
  }
2551
2559
  reset() {
2552
- this.cart = null;
2560
+ this.cart = null, this.api.cartToken = "";
2553
2561
  try {
2554
- localStorage.removeItem(xi);
2562
+ Ci?.removeItem(Si);
2555
2563
  } catch {}
2556
2564
  }
2557
2565
  isExpired() {
@@ -2564,16 +2572,16 @@ var gi = class extends Error {
2564
2572
  absoluteExpiresAt: this.cart.absoluteExpiresAt ?? ""
2565
2573
  };
2566
2574
  try {
2567
- localStorage.setItem(xi, JSON.stringify(e));
2575
+ Ci?.setItem(Si, JSON.stringify(e));
2568
2576
  } catch {}
2569
2577
  }
2570
2578
  loadFromStorage() {
2571
2579
  try {
2572
- let e = localStorage.getItem(xi);
2580
+ let e = Ci?.getItem(Si);
2573
2581
  if (!e) return;
2574
2582
  let t = JSON.parse(e);
2575
2583
  if (new Date(t.absoluteExpiresAt).getTime() <= Date.now()) {
2576
- localStorage.removeItem(xi);
2584
+ Ci?.removeItem(Si);
2577
2585
  return;
2578
2586
  }
2579
2587
  this.cart = {
@@ -2584,13 +2592,35 @@ var gi = class extends Error {
2584
2592
  }, this.api.cartToken = t.cartToken;
2585
2593
  } catch {}
2586
2594
  }
2587
- };
2595
+ }, Ti = /* @__PURE__ */ new Set([
2596
+ "cart:change",
2597
+ "cart:updated",
2598
+ "modal:open",
2599
+ "modal:close",
2600
+ "order:complete"
2601
+ ]);
2602
+ function Ei(e) {
2603
+ window.parent?.postMessage(JSON.stringify(e), window.location.origin);
2604
+ }
2605
+ function Di(e) {
2606
+ function t(t) {
2607
+ if (t.source !== window || t.origin !== window.location.origin) return;
2608
+ let n;
2609
+ try {
2610
+ n = typeof t.data == "string" ? JSON.parse(t.data) : t.data;
2611
+ } catch {
2612
+ return;
2613
+ }
2614
+ typeof n?.type != "string" || !Ti.has(n.type) || e(n);
2615
+ }
2616
+ return window.addEventListener("message", t), () => window.removeEventListener("message", t);
2617
+ }
2588
2618
  //#endregion
2589
2619
  //#region node_modules/svelte/src/internal/disclose-version.js
2590
2620
  typeof window < "u" && ((window.__svelte ??= {}).v ??= /* @__PURE__ */ new Set()).add("5");
2591
2621
  //#endregion
2592
2622
  //#region src/lib/config.ts
2593
- var Ci = [
2623
+ var Oi = [
2594
2624
  {
2595
2625
  title: "Option",
2596
2626
  widgets: ["option", "age-category"]
@@ -2603,8 +2633,8 @@ var Ci = [
2603
2633
  title: "Pickup",
2604
2634
  widgets: ["pickup"]
2605
2635
  }
2606
- ], wi = {
2607
- "option-first": Ci,
2636
+ ], ki = {
2637
+ "option-first": Oi,
2608
2638
  "date-first": [
2609
2639
  {
2610
2640
  title: "Age & capacity",
@@ -2624,16 +2654,16 @@ var Ci = [
2624
2654
  }
2625
2655
  ]
2626
2656
  };
2627
- function Ti(e) {
2628
- if (!e) return Ci;
2629
- if (e in wi) return wi[e];
2657
+ function Ai(e) {
2658
+ if (!e) return Oi;
2659
+ if (e in ki) return ki[e];
2630
2660
  try {
2631
2661
  let t = JSON.parse(e);
2632
2662
  if (Array.isArray(t) && t.length > 0 && t[0].widgets) return t;
2633
2663
  } catch {}
2634
- return Ci;
2664
+ return Oi;
2635
2665
  }
2636
- var Ei = {
2666
+ var ji = {
2637
2667
  "option-first": [
2638
2668
  {
2639
2669
  title: "Option",
@@ -2671,56 +2701,51 @@ var Ei = {
2671
2701
  }
2672
2702
  ]
2673
2703
  };
2674
- function Di(e, t) {
2704
+ function Mi(e, t) {
2675
2705
  if (t) {
2676
- if (t in Ei) return Ei[t];
2706
+ if (t in ji) return ji[t];
2677
2707
  try {
2678
2708
  let e = JSON.parse(t);
2679
2709
  if (Array.isArray(e) && e.length > 0 && e[0].widgets) return e;
2680
2710
  } catch {}
2681
2711
  }
2682
- let n = e ? e in wi ? e : null : "option-first";
2683
- return n ? Ei[n] : Ti(e);
2684
- }
2685
- //#endregion
2686
- //#region src/lib/messages.ts
2687
- function Oi(e) {
2688
- window.parent?.postMessage(JSON.stringify(e), "*");
2712
+ let n = e ? e in ki ? e : null : "option-first";
2713
+ return n ? ji[n] : Ai(e);
2689
2714
  }
2690
2715
  //#endregion
2691
2716
  //#region src/lib/currency.ts
2692
- var ki = {
2717
+ var Ni = {
2693
2718
  ZAR: "R",
2694
2719
  USD: "$",
2695
2720
  EUR: "€",
2696
2721
  GBP: "£"
2697
2722
  };
2698
- function Ai(e, t, n, r = 0) {
2723
+ function Pi(e, t, n, r = 0) {
2699
2724
  let i = e / 10 ** n;
2700
- return `${ki[t] ?? t}\u00A0${i.toFixed(r)}`;
2725
+ return `${Ni[t] ?? t}\u00A0${i.toFixed(r)}`;
2701
2726
  }
2702
2727
  //#endregion
2703
2728
  //#region src/lib/SelectableCard.svelte
2704
- var ji = /* @__PURE__ */ Y("<div class=\"leading\"><!></div>"), Mi = /* @__PURE__ */ Y("<div class=\"heading svelte-idp8p9\"> </div>"), Ni = /* @__PURE__ */ Y("<div class=\"body svelte-idp8p9\"> </div>"), Pi = /* @__PURE__ */ Y("<button><div class=\"layout svelte-idp8p9\"><!> <div class=\"text svelte-idp8p9\"><!> <!> <!></div> <span></span></div></button>");
2705
- function Fi(e, t) {
2706
- var n = Pi();
2729
+ var Fi = /* @__PURE__ */ Y("<div class=\"leading\"><!></div>"), Ii = /* @__PURE__ */ Y("<div class=\"heading svelte-idp8p9\"> </div>"), Li = /* @__PURE__ */ Y("<div class=\"body svelte-idp8p9\"> </div>"), Ri = /* @__PURE__ */ Y("<button><div class=\"layout svelte-idp8p9\"><!> <div class=\"text svelte-idp8p9\"><!> <!> <!></div> <span></span></div></button>");
2730
+ function zi(e, t) {
2731
+ var n = Ri();
2707
2732
  let r;
2708
2733
  var i = V(n), a = V(i), o = (e) => {
2709
- var n = ji();
2734
+ var n = Fi();
2710
2735
  Mr(V(n), () => t.leading), M(n), X(e, n);
2711
2736
  };
2712
2737
  Q(a, (e) => {
2713
2738
  t.leading && e(o);
2714
2739
  });
2715
2740
  var s = U(a, 2), c = V(s), l = (e) => {
2716
- var n = Mi(), r = V(n, !0);
2741
+ var n = Ii(), r = V(n, !0);
2717
2742
  M(n), W(() => Z(r, t.heading)), X(e, n);
2718
2743
  };
2719
2744
  Q(c, (e) => {
2720
2745
  t.heading && e(l);
2721
2746
  });
2722
2747
  var u = U(c, 2), d = (e) => {
2723
- var n = Ni(), r = V(n, !0);
2748
+ var n = Li(), r = V(n, !0);
2724
2749
  M(n), W(() => Z(r, t.body)), X(e, n);
2725
2750
  };
2726
2751
  Q(u, (e) => {
@@ -2744,19 +2769,19 @@ function Fi(e, t) {
2744
2769
  cr(["click"]);
2745
2770
  //#endregion
2746
2771
  //#region src/lib/OptionCard.svelte
2747
- var Ii = /* @__PURE__ */ Y("<p class=\"pricing svelte-19wqhng\"> </p>");
2748
- function Li(e, t) {
2772
+ var Bi = /* @__PURE__ */ Y("<p class=\"pricing svelte-19wqhng\"> </p>");
2773
+ function Vi(e, t) {
2749
2774
  P(t, !0);
2750
2775
  let n = /* @__PURE__ */ L(() => () => {
2751
2776
  let e = [];
2752
2777
  for (let n of t.option.units) {
2753
2778
  if (!n.pricing || n.pricing.length === 0) continue;
2754
2779
  let t = n.pricing[0];
2755
- e.push(`${n.title ?? n.id} from ${Ai(t.retail, t.currency, t.currencyPrecision)}`);
2780
+ e.push(`${n.title ?? n.id} from ${Pi(t.retail, t.currency, t.currencyPrecision)}`);
2756
2781
  }
2757
2782
  return e.join(", ");
2758
2783
  });
2759
- Fi(e, {
2784
+ zi(e, {
2760
2785
  get selected() {
2761
2786
  return t.selected;
2762
2787
  },
@@ -2771,7 +2796,7 @@ function Li(e, t) {
2771
2796
  },
2772
2797
  children: (e, t) => {
2773
2798
  var r = gr(), i = H(r), a = (e) => {
2774
- var t = Ii(), r = V(t, !0);
2799
+ var t = Bi(), r = V(t, !0);
2775
2800
  M(t), W((e) => Z(r, e), [() => q(n)()]), X(e, t);
2776
2801
  }, o = /* @__PURE__ */ L(() => q(n)());
2777
2802
  Q(i, (e) => {
@@ -2783,13 +2808,13 @@ function Li(e, t) {
2783
2808
  }
2784
2809
  //#endregion
2785
2810
  //#region src/lib/UnitCounter.svelte
2786
- var Ri = /* @__PURE__ */ Y("<span class=\"price svelte-bzhcxd\"> </span>"), zi = /* @__PURE__ */ Y("<div class=\"card row svelte-bzhcxd\"><div class=\"info svelte-bzhcxd\"><span class=\"name svelte-bzhcxd\"> </span> <!></div> <div class=\"stepper svelte-bzhcxd\"><button class=\"step-btn svelte-bzhcxd\" aria-label=\"Decrease\">&minus;</button> <span class=\"qty svelte-bzhcxd\"> </span> <button class=\"step-btn svelte-bzhcxd\" aria-label=\"Increase\">+</button></div></div>");
2787
- function Bi(e, t) {
2811
+ var Hi = /* @__PURE__ */ Y("<span class=\"price svelte-bzhcxd\"> </span>"), Ui = /* @__PURE__ */ Y("<div class=\"card row svelte-bzhcxd\"><div class=\"info svelte-bzhcxd\"><span class=\"name svelte-bzhcxd\"> </span> <!></div> <div class=\"stepper svelte-bzhcxd\"><button class=\"step-btn svelte-bzhcxd\" aria-label=\"Decrease\">&minus;</button> <span class=\"qty svelte-bzhcxd\"> </span> <button class=\"step-btn svelte-bzhcxd\" aria-label=\"Increase\">+</button></div></div>");
2812
+ function Wi(e, t) {
2788
2813
  P(t, !0);
2789
2814
  let n = /* @__PURE__ */ L(() => () => {
2790
2815
  if (!t.unit.pricing || t.unit.pricing.length === 0) return "";
2791
2816
  let e = t.unit.pricing[0];
2792
- return `from ${Ai(e.retail, e.currency, e.currencyPrecision)}`;
2817
+ return `from ${Pi(e.retail, e.currency, e.currencyPrecision)}`;
2793
2818
  });
2794
2819
  function r() {
2795
2820
  t.quantity > 0 && t.onChange(t.quantity - 1);
@@ -2797,10 +2822,10 @@ function Bi(e, t) {
2797
2822
  function i() {
2798
2823
  t.onChange(t.quantity + 1);
2799
2824
  }
2800
- var a = zi(), o = V(a), s = V(o), c = V(s, !0);
2825
+ var a = Ui(), o = V(a), s = V(o), c = V(s, !0);
2801
2826
  M(s);
2802
2827
  var l = U(s, 2), u = (e) => {
2803
- var t = Ri(), r = V(t, !0);
2828
+ var t = Hi(), r = V(t, !0);
2804
2829
  M(t), W((e) => Z(r, e), [() => q(n)()]), X(e, t);
2805
2830
  }, d = /* @__PURE__ */ L(() => q(n)());
2806
2831
  Q(l, (e) => {
@@ -2816,8 +2841,8 @@ function Bi(e, t) {
2816
2841
  cr(["click"]);
2817
2842
  //#endregion
2818
2843
  //#region src/lib/AvailabilityCalendar.svelte
2819
- var Vi = /* @__PURE__ */ Y("<div class=\"loading-center\"><div class=\"spinner\"></div></div>"), Hi = /* @__PURE__ */ Y("<span class=\"svelte-10gu2tq\"> </span>"), Ui = /* @__PURE__ */ Y("<span class=\"cell empty svelte-10gu2tq\"></span>"), Wi = /* @__PURE__ */ Y("<span class=\"day-price svelte-10gu2tq\"> </span>"), Gi = /* @__PURE__ */ Y("<button><span class=\"day-num svelte-10gu2tq\"> </span> <!></button>"), Ki = /* @__PURE__ */ Y("<div class=\"header svelte-10gu2tq\"><button class=\"nav-btn svelte-10gu2tq\" aria-label=\"Previous month\">&lsaquo;</button> <span class=\"month svelte-10gu2tq\"> </span> <button class=\"nav-btn svelte-10gu2tq\" aria-label=\"Next month\">&rsaquo;</button></div> <div class=\"day-names svelte-10gu2tq\"></div> <div class=\"grid svelte-10gu2tq\"></div>", 1), qi = /* @__PURE__ */ Y("<div class=\"calendar svelte-10gu2tq\"><!></div>");
2820
- function Ji(e, t) {
2844
+ var Gi = /* @__PURE__ */ Y("<div class=\"loading-center\"><div class=\"spinner\"></div></div>"), Ki = /* @__PURE__ */ Y("<span class=\"svelte-10gu2tq\"> </span>"), qi = /* @__PURE__ */ Y("<span class=\"cell empty svelte-10gu2tq\"></span>"), Ji = /* @__PURE__ */ Y("<span class=\"day-price svelte-10gu2tq\"> </span>"), Yi = /* @__PURE__ */ Y("<button><span class=\"day-num svelte-10gu2tq\"> </span> <!></button>"), Xi = /* @__PURE__ */ Y("<div class=\"header svelte-10gu2tq\"><button class=\"nav-btn svelte-10gu2tq\" aria-label=\"Previous month\">&lsaquo;</button> <span class=\"month svelte-10gu2tq\"> </span> <button class=\"nav-btn svelte-10gu2tq\" aria-label=\"Next month\">&rsaquo;</button></div> <div class=\"day-names svelte-10gu2tq\"></div> <div class=\"grid svelte-10gu2tq\"></div>", 1), Zi = /* @__PURE__ */ Y("<div class=\"calendar svelte-10gu2tq\"><!></div>");
2845
+ function Qi(e, t) {
2821
2846
  P(t, !0);
2822
2847
  let n = [
2823
2848
  "SU",
@@ -2850,7 +2875,7 @@ function Ji(e, t) {
2850
2875
  if (!n || !n.available) return "";
2851
2876
  if (n.unitPricing && n.unitPricing.length > 0) {
2852
2877
  let e = n.unitPricing[0];
2853
- return Ai(e.retail, e.currency, e.currencyPrecision);
2878
+ return Pi(e.retail, e.currency, e.currencyPrecision);
2854
2879
  }
2855
2880
  return "";
2856
2881
  }
@@ -2864,30 +2889,30 @@ function Ji(e, t) {
2864
2889
  function f(e) {
2865
2890
  c(e) !== "available" || d(e) || t.onDateSelected(e);
2866
2891
  }
2867
- var p = qi(), m = V(p), h = (e) => {
2868
- X(e, Vi());
2892
+ var p = Zi(), m = V(p), h = (e) => {
2893
+ X(e, Gi());
2869
2894
  }, g = (e) => {
2870
- var t = Ki(), r = H(t), p = V(r), m = U(p, 2), h = V(m, !0);
2895
+ var t = Xi(), r = H(t), p = V(r), m = U(p, 2), h = V(m, !0);
2871
2896
  M(m);
2872
2897
  var g = U(m, 2);
2873
2898
  M(r);
2874
2899
  var _ = U(r, 2);
2875
2900
  Er(_, 21, () => n, $, (e, t) => {
2876
- var n = Hi(), r = V(n, !0);
2901
+ var n = Ki(), r = V(n, !0);
2877
2902
  M(n), W(() => Z(r, q(t))), X(e, n);
2878
2903
  }), M(_);
2879
2904
  var v = U(_, 2);
2880
2905
  Er(v, 21, () => q(i)(), $, (e, t) => {
2881
2906
  var n = gr(), r = H(n), i = (e) => {
2882
- X(e, Ui());
2907
+ X(e, qi());
2883
2908
  }, a = (e) => {
2884
2909
  let n = /* @__PURE__ */ L(() => c(q(t))), r = /* @__PURE__ */ L(() => d(q(t))), i = /* @__PURE__ */ L(() => l(q(t)));
2885
- var a = Gi();
2910
+ var a = Yi();
2886
2911
  let o;
2887
2912
  var s = V(a), p = V(s, !0);
2888
2913
  M(s);
2889
2914
  var m = U(s, 2), h = (e) => {
2890
- var t = Wi(), n = V(t, !0);
2915
+ var t = Ji(), n = V(t, !0);
2891
2916
  M(t), W(() => Z(n, q(i))), X(e, t);
2892
2917
  };
2893
2918
  Q(m, (e) => {
@@ -2913,20 +2938,20 @@ function Ji(e, t) {
2913
2938
  cr(["click"]);
2914
2939
  //#endregion
2915
2940
  //#region src/lib/TimeSlotPicker.svelte
2916
- var Yi = /* @__PURE__ */ Y("<div class=\"loading-center\"><div class=\"spinner\"></div></div>"), Xi = /* @__PURE__ */ Y("<p class=\"hint svelte-1hu99a4\">All-day availability</p>"), Zi = /* @__PURE__ */ Y("<div class=\"slots svelte-1hu99a4\"></div>");
2917
- function Qi(e, t) {
2941
+ var $i = /* @__PURE__ */ Y("<div class=\"loading-center\"><div class=\"spinner\"></div></div>"), ea = /* @__PURE__ */ Y("<p class=\"hint svelte-1hu99a4\">All-day availability</p>"), ta = /* @__PURE__ */ Y("<div class=\"slots svelte-1hu99a4\"></div>");
2942
+ function na(e, t) {
2918
2943
  P(t, !0);
2919
2944
  var n = gr(), r = H(n), i = (e) => {
2920
- X(e, Yi());
2945
+ X(e, $i());
2921
2946
  }, a = (e) => {
2922
- X(e, Xi());
2947
+ X(e, ea());
2923
2948
  }, o = (e) => {
2924
- var n = Zi();
2949
+ var n = ta();
2925
2950
  Er(n, 21, () => t.timeSlots, $, (e, n) => {
2926
2951
  let r = /* @__PURE__ */ L(() => pi(q(n).localDateTimeStart));
2927
2952
  {
2928
2953
  let i = /* @__PURE__ */ L(() => t.selectedTime === q(r)), a = /* @__PURE__ */ L(() => q(n).vacancies == null ? void 0 : `${q(n).vacancies} left`);
2929
- Fi(e, {
2954
+ zi(e, {
2930
2955
  get selected() {
2931
2956
  return q(i);
2932
2957
  },
@@ -2947,8 +2972,8 @@ function Qi(e, t) {
2947
2972
  }
2948
2973
  //#endregion
2949
2974
  //#region src/lib/WizardPage.svelte
2950
- var $i = /* @__PURE__ */ Y("<div class=\"wizard-header svelte-9w5z1v\"><h2 class=\"svelte-9w5z1v\">Buy Tickets</h2></div>"), ea = /* @__PURE__ */ Y("<span></span>"), ta = /* @__PURE__ */ Y("<div class=\"page-dots svelte-9w5z1v\"></div>"), na = /* @__PURE__ */ Y("<div class=\"page-title-row svelte-9w5z1v\"><h3 class=\"page-title svelte-9w5z1v\"> </h3> <!></div>"), ra = /* @__PURE__ */ Y("<span> </span>"), ia = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><div class=\"option-list svelte-9w5z1v\"></div></div>"), aa = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><div class=\"unit-list svelte-9w5z1v\"></div></div>"), oa = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><!></div>"), sa = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><div class=\"pickup-list svelte-9w5z1v\"></div></div>"), ca = /* @__PURE__ */ Y("<!> <!> <!> <!> <!>", 1), la = /* @__PURE__ */ Y("<div class=\"accordion-body svelte-9w5z1v\"></div>"), ua = /* @__PURE__ */ Y("<div><button class=\"accordion-header svelte-9w5z1v\"><div class=\"accordion-header-text svelte-9w5z1v\"><span class=\"accordion-title svelte-9w5z1v\"> </span> <!></div> <span></span></button> <!></div>"), da = /* @__PURE__ */ Y("<div class=\"wizard-body svelte-9w5z1v\"></div> <div class=\"action-bar\"><button class=\"btn btn-secondary\">Return to Cart</button> <button class=\"btn btn-primary\">Save &amp; Update</button></div>", 1), fa = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><h4 class=\"section-title\">Options</h4> <div class=\"option-list svelte-9w5z1v\"></div></div>"), pa = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><h4 class=\"section-title\">How many tickets?</h4> <div class=\"unit-list svelte-9w5z1v\"></div></div>"), ma = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><h4 class=\"section-title\">Choose a date</h4> <!></div>"), ha = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><h4 class=\"section-title\">Select a time</h4> <!></div>"), ga = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><h4 class=\"section-title\">Select pickup point</h4> <div class=\"pickup-list svelte-9w5z1v\"></div></div>"), _a = /* @__PURE__ */ Y("<button class=\"btn btn-secondary\"> </button>"), va = /* @__PURE__ */ Y("<div class=\"wizard-body svelte-9w5z1v\"></div> <div class=\"action-bar\"><!> <button class=\"btn btn-primary\"> <span class=\"arrow\">&rarr;</span></button></div>", 1), ya = /* @__PURE__ */ Y("<div class=\"dialog-backdrop svelte-9w5z1v\"><div class=\"dialog svelte-9w5z1v\"><h3 class=\"dialog-title svelte-9w5z1v\">You have unsaved changes</h3> <p class=\"dialog-body svelte-9w5z1v\">Would you like to proceed?</p> <div class=\"dialog-actions svelte-9w5z1v\"><button class=\"dialog-btn-text svelte-9w5z1v\">Discard changes</button> <button class=\"dialog-btn-fill svelte-9w5z1v\">Return to editing</button></div></div></div>"), ba = /* @__PURE__ */ Y("<div class=\"wizard svelte-9w5z1v\"><!> <!> <!></div> <!>", 1);
2951
- function xa(e, t) {
2975
+ var ra = /* @__PURE__ */ Y("<div class=\"wizard-header svelte-9w5z1v\"><h2 class=\"svelte-9w5z1v\">Buy Tickets</h2></div>"), ia = /* @__PURE__ */ Y("<span></span>"), aa = /* @__PURE__ */ Y("<div class=\"page-dots svelte-9w5z1v\"></div>"), oa = /* @__PURE__ */ Y("<div class=\"page-title-row svelte-9w5z1v\"><h3 class=\"page-title svelte-9w5z1v\"> </h3> <!></div>"), sa = /* @__PURE__ */ Y("<span> </span>"), ca = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><div class=\"option-list svelte-9w5z1v\"></div></div>"), la = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><div class=\"unit-list svelte-9w5z1v\"></div></div>"), ua = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><!></div>"), da = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><div class=\"pickup-list svelte-9w5z1v\"></div></div>"), fa = /* @__PURE__ */ Y("<!> <!> <!> <!> <!>", 1), pa = /* @__PURE__ */ Y("<div class=\"accordion-body svelte-9w5z1v\"></div>"), ma = /* @__PURE__ */ Y("<div><button class=\"accordion-header svelte-9w5z1v\"><div class=\"accordion-header-text svelte-9w5z1v\"><span class=\"accordion-title svelte-9w5z1v\"> </span> <!></div> <span></span></button> <!></div>"), ha = /* @__PURE__ */ Y("<div class=\"wizard-body svelte-9w5z1v\"></div> <div class=\"action-bar\"><button class=\"btn btn-secondary\">Return to Cart</button> <button class=\"btn btn-primary\">Save &amp; Update</button></div>", 1), ga = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><h4 class=\"section-title\">Options</h4> <div class=\"option-list svelte-9w5z1v\"></div></div>"), _a = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><h4 class=\"section-title\">How many tickets?</h4> <div class=\"unit-list svelte-9w5z1v\"></div></div>"), va = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><h4 class=\"section-title\">Choose a date</h4> <!></div>"), ya = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><h4 class=\"section-title\">Select a time</h4> <!></div>"), ba = /* @__PURE__ */ Y("<div class=\"section svelte-9w5z1v\"><h4 class=\"section-title\">Select pickup point</h4> <div class=\"pickup-list svelte-9w5z1v\"></div></div>"), xa = /* @__PURE__ */ Y("<button class=\"btn btn-secondary\"> </button>"), Sa = /* @__PURE__ */ Y("<div class=\"wizard-body svelte-9w5z1v\"></div> <div class=\"action-bar\"><!> <button class=\"btn btn-primary\"> <span class=\"arrow\">&rarr;</span></button></div>", 1), Ca = /* @__PURE__ */ Y("<div class=\"dialog-backdrop svelte-9w5z1v\"><div class=\"dialog svelte-9w5z1v\"><h3 class=\"dialog-title svelte-9w5z1v\">You have unsaved changes</h3> <p class=\"dialog-body svelte-9w5z1v\">Would you like to proceed?</p> <div class=\"dialog-actions svelte-9w5z1v\"><button class=\"dialog-btn-text svelte-9w5z1v\">Discard changes</button> <button class=\"dialog-btn-fill svelte-9w5z1v\">Return to editing</button></div></div></div>"), wa = /* @__PURE__ */ Y("<div class=\"wizard svelte-9w5z1v\"><!> <!> <!></div> <!>", 1);
2976
+ function Ta(e, t) {
2952
2977
  P(t, !0);
2953
2978
  let n = Xr(t, "editPages", 19, () => t.wizardPages), r = Xr(t, "autoSelectSingleTimeSlot", 3, !1), i = /* @__PURE__ */ L(() => t.editItem != null), a = /* @__PURE__ */ L(() => t.editItem && !q(ne)() ? t.editItem.optionId : void 0), o = /* @__PURE__ */ z(0), s = /* @__PURE__ */ z(null), c = /* @__PURE__ */ z(Gt({})), l = /* @__PURE__ */ z(null), u = /* @__PURE__ */ z(null), d = /* @__PURE__ */ z(null), f = /* @__PURE__ */ z(null), p = /* @__PURE__ */ z(Gt({})), m = /* @__PURE__ */ z(Gt([])), h = /* @__PURE__ */ z(!1), g = /* @__PURE__ */ z(!1), _ = /* @__PURE__ */ z(!1), v = /* @__PURE__ */ z(!1), y = /* @__PURE__ */ z(0), b = /* @__PURE__ */ z(Gt(/* @__PURE__ */ new Set()));
2954
2979
  function x(...e) {
@@ -3161,19 +3186,19 @@ function xa(e, t) {
3161
3186
  currencyPrecision: a
3162
3187
  });
3163
3188
  }
3164
- var A = ba(), De = H(A), j = V(De), Oe = (e) => {
3165
- X(e, $i());
3189
+ var A = wa(), De = H(A), j = V(De), Oe = (e) => {
3190
+ X(e, ra());
3166
3191
  };
3167
3192
  Q(j, (e) => {
3168
3193
  q(i) || e(Oe);
3169
3194
  });
3170
3195
  var ke = U(j, 2), je = (e) => {
3171
- var t = na(), n = V(t), r = V(n, !0);
3196
+ var t = oa(), n = V(t), r = V(n, !0);
3172
3197
  M(n);
3173
3198
  var i = U(n, 2), a = (e) => {
3174
- var t = ta();
3199
+ var t = aa();
3175
3200
  Er(t, 21, () => q(se)(), $, (e, t, n) => {
3176
- var r = ea();
3201
+ var r = ia();
3177
3202
  let i;
3178
3203
  W(() => i = Fr(r, 1, "dot svelte-9w5z1v", null, i, { active: n === q(o) })), X(e, r);
3179
3204
  }), M(t), X(e, t);
@@ -3186,15 +3211,15 @@ function xa(e, t) {
3186
3211
  q(i) || e(je);
3187
3212
  });
3188
3213
  var Me = U(ke, 2), Ne = (e) => {
3189
- var n = da(), r = H(n);
3214
+ var n = ha(), r = H(n);
3190
3215
  Er(r, 21, () => q(me)(), $, (e, n, r) => {
3191
3216
  let i = /* @__PURE__ */ L(() => q(n).widgets.some((e) => q(b).has(e)));
3192
- var o = ua();
3217
+ var o = ma();
3193
3218
  let d;
3194
3219
  var _ = V(o), v = V(_), x = V(v), S = V(x, !0);
3195
3220
  M(x);
3196
3221
  var w = U(x, 2), T = (e) => {
3197
- var t = ra();
3222
+ var t = sa();
3198
3223
  let r;
3199
3224
  var a = V(t, !0);
3200
3225
  M(t), W((e) => {
@@ -3208,14 +3233,14 @@ function xa(e, t) {
3208
3233
  let ne;
3209
3234
  M(_);
3210
3235
  var re = U(_, 2), ie = (e) => {
3211
- var r = la();
3236
+ var r = pa();
3212
3237
  Er(r, 21, () => q(n).widgets, $, (e, n) => {
3213
- var r = ca(), i = H(r), o = (e) => {
3214
- var n = ia(), r = V(n);
3238
+ var r = fa(), i = H(r), o = (e) => {
3239
+ var n = ca(), r = V(n);
3215
3240
  Er(r, 21, () => t.product.options, $, (e, t) => {
3216
3241
  {
3217
3242
  let n = /* @__PURE__ */ L(() => q(s)?.id === q(t).id);
3218
- Li(e, {
3243
+ Vi(e, {
3219
3244
  get option() {
3220
3245
  return q(t);
3221
3246
  },
@@ -3231,11 +3256,11 @@ function xa(e, t) {
3231
3256
  q(n) === "option" && !q(a) && e(o);
3232
3257
  });
3233
3258
  var d = U(i, 2), _ = (e) => {
3234
- var t = aa(), n = V(t);
3259
+ var t = la(), n = V(t);
3235
3260
  Er(n, 21, () => q(E)(), $, (e, t) => {
3236
3261
  {
3237
3262
  let n = /* @__PURE__ */ L(() => q(c)[q(t).id] ?? 0);
3238
- Bi(e, {
3263
+ Wi(e, {
3239
3264
  get unit() {
3240
3265
  return q(t);
3241
3266
  },
@@ -3251,8 +3276,8 @@ function xa(e, t) {
3251
3276
  q(v) && e(_);
3252
3277
  });
3253
3278
  var y = U(d, 2), b = (e) => {
3254
- var t = oa();
3255
- Ji(V(t), {
3279
+ var t = ua();
3280
+ Qi(V(t), {
3256
3281
  get availabilityByDate() {
3257
3282
  return q(p);
3258
3283
  },
@@ -3269,8 +3294,8 @@ function xa(e, t) {
3269
3294
  q(n) === "date" && q(C) && e(b);
3270
3295
  });
3271
3296
  var x = U(y, 2), S = (e) => {
3272
- var t = oa();
3273
- Qi(V(t), {
3297
+ var t = ua();
3298
+ na(V(t), {
3274
3299
  get timeSlots() {
3275
3300
  return q(m);
3276
3301
  },
@@ -3287,11 +3312,11 @@ function xa(e, t) {
3287
3312
  q(n) === "time" && q(l) && !q(te) && e(S);
3288
3313
  });
3289
3314
  var w = U(x, 2), T = (e) => {
3290
- var t = sa(), n = V(t);
3315
+ var t = da(), n = V(t);
3291
3316
  Er(n, 21, () => q(s).pickupLocations, $, (e, t) => {
3292
3317
  {
3293
3318
  let n = /* @__PURE__ */ L(() => q(f)?.id === q(t).id), r = /* @__PURE__ */ L(() => q(t).title ?? q(t).id);
3294
- Fi(e, {
3319
+ zi(e, {
3295
3320
  get selected() {
3296
3321
  return q(n);
3297
3322
  },
@@ -3325,14 +3350,14 @@ function xa(e, t) {
3325
3350
  var i = U(r, 2), o = V(i), d = U(o, 2);
3326
3351
  M(i), W((e) => d.disabled = e, [() => !q(he)()]), J("click", o, we), J("click", d, Ee), X(e, n);
3327
3352
  }, Pe = (e) => {
3328
- var n = va(), r = H(n);
3353
+ var n = Sa(), r = H(n);
3329
3354
  Er(r, 21, () => q(le)()?.widgets ?? [], $, (e, n) => {
3330
- var r = ca(), i = H(r), o = (e) => {
3331
- var n = fa(), r = U(V(n), 2);
3355
+ var r = fa(), i = H(r), o = (e) => {
3356
+ var n = ga(), r = U(V(n), 2);
3332
3357
  Er(r, 21, () => t.product.options, $, (e, t) => {
3333
3358
  {
3334
3359
  let n = /* @__PURE__ */ L(() => q(s)?.id === q(t).id);
3335
- Li(e, {
3360
+ Vi(e, {
3336
3361
  get option() {
3337
3362
  return q(t);
3338
3363
  },
@@ -3348,11 +3373,11 @@ function xa(e, t) {
3348
3373
  q(n) === "option" && !q(a) && e(o);
3349
3374
  });
3350
3375
  var d = U(i, 2), _ = (e) => {
3351
- var t = pa(), n = U(V(t), 2);
3376
+ var t = _a(), n = U(V(t), 2);
3352
3377
  Er(n, 21, () => q(E)(), $, (e, t) => {
3353
3378
  {
3354
3379
  let n = /* @__PURE__ */ L(() => q(c)[q(t).id] ?? 0);
3355
- Bi(e, {
3380
+ Wi(e, {
3356
3381
  get unit() {
3357
3382
  return q(t);
3358
3383
  },
@@ -3368,8 +3393,8 @@ function xa(e, t) {
3368
3393
  q(v) && e(_);
3369
3394
  });
3370
3395
  var y = U(d, 2), b = (e) => {
3371
- var t = ma();
3372
- Ji(U(V(t), 2), {
3396
+ var t = va();
3397
+ Qi(U(V(t), 2), {
3373
3398
  get availabilityByDate() {
3374
3399
  return q(p);
3375
3400
  },
@@ -3386,8 +3411,8 @@ function xa(e, t) {
3386
3411
  q(n) === "date" && q(C) && e(b);
3387
3412
  });
3388
3413
  var x = U(y, 2), S = (e) => {
3389
- var t = ha();
3390
- Qi(U(V(t), 2), {
3414
+ var t = ya();
3415
+ na(U(V(t), 2), {
3391
3416
  get timeSlots() {
3392
3417
  return q(m);
3393
3418
  },
@@ -3404,11 +3429,11 @@ function xa(e, t) {
3404
3429
  q(n) === "time" && q(l) && !q(te) && e(S);
3405
3430
  });
3406
3431
  var w = U(x, 2), T = (e) => {
3407
- var t = ga(), n = U(V(t), 2);
3432
+ var t = ba(), n = U(V(t), 2);
3408
3433
  Er(n, 21, () => q(s).pickupLocations, $, (e, t) => {
3409
3434
  {
3410
3435
  let n = /* @__PURE__ */ L(() => q(f)?.id === q(t).id), r = /* @__PURE__ */ L(() => q(t).title ?? q(t).id);
3411
- Fi(e, {
3436
+ zi(e, {
3412
3437
  get selected() {
3413
3438
  return q(n);
3414
3439
  },
@@ -3428,7 +3453,7 @@ function xa(e, t) {
3428
3453
  }), X(e, r);
3429
3454
  }), M(r);
3430
3455
  var i = U(r, 2), d = V(i), _ = (e) => {
3431
- var t = _a(), n = V(t, !0);
3456
+ var t = xa(), n = V(t, !0);
3432
3457
  M(t), W(() => Z(n, q(o) > 0 ? "Back" : "Cancel")), J("click", t, Ce), X(e, t);
3433
3458
  };
3434
3459
  Q(d, (e) => {
@@ -3443,7 +3468,7 @@ function xa(e, t) {
3443
3468
  q(i) ? e(Ne) : e(Pe, -1);
3444
3469
  }), M(De);
3445
3470
  var Fe = U(De, 2), N = (e) => {
3446
- var t = ya(), n = V(t), r = U(V(n), 4), i = V(r), a = U(i, 2);
3471
+ var t = Ca(), n = V(t), r = U(V(n), 4), i = V(r), a = U(i, 2);
3447
3472
  M(r), M(n), M(t), J("click", t, () => {
3448
3473
  B(v, !1);
3449
3474
  }), J("click", n, (e) => e.stopPropagation()), J("click", i, Te), J("click", a, () => {
@@ -3457,10 +3482,10 @@ function xa(e, t) {
3457
3482
  cr(["click"]);
3458
3483
  //#endregion
3459
3484
  //#region src/lib/TicketConfigurator.svelte
3460
- var Sa = /* @__PURE__ */ Y("<div class=\"loading-center\" style=\"height:100vh\"><div class=\"spinner\"></div></div>"), Ca = /* @__PURE__ */ Y("<p class=\"add-to-cart-error svelte-19qd5my\"> </p>"), wa = /* @__PURE__ */ Y("<!> <!>", 1), Ta = /* @__PURE__ */ Y("<div class=\"bw-widget svelte-19qd5my\"><!></div>");
3461
- function Ea(e, t) {
3485
+ var Ea = /* @__PURE__ */ Y("<div class=\"loading-center\" style=\"height:100vh\"><div class=\"spinner\"></div></div>"), Da = /* @__PURE__ */ Y("<p class=\"add-to-cart-error svelte-19qd5my\"> </p>"), Oa = /* @__PURE__ */ Y("<!> <!>", 1), ka = /* @__PURE__ */ Y("<div class=\"bw-widget svelte-19qd5my\"><!></div>");
3486
+ function Aa(e, t) {
3462
3487
  P(t, !0);
3463
- let n = Xr(t, "wizardPages", 3, Ci), r = Xr(t, "autoSelectSingleTimeSlot", 3, !1), i = /* @__PURE__ */ z(null), a = /* @__PURE__ */ z(!0), o = /* @__PURE__ */ z(!1), s = /* @__PURE__ */ z(null);
3488
+ let n = Xr(t, "wizardPages", 3, Oi), r = Xr(t, "autoSelectSingleTimeSlot", 3, !1), i = /* @__PURE__ */ z(null), a = /* @__PURE__ */ z(!0), o = /* @__PURE__ */ z(!1), s = /* @__PURE__ */ z(null);
3464
3489
  async function c() {
3465
3490
  B(i, await t.api.getProduct(t.productId), !0), B(a, !1);
3466
3491
  }
@@ -3474,17 +3499,15 @@ function Ea(e, t) {
3474
3499
  availabilityId: e.availabilityId,
3475
3500
  localDate: e.localDate,
3476
3501
  pickupPointId: e.pickupPointId,
3477
- amount: e.totalPrice,
3478
- currencyCode: e.currency,
3479
- currencyPrecision: e.currencyPrecision
3480
- }), i = Ai(e.totalPrice, e.currency, e.currencyPrecision, 2);
3481
- Oi({
3502
+ amount: e.totalPrice
3503
+ }), i = Pi(e.totalPrice, e.currency, e.currencyPrecision, 2);
3504
+ Ei({
3482
3505
  type: "cart:change",
3483
3506
  itemCount: n.length,
3484
3507
  cartItemId: r.id,
3485
3508
  totalFormatted: i,
3486
3509
  openCheckout: !0
3487
- }), Oi({
3510
+ }), Ei({
3488
3511
  type: "cart:updated",
3489
3512
  cart: await t.api.getCart().catch(() => null)
3490
3513
  });
@@ -3494,6 +3517,10 @@ function Ea(e, t) {
3494
3517
  try {
3495
3518
  await l(e);
3496
3519
  } catch (n) {
3520
+ if (_i(n)) {
3521
+ await d();
3522
+ return;
3523
+ }
3497
3524
  if (n instanceof gi && (n.status === 401 || n.status === 404)) {
3498
3525
  t.cartManager.reset();
3499
3526
  try {
@@ -3506,16 +3533,24 @@ function Ea(e, t) {
3506
3533
  B(o, !1);
3507
3534
  }
3508
3535
  }
3509
- var d = Ta(), f = V(d), p = (e) => {
3510
- X(e, Sa());
3511
- }, m = (e) => {
3512
- var a = wa(), o = H(a), c = (e) => {
3513
- var t = Ca(), n = V(t, !0);
3536
+ async function d() {
3537
+ B(s, "This ticket's price has changed since you started. Please check the updated price and try again.");
3538
+ try {
3539
+ await c();
3540
+ } catch {
3541
+ B(s, "This ticket's price has changed and we could not load the new one. Please reload the page.");
3542
+ }
3543
+ }
3544
+ var f = ka(), p = V(f), m = (e) => {
3545
+ X(e, Ea());
3546
+ }, h = (e) => {
3547
+ var a = Oa(), o = H(a), c = (e) => {
3548
+ var t = Da(), n = V(t, !0);
3514
3549
  M(t), W(() => Z(n, q(s))), X(e, t);
3515
3550
  };
3516
3551
  Q(o, (e) => {
3517
3552
  q(s) && e(c);
3518
- }), xa(U(o, 2), {
3553
+ }), Ta(U(o, 2), {
3519
3554
  get product() {
3520
3555
  return q(i);
3521
3556
  },
@@ -3534,14 +3569,14 @@ function Ea(e, t) {
3534
3569
  onComplete: u
3535
3570
  }), X(e, a);
3536
3571
  };
3537
- Q(f, (e) => {
3538
- q(a) || q(o) ? e(p) : q(i) && e(m, 1);
3539
- }), M(d), X(e, d), F();
3572
+ Q(p, (e) => {
3573
+ q(a) || q(o) ? e(m) : q(i) && e(h, 1);
3574
+ }), M(f), X(e, f), F();
3540
3575
  }
3541
3576
  //#endregion
3542
3577
  //#region src/lib/ContactForm.svelte
3543
- var Da = /* @__PURE__ */ Y("<div class=\"form svelte-12xyhj1\"><div class=\"field svelte-12xyhj1\"><label for=\"firstName\" class=\"svelte-12xyhj1\">First name *</label> <input id=\"firstName\"/></div> <div class=\"field svelte-12xyhj1\"><label for=\"lastName\" class=\"svelte-12xyhj1\">Last name</label> <input id=\"lastName\" class=\"input\"/></div> <div class=\"field svelte-12xyhj1\"><label for=\"email\" class=\"svelte-12xyhj1\">Email address *</label> <input id=\"email\" type=\"email\"/></div> <div class=\"field svelte-12xyhj1\"><label for=\"phone\" class=\"svelte-12xyhj1\">Phone number *</label> <input id=\"phone\" type=\"tel\"/></div></div>");
3544
- function Oa(e, t) {
3578
+ var ja = /* @__PURE__ */ Y("<div class=\"form svelte-12xyhj1\"><div class=\"field svelte-12xyhj1\"><label for=\"firstName\" class=\"svelte-12xyhj1\">First name *</label> <input id=\"firstName\"/></div> <div class=\"field svelte-12xyhj1\"><label for=\"lastName\" class=\"svelte-12xyhj1\">Last name</label> <input id=\"lastName\" class=\"input\"/></div> <div class=\"field svelte-12xyhj1\"><label for=\"email\" class=\"svelte-12xyhj1\">Email address *</label> <input id=\"email\" type=\"email\"/></div> <div class=\"field svelte-12xyhj1\"><label for=\"phone\" class=\"svelte-12xyhj1\">Phone number *</label> <input id=\"phone\" type=\"tel\"/></div></div>");
3579
+ function Ma(e, t) {
3545
3580
  P(t, !0);
3546
3581
  let n = Xr(t, "firstName", 15, ""), r = Xr(t, "lastName", 15, ""), i = Xr(t, "emailAddress", 15, ""), a = Xr(t, "phoneNumber", 15, "");
3547
3582
  function o() {
@@ -3561,7 +3596,7 @@ function Oa(e, t) {
3561
3596
  var l = {
3562
3597
  isValid: o,
3563
3598
  getContact: s
3564
- }, u = Da(), d = V(u), f = U(V(d), 2);
3599
+ }, u = ja(), d = V(u), f = U(V(d), 2);
3565
3600
  zr(f);
3566
3601
  let p;
3567
3602
  M(d);
@@ -3584,10 +3619,10 @@ function Oa(e, t) {
3584
3619
  }
3585
3620
  //#endregion
3586
3621
  //#region src/lib/ConsentSection.svelte
3587
- var ka = /* @__PURE__ */ Y("<div class=\"consent svelte-19pmjwi\"><label><input type=\"checkbox\" class=\"svelte-19pmjwi\"/> <span class=\"svelte-19pmjwi\">I accept the privacy policy *</span></label> <label class=\"check svelte-19pmjwi\"><input type=\"checkbox\" class=\"svelte-19pmjwi\"/> <span>I would like to receive marketing communications</span></label></div>");
3588
- function Aa(e, t) {
3622
+ var Na = /* @__PURE__ */ Y("<div class=\"consent svelte-19pmjwi\"><label><input type=\"checkbox\" class=\"svelte-19pmjwi\"/> <span class=\"svelte-19pmjwi\">I accept the privacy policy *</span></label> <label class=\"check svelte-19pmjwi\"><input type=\"checkbox\" class=\"svelte-19pmjwi\"/> <span>I would like to receive marketing communications</span></label></div>");
3623
+ function Pa(e, t) {
3589
3624
  P(t, !0);
3590
- var n = ka(), r = V(n);
3625
+ var n = Na(), r = V(n);
3591
3626
  let i;
3592
3627
  var a = V(r);
3593
3628
  zr(a), Ae(2), M(r);
@@ -3599,8 +3634,8 @@ function Aa(e, t) {
3599
3634
  cr(["change"]);
3600
3635
  //#endregion
3601
3636
  //#region src/lib/CountdownTimer.svelte
3602
- var ja = /* @__PURE__ */ Y("<span class=\"timer svelte-1u82ue3\"> </span>");
3603
- function Ma(e, t) {
3637
+ var Fa = /* @__PURE__ */ Y("<span class=\"timer svelte-1u82ue3\"> </span>");
3638
+ function Ia(e, t) {
3604
3639
  P(t, !0);
3605
3640
  let n = /* @__PURE__ */ z("");
3606
3641
  function r() {
@@ -3610,20 +3645,20 @@ function Ma(e, t) {
3610
3645
  r();
3611
3646
  let i = setInterval(r, 1e3);
3612
3647
  Qr(() => clearInterval(i));
3613
- var a = ja(), o = V(a, !0);
3648
+ var a = Fa(), o = V(a, !0);
3614
3649
  M(a), W(() => Z(o, q(n))), X(e, a), F();
3615
3650
  }
3616
3651
  //#endregion
3617
3652
  //#region src/lib/peach-sdk.ts
3618
- var Na = {
3653
+ var La = {
3619
3654
  prod: "https://checkout.peachpayments.com/js/checkout.js",
3620
3655
  qa: "https://sandbox-checkout.peachpayments.com/js/checkout.js"
3621
- }, Pa = null;
3622
- function Fa() {
3656
+ }, Ra = null;
3657
+ function za() {
3623
3658
  if (window.Checkout) return Promise.resolve();
3624
- if (Pa) return Pa;
3625
- let e = window, t = e.BW_CHECKOUT_ENV ?? "prod", n = e.BW_CHECKOUT_PEACH_SDK_URL ?? Na[t] ?? Na.prod;
3626
- return Pa = new Promise((e, t) => {
3659
+ if (Ra) return Ra;
3660
+ let e = window, t = e.BW_CHECKOUT_ENV ?? "prod", n = e.BW_CHECKOUT_PEACH_SDK_URL ?? La[t] ?? La.prod;
3661
+ return Ra = new Promise((e, t) => {
3627
3662
  let r = document.querySelector(`script[src="${n}"]`);
3628
3663
  if (r) {
3629
3664
  r.addEventListener("load", () => e()), r.addEventListener("error", () => t(/* @__PURE__ */ Error("Failed to load the Peach Payments SDK script")));
@@ -3631,18 +3666,18 @@ function Fa() {
3631
3666
  }
3632
3667
  let i = document.createElement("script");
3633
3668
  i.src = n, i.onload = () => e(), i.onerror = () => t(/* @__PURE__ */ Error("Failed to load the Peach Payments SDK script")), document.head.appendChild(i);
3634
- }), Pa;
3669
+ }), Ra;
3635
3670
  }
3636
3671
  //#endregion
3637
3672
  //#region src/lib/PaymentPage.svelte
3638
- var Ia = /* @__PURE__ */ Y("<div class=\"error-state svelte-1ubcp68\"><div class=\"error-icon svelte-1ubcp68\">!</div> <p class=\"error-title svelte-1ubcp68\">Unable to load payment form</p> <p class=\"error-msg svelte-1ubcp68\"> </p></div>"), La = /* @__PURE__ */ Y("<div class=\"brands svelte-1ubcp68\"><span class=\"brand svelte-1ubcp68\">VISA</span> <span class=\"brand svelte-1ubcp68\">MC</span> <span class=\"brand svelte-1ubcp68\">AMEX</span></div> <div id=\"peach-container\"></div>", 1), Ra = /* @__PURE__ */ Y("<div class=\"payment-page svelte-1ubcp68\"><div class=\"page-header\"><button class=\"icon-btn\" aria-label=\"Back\">&larr;</button> <h2>Payment</h2> <span class=\"spacer\"></span> <button class=\"icon-btn\" aria-label=\"Close\">&times;</button></div> <div class=\"body svelte-1ubcp68\"><div class=\"amount-bar svelte-1ubcp68\"><span>Amount to pay</span> <span class=\"amount svelte-1ubcp68\"> </span></div> <!></div></div>");
3639
- function za(e, t) {
3673
+ var Ba = /* @__PURE__ */ Y("<div class=\"error-state svelte-1ubcp68\"><div class=\"error-icon svelte-1ubcp68\">!</div> <p class=\"error-title svelte-1ubcp68\">Unable to load payment form</p> <p class=\"error-msg svelte-1ubcp68\"> </p></div>"), Va = /* @__PURE__ */ Y("<div id=\"peach-container\" class=\"svelte-1ubcp68\"></div>"), Ha = /* @__PURE__ */ Y("<div class=\"payment-overlay svelte-1ubcp68\"><div class=\"payment-dialog svelte-1ubcp68\"><div class=\"page-header\"><h2>Payment</h2></div> <div class=\"body svelte-1ubcp68\"><!></div></div></div>");
3674
+ function Ua(e, t) {
3640
3675
  P(t, !0);
3641
3676
  let n = /* @__PURE__ */ z(!1), r = /* @__PURE__ */ z(""), i = null;
3642
3677
  Zr(() => {
3643
3678
  (async () => {
3644
3679
  try {
3645
- await Fa();
3680
+ await za();
3646
3681
  let e = window.Checkout;
3647
3682
  if (!e) {
3648
3683
  B(n, !0), B(r, "Payment SDK not loaded");
@@ -3650,6 +3685,7 @@ function za(e, t) {
3650
3685
  }
3651
3686
  i = e.initiate({
3652
3687
  checkoutId: t.checkoutId,
3688
+ key: t.entityId,
3653
3689
  customisations: {
3654
3690
  card: { submitButtonText: "Pay Now" },
3655
3691
  theme: { brand: { primary: "#E30613" } }
@@ -3678,73 +3714,85 @@ function za(e, t) {
3678
3714
  i &&= (i.unmount(), null);
3679
3715
  }
3680
3716
  Qr(a);
3681
- var o = Ra(), s = V(o), c = V(s), l = U(c, 6);
3682
- M(s);
3683
- var u = U(s, 2), d = V(u), f = U(V(d), 2), p = V(f, !0);
3684
- M(f), M(d);
3685
- var m = U(d, 2), h = (e) => {
3686
- var t = Ia(), n = U(V(t), 4), i = V(n, !0);
3717
+ var o = Ha(), s = V(o), c = U(V(s), 2), l = V(c), u = (e) => {
3718
+ var t = Ba(), n = U(V(t), 4), i = V(n, !0);
3687
3719
  M(n), M(t), W(() => Z(i, q(r) || "The checkout session may have expired.")), X(e, t);
3688
- }, g = (e) => {
3689
- var t = La();
3690
- Ae(2), X(e, t);
3720
+ }, d = (e) => {
3721
+ X(e, Va());
3691
3722
  };
3692
- Q(m, (e) => {
3693
- q(n) ? e(h) : e(g, -1);
3694
- }), M(u), M(o), W(() => Z(p, t.totalFormatted)), J("click", c, function(...e) {
3695
- t.onBack?.apply(this, e);
3696
- }), J("click", l, function(...e) {
3697
- t.onClose?.apply(this, e);
3698
- }), X(e, o), F();
3723
+ Q(l, (e) => {
3724
+ q(n) ? e(u) : e(d, -1);
3725
+ }), M(c), M(s), M(o), J("click", s, (e) => e.stopPropagation()), X(e, o), F();
3699
3726
  }
3700
3727
  cr(["click"]);
3701
3728
  //#endregion
3702
3729
  //#region src/lib/ResultView.svelte
3703
- var Ba = /* @__PURE__ */ Y("<div class=\"spinner\"></div> <p class=\"hint svelte-16gfovn\">Verifying payment...</p>", 1), Va = /* @__PURE__ */ Y("<button class=\"btn btn-primary\">Done</button>"), Ha = /* @__PURE__ */ Y("<button class=\"btn btn-outline\">Try Again</button>"), Ua = /* @__PURE__ */ Y("<div> </div> <h2 class=\"svelte-16gfovn\"> </h2> <p class=\"desc svelte-16gfovn\"> </p> <!>", 1), Wa = /* @__PURE__ */ Y("<div class=\"result svelte-16gfovn\"><!></div>");
3704
- function Ga(e, t) {
3730
+ var Wa = /* @__PURE__ */ Y("<div class=\"spinner\"></div> <p class=\"hint svelte-16gfovn\">Verifying payment...</p>", 1), Ga = /* @__PURE__ */ Y("<button class=\"btn btn-primary\">Check Again</button>"), Ka = /* @__PURE__ */ Y("<div class=\"icon pending svelte-16gfovn\">&hellip;</div> <h2 class=\"svelte-16gfovn\">Payment Received</h2> <p class=\"desc svelte-16gfovn\"> </p> <div class=\"actions svelte-16gfovn\"><!> <button class=\"btn btn-outline\">Close</button></div>", 1), qa = /* @__PURE__ */ Y("<button class=\"btn btn-primary\">Done</button>"), Ja = /* @__PURE__ */ Y("<button class=\"btn btn-outline\">Try Again</button>"), Ya = /* @__PURE__ */ Y("<button class=\"btn btn-outline\">Close</button>"), Xa = /* @__PURE__ */ Y("<div> </div> <h2 class=\"svelte-16gfovn\"> </h2> <p class=\"desc svelte-16gfovn\"> </p> <!>", 1), Za = /* @__PURE__ */ Y("<div class=\"result svelte-16gfovn\"><!></div>");
3731
+ function Qa(e, t) {
3705
3732
  P(t, !0);
3706
- let n = /* @__PURE__ */ L(() => t.status?.outcome === "successful");
3707
- var r = Wa(), i = V(r), a = (e) => {
3708
- var t = Ba();
3733
+ let n = /* @__PURE__ */ L(() => t.status?.outcome === "successful"), r = /* @__PURE__ */ L(() => t.status?.outcome === "pending"), i = /* @__PURE__ */ L(() => t.status?.outcome === "failed" && t.status.retryPayment !== !1);
3734
+ var a = Za(), o = V(a), s = (e) => {
3735
+ var t = Wa();
3709
3736
  Ae(2), X(e, t);
3710
- }, o = (e) => {
3711
- var r = Ua(), i = H(r);
3712
- let a;
3713
- var o = V(i, !0);
3714
- M(i);
3715
- var s = U(i, 2), c = V(s, !0);
3716
- M(s);
3717
- var l = U(s, 2), u = V(l, !0);
3718
- M(l);
3719
- var d = U(l, 2), f = (e) => {
3720
- var n = Va();
3737
+ }, c = (e) => {
3738
+ var n = Ka(), r = U(H(n), 4), i = V(r, !0);
3739
+ M(r);
3740
+ var a = U(r, 2), o = V(a), s = (e) => {
3741
+ var n = Ga();
3742
+ J("click", n, function(...e) {
3743
+ t.onCheckAgain?.apply(this, e);
3744
+ }), X(e, n);
3745
+ };
3746
+ Q(o, (e) => {
3747
+ t.onCheckAgain && e(s);
3748
+ });
3749
+ var c = U(o, 2);
3750
+ M(a), W(() => Z(i, t.status?.resultDescription ?? "We're still confirming your booking - this can take a minute. Please don't try to pay again; we'll email your confirmation as soon as it's ready.")), J("click", c, function(...e) {
3751
+ t.onDone?.apply(this, e);
3752
+ }), X(e, n);
3753
+ }, l = (e) => {
3754
+ var r = Xa(), a = H(r);
3755
+ let o;
3756
+ var s = V(a, !0);
3757
+ M(a);
3758
+ var c = U(a, 2), l = V(c, !0);
3759
+ M(c);
3760
+ var u = U(c, 2), d = V(u, !0);
3761
+ M(u);
3762
+ var f = U(u, 2), p = (e) => {
3763
+ var n = qa();
3721
3764
  J("click", n, function(...e) {
3722
3765
  t.onDone?.apply(this, e);
3723
3766
  }), X(e, n);
3724
- }, p = (e) => {
3725
- var n = Ha();
3767
+ }, m = (e) => {
3768
+ var n = Ja();
3726
3769
  J("click", n, function(...e) {
3727
3770
  t.onRetry?.apply(this, e);
3728
3771
  }), X(e, n);
3772
+ }, h = (e) => {
3773
+ var n = Ya();
3774
+ J("click", n, function(...e) {
3775
+ t.onDone?.apply(this, e);
3776
+ }), X(e, n);
3729
3777
  };
3730
- Q(d, (e) => {
3731
- q(n) ? e(f) : e(p, -1);
3778
+ Q(f, (e) => {
3779
+ q(n) ? e(p) : q(i) ? e(m, 1) : e(h, -1);
3732
3780
  }), W(() => {
3733
- a = Fr(i, 1, "icon svelte-16gfovn", null, a, {
3781
+ o = Fr(a, 1, "icon svelte-16gfovn", null, o, {
3734
3782
  success: q(n),
3735
3783
  failure: !q(n)
3736
- }), Z(o, q(n) ? "✓" : "!"), Z(c, q(n) ? "Payment Successful" : "Payment Failed"), Z(u, q(n) ? "Your booking has been confirmed." : t.status?.resultDescription ?? "Something went wrong. Please try again.");
3784
+ }), Z(s, q(n) ? "✓" : "!"), Z(l, q(n) ? "Payment Successful" : "Payment Failed"), Z(d, q(n) ? "Your booking has been confirmed." : t.status?.resultDescription ?? "Something went wrong. Please try again.");
3737
3785
  }), X(e, r);
3738
3786
  };
3739
- Q(i, (e) => {
3740
- t.verifying ? e(a) : e(o, -1);
3741
- }), M(r), X(e, r), F();
3787
+ Q(o, (e) => {
3788
+ t.verifying ? e(s) : q(r) ? e(c, 1) : e(l, -1);
3789
+ }), M(a), X(e, a), F();
3742
3790
  }
3743
3791
  cr(["click"]);
3744
3792
  //#endregion
3745
3793
  //#region src/lib/EditBookingView.svelte
3746
- var Ka = /* @__PURE__ */ Y("<p class=\"edit-error svelte-15l4305\"> </p>"), qa = /* @__PURE__ */ Y("<div class=\"saving-overlay svelte-15l4305\"><div class=\"spinner\"></div></div>"), Ja = /* @__PURE__ */ Y("<div class=\"edit-view svelte-15l4305\"><div class=\"page-header\"><button class=\"icon-btn\" aria-label=\"Back\">&larr;</button> <h2>Edit Item</h2> <span class=\"spacer\"></span> <button class=\"icon-btn\" aria-label=\"Close\">&times;</button></div> <!> <div><!> <!></div></div>");
3747
- function Ya(e, t) {
3794
+ var $a = /* @__PURE__ */ Y("<p class=\"edit-error svelte-15l4305\"> </p>"), eo = /* @__PURE__ */ Y("<div class=\"saving-overlay svelte-15l4305\"><div class=\"spinner\"></div></div>"), to = /* @__PURE__ */ Y("<div class=\"edit-view svelte-15l4305\"><div class=\"page-header\"><button class=\"icon-btn\" aria-label=\"Back\">&larr;</button> <h2>Edit Item</h2> <span class=\"spacer\"></span> <button class=\"icon-btn\" aria-label=\"Close\">&times;</button></div> <!> <div><!> <!></div></div>");
3795
+ function no(e, t) {
3748
3796
  P(t, !0);
3749
3797
  let n = Xr(t, "autoSelectSingleTimeSlot", 3, !1), r = /* @__PURE__ */ z(!1), i = /* @__PURE__ */ z(null);
3750
3798
  async function a(e) {
@@ -3757,20 +3805,22 @@ function Ya(e, t) {
3757
3805
  availabilityId: e.availabilityId,
3758
3806
  localDate: e.localDate,
3759
3807
  pickupPointId: e.pickupPointId,
3760
- amount: e.totalPrice,
3761
- currencyCode: e.currency,
3762
- currencyPrecision: e.currencyPrecision
3808
+ amount: e.totalPrice
3763
3809
  }), t.onUpdated();
3764
3810
  } catch (e) {
3811
+ if (_i(e)) {
3812
+ B(i, "This item's price has changed. Please check the updated price and save again."), await t.onPriceChanged?.();
3813
+ return;
3814
+ }
3765
3815
  B(i, e instanceof gi && e.status === 424 ? "This change could not be saved - the supplier rejected it. Please try different options." : "Something went wrong saving your changes. Please try again.", !0);
3766
3816
  } finally {
3767
3817
  B(r, !1);
3768
3818
  }
3769
3819
  }
3770
- var o = Ja(), s = V(o), c = V(s), l = U(c, 6);
3820
+ var o = to(), s = V(o), c = V(s), l = U(c, 6);
3771
3821
  M(s);
3772
3822
  var u = U(s, 2), d = (e) => {
3773
- var t = Ka(), n = V(t, !0);
3823
+ var t = $a(), n = V(t, !0);
3774
3824
  M(t), W(() => Z(n, q(i))), X(e, t);
3775
3825
  };
3776
3826
  Q(u, (e) => {
@@ -3780,8 +3830,8 @@ function Ya(e, t) {
3780
3830
  let p;
3781
3831
  var m = V(f);
3782
3832
  {
3783
- let e = /* @__PURE__ */ L(() => t.wizardPages ?? Ci), r = /* @__PURE__ */ L(() => t.editPages ?? t.wizardPages ?? Ci);
3784
- xa(m, {
3833
+ let e = /* @__PURE__ */ L(() => t.wizardPages ?? Oi), r = /* @__PURE__ */ L(() => t.editPages ?? t.wizardPages ?? Oi);
3834
+ Ta(m, {
3785
3835
  get product() {
3786
3836
  return t.product;
3787
3837
  },
@@ -3807,7 +3857,7 @@ function Ya(e, t) {
3807
3857
  });
3808
3858
  }
3809
3859
  var h = U(m, 2), g = (e) => {
3810
- X(e, qa());
3860
+ X(e, eo());
3811
3861
  };
3812
3862
  Q(h, (e) => {
3813
3863
  q(r) && e(g);
@@ -3820,17 +3870,17 @@ function Ya(e, t) {
3820
3870
  cr(["click"]);
3821
3871
  //#endregion
3822
3872
  //#region src/lib/CheckoutModal.svelte
3823
- var Xa = /* @__PURE__ */ Y("<div class=\"loading-center\" style=\"height:100%\"><div class=\"spinner\"></div></div>"), Za = /* @__PURE__ */ Y("<p class=\"pay-error svelte-i0rtg0\"> </p>"), Qa = /* @__PURE__ */ Y("<div class=\"page-header\"><button class=\"icon-btn\" aria-label=\"Back\">&larr;</button> <h2>Checkout</h2> <span class=\"spacer\"></span> <button class=\"icon-btn\" aria-label=\"Close\">&times;</button></div> <div class=\"body svelte-i0rtg0\"><!> <div class=\"contact-header svelte-i0rtg0\"><span class=\"contact-title svelte-i0rtg0\">Contact Details</span> <span class=\"required-hint svelte-i0rtg0\">* Required Fields</span></div> <!> <div style=\"margin-top:24px\"><!></div></div> <div class=\"pay-bar svelte-i0rtg0\"><span class=\"pay-bar-total svelte-i0rtg0\"> </span> <button class=\"pay-bar-btn svelte-i0rtg0\"> <span class=\"arrow svelte-i0rtg0\">&rarr;</span></button></div>", 1), $a = /* @__PURE__ */ Y("<p class=\"cart-detail svelte-i0rtg0\"> </p>"), eo = /* @__PURE__ */ Y("<div class=\"cart-unit-line svelte-i0rtg0\"><span class=\"cart-unit-label svelte-i0rtg0\"> </span> <span class=\"cart-unit-price svelte-i0rtg0\"> </span></div>"), to = /* @__PURE__ */ Y("<div class=\"cart-card svelte-i0rtg0\"><div class=\"cart-card-top svelte-i0rtg0\"><h3 class=\"cart-product svelte-i0rtg0\"> </h3> <span class=\"cart-item-total svelte-i0rtg0\"> </span></div> <div class=\"cart-detail-lines svelte-i0rtg0\"><!> <p class=\"cart-detail svelte-i0rtg0\"> </p></div> <div class=\"cart-divider svelte-i0rtg0\"></div> <div class=\"cart-units svelte-i0rtg0\"></div> <div class=\"cart-actions svelte-i0rtg0\"><button class=\"action-edit svelte-i0rtg0\">Edit</button> <button class=\"action-remove svelte-i0rtg0\">Remove</button></div></div>"), no = /* @__PURE__ */ Y("<div class=\"page-header\"><h2>Your cart</h2> <span class=\"spacer\"></span> <!> <button class=\"keep-shopping-btn svelte-i0rtg0\">+ Keep shopping</button></div> <div class=\"body svelte-i0rtg0\"><!> <div class=\"cart-total-divider svelte-i0rtg0\"></div> <div class=\"cart-total-row svelte-i0rtg0\"><span>Total payable today</span> <span class=\"cart-total-amount svelte-i0rtg0\"> </span></div></div> <div class=\"action-bar\"><button class=\"btn btn-primary\">Checkout <span class=\"arrow\">&rarr;</span></button></div>", 1), ro = /* @__PURE__ */ Y("<div class=\"modal svelte-i0rtg0\"><!></div>");
3824
- function io(e, t) {
3873
+ var ro = /* @__PURE__ */ Y("<div class=\"loading-center\" style=\"height:100%\"><div class=\"spinner\"></div></div>"), io = /* @__PURE__ */ Y("<p class=\"pay-error svelte-i0rtg0\"> </p>"), ao = /* @__PURE__ */ Y("<div class=\"page-header\"><button class=\"icon-btn\" aria-label=\"Back\">&larr;</button> <h2>Checkout</h2> <span class=\"spacer\"></span> <button class=\"icon-btn\" aria-label=\"Close\">&times;</button></div> <div class=\"body svelte-i0rtg0\"><!> <div class=\"contact-header svelte-i0rtg0\"><span class=\"contact-title svelte-i0rtg0\">Contact Details</span> <span class=\"required-hint svelte-i0rtg0\">* Required Fields</span></div> <!> <div style=\"margin-top:24px\"><!></div></div> <div class=\"pay-bar svelte-i0rtg0\"><span class=\"pay-bar-total svelte-i0rtg0\"> </span> <button class=\"pay-bar-btn svelte-i0rtg0\"> <span class=\"arrow svelte-i0rtg0\">&rarr;</span></button></div>", 1), oo = /* @__PURE__ */ Y("<p class=\"cart-detail svelte-i0rtg0\"> </p>"), so = /* @__PURE__ */ Y("<div class=\"cart-unit-line svelte-i0rtg0\"><span class=\"cart-unit-label svelte-i0rtg0\"> </span> <span class=\"cart-unit-price svelte-i0rtg0\"> </span></div>"), co = /* @__PURE__ */ Y("<div class=\"cart-card svelte-i0rtg0\"><div class=\"cart-card-top svelte-i0rtg0\"><h3 class=\"cart-product svelte-i0rtg0\"> </h3> <span class=\"cart-item-total svelte-i0rtg0\"> </span></div> <div class=\"cart-detail-lines svelte-i0rtg0\"><!> <p class=\"cart-detail svelte-i0rtg0\"> </p></div> <div class=\"cart-divider svelte-i0rtg0\"></div> <div class=\"cart-units svelte-i0rtg0\"></div> <div class=\"cart-actions svelte-i0rtg0\"><button class=\"action-edit svelte-i0rtg0\">Edit</button> <button class=\"action-remove svelte-i0rtg0\">Remove</button></div></div>"), lo = /* @__PURE__ */ Y("<div class=\"page-header\"><h2>Your cart</h2> <span class=\"spacer\"></span> <!> <button class=\"keep-shopping-btn svelte-i0rtg0\">+ Keep shopping</button></div> <div class=\"body svelte-i0rtg0\"><!> <div class=\"cart-total-divider svelte-i0rtg0\"></div> <div class=\"cart-total-row svelte-i0rtg0\"><span>Total payable today</span> <span class=\"cart-total-amount svelte-i0rtg0\"> </span></div></div> <div class=\"action-bar\"><button class=\"btn btn-primary\">Checkout <span class=\"arrow\">&rarr;</span></button></div>", 1), uo = /* @__PURE__ */ Y("<div class=\"modal svelte-i0rtg0\"><!></div>");
3874
+ function fo(e, t) {
3825
3875
  P(t, !0);
3826
- let n = Xr(t, "cart", 7), r = Xr(t, "autoSelectSingleTimeSlot", 3, !1), i = /* @__PURE__ */ z("cart"), a = /* @__PURE__ */ z(null), o = /* @__PURE__ */ z(null), s = /* @__PURE__ */ z(null), c = /* @__PURE__ */ z(!1), l = /* @__PURE__ */ z(!0), u = /* @__PURE__ */ z(!1), d = /* @__PURE__ */ z(!1), f = /* @__PURE__ */ z(!1), p = /* @__PURE__ */ z(!1), m = /* @__PURE__ */ z(null), h = /* @__PURE__ */ z(!1), g = /* @__PURE__ */ z(""), _ = /* @__PURE__ */ z(""), v = /* @__PURE__ */ z(""), y = /* @__PURE__ */ z(""), b = /* @__PURE__ */ z(null), x = /* @__PURE__ */ z(Gt(/* @__PURE__ */ new Map()));
3876
+ let n = Xr(t, "cart", 7), r = Xr(t, "autoSelectSingleTimeSlot", 3, !1), i = /* @__PURE__ */ z("cart"), a = /* @__PURE__ */ z(null), o = /* @__PURE__ */ z(null), s = /* @__PURE__ */ z(null), c = /* @__PURE__ */ z(null), l = /* @__PURE__ */ z(!0), u = /* @__PURE__ */ z(!1), d = /* @__PURE__ */ z(!1), f = /* @__PURE__ */ z(!1), p = /* @__PURE__ */ z(!1), m = /* @__PURE__ */ z(null), h = /* @__PURE__ */ z(!1), g = /* @__PURE__ */ z(""), _ = /* @__PURE__ */ z(""), v = /* @__PURE__ */ z(""), y = /* @__PURE__ */ z(""), b = /* @__PURE__ */ z(null), x = /* @__PURE__ */ z(Gt(/* @__PURE__ */ new Map()));
3827
3877
  async function S() {
3828
3878
  let e = [...new Set(n().items.map((e) => e.productId))], r = await Promise.all(e.map((e) => t.api.getProduct(e))), i = /* @__PURE__ */ new Map();
3829
3879
  for (let e of r) i.set(e.id, e);
3830
3880
  B(x, i, !0), B(l, !1);
3831
3881
  }
3832
3882
  S();
3833
- let C = /* @__PURE__ */ L(() => () => n().items.reduce((e, t) => e + t.amount, 0)), w = /* @__PURE__ */ L(() => () => n().items[0]?.currencyCode ?? "ZAR"), T = /* @__PURE__ */ L(() => () => Ai(q(C)(), q(w)(), 2, 2)), ee = /* @__PURE__ */ L(() => () => new Date(n().absoluteExpiresAt));
3883
+ let C = /* @__PURE__ */ L(() => () => n().items.reduce((e, t) => e + t.amount, 0)), w = /* @__PURE__ */ L(() => () => n().items[0]?.currencyCode ?? "ZAR"), T = /* @__PURE__ */ L(() => () => Pi(q(C)(), q(w)(), 2, 2)), ee = /* @__PURE__ */ L(() => () => new Date(n().absoluteExpiresAt));
3834
3884
  function te(e) {
3835
3885
  return q(x).get(e.productId)?.title ?? e.productId;
3836
3886
  }
@@ -3870,9 +3920,9 @@ function io(e, t) {
3870
3920
  "Dec"
3871
3921
  ][n.getMonth()]} ${n.getFullYear()}`;
3872
3922
  }
3873
- Qr(() => Oi({ type: "modal:close" }));
3923
+ Qr(() => Ei({ type: "modal:close" }));
3874
3924
  function ie() {
3875
- Oi({ type: "modal:close" }), t.onClose();
3925
+ Ei({ type: "modal:close" }), t.onClose();
3876
3926
  }
3877
3927
  function ae() {
3878
3928
  ie();
@@ -3890,13 +3940,17 @@ function io(e, t) {
3890
3940
  n(r), se(r), n().items.length === 0 && ie();
3891
3941
  }
3892
3942
  function se(e) {
3893
- Oi({
3943
+ Ei({
3894
3944
  type: "cart:updated",
3895
3945
  cart: e
3896
3946
  });
3897
3947
  }
3898
3948
  async function ce() {
3899
3949
  if (B(p, !0), !q(b)?.isValid() || !q(d)) return;
3950
+ if (q(o)) {
3951
+ B(i, "payment");
3952
+ return;
3953
+ }
3900
3954
  let e = q(b).getContact();
3901
3955
  B(h, !0), B(m, null);
3902
3956
  try {
@@ -3912,68 +3966,84 @@ function io(e, t) {
3912
3966
  B(i, "contact");
3913
3967
  return;
3914
3968
  }
3915
- if (e.status === "expired") {
3916
- B(c, !0), B(u, !1), B(i, "result");
3969
+ if (e.status === "expired" || e.status === "error") {
3970
+ B(c, "notCharged"), B(u, !1), B(i, "result");
3917
3971
  return;
3918
3972
  }
3919
- B(u, !0), B(i, "result");
3920
- for (let e = 1; e <= 10; e++) try {
3973
+ B(i, "result"), await de();
3974
+ }
3975
+ async function ue() {
3976
+ try {
3921
3977
  B(s, await t.api.confirmCart(), !0);
3922
3978
  let e = q(s).items.every((e) => e.statusCode >= 200 && e.statusCode < 300);
3923
- B(c, !e), B(u, !1), e && (Oi({ type: "modal:close" }), t.onOrderConfirmed());
3924
- return;
3925
- } catch (t) {
3926
- if (!(t instanceof gi && t.status === 402) || e === 10) {
3927
- B(c, !0), B(u, !1);
3979
+ return B(c, e ? "success" : "partial", !0), e && t.onOrderConfirmed(), "settled";
3980
+ } catch (e) {
3981
+ return e instanceof gi && (e.status === 402 || e.status === 409) ? "awaitingWebhook" : (B(c, "pending"), "settled");
3982
+ }
3983
+ }
3984
+ async function de() {
3985
+ B(u, !0), B(c, null);
3986
+ for (let e = 1; e <= 10; e++) {
3987
+ if (await ue() === "settled") {
3988
+ B(u, !1);
3989
+ return;
3990
+ }
3991
+ if (e === 10) {
3992
+ B(c, "pending"), B(u, !1);
3928
3993
  return;
3929
3994
  }
3930
3995
  await new Promise((e) => setTimeout(e, 1500));
3931
3996
  }
3932
3997
  }
3933
- var ue = ro(), de = V(ue), fe = (e) => {
3934
- X(e, Xa());
3935
- }, pe = (e) => {
3936
- {
3937
- let t = /* @__PURE__ */ L(() => q(T)());
3938
- za(e, {
3939
- get checkoutId() {
3940
- return q(o).checkoutId;
3941
- },
3942
- get totalFormatted() {
3943
- return q(t);
3944
- },
3945
- onBack: () => {
3946
- B(i, "contact");
3947
- },
3948
- onClose: ie,
3949
- onPaymentComplete: le
3950
- });
3951
- }
3952
- }, me = (e) => {
3998
+ async function fe() {
3999
+ B(u, !0), await ue() === "awaitingWebhook" && B(c, "pending"), B(u, !1);
4000
+ }
4001
+ let pe = /* @__PURE__ */ L(() => q(u) ? null : q(c) === "success" ? { outcome: "successful" } : q(c) === "pending" ? { outcome: "pending" } : q(c) === "partial" ? {
4002
+ outcome: "failed",
4003
+ resultDescription: "Your payment succeeded, but we couldn't confirm every item in your booking. Please contact us with your order details.",
4004
+ retryPayment: !1
4005
+ } : q(c) === "notCharged" ? {
4006
+ outcome: "failed",
4007
+ resultDescription: "Your payment could not be completed. Please try again.",
4008
+ retryPayment: !0
4009
+ } : null);
4010
+ var me = uo(), he = V(me), ge = (e) => {
4011
+ X(e, ro());
4012
+ }, _e = (e) => {
4013
+ Ua(e, {
4014
+ get checkoutId() {
4015
+ return q(o).checkoutId;
4016
+ },
4017
+ get entityId() {
4018
+ return q(o).entityId;
4019
+ },
4020
+ onPaymentComplete: le
4021
+ });
4022
+ }, ve = (e) => {
3953
4023
  {
3954
- let n = /* @__PURE__ */ L(() => q(u) ? null : q(c) ? {
3955
- outcome: "failed",
3956
- resultDescription: "Something went wrong confirming your order. Please try again."
3957
- } : { outcome: "successful" });
3958
- Ga(e, {
4024
+ let t = /* @__PURE__ */ L(() => q(c) === "pending" ? fe : void 0);
4025
+ Qa(e, {
3959
4026
  get status() {
3960
- return q(n);
4027
+ return q(pe);
3961
4028
  },
3962
4029
  get verifying() {
3963
4030
  return q(u);
3964
4031
  },
3965
4032
  onDone: () => {
3966
- Oi({ type: "modal:close" }), t.onOrderConfirmed();
4033
+ Ei({ type: "modal:close" });
3967
4034
  },
3968
4035
  onRetry: () => {
3969
4036
  B(i, "payment");
4037
+ },
4038
+ get onCheckAgain() {
4039
+ return q(t);
3970
4040
  }
3971
4041
  });
3972
4042
  }
3973
- }, he = (e) => {
4043
+ }, ye = (e) => {
3974
4044
  {
3975
4045
  let n = /* @__PURE__ */ L(() => q(x).get(q(a).productId));
3976
- Ya(e, {
4046
+ no(e, {
3977
4047
  get cartItem() {
3978
4048
  return q(a);
3979
4049
  },
@@ -3996,21 +4066,22 @@ function io(e, t) {
3996
4066
  B(i, "cart");
3997
4067
  },
3998
4068
  onClose: ie,
3999
- onUpdated: O
4069
+ onUpdated: O,
4070
+ onPriceChanged: S
4000
4071
  });
4001
4072
  }
4002
- }, ge = /* @__PURE__ */ L(() => q(i) === "edit" && q(a) && q(x).get(q(a).productId)), _e = (e) => {
4003
- var t = Qa(), n = H(t), r = V(n), a = U(r, 6);
4073
+ }, be = /* @__PURE__ */ L(() => q(i) === "edit" && q(a) && q(x).get(q(a).productId)), xe = (e) => {
4074
+ var t = ao(), n = H(t), r = V(n), a = U(r, 6);
4004
4075
  M(n);
4005
4076
  var o = U(n, 2), s = V(o), c = (e) => {
4006
- var t = Za(), n = V(t, !0);
4077
+ var t = io(), n = V(t, !0);
4007
4078
  M(t), W(() => Z(n, q(m))), X(e, t);
4008
4079
  };
4009
4080
  Q(s, (e) => {
4010
4081
  q(m) && e(c);
4011
4082
  });
4012
4083
  var l = U(s, 4);
4013
- Yr(Oa(l, {
4084
+ Yr(Ma(l, {
4014
4085
  get hasAttemptedSubmit() {
4015
4086
  return q(p);
4016
4087
  },
@@ -4040,7 +4111,7 @@ function io(e, t) {
4040
4111
  }
4041
4112
  }), (e) => B(b, e, !0), () => q(b));
4042
4113
  var u = U(l, 2);
4043
- Aa(V(u), {
4114
+ Pa(V(u), {
4044
4115
  get privacyAccepted() {
4045
4116
  return q(d);
4046
4117
  },
@@ -4065,11 +4136,11 @@ function io(e, t) {
4065
4136
  }, [() => q(T)()]), J("click", r, () => {
4066
4137
  B(i, "cart");
4067
4138
  }), J("click", a, ie), J("click", w, ce), X(e, t);
4068
- }, ve = (e) => {
4069
- var t = no(), r = H(t), a = U(V(r), 4);
4139
+ }, Se = (e) => {
4140
+ var t = lo(), r = H(t), a = U(V(r), 4);
4070
4141
  {
4071
4142
  let e = /* @__PURE__ */ L(() => q(ee)());
4072
- Ma(a, { get expiresAt() {
4143
+ Ia(a, { get expiresAt() {
4073
4144
  return q(e);
4074
4145
  } });
4075
4146
  }
@@ -4077,12 +4148,12 @@ function io(e, t) {
4077
4148
  M(r);
4078
4149
  var s = U(r, 2), c = V(s);
4079
4150
  Er(c, 17, () => n().items, $, (e, t) => {
4080
- var n = to(), r = V(n), i = V(r), a = V(i, !0);
4151
+ var n = co(), r = V(n), i = V(r), a = V(i, !0);
4081
4152
  M(i);
4082
4153
  var o = U(i, 2), s = V(o, !0);
4083
4154
  M(o), M(r);
4084
4155
  var c = U(r, 2), l = V(c), u = (e) => {
4085
- var n = $a(), r = V(n, !0);
4156
+ var n = oo(), r = V(n, !0);
4086
4157
  M(n), W((e) => Z(r, e), [() => re(q(t))]), X(e, n);
4087
4158
  }, d = /* @__PURE__ */ L(() => re(q(t)));
4088
4159
  Q(l, (e) => {
@@ -4092,19 +4163,19 @@ function io(e, t) {
4092
4163
  M(f), M(c);
4093
4164
  var m = U(c, 4);
4094
4165
  Er(m, 21, () => E(q(t)), $, (e, n) => {
4095
- var r = eo(), i = V(r), a = V(i);
4166
+ var r = so(), i = V(r), a = V(i);
4096
4167
  M(i);
4097
4168
  var o = U(i, 2), s = V(o, !0);
4098
4169
  M(o), M(r), W((e) => {
4099
4170
  Z(a, `${q(n).title ?? ""} × ${q(n).quantity ?? ""}`), Z(s, e);
4100
- }, [() => Ai(q(n).linePrice, q(t).currencyCode, 2, 0)]), X(e, r);
4171
+ }, [() => Pi(q(n).linePrice, q(t).currencyCode, 2, 0)]), X(e, r);
4101
4172
  }), M(m);
4102
4173
  var h = U(m, 2), g = V(h), _ = U(g, 2);
4103
4174
  M(h), M(n), W((e, t, n) => {
4104
4175
  Z(a, e), Z(s, t), Z(p, n);
4105
4176
  }, [
4106
4177
  () => te(q(t)),
4107
- () => Ai(q(t).amount, q(t).currencyCode, 2, 0),
4178
+ () => Pi(q(t).amount, q(t).currencyCode, 2, 0),
4108
4179
  () => ne(q(t))
4109
4180
  ]), J("click", g, () => D(q(t))), J("click", _, () => oe(q(t))), X(e, n);
4110
4181
  });
@@ -4115,17 +4186,17 @@ function io(e, t) {
4115
4186
  B(i, "contact");
4116
4187
  }), X(e, t);
4117
4188
  };
4118
- Q(de, (e) => {
4119
- q(l) ? e(fe) : q(i) === "payment" && q(o) ? e(pe, 1) : q(i) === "result" ? e(me, 2) : q(ge) ? e(he, 3) : q(i) === "contact" ? e(_e, 4) : e(ve, -1);
4120
- }), M(ue), X(e, ue), F();
4189
+ Q(he, (e) => {
4190
+ q(l) ? e(ge) : q(i) === "payment" && q(o) ? e(_e, 1) : q(i) === "result" ? e(ve, 2) : q(be) ? e(ye, 3) : q(i) === "contact" ? e(xe, 4) : e(Se, -1);
4191
+ }), M(me), X(e, me), F();
4121
4192
  }
4122
4193
  cr(["click"]);
4123
4194
  //#endregion
4124
4195
  //#region src/lib/Checkout.svelte
4125
- var ao = /* @__PURE__ */ Y("<div class=\"loading-center\" style=\"height:100vh\"><div class=\"spinner\"></div></div>"), oo = /* @__PURE__ */ Y("<div class=\"loading-center\" style=\"height:100vh;color:var(--bw-color-text-secondary)\">No items in cart.</div>"), so = /* @__PURE__ */ Y("<div class=\"bw-widget svelte-5e515v\"><!></div>");
4126
- function co(e, t) {
4196
+ var po = /* @__PURE__ */ Y("<div class=\"loading-center\" style=\"height:100vh\"><div class=\"spinner\"></div></div>"), mo = /* @__PURE__ */ Y("<div class=\"loading-center\" style=\"height:100vh;color:var(--bw-color-text-secondary)\">No items in cart.</div>"), ho = /* @__PURE__ */ Y("<div class=\"bw-widget svelte-5e515v\"><!></div>");
4197
+ function go(e, t) {
4127
4198
  P(t, !0);
4128
- let n = Xr(t, "wizardPages", 3, Ci), r = Xr(t, "autoSelectSingleTimeSlot", 3, !1), i = /* @__PURE__ */ L(() => t.editPages ?? n()), a = /* @__PURE__ */ z(null), o = /* @__PURE__ */ z(!0);
4199
+ let n = Xr(t, "wizardPages", 3, Oi), r = Xr(t, "autoSelectSingleTimeSlot", 3, !1), i = /* @__PURE__ */ L(() => t.editPages ?? n()), a = /* @__PURE__ */ z(null), o = /* @__PURE__ */ z(!0);
4129
4200
  async function s() {
4130
4201
  try {
4131
4202
  B(a, await t.api.getCart(), !0);
@@ -4134,21 +4205,13 @@ function co(e, t) {
4134
4205
  }
4135
4206
  B(o, !1);
4136
4207
  }
4137
- s();
4138
- function c(e) {
4139
- let t;
4140
- try {
4141
- t = typeof e.data == "string" ? JSON.parse(e.data) : e.data;
4142
- } catch {
4143
- return;
4144
- }
4145
- t?.type === "cart:updated" && "cart" in t && B(a, t.cart, !0);
4146
- }
4147
- un(() => (window.addEventListener("message", c), () => window.removeEventListener("message", c)));
4148
- var l = so(), u = V(l), d = (e) => {
4149
- X(e, ao());
4150
- }, f = (e) => {
4151
- io(e, {
4208
+ s(), un(() => Di((e) => {
4209
+ e.type === "cart:updated" && "cart" in e && B(a, e.cart, !0);
4210
+ }));
4211
+ var c = ho(), l = V(c), u = (e) => {
4212
+ X(e, po());
4213
+ }, d = (e) => {
4214
+ fo(e, {
4152
4215
  get cart() {
4153
4216
  return q(a);
4154
4217
  },
@@ -4164,39 +4227,39 @@ function co(e, t) {
4164
4227
  get autoSelectSingleTimeSlot() {
4165
4228
  return r();
4166
4229
  },
4167
- onClose: () => Oi({ type: "modal:close" }),
4230
+ onClose: () => Ei({ type: "modal:close" }),
4168
4231
  onOrderConfirmed: () => {
4169
- let e = q(a).items.reduce((e, t) => e + t.amount, 0), t = q(a).items[0]?.currencyCode ?? "ZAR";
4170
- Oi({
4232
+ let e = q(a).items.reduce((e, t) => e + t.amount, 0), n = q(a).items[0]?.currencyCode ?? "ZAR";
4233
+ Ei({
4171
4234
  type: "order:complete",
4172
4235
  cartToken: q(a).cartToken,
4173
4236
  value: e,
4174
- currency: t
4175
- });
4237
+ currency: n
4238
+ }), t.cartManager?.reset();
4176
4239
  }
4177
4240
  });
4178
- }, p = (e) => {
4179
- X(e, oo());
4241
+ }, f = (e) => {
4242
+ X(e, mo());
4180
4243
  };
4181
- Q(u, (e) => {
4182
- q(o) ? e(d) : q(a) && q(a).items.length > 0 ? e(f, 1) : e(p, -1);
4183
- }), M(l), X(e, l), F();
4244
+ Q(l, (e) => {
4245
+ q(o) ? e(u) : q(a) && q(a).items.length > 0 ? e(d, 1) : e(f, -1);
4246
+ }), M(c), X(e, c), F();
4184
4247
  }
4185
4248
  //#endregion
4186
4249
  //#region src/lib/CartBarView.svelte
4187
- var lo = /* @__PURE__ */ Y("<div class=\"cart-bar bw-widget svelte-1xt0fxx\"><div class=\"cart-info svelte-1xt0fxx\"><span class=\"item-count svelte-1xt0fxx\"> <!></span> <span class=\"total svelte-1xt0fxx\"> </span></div> <button class=\"btn btn-primary\">Checkout &rarr;</button></div>");
4188
- function uo(e, t) {
4250
+ var _o = /* @__PURE__ */ Y("<div class=\"cart-bar bw-widget svelte-1xt0fxx\"><div class=\"cart-info svelte-1xt0fxx\"><span class=\"item-count svelte-1xt0fxx\"> <!></span> <span class=\"total svelte-1xt0fxx\"> </span></div> <button class=\"btn btn-primary\">Checkout &rarr;</button></div>");
4251
+ function vo(e, t) {
4189
4252
  P(t, !0);
4190
4253
  let n = /* @__PURE__ */ L(() => t.cart?.items.length ?? 0), r = /* @__PURE__ */ L(() => () => {
4191
4254
  if (!t.cart || t.cart.items.length === 0) return "";
4192
4255
  let e = t.cart.items[0].currencyCode;
4193
- return Ai(t.cart.items.reduce((e, t) => e + t.amount, 0), e, 2, 2);
4256
+ return Pi(t.cart.items.reduce((e, t) => e + t.amount, 0), e, 2, 2);
4194
4257
  }), i = /* @__PURE__ */ L(() => () => t.cart ? new Date(t.cart.absoluteExpiresAt) : /* @__PURE__ */ new Date());
4195
4258
  var a = gr(), o = H(a), s = (e) => {
4196
- var t = lo(), a = V(t), o = V(a), s = V(o), c = U(s);
4259
+ var t = _o(), a = V(t), o = V(a), s = V(o), c = U(s);
4197
4260
  {
4198
4261
  let e = /* @__PURE__ */ L(() => q(i)());
4199
- Ma(c, { get expiresAt() {
4262
+ Ia(c, { get expiresAt() {
4200
4263
  return q(e);
4201
4264
  } });
4202
4265
  }
@@ -4206,7 +4269,7 @@ function uo(e, t) {
4206
4269
  var d = U(a, 2);
4207
4270
  M(t), W((e) => {
4208
4271
  Z(s, `${q(n) === 1 ? "1 item" : `${q(n)} items`} `), Z(u, e);
4209
- }, [() => q(r)()]), J("click", d, () => Oi({ type: "modal:open" })), X(e, t);
4272
+ }, [() => q(r)()]), J("click", d, () => Ei({ type: "modal:open" })), X(e, t);
4210
4273
  };
4211
4274
  Q(o, (e) => {
4212
4275
  t.cart && t.cart.items.length > 0 && e(s);
@@ -4215,7 +4278,7 @@ function uo(e, t) {
4215
4278
  cr(["click"]);
4216
4279
  //#endregion
4217
4280
  //#region src/lib/CartBar.svelte
4218
- function fo(e, t) {
4281
+ function yo(e, t) {
4219
4282
  P(t, !0);
4220
4283
  let n = /* @__PURE__ */ z(null), r = /* @__PURE__ */ z(!0);
4221
4284
  async function i() {
@@ -4226,30 +4289,22 @@ function fo(e, t) {
4226
4289
  }
4227
4290
  B(r, !1);
4228
4291
  }
4229
- i();
4230
- function a(e) {
4231
- let t;
4232
- try {
4233
- t = typeof e.data == "string" ? JSON.parse(e.data) : e.data;
4234
- } catch {
4235
- return;
4236
- }
4237
- t?.type === "cart:updated" && "cart" in t && B(n, t.cart, !0);
4238
- }
4239
- un(() => (window.addEventListener("message", a), () => window.removeEventListener("message", a)));
4240
- var o = gr(), s = H(o), c = (e) => {
4241
- uo(e, { get cart() {
4292
+ i(), un(() => Di((e) => {
4293
+ e.type === "cart:updated" && "cart" in e && B(n, e.cart, !0);
4294
+ }));
4295
+ var a = gr(), o = H(a), s = (e) => {
4296
+ vo(e, { get cart() {
4242
4297
  return q(n);
4243
4298
  } });
4244
4299
  };
4245
- Q(s, (e) => {
4246
- q(r) || e(c);
4247
- }), X(e, o), F();
4300
+ Q(o, (e) => {
4301
+ q(r) || e(s);
4302
+ }), X(e, a), F();
4248
4303
  }
4249
4304
  //#endregion
4250
4305
  //#region src/lib/CartOverviewButton.svelte
4251
- var po = /* @__PURE__ */ Y("<button class=\"cart-overview-btn bw-widget svelte-16bjfem\"><svg class=\"cart-icon svelte-16bjfem\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"9\" cy=\"21\" r=\"1\"></circle><circle cx=\"20\" cy=\"21\" r=\"1\"></circle><path d=\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"></path></svg> <span class=\"cart-badge svelte-16bjfem\"> </span> <span class=\"cart-timer svelte-16bjfem\"> </span></button>");
4252
- function mo(e, t) {
4306
+ var bo = /* @__PURE__ */ Y("<button class=\"cart-overview-btn bw-widget svelte-16bjfem\"><svg class=\"cart-icon svelte-16bjfem\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"9\" cy=\"21\" r=\"1\"></circle><circle cx=\"20\" cy=\"21\" r=\"1\"></circle><path d=\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"></path></svg> <span class=\"cart-badge svelte-16bjfem\"> </span> <span class=\"cart-timer svelte-16bjfem\"> </span></button>");
4307
+ function xo(e, t) {
4253
4308
  P(t, !0);
4254
4309
  let n = /* @__PURE__ */ z(null), r = /* @__PURE__ */ z("");
4255
4310
  async function i() {
@@ -4259,18 +4314,10 @@ function mo(e, t) {
4259
4314
  B(n, null);
4260
4315
  }
4261
4316
  }
4262
- i();
4263
- function a(e) {
4264
- let t;
4265
- try {
4266
- t = typeof e.data == "string" ? JSON.parse(e.data) : e.data;
4267
- } catch {
4268
- return;
4269
- }
4270
- t?.type === "cart:updated" && "cart" in t && B(n, t.cart, !0);
4271
- }
4272
- un(() => (window.addEventListener("message", a), () => window.removeEventListener("message", a)));
4273
- function o() {
4317
+ i(), un(() => Di((e) => {
4318
+ e.type === "cart:updated" && "cart" in e && B(n, e.cart, !0);
4319
+ }));
4320
+ function a() {
4274
4321
  if (!q(n)) {
4275
4322
  B(r, "0:00");
4276
4323
  return;
@@ -4278,28 +4325,28 @@ function mo(e, t) {
4278
4325
  let e = Math.max(0, new Date(q(n).absoluteExpiresAt).getTime() - Date.now()), t = Math.floor(e / 6e4), i = Math.floor(e % 6e4 / 1e3);
4279
4326
  B(r, `${t}:${String(i).padStart(2, "0")}`);
4280
4327
  }
4281
- o();
4282
- let s = setInterval(o, 1e3);
4283
- Qr(() => clearInterval(s));
4284
- let c = /* @__PURE__ */ L(() => q(n)?.items.length ?? 0);
4285
- var l = gr(), u = H(l), d = (e) => {
4286
- var t = po(), n = U(V(t), 2), i = V(n, !0);
4328
+ a();
4329
+ let o = setInterval(a, 1e3);
4330
+ Qr(() => clearInterval(o));
4331
+ let s = /* @__PURE__ */ L(() => q(n)?.items.length ?? 0);
4332
+ var c = gr(), l = H(c), u = (e) => {
4333
+ var t = bo(), n = U(V(t), 2), i = V(n, !0);
4287
4334
  M(n);
4288
4335
  var a = U(n, 2), o = V(a, !0);
4289
4336
  M(a), M(t), W(() => {
4290
- Z(i, q(c)), Z(o, q(r));
4291
- }), J("click", t, () => Oi({ type: "modal:open" })), X(e, t);
4337
+ Z(i, q(s)), Z(o, q(r));
4338
+ }), J("click", t, () => Ei({ type: "modal:open" })), X(e, t);
4292
4339
  };
4293
- Q(u, (e) => {
4294
- q(n) && q(n).items.length > 0 && e(d);
4295
- }), X(e, l), F();
4340
+ Q(l, (e) => {
4341
+ q(n) && q(n).items.length > 0 && e(u);
4342
+ }), X(e, c), F();
4296
4343
  }
4297
4344
  cr(["click"]);
4298
4345
  //#endregion
4299
4346
  //#region src/lib/CartOverview.svelte
4300
- function ho(e, t) {
4347
+ function So(e, t) {
4301
4348
  var n = gr(), r = H(n), i = (e) => {
4302
- mo(e, {
4349
+ xo(e, {
4303
4350
  get api() {
4304
4351
  return t.api;
4305
4352
  },
@@ -4308,7 +4355,7 @@ function ho(e, t) {
4308
4355
  }
4309
4356
  });
4310
4357
  }, a = (e) => {
4311
- fo(e, {
4358
+ yo(e, {
4312
4359
  get api() {
4313
4360
  return t.api;
4314
4361
  },
@@ -4323,18 +4370,18 @@ function ho(e, t) {
4323
4370
  }
4324
4371
  //#endregion
4325
4372
  //#region src/lib/index.ts
4326
- function go(e) {
4327
- let t = new _i(e.apiBaseUrl ?? ""), n = new bi(t), r = new Si(t);
4373
+ function Co(e) {
4374
+ let t = new vi(e.apiBaseUrl ?? ""), n = new xi(t), r = new wi(t);
4328
4375
  return n.startBackgroundRefresh(), {
4329
4376
  api: t,
4330
4377
  sessionManager: n,
4331
4378
  cartManager: r
4332
4379
  };
4333
4380
  }
4334
- async function _o(e, t) {
4335
- let { api: n, sessionManager: r, cartManager: i } = go(t);
4381
+ async function wo(e, t) {
4382
+ let { api: n, sessionManager: r, cartManager: i } = Co(t);
4336
4383
  await r.ensureSession(t.checkoutKey ?? "");
4337
- let a = _r(Ea, {
4384
+ let a = _r(Aa, {
4338
4385
  target: e,
4339
4386
  props: {
4340
4387
  api: n,
@@ -4344,76 +4391,56 @@ async function _o(e, t) {
4344
4391
  autoSelectSingleTimeSlot: t.autoSelectSingleTimeSlot ?? !1,
4345
4392
  onCancel: t.onCancel
4346
4393
  }
4394
+ }), o = Di((e) => {
4395
+ e.type === "cart:change" && t.onCartChange && t.onCartChange({
4396
+ itemCount: e.itemCount ?? 0,
4397
+ cartItemId: e.cartItemId ?? "",
4398
+ totalFormatted: e.totalFormatted ?? ""
4399
+ }), e.type === "cart:updated" && "cart" in e && t.onCartUpdated?.(e.cart);
4347
4400
  });
4348
- function o(e) {
4349
- let n;
4350
- try {
4351
- n = typeof e.data == "string" ? JSON.parse(e.data) : e.data;
4352
- } catch {
4353
- return;
4354
- }
4355
- n?.type && (n.type === "cart:change" && t.onCartChange && t.onCartChange({
4356
- itemCount: n.itemCount ?? 0,
4357
- cartItemId: n.cartItemId ?? "",
4358
- totalFormatted: n.totalFormatted ?? ""
4359
- }), n.type === "cart:updated" && "cart" in n && t.onCartUpdated?.(n.cart));
4360
- }
4361
- return window.addEventListener("message", o), { destroy() {
4362
- window.removeEventListener("message", o), r.stop(), xr(a);
4401
+ return { destroy() {
4402
+ o(), r.stop(), xr(a);
4363
4403
  } };
4364
4404
  }
4365
- async function vo(e, t) {
4366
- let { api: n, sessionManager: r } = go(t);
4405
+ async function To(e, t) {
4406
+ let { api: n, sessionManager: r, cartManager: i } = Co(t);
4367
4407
  await r.ensureSession(t.checkoutKey ?? "");
4368
- let i = _r(co, {
4408
+ let a = _r(go, {
4369
4409
  target: e,
4370
4410
  props: {
4371
4411
  api: n,
4412
+ cartManager: i,
4372
4413
  wizardPages: t.wizardPages,
4373
4414
  editPages: t.editPages,
4374
4415
  autoSelectSingleTimeSlot: t.autoSelectSingleTimeSlot ?? !1
4375
4416
  }
4417
+ }), o = Di((e) => {
4418
+ e.type === "modal:close" && t.onClose && t.onClose(), e.type === "order:complete" && t.onOrderConfirmed && t.onOrderConfirmed({
4419
+ cartToken: e.cartToken ?? "",
4420
+ value: e.value ?? 0,
4421
+ currency: e.currency ?? "ZAR"
4422
+ }), e.type === "cart:updated" && "cart" in e && t.onCartUpdated?.(e.cart);
4376
4423
  });
4377
- function a(e) {
4378
- let n;
4379
- try {
4380
- n = typeof e.data == "string" ? JSON.parse(e.data) : e.data;
4381
- } catch {
4382
- return;
4383
- }
4384
- n?.type && (n.type === "modal:close" && t.onClose && t.onClose(), n.type === "order:complete" && t.onOrderConfirmed && t.onOrderConfirmed({
4385
- cartToken: n.cartToken ?? "",
4386
- value: n.value ?? 0,
4387
- currency: n.currency ?? "ZAR"
4388
- }), n.type === "cart:updated" && "cart" in n && t.onCartUpdated?.(n.cart));
4389
- }
4390
- return window.addEventListener("message", a), { destroy() {
4391
- window.removeEventListener("message", a), r.stop(), xr(i);
4424
+ return { destroy() {
4425
+ o(), r.stop(), xr(a);
4392
4426
  } };
4393
4427
  }
4394
- async function yo(e, t) {
4395
- let { api: n, sessionManager: r, cartManager: i } = go(t);
4428
+ async function Eo(e, t) {
4429
+ let { api: n, sessionManager: r, cartManager: i } = Co(t);
4396
4430
  await r.ensureSession(t.checkoutKey ?? "");
4397
- let a = _r(ho, {
4431
+ let a = _r(So, {
4398
4432
  target: e,
4399
4433
  props: {
4400
4434
  api: n,
4401
4435
  cartManager: i,
4402
4436
  display: t.display ?? "bar"
4403
4437
  }
4438
+ }), o = Di((e) => {
4439
+ e.type === "modal:open" && t.onCheckout && t.onCheckout(), e.type === "cart:updated" && "cart" in e && t.onCartUpdated?.(e.cart);
4404
4440
  });
4405
- function o(e) {
4406
- let n;
4407
- try {
4408
- n = typeof e.data == "string" ? JSON.parse(e.data) : e.data;
4409
- } catch {
4410
- return;
4411
- }
4412
- n?.type && (n.type === "modal:open" && t.onCheckout && t.onCheckout(), n.type === "cart:updated" && "cart" in n && t.onCartUpdated?.(n.cart));
4413
- }
4414
- return window.addEventListener("message", o), { destroy() {
4415
- window.removeEventListener("message", o), r.stop(), xr(a);
4441
+ return { destroy() {
4442
+ o(), r.stop(), xr(a);
4416
4443
  } };
4417
4444
  }
4418
4445
  //#endregion
4419
- export { _i as ApiClient, gi as ApiError, fo as CartBar, Si as CartManager, ho as CartOverview, mo as CartOverviewButton, co as Checkout, Ci as DEFAULT_WIZARD_PAGES, bi as SessionManager, Ea as TicketConfigurator, yo as mountCartOverview, vo as mountCheckout, _o as mountConfigurator, Di as resolveEditPages, Ti as resolveWizardPages };
4446
+ export { vi as ApiClient, gi as ApiError, yo as CartBar, wi as CartManager, So as CartOverview, xo as CartOverviewButton, go as Checkout, Oi as DEFAULT_WIZARD_PAGES, xi as SessionManager, Aa as TicketConfigurator, Eo as mountCartOverview, To as mountCheckout, wo as mountConfigurator, Mi as resolveEditPages, Ai as resolveWizardPages };