@getmicdrop/venue-calendar 4.3.57 → 4.3.58

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 (114) hide show
  1. package/dist/AddOnCard-TEUXB3Sd.js +340 -0
  2. package/dist/{ArrowLeftIcon-DjqiKzR8.js → ArrowLeftIcon-C0jreEw8.js} +1 -1
  3. package/dist/{BlockPlaceholder-CgZr2Euq.js → BlockPlaceholder-DdoOD0gZ.js} +1 -1
  4. package/dist/{Calendar-CS_RqyU_.js → Calendar-BWLg7fOl.js} +3 -3
  5. package/dist/{CalendarFoundryView-DKZpskoX.js → CalendarFoundryView-apVO50Ap.js} +73 -75
  6. package/dist/{CalendarIcon-D9Z9YFz6.js → CalendarIcon-BOEpooZq.js} +1 -1
  7. package/dist/CartView-CTL1DQem.js +2293 -0
  8. package/dist/Checkout-B9OHWxzh.js +1933 -0
  9. package/dist/Checkout-D7Cgj12j.js +1076 -0
  10. package/dist/{CheckoutTimer-Ch4McYLj.js → CheckoutTimer-DPNmc1BX.js} +5 -5
  11. package/dist/{ChevronDownIcon-D9I-5bmz.js → ChevronDownIcon-Czxsi1W2.js} +1 -1
  12. package/dist/{CloseIcon-DPdjPdoi.js → CloseIcon-hLh5XXvh.js} +1 -1
  13. package/dist/{CollectionView-BBRXKR7L.js → CollectionView-LFCwHiPj.js} +13 -13
  14. package/dist/{Event-lTxMeEFL.js → Event-C63PLQhq.js} +431 -616
  15. package/dist/EventPage-CyDAwaQF.js +1200 -0
  16. package/dist/{Input-CDw-j5fQ.js → Input-dF1ZPavc.js} +1 -1
  17. package/dist/{MailIcon-C__hyCKr.js → MailIcon-T9SmOpQr.js} +1 -1
  18. package/dist/{PasswordInput-D3Pwparw.js → PasswordInput-B64o-TXR.js} +1 -1
  19. package/dist/{RecommendationsRail-BAdqxvuS.js → RecommendationsRail-Cb_c4ohM.js} +47 -47
  20. package/dist/ScarcityBadge-14VWzOL2.js +145 -0
  21. package/dist/{SeriesPage-iAbX0ZTM.js → SeriesPage-DeALgf5s.js} +3 -3
  22. package/dist/{Spinner-6QTo7mi8.js → Spinner-CW1KZMkc.js} +1 -1
  23. package/dist/{Success-B2T0Pbuw.js → Success-Dcd9bWCn.js} +85 -86
  24. package/dist/{TagIcon-DwWcRiXS.js → TagIcon-C8DU69Jv.js} +1 -1
  25. package/dist/{ViewTicketsEmbed-D8SEO2Zw.js → ViewTicketsEmbed-CWLSFG06.js} +14 -15
  26. package/dist/{WarningCircleIcon-C2fJjhKf.js → WarningCircleIcon-Cj8SHVfz.js} +26 -5
  27. package/dist/{WarningTriIcon-OqM9Rfwq.js → WarningTriIcon-CfCwvwsQ.js} +1 -1
  28. package/dist/__SKIP_NAVIGATION__-AOx8SI54.js +6 -0
  29. package/dist/api/api.cjs +1 -1
  30. package/dist/api/api.mjs +64 -32
  31. package/dist/api/cart-addons.d.ts +61 -0
  32. package/dist/api/index.d.ts +2 -0
  33. package/dist/{api-DMjowaFJ.js → api-Br260RVo.js} +190 -127
  34. package/dist/{constants-DC0xZ-Ja.js → constants-DWS8C09a.js} +3 -0
  35. package/dist/{copyToClipboard-CL9BmJA4.js → copyToClipboard-C_fcBdn4.js} +1 -1
  36. package/dist/{createErrorGate.svelte-DwTTmYou.js → createErrorGate.svelte-jZMaO7KA.js} +1 -1
  37. package/dist/{de-DWVo-yVF.js → de-BEfuIgIj.js} +3 -0
  38. package/dist/{defaultLabels-BaVkGLw4.js → defaultLabels-CqkC-rOG.js} +530 -427
  39. package/dist/{defaults-C6to4-1V.js → defaults-BLhQWNFt.js} +2 -2
  40. package/dist/{es-D2JTgwLx.js → es-Bd4g_HxR.js} +3 -0
  41. package/dist/{event-xgg-eiTq.js → event-DaWMe2IV.js} +1 -1
  42. package/dist/{event-transform-BF1WYBSP.js → event-transform-WnvEyzV-.js} +19 -19
  43. package/dist/{eventStatusStream-8vyVag0u.js → eventStatusStream-DgWemzCE.js} +1 -1
  44. package/dist/{fr-kMyKMhNC.js → fr-Blc79wvV.js} +3 -0
  45. package/dist/{href-DO3HKeJp.js → href-x-W1j8EY.js} +2 -2
  46. package/dist/{i18n-jISDKw5F.js → i18n-DFWp9lQ_.js} +2 -2
  47. package/dist/{i18n-toTFR5-t.js → i18n-DgjCm8g6.js} +93 -93
  48. package/dist/{id-ePSZ9pc6.js → id-DzzsiF4d.js} +3 -0
  49. package/dist/{it-CBG5vN1f.js → it-B4zXRsxu.js} +3 -0
  50. package/dist/{ja-BEOrhLFG.js → ja-eT4_QPKd.js} +3 -0
  51. package/dist/{ko-D8x_4jV4.js → ko-B8Fmrldj.js} +3 -0
  52. package/dist/locales/4.3.58/flow/de.js +1 -0
  53. package/dist/locales/4.3.58/flow/es.js +1 -0
  54. package/dist/locales/4.3.58/flow/fr.js +1 -0
  55. package/dist/locales/4.3.58/flow/id.js +1 -0
  56. package/dist/locales/4.3.58/flow/it.js +1 -0
  57. package/dist/locales/4.3.58/flow/ja.js +1 -0
  58. package/dist/locales/4.3.58/flow/ko.js +1 -0
  59. package/dist/locales/4.3.58/flow/nl.js +1 -0
  60. package/dist/locales/4.3.58/flow/pl.js +1 -0
  61. package/dist/locales/4.3.58/flow/pt-br.js +1 -0
  62. package/dist/locales/4.3.58/flow/tr.js +1 -0
  63. package/dist/locales/4.3.58/flow/zh.js +1 -0
  64. package/dist/{nl-Vc5Wd3re.js → nl-Dnug8LYt.js} +3 -0
  65. package/dist/{orders-FcXWw6b-.js → orders-DlyjunUM.js} +4 -4
  66. package/dist/{pixels-B85kohqd.js → pixels-n1zu1IhF.js} +1 -1
  67. package/dist/{pl-Dnjh6Wpy.js → pl-C3XxoYWF.js} +3 -0
  68. package/dist/{pt-br-BJa34BZo.js → pt-br-Y40SBe4b.js} +3 -0
  69. package/dist/{scarcity-CR1Pa81F.js → scarcity-KJNxIMxj.js} +100 -100
  70. package/dist/{serverTotals-DeOPPRj6.js → serverTotals-Cb7pt5Z-.js} +8 -8
  71. package/dist/{showcase-state-options-BGmvUaQ_.js → showcase-state-options-Ce1_tYvH.js} +1 -1
  72. package/dist/{to-event-card-props-DLOxO2oP.js → to-event-card-props-KoNvp_D9.js} +15 -16
  73. package/dist/{tr-Do7HmDL7.js → tr-2zIJ-vq2.js} +3 -0
  74. package/dist/{utils-DpC4fy4Z.js → utils-VHFV7pBb.js} +2 -2
  75. package/dist/venue-calendar.css +1 -1
  76. package/dist/venue-calendar.es.js +191 -192
  77. package/dist/venue-calendar.iife.js +21 -21
  78. package/dist/venue-calendar.umd.js +53 -53
  79. package/dist/{zh-Dn20V0BT.js → zh-vNYvCXO7.js} +3 -0
  80. package/package.json +220 -220
  81. package/dist/Badge-BsWJrQII.js +0 -108
  82. package/dist/CartView-Dz3Pet0D.js +0 -2294
  83. package/dist/Checkout-Bqe1P7Jr.js +0 -1849
  84. package/dist/Checkout-CFv2AX68.js +0 -1040
  85. package/dist/ClockIcon-C7nkbmvv.js +0 -25
  86. package/dist/EventPage-Cqkelq-1.js +0 -1201
  87. package/dist/ScarcityBadge-BXn6HM_K.js +0 -116
  88. package/dist/liveAnnouncer-D3xVL7qA.js +0 -32
  89. package/dist/locales/4.3.57/flow/de.js +0 -1
  90. package/dist/locales/4.3.57/flow/es.js +0 -1
  91. package/dist/locales/4.3.57/flow/fr.js +0 -1
  92. package/dist/locales/4.3.57/flow/id.js +0 -1
  93. package/dist/locales/4.3.57/flow/it.js +0 -1
  94. package/dist/locales/4.3.57/flow/ja.js +0 -1
  95. package/dist/locales/4.3.57/flow/ko.js +0 -1
  96. package/dist/locales/4.3.57/flow/nl.js +0 -1
  97. package/dist/locales/4.3.57/flow/pl.js +0 -1
  98. package/dist/locales/4.3.57/flow/pt-br.js +0 -1
  99. package/dist/locales/4.3.57/flow/tr.js +0 -1
  100. package/dist/locales/4.3.57/flow/zh.js +0 -1
  101. package/dist/order-totals-5X0jD77w.js +0 -151
  102. package/dist/promo-BNwWtZjP.js +0 -37
  103. /package/dist/locales/{4.3.57 → 4.3.58}/main/de.js +0 -0
  104. /package/dist/locales/{4.3.57 → 4.3.58}/main/es.js +0 -0
  105. /package/dist/locales/{4.3.57 → 4.3.58}/main/fr.js +0 -0
  106. /package/dist/locales/{4.3.57 → 4.3.58}/main/id.js +0 -0
  107. /package/dist/locales/{4.3.57 → 4.3.58}/main/it.js +0 -0
  108. /package/dist/locales/{4.3.57 → 4.3.58}/main/ja.js +0 -0
  109. /package/dist/locales/{4.3.57 → 4.3.58}/main/ko.js +0 -0
  110. /package/dist/locales/{4.3.57 → 4.3.58}/main/nl.js +0 -0
  111. /package/dist/locales/{4.3.57 → 4.3.58}/main/pl.js +0 -0
  112. /package/dist/locales/{4.3.57 → 4.3.58}/main/pt-br.js +0 -0
  113. /package/dist/locales/{4.3.57 → 4.3.58}/main/tr.js +0 -0
  114. /package/dist/locales/{4.3.57 → 4.3.58}/main/zh.js +0 -0
@@ -1,4 +1,4 @@
1
- import { K as e } from "./scarcity-CR1Pa81F.js";
1
+ import { K as e } from "./scarcity-KJNxIMxj.js";
2
2
  import "svelte/internal/disclose-version";
3
3
  import * as t from "svelte/internal/client";
4
4
  //#region node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/phosphor/AddIcon.svelte
@@ -22,8 +22,8 @@ function a(a, o) {
22
22
  }), t.append(a, f), t.pop();
23
23
  }
24
24
  //#endregion
