PageSourceSearch

https://atlanta.tickets.beatthebomb.com/_nuxt/3zi8swjH.js

js beatthebomb.com collected 2026-09-26 03:27:47 UTC 9,069 bytes, 1 lines download raw bytes

1import{_ as _e,a as fe,b as ve}from"./CCHJd4eH.js";import{_ as be,a as ge,b as xe,c as ye,d as we,e as $e}from"./D3RmR3PL.js";import{_ as Ae}from"./Ct70UkVf.js";import{_ as ze,a as Ce,b as he,c as ke}from"./Dj10djpJ.js";import{_ as De}from"./C-f4-Qy5.js";import{_ as Te}from"./CiF7Basw.js";import{_ as Be}from"./RLLgkEzh.js";import{_ as Se,a as Ve,b as Ee,c as Ne,d as Pe,e as Ue,f as Le,g as Fe}from"./DpDpeJfo.js";import{e as Ge,x as _,f as L,l as Oe,m as He,c as f,a as n,g as F,p as w,b as t,B as G,Z as O,h as s,E as T,F as B,r as S,w as o,d as l,t as c,v as Me,o as r,A as je}from"#entry";import{u as qe}from"./DgmzirMX.js";import{u as Ie}from"./BRJC_-Hn.js";import{P as Re}from"./w-DR3gVW.js";import{P as Je}from"./Cd3unXvf.js";import{T as Qe}from"./DkiXgwtS.js";import"./CacwcQhS.js";import"./zNhCWlda.js";import"./6e2DFz5k.js";import"./DsXan2nO.js";import"./DZCbKU22.js";import"./vSSdCmu6.js";import"./DjkoA8ho.js";import"./9gGBeuqq.js";import"./CyPiDsNh.js";const Xe={class:"space-y-6"},Ze={class:"flex items-center justify-between"},Ke={class:"flex items-center gap-3"},We=["value"],Ye={key:0,class:"rounded-md border border-[#18B9ff]/30 bg-[#18B9ff]/10 px-4 py-2 text-sm text-[#a0d8ff]"},et={class:"font-semibold text-white capitalize"},tt={key:1,class:"text-[#a0a0a0] text-sm"},ot={class:"flex items-center gap-1"},at={class:"space-y-2"},nt={class:"space-y-2"},st={class:"space-y-2"},lt=["value"],it={class:"flex justify-end gap-3 pt-2"},dt={class:"font-medium text-white"},C="__global__",Et=Ge({__name:"addon-prices",async setup(rt){let $,V;const E=["brooklyn","atlanta","dc","denver","philadelphia","charlotte","houston","staging"],u=_(C),h=L(()=>u.value===C),H=L(()=>h.value?{}:{location:u.value}),{data:N,refresh:k}=([$,V]=Oe(()=>qe("/api/admin/cms/addon-prices",{query:H},"$uc1JuCf6OX")),$=await $,V(),$),{toast:v}=Ie();He(u,()=>{k()});const p=_(!1),b=_(null),g=_(!1),m=_(null),x=_(!1),i=_({addon_name:"",price:0,location_id:""});function M(){b.value=null,i.value={addon_name:"",price:0,location_id:h.value?"":u.value},p.value=!0}function j(d){b.value=d,i.value={addon_name:d.addon_name,price:d.price,location_id:d.location_id||""},p.value=!0}async function q(){g.value=!0;try{const d={...i.value,location_id:i.value.location_id&&i.value.location_id!==C?i.value.location_id:null};b.value?(await $fetch(`/api/admin/cms/addon-prices/${b.value.id}`,{method:"PUT",body:d}),v({title:"Addon price updated",description:`${i.value.addon_name} has been updated.`})):(await $fetch("/api/admin/cms/addon-prices",{method:"POST",body:d}),v({title:"Addon price created",description:`${i.value.addon_name} has been added.`})),p.value=!1,k()}catch(d){v({title:"Failed to save addon price",description:d.data?.message||"An unexpected error occurred.",variant:"destructive"})}finally{g.value=!1}}function I(d){m.value=d,x.value=!0}async function R(){if(m.value)try{await $fetch(`/api/admin/cms/addon-prices/${m.value.id}`,{method:"DELETE"}),v({title:"Addon price deleted",description:`${m.value.addon_name} has been removed.`}),x.value=!1,m.value=null,k()}catch(d){v({title:"Failed to delete addon price",description:d.data?.message||"An unexpected error occurred.",variant:"destructive"})}}return(d,e)=>{const y=_e,J=Me("EmptyState"),A=ye,P=xe,Q=ge,z=$e,X=Ae,Z=we,K=be,W=ve,Y=fe,ee=ke,te=he,D=De,U=Te,oe=Be,ae=Ce,ne=ze,se=Ne,le=Pe,ie=Ee,de=Le,re=Fe,ce=Ue,ue=Ve,pe=Se;return r(),f("div",Xe,[n("div",Ze,[e[9]||(e[9]=n("div",null,[n("h1",{class:"text-3xl font-bold text-white"},"Addon Prices"),n("p",{class:"text-[#a0a0a0] mt-1"},"Per-addon pricing for all packages")],-1)),n("div",Ke,[G(n("select",{"onUpdate:modelValue":e[0]||(e[0]=a=>T(u)?u.value=a:null),class:"bg-[#222] border border-[#444] text-white rounded-md px-3 py-2 text-sm focus:outline-none focus:border-[#18B9ff] capitalize min-w-[160px]"},[n("option",{value:C},"Global (default)"),(r(),f(B,null,S(E,a=>n("option",{key:a,value:a,class:"capitalize"},c(a.charAt(0).toUpperCase()+a.slice(1)),9,We)),64))],512),[[O,s(u)]]),t(y,{onClick:M},{default:o(()=>[t(s(Re),{class:"mr-2 h-4 w-4"}),e[8]||(e[8]=l(" Add Addon Price ",-1))]),_:1})])]),s(h)?F("",!0):(r(),f("div",Ye,[e[10]||(e[10]=l(" Showing global prices plus ",-1)),n("span",et,c(s(u)),1),e[11]||(e[11]=l(" overrides. Add or edit a row scoped to this location to override the global price; global rows are shown for reference. ",-1))])),s(N)?.length?(r(),w(Y,{key:2,class:"bg-zinc-900 border-zinc-800 overflow-hidden"},{default:o(()=>[t(W,{class:"p-0"},{default:o(()=>[t(K,null,{default:o(()=>[t(Q,null,{default:o(()=>[t(P,{class:"border-zinc-800 hover:bg-transparent"},{default:o(()=>[t(A,{class:"text-[#a0a0a0]"},{default:o(()=>[...e[12]||(e[12]=[l("Addon Name",-1)])]),_:1}),t(A,{class:"text-[#a0a0a0]"},{default:o(()=>[...e[13]||(e[13]=[l("Price",-1)])]),_:1}),t(A,{class:"text-[#a0a0a0]"},{default:o(()=>[...e[14]||(e[14]=[l("Location",-1)])]),_:1}),t(A,{class:"text-[#a0a0a0] w-32"},{default:o(()=>[...e[15]||(e[15]=[l("Actions",-1)])]),_:1})]),_:1})]),_:1}),t(Z,null,{default:o(()=>[(r(!0),f(B,null,S(s(N),a=>(r(),w(P,{key:a.id,class:"border-zinc-800 hover:bg-zinc-800/50"},{default:o(()=>[t(z,{class:"font-medium text-white"},{default:o(()=>[l(c(a.addon_name),1)]),_:2},1024),t(z,{class:"font-mono text-[#00fff0]"},{default:o(()=>[l("$"+c(Number(a.price).toFixed(2)),1)]),_:2},1024),t(z,null,{default:o(()=>[a.location_id?(r(),w(X,{key:0,class:"bg-green-500/15 text-green-400 border-green-500/30 border capitalize"},{default:o(()=>[l(c(a.location_id)+" override ",1)]),_:2},1024)):(r(),f("span",tt,"Global (all locations)"))]),_:2},1024),t(z,null,{default:o(()=>[n("div",ot,[t(y,{variant:"ghost",size:"icon","aria-label":"Edit addon price",onClick:me=>j(a)},{default:o(()=>[t(s(Je),{class:"h-4 w-4"})]),_:1},8,["onClick"]),t(y,{variant:"ghost",size:"icon","aria-label":"Delete addon price",class:"text-red-400 hover:text-red-300 hover:bg-red-900/20",onClick:me=>I(a)},{default:o(()=>[t(s(Qe),{class:"h-4 w-4"})]),_:1},8,["onClick"])])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})):(r(),w(J,{key:1,title:"No addon prices yet",description:"Add your first addon price to get started."})),t(ne,{open:s(p),"onUpdate:open":e[5]||(e[5]=a=>T(p)?p.value=a:null)},{default:o(()=>[t(ae,{class:"bg-zinc-900 border-zinc-800 text-white sm:max-w-lg"},{default:o(()=>[t(te,null,{default:o(()=>[t(ee,{class:"text-white"},{default:o(()=>[l(c(s(b)?"Edit Addon Price":"Add Addon Price"),1)]),_:1})]),_:1}),n("form",{onSubmit:je(q,["prevent"]),class:"space-y-4 pt-2"},[n("div",at,[t(D,{for:"addon_name"},{default:o(()=>[...e[16]||(e[16]=[l("Addon Name ",-1),n("span",{class:"text-red-400"},"*",-1)])]),_:1}),t(U,{id:"addon_name",modelValue:s(i).addon_name,"onUpdate:modelValue":e[1]||(e[1]=a=>s(i).addon_name=a),type:"text",placeholder:"e.g., Video Package",required:"",class:"bg-zinc-800 border-zinc-700 text-white placeholder:text-zinc-500"},null,8,["modelValue"])]),n("div",nt,[t(D,{for:"price"},{default:o(()=>
1[...e[17]||(e[17]=[l("Price ($) ",-1),n("span",{class:"text-red-400"},"*",-1)])]),_:1}),t(U,{id:"price",modelValue:s(i).price,"onUpdate:modelValue":e[2]||(e[2]=a=>s(i).price=a),modelModifiers:{number:!0},type:"number",min:"0",step:"0.01",placeholder:"0.00",required:"",class:"bg-zinc-800 border-zinc-700 text-white placeholder:text-zinc-500"},null,8,["modelValue"])]),n("div",st,[t(D,{for:"location_id"},{default:o(()=>[...e[18]||(e[18]=[l("Scope",-1)])]),_:1}),G(n("select",{id:"location_id","onUpdate:modelValue":e[3]||(e[3]=a=>s(i).location_id=a),class:"w-full bg-zinc-800 border border-zinc-700 text-white rounded-md px-3 py-2 text-sm focus:outline-none focus:border-[#18B9ff] capitalize"},[e[19]||(e[19]=n("option",{value:""},"Global (all locations)",-1)),(r(),f(B,null,S(E,a=>n("option",{key:a,value:a,class:"capitalize"},c(a.charAt(0).toUpperCase()+a.slice(1)),9,lt)),64))],512),[[O,s(i).location_id]]),e[20]||(e[20]=n("p",{class:"text-xs text-zinc-500"},"Global applies everywhere unless a location override exists.",-1))]),n("div",it,[t(y,{type:"button",variant:"outline",onClick:e[4]||(e[4]=a=>p.value=!1)},{default:o(()=>[...e[21]||(e[21]=[l(" Cancel ",-1)])]),_:1}),t(y,{type:"submit",disabled:s(g)},{default:o(()=>[s(g)?(r(),w(oe,{key:0,class:"mr-2 h-4 w-4"})):F("",!0),l(" "+c(s(g)?"Saving...":"Save"),1)]),_:1},8,["disabled"])])],32)]),_:1})]),_:1},8,["open"]),t(pe,{open:s(x),"onUpdate:open":e[7]||(e[7]=a=>T(x)?x.value=a:null)},{default:o(()=>[t(ue,{class:"bg-zinc-900 border-zinc-800 text-white"},{default:o(()=>[t(ie,null,{default:o(()=>[t(se,{class:"text-white"},{default:o(()=>[...e[22]||(e[22]=[l("Delete Addon Price",-1)])]),_:1}),t(le,{class:"text-[#a0a0a0]"},{default:o(()=>[e[23]||(e[23]=l(" Are you sure you want to delete ",-1)),n("span",dt,c(s(m)?.addon_name),1),e[24]||(e[24]=l("? This action cannot be undone. ",-1))]),_:1})]),_:1}),t(ce,null,{default:o(()=>[t(de,{onClick:e[6]||(e[6]=a=>m.value=null)},{default:o(()=>[...e[25]||(e[25]=[l("Cancel",-1)])]),_:1}),t(re,{onClick:R},{default:o(()=>[...e[26]||(e[26]=[l("Delete",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["open"])])}}});export{Et 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.