1import{u as E,b as L,c as O}from"./query-vendor-Ab0nfCYP.js";import{l as a,m as n,q as s,B as c,z as T,u as d,J as A,F as x,v as b,p as y,a9 as G,a6 as I,e as w,r as C,_ as J,D as k,K as u,y as $}from"./vue-vendor-B52ivs5F.js";import{_ as H}from"./ConfirmDialog-CguVS9_-.js";import{a3 as W,a4 as X}from"./index-CEp9VCc9.js";import{u as Y,t as z}from"./index-NM9cAr_v.js";import{ab as Z,R as F,cC as N,i as ee,ak as te}from"./ui-vendor-D-1UBobO.js";import"./rewardful-2QOTUYRt.js";import"./date-vendor-HBGOQ70J.js";import"./twilio-DAuME2Y9.js";import"./charts-D4hDxUnJ.js";import"./socket-CzTGKfeH.js";const re={class:"mb-6"},se={key:0,class:"flex items-center justify-center rounded-lg border border-gray-200 bg-white py-12 dark:border-gray-700 dark:bg-gray-800"},ae={key:1},oe={class:"grid gap-6 sm:grid-cols-2 lg:grid-cols-3"},ne={class:"mb-4 flex items-start justify-between"},ie={class:"flex h-12 w-12 items-center justify-center rounded-lg bg-purple-100 dark:bg-purple-900/50"},de={class:"flex items-start justify-between gap-2"},le={class:"text-lg font-semibold text-gray-900 dark:text-white"},ce={key:0,class:"rounded-full bg-teal-50 px-2.5 py-0.5 text-xs font-medium text-teal-700 dark:bg-teal-900/30 dark:text-teal-300"},ue={class:"mt-1 text-sm text-gray-600 dark:text-gray-400"},ge={key:0,class:"mt-4 space-y-2"},me={class:"text-gray-700 dark:text-gray-300"},ye={class:"mt-6 border-t border-gray-200 pt-4 dark:border-gray-700"},pe={class:"flex items-center justify-between"},xe={class:"flex items-baseline gap-1"},fe={class:"text-2xl font-bold text-gray-900 dark:text-white"},be={key:0,class:"text-sm text-gray-600 dark:text-gray-400"},ke=["onClick","disabled"],_e={key:0,class:"rounded-lg border border-gray-200 bg-white p-8 text-center dark:border-gray-700 dark:bg-gray-800"},qe={__name:"Addon",setup(he){const V=Y(),j=G(),B=J(),q=E(),f=j.params.id,g=C(!1),p=C(null),P=w(()=>{const t=p.value;if(!t)return"";const e=t.billing_type==="recurring";return`Add "${t.title}" to this company for $${t.price||0}${e?"/month":" (one-time)"}?`}),R=w(()=>{const t=_.value||[],e=t.filter(r=>r.agency_id),o=t.filter(r=>!r.agency_id),i=V.agency?.name||"your agency",l=[];return e.length&&l.push({key:"tailored",heading:`Tailored for ${i}`,addons:e}),o.length&&l.push({key:"global",heading:e.length?"Available Add-ons":"",addons:o}),l}),{isPending:S,data:_}=L({queryKey:["agency","company-addons"],queryFn:W}),{mutate:K,isPending:m}=O({mutationFn:t=>X(f,t),onSuccess:()=>{q.invalidateQueries({queryKey:["agency","companies"]}),z.success("Add-on added successfully"),g.value=!1,B.push(`/agency/companies/${f}`)},onError:t=>{g.value=!1,z.error(t.response?.data?.message||"Failed to add add-on")}}),M=t=>{m.value||(p.value=t,g.value=!0)},Q=()=>{!p.value||m.value||K(p.value._id)},U=t=>{const e=t.features||{};return Object.entries(e).filter(([,o])=>o===!0||typeof o=="number"&&o>0).slice(0,5).reduce((o,[i,l])=>(o[i]=l,o),{})},D=(t,e)=>{const o=t.replace(/_/g," ").replace(/\b\w/g,i=>i.toUpperCase());return e===!0?o:e===-1?`Unlimited ${o}`:`${e} ${o}`};return(t,e)=>{const o=I("router-link");return a(),n("div",null,[s("div",re,[c(o,{to:`/agency/companies/${d(f)}`,class:"mb-4 inline-flex items-center gap-1 text-sm font-medium text-gray-600 transition-colors hover:text-gray-900 dark:text-gray-400 dark:hover:text-white"},{default:T(()=>[c(d(Z),{size:16}),e[1]||(e[1]=A(" Back to Company ",-1))]),_:1},8,["to"]),e[2]||(e[2]=s("h1",{class:"text-2xl font-bold text-gray-900 dark:text-white"},"Add Add-on",-1)),e[3]||(e[3]=s("p",{class:"mt-1 text-sm text-gray-600 dark:text-gray-400"}," Purchase additional features for this company ",-1))]),d(S)?(a(),n("div",se,[c(d(F),{size:32,class:"animate-spin text-gray-400 dark:text-gray-600"})])):(a(),n("div",ae,[(a(!0),n(x,null,b(R.value,(i,l)=>(a(),n(x,{key:i.key},[i.heading?(a(),n("h2",{key:0,class:k(["mb-3 text-sm font-semibold text-gray-900 dark:text-white",{"mt-8":l>0}])},u(i.heading),3)):y("",!0),s("div",oe,[(a(!0),n(x,null,b(i.addons,r=>(a(),n("div",{key:r._id,class:k(["rounded-xl border bg-white p-6 dark:bg-gray-800",i.key==="tailored"?"border-purple-200 dark:border-purple-900/50":"border-gray-200 dark:border-gray-700"])},[s("div",ne,[s("div",ie,[c(d(N),{size:24,class:"text-purple-600 dar
1k:text-purple-400"})])]),s("div",de,[s("h3",le,u(r.title),1),r.type?(a(),n("span",ce,u(r.type),1)):y("",!0)]),s("p",ue,u(r.sub_title||r.description||"No description"),1),r.features?(a(),n("div",ge,[(a(!0),n(x,null,b(U(r),(h,v)=>(a(),n("div",{key:v,class:"flex items-center gap-2 text-sm"},[c(d(ee),{size:16,class:"text-green-500"}),s("span",me,u(D(v,h)),1)]))),128))])):y("",!0),s("div",ye,[s("div",pe,[s("div",xe,[s("span",fe," $"+u(r.price||0),1),r.billing_type==="recurring"?(a(),n("span",be," /month ")):y("",!0),s("span",{class:k(["ml-1 rounded-full px-2 py-0.5 text-[10px] font-medium",r.billing_type==="recurring"?"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300":"bg-gray-100 text-gray-600 dark:bg-gray-700 dark:text-gray-300"])},u(r.billing_type==="recurring"?"Recurring":"One-time"),3)]),s("button",{onClick:h=>M(r),disabled:d(m),class:"flex items-center gap-2 rounded-lg bg-teal-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-teal-700 disabled:cursor-not-allowed disabled:opacity-50 dark:hover:bg-teal-500"},[d(m)?(a(),$(d(F),{key:0,size:16,class:"animate-spin"})):(a(),$(d(te),{key:1,size:16})),e[4]||(e[4]=A(" Add ",-1))],8,ke)])])],2))),128))])],64))),128)),d(_)?.length?y("",!0):(a(),n("div",_e,[c(d(N),{size:48,class:"mx-auto text-gray-400 dark:text-gray-600"}),e[5]||(e[5]=s("p",{class:"mt-4 text-gray-600 dark:text-gray-400"},"No add-ons available",-1))]))])),c(H,{modelValue:g.value,"onUpdate:modelValue":e[0]||(e[0]=i=>g.value=i),title:"Add Add-on",message:P.value,"confirm-text":"Add Add-on","cancel-text":"Cancel",variant:"info",icon:"info",loading:d(m),onConfirm:Q},null,8,["modelValue","message","loading"])])}}};export{qe 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.