25
- //#region node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/phosphor/WarningCircleIcon.svelte
26
- var o = t.from_svg("<path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-8,56a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm8,104a12,12,0,1,1,12-12A12,12,0,0,1,128,184Z\"></path>"), s = t.from_svg("<circle cx=\"128\" cy=\"128\" r=\"96\" fill=\"none\" stroke=\"currentColor\" stroke-miterlimit=\"10\" stroke-width=\"16\"></circle><line x1=\"128\" y1=\"136\" x2=\"128\" y2=\"80\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"16\"></line><circle cx=\"128\" cy=\"172\" r=\"12\"></circle>", 1), c = t.from_svg("<svg aria-hidden=\"true\" viewBox=\"0 0 256 256\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\"><!></svg>");
25
+ //#region node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/phosphor/ClockIcon.svelte
26
+ var o = t.from_svg("<path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm56,112H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z\"></path>"), s = t.from_svg("<circle cx=\"128\" cy=\"128\" r=\"96\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"16\"></circle><polyline points=\"128 72 128 128 184 128\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"16\"></polyline>", 1), c = t.from_svg("<svg aria-hidden=\"true\" viewBox=\"0 0 256 256\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\"><!></svg>");
27
27
  function l(n, r) {
28
28
  t.push(r, !0);
29
29
  let i = t.prop(r, "size", 3, "24"), a = t.prop(r, "color", 3, "currentColor"), l = t.prop(r, "class", 3, ""), u = e(), d = t.derived(() => r.weight ?? u?.weight ?? "regular");
@@ -34,7 +34,7 @@ function l(n, r) {
34
34
  t.append(e, n);
35
35
  }, g = (e) => {
36
36
  var n = s();
37
- t.next(2), t.append(e, n);
37
+ t.next(), t.append(e, n);
38
38
  };
39
39
  t.if(m, (e) => {
40
40
  t.get(d) === "fill" ? e(h) : e(g, -1);
@@ -43,4 +43,25 @@ function l(n, r) {
43
43
  }), t.append(n, f), t.pop();
44
44
  }
45
45
  //#endregion
46
- export { a as n, l as t };
46
+ //#region node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/phosphor/WarningCircleIcon.svelte
47
+ var u = t.from_svg("<path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-8,56a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm8,104a12,12,0,1,1,12-12A12,12,0,0,1,128,184Z\"></path>"), d = t.from_svg("<circle cx=\"128\" cy=\"128\" r=\"96\" fill=\"none\" stroke=\"currentColor\" stroke-miterlimit=\"10\" stroke-width=\"16\"></circle><line x1=\"128\" y1=\"136\" x2=\"128\" y2=\"80\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"16\"></line><circle cx=\"128\" cy=\"172\" r=\"12\"></circle>", 1), f = t.from_svg("<svg aria-hidden=\"true\" viewBox=\"0 0 256 256\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\"><!></svg>");
48
+ function p(n, r) {
49
+ t.push(r, !0);
50
+ let i = t.prop(r, "size", 3, "24"), a = t.prop(r, "color", 3, "currentColor"), o = t.prop(r, "class", 3, ""), s = e(), c = t.derived(() => r.weight ?? s?.weight ?? "regular");
51
+ var l = f();
52
+ let p;
53
+ var m = t.child(l), h = (e) => {
54
+ var n = u();
55
+ t.append(e, n);
56
+ }, g = (e) => {
57
+ var n = d();
58
+ t.next(2), t.append(e, n);
59
+ };
60
+ t.if(m, (e) => {
61
+ t.get(c) === "fill" ? e(h) : e(g, -1);
62
+ }), t.reset(l), t.template_effect(() => {
63
+ t.set_class(l, 0, t.clsx(o())), t.set_attribute(l, "width", i()), t.set_attribute(l, "height", i()), p = t.set_style(l, "", p, { color: a() === "currentColor" ? void 0 : a() });
64
+ }), t.append(n, l), t.pop();
65
+ }
66
+ //#endregion
67
+ export { l as n, a as r, p as t };
@@ -1,4 +1,4 @@
1
- import { K as e } from "./scarcity-CR1Pa81F.js";
1
+ import { K as e } from "./scarcity-KJNxIMxj.js";
2
2
  import "svelte/internal/disclose-version";
3
3
  import * as t from "svelte/internal/client";
4
4
  //#region node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/phosphor/WarningTriIcon.svelte
@@ -0,0 +1,6 @@
1
+ //#region __SKIP_NAVIGATION__
2
+ function e(e, t) {
3
+ typeof window < "u" && window.location && (t?.replaceState ? window.history.replaceState({}, "", e) : window.location.href = e);
4
+ }
5
+ //#endregion
6
+ export { e as t };
package/dist/api/api.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@getmicdrop/svelte-components/utils/logger"),t=require("@getmicdrop/svelte-components/errors"),n=require("@getmicdrop/svelte-components"),r=require("@getmicdrop/svelte-components/datetime"),i=require("@getmicdrop/svelte-components/transforms");(0,e.createLogger)(`VC:config`,{enabled:!0});var a=(0,e.createLogger)(`VC`),o=new Set;function s(e){if(e)for(let t of o)try{t(e)}catch{}}var c=`ABORTED`;function l(e,t){let n=t||void 0;return n?{...e,"X-Widget-Key":n}:e}function u(e,t){let n=`HTTP ${t}`;if(!e||typeof e!=`object`)return{message:n};let r=e,i=r.error&&typeof r.error==`object`?r.error:null,a=typeof r.code==`string`?r.code:typeof i?.code==`string`?i.code:void 0;return{message:typeof r.error==`string`?r.error:typeof i?.message==`string`?i.message:typeof r.message==`string`?r.message:n,code:a}}var d=class extends Error{code;statusCode;constructor(e,t,n){super(e),this.name=`ApiRequestError`,this.code=t,this.statusCode=n}},f={baseUrl:`https://get-micdrop.com`,timeout:3e4,retries:2,retryDelay:500,onError:e=>a.error(`API Error:`,e)};function p(e){f={...f,...e}}function m(){return{...f}}function h(){return`${f.baseUrl}/api/v2/public`}function g(){return`${f.baseUrl}/api/public`}function _(){return`${f.baseUrl}/api/orders/v2/public`}async function v(){return``}var ee=e=>new Promise(t=>setTimeout(t,e));async function te(e,t,n){let r=(t.method||`GET`).toUpperCase(),i=r===`GET`||r===`HEAD`?n.retries+1:1,a;for(let r=1;r<=i;r++){let o=new AbortController,s=setTimeout(()=>o.abort(),n.timeout),c=t.signal,l;c&&(c.aborted?o.abort():(l=()=>o.abort(),c.addEventListener(`abort`,l,{once:!0})));try{let n=await fetch(e,{...t,signal:o.signal});if(n.status>=500&&r<i)a=Error(`HTTP ${n.status}`);else return n}catch(e){if(a=e,c?.aborted)throw e}finally{clearTimeout(s),c&&l&&c.removeEventListener(`abort`,l)}r<i&&await ee(n.retryDelay*2**(r-1))}throw a}async function y(e,t){return x(`GET`,e,void 0,t)}async function b(e,t,n){return x(`POST`,e,t,n)}async function ne(e,t,n){return x(`PUT`,e,t,n)}async function re(e,t){return x(`DELETE`,e,void 0,t)}async function x(e,t,n,r){let i=t.startsWith(`http`)||t.startsWith(`/api/`)?t:`${h()}${t}`,{widgetKey:a,suppressOnError:o,headers:p,...m}=r??{},g=e=>{o||f.onError(e)};try{let t=await te(i,{method:e,headers:l({"Content-Type":`application/json`,...p},a),body:n===void 0?void 0:JSON.stringify(n),...m},f);if(!t.ok){let{message:e,code:n}=u(await t.json().catch(()=>({})),t.status);return g(new d(e,n,t.status)),s(n),{success:!1,error:e,errorCode:n,statusCode:t.status}}return{success:!0,data:await t.json(),statusCode:t.status}}catch(e){if(r?.signal?.aborted)return{success:!1,error:`Request aborted`,errorCode:c,aborted:!0};let t=e instanceof Error?e.name===`AbortError`?`Request timed out`:e.message:`Unknown error`;return g(e instanceof Error?e:Error(t)),{success:!1,error:t}}}async function S(e,t){try{let n=e.startsWith(f.baseUrl),{widgetKey:r,...i}=t??{},o=await te(e,{...i,...n?{headers:l(i.headers,r)}:{}},f);if(!o.ok){let e=await o.json().catch(()=>({}));return a.error(`API request failed: ${o.status}`,e),null}return o.json()}catch(e){return a.error(`API request error:`,e),null}}function ie(e){let t=e??{};return{ticketID:Number(t.TicketID??t.ticketID??0),quantity:Number(t.Quantity??t.quantity??0),priceAtReservation:Number(t.PriceAtReservation??t.priceAtReservation??0),status:String(t.Status??t.status??``)}}function ae(e){let t=e??{},r=t.Amount??t.amount,i=Number(r);return{giftCardId:Number(t.GiftCardID??t.giftCardId??0),maskedCode:String(t.MaskedCode??t.maskedCode??``),amount:r==null||!Number.isFinite(i)?null:(0,n.centsToDollars)((0,n.toCents)(i))}}function oe(e){let t=e??{};return{uuid:t.UUID??t.uuid??``,eventID:Number(t.EventID??t.eventID??0),status:t.Status??t.status??``,expiresAt:t.ExpiresAt??t.expiresAt??``,reservations:(t.Reservations??t.reservations??[]).map(ie),giftCards:(t.GiftCards??t.giftCards??[]).map(ae)}}var C=[`utmSource`,`utmMedium`,`utmCampaign`,`utmContent`,`utmTerm`],se={utmSource:`utm_source`,utmMedium:`utm_medium`,utmCampaign:`utm_campaign`,utmContent:`utm_content`,utmTerm:`utm_term`},ce=`direct`;function le(e){return e?e.trim().toLowerCase().replace(/\s+/g,`_`):``}function ue(e){let t={};for(let n of C)t[n]=le(e[n]);return t.utmSource||=ce,t}function de(e){let t={};for(let n of C)t[n]=e.get(se[n]);return ue(t)}var w={search:null,referrer:null,pageUrl:null};function fe(){if(typeof window>`u`)return!0;try{return window.self===window.top}catch{return!1}}function pe(){let e=typeof window<`u`,t=fe(),n=w.search??(e?window.location.search:``),r=w.referrer??(typeof document<`u`?document.referrer:``)??``,i=w.pageUrl??(e&&t?window.location.href:``);return{utm:de(new URLSearchParams(n)),referrer:r||``,pageUrl:i||``}}var me=null,he=!1;function ge(){return typeof window<`u`&&typeof window.__tcfapi==`function`}function _e(){return typeof navigator<`u`&&navigator.globalPrivacyControl===!0}function ve(){return me===null?ge()||_e():me}function ye(){return!ve()||he}var be=`micdrop_session_id`,T=`micdrop_visitor_id`,xe=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function E(e){return typeof e==`string`&&xe.test(e)}function D(){let e=typeof crypto<`u`?crypto:void 0;if(e?.randomUUID)return e.randomUUID();let t=new Uint8Array(16);if(e?.getRandomValues)e.getRandomValues(t);else for(let e=0;e<16;e++)t[e]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let n=[];for(let e=0;e<16;e++)n.push(t[e].toString(16).padStart(2,`0`));return`${n[0]}${n[1]}${n[2]}${n[3]}-${n[4]}${n[5]}-${n[6]}${n[7]}-${n[8]}${n[9]}-${n[10]}${n[11]}${n[12]}${n[13]}${n[14]}${n[15]}`}function Se(){let e=(0,n.getSessionStorage)(be);return e||(e=D(),(0,n.setSessionStorage)(be,e)),e}function Ce(e){let t=(0,n.getLocalStorage)(T);if(E(t))return{id:t,createdAt:e,migrated:!0};if(t&&typeof t==`object`){let{id:n,createdAt:r}=t;if(!E(n))return null;let i=typeof r==`number`&&Number.isFinite(r),a=i?Math.min(r,e):e;return{id:n,createdAt:a,migrated:!i||a!==r}}return null}function we(){if(!ye())return null;let e=Date.now(),t=Ce(e);if(t&&e-t.createdAt<34128e6){if(t.migrated){let e={id:t.id,createdAt:t.createdAt};(0,n.setLocalStorage)(T,e)}return t.id}let r=D();return(0,n.setLocalStorage)(T,{id:r,createdAt:e}),r}var Te=`micdrop_attribution`;function Ee(){let e=(0,n.getSessionStorage)(Te);return!e||!e.utm||typeof e.utm.utmSource!=`string`?null:e}function O(){let e=Ee()??pe();return{sessionId:Se(),visitorId:we(),utmSource:e.utm.utmSource,utmMedium:e.utm.utmMedium,utmCampaign:e.utm.utmCampaign,utmContent:e.utm.utmContent,utmTerm:e.utm.utmTerm,referrer:e.referrer||``}}(0,n.createLogger)(`tracking`),$state(0);function De(){return typeof navigator>`u`?null:navigator.language||navigator.userLanguage||null}var k=[[`es`,`es`,`es`],[`fr`,`fr`,`fr`],[`pt-br`,`pt-br`,`pt_br`],[`pt`,`pt-br`,`pt_br`],[`de`,`de`,`de`],[`ja`,`ja`,`ja`],[`zh`,`zh`,`zh`],[`ko`,`ko`,`ko`],[`it`,`it`,`it`],[`nl`,`nl`,`nl`],[`tr`,`tr`,`tr`],[`id`,`id`,`id`],[`pl`,`pl`,`pl`]];Array.from(new Set(k.map(([,e])=>e)));var A=new Map([[`en`,`en`],...k.map(([e])=>[e,e===`pt`||e===`pt-br`?`pt-BR`:e])]);function j(e){let t=e||De();if(!t||typeof t!=`string`)return;let n=t.toLowerCase();return A.get(n)??A.get(n.split(`-`)[0])}var M=(0,e.createLogger)(`VC`);async function N(e,t,n,r,i){let a=j(i);return b(`${_()}/cart/${e}/payment-intent`,{productQuantities:t,...n&&Object.keys(n).length>0?{donationAmounts:n}:{},...r?{firstName:r.firstName,lastName:r.lastName,email:r.email,phone:r.phone??``,questionAnswer:r.questionAnswer??``,mailingList:r.mailingList??!1}:{},attribution:O(),...a?{locale:a}:{}})}async function Oe(e,n,r,i,a){try{let o=await N(e,n,r,i,a);if(!o.success)throw M.error(`Payment intent creation failed:`,o.error),new t.ApiError(o.error||`Failed to create payment intent`,o.statusCode??0,{endpoint:`${_()}/cart/${e}/payment-intent`,method:`POST`});return M.debug(`Payment intent created:`,o.data),o.data}catch(e){return M.error(`createPaymentIntent error:`,e),null}}var ke=`VALIDATION_FAILED`;async function Ae(e,t,n,r,i){let a;try{a=await N(e,t,n,r,i)}catch(e){return M.error(`submitCheckoutAnswers error:`,e),{refusal:null}}return a.success?{refusal:null,clientSecret:a.data?.client_secret}:a.errorCode===ke&&a.error?(M.debug(`Checkout answers refused:`,a.error),{refusal:a.error}):(M.error(`Checkout answers call failed:`,a.error),{refusal:null})}async function je(e,t){if(!e)return null;try{let n=await y(`${_()}/cart/${e}`);if(!n.success)return null;let{uuid:r,eventID:i,status:a,expiresAt:o,reservations:s,giftCards:c}=oe(n.data);return a!==`reserved`&&a!==`active`||t!==void 0&&i!==Number(t)?null:{uuid:r,eventID:i,status:a,expiresAt:o,reservations:s,giftCards:c}}catch(e){return M.error(`getCartByUUID error:`,e),null}}async function Me(e,t,n){try{let r={};for(let[e,n]of Object.entries(t)){let t=typeof e==`number`?e:parseInt(e,10);!Number.isNaN(t)&&n>0&&(r[t]=n)}let i={};if(n)for(let[e,t]of Object.entries(n)){let n=typeof e==`number`?e:parseInt(e,10);!Number.isNaN(n)&&t>0&&(i[n]=t)}let a=await fetch(`${_()}/cart/${e}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({quantities:r,...Object.keys(i).length>0?{donationAmounts:i}:{}})});if(!a.ok){let e=await a.json().catch(()=>({}));return M.error(`Cart update failed:`,e),!1}return!0}catch(e){return M.error(`updateCartQuantities error:`,e),!1}}async function Ne(e){try{let t=await b(`${h()}/orders/complete/${e}`);return t.success?{success:!0,message:t.data?.message}:{success:!1,error:t.error||`Failed to complete reservation`}}catch(e){return M.error(`Error completing reservation:`,e),{success:!1,error:`Network error completing reservation`}}}async function Pe(e){try{let t=await b(`${h()}/orders/cancel/${e}`);return t.success?{success:!0,message:t.data?.message}:{success:!1,error:t.error||`Failed to cancel reservation`}}catch(e){return M.error(`Error cancelling reservation:`,e),{success:!1,error:`Network error cancelling reservation`}}}async function Fe(e,t){try{let n=await b(`${h()}/orders/create`,{eventID:e,promoCode:t,attribution:O()});return n.success?n.data:(M.error(`Create order failed:`,n.error),null)}catch(e){return M.error(`createOrder error:`,e),null}}async function Ie(e){return S(`${h()}/orders/${e}`)}async function Le(e,t,n){let r=j(n);try{let n=await b(`${_()}/validatePaymentIntent/${e}`,{...t,attribution:O(),...r?{locale:r}:{}});if(!n.success)return M.error(`Payment validation failed:`,n.error),{success:!1,status:`failed`,error:n.error||`Payment validation failed`};let i=n.data;return i.eventCanceled||i.eventPostponed?{success:!1,status:`failed`,eventCanceled:i.eventCanceled,eventPostponed:i.eventPostponed}:{success:!0,status:i.status||`Payment succeeded`,orderUUID:i.orderUUID||i.uuid}}catch(e){return M.error(`validatePaymentIntent error:`,e),null}}async function Re(e){try{let t=await b(`${h()}/orders/extend-session`,{orderUuid:e});if(!t.success)return{success:!1,error:t.error||`Failed to extend session`,statusCode:t.statusCode};let n=t.data;return{success:!0,newExpiryTime:n.newExpiryTime,remainingExtensions:n.remainingExtensions}}catch(e){return M.error(`Error extending checkout session:`,e),{success:!1,error:`Network error extending session`}}}async function ze(e){try{let t=await y(`${h()}/orders/session/${e}`);if(!t.success)return{error:t.error||`No active session found`,notFound:t.statusCode===404};let n=t.data;return{expiresAt:n.expiresAt,extensionCount:n.extensionCount,remainingExtensions:n.remainingExtensions,canExtend:n.canExtend,reservationCount:n.reservationCount,eventStatus:n.eventStatus}}catch(e){return M.error(`Error getting session status:`,e),{error:`Network error getting session status`}}}async function Be(e={eventID:``}){try{let t=await b(`${h()}/orders/create`,{...e,attribution:O()});return t.success?t.data?.uuid??null:(M.error(`Order initiation failed:`,t.error),null)}catch(e){return M.error(`initiateOrder error:`,e),null}}async function Ve(e){if(typeof window>`u`)return;let t=le(new URLSearchParams(window.location.search).get(`utm_source`))||`direct`;try{await fetch(`${h()}/utm/${e}/${encodeURIComponent(t)}`)}catch(e){M.error(`UTM tracking failed:`,e)}}var P=(0,e.createLogger)(`VC`);function He(e,t){if(e===404)return`Promo code isn't valid.`;let n=(t??``).toLowerCase();return e===400?n.includes(`not yet active`)?`Promo code doesn't apply.`:n.includes(`expired`)?`Promo code expired.`:n.includes(`limit`)?`Promo code has reached its limit.`:`Promo code isn't valid.`:`Failed to validate code`}async function Ue(e,t){try{if(!t||!t.trim())return{valid:!1,error:`Promo code is required`};let n=await y(`/promo-codes/validate/${e}/${encodeURIComponent(t.trim())}`);if(!n.success)return{valid:!1,error:He(n.statusCode,n.error)};let r=n.data;return{valid:r.valid??!0,revealHiddenTickets:r.revealHiddenTickets,revealTicketIds:r.revealTicketIds,provideDiscount:r.provideDiscount,discountType:r.discountType,amount:r.discount??r.amount,code:r.name||r.code||t,appliesToAllTickets:r.appliesToAllTickets,applyToTicketIds:r.applyToTicketIds}}catch(e){return P.error(`Error validating promo code:`,e),{valid:!1,error:`Network error validating code`}}}async function We(e){try{let t=await y(`/promo-codes/check/${e}`);return!t.success||t.data.hasPromoCodes===!0}catch(e){return P.error(`Error checking promo codes availability:`,e),!0}}async function Ge(e,t,n){try{let r={promoCode:t};n&&Object.keys(n).length>0&&(r.productQuantities=n);let i=await b(`${_()}/cart/${e}/apply-promo`,r);return i.success?{success:!0}:{success:!1,error:i.error||`Failed to apply promo code`}}catch(e){return P.error(`Error applying promo code:`,e),{success:!1,error:`Network error applying code`}}}async function Ke(e){try{let t=await b(`/orders/${e}/remove-promo`);return t.success?{success:!0}:{success:!1,error:t.error||`Failed to remove promo code`}}catch(e){return P.error(`Error removing promo code:`,e),{success:!1,error:`Network error removing code`}}}function qe(e){let t=e??{};return{performers:Array.isArray(t.performers)?t.performers:[],showPerformers:t.showPerformers===!0}}function F(e){return{ok:!0,data:e}}function I(e){return{ok:!1,error:e}}function L(e){return{ok:!1,error:e,notFound:!0}}function Je(e){return e.ok}function Ye(e){return!e.ok}function R(e,t){return e.ok?e.data:t}var z=`/api/v2/public`,B=`/api/orders/v2/public`,Xe=`/api/orders/v2`,Ze=`00000000-0000-0000-0000-000000000000`,V=Ze;`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}${V}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}${V}`,`${B}`,`${B}`,`${B}`,`${B}${V}`,`${B}`,`${B}${V}`,`${B}`,`${B}${V}`,`${B}`,`${B}${V}`,`${B}`,`${B}${V}`,`${B}`,`${B}${V}`,`${B}`,`${B}${V}`,`${B}`,`${B}${V}`,`${Xe}`,`${Xe}`,`${B}`,`${B}`,`${B}`,`${B}`,`${z}`,`${z}${V}`,`${z}`,`${z}`;var H=(0,e.createLogger)(`VC`),U=new Map;async function Qe(e,t=fetch,n){let r=n?`${e}:pw`:String(e);if(t===fetch){let e=U.get(r);if(e)return e}let i=(async()=>{try{let r=await t(n?`${h()}/events/${e}?password=${encodeURIComponent(n)}`:`${h()}/events/${e}`);if(!r.ok)return r.status===404?L(`event_not_found`):(H.error(`Failed to fetch event details: ${r.status}`),I(`event_fetch_failed`));let i=await r.json();return i?F(i):L(`event_not_found`)}catch(e){return H.error(`Error fetching event details:`,e),I(`event_fetch_failed`)}})();return t===fetch&&(U.set(r,i),i.finally(()=>{U.get(r)===i&&U.delete(r)})),i}async function $e(e,t=fetch,n){let r=await Qe(e,t,n);return r.ok?r.data:null}async function W(e,t,n=e=>e){try{let r=await S(e);return r?F(n(r)):(H.error(`Failed to load (${t}): network or server error`),I(t))}catch(e){return H.error(`Error loading (${t}):`,e),I(t)}}function G(e){return Array.isArray(e)?e:[]}async function et(e,t){let n=t?.trim(),r=n?`?promoCode=${encodeURIComponent(n)}`:``;return W(`${h()}/tickets/event/${e}${r}`,`tickets_fetch_failed`,G)}async function tt(e,t){return R(await et(e,t),[])}async function nt(e){return e?W(`${h()}/events/${e}/performers`,`performers_fetch_failed`,e=>qe(e)):(H.warn(`fetchEventPerformers called without eventId`),I(`performers_missing_event_id`))}async function rt(e){return R(await nt(e),{performers:[],showPerformers:!1})}async function it(e){return e?W(`${h()}/venues/organization/${e}`,`venues_fetch_failed`,G):(H.warn(`fetchAllVenues called without orgId`),I(`venues_missing_org_id`))}async function at(e){return R(await it(e),[])}async function ot(e){return e?W(`${h()}/events/venue/${e}`,`venue_events_fetch_failed`,G):(H.warn(`fetchVenueEvents called without venueId`),I(`venue_events_missing_venue_id`))}async function st(e){return R(await ot(e),[])}function ct(e){return Array.isArray(e)?e:Array.isArray(e.events)?e.events:[]}var K=new Map;function lt(e,t,n){if(!n?.fresh){let t=K.get(e);if(t)return t}let r=W(e,t,e=>ct(e));return K.set(e,r),r.finally(()=>{K.get(e)===r&&K.delete(e)}),r}async function ut(e,t,n,r){return lt(`${h()}/events/venue/${e}/month/${t}/${n}`,`month_events_fetch_failed`,r)}async function dt(e,t,n){return R(await ut(e,t,n),[])}async function ft(e,t,n,r){return lt(`${h()}/events/organization/${e}/month/${t}/${n}`,`org_month_events_fetch_failed`,r)}async function pt(e,t,n){return R(await ft(e,t,n),[])}async function mt(e){return W(`${h()}/series/${e}/occurrences`,`series_occurrences_fetch_failed`)}async function ht(e){let t=await mt(e);return t.ok?t.data:null}async function gt(e,t){return W(`${h()}/series/${e}/occurrences?venueId=${t}`,`series_cta_fetch_failed`)}async function _t(e,t){let n=await gt(e,t);return n.ok?n.data:null}async function vt(e,n){try{let r=n?`?slug=${encodeURIComponent(n)}`:``,i=await S(`${h()}/resolve/${encodeURIComponent(String(e))}${r}`);if(!i||!i.type)throw new t.NotFoundError(`entity`,String(e));return i}catch(e){return H.error(`Error resolving public entity:`,e),null}}async function yt(e,n){try{let r=await S(n?`${h()}/collections/${e}?password=${encodeURIComponent(n)}`:`${h()}/collections/${e}`);if(!r)throw new t.NotFoundError(`collection`,String(e));return r}catch(e){return H.error(`Error fetching collection:`,e),null}}async function bt(e,t){try{return(await S(`${h()}/collections/${e}/check-password`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({password:t})}))?.valid===!0}catch(e){return H.error(`Error checking collection password:`,e),!1}}async function xt(e,t){try{let n=await S(`${h()}/events/${e}/check-password`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({password:t})});return typeof n==`boolean`?{valid:n}:{valid:n?.valid===!0}}catch(e){return H.error(`Error checking event password:`,e),{valid:!1}}}async function St(e,t){try{let n=t?`${h()}/events/venue/${t}`:e?`${h()}/venues/organization/${e}`:`${h()}/venues/${Ze}`;return(await fetch(n,{method:`HEAD`})).status<500}catch(e){return H.error(`Network connection test failed:`,e),!1}}var Ct=`get-micdrop.com`;function wt(e){let t=typeof e==`string`?e.trim():``;return t?`https://${encodeURIComponent(t)}.${Ct}`:``}var q=(0,e.createLogger)(`VC`);async function Tt(e){try{if(!e)return q.warn(`getVenue called without venueId`),null;let t=await y(`/venues/${e}`);return t.success?t.data??null:(q.error(`Failed to fetch venue: ${t.statusCode}`),null)}catch(e){return q.error(`Error fetching venue:`,e),null}}async function Et(e){let t=await Tt(e);return t?{serviceFeePercentage:t.serviceFeePercentage??0,serviceFeeCents:t.serviceFeeCents==null?0:t.serviceFeeCents,taxPercentage:t.taxPercentage??0}:null}async function Dt(e){try{if(!e)return q.warn(`getVenueBySlug called without slug`),null;let t=await y(`/venues/slug/${encodeURIComponent(e)}`);return t.success?t.data??null:(q.error(`Failed to fetch venue by slug: ${t.statusCode}`),null)}catch(e){return q.error(`Error fetching venue by slug:`,e),null}}async function Ot(e){let t=wt(e);if(!t)return!1;try{let e=await y(`/sites/by-host/${encodeURIComponent(new URL(t).host)}`);return!!(e.success&&e.data)}catch(e){return q.warn(`hasPublishedSite failed:`,e),!1}}function J(e,t){return e==null||t(e)}function kt(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.valid===!0&&Number.isInteger(t.appliedAmount)&&typeof t.remainingTotal==`number`&&Number.isFinite(t.remainingTotal)&&J(t.giftCardCode,e=>typeof e==`string`)&&J(t.giftCardBalance,e=>typeof e==`number`&&Number.isFinite(e))&&J(t.fullyCoveredByCard,e=>typeof e==`boolean`)}var At=`We couldn't apply that gift card. Please try again.`;function jt(e){if(!kt(e))return{valid:!1,error:At};let t=e,r=(0,n.centsToDollars)((0,n.toCents)(t.appliedAmount)),i=t.remainingTotal,a=t.fullyCoveredByCard??i<=0,o=!a;return{valid:!0,giftCardCode:t.giftCardCode??void 0,giftCardAmount:r,giftCardBalance:t.giftCardBalance??void 0,paymentType:a?`gift_card_only`:`split`,stripeAmount:i,orderTotal:r+i,requiresStripe:o}}var Y=(0,e.createLogger)(`VC`);async function Mt(e){try{let n=await b(`${_()}/gift-cards/purchase/create`,e);if(!n.success)throw Y.error(`Gift card purchase creation failed:`,n.error),new t.ApiError(n.error||`Failed to create gift card purchase`,n.statusCode??0,{endpoint:`${_()}/gift-cards/purchase/create`,method:`POST`});return Y.debug(`Gift card purchase created:`,n.data),n.data}catch(e){return Y.error(`Gift card purchase creation error:`,e),null}}async function Nt(e,t){try{let n=await b(`${_()}/cart/${e}/apply-gift-card`,{giftCardCode:t});if(!n.success)return n.statusCode===429?{valid:!1,error:`Too many attempts. Please wait a moment and try again.`}:(Y.error(`Apply gift card failed:`,n.error),{valid:!1,error:n.error||`Invalid gift card code`});let r=jt(n.data);return r.valid||Y.error(`Apply gift card returned an unusable payload:`,n.data),r}catch(e){return Y.error(`applyGiftCard error:`,e),{valid:!1,error:`Network error. Please check your connection and try again.`}}}async function Pt(e,t){try{let n=t?.giftCardId?{giftCardId:t.giftCardId}:t?.code?{giftCardCode:t.code}:null,r=await re(`${_()}/cart/${e}/gift-card`,n?{body:JSON.stringify(n)}:void 0);if(!r.success)return Y.error(`Remove gift card failed:`,r.error),{success:!1,error:r.error||`Failed to remove gift card`};let i=r.data??{},a=i.newTotal??i.NewTotal;return{success:!0,...typeof a==`number`?{remainingTotal:a}:{}}}catch(e){return Y.error(`removeGiftCard error:`,e),{success:!1,error:`Network error. Please check your connection and try again.`}}}async function Ft(e,t,r){let i=j(r);try{let r=await b(`${_()}/cart/${e}/complete-gift-card-payment`,{customerName:(0,n.formatFullName)(t.firstName,t.lastName),customerEmail:t.email,firstName:t.firstName,lastName:t.lastName,email:t.email,phoneNumber:t.phoneNumber||null,questionAnswer:t.questionAnswer||``,mailingList:t.mailingList||!1,attribution:O(),...i?{locale:i}:{}});return r.success?{success:!0,orderId:r.data?.orderId,confirmationNumber:r.data?.confirmationNumber}:(Y.error(`Complete gift card payment failed:`,r.error),{success:!1,error:r.error||`Failed to complete payment`})}catch(e){return Y.error(`completeGiftCardPayment error:`,e),{success:!1,error:`Network error. Please check your connection and try again.`}}}var X=(0,e.createLogger)(`VC`);async function It(e,t,n=null,r=!1){try{let i={email:t};n&&r&&(i.phone=n,i.smsOptIn=!0);let a=await b(`/events/${e}/waitlist`,i);return a.success?{success:!0,updated:a.data?.updated,position:a.data?.position}:(X.error(`Join waitlist failed:`,a.error),{success:!1,errorCode:a.error||`join_failed`})}catch(e){return X.error(`joinWaitlist error:`,e),{success:!1,errorCode:`network_error`}}}async function Lt(e,t){try{let n=await b(`/checkout/validate-token/${e}`,{email:t});return n.success?{valid:!0,eventId:n.data?.eventId??0,expiresAt:n.data?.expiresAt}:{valid:!1,eventId:0,errorCode:n.error}}catch(e){return X.error(`validateWaitlistToken error:`,e),{valid:!1,eventId:0,errorCode:`invalid_token`}}}async function Rt(e,t){try{let n=await b(`/waitlist/requeue/${e}`,{email:t});return n.success?{success:!0}:{success:!1,errorCode:n.error}}catch(e){return X.error(`requeueWaitlistToFront error:`,e),{success:!1,errorCode:`internal_error`}}}async function zt(e){let t={waitlistEnabled:!1,soldOut:!1,gated:!1};try{let n=await y(`/events/${e}/waitlist/status`);return n.success?{waitlistEnabled:!!n.data?.waitlistEnabled,soldOut:!!n.data?.soldOut,gated:!!n.data?.gated}:t}catch(e){return X.error(`getWaitlistStatus error:`,e),t}}function Bt(e){let t=String(e%60).padStart(2,`0`);return e>=3600?`${Math.floor(e/3600)}:${String(Math.floor(e%3600/60)).padStart(2,`0`)}:${t}`:`${Math.floor(e/60)}:${t}`}function Vt(e,t,n={}){let{cancelled:a=!1,isRegistration:o=!1,waitlistEnabled:s=!1}=n,c=(0,r.browserNow)();if(a)return{text:`Canceled`,disabled:!0,reason:`cancelled`};if((e?.status||``).trim().toLowerCase()===`postponed`)return{text:`Postponed`,disabled:!0,reason:`postponed`};let l=(0,r.toInstantOrNull)(e.endDateTime||e.startDateTime);if(l&&(0,r.compareInstants)(l,c)<0)return{text:`Sales ended`,disabled:!0,reason:`event_past`};let u=(e?.salesStatus||``).trim().toLowerCase(),d=u===`not_started`;if(u===`paused`)return{text:`Sales paused`,disabled:!0,reason:`sales_paused`};if(u===`ended`)return{text:`Sales ended`,disabled:!0,reason:`sales_ended`};let f=e?.hasPurchasableHiddenTickets===!0||Array.isArray(t)&&t.some(i.isHiddenTicketPurchasable),p=()=>f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:s?{text:`Join Waitlist`,disabled:!1,reason:`sold_out_waitlist`}:{text:`Sold out`,disabled:!0,reason:`sold_out`};if(u===`sold_out`)return p();let m=(t||[]).filter(e=>e.salesChannel!==2&&!e.isHidden&&!(typeof e.visibility==`number`&&e.visibility>=i.TICKET_VISIBILITY.HIDDEN));if(m.length===0)return f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`No tickets available`,disabled:!0,reason:`no_tickets`};let h=!1,g=!0,_=!0,v=null;for(let e of m){let t=(0,r.toInstantOrNull)(e.salesBegin||e.salesStart||e.saleBegin||e.onSaleStart),n=(0,r.toInstantOrNull)(e.salesEnd||e.saleEnd||e.onSaleEnd),i=e.remainingCapacity??e.quantityRemaining??e.quantity,a=e.soldOut||i!=null&&i<=0,o=t?(0,r.compareInstants)(t,c)>0:!1,s=n?(0,r.compareInstants)(n,c)<0:!1;!a&&!o&&!s&&(h=!0),a||(g=!1),o||(_=!1),o&&t&&!a&&!s&&(!v||(0,r.compareInstants)(t,v)<0)&&(v=t)}return d&&h?f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`On sale soon`,disabled:!0,reason:`coming_soon`}:h?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`available`}:_&&v?f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`On sale ${Ht(v,(0,r.compareInstants)(v,c),[e.timezone,e.timeZone].find(e=>!!e&&(0,r.isValidIANATimezone)(e)))}`,disabled:!0,reason:`coming_soon`}:g?p():f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`Sales ended`,disabled:!0,reason:`sales_ended`}}function Ht(e,t,n){let i=t/36e5,a=t/864e5;if(n){let t=e.toISOString(),o=(0,r.formatTzAbbreviation)(n,e),s=`${(0,r.formatEventTime)(t,n)} ${o}`;return i<24?s:a<=7?`${(0,r.formatDayOfWeek)(t,n,!0)} ${s}`:`${(0,r.formatEventDate)(t,n,{includeYear:!1})} ${s}`}let o=e=>(0,r.formatLocal)(e,{hour:`numeric`,minute:`2-digit`,hour12:!0},`en-US`);return i<24?o(e):a<=7?(0,r.formatLocal)(e,{weekday:`short`,hour:`numeric`,minute:`2-digit`,hour12:!0},`en-US`):`${(0,r.formatLocal)(e,{month:`short`,day:`numeric`},`en-US`)} ${o(e)}`}function Ut(e){let t=e;return{uuid:t.uuid||String(t.id||t.ID||``),id:t.id||t.ID,ticketNumber:t.ticketNumber||t.ticket_number,orderId:t.orderId||t.order_id,attendeeFirstName:t.attendeeFirstName||t.attendee_first_name||t.firstName,attendeeLastName:t.attendeeLastName||t.attendee_last_name||t.lastName,attendeeEmail:t.attendeeEmail||t.attendee_email||t.email,ticketName:t.ticketName||t.ticket_name||t.name||``,ticketTypeId:t.ticketTypeId||t.ticket_type_id,purchasePrice:t.purchasePrice||t.purchase_price||t.price||0,status:t.status,checkedIn:t.checkedIn||t.checked_in,checkedInAt:t.checkedInAt||t.checked_in_at}}function Z(e){let t=e,n=t.purchasedTickets||t.tickets||t.purchased_tickets||[];return{uuid:t.uuid||String(t.id||t.ID||``),id:t.id||t.ID,customerEmail:t.customerEmail||t.email||t.customer_email||``,customerFirstName:t.customerFirstName||t.firstName||t.first_name,customerLastName:t.customerLastName||t.lastName||t.last_name,status:t.status||`unknown`,totalAmount:t.totalAmount||t.total||t.total_amount||0,subtotal:t.subtotal,serviceFeesAmount:t.serviceFeesAmount||t.serviceFee||t.service_fee||t.service_fees_amount||0,taxAmount:t.taxAmount||t.tax||t.tax_amount||0,discount:t.discount==null?0:t.discount,paymentIntentId:t.paymentIntentId||t.payment_intent_id,paymentMethod:t.paymentMethod||t.payment_method,purchasedTickets:n.map(Ut),createdAt:t.createdAt||t.created_at,updatedAt:t.updatedAt||t.updated_at}}var Wt=Ut,Gt=Z;function Kt(e){let t=Z(e),r=t.uuid.split(`-`)[0]||t.uuid,i=Number(t.totalAmount);return{orderId:t.uuid,displayOrderId:r,email:t.customerEmail,customerName:[t.customerFirstName,t.customerLastName].filter(Boolean).join(` `),total:t.totalAmount,formattedTotal:`${(0,n.formatCurrency)((0,n.asUSD)(Number.isFinite(i)?i/100:0))}`,ticketCount:t.purchasedTickets.length,status:t.status}}function qt(e){return(0,n.resolveImageUrl)(e,{cdn:!0})}function Q(e){return qt(e.imageUrl||e.imageURL||e.image_url||e.image||``)}function Jt(e){switch(e){case`available`:case`sold_out`:case`coming_soon`:case`ended`:return e;default:return null}}function Yt(e){let t=e.ctaState||e.cta_state;if(t){let e=Jt(t);if(e)return e}if(e.isCancelled||e.is_cancelled)return`ended`;let n=(0,r.toInstantOrNull)(e.startDateTime||e.start_date_time||e.date);if(n){let e=Date.now();if(n.getTime()<e)return`ended`}let i=e.ticketsAvailable??e.tickets_available;if(i!==void 0)return i<=0?`sold_out`:`available`;let a=e.availableTickets||e.available_tickets||e.tickets||[];return a.length===0?`coming_soon`:a.reduce((e,t)=>{let n=t.quantityAvailable??t.quantity_available??t.quantity??0,r=t.quantitySold??t.quantity_sold??0;return e+Math.max(0,n-r)},0)<=0?`sold_out`:`available`}function Xt(e){let t=e;return{id:t.id||t.ID,name:t.name||t.ticketName||``,description:t.description,price:t.price==null?0:t.price,quantity:t.quantity||t.totalQuantity||0,quantitySold:t.quantitySold||t.quantity_sold||0,quantityAvailable:t.quantityAvailable||t.quantity_available||(t.quantity||0)-(t.quantitySold||0),minPerOrder:t.minPerOrder||t.min_per_order||1,maxPerOrder:t.maxPerOrder||t.max_per_order||10,saleStartDate:t.saleStartDate||t.sale_start_date,saleEndDate:t.saleEndDate||t.sale_end_date,isHidden:t.isHidden||t.is_hidden||!1,revealWithPromoCode:t.revealWithPromoCode||t.reveal_with_promo_code,ticketType:t.ticketType||t.ticket_type||0,sectionId:t.sectionId||t.section_id,sortOrder:t.sortOrder||t.sort_order||0}}function $(e){let t=e,n=(t.availableTickets||t.available_tickets||t.tickets||[]).map(Xt),r=n.map(e=>e.price).filter(e=>e>0),i=r.length>0?Math.min(...r):void 0,a=r.length>0?Math.max(...r):void 0;return{eventID:t.eventID||t.id||t.ID||0,id:t.id||t.ID,name:t.name||t.title||``,title:t.title||t.name,slug:t.slug,description:t.description,date:t.date||t.startDateTime||t.start_date_time||``,startDateTime:t.startDateTime||t.start_date_time,endDateTime:t.endDateTime||t.end_date_time,doorsOpenTime:t.doorsOpenTime||t.doors_open_time,timezone:t.timezone||t.time_zone,venueId:t.venueId||t.venue_id,venueName:t.venueName||t.venue_name,venueAddress:t.venueAddress||t.venue_address,location:t.location||t.venueAddress||t.venue_address,imageUrl:Q(t),imageURL:Q(t),status:t.status,isPublished:t.isPublished??t.is_published,isCancelled:t.isCancelled??t.is_cancelled,availableTickets:n,ticketsAvailable:t.ticketsAvailable??t.tickets_available??n.reduce((e,t)=>e+(t.quantityAvailable||0),0),ticketsSold:t.ticketsSold??t.tickets_sold,minPrice:t.minPrice??t.min_price??i,maxPrice:t.maxPrice??t.max_price??a,ctaText:t.ctaText||t.cta_text,ctaState:Yt(t),showPerformers:t.showPerformers??t.show_performers,eventSeriesId:t.eventSeriesId||t.event_series_id,seriesInstanceNumber:t.seriesInstanceNumber||t.series_instance_number,timeZone:t.timeZone,salesStatus:t.salesStatus||t.sales_status,eventSummary:t.eventSummary,password:t.password,hasPassword:t.hasPassword,disclaimer:t.disclaimer,ticketType:t.ticketType,eventTicketingType:t.eventTicketingType,ageRestriction:t.ageRestriction,displayAgeRestriction:t.displayAgeRestriction,displayStartTime:t.displayStartTime,displayEndTime:t.displayEndTime,displayDoorsTime:t.displayDoorsTime,displayTicketsLeft:t.displayTicketsLeft,postSalesMessage:t.postSalesMessage,collectionId:t.collectionId||t.collection_id,ticketsRemaining:t.ticketsRemaining,ticketsTotal:t.ticketsTotal,hasHiddenTickets:t.hasHiddenTickets,stage:t.stage,stageName:t.stageName,stageId:t.stageId,eventCategoryTypes:t.eventCategoryTypes,publicPerformers:t.publicPerformers,collectionIds:t.collectionIds,venue:t.venue,performers:t.performers,faqs:t.faqs,showtimes:t.showtimes,purchasedTickets:t.purchasedTickets}}var Zt=Xt,Qt=$,$t=$;function en(e){return(0,n.resolveImageUrl)(e,{cdn:!0})}function tn(e){let t=e,n=t.logoUrl||t.logo_url||t.logo;return{id:t.id||t.ID||0,name:t.name||``,slug:t.slug,address:t.address,googleLocationNameCache:t.googleLocationNameCache||t.google_location_name_cache,city:t.city,state:t.state,zipCode:t.zipCode||t.zip_code,country:t.country,timezone:t.timezone||t.time_zone,logoUrl:en(n),serviceFeePercentage:t.serviceFeePercentage??t.service_fee_percentage??0,serviceFeeCents:t.serviceFeeCents??t.service_fee_cents??0,absorbServiceFee:(t.absorbServiceFee??t.absorb_service_fee)===!0,taxPercentage:t.taxPercentage??t.tax_percentage??0,organizationId:t.organizationId||t.organization_id}}var nn=tn;function rn(e){let t=e;return{serviceFeePercentage:t.serviceFeePercentage??t.service_fee_percentage??0,serviceFeeCents:t.serviceFeeCents??t.service_fee_cents??0,taxPercentage:t.taxPercentage??t.tax_percentage??0}}function an(e){return[e.address,e.city,e.state,e.zipCode].filter(Boolean).join(`, `)}exports.apiDelete=re,exports.apiGet=y,exports.apiPost=b,exports.apiPut=ne,exports.applyGiftCard=Nt,exports.applyPromoCode=Ge,exports.calculateCtaState=Yt,exports.cancelReservation=Pe,exports.checkCollectionPassword=bt,exports.checkEventPassword=xt,exports.completeGiftCardPayment=Ft,exports.completeReservation=Ne,exports.computeCtaState=Vt,exports.configureApi=p,exports.createGiftCardPurchase=Mt,exports.createOrder=Fe,exports.createPaymentIntent=Oe,exports.err=I,exports.errNotFound=L,exports.extendCheckoutSession=Re,exports.extractVenueFees=rn,exports.fetchAllVenues=at,exports.fetchAllVenuesResult=it,exports.fetchEventDetails=$e,exports.fetchEventDetailsResult=Qe,exports.fetchEventPerformers=rt,exports.fetchEventPerformersResult=nt,exports.fetchEventTickets=tt,exports.fetchEventTicketsResult=et,exports.fetchPublicCollection=yt,exports.fetchSeriesOccurrences=_t,exports.fetchSeriesOccurrencesResult=gt,exports.fetchVenueEvents=st,exports.fetchVenueEventsResult=ot,exports.formatVenueAddress=an,exports.formatWaitlistWindow=Bt,exports.getApiConfig=m,exports.getCDNImageUrl=qt,exports.getCartByUUID=je,exports.getClientIP=v,exports.getEventImageUrl=Q,exports.getLegacyPublicUrl=g,exports.getMonthEvents=dt,exports.getMonthEventsResult=ut,exports.getOrder=Ie,exports.getOrdersV2Url=_,exports.getOrgMonthEvents=pt,exports.getOrgMonthEventsResult=ft,exports.getPublicBaseUrl=h,exports.getSeriesOccurrences=ht,exports.getSeriesOccurrencesResult=mt,exports.getSessionStatus=ze,exports.getVenue=Tt,exports.getVenueBySlug=Dt,exports.getVenueFees=Et,exports.getWaitlistStatus=zt,exports.hasPromoCodes=We,exports.hasPublishedSite=Ot,exports.initiateOrder=Be,exports.isErr=Ye,exports.isOk=Je,exports.joinWaitlist=It,exports.ok=F,exports.removeGiftCard=Pt,exports.removePromoCode=Ke,exports.requeueWaitlistToFront=Rt,exports.resolvePublicEntity=vt,exports.submitCheckoutAnswers=Ae,exports.testNetworkConnection=St,exports.trackUTMSource=Ve,exports.transformAvailableTicket=Zt,exports.transformEvent=Qt,exports.transformEventData=$t,exports.transformOrder=Gt,exports.transformOrderForDisplay=Kt,exports.transformTicket=Wt,exports.transformVenue=nn,exports.unwrapOr=R,exports.updateCartQuantities=Me,exports.validatePaymentIntent=Le,exports.validatePromoCode=Ue,exports.validateWaitlistToken=Lt;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@getmicdrop/svelte-components/utils/logger"),t=require("@getmicdrop/svelte-components/errors"),n=require("@getmicdrop/svelte-components"),r=require("@getmicdrop/svelte-components/datetime"),i=require("@getmicdrop/svelte-components/transforms");(0,e.createLogger)(`VC:config`,{enabled:!0});var a=(0,e.createLogger)(`VC`),o=new Set;function s(e){if(e)for(let t of o)try{t(e)}catch{}}var c=`ABORTED`;function l(e,t){let n=t||void 0;return n?{...e,"X-Widget-Key":n}:e}function u(e,t){let n=`HTTP ${t}`;if(!e||typeof e!=`object`)return{message:n};let r=e,i=r.error&&typeof r.error==`object`?r.error:null,a=typeof r.code==`string`?r.code:typeof i?.code==`string`?i.code:void 0;return{message:typeof r.error==`string`?r.error:typeof i?.message==`string`?i.message:typeof r.message==`string`?r.message:n,code:a}}var d=class extends Error{code;statusCode;constructor(e,t,n){super(e),this.name=`ApiRequestError`,this.code=t,this.statusCode=n}},f={baseUrl:`https://get-micdrop.com`,timeout:3e4,retries:2,retryDelay:500,onError:e=>a.error(`API Error:`,e)};function p(e){f={...f,...e}}function m(){return{...f}}function h(){return`${f.baseUrl}/api/v2/public`}function g(){return`${f.baseUrl}/api/public`}function _(){return`${f.baseUrl}/api/orders/v2/public`}async function v(){return``}var ee=e=>new Promise(t=>setTimeout(t,e));async function y(e,t,n){let r=(t.method||`GET`).toUpperCase(),i=r===`GET`||r===`HEAD`?n.retries+1:1,a;for(let r=1;r<=i;r++){let o=new AbortController,s=setTimeout(()=>o.abort(),n.timeout),c=t.signal,l;c&&(c.aborted?o.abort():(l=()=>o.abort(),c.addEventListener(`abort`,l,{once:!0})));try{let n=await fetch(e,{...t,signal:o.signal});if(n.status>=500&&r<i)a=Error(`HTTP ${n.status}`);else return n}catch(e){if(a=e,c?.aborted)throw e}finally{clearTimeout(s),c&&l&&c.removeEventListener(`abort`,l)}r<i&&await ee(n.retryDelay*2**(r-1))}throw a}async function b(e,t){return C(`GET`,e,void 0,t)}async function x(e,t,n){return C(`POST`,e,t,n)}async function te(e,t,n){return C(`PUT`,e,t,n)}async function S(e,t){return C(`DELETE`,e,void 0,t)}async function C(e,t,n,r){let i=t.startsWith(`http`)||t.startsWith(`/api/`)?t:`${h()}${t}`,{widgetKey:a,suppressOnError:o,headers:p,...m}=r??{},g=e=>{o||f.onError(e)};try{let t=await y(i,{method:e,headers:l({"Content-Type":`application/json`,...p},a),body:n===void 0?void 0:JSON.stringify(n),...m},f);if(!t.ok){let{message:e,code:n}=u(await t.json().catch(()=>({})),t.status);return g(new d(e,n,t.status)),s(n),{success:!1,error:e,errorCode:n,statusCode:t.status}}return{success:!0,data:await t.json(),statusCode:t.status}}catch(e){if(r?.signal?.aborted)return{success:!1,error:`Request aborted`,errorCode:c,aborted:!0};let t=e instanceof Error?e.name===`AbortError`?`Request timed out`:e.message:`Unknown error`;return g(e instanceof Error?e:Error(t)),{success:!1,error:t}}}async function w(e,t){try{let n=e.startsWith(f.baseUrl),{widgetKey:r,...i}=t??{},o=await y(e,{...i,...n?{headers:l(i.headers,r)}:{}},f);if(!o.ok){let e=await o.json().catch(()=>({}));return a.error(`API request failed: ${o.status}`,e),null}return o.json()}catch(e){return a.error(`API request error:`,e),null}}function ne(e){let t=e??{};return{ticketID:Number(t.TicketID??t.ticketID??0),quantity:Number(t.Quantity??t.quantity??0),priceAtReservation:Number(t.PriceAtReservation??t.priceAtReservation??0),status:String(t.Status??t.status??``)}}function re(e){let t=e??{},r=t.Amount??t.amount,i=Number(r);return{giftCardId:Number(t.GiftCardID??t.giftCardId??0),maskedCode:String(t.MaskedCode??t.maskedCode??``),amount:r==null||!Number.isFinite(i)?null:(0,n.centsToDollars)((0,n.toCents)(i))}}function ie(e){let t=e??{};return{uuid:t.UUID??t.uuid??``,eventID:Number(t.EventID??t.eventID??0),status:t.Status??t.status??``,expiresAt:t.ExpiresAt??t.expiresAt??``,reservations:(t.Reservations??t.reservations??[]).map(ne),giftCards:(t.GiftCards??t.giftCards??[]).map(re)}}var ae=[`utmSource`,`utmMedium`,`utmCampaign`,`utmContent`,`utmTerm`],oe={utmSource:`utm_source`,utmMedium:`utm_medium`,utmCampaign:`utm_campaign`,utmContent:`utm_content`,utmTerm:`utm_term`},se=`direct`;function ce(e){return e?e.trim().toLowerCase().replace(/\s+/g,`_`):``}function le(e){let t={};for(let n of ae)t[n]=ce(e[n]);return t.utmSource||=se,t}function ue(e){let t={};for(let n of ae)t[n]=e.get(oe[n]);return le(t)}var T={search:null,referrer:null,pageUrl:null};function de(){if(typeof window>`u`)return!0;try{return window.self===window.top}catch{return!1}}function fe(){let e=typeof window<`u`,t=de(),n=T.search??(e?window.location.search:``),r=T.referrer??(typeof document<`u`?document.referrer:``)??``,i=T.pageUrl??(e&&t?window.location.href:``);return{utm:ue(new URLSearchParams(n)),referrer:r||``,pageUrl:i||``}}var E=null,pe=!1;function me(){return typeof window<`u`&&typeof window.__tcfapi==`function`}function he(){return typeof navigator<`u`&&navigator.globalPrivacyControl===!0}function ge(){return E===null?me()||he():E}function _e(){return!ge()||pe}var ve=`micdrop_session_id`,D=`micdrop_visitor_id`,ye=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function be(e){return typeof e==`string`&&ye.test(e)}function xe(){let e=typeof crypto<`u`?crypto:void 0;if(e?.randomUUID)return e.randomUUID();let t=new Uint8Array(16);if(e?.getRandomValues)e.getRandomValues(t);else for(let e=0;e<16;e++)t[e]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let n=[];for(let e=0;e<16;e++)n.push(t[e].toString(16).padStart(2,`0`));return`${n[0]}${n[1]}${n[2]}${n[3]}-${n[4]}${n[5]}-${n[6]}${n[7]}-${n[8]}${n[9]}-${n[10]}${n[11]}${n[12]}${n[13]}${n[14]}${n[15]}`}function Se(){let e=(0,n.getSessionStorage)(ve);return e||(e=xe(),(0,n.setSessionStorage)(ve,e)),e}function Ce(e){let t=(0,n.getLocalStorage)(D);if(be(t))return{id:t,createdAt:e,migrated:!0};if(t&&typeof t==`object`){let{id:n,createdAt:r}=t;if(!be(n))return null;let i=typeof r==`number`&&Number.isFinite(r),a=i?Math.min(r,e):e;return{id:n,createdAt:a,migrated:!i||a!==r}}return null}function we(){if(!_e())return null;let e=Date.now(),t=Ce(e);if(t&&e-t.createdAt<34128e6){if(t.migrated){let e={id:t.id,createdAt:t.createdAt};(0,n.setLocalStorage)(D,e)}return t.id}let r=xe();return(0,n.setLocalStorage)(D,{id:r,createdAt:e}),r}var Te=`micdrop_attribution`;function Ee(){let e=(0,n.getSessionStorage)(Te);return!e||!e.utm||typeof e.utm.utmSource!=`string`?null:e}function O(){let e=Ee()??fe();return{sessionId:Se(),visitorId:we(),utmSource:e.utm.utmSource,utmMedium:e.utm.utmMedium,utmCampaign:e.utm.utmCampaign,utmContent:e.utm.utmContent,utmTerm:e.utm.utmTerm,referrer:e.referrer||``}}(0,n.createLogger)(`tracking`),$state(0);function De(){return typeof navigator>`u`?null:navigator.language||navigator.userLanguage||null}var Oe=[[`es`,`es`,`es`],[`fr`,`fr`,`fr`],[`pt-br`,`pt-br`,`pt_br`],[`pt`,`pt-br`,`pt_br`],[`de`,`de`,`de`],[`ja`,`ja`,`ja`],[`zh`,`zh`,`zh`],[`ko`,`ko`,`ko`],[`it`,`it`,`it`],[`nl`,`nl`,`nl`],[`tr`,`tr`,`tr`],[`id`,`id`,`id`],[`pl`,`pl`,`pl`]];Array.from(new Set(Oe.map(([,e])=>e)));var k=new Map([[`en`,`en`],...Oe.map(([e])=>[e,e===`pt`||e===`pt-br`?`pt-BR`:e])]);function A(e){let t=e||De();if(!t||typeof t!=`string`)return;let n=t.toLowerCase();return k.get(n)??k.get(n.split(`-`)[0])}var j=(0,e.createLogger)(`VC`);async function M(e,t,n,r,i){let a=A(i);return x(`${_()}/cart/${e}/payment-intent`,{productQuantities:t,...n&&Object.keys(n).length>0?{donationAmounts:n}:{},...r?{firstName:r.firstName,lastName:r.lastName,email:r.email,phone:r.phone??``,questionAnswer:r.questionAnswer??``,mailingList:r.mailingList??!1}:{},attribution:O(),...a?{locale:a}:{}})}async function ke(e,n,r,i,a){try{let o=await M(e,n,r,i,a);if(!o.success)throw j.error(`Payment intent creation failed:`,o.error),new t.ApiError(o.error||`Failed to create payment intent`,o.statusCode??0,{endpoint:`${_()}/cart/${e}/payment-intent`,method:`POST`});return j.debug(`Payment intent created:`,o.data),o.data}catch(e){return j.error(`createPaymentIntent error:`,e),null}}var Ae=`VALIDATION_FAILED`;async function je(e,t,n,r,i){let a;try{a=await M(e,t,n,r,i)}catch(e){return j.error(`submitCheckoutAnswers error:`,e),{refusal:null}}return a.success?{refusal:null,clientSecret:a.data?.client_secret}:a.errorCode===Ae&&a.error?(j.debug(`Checkout answers refused:`,a.error),{refusal:a.error}):(j.error(`Checkout answers call failed:`,a.error),{refusal:null})}async function Me(e,t){if(!e)return null;try{let n=await b(`${_()}/cart/${e}`);if(!n.success)return null;let{uuid:r,eventID:i,status:a,expiresAt:o,reservations:s,giftCards:c}=ie(n.data);return a!==`reserved`&&a!==`active`||t!==void 0&&i!==Number(t)?null:{uuid:r,eventID:i,status:a,expiresAt:o,reservations:s,giftCards:c}}catch(e){return j.error(`getCartByUUID error:`,e),null}}async function Ne(e,t,n){try{let r={};for(let[e,n]of Object.entries(t)){let t=typeof e==`number`?e:parseInt(e,10);!Number.isNaN(t)&&n>0&&(r[t]=n)}let i={};if(n)for(let[e,t]of Object.entries(n)){let n=typeof e==`number`?e:parseInt(e,10);!Number.isNaN(n)&&t>0&&(i[n]=t)}let a=await fetch(`${_()}/cart/${e}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({quantities:r,...Object.keys(i).length>0?{donationAmounts:i}:{}})});if(!a.ok){let e=await a.json().catch(()=>({}));return j.error(`Cart update failed:`,e),!1}return!0}catch(e){return j.error(`updateCartQuantities error:`,e),!1}}async function Pe(e){try{let t=await x(`${h()}/orders/complete/${e}`);return t.success?{success:!0,message:t.data?.message}:{success:!1,error:t.error||`Failed to complete reservation`}}catch(e){return j.error(`Error completing reservation:`,e),{success:!1,error:`Network error completing reservation`}}}async function Fe(e){try{let t=await x(`${h()}/orders/cancel/${e}`);return t.success?{success:!0,message:t.data?.message}:{success:!1,error:t.error||`Failed to cancel reservation`}}catch(e){return j.error(`Error cancelling reservation:`,e),{success:!1,error:`Network error cancelling reservation`}}}async function Ie(e,t){try{let n=await x(`${h()}/orders/create`,{eventID:e,promoCode:t,attribution:O()});return n.success?n.data:(j.error(`Create order failed:`,n.error),null)}catch(e){return j.error(`createOrder error:`,e),null}}async function Le(e){return w(`${h()}/orders/${e}`)}async function Re(e,t,n){let r=A(n);try{let n=await x(`${_()}/validatePaymentIntent/${e}`,{...t,attribution:O(),...r?{locale:r}:{}});if(!n.success)return j.error(`Payment validation failed:`,n.error),{success:!1,status:`failed`,error:n.error||`Payment validation failed`};let i=n.data;return i.eventCanceled||i.eventPostponed?{success:!1,status:`failed`,eventCanceled:i.eventCanceled,eventPostponed:i.eventPostponed}:{success:!0,status:i.status||`Payment succeeded`,orderUUID:i.orderUUID||i.uuid}}catch(e){return j.error(`validatePaymentIntent error:`,e),null}}async function ze(e){try{let t=await x(`${h()}/orders/extend-session`,{orderUuid:e});if(!t.success)return{success:!1,error:t.error||`Failed to extend session`,statusCode:t.statusCode};let n=t.data;return{success:!0,newExpiryTime:n.newExpiryTime,remainingExtensions:n.remainingExtensions}}catch(e){return j.error(`Error extending checkout session:`,e),{success:!1,error:`Network error extending session`}}}async function Be(e){try{let t=await b(`${h()}/orders/session/${e}`);if(!t.success)return{error:t.error||`No active session found`,notFound:t.statusCode===404};let n=t.data;return{expiresAt:n.expiresAt,extensionCount:n.extensionCount,remainingExtensions:n.remainingExtensions,canExtend:n.canExtend,reservationCount:n.reservationCount,eventStatus:n.eventStatus}}catch(e){return j.error(`Error getting session status:`,e),{error:`Network error getting session status`}}}async function Ve(e={eventID:``}){try{let t=await x(`${h()}/orders/create`,{...e,attribution:O()});return t.success?t.data?.uuid??null:(j.error(`Order initiation failed:`,t.error),null)}catch(e){return j.error(`initiateOrder error:`,e),null}}async function He(e){if(typeof window>`u`)return;let t=ce(new URLSearchParams(window.location.search).get(`utm_source`))||`direct`;try{await fetch(`${h()}/utm/${e}/${encodeURIComponent(t)}`)}catch(e){j.error(`UTM tracking failed:`,e)}}var N=(0,e.createLogger)(`VC`);function Ue(e,t){if(e===404)return`Promo code isn't valid.`;let n=(t??``).toLowerCase();return e===400?n.includes(`not yet active`)?`Promo code doesn't apply.`:n.includes(`expired`)?`Promo code expired.`:n.includes(`limit`)?`Promo code has reached its limit.`:`Promo code isn't valid.`:`Failed to validate code`}async function We(e,t){try{if(!t||!t.trim())return{valid:!1,error:`Promo code is required`};let n=await b(`/promo-codes/validate/${e}/${encodeURIComponent(t.trim())}`);if(!n.success)return{valid:!1,error:Ue(n.statusCode,n.error)};let r=n.data;return{valid:r.valid??!0,revealHiddenTickets:r.revealHiddenTickets,revealTicketIds:r.revealTicketIds,provideDiscount:r.provideDiscount,discountType:r.discountType,amount:r.discount??r.amount,code:r.name||r.code||t,appliesToAllTickets:r.appliesToAllTickets,applyToTicketIds:r.applyToTicketIds}}catch(e){return N.error(`Error validating promo code:`,e),{valid:!1,error:`Network error validating code`}}}async function Ge(e){try{let t=await b(`/promo-codes/check/${e}`);return!t.success||t.data.hasPromoCodes===!0}catch(e){return N.error(`Error checking promo codes availability:`,e),!0}}async function Ke(e,t,n){try{let r={promoCode:t};n&&Object.keys(n).length>0&&(r.productQuantities=n);let i=await x(`${_()}/cart/${e}/apply-promo`,r);return i.success?{success:!0}:{success:!1,error:i.error||`Failed to apply promo code`}}catch(e){return N.error(`Error applying promo code:`,e),{success:!1,error:`Network error applying code`}}}async function qe(e){try{let t=await x(`/orders/${e}/remove-promo`);return t.success?{success:!0}:{success:!1,error:t.error||`Failed to remove promo code`}}catch(e){return N.error(`Error removing promo code:`,e),{success:!1,error:`Network error removing code`}}}function Je(e){let t=e??{};return{performers:Array.isArray(t.performers)?t.performers:[],showPerformers:t.showPerformers===!0}}function P(e){return{ok:!0,data:e}}function F(e){return{ok:!1,error:e}}function I(e){return{ok:!1,error:e,notFound:!0}}function Ye(e){return e.ok}function Xe(e){return!e.ok}function L(e,t){return e.ok?e.data:t}var R=`/api/v2/public`,z=`/api/orders/v2/public`,B=`/api/orders/v2`,V=`00000000-0000-0000-0000-000000000000`,H=V;`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}`,`${R}`,`${R}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}`,`${R}`,`${R}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}`,`${R}`,`${R}`,`${R}`,`${R}${H}`,`${z}`,`${z}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${B}`,`${B}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}${H}`,`${R}`,`${R}${H}`,`${R}`,`${R}`;var U=(0,e.createLogger)(`VC`),W=new Map;async function G(e,t=fetch,n){let r=n?`${e}:pw`:String(e);if(t===fetch){let e=W.get(r);if(e)return e}let i=(async()=>{try{let r=await t(n?`${h()}/events/${e}?password=${encodeURIComponent(n)}`:`${h()}/events/${e}`);if(!r.ok)return r.status===404?I(`event_not_found`):(U.error(`Failed to fetch event details: ${r.status}`),F(`event_fetch_failed`));let i=await r.json();return i?P(i):I(`event_not_found`)}catch(e){return U.error(`Error fetching event details:`,e),F(`event_fetch_failed`)}})();return t===fetch&&(W.set(r,i),i.finally(()=>{W.get(r)===i&&W.delete(r)})),i}async function Ze(e,t=fetch,n){let r=await G(e,t,n);return r.ok?r.data:null}async function K(e,t,n=e=>e){try{let r=await w(e);return r?P(n(r)):(U.error(`Failed to load (${t}): network or server error`),F(t))}catch(e){return U.error(`Error loading (${t}):`,e),F(t)}}function q(e){return Array.isArray(e)?e:[]}async function Qe(e,t){let n=t?.trim(),r=n?`?promoCode=${encodeURIComponent(n)}`:``;return K(`${h()}/tickets/event/${e}${r}`,`tickets_fetch_failed`,q)}async function $e(e,t){return L(await Qe(e,t),[])}async function et(e){return e?K(`${h()}/events/${e}/performers`,`performers_fetch_failed`,e=>Je(e)):(U.warn(`fetchEventPerformers called without eventId`),F(`performers_missing_event_id`))}async function tt(e){return L(await et(e),{performers:[],showPerformers:!1})}async function nt(e){return e?K(`${h()}/venues/organization/${e}`,`venues_fetch_failed`,q):(U.warn(`fetchAllVenues called without orgId`),F(`venues_missing_org_id`))}async function rt(e){return L(await nt(e),[])}async function it(e){return e?K(`${h()}/events/venue/${e}`,`venue_events_fetch_failed`,q):(U.warn(`fetchVenueEvents called without venueId`),F(`venue_events_missing_venue_id`))}async function at(e){return L(await it(e),[])}function ot(e){return Array.isArray(e)?e:Array.isArray(e.events)?e.events:[]}var J=new Map;function st(e,t,n){if(!n?.fresh){let t=J.get(e);if(t)return t}let r=K(e,t,e=>ot(e));return J.set(e,r),r.finally(()=>{J.get(e)===r&&J.delete(e)}),r}async function ct(e,t,n,r){return st(`${h()}/events/venue/${e}/month/${t}/${n}`,`month_events_fetch_failed`,r)}async function lt(e,t,n){return L(await ct(e,t,n),[])}async function ut(e,t,n,r){return st(`${h()}/events/organization/${e}/month/${t}/${n}`,`org_month_events_fetch_failed`,r)}async function dt(e,t,n){return L(await ut(e,t,n),[])}async function ft(e){return K(`${h()}/series/${e}/occurrences`,`series_occurrences_fetch_failed`)}async function pt(e){let t=await ft(e);return t.ok?t.data:null}async function mt(e,t){return K(`${h()}/series/${e}/occurrences?venueId=${t}`,`series_cta_fetch_failed`)}async function ht(e,t){let n=await mt(e,t);return n.ok?n.data:null}async function gt(e,n){try{let r=n?`?slug=${encodeURIComponent(n)}`:``,i=await w(`${h()}/resolve/${encodeURIComponent(String(e))}${r}`);if(!i||!i.type)throw new t.NotFoundError(`entity`,String(e));return i}catch(e){return U.error(`Error resolving public entity:`,e),null}}async function _t(e,n){try{let r=await w(n?`${h()}/collections/${e}?password=${encodeURIComponent(n)}`:`${h()}/collections/${e}`);if(!r)throw new t.NotFoundError(`collection`,String(e));return r}catch(e){return U.error(`Error fetching collection:`,e),null}}async function vt(e,t){try{return(await w(`${h()}/collections/${e}/check-password`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({password:t})}))?.valid===!0}catch(e){return U.error(`Error checking collection password:`,e),!1}}async function yt(e,t){try{let n=await w(`${h()}/events/${e}/check-password`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({password:t})});return typeof n==`boolean`?{valid:n}:{valid:n?.valid===!0}}catch(e){return U.error(`Error checking event password:`,e),{valid:!1}}}async function bt(e,t){try{let n=t?`${h()}/events/venue/${t}`:e?`${h()}/venues/organization/${e}`:`${h()}/venues/${V}`;return(await fetch(n,{method:`HEAD`})).status<500}catch(e){return U.error(`Network connection test failed:`,e),!1}}var xt=`get-micdrop.com`;function St(e){let t=typeof e==`string`?e.trim():``;return t?`https://${encodeURIComponent(t)}.${xt}`:``}var Y=(0,e.createLogger)(`VC`);async function Ct(e){try{if(!e)return Y.warn(`getVenue called without venueId`),null;let t=await b(`/venues/${e}`);return t.success?t.data??null:(Y.error(`Failed to fetch venue: ${t.statusCode}`),null)}catch(e){return Y.error(`Error fetching venue:`,e),null}}async function wt(e){let t=await Ct(e);return t?{serviceFeePercentage:t.serviceFeePercentage??0,serviceFeeCents:t.serviceFeeCents==null?0:t.serviceFeeCents,taxPercentage:t.taxPercentage??0}:null}async function Tt(e){try{if(!e)return Y.warn(`getVenueBySlug called without slug`),null;let t=await b(`/venues/slug/${encodeURIComponent(e)}`);return t.success?t.data??null:(Y.error(`Failed to fetch venue by slug: ${t.statusCode}`),null)}catch(e){return Y.error(`Error fetching venue by slug:`,e),null}}async function Et(e){let t=St(e);if(!t)return!1;try{let e=await b(`/sites/by-host/${encodeURIComponent(new URL(t).host)}`);return!!(e.success&&e.data)}catch(e){return Y.warn(`hasPublishedSite failed:`,e),!1}}function X(e,t){return e==null||t(e)}function Dt(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.valid===!0&&Number.isInteger(t.appliedAmount)&&typeof t.remainingTotal==`number`&&Number.isFinite(t.remainingTotal)&&X(t.giftCardCode,e=>typeof e==`string`)&&X(t.giftCardBalance,e=>typeof e==`number`&&Number.isFinite(e))&&X(t.fullyCoveredByCard,e=>typeof e==`boolean`)}var Ot=`We couldn't apply that gift card. Please try again.`;function kt(e){if(!Dt(e))return{valid:!1,error:Ot};let t=e,r=(0,n.centsToDollars)((0,n.toCents)(t.appliedAmount)),i=t.remainingTotal,a=t.fullyCoveredByCard??i<=0,o=!a;return{valid:!0,giftCardCode:t.giftCardCode??void 0,giftCardAmount:r,giftCardBalance:t.giftCardBalance??void 0,paymentType:a?`gift_card_only`:`split`,stripeAmount:i,orderTotal:r+i,requiresStripe:o}}var Z=(0,e.createLogger)(`VC`);async function At(e){try{let n=await x(`${_()}/gift-cards/purchase/create`,e);if(!n.success)throw Z.error(`Gift card purchase creation failed:`,n.error),new t.ApiError(n.error||`Failed to create gift card purchase`,n.statusCode??0,{endpoint:`${_()}/gift-cards/purchase/create`,method:`POST`});return Z.debug(`Gift card purchase created:`,n.data),n.data}catch(e){return Z.error(`Gift card purchase creation error:`,e),null}}async function jt(e,t){try{let n=await x(`${_()}/cart/${e}/apply-gift-card`,{giftCardCode:t});if(!n.success)return n.statusCode===429?{valid:!1,error:`Too many attempts. Please wait a moment and try again.`}:(Z.error(`Apply gift card failed:`,n.error),{valid:!1,error:n.error||`Invalid gift card code`});let r=kt(n.data);return r.valid||Z.error(`Apply gift card returned an unusable payload:`,n.data),r}catch(e){return Z.error(`applyGiftCard error:`,e),{valid:!1,error:`Network error. Please check your connection and try again.`}}}async function Mt(e,t){try{let n=t?.giftCardId?{giftCardId:t.giftCardId}:t?.code?{giftCardCode:t.code}:null,r=await S(`${_()}/cart/${e}/gift-card`,n?{body:JSON.stringify(n)}:void 0);if(!r.success)return Z.error(`Remove gift card failed:`,r.error),{success:!1,error:r.error||`Failed to remove gift card`};let i=r.data??{},a=i.newTotal??i.NewTotal;return{success:!0,...typeof a==`number`?{remainingTotal:a}:{}}}catch(e){return Z.error(`removeGiftCard error:`,e),{success:!1,error:`Network error. Please check your connection and try again.`}}}async function Nt(e,t,r){let i=A(r);try{let r=await x(`${_()}/cart/${e}/complete-gift-card-payment`,{customerName:(0,n.formatFullName)(t.firstName,t.lastName),customerEmail:t.email,firstName:t.firstName,lastName:t.lastName,email:t.email,phoneNumber:t.phoneNumber||null,questionAnswer:t.questionAnswer||``,mailingList:t.mailingList||!1,attribution:O(),...i?{locale:i}:{}});return r.success?{success:!0,orderId:r.data?.orderId,confirmationNumber:r.data?.confirmationNumber}:(Z.error(`Complete gift card payment failed:`,r.error),{success:!1,error:r.error||`Failed to complete payment`})}catch(e){return Z.error(`completeGiftCardPayment error:`,e),{success:!1,error:`Network error. Please check your connection and try again.`}}}var Pt=(0,e.createLogger)(`VC`);async function Ft(e,t){let n=e=>({success:!1,error:e,lines:[],addOnQuantity:0,repriced:!1});if(!e)return n(null);let r={};for(let[e,n]of Object.entries(t)){let t=typeof e==`number`?e:parseInt(e,10);!Number.isNaN(t)&&n>0&&(r[t]=n)}try{let t=await x(`${_()}/cart/${e}/add-ons`,{addOnQuantities:r});if(!t.success)return n(t.error||null);let i=t.data||{};return{success:!0,error:null,lines:i.addOns||[],addOnQuantity:i.addOnQuantity||0,repriced:i.repriced===!0}}catch(e){return Pt.error(`updateCartAddOns error:`,e),n(null)}}var Q=(0,e.createLogger)(`VC`);async function It(e,t,n=null,r=!1){try{let i={email:t};n&&r&&(i.phone=n,i.smsOptIn=!0);let a=await x(`/events/${e}/waitlist`,i);return a.success?{success:!0,updated:a.data?.updated,position:a.data?.position}:(Q.error(`Join waitlist failed:`,a.error),{success:!1,errorCode:a.error||`join_failed`})}catch(e){return Q.error(`joinWaitlist error:`,e),{success:!1,errorCode:`network_error`}}}async function Lt(e,t){try{let n=await x(`/checkout/validate-token/${e}`,{email:t});return n.success?{valid:!0,eventId:n.data?.eventId??0,expiresAt:n.data?.expiresAt}:{valid:!1,eventId:0,errorCode:n.error}}catch(e){return Q.error(`validateWaitlistToken error:`,e),{valid:!1,eventId:0,errorCode:`invalid_token`}}}async function Rt(e,t){try{let n=await x(`/waitlist/requeue/${e}`,{email:t});return n.success?{success:!0}:{success:!1,errorCode:n.error}}catch(e){return Q.error(`requeueWaitlistToFront error:`,e),{success:!1,errorCode:`internal_error`}}}async function zt(e){let t={waitlistEnabled:!1,soldOut:!1,gated:!1};try{let n=await b(`/events/${e}/waitlist/status`);return n.success?{waitlistEnabled:!!n.data?.waitlistEnabled,soldOut:!!n.data?.soldOut,gated:!!n.data?.gated}:t}catch(e){return Q.error(`getWaitlistStatus error:`,e),t}}function Bt(e){let t=String(e%60).padStart(2,`0`);return e>=3600?`${Math.floor(e/3600)}:${String(Math.floor(e%3600/60)).padStart(2,`0`)}:${t}`:`${Math.floor(e/60)}:${t}`}function Vt(e,t,n={}){let{cancelled:a=!1,isRegistration:o=!1,waitlistEnabled:s=!1}=n,c=(0,r.browserNow)();if(a)return{text:`Canceled`,disabled:!0,reason:`cancelled`};if((e?.status||``).trim().toLowerCase()===`postponed`)return{text:`Postponed`,disabled:!0,reason:`postponed`};let l=(0,r.toInstantOrNull)(e.endDateTime||e.startDateTime);if(l&&(0,r.compareInstants)(l,c)<0)return{text:`Sales ended`,disabled:!0,reason:`event_past`};let u=(e?.salesStatus||``).trim().toLowerCase(),d=u===`not_started`;if(u===`paused`)return{text:`Sales paused`,disabled:!0,reason:`sales_paused`};if(u===`ended`)return{text:`Sales ended`,disabled:!0,reason:`sales_ended`};let f=e?.hasPurchasableHiddenTickets===!0||Array.isArray(t)&&t.some(i.isHiddenTicketPurchasable),p=()=>f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:s?{text:`Join Waitlist`,disabled:!1,reason:`sold_out_waitlist`}:{text:`Sold out`,disabled:!0,reason:`sold_out`};if(u===`sold_out`)return p();let m=(t||[]).filter(e=>e.salesChannel!==2&&!e.isHidden&&!(typeof e.visibility==`number`&&e.visibility>=i.TICKET_VISIBILITY.HIDDEN));if(m.length===0)return f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`No tickets available`,disabled:!0,reason:`no_tickets`};let h=!1,g=!0,_=!0,v=null;for(let e of m){let t=(0,r.toInstantOrNull)(e.salesBegin||e.salesStart||e.saleBegin||e.onSaleStart),n=(0,r.toInstantOrNull)(e.salesEnd||e.saleEnd||e.onSaleEnd),i=e.remainingCapacity??e.quantityRemaining??e.quantity,a=e.soldOut||i!=null&&i<=0,o=t?(0,r.compareInstants)(t,c)>0:!1,s=n?(0,r.compareInstants)(n,c)<0:!1;!a&&!o&&!s&&(h=!0),a||(g=!1),o||(_=!1),o&&t&&!a&&!s&&(!v||(0,r.compareInstants)(t,v)<0)&&(v=t)}return d&&h?f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`On sale soon`,disabled:!0,reason:`coming_soon`}:h?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`available`}:_&&v?f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`On sale ${Ht(v,(0,r.compareInstants)(v,c),[e.timezone,e.timeZone].find(e=>!!e&&(0,r.isValidIANATimezone)(e)))}`,disabled:!0,reason:`coming_soon`}:g?p():f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`Sales ended`,disabled:!0,reason:`sales_ended`}}function Ht(e,t,n){let i=t/36e5,a=t/864e5;if(n){let t=e.toISOString(),o=(0,r.formatTzAbbreviation)(n,e),s=`${(0,r.formatEventTime)(t,n)} ${o}`;return i<24?s:a<=7?`${(0,r.formatDayOfWeek)(t,n,!0)} ${s}`:`${(0,r.formatEventDate)(t,n,{includeYear:!1})} ${s}`}let o=e=>(0,r.formatLocal)(e,{hour:`numeric`,minute:`2-digit`,hour12:!0},`en-US`);return i<24?o(e):a<=7?(0,r.formatLocal)(e,{weekday:`short`,hour:`numeric`,minute:`2-digit`,hour12:!0},`en-US`):`${(0,r.formatLocal)(e,{month:`short`,day:`numeric`},`en-US`)} ${o(e)}`}function Ut(e){let t=e;return{uuid:t.uuid||String(t.id||t.ID||``),id:t.id||t.ID,ticketNumber:t.ticketNumber||t.ticket_number,orderId:t.orderId||t.order_id,attendeeFirstName:t.attendeeFirstName||t.attendee_first_name||t.firstName,attendeeLastName:t.attendeeLastName||t.attendee_last_name||t.lastName,attendeeEmail:t.attendeeEmail||t.attendee_email||t.email,ticketName:t.ticketName||t.ticket_name||t.name||``,ticketTypeId:t.ticketTypeId||t.ticket_type_id,purchasePrice:t.purchasePrice||t.purchase_price||t.price||0,status:t.status,checkedIn:t.checkedIn||t.checked_in,checkedInAt:t.checkedInAt||t.checked_in_at}}function Wt(e){let t=e,n=t.purchasedTickets||t.tickets||t.purchased_tickets||[];return{uuid:t.uuid||String(t.id||t.ID||``),id:t.id||t.ID,customerEmail:t.customerEmail||t.email||t.customer_email||``,customerFirstName:t.customerFirstName||t.firstName||t.first_name,customerLastName:t.customerLastName||t.lastName||t.last_name,status:t.status||`unknown`,totalAmount:t.totalAmount||t.total||t.total_amount||0,subtotal:t.subtotal,serviceFeesAmount:t.serviceFeesAmount||t.serviceFee||t.service_fee||t.service_fees_amount||0,taxAmount:t.taxAmount||t.tax||t.tax_amount||0,discount:t.discount==null?0:t.discount,paymentIntentId:t.paymentIntentId||t.payment_intent_id,paymentMethod:t.paymentMethod||t.payment_method,purchasedTickets:n.map(Ut),createdAt:t.createdAt||t.created_at,updatedAt:t.updatedAt||t.updated_at}}var Gt=Ut,Kt=Wt;function qt(e){let t=Wt(e),r=t.uuid.split(`-`)[0]||t.uuid,i=Number(t.totalAmount);return{orderId:t.uuid,displayOrderId:r,email:t.customerEmail,customerName:[t.customerFirstName,t.customerLastName].filter(Boolean).join(` `),total:t.totalAmount,formattedTotal:`${(0,n.formatCurrency)((0,n.asUSD)(Number.isFinite(i)?i/100:0))}`,ticketCount:t.purchasedTickets.length,status:t.status}}function Jt(e){return(0,n.resolveImageUrl)(e,{cdn:!0})}function $(e){return Jt(e.imageUrl||e.imageURL||e.image_url||e.image||``)}function Yt(e){switch(e){case`available`:case`sold_out`:case`coming_soon`:case`ended`:return e;default:return null}}function Xt(e){let t=e.ctaState||e.cta_state;if(t){let e=Yt(t);if(e)return e}if(e.isCancelled||e.is_cancelled)return`ended`;let n=(0,r.toInstantOrNull)(e.startDateTime||e.start_date_time||e.date);if(n){let e=Date.now();if(n.getTime()<e)return`ended`}let i=e.ticketsAvailable??e.tickets_available;if(i!==void 0)return i<=0?`sold_out`:`available`;let a=e.availableTickets||e.available_tickets||e.tickets||[];return a.length===0?`coming_soon`:a.reduce((e,t)=>{let n=t.quantityAvailable??t.quantity_available??t.quantity??0,r=t.quantitySold??t.quantity_sold??0;return e+Math.max(0,n-r)},0)<=0?`sold_out`:`available`}function Zt(e){let t=e;return{id:t.id||t.ID,name:t.name||t.ticketName||``,description:t.description,price:t.price==null?0:t.price,quantity:t.quantity||t.totalQuantity||0,quantitySold:t.quantitySold||t.quantity_sold||0,quantityAvailable:t.quantityAvailable||t.quantity_available||(t.quantity||0)-(t.quantitySold||0),minPerOrder:t.minPerOrder||t.min_per_order||1,maxPerOrder:t.maxPerOrder||t.max_per_order||10,saleStartDate:t.saleStartDate||t.sale_start_date,saleEndDate:t.saleEndDate||t.sale_end_date,isHidden:t.isHidden||t.is_hidden||!1,revealWithPromoCode:t.revealWithPromoCode||t.reveal_with_promo_code,ticketType:t.ticketType||t.ticket_type||0,sectionId:t.sectionId||t.section_id,sortOrder:t.sortOrder||t.sort_order||0}}function Qt(e){let t=e,n=(t.availableTickets||t.available_tickets||t.tickets||[]).map(Zt),r=n.map(e=>e.price).filter(e=>e>0),i=r.length>0?Math.min(...r):void 0,a=r.length>0?Math.max(...r):void 0;return{eventID:t.eventID||t.id||t.ID||0,id:t.id||t.ID,name:t.name||t.title||``,title:t.title||t.name,slug:t.slug,description:t.description,date:t.date||t.startDateTime||t.start_date_time||``,startDateTime:t.startDateTime||t.start_date_time,endDateTime:t.endDateTime||t.end_date_time,doorsOpenTime:t.doorsOpenTime||t.doors_open_time,timezone:t.timezone||t.time_zone,venueId:t.venueId||t.venue_id,venueName:t.venueName||t.venue_name,venueAddress:t.venueAddress||t.venue_address,location:t.location||t.venueAddress||t.venue_address,imageUrl:$(t),imageURL:$(t),status:t.status,isPublished:t.isPublished??t.is_published,isCancelled:t.isCancelled??t.is_cancelled,availableTickets:n,ticketsAvailable:t.ticketsAvailable??t.tickets_available??n.reduce((e,t)=>e+(t.quantityAvailable||0),0),ticketsSold:t.ticketsSold??t.tickets_sold,minPrice:t.minPrice??t.min_price??i,maxPrice:t.maxPrice??t.max_price??a,ctaText:t.ctaText||t.cta_text,ctaState:Xt(t),showPerformers:t.showPerformers??t.show_performers,eventSeriesId:t.eventSeriesId||t.event_series_id,seriesInstanceNumber:t.seriesInstanceNumber||t.series_instance_number,timeZone:t.timeZone,salesStatus:t.salesStatus||t.sales_status,eventSummary:t.eventSummary,password:t.password,hasPassword:t.hasPassword,disclaimer:t.disclaimer,ticketType:t.ticketType,eventTicketingType:t.eventTicketingType,ageRestriction:t.ageRestriction,displayAgeRestriction:t.displayAgeRestriction,displayStartTime:t.displayStartTime,displayEndTime:t.displayEndTime,displayDoorsTime:t.displayDoorsTime,displayTicketsLeft:t.displayTicketsLeft,postSalesMessage:t.postSalesMessage,collectionId:t.collectionId||t.collection_id,ticketsRemaining:t.ticketsRemaining,ticketsTotal:t.ticketsTotal,hasHiddenTickets:t.hasHiddenTickets,stage:t.stage,stageName:t.stageName,stageId:t.stageId,eventCategoryTypes:t.eventCategoryTypes,publicPerformers:t.publicPerformers,collectionIds:t.collectionIds,venue:t.venue,performers:t.performers,faqs:t.faqs,showtimes:t.showtimes,purchasedTickets:t.purchasedTickets}}var $t=Zt,en=Qt,tn=Qt;function nn(e){return(0,n.resolveImageUrl)(e,{cdn:!0})}function rn(e){let t=e,n=t.logoUrl||t.logo_url||t.logo;return{id:t.id||t.ID||0,name:t.name||``,slug:t.slug,address:t.address,googleLocationNameCache:t.googleLocationNameCache||t.google_location_name_cache,city:t.city,state:t.state,zipCode:t.zipCode||t.zip_code,country:t.country,timezone:t.timezone||t.time_zone,logoUrl:nn(n),serviceFeePercentage:t.serviceFeePercentage??t.service_fee_percentage??0,serviceFeeCents:t.serviceFeeCents??t.service_fee_cents??0,absorbServiceFee:(t.absorbServiceFee??t.absorb_service_fee)===!0,taxPercentage:t.taxPercentage??t.tax_percentage??0,organizationId:t.organizationId||t.organization_id}}var an=rn;function on(e){let t=e;return{serviceFeePercentage:t.serviceFeePercentage??t.service_fee_percentage??0,serviceFeeCents:t.serviceFeeCents??t.service_fee_cents??0,taxPercentage:t.taxPercentage??t.tax_percentage??0}}function sn(e){return[e.address,e.city,e.state,e.zipCode].filter(Boolean).join(`, `)}exports.apiDelete=S,exports.apiGet=b,exports.apiPost=x,exports.apiPut=te,exports.applyGiftCard=jt,exports.applyPromoCode=Ke,exports.calculateCtaState=Xt,exports.cancelReservation=Fe,exports.checkCollectionPassword=vt,exports.checkEventPassword=yt,exports.completeGiftCardPayment=Nt,exports.completeReservation=Pe,exports.computeCtaState=Vt,exports.configureApi=p,exports.createGiftCardPurchase=At,exports.createOrder=Ie,exports.createPaymentIntent=ke,exports.err=F,exports.errNotFound=I,exports.extendCheckoutSession=ze,exports.extractVenueFees=on,exports.fetchAllVenues=rt,exports.fetchAllVenuesResult=nt,exports.fetchEventDetails=Ze,exports.fetchEventDetailsResult=G,exports.fetchEventPerformers=tt,exports.fetchEventPerformersResult=et,exports.fetchEventTickets=$e,exports.fetchEventTicketsResult=Qe,exports.fetchPublicCollection=_t,exports.fetchSeriesOccurrences=ht,exports.fetchSeriesOccurrencesResult=mt,exports.fetchVenueEvents=at,exports.fetchVenueEventsResult=it,exports.formatVenueAddress=sn,exports.formatWaitlistWindow=Bt,exports.getApiConfig=m,exports.getCDNImageUrl=Jt,exports.getCartByUUID=Me,exports.getClientIP=v,exports.getEventImageUrl=$,exports.getLegacyPublicUrl=g,exports.getMonthEvents=lt,exports.getMonthEventsResult=ct,exports.getOrder=Le,exports.getOrdersV2Url=_,exports.getOrgMonthEvents=dt,exports.getOrgMonthEventsResult=ut,exports.getPublicBaseUrl=h,exports.getSeriesOccurrences=pt,exports.getSeriesOccurrencesResult=ft,exports.getSessionStatus=Be,exports.getVenue=Ct,exports.getVenueBySlug=Tt,exports.getVenueFees=wt,exports.getWaitlistStatus=zt,exports.hasPromoCodes=Ge,exports.hasPublishedSite=Et,exports.initiateOrder=Ve,exports.isErr=Xe,exports.isOk=Ye,exports.joinWaitlist=It,exports.ok=P,exports.removeGiftCard=Mt,exports.removePromoCode=qe,exports.requeueWaitlistToFront=Rt,exports.resolvePublicEntity=gt,exports.submitCheckoutAnswers=je,exports.testNetworkConnection=bt,exports.trackUTMSource=He,exports.transformAvailableTicket=$t,exports.transformEvent=en,exports.transformEventData=tn,exports.transformOrder=Kt,exports.transformOrderForDisplay=qt,exports.transformTicket=Gt,exports.transformVenue=an,exports.unwrapOr=L,exports.updateCartAddOns=Ft,exports.updateCartQuantities=Ne,exports.validatePaymentIntent=Re,exports.validatePromoCode=We,exports.validateWaitlistToken=Lt;
package/dist/api/api.mjs CHANGED
@@ -762,7 +762,7 @@ function z(e, t) {
762
762
  //#endregion
763
763
  //#region src/lib/api/route-manifest.ts
764
764
  var B = "/api/v2/public", V = "/api/orders/v2/public", ht = "/api/orders/v2", gt = "00000000-0000-0000-0000-000000000000", H = gt;
765
- `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}`, `${B}`, `${B}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}`, `${B}`, `${B}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}`, `${B}`, `${B}`, `${B}`, `${B}${H}`, `${V}`, `${V}`, `${V}`, `${V}${H}`, `${V}`, `${V}${H}`, `${V}`, `${V}${H}`, `${V}`, `${V}${H}`, `${V}`, `${V}${H}`, `${V}`, `${V}${H}`, `${V}`, `${V}${H}`, `${V}`, `${V}${H}`, `${ht}`, `${ht}`, `${V}`, `${V}`, `${V}`, `${V}`, `${B}`, `${B}${H}`, `${B}`, `${B}`;
765
+ `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}`, `${B}`, `${B}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}`, `${B}`, `${B}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}`, `${B}`, `${B}`, `${B}`, `${B}${H}`, `${V}`, `${V}`, `${V}`, `${V}${H}`, `${V}`, `${V}${H}`, `${V}`, `${V}${H}`, `${V}`, `${V}${H}`, `${V}`, `${V}${H}`, `${V}`, `${V}${H}`, `${V}`, `${V}${H}`, `${V}`, `${V}${H}`, `${ht}`, `${ht}`, `${V}`, `${V}`, `${V}`, `${V}`, `${V}`, `${V}${H}`, `${B}`, `${B}${H}`, `${B}`, `${B}`;
766
766
  //#endregion
767
767
  //#region src/lib/api/events.ts
768
768
  var U = e("VC"), W = /* @__PURE__ */ new Map();
@@ -1076,9 +1076,41 @@ async function $t(e, t, n) {
1076
1076
  }
1077
1077
  }
1078
1078
  //#endregion
1079
+ //#region src/lib/api/cart-addons.ts
1080
+ var en = e("VC");
1081
+ async function tn(e, t) {
1082
+ let n = (e) => ({
1083
+ success: !1,
1084
+ error: e,
1085
+ lines: [],
1086
+ addOnQuantity: 0,
1087
+ repriced: !1
1088
+ });
1089
+ if (!e) return n(null);
1090
+ let r = {};
1091
+ for (let [e, n] of Object.entries(t)) {
1092
+ let t = typeof e == "number" ? e : parseInt(e, 10);
1093
+ !Number.isNaN(t) && n > 0 && (r[t] = n);
1094
+ }
1095
+ try {
1096
+ let t = await T(`${C()}/cart/${e}/add-ons`, { addOnQuantities: r });
1097
+ if (!t.success) return n(t.error || null);
1098
+ let i = t.data || {};
1099
+ return {
1100
+ success: !0,
1101
+ error: null,
1102
+ lines: i.addOns || [],
1103
+ addOnQuantity: i.addOnQuantity || 0,
1104
+ repriced: i.repriced === !0
1105
+ };
1106
+ } catch (e) {
1107
+ return en.error("updateCartAddOns error:", e), n(null);
1108
+ }
1109
+ }
1110
+ //#endregion
1079
1111
  //#region src/lib/api/waitlist.ts
1080
1112
  var Q = e("VC");
1081
- async function en(e, t, n = null, r = !1) {
1113
+ async function nn(e, t, n = null, r = !1) {
1082
1114
  try {
1083
1115
  let i = { email: t };
1084
1116
  n && r && (i.phone = n, i.smsOptIn = !0);
@@ -1098,7 +1130,7 @@ async function en(e, t, n = null, r = !1) {
1098
1130
  };
1099
1131
  }
1100
1132
  }
1101
- async function tn(e, t) {
1133
+ async function rn(e, t) {
1102
1134
  try {
1103
1135
  let n = await T(`/checkout/validate-token/${e}`, { email: t });
1104
1136
  return n.success ? {
@@ -1118,7 +1150,7 @@ async function tn(e, t) {
1118
1150
  };
1119
1151
  }
1120
1152
  }
1121
- async function nn(e, t) {
1153
+ async function an(e, t) {
1122
1154
  try {
1123
1155
  let n = await T(`/waitlist/requeue/${e}`, { email: t });
1124
1156
  return n.success ? { success: !0 } : {
@@ -1132,7 +1164,7 @@ async function nn(e, t) {
1132
1164
  };
1133
1165
  }
1134
1166
  }
1135
- async function rn(e) {
1167
+ async function on(e) {
1136
1168
  let t = {
1137
1169
  waitlistEnabled: !1,
1138
1170
  soldOut: !1,
@@ -1149,13 +1181,13 @@ async function rn(e) {
1149
1181
  return Q.error("getWaitlistStatus error:", e), t;
1150
1182
  }
1151
1183
  }
1152
- function an(e) {
1184
+ function sn(e) {
1153
1185
  let t = String(e % 60).padStart(2, "0");
1154
1186
  return e >= 3600 ? `${Math.floor(e / 3600)}:${String(Math.floor(e % 3600 / 60)).padStart(2, "0")}:${t}` : `${Math.floor(e / 60)}:${t}`;
1155
1187
  }
1156
1188
  //#endregion
1157
1189
  //#region src/lib/api/cta.ts
1158
- function on(e, t, n = {}) {
1190
+ function cn(e, t, n = {}) {
1159
1191
  let { cancelled: r = !1, isRegistration: i = !1, waitlistEnabled: a = !1 } = n, o = ee();
1160
1192
  if (r) return {
1161
1193
  text: "Canceled",
@@ -1230,7 +1262,7 @@ function on(e, t, n = {}) {
1230
1262
  disabled: !1,
1231
1263
  reason: "hidden_only"
1232
1264
  } : {
1233
- text: `On sale ${sn(_, m(_, o), [e.timezone, e.timeZone].find((e) => !!e && ne(e)))}`,
1265
+ text: `On sale ${ln(_, m(_, o), [e.timezone, e.timeZone].find((e) => !!e && ne(e)))}`,
1234
1266
  disabled: !0,
1235
1267
  reason: "coming_soon"
1236
1268
  } : h ? d() : u ? {
@@ -1243,7 +1275,7 @@ function on(e, t, n = {}) {
1243
1275
  reason: "sales_ended"
1244
1276
  };
1245
1277
  }
1246
- function sn(e, t, n) {
1278
+ function ln(e, t, n) {
1247
1279
  let r = t / 36e5, i = t / 864e5;
1248
1280
  if (n) {
1249
1281
  let t = e.toISOString(), a = te(n, e), o = `${_(t, n)} ${a}`;
@@ -1266,7 +1298,7 @@ function sn(e, t, n) {
1266
1298
  }
1267
1299
  //#endregion
1268
1300
  //#region src/lib/api/transformers/order.ts
1269
- function cn(e) {
1301
+ function un(e) {
1270
1302
  let t = e;
1271
1303
  return {
1272
1304
  uuid: t.uuid || String(t.id || t.ID || ""),
@@ -1284,7 +1316,7 @@ function cn(e) {
1284
1316
  checkedInAt: t.checkedInAt || t.checked_in_at
1285
1317
  };
1286
1318
  }
1287
- function ln(e) {
1319
+ function dn(e) {
1288
1320
  let t = e, n = t.purchasedTickets || t.tickets || t.purchased_tickets || [];
1289
1321
  return {
1290
1322
  uuid: t.uuid || String(t.id || t.ID || ""),
@@ -1300,14 +1332,14 @@ function ln(e) {
1300
1332
  discount: t.discount == null ? 0 : t.discount,
1301
1333
  paymentIntentId: t.paymentIntentId || t.payment_intent_id,
1302
1334
  paymentMethod: t.paymentMethod || t.payment_method,
1303
- purchasedTickets: n.map(cn),
1335
+ purchasedTickets: n.map(un),
1304
1336
  createdAt: t.createdAt || t.created_at,
1305
1337
  updatedAt: t.updatedAt || t.updated_at
1306
1338
  };
1307
1339
  }
1308
- var un = cn, dn = ln;
1309
- function fn(e) {
1310
- let t = ln(e), n = t.uuid.split("-")[0] || t.uuid, i = Number(t.totalAmount);
1340
+ var fn = un, pn = dn;
1341
+ function mn(e) {
1342
+ let t = dn(e), n = t.uuid.split("-")[0] || t.uuid, i = Number(t.totalAmount);
1311
1343
  return {
1312
1344
  orderId: t.uuid,
1313
1345
  displayOrderId: n,
@@ -1321,13 +1353,13 @@ function fn(e) {
1321
1353
  }
1322
1354
  //#endregion
1323
1355
  //#region src/lib/api/transformers/event.ts
1324
- function pn(e) {
1356
+ function hn(e) {
1325
1357
  return u(e, { cdn: !0 });
1326
1358
  }
1327
1359
  function $(e) {
1328
- return pn(e.imageUrl || e.imageURL || e.image_url || e.image || "");
1360
+ return hn(e.imageUrl || e.imageURL || e.image_url || e.image || "");
1329
1361
  }
1330
- function mn(e) {
1362
+ function gn(e) {
1331
1363
  switch (e) {
1332
1364
  case "available":
1333
1365
  case "sold_out":
@@ -1336,10 +1368,10 @@ function mn(e) {
1336
1368
  default: return null;
1337
1369
  }
1338
1370
  }
1339
- function hn(e) {
1371
+ function _n(e) {
1340
1372
  let t = e.ctaState || e.cta_state;
1341
1373
  if (t) {
1342
- let e = mn(t);
1374
+ let e = gn(t);
1343
1375
  if (e) return e;
1344
1376
  }
1345
1377
  if (e.isCancelled || e.is_cancelled) return "ended";
@@ -1356,7 +1388,7 @@ function hn(e) {
1356
1388
  return e + Math.max(0, n - r);
1357
1389
  }, 0) <= 0 ? "sold_out" : "available";
1358
1390
  }
1359
- function gn(e) {
1391
+ function vn(e) {
1360
1392
  let t = e;
1361
1393
  return {
1362
1394
  id: t.id || t.ID,
@@ -1377,8 +1409,8 @@ function gn(e) {
1377
1409
  sortOrder: t.sortOrder || t.sort_order || 0
1378
1410
  };
1379
1411
  }
1380
- function _n(e) {
1381
- let t = e, n = (t.availableTickets || t.available_tickets || t.tickets || []).map(gn), r = n.map((e) => e.price).filter((e) => e > 0), i = r.length > 0 ? Math.min(...r) : void 0, a = r.length > 0 ? Math.max(...r) : void 0;
1412
+ function yn(e) {
1413
+ let t = e, n = (t.availableTickets || t.available_tickets || t.tickets || []).map(vn), r = n.map((e) => e.price).filter((e) => e > 0), i = r.length > 0 ? Math.min(...r) : void 0, a = r.length > 0 ? Math.max(...r) : void 0;
1382
1414
  return {
1383
1415
  eventID: t.eventID || t.id || t.ID || 0,
1384
1416
  id: t.id || t.ID,
@@ -1406,7 +1438,7 @@ function _n(e) {
1406
1438
  minPrice: t.minPrice ?? t.min_price ?? i,
1407
1439
  maxPrice: t.maxPrice ?? t.max_price ?? a,
1408
1440
  ctaText: t.ctaText || t.cta_text,
1409
- ctaState: hn(t),
1441
+ ctaState: _n(t),
1410
1442
  showPerformers: t.showPerformers ?? t.show_performers,
1411
1443
  eventSeriesId: t.eventSeriesId || t.event_series_id,
1412
1444
  seriesInstanceNumber: t.seriesInstanceNumber || t.series_instance_number,
@@ -1442,13 +1474,13 @@ function _n(e) {
1442
1474
  purchasedTickets: t.purchasedTickets
1443
1475
  };
1444
1476
  }
1445
- var vn = gn, yn = _n, bn = _n;
1477
+ var bn = vn, xn = yn, Sn = yn;
1446
1478
  //#endregion
1447
1479
  //#region src/lib/api/transformers/venue.ts
1448
- function xn(e) {
1480
+ function Cn(e) {
1449
1481
  return u(e, { cdn: !0 });
1450
1482
  }
1451
- function Sn(e) {
1483
+ function wn(e) {
1452
1484
  let t = e, n = t.logoUrl || t.logo_url || t.logo;
1453
1485
  return {
1454
1486
  id: t.id || t.ID || 0,
@@ -1461,7 +1493,7 @@ function Sn(e) {
1461
1493
  zipCode: t.zipCode || t.zip_code,
1462
1494
  country: t.country,
1463
1495
  timezone: t.timezone || t.time_zone,
1464
- logoUrl: xn(n),
1496
+ logoUrl: Cn(n),
1465
1497
  serviceFeePercentage: t.serviceFeePercentage ?? t.service_fee_percentage ?? 0,
1466
1498
  serviceFeeCents: t.serviceFeeCents ?? t.service_fee_cents ?? 0,
1467
1499
  absorbServiceFee: (t.absorbServiceFee ?? t.absorb_service_fee) === !0,
@@ -1469,8 +1501,8 @@ function Sn(e) {
1469
1501
  organizationId: t.organizationId || t.organization_id
1470
1502
  };
1471
1503
  }
1472
- var Cn = Sn;
1473
- function wn(e) {
1504
+ var Tn = wn;
1505
+ function En(e) {
1474
1506
  let t = e;
1475
1507
  return {
1476
1508
  serviceFeePercentage: t.serviceFeePercentage ?? t.service_fee_percentage ?? 0,
@@ -1478,7 +1510,7 @@ function wn(e) {
1478
1510
  taxPercentage: t.taxPercentage ?? t.tax_percentage ?? 0
1479
1511
  };
1480
1512
  }
1481
- function Tn(e) {
1513
+ function Dn(e) {
1482
1514
  return [
1483
1515
  e.address,
1484
1516
  e.city,
@@ -1487,4 +1519,4 @@ function Tn(e) {
1487
1519
  ].filter(Boolean).join(", ");
1488
1520
  }
1489
1521
  //#endregion
1490
- export { ve as apiDelete, w as apiGet, T as apiPost, _e as apiPut, Zt as applyGiftCard, ut as applyPromoCode, hn as calculateCtaState, $e as cancelReservation, Rt as checkCollectionPassword, zt as checkEventPassword, $t as completeGiftCardPayment, Qe as completeReservation, on as computeCtaState, de as configureApi, Xt as createGiftCardPurchase, et as createOrder, qe as createPaymentIntent, L as err, R as errNotFound, rt as extendCheckoutSession, wn as extractVenueFees, Ct as fetchAllVenues, St as fetchAllVenuesResult, vt as fetchEventDetails, _t as fetchEventDetailsResult, xt as fetchEventPerformers, bt as fetchEventPerformersResult, yt as fetchEventTickets, q as fetchEventTicketsResult, Lt as fetchPublicCollection, Ft as fetchSeriesOccurrences, Pt as fetchSeriesOccurrencesResult, Tt as fetchVenueEvents, wt as fetchVenueEventsResult, Tn as formatVenueAddress, an as formatWaitlistWindow, fe as getApiConfig, pn as getCDNImageUrl, Xe as getCartByUUID, me as getClientIP, $ as getEventImageUrl, pe as getLegacyPublicUrl, kt as getMonthEvents, Ot as getMonthEventsResult, tt as getOrder, C as getOrdersV2Url, jt as getOrgMonthEvents, At as getOrgMonthEventsResult, S as getPublicBaseUrl, Nt as getSeriesOccurrences, Mt as getSeriesOccurrencesResult, it as getSessionStatus, Ut as getVenue, Gt as getVenueBySlug, Wt as getVenueFees, rn as getWaitlistStatus, lt as hasPromoCodes, Kt as hasPublishedSite, at as initiateOrder, mt as isErr, pt as isOk, en as joinWaitlist, I as ok, Qt as removeGiftCard, dt as removePromoCode, nn as requeueWaitlistToFront, It as resolvePublicEntity, Ye as submitCheckoutAnswers, Bt as testNetworkConnection, ot as trackUTMSource, vn as transformAvailableTicket, yn as transformEvent, bn as transformEventData, dn as transformOrder, fn as transformOrderForDisplay, un as transformTicket, Cn as transformVenue, z as unwrapOr, Ze as updateCartQuantities, nt as validatePaymentIntent, ct as validatePromoCode, tn as validateWaitlistToken };
1522
+ export { ve as apiDelete, w as apiGet, T as apiPost, _e as apiPut, Zt as applyGiftCard, ut as applyPromoCode, _n as calculateCtaState, $e as cancelReservation, Rt as checkCollectionPassword, zt as checkEventPassword, $t as completeGiftCardPayment, Qe as completeReservation, cn as computeCtaState, de as configureApi, Xt as createGiftCardPurchase, et as createOrder, qe as createPaymentIntent, L as err, R as errNotFound, rt as extendCheckoutSession, En as extractVenueFees, Ct as fetchAllVenues, St as fetchAllVenuesResult, vt as fetchEventDetails, _t as fetchEventDetailsResult, xt as fetchEventPerformers, bt as fetchEventPerformersResult, yt as fetchEventTickets, q as fetchEventTicketsResult, Lt as fetchPublicCollection, Ft as fetchSeriesOccurrences, Pt as fetchSeriesOccurrencesResult, Tt as fetchVenueEvents, wt as fetchVenueEventsResult, Dn as formatVenueAddress, sn as formatWaitlistWindow, fe as getApiConfig, hn as getCDNImageUrl, Xe as getCartByUUID, me as getClientIP, $ as getEventImageUrl, pe as getLegacyPublicUrl, kt as getMonthEvents, Ot as getMonthEventsResult, tt as getOrder, C as getOrdersV2Url, jt as getOrgMonthEvents, At as getOrgMonthEventsResult, S as getPublicBaseUrl, Nt as getSeriesOccurrences, Mt as getSeriesOccurrencesResult, it as getSessionStatus, Ut as getVenue, Gt as getVenueBySlug, Wt as getVenueFees, on as getWaitlistStatus, lt as hasPromoCodes, Kt as hasPublishedSite, at as initiateOrder, mt as isErr, pt as isOk, nn as joinWaitlist, I as ok, Qt as removeGiftCard, dt as removePromoCode, an as requeueWaitlistToFront, It as resolvePublicEntity, Ye as submitCheckoutAnswers, Bt as testNetworkConnection, ot as trackUTMSource, bn as transformAvailableTicket, xn as transformEvent, Sn as transformEventData, pn as transformOrder, mn as transformOrderForDisplay, fn as transformTicket, Tn as transformVenue, z as unwrapOr, tn as updateCartAddOns, Ze as updateCartQuantities, nt as validatePaymentIntent, ct as validatePromoCode, rn as validateWaitlistToken };
@@ -0,0 +1,61 @@
1
+ /**
2
+ * ADD-ONS ON A CART THAT IS ALREADY BEING PAID FOR (MIC-4326).
3
+ *
4
+ * Why this is not `updateCartQuantities`. The cart PUT carries only
5
+ * `quantities` / `donationAmounts` — there is no add-on field on it — and
6
+ * orders-service guards that route with `rejectIfPriced`, which refuses every
7
+ * mutation of a cart holding a PaymentIntent. `initializeStripePayment()` runs on
8
+ * checkout MOUNT, so on the checkout page the cart always has one. A PUT from
9
+ * here would 409 every time.
10
+ *
11
+ * `POST /cart/:uuid/add-ons` is the gift-card door instead: it reprices rather
12
+ * than refusing — cancelling the stale PaymentIntent so a secret priced without
13
+ * the t-shirt can never be confirmed — and tells us whether it did.
14
+ *
15
+ * NO BUYER-FACING COPY IN THIS FILE, deliberately: VC's l10n gates do not scan
16
+ * `api/*.ts`, so a hardcoded English sentence here would ship untranslated and
17
+ * unnoticed. Refusals are surfaced one of two ways — the SERVER's own message
18
+ * (which is already buyer-readable and localisation-free in the sense that it
19
+ * names the operator's own product: "Tour t-shirt just sold out"), or, when there
20
+ * is none, a `null` that the calling component renders from its own labels.
21
+ */
22
+ /** One add-on line as the cart now holds it. Money is CENTS, as everywhere add-ons are. */
23
+ export interface CartAddOnLine {
24
+ addOnId: number;
25
+ name: string;
26
+ quantity: number;
27
+ priceCents: number;
28
+ lineTotalCents: number;
29
+ }
30
+ export interface CartAddOnsResult {
31
+ success: boolean;
32
+ /**
33
+ * The server's refusal sentence, when it gave one. `null` means "no usable
34
+ * message" and the caller must fall back to its own labelled copy.
35
+ */
36
+ error: string | null;
37
+ lines: CartAddOnLine[];
38
+ addOnQuantity: number;
39
+ /**
40
+ * THE FIELD THE CALLER CANNOT SKIP. True means the cart's PaymentIntent was
41
+ * thrown away and a fresh one must be minted before the buyer can pay.
42
+ * Inferring this from "no error" would either strand the buyer against a dead
43
+ * secret or re-mint a perfectly good intent for nothing.
44
+ *
45
+ * False on an unchanged cart (an identical re-send short-circuits server-side)
46
+ * and false on failure, because nothing was repriced.
47
+ */
48
+ repriced: boolean;
49
+ }
50
+ /**
51
+ * Set the add-ons on an existing cart.
52
+ *
53
+ * ABSOLUTE, NOT A DELTA — the map is the desired end state ("2 tees"), matching
54
+ * `addOnQuantities` on cart-create. A delta cannot be retried safely: a dropped
55
+ * response leaves us unable to tell whether an increment landed, and re-sending
56
+ * buys a second shirt. The buyer's retry here is a finger on a `+` button, so
57
+ * idempotence is not theoretical.
58
+ *
59
+ * An EMPTY map removes every add-on; there is no separate delete call.
60
+ */
61
+ export declare function updateCartAddOns(cartId: string, quantities: Record<string | number, number>): Promise<CartAddOnsResult>;
@@ -38,6 +38,8 @@ export { ok, err, errNotFound, isOk, isErr, unwrapOr, type Result, } from './res
38
38
  export { getVenue, getVenueFees, getVenueBySlug, hasPublishedSite, } from './venues.js';
39
39
  export { createGiftCardPurchase, applyGiftCard, removeGiftCard, completeGiftCardPayment, } from './gift-cards.js';
40
40
  export type { GiftCardPurchaseRequest, GiftCardPurchaseResponse, ApplyGiftCardResult, RemoveGiftCardResult, CompleteGiftCardPaymentInput, CompleteGiftCardPaymentResult, } from './gift-cards.js';
41
+ export { updateCartAddOns } from './cart-addons.js';
42
+ export type { CartAddOnLine, CartAddOnsResult } from './cart-addons.js';
41
43
  export { joinWaitlist, getWaitlistStatus, validateWaitlistToken, requeueWaitlistToFront, formatWaitlistWindow, } from './waitlist.js';
42
44
  export type { JoinWaitlistResult, WaitlistStatusResult, ValidateWaitlistTokenResult, RequeueWaitlistResult, } from './waitlist.js';
43
45
  export { computeCtaState } from './cta.js';