1import{d as oe,r as p,w as W,o as ne,i as j,j as R,B,e as l,b as o,k as H,l as re,m as ie,p as de,g as s,z as P,h as u,v as c,f as m,F as f,y as w,t as d,x as y,G as A,Q as I}from"./app-D0fs7bu7.js";import{_ as ue}from"./AppLayout.vue_vue_type_script_setup_true_lang-CLnk0tKS.js";import{_ as pe}from"./_plugin-vue_export-helper-DlAUqK2U.js";/* empty css */import"./Primitive-B-7kMMzx.js";import"./VisuallyHidden-OUinVFht.js";import"./createLucideIcon-CAMkqPlT.js";const ce={class:"max-w-6xl mx-auto p-4 sm:p-8 min-h-screen"},be={class:"relative overflow-hidden rounded-[2.5rem] border border-[var(--border)] bg-[var(--card)]/80 backdrop-blur-2xl shadow-2xl p-6 sm:p-10 transition-all duration-500"},me={class:"relative z-10 flex flex-wrap gap-2 mb-10 p-2 bg-[var(--muted)]/10 backdrop-blur-md rounded-[1.5rem] w-max border border-[var(--border)]"},ve={class:"relative z-10 grid grid-cols-1 md:grid-cols-1 gap-6 animate-fade-in-up delay-100"},ge={class:"animate-enter"},xe={class:"space-y-6"},fe={key:0,class:"alert-danger"},ke={key:1,class:"alert-success"},we={class:"block group"},ye={class:"block group"},he={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},_e={class:"block group"},Se={key:0,class:"block group animate-enter"},Ce=["value"],Me={key:1,class:"block md:col-span-2 group animate-enter"},Ue={class:"flex items-center gap-4 mt-4 pt-4 border-t border-[var(--border)]/50"},Be=["disabled"],Pe={key:0},Ae={key:1,class:"animate-pulse"},Ne={class:"animate-enter"},Ve={class:"space-y-6"},$e={key:0,class:"alert-danger"},qe={key:1,class:"alert-success"},Le={class:"block group"},Fe={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},Ee={class:"block group"},Te={key:0,class:"block group animate-enter"},Re={key:1,class:"block group animate-enter"},ze=["value"],De={class:"flex items-center gap-4 mt-4 pt-4 border-t border-[var(--border)]/50"},je=["disabled"],Ie={key:0},Oe={key:1,class:"animate-pulse"},Ge={class:"animate-enter"},We={class:"space-y-8"},He={class:"flex flex-col sm:flex-row sm:items-center justify-between gap-4 p-6 bg-gradient-to-r from-indigo-50/80 to-purple-50/80 dark:from-indigo-900/20 dark:to-purple-900/20 border border-indigo-200/50 dark:border-indigo-800/50 rounded-3xl shadow-inner"},Ke={class:"flex items-center gap-4"},Qe={class:"text-2xl font-black text-indigo-700 dark:text-indigo-300 tracking-tight"},Ye={class:"flex items-center gap-4"},Je={class:"text-2xl font-black text-purple-700 dark:text-purple-300 font-mono tracking-tight"},Xe={class:"grid grid-cols-1 lg:grid-cols-2 gap-8 bg-[var(--muted)]/5 p-6 rounded-3xl border border-[var(--border)]"},Ze={class:"block"},es={class:"flex flex-wrap gap-2"},ss=["onClick"],ts={class:"block"},as={key:0,class:"alert-danger"},ls={key:1,class:"alert-success"},os={class:"block relative group"},ns={class:"relative"},rs={class:"absolute bottom-4 right-4 flex items-center gap-2"},is={class:"text-xs font-bold text-[var(--muted-foreground)] bg-[var(--muted)]/20 px-2 py-1 rounded-lg"},ds={class:"relative p-5 bg-[var(--card)] border-2 border-indigo-500/20 rounded-2xl shadow-lg shadow-indigo-500/5"},us={class:"font-mono text-[var(--foreground)] break-words whitespace-pre-wrap leading-relaxed mt-2"},ps={class:"font-bold text-indigo-500/80"},cs={class:"grid grid-cols-1 sm:grid-cols-3 gap-6"},bs={class:"p-5 border border-[var(--border)] rounded-[1.5rem] bg-[var(--card)]/80 backdrop-blur shadow-sm hover:shadow-xl hover:-translate-y-1 transition-all duration-300"},ms={class:"text-3xl font-black text-[var(--foreground)] tracking-tight"},vs={class:"mt-3 flex items-center justify-between gap-2"},gs={class:"text-sm font-bold text-slate-500"},xs={key:0,class:"px-2.5 py-1 rounded-xl bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400 font-bold text-xs"},fs={key:1,class:"px-2.5 py-1 rounded-xl bg-indigo-100 text-indigo-800 dark:bg-indigo-900/30 dark:text-indigo-400 font-bold text-xs"},ks={class:"p-5 border border-[var(--border)] rounded-[1.5rem] bg-[var(--card)]/80 backdrop-blur shadow-sm hover:shadow-xl hover:-translate-y-1 transition-all duration-300"},ws={class:"text-3xl font-black text-[var(--foreground)] tracking-tight"},ys={key:0,class:"animate-pulse opacity-50"}
1,hs={key:1},_s={class:"p-5 border border-[var(--border)] rounded-[1.5rem] bg-[var(--card)]/80 backdrop-blur shadow-sm hover:shadow-xl hover:-translate-y-1 transition-all duration-300"},Ss={class:"text-3xl font-black text-[var(--foreground)] tracking-tight"},Cs={class:"flex flex-col lg:flex-row lg:items-center justify-between gap-6 pt-8 border-t border-[var(--border)]/60"},Ms={class:"flex items-center gap-3 w-full lg:w-auto bg-[var(--muted)]/10 p-2.5 rounded-2xl border border-[var(--border)] backdrop-blur shadow-inner"},Us=["disabled"],Bs={key:0},Ps={key:1},As={class:"flex items-center gap-4"},Ns=["disabled"],Vs={key:0,class:"flex items-center gap-2"},$s={key:1,class:"animate-pulse"},qs={key:2,class:"alert-danger mt-4"},Ls={key:3,class:"alert-success mt-4"},Fs=oe({__name:"Communicator",props:{breadcrumbs:{type:Array,required:!1,default:()=>[]},businesses:{type:Array,required:!1,default:()=>[]},packages:{type:Array,required:!1,default:()=>[]},superadminBalance:{type:Number,required:!1,default:0},brandName:{type:String,required:!1,default:"FraudSpy"}},setup(K){const v=K,g=p("push"),h=p(v.superadminBalance??0);W(()=>v.superadminBalance,a=>{h.value=a??0}),ne(()=>{try{const e=new URLSearchParams(window.location.search).get("tab");e==="sms"?g.value="sms":e==="push"?g.value="push":e==="bulksms"&&(g.value="bulksms")}catch{}O()});const n=j({title:"",body:"",audience:"all",business_id:null,user_ids_raw:""}),_=p([]),N=p(!1),V=p(null),i=j({message:"",audience:"phones",phones_raw:"",business_id:null}),S=p([]),$=p(!1),q=p(null),r=j({package_ids:[],sub_status:"all",message:""}),C=p(""),M=p(0),z=p(!1),L=p(!1),x=p([]),F=p(null),E=p(!1),k=p([]),T=p(null),Q=R(()=>r.package_ids.length===0);function Y(a){const e=r.package_ids.indexOf(a);e>-1?r.package_ids.splice(e,1):r.package_ids.push(a)}function J(){r.package_ids=[]}const U=R(()=>{const a=`(${v.brandName||"FraudSpy"}) ${r.message}`,e=/[^\x20-\x7E]/.test(a),t=a.length;let b=1;return e?b=t<=70?1:Math.ceil(t/67):b=t<=160?1:Math.ceil(t/153),{length:t,parts:b,hasUnicode:e}});W(()=>[r.package_ids,r.sub_status],()=>{O()},{deep:!0});async function O(){z.value=!0;try{const{data:a}=await B.post("/superadmin/communicator/bulk-count",{package_ids:r.package_ids.length>0?r.package_ids:null,sub_status:r.sub_status});a?.ok&&(M.value=a.count)}catch(a){console.error("Error fetching recipient count",a)}finally{z.value=!1}}const G=R(()=>Array.isArray(v.businesses)?v.businesses:[]),X=R(()=>Array.isArray(v.packages)?v.packages:[]);function Z(a){return(a||"").split(",").map(e=>e.trim()).filter(e=>e.length>0)}function ee(a){return(a||"").split(",").map(e=>Number(e.trim())).filter(e=>Number.isFinite(e)&&e>0)}async function se(){_.value=[],V.value=null,N.value=!0;try{const a={title:n.title,body:n.body,audience:n.audience};n.audience==="business"&&n.business_id&&(a.business_id=n.business_id),n.audience==="users"&&(a.user_ids=ee(n.user_ids_raw));const{data:e}=await B.post("/superadmin/communicator/push",a);e?.ok?(V.value=`Notifications queued: ${e.sent??0}`,n.title="",n.body="",n.user_ids_raw="",n.business_id=null):_.value=e.errors||["Unknown error"]}catch(a){a?.response?.data?.errors?_.value=a.response.data.errors:_.value=[a?.message||"Request failed"]}finally{N.value=!1}}async function te(){S.value=[],q.value=null,$.value=!0;try{const a={message:i.message,audience:i.audience};i.audience==="phones"&&(a.phones=Z(i.phones_raw)),i.audience==="business"&&i.business_id&&(a.business_id=i.business_id);const{data:e}=await B.post("/superadmin/communicator/sms",a);e?.ok?(q.value=`SMS queued/sent: ${e.sent??0}`+(e.note?" â "+e.note:""),i.message="",i.phones_raw="",i.business_id=null):S.value=e.errors||["Unknown error"]}catch(a){a?.response?.data?.errors?S.value=a.response.data.errors:S.value=[a?.message||"Request failed"]}finally{$.value=!1}}async function ae(){if(!C.value){k.value=["Please enter a test phone number."];return}k.value=[],T.value=null,E.value=!0;try{const{data:a}=await B.post("/superadmin/communicator/test-sms",{phone:C.value,message:r.message});a?.ok?(T.value=`Test SMS sent successfully to ${C.value}.`,a.new_balance!==void 0&&(h.value=a.new_balance)):k.value=a.errors||["Unknown error"]}catch(a){a?.response?.data?.errors?k.value=a.response.data.errors:k.value=[a?.message||"Request failed"]}finally{E.value=!1}}async function le(){if(M.value===0){x.value=["No recipients found matching current filters."];return}if(!r.message.trim()){x.value=["Please write a message content."];return}const a=U.value.parts*M.value,e=`Are you sure you want to send this bulk SMS campaign to ${M.value} recipients? 2Estimated credit deduction: ${a} credits. 3Current balance: ${h.value} credits.`;if(confirm(e)){x.value=[],F.value=null,L.value=!0;try{const{data:t}=await B.post("/superadmin/communicator/bulk-send",{package_ids:r.package_ids.length>0?r.package_ids:null,sub_status:r.sub_status,message:r.message});t?.ok?(F.value=`Bulk SMS campaign queued successfully for ${t.queued}
3 recipients! Background processing started.`,r.message="",h.value=Math.max(0,h.value-a)):x.value=t.errors||["Unknown error"]}catch(t){t?.response?.data?.errors?x.value=t.response.data.errors:x.value=[t?.message||"Request failed"]}finally{L.value=!1}}}const D=a=>{const e="px-6 py-3 rounded-2xl font-bold text-sm focus:outline-none transition-all duration-300 transform flex items-center gap-2";return g.value===a?`${e} bg-gradient-to-r from-indigo-500 to-purple-600 text-white shadow-lg shadow-indigo-500/30 scale-105`:`${e} bg-transparent text-[var(--muted-foreground)] hover:bg-[var(--muted)]/10 hover:text-[var(--foreground)]`};return(a,e)=>(o(),l(f,null,[H(re(ie),{title:"Communicator"}),H(ue,{breadcrumbs:v.breadcrumbs},{default:de(()=>[s("div",ce,[e[62]||(e[62]=s("div",{class:"mb-10 flex flex-col sm:flex-row sm:items-center gap-5 animate-fade-in-up"},[s("div",{class:"p-4 bg-gradient-to-br from-indigo-500 to-purple-600 rounded-3xl shadow-xl shadow-indigo-500/30 transform hover:scale-105 transition-transform duration-300 w-max"},[s("svg",{class:"w-10 h-10 text-white",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[s("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 19l9 2-9-18-9 18 9-2zm0 0v-8"})])]),s("div",null,[s("h1",{class:"text-4xl sm:text-5xl font-black bg-clip-text text-transparent bg-gradient-to-r from-indigo-600 to-purple-500 tracking-tight"}," Communicator "),s("p",{class:"text-base sm:text-lg text-[var(--muted-foreground)] font-medium mt-2"}," Engage your audience with vibrant Push & SMS messages. ð ")])],-1)),s("div",be,[e[60]||(e[60]=s("div",{class:"absolute -top-32 -right-32 w-64 h-64 bg-purple-500/10 rounded-full blur-3xl pointer-events-none"},null,-1)),e[61]||(e[61]=s("div",{class:"absolute -bottom-32 -left-32 w-64 h-64 bg-indigo-500/10 rounded-full blur-3xl pointer-events-none"},null,-1)),s("div",me,[s("button",{class:P(D("push")),onClick:e[0]||(e[0]=t=>g.value="push")},[...e[18]||(e[18]=[s("span",{class:"text-lg"},"ð",-1),u(" Push Notification ",-1)])],2),s("button",{class:P(D("sms")),onClick:e[1]||(e[1]=t=>g.value="sms")},[...e[19]||(e[19]=[s("span",{class:"text-lg"},"ð¬",-1),u(" SMS Notification ",-1)])],2),s("button",{class:P(D("bulksms")),onClick:e[2]||(e[2]=t=>g.value="bulksms")},[...e[20]||(e[20]=[s("span",{class:"text-lg"},"ð¢",-1),u(" Bulk SMS ",-1)])],2)]),s("div",ve,[c(s("div",ge,[s("div",xe,[_.value.length?(o(),l("div",fe,[e[21]||(e[21]=s("div",{class:"font-bold flex items-center gap-2 mb-1"},[s("span",null,"â ï¸"),u(" Please fix the following:")],-1)),(o(!0),l(f,null,w(_.value,(t,b)=>(o(),l("div",{key:b,class:"ml-6"},"⢠"+d(t),1))),128))])):m("",!0),V.value?(o(),l("div",ke,[e[22]||(e[22]=s("span",null,"â¨",-1)),u(" "+d(V.value),1)])):m("",!0),s("label",we,[e[23]||(e[23]=s("div",{class:"label-text"},"ð Title",-1)),c(s("input",{"onUpdate:modelValue":e[3]||(e[3]=t=>n.title=t),class:"input-base mt-2 w-full",placeholder:"Short and catchy headline..."},null,512),[[y,n.title]])]),s("label",ye,[e[24]||(e[24]=s("div",{class:"label-text"},"ð Message Body",-1)),c(s("textarea",{"onUpdate:modelValue":e[4]||(e[4]=t=>n.body=t),rows:"4",class:"input-base mt-2 w-full",placeholder:"What do you want to say? Make it awesome!"},null,512),[[y,n.body]])]),s("div",he,[s("label",_e,[e[26]||(e[26]=s("div",{class:"label-text"},"ð¯ Target Audience",-1)),c(s("select",{"onUpdate:modelValue":e[5]||(e[5]=t=>n.audience=t),class:"input-base mt-2 w-full appearance-none"},[...e[25]||(e[25]=[s("option",{value:"all"},"ð All users",-1),s("option",{value:"business"},"ð¢ Users of a business",-1),s("option",{value:"users"},"ð¤ Specific users (by ID)",-1)])],512),[[A,n.audience]])]),n.audience==="business"?(o(),l("div",Se,[e[28]||(e[28]=s("div",{class:"label-text"},"ð¢ Select Business",-1)),c(s("select",{"onUpdate:modelValue":e[6]||(e[6]=t=>n.business_id=t),class:"input-base mt-2 w-full appearance-none"},[e[27]||(e[27]=s("option",{value:null},"Select a business",-1)),(o(!0),l(f,null,w(G.value,t=>(o(),l("option",{key:t.id,value:t.id},d(t.name),9,Ce))),128))],512),[[A,n.business_id]])])):m("",!0),n.audience==="users"?(o(),l("div",Me,[e[29]||(e[29]=s("div",{class:"label-text"},"ð¢ User IDs (comma separated)",-1)),c(s("input",{"onUpdate:modelValue":e[7]||
3(e[7]=t=>n.user_ids_raw=t),class:"input-base mt-2 w-full",placeholder:"e.g. 10,12,15"},null,512),[[y,n.user_ids_raw]]),e[30]||(e[30]=s("div",{class:"text-xs text-[var(--muted-foreground)] mt-2 font-medium ml-2"},"Use numeric user IDs, comma separated. Make sure they exist!",-1))])):m("",!0)]),s("div",Ue,[s("button",{class:"btn-primary",disabled:N.value,onClick:se},[N.value?(o(),l("span",Ae,"Sending...")):(o(),l("span",Pe,"ð Send Push Notification"))],8,Be),s("button",{class:"chip",onClick:e[8]||(e[8]=()=>{n.title="",n.body="",n.user_ids_raw="",n.business_id=null})}," ð§¹ Clear Form ")])])],512),[[I,g.value==="push"]]),c(s("div",Ne,[s("div",Ve,[S.value.length?(o(),l("div",$e,[e[31]||(e[31]=s("div",{class:"font-bold flex items-center gap-2 mb-1"},[s("span",null,"â ï¸"),u(" Hold up:")],-1)),(o(!0),l(f,null,w(S.value,(t,b)=>(o(),l("div",{key:b,class:"ml-6"},"⢠"+d(t),1))),128))])):m("",!0),q.value?(o(),l("div",qe,[e[32]||(e[32]=s("span",null,"ð",-1)),u(" "+d(q.value),1)])):m("",!0),s("label",Le,[e[33]||(e[33]=s("div",{class:"label-text"},"ð¬ SMS Content",-1)),c(s("textarea",{"onUpdate:modelValue":e[9]||(e[9]=t=>i.message=t),rows:"4",class:"input-base mt-2 w-full",placeholder:"Keep it short and sweet..."},null,512),[[y,i.message]])]),s("div",Fe,[s("label",Ee,[e[35]||(e[35]=s("div",{class:"label-text"},"ð¯ Target Audience",-1)),c(s("select",{"onUpdate:modelValue":e[10]||(e[10]=t=>i.audience=t),class:"input-base mt-2 w-full appearance-none"},[...e[34]||(e[34]=[s("option",{value:"phones"},"ð± Specific phone numbers",-1),s("option",{value:"business"},"ð¢ Users of a business",-1)])],512),[[A,i.audience]])]),i.audience==="phones"?(o(),l("div",Te,[e[36]||(e[36]=s("div",{class:"label-text"},"ð± Phone numbers (comma separated)",-1)),c(s("input",{"onUpdate:modelValue":e[11]||(e[11]=t=>i.phones_raw=t),class:"input-base mt-2 w-full",placeholder:"e.g. 8801xxxxxxxxx, 017xxxxxxxx"},null,512),[[y,i.phones_raw]])])):m("",!0),i.audience==="business"?(o(),l("div",Re,[e[38]||(e[38]=s("div",{class:"label-text"},"ð¢ Select Business",-1)),c(s("select",{"onUpdate:modelValue":e[12]||(e[12]=t=>i.business_id=t),class:"input-base mt-2 w-full appearance-none"},[e[37]||(e[37]=s("option",{value:null},"Select a business",-1)),(o(!0),l(f,null,w(G.value,t=>(o(),l("option",{key:t.id,value:t.id},d(t.name),9,ze))),128))],512),[[A,i.business_id]])])):m("",!0)]),s("div",De,[s("button",{class:"btn-primary",disabled:$.value,onClick:te},[$.value?(o(),l("span",Oe,"Sending...")):(o(),l("span",Ie,"ð¨ Send SMS"))],8,je),s("button",{class:"chip",onClick:e[13]||(e[13]=()=>{i.message="",i.phones_raw="",i.business_id=null})}," ð§¹ Clear Form ")])])],512),[[I,g.value==="sms"]]),c(s("div",Ge,[s("div",We,[s("div",He,[s("div",Ke,[e[41]||(e[41]=s("div",{class:"p-3 bg-white dark:bg-indigo-800/50 rounded-2xl shadow-sm text-2xl"}," ð³ ",-1)),s("div",null,[e[40]||(e[40]=s("div",{class:"text-xs font-bold text-indigo-600/70 dark:text-indigo-400 uppercase tracking-widest mb-1"},"Available SMS Balance",-1)),s("div",Qe,[u(d(h.value.toLocaleString())+" ",1),e[39]||(e[39]=s("span",{class:"text-sm font-bold opacity-70"},"credits",-1))])])]),s("div",Ye,[e[43]||(e[43]=s("div",{class:"p-3 bg-white dark:bg-purple-800/50 rounded-2xl shadow-sm text-2xl"}," ð·ï¸ ",-1)),s("div",null,[e[42]||(e[42]=s("div",{class:"text-xs font-bold text-purple-600/70 dark:text-purple-400 uppercase tracking-widest mb-1"},"Brand Name Prefix",-1)),s("div",Je,d(v.brandName||"FraudSpy"),1)])])]),s("div",Xe,[s("div",Ze,[e[44]||(e[44]=s("div",{class:"label-text mb-3"},"ð¦ Subscription Plan(s)",-1)),s("div",es,[s("button",{type:"button",class:P([Q.value?"bg-gradient-to-br from-indigo-500 to-indigo-600 text-white shadow-lg shadow-indigo-500/30 scale-105":"bg-[var(--card)] text-[var(--muted-foreground)] border border-[var(--border)] hover:bg-[var(--muted)]/20 hover:scale-105","px-5 py-2.5 rounded-xl text-sm font-bold transition-all duration-300 cursor-pointer select-none flex items-center gap-2"]),onClick:J}," ð All Packages ",2),(o(!0),l(f,null,w(X.value,t=>(o(),l("button",{key:t.id,type:"button",class:P([r.package_ids.includes(t.id)?"bg-gradient-to-br from-purple-500 to-purple-600 text-white shadow-lg shadow-purple-500/30 scale-105":"bg-[var(--card)] text-[var(--foreground)] border border-[var(--border)] hover:bg-[var(--muted)]/20 hover:scale-105","px-5 py-2.5 rounded-xl text-sm font-bold transition-all duration-300 cursor-pointer select-none flex items-center gap-2"]),onClick:b=>
3Y(t.id)},d(t.name),11,ss))),128))])]),s("label",ts,[e[46]||(e[46]=s("div",{class:"label-text mb-3"},"â³ Subscription Status",-1)),c(s("select",{"onUpdate:modelValue":e[14]||(e[14]=t=>r.sub_status=t),class:"input-base w-full appearance-none cursor-pointer"},[...e[45]||(e[45]=[s("option",{value:"all"},"ð All Statuses",-1),s("option",{value:"active"},"ð¢ Active",-1),s("option",{value:"expired"},"ð´ Expired",-1)])],512),[[A,r.sub_status]])])]),x.value.length?(o(),l("div",as,[e[47]||(e[47]=s("div",{class:"font-bold flex items-center gap-2 mb-1"},[s("span",null,"â ï¸"),u(" Missing details:")],-1)),(o(!0),l(f,null,w(x.value,(t,b)=>(o(),l("div",{key:b,class:"ml-6"},"⢠"+d(t),1))),128))])):m("",!0),F.value?(o(),l("div",ls,[e[48]||(e[48]=s("span",null,"ð¥",-1)),u(" "+d(F.value),1)])):m("",!0),s("label",os,[e[49]||(e[49]=s("div",{class:"label-text mb-3"},"âï¸ Message Content",-1)),s("div",ns,[c(s("textarea",{"onUpdate:modelValue":e[15]||(e[15]=t=>r.message=t),rows:"5",class:"input-base w-full pb-10",placeholder:"Type your brilliant campaign message here..."},null,512),[[y,r.message]]),s("div",rs,[s("span",is,d(r.message.length)+" chars ",1)])])]),s("div",ds,[e[50]||(e[50]=s("div",{class:"absolute -top-3 left-6 bg-[var(--card)] px-2 text-xs font-extrabold text-indigo-500 uppercase tracking-widest"}," Live Preview ",-1)),s("p",us,[s("span",ps,"("+d(v.brandName||"FraudSpy")+")",1),u(" "+d(r.message||" [ Your message will appear here ]"),1)])]),s("div",cs,[s("div",bs,[e[52]||(e[52]=s("div",{class:"flex items-center gap-2 text-xs font-bold text-[var(--muted-foreground)] uppercase tracking-widest mb-3"},[s("span",null,"ð"),u(" Message Size ")],-1)),s("div",ms,[u(d(U.value.length)+" ",1),e[51]||(e[51]=s("span",{class:"text-sm text-[var(--muted-foreground)] font-semibold"},"chars",-1))]),s("div",vs,[s("span",gs,d(U.value.parts)+" SMS part"+d(U.value.parts>1?"s":""),1),U.value.hasUnicode?(o(),l("span",xs,"Unicode")):(o(),l("span",fs,"GSM-7"))])]),s("div",ks,[e[54]||(e[54]=s("div",{class:"flex items-center gap-2 text-xs font-bold text-[var(--muted-foreground)] uppercase tracking-widest mb-3"},[s("span",null,"ð¯"),u(" Recipients ")],-1)),s("div",ws,[z.value?(o(),l("span",ys,"...")):(o(),l("span",hs,d(M.value.toLocaleString()),1)),e[53]||(e[53]=s("span",{class:"text-sm text-[var(--muted-foreground)] font-semibold ml-1"},"users",-1))])]),s("div",_s,[e[56]||(e[56]=s("div",{class:"flex items-center gap-2 text-xs font-bold text-[var(--muted-foreground)] uppercase tracking-widest mb-3"},[s("span",null,"ð"),u(" Estimated Cost ")],-1)),s("div",Ss,[u(d((U.value.parts*M.value).toLocaleString())+" ",1),e[55]||(e[55]=s("span",{class:"text-sm text-[var(--muted-foreground)] font-semibold"},"credits",-1))])])]),s("div",Cs,[s("div",Ms,[e[57]||(e[57]=s("div",{class:"pl-2 text-xl"},"ð±",-1)),c(s("input",{"onUpdate:modelValue":e[16]||(e[16]=t=>C.value=t),class:"bg-transparent border-none outline-none text-sm w-48 font-bold text-[var(--foreground)] placeholder-[var(--muted-foreground)]",placeholder:"017xxxxxxxx"},null,512),[[y,C.value]]),s("button",{class:"bg-slate-800 text-white hover:bg-slate-700 dark:bg-slate-200 dark:text-slate-900 dark:hover:bg-white py-2.5 px-5 rounded-xl font-bold text-xs transition-all duration-200",disabled:E.value,onClick:ae},[E.value?(o(),l("span",Ps,"Wait...")):(o(),l("span",Bs,"Send Test"))],8,Us)]),s("div",As,[s("button",{class:"btn-primary text-base px-8 py-4 shadow-2xl shadow-indigo-500/40",disabled:L.value,onClick:le},[L.value?(o(),l("span",$s,"Preparing Launch...")):(o(),l("span",Vs,[...e[58]||(e[58]=[s("span",null,"ð",-1),u(" Launch Campaign",-1)])]))],8,Ns),s("button",{class:"chip text-base px-6 py-4",onClick:e[17]||(e[17]=()=>{r.package_ids=[],r.sub_status="all",r.message="",C.value=""})}," ð§¹ Reset ")])]),k.value.length?(o(),l("div",qs,[(o(!0),l(f,null,w(k.value,(t,b)=>(o(),l("div",{key:b},"⢠"+d(t),1))),128))])):m("",!0),T.value?(o(),l("div",Ls,[e[59]||(e[59]=s("span",null,"ð",-1)),u(" "+d(T.value),1)])):m("",!0)])],512),[[I,g.value==="bulksms"]])])])])]),_:1},8,["breadcrumbs"])],64))}}
3),Os=pe(Fs,[["__scopeId","data-v-047beb90"]]);export{Os 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.