PageSourceSearch

https://atlanta.tickets.beatthebomb.com/_nuxt/BlIef96a.js

js beatthebomb.com collected 2026-09-26 03:27:33 UTC 34,172 bytes, 1 lines download raw bytes

1import{e as Fe,u as je,x as _,f as O,k as qe,s as te,m as Ue,H as pe,I as Ve,_ as fe,N as he,c as l,b as ze,a as o,h as s,g,t as c,M as Je,d as L,n as A,F as D,r as Y,B as H,C as F,o as d}from"#entry";import{_ as Qe}from"./BdmGvVZS.js";import{g as Ye}from"./Q44y9Ezs.js";import{u as Ge}from"./BecuEjSs.js";import{u as We}from"./DNoqBAjw.js";import{u as Xe}from"./DCAEi1ey.js";import{u as Ke}from"./B0w0n0ny.js";import{f as Ze}from"./CN-k1-81.js";import{_ as et}from"./DlAUqK2U.js";import"./Ba8ZYnUw.js";import"./Bp_yj5VS.js";import"./CJPnT1D0.js";import"./9gGBeuqq.js";const tt={class:"min-h-screen bg-[var(--background)] flex flex-col"},ot={class:"flex-1 w-full max-w-[1140px] mx-auto px-5 md:px-8 py-8 md:py-12"},st={class:"flex flex-col xl:flex-row gap-8 items-start"},at={class:"flex-1 w-full min-w-0"},rt={key:0,class:"space-y-6"},nt={key:0,class:"bg-[var(--card)] border border-[var(--border)] p-5 flex items-center justify-between"},it={class:"font-heading text-lg font-bold text-[var(--foreground)]"},lt={class:"text-right"},dt={class:"font-heading text-xs tracking-[1.5px] text-[var(--muted-foreground)] uppercase mb-1"},ct={class:"font-heading text-2xl font-bold text-[var(--primary)]"},ut={key:0,class:"font-body text-[10px] text-[var(--muted-foreground)]/70 mt-0.5"},mt={key:1,class:"font-body text-[10px] text-[var(--muted-foreground)]/70 mt-0.5"},pt={key:1,class:"p-4 bg-red-500/10 border border-red-500/30"},ft={class:"font-body text-sm text-red-400"},ht={key:2,class:"flex flex-col items-center gap-4 py-12"},yt={key:3,class:"border border-amber-500/30 bg-amber-500/5 overflow-hidden"},bt={class:"p-5"},gt=["disabled"],vt={key:0,class:"flex items-center justify-center gap-2"},xt={key:1},_t={key:4,class:"flex flex-col items-center gap-4 py-8"},kt={class:"font-heading text-xs tracking-[1.5px] text-[var(--muted-foreground)] uppercase"},wt={key:1,class:"space-y-8"},Pt={key:0,class:"flex flex-col items-center gap-4 py-16"},Ct={key:1,class:"text-center py-16"},St={class:"space-y-5"},Mt={class:"grid grid-cols-1 gap-5"},Nt=["onClick"],It={key:0,class:"absolute top-0 left-0 right-0 h-[3px] bg-gradient-to-r from-[#00D9FF] via-[#ee088C] to-[#00ff7b]"},Tt={key:1,class:"absolute top-0 right-0 px-3 py-1 bg-[var(--primary)] text-black font-heading text-[10px] font-bold tracking-[1.5px] uppercase"},At={class:"mt-1"},Dt={class:"font-heading text-xl font-bold text-[var(--foreground)] mb-1"},Et={class:"font-heading text-3xl font-bold mb-4",style:{background:"linear-gradient(135deg, #00D9FF, #ee088C)","-webkit-background-clip":"text","-webkit-text-fill-color":"transparent","background-clip":"text"}},Bt={class:"font-body text-sm text-[var(--muted-foreground)] mb-4"},$t={class:"space-y-2"},Rt={class:"font-body text-xs text-[var(--foreground)]"},Ot={class:"border border-[var(--border)] bg-[var(--card)] p-5"},Lt={key:0,class:"mt-5 border-t border-[var(--border)] pt-5"},Ht={class:"space-y-4"},Ft={class:"shrink-0 w-7 h-7 rounded-full bg-[var(--primary)]/15 text-[var(--primary)] font-heading text-sm font-bold flex items-center justify-center"},jt={class:"font-body text-sm text-[var(--muted-foreground)] leading-relaxed"},qt={class:"bg-[var(--card)] border border-[var(--border)] p-6 space-y-5"},Ut={class:"font-heading text-sm font-bold tracking-[2px] text-[var(--foreground)] uppercase"},Vt={class:"grid grid-cols-1 sm:grid-cols-2 gap-4"},zt={class:"space-y-1.5"},Jt={for:"customer-first-name",class:"font-heading text-xs tracking-[1.5px] text-[var(--muted-foreground)] uppercase"},Qt={key:0,class:"font-body text-xs text-red-400"},Yt={class:"space-y-1.5"},Gt={for:"customer-last-name",class:"font-heading text-xs tracking-[1.5px] text-[var(--muted-foreground)] uppercase"},Wt={key:0,class:"font-body text-xs text-red-400"},Xt={class:"space-y-1.5"},Kt={for:"customer-email",class:"font-heading text-xs tracking-[1.5px] text-[var(--muted-foreground)] uppercase"},Zt={key:0,class:"font-body text-xs text-red-400"},eo={class:"space-y-1.5"},to={for:"customer-phone",class:"font-heading text-xs tracking-[1.5px] text-[var(--muted-foreground)] uppercase"},oo={key:0,class:"font-body text-xs text-red-400"},so={class:"space-y-1.5"},ao={class:"flex items-center gap-3"},ro=["disabled"],no={class:"w-16 h-11 flex items-center justify-center border border-[var(--border)] bg-black/50 font-heading text-lg font-bold text-white"},io=["disabled"],lo={key:0,class:"font-body text-xs text-[var(--muted-foreground)]/70"},co={class:"space-y-2"},uo={class:"font-heading text-xs tracking-[1.5px] text-[var(--muted-foreground)] uppercase"},mo={class:"font-body text-xs text-[var(--muted-foreground)]/70"},po={class:"space-y-2"},fo={key:0,class:"font-heading text-xs tracking-[1.5px] text-[var(--muted-foreground)]/80 w-14 text-right"},ho=["id","onUpdate:modelValue","disabled","placeholder"],yo={key:0,class:"w-full xl:w-[340px] xl:shrink-0 xl:sticky xl:top-20"},bo={class:"bg-[#1a1a1a] border border-[var(--border)]"},go={key:0,class:"px-6 pb-4"},vo={class:"w-full rounded-lg overflow-hidden bg-[var(--muted)] aspect-[16/9]"},xo=["src"],_o={class:"px-6"},ko={class:"flex justify-between items-start gap-3"},wo={class:"font-heading text-sm font-bold text-[var(--foreground)]"},Po={key:0,class:"font-body text-xs text-[var(--muted-foreground)] mt-0.5"},Co={class:"font-heading font-bold text-[var(--foreground)] whitespace-nowrap"},So={class:"px-6 py-5 mt-4 border-t border-[var(--border)]"},Mo={class:"flex justify-between items-center mb-1"},No={class:"font-body text-sm text-[var(--foreground)]"},Io={class:"flex justify-between items-center mb-2"},To={class:"font-body text-sm text-[var(--foreground)]"},Ao={class:"flex justify-between items-center mb-4"},Do={class:"font-heading text-[22px] font-bold text-[var(--primary)]"},Eo={class:"flex justify-between items-center"},Bo={class:"font-heading text-[22px] font-bold text-[var(--primary)]"},$o={key:2,class:"p-3 bg-red-500/10 border border-red-500/30 mb-4"},Ro={class:"font-body text-xs text-red-400"},Oo=["disabled"],Lo={key:0,class:"flex items-center justify-center gap-3"},Ho={key:1},Fo={key:4,class:"font-body text-xs text-[var(--muted-foreground)] text-center"},jo={class:"font-body text-[11px] text-[var(--muted-foreground)] text-center mt-3"},qo=["innerHTML"],oe=10,G="adyen-dropin-membership",Uo=12,Vo=Fe({__name:"index",setup(zo){const p=je(),{c:P}=Ge({page:"membership",defaults:Ye("membership")}),{trackViewItem:ye,trackAddToCart:be,trackBeginCheckout:ge,trackAddPaymentInfo:ve}=We(),{trackFunnelEvent:W}=Xe();Ke({title:P("seo_title")});const S=_([]),X=_(!0);async function xe(){X.value=!0;try{const e=p.location?.id,t=e?`?locationId=${e}
1`:"",r=(await $fetch(`/api/public/cms/products${t}`)).filter(a=>a.rollerProductType==="membership"&&a.enabled!==!1&&a.slug==="summer-blast-pass");S.value=r.map(a=>{let m=0;if(a.metadata?.price)m=Number(a.metadata.price);else if(a.priceLabel){const y=a.priceLabel.replace(/[^0-9.]/g,"");m=parseFloat(y)||0}const h=a.metadata?.missionCount??a.metadata?.packSize??1;let n=[];return Array.isArray(a.metadata?.missions)&&a.metadata.missions.length>0?n=a.metadata.missions:Array.isArray(a.cardBackIncludes)&&a.cardBackIncludes.length>0?n=a.cardBackIncludes:n=h>1?[`Choose any ${h} bomb missions`]:["Choose any 1 bomb mission"],{slug:a.slug,name:a.displayName,price:m,missionCount:h,description:a.shortDescription||a.cardBackDescription||"",missions:n,badge:a.metadata?.badge??null,packSize:a.metadata?.packSize??h,cmsProduct:a}})}catch(e){console.error("[Membership] Failed to load CMS pass options:",e),S.value=[]}finally{X.value=!1}}const E=_(""),w=O(()=>S.value.find(e=>e.slug===E.value)??S.value[0]??null);function _e(e){E.value=e}qe(async()=>{if(new URLSearchParams(window.location.search).has("redirectResult")){await Oe();return}if(Ze(),!p.location){await te("/");return}await xe();const t=p.selectedCmsProduct?.slug;t&&S.value.some(u=>u.slug===t)?E.value=t:S.value.length>0&&(E.value=S.value[0].slug)}),Ue(w,e=>{e&&ye({id:e.slug,name:e.name,price:e.price,category:"Membership"})},{immediate:!1});function K(){const e=new Date;return e.setDate(e.getDate()+7),e.toISOString().split("T")[0]}const i=pe({firstName:"",lastName:"",email:"",phone:"",ticketHolderNames:[""]}),v=pe({firstName:"",lastName:"",email:"",phone:""}),f=_(1);function se(e){const t=Math.max(1,Math.min(oe,Math.floor(e)));for(f.value=t;i.ticketHolderNames.length<t;)i.ticketHolderNames.push("");for(;i.ticketHolderNames.length>t;)i.ticketHolderNames.pop()}function ke(){se(f.value+1)}function we(){se(f.value-1)}function Pe(){return v.firstName=i.firstName.trim()?"":"First name is required",v.lastName=i.lastName.trim()?"":"Last name is required",v.email=/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(i.email)?"":"Valid email is required",v.phone=i.phone.trim().replace(/\D/g,"").length>=10?"":"Valid phone number is required (min 10 digits)",!Object.values(v).some(e=>e)}const N=_(!1),k=_(!1),B=_(!1),b=_(null),j=_(!1),I=_(!1),C=_(!1),$=_(!1),q=_(null),R=_(null);let M=null,U;async function Ce(){if(!Pe())return;const e=w.value;e&&(p.setCmsProduct(e.cmsProduct),be()),await Se()}async function Se(){if(C.value)return;N.value=!0,b.value=null;const e=w.value;if(!e){b.value="No pass selected. Please select a pass and try again.",N.value=!1;return}const t=K(),u={cartId:`membership-${Date.now()}`,product:e.slug,missionType:"paint",timeSlot:{id:"membership",sessionId:"membership",startTime:new Date().toISOString(),endTime:new Date().toISOString(),price:e.price,available:1},quantity:f.value,pricePerPerson:e.price,date:t,rollerProductType:"membership",ticketHolderNames:[...i.ticketHolderNames]},r=i.ticketHolderNames.map(n=>n.trim()).filter(Boolean),a=r.length?f.value===1?`Ticket holder: ${r[0]}`:`Ticket holders (${r.length}/${f.value}): ${r.join(", ")}`:"",m=(e.price*f.value).toFixed(2),h=[`Blast Pass purchase — ${e.name} × ${f.value} — $${m}`,a].filter(Boolean).join(" | ");try{const n=await $fetch("/api/roller/draft",{method:"POST",body:{locationId:p.location.id,customer:{firstName:i.firstName.trim(),lastName:i.lastName.trim(),email:i.email.trim(),phone:i.phone.trim()},cart:[u],notes:h,paymentType:"full"}});n.success&&n.draftBookingId&&(q.value=n.draftBookingId,R.value=n.paymentJwt,x.value=n.costs||null,C.value=!0,N.value=!1,await he(),await Ie())}catch(n){console.error("[Membership] Draft creation error:",n),b.value=n.data?.statusMessage||n.message||"Failed to initialize payment. Please try again.",N.value=!1}}function Me(){C.value=!1,q.value=null,R.value=null,j.value=!1,I.value=!1,b.value=null,N.value=!1,k.value=!1,$.value=!1,x.value=null;{de();const e=document.getElementById("adyen-dropin-membership");e&&(e.innerHTML="")}M=null}const Ne=new Set(["houston"]),ae=O(()=>{const e=(p.location?.id||"").toLowerCase();return Ne.has(e)});async function Ie(){if(!R.value){I.value=!0;return}try{$e();const e=await $fetch("/api/roller/payment-config",{method:"POST",body:{locationId:p.location.id}});if(!e.success||!e.configurationId||!e.integrationId){console.warn("[Membership] Payment c
1onfig incomplete:",e),I.value=!0;return}const{EcomPaymentService:t,PaymentResult:u}=await fe(async()=>{const{EcomPaymentService:n,PaymentResult:y}=await import("./BL1N_IGS.js");return{EcomPaymentService:n,PaymentResult:y}},[],import.meta.url);U=u,M=new t;const r={configurationId:e.configurationId,apiUrl:e.apiUrl,integrationId:e.integrationId},a={translate:n=>n,http:ce(e.token),log:{info:n=>console.log("[EcomPayments]",n),warn:(n,y)=>console.warn("[EcomPayments]",n,y||""),error:(n,y)=>console.error("[EcomPayments]",n,y||"")}};if(!await M.bootstrap(r,a)){console.warn("[Membership] Bootstrap returned null - payment not configured"),I.value=!0;return}try{const n=M.paymentProvider;if(n?.config){n.config.expandFirstMethod=!0;const y=n.config.paymentMethods;if(Array.isArray(y)){const Z=y.findIndex(ee=>ee?.type==="scheme");if(Z>0){const[ee]=y.splice(Z,1);y.unshift(ee)}}}}catch(n){console.warn("[Membership] expandFirstMethod patch failed (non-fatal):",n?.message)}const h={jwt:R.value,hasRecurringBilling:!1,redirectUrl:window.location.href,paymentContainerDivId:"adyen-dropin-membership",handlers:{onReady:()=>{j.value=!0,z=0,ge(),W("checkout_started"),le(),Be()},onSelect:n=>{console.log("[Membership] Payment method selected:",n.type)},onBeforeSubmit:async()=>{k.value=!0,b.value=null,$.value||($.value=!0,ve())},onPaymentReceived:()=>{console.log("[Membership] Payment received, awaiting confirmation...")},onPaymentCompleted:async n=>{if(n.result===U.approved)await ue(n);else{const y=n.rawResult?.resultCode||n.message;y==="Cancelled"||y==="CANCELED"?(console.log("[Membership] Payment cancelled by user — resetting for retry"),k.value=!1,$.value=!1):(b.value=n.message||"Payment was not approved. Please try again.",console.error("[Membership] Adyen error:",y,n.message),k.value=!1,$.value=!1)}}}};await M.setup(h)}catch(e){console.error("[Membership] Payment init error:",e.message||e),I.value=!0}}let T=null,V=!1;function re(e){const t=e.innerHTML.toLowerCase();return t.includes("applepay")||t.includes("apple pay")||!!e.querySelector("apple-pay-button")||!!e.querySelector('[class*="applepay"]')}function ne(e){const t=e.innerHTML.toLowerCase();return t.includes("googlepay")||t.includes("google pay")||t.includes("paywithgoogle")||!!e.querySelector('[class*="googlepay"]')}function Te(e){return(e.className||"").toString().toLowerCase().includes("--scheme")||e.getAttribute("data-cid")==="scheme"||!!e.querySelector('[data-cid="scheme"]')}function Ae(){const e=document.getElementById(G);e&&e.querySelectorAll(".adyen-checkout__payment-method").forEach(t=>{const u=re(t)||ne(t)||Te(t);t.style.display=u?"":"none"})}function De(){const e=document.getElementById(G);if(!e)return;const t=e.querySelectorAll(".adyen-checkout__payment-method");if(t.length===0)return;const u=t[0].parentElement;u&&u.style.display!=="flex"&&(u.style.display="flex",u.style.flexDirection="column"),t.forEach(r=>{const a=r;re(r)?a.style.order="-2":ne(r)?a.style.order="-1":a.style.order="0"})}let ie=0,z=0;function Ee(){try{const e=document.getElementById(G);if(!e)return;const t=e.querySelectorAll('.adyen-checkout__payment-method--scheme, [data-cid="scheme"]');if(t.length===0)return;const u=t[t.length-1],r=u.querySelector(".adyen-checkout__payment-method__details");if(r&&r.offsetHeight>0){z=0;return}if(Array.from(e.querySelectorAll(".adyen-checkout__payment-method:not(.adyen-checkout__payment-method--scheme)")).some(n=>{const y=n.querySelector(".adyen-checkout__payment-method__details");return!!y&&y.offsetHeight>0})||z>=Uo)return;const m=Date.now();if(m-ie<400)return;ie=m,z++;const h=u.querySelector('input[type="radio"]')||u.querySelector(".adyen-checkout__payment-method__radio")||u.querySelector(".adyen-checkout__payment-method__header");h&&h.click()}catch{}}function le(){Ae(),De(),Ee()}function Be(){T&&T.disconnect();const e=document.getElementById(G);e&&(T=new MutationObserver(()=>{V||(V=!0,requestAnimationFrame(()=>{le(),V=!1}))}),T.observe(e,{childList:!0,subtree:!0}))}function de(){T&&(T.disconnect(),T=null),V=!1}Ve(()=>de());function ce(e){const t=async(u,r={})=>{const a=await fetch(u,{...r,headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`,...r.headers||{}}});if(!a.ok){const h=await a.text();throw new Error(`HTTP ${a.status}: ${h}`)}const m=a.headers.get("content-type");return m&&m.includes("application/json")?a.json():a.text()};return{get:async(u,r)=>{const a=new URL(u);if(r)for(const[h,n]of Object.entries(r))n!=null&&a.searchParams.set(h,String(n));const m=await t(a.toString(),{method:"GET"});if(ae.value&&u.includes("/ecom")&&m&&Array.isArray(m.paymentMethods)){const h=m.paymentMethods;h.some(y=>String(y?.type||"").toLowerCase()==="applepay")||(h.push({type:"applepay",name:"Apple Pay",brands:[],details:[]}),console.log("[Membership] Injected applepay into paymentMethods (location enabled)"))}return m},post:async(u,r)=>(ae.value&&r&&u.includes("payment/session")&&Array.isArray(r.unsupportedPaymentMethods)&&(r.unsupportedPaymentMethods=[]),t(u,{method:"POST",body:r?JSON.stringify(r):void 0}))}}function $e(){if(document.getElementById("adyen-css"))return;const e=document.createElement("link");e.id="adyen-css",e.rel="stylesheet",e.href="https://checkoutshopper-test.adyen.com/checkoutshopper/sdk/6.31.1/a
1dyen.css",document.head.appendChild(e)}async function ue(e){const t=w.value;if(!t){b.value="No pass selected. Please contact support.",k.value=!1;return}const u=K(),r={cartId:`membership-${Date.now()}`,product:t.slug,missionType:"paint",timeSlot:{id:"membership",sessionId:"membership",startTime:new Date().toISOString(),endTime:new Date().toISOString(),price:t.price,available:1},quantity:f.value,pricePerPerson:t.price,date:u,rollerProductType:"membership",ticketHolderNames:[...i.ticketHolderNames]};try{const a=await $fetch("/api/roller/complete",{method:"POST",body:{locationId:p.location.id,draftBookingId:q.value,productType:"membership",paymentJwt:R.value,adyenSessionId:localStorage.getItem("ecom-payments:session-id")?.replace(/^"|"$/g,"")||"",paymentResult:{resultCode:e.rawResult?.resultCode||"Authorised",paymentMethod:e.rawResult?.paymentMethod,pspReference:e.rawResult?.pspReference,merchantReference:e.rawResult?.merchantReference,...e.rawResult},customer:{firstName:i.firstName.trim(),lastName:i.lastName.trim(),email:i.email.trim(),phone:i.phone.trim()},cart:[r]}});a.success?(W("payment_completed"),p.setRollerBooking(a.bookingNumber||"",a.bookingId||""),p.setCustomer({firstName:i.firstName.trim(),lastName:i.lastName.trim(),email:i.email.trim(),phone:i.phone.trim()}),p.setCmsProduct(t.cmsProduct),p.setPaymentMode("full",a.total??t.price),p.purchaseType="membership",p.membershipCodes=a.membershipCodes??[],p.cart=[r],p.rollerCosts={total:x.value?.total??a.total??t.price,tax:x.value?.tax??0,fees:x.value?.fees??0,subTotal:x.value?.subTotal??t.price},k.value=!1,await te("/confirmation")):(b.value="Booking could not be confirmed. Please contact support.",k.value=!1)}catch(a){console.error("[Membership] Complete booking error:",a),b.value=a.data?.statusMessage||"Failed to confirm purchase. Your payment was processed - please contact support.",k.value=!1}}async function Re(){B.value=!0,b.value=null;const e=w.value;if(!e){b.value="No pass selected.",B.value=!1;return}const t=K(),u={cartId:`membership-${Date.now()}`,product:e.slug,missionType:"paint",timeSlot:{id:"membership",sessionId:"membership",startTime:new Date().toISOString(),endTime:new Date().toISOString(),price:e.price,available:1},quantity:f.value,pricePerPerson:e.price,date:t,rollerProductType:"membership",ticketHolderNames:[...i.ticketHolderNames]};try{const r=await $fetch("/api/roller/complete",{method:"POST",body:{locationId:p.location.id,draftBookingId:q.value,productType:"membership",paymentResult:{resultCode:"Authorised",paymentMethod:"mock",pspReference:`MOCK-${Date.now()}`},customer:{firstName:i.firstName.trim(),lastName:i.lastName.trim(),email:i.email.trim(),phone:i.phone.trim()},cart:[u]}});r.success?(W("payment_completed"),p.setRollerBooking(r.bookingNumber||"",r.bookingId||""),p.setCustomer({firstName:i.firstName.trim(),lastName:i.lastName.trim(),email:i.email.trim(),phone:i.phone.trim()}),p.setCmsProduct(e.cmsProduct),p.setPaymentMode("full",r.total??e.price),p.purchaseType="membership",p.membershipCodes=r.membershipCodes??[],p.cart=[u],p.rollerCosts={total:x.value?.total??r.total??e.price,tax:x.value?.tax??0,fees:x.value?.fees??0,subTotal:x.value?.subTotal??e.price},await te("/confirmation")):b.value="Booking could not be confirmed. Please contact support."}catch(r){console.error("[Membership] Mock payment error:",r),b.value=r.data?.statusMessage||r.message||"Mock payment failed"}finally{B.value=!1}}async function Oe(){if(p.location){k.value=!0;try{const e=await $fetch("/api/roller/payment-config",{method:"POST",body:{locationId:p.location.id}});if(!e.success){b.value="Failed to resume payment after 3D Secure.",k.value=!1;return}const{EcomPaymentService:t,PaymentResult:u}=await fe(async()=>{const{EcomPaymentService:m,PaymentResult:h}=await import("./BL1N_IGS.js");return{EcomPaymentService:m,PaymentResult:h}},[],import.meta.url);U=u,M=new t;const r={configurationId:e.configurationId,apiUrl:e.apiUrl,integrationId:e.integrationId},a={translate:m=>m,http:ce(e.token),log:{info:m=>console.log("[EcomPayments]",m),warn:(m,h)=>console.warn("[EcomPayments]",m,h||""),error:(m,h)=>console.error("[EcomPayments]",m,h||"")}};await M.bootstrap(r,a),C.value=!0,await he(),await M.handleRedirect({onPaymentCompleted:async m=>{m.result===U.approved?await ue(m):(b.value=m.message||"Payment was not approved after 3D Secure.",k.value=!1)}})}catch(e){console.error("[Membership] Redirect handling error:",e),b.value="Failed to process 3D Secure result. Please contact support.",k.value=!1}}}const Le=O(()=>{const e=w.value;return e?`$${e.price}`:"$0"}),J=O(()=>{const e=w.value;return e?`$${(e.price*f.value).toFixed(2)}`:"$0"}),x=_(null),me=O(()=>{const e=w.value?.cmsProduct;return e?.imageUrl||e?.rollerImageUrl||null}),Q=_(!1),He=["Buy the pass. One pass per person. Take note of the membership number in your confirmation email.","You have 90 days from your purchase date to use everything on your pass—1 standard bomb mission per calendar month, unlimited Arcade Battle and other bonus discounts.","When you're ready to book a bomb mission or arcade time, apply your membership code at checkout. If you have other members on your booking, enter each of their Membership codes too! The pricing adjusts automatically. For food and drinks, add items to your cart and apply your membership code—the 10% discount will be applied at checkout. Or show your membership confirmation email to our staff onsite and they'll apply the discount for you.","Go have a blast!"];return(e,t)=>{const u=Qe;return d(),l("div",tt,[ze(u,{"show-back":"","back-to":"/products","location-name":s(p).location?.name?.toUpperCase()},null,8,["location-name"]),o("div",ot,[t[27]||(t[27]=o("div",{class:"text-center mb-10"},[o("h1",{class:"font-heading text-3xl md:text-5xl font-bold tracking-[3px] uppercase",style:{background:"linear-gradient(135deg, #00D9FF, #FF1493, #00ff7b)","-webkit-background-clip":"text","-webkit-text-fill-color":"transparent","background-clip":"text"}}," SUMMER BLAST PASS ")],-1)),o("div",st,[o("div",at,[s(C)?(d(),l("div",rt,[s(w)?(d(),l("div",nt,[o("div",null,[t[5]||(t[5]=o("p",{class:"font-heading text-xs tracking-[1.5px] text-[var(--muted-foreground)] uppercase mb-1"}," Selected Pass ",-1)),o("p",it,c(s(w).name),1)]),o("div",lt,[o("p",dt,c(s(f)>1?`Total (${s(f)} passes)`:"Total"),1),o("p",ct,c(s(x)?`$${s(x).total.toFixed(2)}`:s(J)),1),s(x)?(d(),l("p",ut,"incl. tax")):s(f)>1?(d(),l("p",mt,c(s(Le))+" × "+c(s(f)),1)):g("",!0)])])):g("",!0),s(b)?(d(),l("div",pt,[o("p",ft,c(s(b)),1)])):g("",!0),!s(j)&&!s(I)?(d(),l("div",ht,[...t[6]||(t[6]=[o("div",{class:"w-10 h-10 border-2 border-[var(--primary)] border-t-transparent roun
1ded-full animate-spin"},null,-1),o("p",{class:"font-heading text-xs tracking-[1.5px] text-[var(--muted-foreground)] uppercase"}," Loading payment form... ",-1)])])):g("",!0),s(I)?(d(),l("div",yt,[t[9]||(t[9]=o("div",{class:"h-[3px] w-full bg-gradient-to-r from-amber-500 via-amber-400 to-amber-500"},null,-1)),o("div",bt,[t[8]||(t[8]=Je('<div class="flex items-center gap-3 mb-3" data-v-29c52518><svg class="w-5 h-5 text-amber-400 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" data-v-29c52518><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4.5c-.77-.833-2.694-.833-3.464 0L3.34 16.5c-.77.833.192 2.5 1.732 2.5z" data-v-29c52518></path></svg><span class="font-heading text-sm font-bold tracking-[1px] text-amber-400 uppercase" data-v-29c52518>Dev Mode — Payment Bypassed</span></div><p class="font-body text-sm text-[var(--muted-foreground)] mb-5" data-v-29c52518> Adyen payment is not configured for this environment. Complete the booking without payment for testing. </p>',2)),o("button",{onClick:Re,disabled:s(B),class:"w-full h-12 bg-amber-500 hover:bg-amber-400 text-black font-heading font-bold uppercase tracking-[2px] text-sm transition-all disabled:opacity-50 disabled:cursor-not-allowed"},[s(B)?(d(),l("span",vt,[...t[7]||(t[7]=[o("div",{class:"w-4 h-4 border-2 border-black border-t-transparent rounded-full animate-spin"},null,-1),L(" Completing... ",-1)])])):(d(),l("span",xt,"Complete Without Payment (Dev)"))],8,gt)])])):g("",!0),s(k)?(d(),l("div",_t,[t[10]||(t[10]=o("div",{class:"w-10 h-10 border-2 border-[var(--primary)] border-t-transparent rounded-full animate-spin"},null,-1)),o("p",kt,c(s(P)("processing_text")),1)])):g("",!0),o("div",{class:A({"opacity-0 pointer-events-none h-0 overflow-hidden":!s(j)||s(k)})},[...t[11]||(t[11]=[o("div",{id:"adyen-dropin-membership"},null,-1)])],2)])):(d(),l("div",wt,[s(X)?(d(),l("div",Pt,[...t[12]||(t[12]=[o("div",{class:"w-10 h-10 border-2 border-[var(--primary)] border-t-transparent rounded-full animate-spin"},null,-1),o("p",{class:"font-heading text-xs tracking-[1.5px] text-[var(--muted-foreground)] uppercase"}," Loading passes... ",-1)])])):s(S).length===0?(d(),l("div",Ct,[...t[13]||(t[13]=[o("p",{class:"font-body text-[var(--muted-foreground)]"},"No membership passes are currently available at this location.",-1)])])):(d(),l(D,{key:2},[o("section",St,[o("div",Mt,[(d(!0),l(D,null,Y(s(S),r=>(d(),l("button",{key:r.slug,type:"button",class:A(["relative text-left p-6 border transition-all focus:outline-none group overflow-hidden",s(E)===r.slug?"border-[var(--primary)] bg-[var(--primary)]/5 ring-1 ring-[var(--primary)]/30":"border-[var(--border)] bg-[var(--card)] hover:border-[var(--primary)]/40"]),onClick:a=>_e(r.slug)},[s(E)===r.slug?(d(),l("div",It)):g("",!0),r.badge?(d(),l("div",Tt,c(r.badge),1)):g("",!0),o("div",At,[o("p",Dt,c(r.name),1),o("p",Et," $"+c(r.price),1),o("p",Bt,c(r.description),1),o("ul",$t,[(d(!0),l(D,null,Y(r.missions,a=>(d(),l("li",{key:a,class:"flex items-center gap-2"},[t[14]||(t[14]=o("svg",{class:"w-3.5 h-3.5 text-[var(--primary)] flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2.5"},[o("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5 13l4 4L19 7"})],-1)),o("span",Rt,c(a),1)]))),128))])])],10,Nt))),128))])]),o("section",Ot,[o("button",{type:"button",class:"flex items-center justify-between w-full focus:outline-none",onClick:t[0]||(t[0]=r=>Q.value=!s(Q))},[t[15]||(t[15]=o("span",{class:"font-heading text-sm font-bold tracking-[1.5px] text-[var(--foreground)] uppercase"}," More Info — How To Redeem ",-1)),o("span",{class:A(["material-symbols-outlined text-[20px] text-[var(--muted-foreground)] transition-transform duration-200",s(Q)?"rotate-180":""])},"expand_more",2)]),s(Q)?(d(),l("div",Lt,[o("ol",Ht,[(d(),l(D,null,Y(He,(r,a)=>o("li",{key:a,class:"flex gap-3"},[o("span",Ft,c(a+1),1),o("span",jt,c(r),1)])),64))])])):g("",!0)]),o("section",qt,[o("h2",Ut,c(s(P)("your_info_heading")),1),o("div",Vt,[o("div",zt,[o("label",Jt,c(s(P)("label_first_name")),1),H(o("input",{id:"customer-first-name","onUpdate:modelValue":t[1]||(t[1]=r=>s(i).firstName=r),type:"text",placeholder:"First name",autocomplete:"given-name",class:A(["w-full h-11 px-3 bg-black/50 border font-body text-sm text-white placeholder:text-[var(--muted-foreground)] focus:outline-none focus:ring-1 transition-colors",s(v).firstName?"border-red-500/60 focus:border-red-500/60 focus:ring-red-500/20":"border-[var(--border)] focus:border-[var(--primary)]/50 focus:ring-[var(--primary)]/20"])},null,2),[[F,s(i).firstName]]),s(v).firstName?(d(),l("p",Qt,c(s(v).firstName),1)):g("",!0)]),o("div",Yt,[o("label",Gt,c(s(P)("label_last_name")),1),H(o("input",{id:"customer-last-name","onUpdate:modelValue":t[2]||(t[2]=r=>s(i).lastName=r),type:"text",placeholder:"Last name",autocomplete:"family-name",class:A(["w-full h-11 px-3 bg-black/50 border font-body text-sm text-white placeholder:text-[var(--muted-foreground)] focus:outline-none focus:ring-1 transition-colors",s(v).lastName?"border-red-500/60 focus:border-red-500/60 focus:ring-red-500/20":"border-[var(--border)] focus:border-[var(--primary)]/50 focus:ring-[var(--primary)]/20"])},null,2),[[F,s(i).lastName]]),s(v).lastName?(d(),l("p",Wt,c(s(v).lastName),1)):g("",!0)]),o("div",Xt,[o("label",Kt,c(s(P)("label_email")),1),H(o("input",{id:"customer-email","onUpdate:modelValue":t[3]||(t[3]=r=>s(i).email=r),type:"email",placeholder:"[email protected]",autocomplete:"email",class:A(["w-full h-11 px-3 bg-black/50 border font-body text-sm text-white placeholder:text-[var(--muted-foreground)] focus:outline-none focus:ring-1 transition-colors",s(v).email?"border-red-500/60 focus:border-red-500/60 focus:ring-red-500/20":"border-[var(--border)] focus:border-[var(--primary)]/50 focus:ring-[var(--primary)]/20"])},null,2),[[F,s(i).email]]),s(v).email?(d(),l("p",Zt,c(s(v).email),1)):g("",!0)]),o("div",eo,[o("label",to,c(s(P)("label_phone")),1),H(o("input",{id:"customer-phone","onUpdate:modelValue":t[4]||(t[4]=r=>s(i).phone=r),type:"tel",placeholder:"(555) 555-5555",autocomplete:"tel",class:A(["w-full h-11 px-3 bg-black/50 border font-body text-sm text-white placeholder:text-[var(--muted-foreground)] focus:outline-none focus:ring-1 transition-colors",s(v).phone?"border-red-500/60 focus:border-red-500/60 focus:ring-red-500/20":"border-[var(--border)] focus:border-[var(--primary)]/50 focus:ring-[var(--primary)]/20"])},null,2),[[F,s(i).phone]]),s(v).phone?(d(),l("p",oo,c(s(v).phone),1)):g("",!0)])]),o("div",so,[t[17]||(t[17]=o("label",{class:"font-heading text-xs tracking-[1.5px] text-[var(--muted-foreground)] uppercase"}," How many passes? ",-1)),o("div",ao,[o("button",{type:"button",onClick:we,disabled:s(f)<=1||s(C),class:"w-11 h-11 flex items-center justify-center border border-[var(--border)] bg-black/50 font-heading text-xl text-white hover:bg-[var(--primary)]/10 hover:border-[var(--primary)]/50 disabled:opacity-30 disabled:cursor-not-allowed transition-colors","aria-label":"Decrease pass quantity"},"−",8,ro),o("div",no,c(s(f)),1),o("button",{type:"button",onClick:ke,disabled:s(f)>=oe||s(C),class:"w-11 h-11 flex items-center justify-center border border-[var(--border)] bg-black/50 font-heading text-xl text-white hover:bg-[var(--primary)]/10 hover:border-[var(--primary)]/50 disabled:opacity-30 disabled:cursor-not-allowed transition-colors","aria-label":"Increase pass quantity"},"+",8,io),o("span",{class:"font-body text-xs text-[var(--muted-foreground)]/70 ml-1"},"max "+c(oe))]),s(C)?(d(),l("p",lo,[t[16]||(t[16]=L(" Locked while payment form is loaded. ",-1)),o("button",{type:"button",onClick:Me,class:"text-[var(--primary)] underline hover:opacity-80"}," Change pass count ")])):g("",!0)]),o("div",co,[o("label",uo,[L(c(s(f)===1?"Ticket Holder Name":"Names on Each Pass")+" ",1),t[18]||(t[18]=o("span",{class:"normal-case tracking-normal text-[var(--muted-foreground)]/60 ml-1"},"(optional)",-1))]),o("p",mo,c(s(f)===1?"Buying this pass for someone else? Enter their name.":"Assign a name to each pass — you can leave any blank to fill in later."),1),o("div",po,[(d(!0),l(D,null,Y(s(i).ticketHolderNames,(r,a)=>(d(),l("div",{key:a,class:"flex items-center gap-2"},[s(f)>1?(d(),l("span",fo," Pass "+c(a+1),1)):g("",!0),H(o("input",{id:`ticket-holder-name-${a}`,"onUpdate:modelValue":m=>s(i).ticketHolderNames[a]=m,type:"text",disabled:s(C),placeholder:s(f)===1?s(P)("ticket_holder_placeholder"):`Name on pass ${a+1}`,autocomplete:"off",class:"flex-1 h-11 px-3 bg-black/50 border border-[var(--border)] font-body text-sm text-white placeholder:text-[var(--muted-foreground)] focus:outline-none focus:border-[var(--primary)]/50 focus:ring-1 focus:ring-[var(--primary)]/20 transition-colors disabled:opacity-60 disabled:cursor-not-allowed"},null,8,ho),[[F,s(i).ticketHolderNames[a]]])]))),128))])])])],64))]))]),s(w)?(d(),l("aside",yo,[o("div",bo,[t[26]||(t[26]=o("div",{class:"p-6 pb-4"},[o("span",{class:"font-heading text-lg font-bold tracking-[2px] text-white"},"YOUR CART")],-1)),s(me)?(d(),l("div",go,[o("div",vo,[o("img",{src:s(me),alt:"Summer Blast Pass",width:"1600",height:"900",loading:"lazy",decoding:"async",class:"w-full h-full object-cover"},null,8,xo)])])):g("",!0),o("div",_o,[t[19]||(t[19]=o("div",{class:"h-px bg-[var(--border)] mb-4"},null,-1)),o("div",ko,[o("div",null,[o("p",wo,c(s(w).name),1),s(f)>1?(d(),l("p",Po," × "+c(s(f)),1)):g("",!0)]),o("span",Co,c(s(J)),1)])]),o("div",So,[s(x)?(d(),l(D,{key:0},[o("div",Mo,[t[20]||(t[20]=o("span",{class:"font-body text-sm text-[var(--muted-foreground)]"},"Subtotal",-1)),o("span",No,"$"+c(s(x).subTotal.toFixed(2)),1)]),o("div",Io,[t[21]||(t[21]=o("span",{class:"font-body text-sm text-[var(--muted-foreground)]"},"Tax",-1)),o("span",To,"$"+c(s(x).tax.toFixed(2)),1)]),o("div",Ao,[t[22]||(t[22]=o("span",{class:"font-heading text-sm font-bold tracking-[1px] text-white uppercase"},"Total",-1)),o("span",Do,"$"+c(s(x).total.toFixed(2)),1)])],64)):(d(),l(D,{key:1},[o("div",Eo,[t[23]||(t[23]=o("span",{class:"font-heading text-sm font-bold tracking-[1px] text-white uppercase"},"Total",-1)),o("span",Bo,c(s(J)),1)]),t[24]||(t[24]=o("p",{class:"font-body text-[10px] text-[var(--muted-foreground)]/60 text-right mt-1 mb-4"},"Tax calculated at payment",-1))],64)),s(b)?(d(),l("div",$o,[o("p",Ro,c(s(b)),1)])):g("",!0),s(C)?(d(),l("p",Fo," Complete payment below to finish your purchase. ")):(d(),l("button",{key:3,type:"button",disabled:s(N),class:"w-full py-4 font-heading text-sm font-bold tracking-[2px] uppercase transition-all focus:outline-none disabled:opacity-50 disabled:cursor-not-allowed text-black hover:opacity-90",style:{background:"linear-gradient(135deg, #00D9FF, #ee088C)"},onClick:Ce},[s(N)?(d(),l("span",Lo,[t[25]||(t[25]=o("span",{class:"w-4 h-4 border-2 border-black border-t-transparent roun
1ded-full animate-spin"},null,-1)),L(" "+c(s(P)("processing_text")),1)])):(d(),l("span",Ho,"Continue — "+c(s(J)),1))],8,Oo)),o("p",jo,[L(c(s(P)("location_validity_note",{location:s(p).location?.name||"selected"}))+" ",1),o("span",{innerHTML:s(P)("terms_text")},null,8,qo)])])])])):g("",!0)])])])}}}),rs=et(Vo,[["__scopeId","data-v-29c52518"]]);export{rs as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.