1import{u as zt,_ as Pt}from"./Bs_LGr2J.js";import{A as Ut}from"./OHiqLgOh.js";import{_ as Wt}from"./DZxS3js7.js";import{_ as Vt}from"./3vexY_XL.js";import{d as H,f as n,g as t,h as p,B as Kt,e as o,F,k as E,m as j,q as L,r as S,D as Z,o as e,j as O,t as m,p as U,i as G,n as jt,c as g,v as q,a as Yt,u as Ht,L as Zt,w as ut,y as Gt,l as pt}from"./5iPJ5zAh.js";import{_ as qt}from"./V56DBLpv.js";import{_ as Qt}from"./BVkYxsgC.js";import{_ as vt}from"./EtjM5rb5.js";import{_ as Jt}from"./DPQyRwaE.js";import{_ as Xt}from"./CyFJqtwr.js";import{_ as to}from"./DBNxLdwE.js";import{d as oo,e as eo,f as so}from"./DNAG-B31.js";import{u as no}from"./Cs4pv9tf.js";import{u as ao}from"./DO0GCZlW.js";import"./CjaGG_Iq.js";import"./ChtDRl6p.js";import"./lumzW9aP.js";const io={class:"location-disposition-table"},lo={class:"table-header"},co={class:"table-actions"},ro={key:0,class:"table-loading"},_o={key:1,class:"table-empty"},uo={class:"empty-icon"},po={key:2,class:"table-container"},vo={class:"table-wrapper"},mo={class:"data-table"},ho={class:"col-rank"},go={class:"rank-badge"},yo={class:"col-location"},ko={class:"location-cell"},bo={class:"location-name"},wo={class:"col-scraped"},fo={class:"leads-value"},$o={class:"col-with-disposition"},To={class:"leads-value"},Co={class:"col-conversion"},Lo={class:"col-top-issue"},xo={key:0,class:"disposition-preview"},Do={class:"disposition-name"},So={class:"disposition-count"},Ro={key:1,class:"no-data"},Bo={class:"col-actions"},Io={key:0,class:"expanded-row"},Ao={colspan:"7",class:"expanded-content"},No={class:"disposition-breakdown"},Fo={class:"breakdown-grid"},Oo={class:"breakdown-header"},Eo={class:"breakdown-name"},Mo={class:"breakdown-percentage"},zo={class:"breakdown-bar-container"},Po={class:"breakdown-footer"},Uo={class:"breakdown-count"},Wo={key:0,class:"table-footer"},Vo=H({__name:"LocationDispositionTable",props:{data:{},title:{default:"Industry Conversion Analysis"},loading:{type:Boolean,default:!1},maxItems:{default:10}},setup(R){const _=R,x=S(null),$=S("leadsWithDisposition"),k=S(!1),f=[{value:"conversion",label:"By Appointment Rate"},{value:"leads",label:"By Total Scraped"},{value:"leadsWithDisposition",label:"By With Disposition"},{value:"leastConversion",label:"By Least Appointment Rate"},{value:"mostRejections",label:"By Most Rejections"},{value:"name",label:"By Name"}],y=l=>{const c=["not interested","using competitor","with competitor","in-house","in house","already have","not need"];return l.disposition_breakdown.filter(h=>{const T=h.disposition_name.toLowerCase();return c.some(I=>T.includes(I))}).reduce((h,T)=>h+(T.total_leads??0),0)},D=g(()=>{let l=[..._.data];switch($.value){case"conversion":l=l.sort((c,h)=>h.conversion_rate-c.conversion_rate);break;case"leads":l=l.sort((c,h)=>h.total_leads-c.total_leads);break;case"leadsWithDisposition":l=l.sort((c,h)=>h.leads_with_disposition-c.leads_with_disposition);break;case"leastConversion":l=l.sort((c,h)=>c.conversion_rate-h.conversion_rate);break;case"mostRejections":l=l.sort((c,h)=>y(h)-y(c));break;case"name":l=l.sort((c,h)=>c.location_value.localeCompare(h.location_value));break}return l}),w=g(()=>k.value?D.value:D.value.slice(0,10)),B=g(()=>D.value.length>10),b=()=>{k.value=!k.value,x.value=null},i=l=>{x.value=x.value===l?null:l},u=l=>l.toLocaleString("en-US"),v=l=>l>=3?"high":l>=1.5?"medium":"low",r=l=>l>=3?"heroicons:arrow-trending-up":l>=1.5?"heroicons:arrow-right":"heroicons:arrow-trending-down",a=l=>{const c=["no answer","no disposition","voicemail"],h=l.disposition_breakdown.filter(T=>{const I=T.disposition_name.toLowerCase();return!c.some(C=>I.includes(C))});return h.length>0?h[0]:null};return(l,c)=>{const h=vt,T=G,I=Z;return e(),n("div",io,[t("div",lo,[t("div",co,[p(h,{modelValue:o($),"onUpdate:modelValue":c[0]||(c[0]=C=>Kt($)?$.value=C:null),options:f,size:"sm"},null,8,["modelValue"])])]),R.loading?(e(),n("div",ro,[...c[1]||(c[1]=[t("div",{class:"loading-spinner"},null,-1),t("p",null,"Loading location conversion data...",-1)])])):R.data?.length?(e(),n("div",po,[t("div",vo,[t("table",mo,[c[4]||(c[4]=t("thead",null,[t("tr",null,[t("th",{class:"col-rank"},"#"),t("th",{class:"col-location"},"Location"),t("th",{class:"col-scraped"},"Total Scraped"),t("th",{class:"col-with-disposition"},"With Disposition"),t("th",{class:"col-conversion"},"Appoint. Rate"),t("th",{class:"col-top-issue"},"Top Disposition"),t("th",{class:"col-actions"})])],-1)),t("tbody",null,[(e(!0),n(F,null,E(o(w),(C,M)=>(e(),n(F,{key:C.location_value},[t("tr",{class:O(["table-row",{expanded:o(x)===C.location_value}])},[t("td",ho,[t("span",go,m(M+1),1)]),t("td",yo,[t("div",ko,[t("span",bo,m(C.location_value),1)])]),t("td",wo,[t("span",fo,m(u(C.total_leads)),1)]),t("td",$o,[t("span",To,m(u(C.leads_with_disposition)),1)]),t("td",Co,[t("div",{class:O(["conversion-badge",v(C.conversion_rate)])},[p(T,{name:r(C.conversion_rate),class:"icon-xs"},null,8,["name"]),U(" "+m(C.conversion_rate.toFixed(1))+"% ",1)],2)]),t("td",Lo,[a(C)?(e(),n("div",xo,[t("span",Do,m(a(C).disposition_name),1),t("span",So,m(a(C).total_leads)+" ("+m(a(C).percentage.toFixed(1))+"%) ",1)])):(e(),n("span",Ro,"â"))]),t("td",Bo,[p(I,{size:"sm",variant:"ghost",onClick:V=>i(C.location_value)},{default:j(()=>[p(T,{name:o(x)===C.location_value?"heroicons:chevron-up":"heroicons:chevron-down",class:"icon-sm"},null,8,["name"])]),_:2},1032,["onClick"])])],2),o(x)===C.location_value?(e(),n("tr",Io,[t("td",Ao,[t("div",No,[c[3]||(c[3]=t("h5",{class:"breakdown-title"},"Disposition Breakdown",-1)),t("div",Fo,[(e(!0),n(F,null,E(C.disposition_breakdown,V=>(e(),n("div",{key:V.disposition_id||"no-disposition",class:"breakdown-item"},[t("div",Oo,[t("span",Eo,m(V.disposition_name),1),t("span",Mo,m(V.percentage.toFixed(1))+"%",1)]),t("div",zo,[t("div",{class:"breakdown-bar",style:jt({width:`${V.percentage}%`})},null,4)]),t("div",Po,[t("span",Uo,m(u(V.total_leads??0))+" leads",1)])]))),128))])])])])):L("",!0)],64))),128))])])]),o(B)?(e(),n("div",Wo,[p(I,{variant:"ghost",size:"md",onClick:b,class:"load-more-button"},{default:j(()=>[p(T,{name:o(k)?"heroicons:chevron-up":"heroicons:chevron-down",class:"icon-sm"}
1,null,8,["name"]),U(" "+m(o(k)?"Show less (only 10)":`Show more (${o(D).length-10} more locations)`),1)]),_:1})])):L("",!0)])):(e(),n("div",_o,[t("div",uo,[p(T,{name:"heroicons:map-pin",class:"icon-large"})]),c[2]||(c[2]=t("p",null,"No location conversion data available",-1))]))])}}}),Ko=q(Vo,[["__scopeId","data-v-72f2e973"]]),jo={class:"top-converters-ranking"},Yo={class:"ranking-header"},Ho={class:"header-content"},Zo={class:"sort-toggle"},Go={key:0,class:"ranking-loading"},qo={key:1,class:"ranking-empty"},Qo={key:2,class:"ranking-list"},Jo={class:"location-info"},Xo={class:"location-name-wrapper"},te={class:"location-name"},oe=["onClick"],ee={key:0,class:"tooltip-popup"},se={class:"disposition-detail"},ne={class:"location-stats"},ae={class:"stat-value"},ie={class:"stat-percentage"},le={key:0,class:"show-more-container"},ce=H({__name:"TopLocationConvertersRanking",props:{data:{},title:{default:"Top Converters"},loading:{type:Boolean,default:!1}},setup(R){const _=R,x=v=>v.toLowerCase().trim()==="appointment booked",$=S(!1),k=S("absolute"),f=S(null);let y=null;const D=v=>{y&&(clearTimeout(y),y=null),f.value===v?f.value=null:(f.value=v,y=setTimeout(()=>{f.value=null,y=null},3e3))},w=g(()=>_.data.map(v=>{const r=v.disposition_breakdown.filter(c=>x(c.disposition_name)),a=r.reduce((c,h)=>c+(h.total_leads??0),0),l=v.total_leads>0?a/v.total_leads*100:0;return{location_value:v.location_value,total_leads:v.total_leads,total_appointments:a,appointment_rate:l,appointment_dispositions:r}}).filter(v=>v.total_appointments>0).sort((v,r)=>k.value==="percentage"?r.appointment_rate-v.appointment_rate:r.total_appointments-v.total_appointments)),B=g(()=>$.value?w.value.slice(0,10):w.value.slice(0,5)),b=g(()=>w.value.length>5),i=v=>"",u=v=>{const r=v.toLowerCase();return r.includes("appointment booked")||r==="appointment booked"?"booked":"possible"};return(v,r)=>{const a=G,l=Z;return e(),n("div",jo,[t("div",Yo,[t("div",Ho,[p(a,{name:"heroicons:trophy",class:"header-icon success"}),r[3]||(r[3]=t("div",{class:"header-text"},[t("h4",{class:"ranking-title"},"Top Industries - Appointments"),t("p",{class:"ranking-subtitle"},"Industries with most booked appointments")],-1))]),t("div",Zo,[r[4]||(r[4]=t("span",{class:"sort-label"},"Sort:",-1)),t("button",{class:O(["sort-option",{active:o(k)==="absolute"}]),onClick:r[0]||(r[0]=c=>k.value="absolute"),title:"Sort by absolute numbers (total count)"}," # ",2),t("button",{class:O(["sort-option",{active:o(k)==="percentage"}]),onClick:r[1]||(r[1]=c=>k.value="percentage"),title:"Sort by percentage (rate)"}," % ",2)])]),R.loading?(e(),n("div",Go,[...r[5]||(r[5]=[t("div",{class:"loading-spinner"},null,-1)])])):o(B).length?(e(),n("div",Qo,[(e(!0),n(F,null,E(o(B),(c,h)=>(e(),n("div",{key:c.location_value,class:"ranking-item"},[t("div",{class:O(["rank-badge",i()])},m(h+1),3),t("div",Jo,[t("div",Xo,[t("span",te,m(c.location_value),1),c.location_value==="OTHERS"?(e(),n("div",{key:0,class:"info-icon-wrapper",onClick:T=>D(c.location_value)},[p(a,{name:"heroicons:information-circle",class:"info-icon"}),o(f)===c.location_value?(e(),n("div",ee," These leads have no location associated ")):L("",!0)],8,oe)):L("",!0)]),t("div",se,[(e(!0),n(F,null,E(c.appointment_dispositions,T=>(e(),n("span",{key:T.disposition_name,class:O(["disposition-tag",u(T.disposition_name)])},m(T.disposition_name)+": "+m(T.total_leads),3))),128))])]),t("div",ne,[t("span",ae,m(c.total_appointments),1),r[7]||(r[7]=t("span",{class:"stat-label"},"appointments",-1)),t("span",ie,m(c.appointment_rate.toFixed(1))+"%",1)])]))),128)),o(b)?(e(),n("div",le,[p(l,{variant:"ghost",size:"sm",onClick:r[2]||(r[2]=c=>$.value=!o($)),class:"show-more-button"},{default:j(()=>[p(a,{name:o($)?"heroicons:chevron-up":"heroicons:chevron-down",class:"icon-xs"},null,8,["name"]),U(" "+m(o($)?"Show less":`Show more (${Math.min(o(w).length-5,5)} more)`),1)]),_:1})])):L("",!0)])):(e(),n("div",qo,[...r[6]||(r[6]=[t("p",null,"No data available",-1)])]))])}}}),re=q(ce,[["__scopeId","data-v-ce18c766"]]),de={class:"top-competitor-ranking"},_e={class:"ranking-header"},ue={class:"header-content"},pe={key:0,class:"ranking-loading"},ve={key:1,class:"ranking-empty"},me={key:2,class:"ranking-list"},he={class:"rank-badge"},ge={class:"location-info"},ye={class:"location-name-wrapper"},ke={class:"location-name"},be=["onClick"],we={key:0,class:"tooltip-popup"},fe={class:"disposition-detail"},$e={class:"location-stats"},Te={class:"stat-value"},Ce={class:"stat-percentage"},Le={key:0,class:"show-more-container"},xe=H({__name:"TopLocationCompetitorRanking",props:{data:{},loading:{type:Boolean,default:!1}},setup(R){const _=R,x=["competitor","withcompetitor"],$=i=>{const u=i.toLowerCase();return x.some(v=>u.includes(v))},k=S(!1),f=S(null);let y=null;const D=i=>{y&&(clearTimeout(y),y=null),f.value===i?f.value=null:(f.value=i,y=setTimeout(()=>{f.value=null,y=null},3e3))},w=g(()=>_.data.map(i=>{const u=i.disposition_breakdown.filter(a=>$(a.disposition_name)),v=u.reduce((a,l)=>a+(l.total_leads??0),0),r=i.total_leads>0?v/i.total_leads*100:0;return{location_value:i.location_value,total_leads:i.total_leads,total_competitor:v,competitor_rate:r,competitor_dispositions:u}}).filter(i=>i.total_competitor>0).sort((i,u)=>u.total_competitor-i.total_competitor)),B=g(()=>k.value?w.value.slice(0,10):w.value.slice(0,5)),b=g(()=>w.value.length>5);return(i,u)=>{const v=G,r=Z;return e(),n("div",de,[t("div",_e,[t("div",ue,[p(v,{name:"heroicons:users",class:"header-icon competitor"}),u[1]||(u[1]=t("div",{class:"header-text"},[t("h4",{class:"ranking-title"},"High Competition Industries"),t("p",{class:"ranking-subtitle"},'Industries with most "Using Competitor"')],-1))])]),R.loading?(e(),n("div",pe,[...u[2]||(u[2]=[t("div",{class:"loading-spinner"},null,-1)])])):o(B).length?(e(),n("div",me,[(e(!0),n(F,null,E(o(B),(a,l)=>(e(),n("div",{key:a.location_value,class:"ranking-item"},[t("div",he,m(l+1),1),t("div",ge,[t("div",ye,[t("span",ke,m(a.location_value),1),a.location_value==="OTHERS"?(e(),n("div",{key:0,class:"info-icon-wrapper",onClick:c=>D(a.location_value)},[p(v,{name:"heroicons:information-circle",class:"info-icon"}),o(f)===a.location_value?(e(),n("div",we," These leads have no location associated ")):L("",!0)],8,be)):L("",!0)]),t("div",fe,[(e(!0),n(F,null,E(a.competitor_dispositions,c=>(e(),n("span",{key:c.disposition_name,class:"disposition-tag"}
1,m(c.disposition_name)+": "+m(c.total_leads),1))),128))])]),t("div",$e,[t("span",Te,m(a.total_competitor),1),u[4]||(u[4]=t("span",{class:"stat-label"},"with competitor",-1)),t("span",Ce,m(a.competitor_rate.toFixed(1))+"%",1)])]))),128)),o(b)?(e(),n("div",Le,[p(r,{variant:"ghost",size:"sm",onClick:u[0]||(u[0]=a=>k.value=!o(k)),class:"show-more-button"},{default:j(()=>[p(v,{name:o(k)?"heroicons:chevron-up":"heroicons:chevron-down",class:"icon-xs"},null,8,["name"]),U(" "+m(o(k)?"Show less":`Show more (${Math.min(o(w).length-5,5)} more)`),1)]),_:1})])):L("",!0)])):(e(),n("div",ve,[...u[3]||(u[3]=[t("p",null,"No data available",-1)])]))])}}}),De=q(xe,[["__scopeId","data-v-d8273851"]]),Se={class:"top-lost-ranking"},Re={class:"ranking-header"},Be={class:"header-content"},Ie={key:0,class:"ranking-loading"},Ae={key:1,class:"ranking-empty"},Ne={key:2,class:"ranking-list"},Fe={class:"location-info"},Oe={class:"location-name-wrapper"},Ee={class:"location-name"},Me=["onClick"],ze={key:0,class:"tooltip-popup"},Pe={class:"disposition-detail"},Ue={class:"location-stats"},We={class:"stat-value"},Ve={class:"stat-percentage"},Ke={key:0,class:"show-more-container"},je=H({__name:"TopLocationLostRanking",props:{data:{},title:{default:"Top Lost"},loading:{type:Boolean,default:!1}},setup(R){const _=R,x=["not interested"],$=["do not call"],k=r=>{const a=r.toLowerCase();return x.some(l=>a.includes(l))||$.some(l=>a.includes(l))},f=r=>{const a=r.toLowerCase();return x.some(l=>a.includes(l))?"not-interested":$.some(l=>a.includes(l))?"do-not-call":""},y=S(!1),D=S(null);let w=null;const B=r=>{w&&(clearTimeout(w),w=null),D.value===r?D.value=null:(D.value=r,w=setTimeout(()=>{D.value=null,w=null},3e3))},b=g(()=>_.data.map(r=>{const a=r.disposition_breakdown.filter(h=>k(h.disposition_name)),l=a.reduce((h,T)=>h+(T.total_leads??0),0),c=r.total_leads>0?l/r.total_leads*100:0;return{location_value:r.location_value,total_leads:r.total_leads,total_lost:l,lost_rate:c,lost_dispositions:a}}).filter(r=>r.total_lost>0).sort((r,a)=>a.total_lost-r.total_lost)),i=g(()=>y.value?b.value.slice(0,10):b.value.slice(0,3)),u=g(()=>b.value.length>3),v=r=>"";return(r,a)=>{const l=G,c=Z;return e(),n("div",Se,[t("div",Re,[t("div",Be,[p(l,{name:"heroicons:exclamation-triangle",class:"header-icon warning"}),a[1]||(a[1]=t("div",{class:"header-text"},[t("h4",{class:"ranking-title"},"Top Loss Industries"),t("p",{class:"ranking-subtitle"},'Industries with "Not Interested" & "Do Not Call" dispositions')],-1))])]),R.loading?(e(),n("div",Ie,[...a[2]||(a[2]=[t("div",{class:"loading-spinner"},null,-1)])])):o(i).length?(e(),n("div",Ne,[(e(!0),n(F,null,E(o(i),(h,T)=>(e(),n("div",{key:h.location_value,class:"ranking-item"},[t("div",{class:O(["rank-badge",v()])},m(T+1),3),t("div",Fe,[t("div",Oe,[t("span",Ee,m(h.location_value),1),h.location_value==="OTHERS"?(e(),n("div",{key:0,class:"info-icon-wrapper",onClick:I=>B(h.location_value)},[p(l,{name:"heroicons:information-circle",class:"info-icon"}),o(D)===h.location_value?(e(),n("div",ze," These leads have no location associated ")):L("",!0)],8,Me)):L("",!0)]),t("div",Pe,[(e(!0),n(F,null,E(h.lost_dispositions,I=>(e(),n("span",{key:I.disposition_name,class:O(["disposition-tag",f(I.disposition_name)])},m(I.disposition_name)+": "+m(I.total_leads),3))),128))])]),t("div",Ue,[t("span",We,m(h.total_lost),1),a[4]||(a[4]=t("span",{class:"stat-label"},"lost",-1)),t("span",Ve,m(h.lost_rate.toFixed(1))+"%",1)])]))),128)),o(u)?(e(),n("div",Ke,[p(c,{variant:"ghost",size:"sm",onClick:a[0]||(a[0]=h=>y.value=!o(y)),class:"show-more-button"},{default:j(()=>[p(l,{name:o(y)?"heroicons:chevron-up":"heroicons:chevron-down",class:"icon-xs"},null,8,["name"]),U(" "+m(o(y)?"Show less":`Show more (${Math.min(o(b).length-3,7)} more)`),1)]),_:1})])):L("",!0)])):(e(),n("div",Ae,[...a[3]||(a[3]=[t("p",null,"No data available",-1)])]))])}}}),Ye=q(je,[["__scopeId","data-v-11d02b83"]]),He={class:"top-no-response-ranking"},Ze={class:"ranking-header"},Ge={class:"header-content"},qe={key:0,class:"ranking-loading"},Qe={key:1,class:"ranking-empty"},Je={key:2,class:"ranking-list"},Xe={class:"rank-badge"},ts={class:"location-info"},os={class:"location-name-wrapper"},es={class:"location-name"},ss=["onClick"],ns={key:0,class:"tooltip-popup"},as={class:"disposition-detail"},is={class:"location-stats"},ls={class:"stat-value"},cs={class:"stat-percentage"},rs={key:0,class:"show-more-container"},ds=H({__name:"TopLocationNoResponseRanking",props:{data:{},loading:{type:Boolean,default:!1}},setup(R){const _=R,x=["no answer","voicemail"],$=i=>{const u=i.toLowerCase();return x.some(v=>u.includes(v))},k=S(!1),f=S(null);let y=null;const D=i=>{y&&(clearTimeout(y),y=null),f.value===i?f.value=null:(f.value=i,y=setTimeout(()=>{f.value=null,y=null},3e3))},w=g(()=>_.data.map(i=>{const u=i.disposition_breakdown.filter(a=>$(a.disposition_name)),v=u.reduce((a,l)=>a+(l.total_leads??0),0),r=i.total_leads>0?v/i.total_leads*100:0;return{location_value:i.location_value,total_leads:i.total_leads,total_no_response:v,no_response_rate:r,no_response_dispositions:u}}).filter(i=>i.total_no_response>0).sort((i,u)=>u.total_no_response-i.total_no_response)),B=g(()=>k.value?w.value.slice(0,10):w.value.slice(0,3)),b=g(()=>w.value.length>3);return(i,u)=>{const v=G,r=Z;return e(),n("div",He,[t("div",Ze,[t("div",Ge,[p(v,{name:"heroicons:phone-x-mark",class:"header-icon no-response"}),u[1]||(u[1]=t("div",{class:"header-text"},[t("h4",{class:"ranking-title"},"Low Response Industries"),t("p",{class:"ranking-subtitle"},'Industries with "No Answer" & "Voicemail"')],-1))])]),R.loading?(e(),n("div",qe,[...u[2]||(u[2]=[t("div",{class:"loading-spinner"},null,-1)])])):o(B).length?(e(),n("div",Je,[(e(!0),n(F,null,E(o(B),(a,l)=>(e(),n("div",{key:a.location_value,class:"ranking-item"},[t("div",Xe,m(l+1),1),t("div",ts,[t("div",os,[t("span",es,m(a.location_value),1),a.location_value==="OTHERS"?(e(),n("div",{key:0,class:"info-icon-wrapper",onClick:c=>D(a.location_value)},[p(v,{name:"heroicons:information-circle",class:"info-icon"}),o(f)===a.location_value?(e(),n("div",ns," These leads have no location associated ")):L("",!0)],8,ss)):L("",!0)]),t("div",as,[(e(!0),n(F,null,E(a.no_response_dispositions,c=>(e(),n("span",{key:c.disposition_name,class:"disposition-tag"}
1,m(c.disposition_name)+": "+m(c.total_leads),1))),128))])]),t("div",is,[t("span",ls,m(a.total_no_response),1),u[4]||(u[4]=t("span",{class:"stat-label"},"no response",-1)),t("span",cs,m(a.no_response_rate.toFixed(1))+"%",1)])]))),128)),o(b)?(e(),n("div",rs,[p(r,{variant:"ghost",size:"sm",onClick:u[0]||(u[0]=a=>k.value=!o(k)),class:"show-more-button"},{default:j(()=>[p(v,{name:o(k)?"heroicons:chevron-up":"heroicons:chevron-down",class:"icon-xs"},null,8,["name"]),U(" "+m(o(k)?"Show less":`Show more (${Math.min(o(w).length-3,7)} more)`),1)]),_:1})])):L("",!0)])):(e(),n("div",Qe,[...u[3]||(u[3]=[t("p",null,"No data available",-1)])]))])}}}),_s=q(ds,[["__scopeId","data-v-8a8eccf2"]]),us={class:"locations-page"},ps={class:"locations-page__container"},vs=["inert"],ms={class:"view-selector-section"},hs={class:"view-selector"},gs={class:"view-tabs"},ys={key:1,class:"loading-container"},ks={key:2,class:"locations-content"},bs={class:"location-type-section"},ws={class:"type-selector"},fs={class:"type-tabs"},$s=["onClick"],Ts={key:0,class:"overview-section"},Cs={key:1,class:"overview-section"},Ls={class:"disposition-analysis-section"},xs={class:"analysis-content"},Ds={class:"rankings-grid"},Ss={class:"small-rankings-grid"},Rs={class:"charts-section"},Bs={class:"section-header"},Is={class:"header-text"},As={class:"section-subtitle"},Ns={key:0,class:"section-actions"},Fs={key:0,class:"charts-grid-dual"},Os={class:"chart-item"},Es={class:"chart-item"},Ms={key:1,class:"charts-grid-dual"},zs={class:"chart-item"},Ps={class:"chart-item"},Us={key:2,class:"trends-section"},Ws={class:"section-header"},Vs={class:"header-text"},Ks={class:"section-title"},js={key:0,class:"trends-grid"},Ys={class:"trends-chart"},Hs={key:1,class:"trends-grid"},Zs={class:"trends-chart"},Gs={key:3,class:"empty-state"},qs={class:"empty-content"},Qs={class:"empty-icon"},Js=H({__name:"locations",setup(R){const _=no(),x=Yt();Ht(),Zt();const{selectedAccountId:$,isSingleAccountUser:k,shouldShowDropdown:f}=ao(),{isPreview:y,canSelfUpgrade:D,openUpgrade:w,planLabel:B}=zt("/metrics/locations"),b=S("activity"),i=S("state"),u=S(10),v=S(""),r=S(1),a=g(()=>_.filters),l=g(()=>_.dateRangeLabel),c=[{value:"7",label:"Last 7 days"},{value:"30",label:"Last 30 days"},{value:"45",label:"Last 45 days"},{value:"60",label:"Last 60 days"},{value:"90",label:"Last 90 days"},{value:"180",label:"Last 6 months"},{value:"365",label:"Last year"},{value:"custom",label:"Custom Range"}],h=[{value:"5",label:"Top 5"},{value:"10",label:"Top 10"},{value:"15",label:"Top 15"},{value:"20",label:"Top 20"},{value:"50",label:"Top 50"}],T=d=>d?d.replace(/_/g," ").split(" ").map(s=>s.charAt(0).toUpperCase()+s.slice(1)).join(" "):"",I=g(()=>{if(k.value)return[];const d=[{value:"all",label:"All Accounts"}],s=x.getAccounts.map(N=>({value:N.id.toString(),label:T(N.name)}));return[...d,...s]}),C=[{value:"state",label:"States",icon:"heroicons:map"},{value:"city",label:"Cities",icon:"heroicons:building-office-2"},{value:"zip_code",label:"ZIP Codes",icon:"heroicons:map-pin"}],M={zip_code:"ZIP Code",city:"City",state:"State"},V=[{value:"5",label:"Top 5"},{value:"10",label:"Top 10"},{value:"15",label:"Top 15"},{value:"20",label:"Top 20"},{value:"50",label:"Top 50"}],K=g(()=>_.activityByLocation),z=g(()=>_.inventoryByLocation),P=g(()=>b.value==="activity"?_.loading.activityByLocation:_.loading.inventoryByLocation),mt=g(()=>b.value==="activity"?_.loading.activityByLocation:_.loading.inventoryByLocation),st=g(()=>_.loading.locationTrends),ht=g(()=>_.loading.locationDispositions),nt=g(()=>_.error),at=g(()=>b.value==="activity"?!!(K.value?.metrics&&K.value.metrics.length>0):!!(z.value?.metrics&&z.value.metrics.length>0)),it=g(()=>b.value==="activity"?(K.value?.metrics||[]).map(s=>({location_type:i.value,location_value:s.location_value||"",total_leads:s.total_leads_contacted,percentage:s.total_leads_contacted/(K.value?.total_leads_contacted||1)*100})):(z.value?.metrics||[]).map(s=>({location_type:i.value,location_value:s.location_value||"",total_leads:s.total_new_leads,percentage:s.total_new_leads/(z.value?.total_new_leads||1)*100}))),tt=g(()=>_.locationTrends?.metrics||[]),Y=g(()=>{if(b.value==="activity"){const d=K.value;return d?{period_start:d.period_start,period_end:d.period_end,account_id:d.account_id||0,location_type:i.value,total_leads:d.total_leads_contacted,total_leads_with_disposition:d.total_leads_contacted,overall_conversion_rate:d.overall_conversion_rate,metrics:d.metrics.map(s=>({location_type:i.value,location_value:s.location_value||"",total_leads:s.total_leads_contacted,leads_with_disposition:s.total_leads_contacted,leads_without_disposition:0,
1conversion_rate:s.conversion_rate,disposition_breakdown:s.disposition_breakdown.map(N=>({disposition_id:N.disposition_id,disposition_name:N.disposition_name,total_leads:N.total_leads_contacted||N.total_leads||0,percentage:N.percentage}))}))}:null}else{const d=z.value;return d?{period_start:d.period_start,period_end:d.period_end,account_id:d.account_id||0,location_type:i.value,total_leads:d.total_new_leads,total_leads_with_disposition:d.total_contacted_in_period,overall_conversion_rate:d.overall_conversion_rate,metrics:d.metrics.map(s=>({location_type:i.value,location_value:s.location_value||"",total_leads:s.total_new_leads,leads_with_disposition:s.contacted_in_period,leads_without_disposition:s.pending_at_end,conversion_rate:s.conversion_rate,disposition_breakdown:s.disposition_breakdown}))}:null}}),lt=g(()=>b.value==="activity"?K.value?.total_leads_contacted||0:z.value?.total_new_leads||0),gt=g(()=>b.value==="activity"?K.value?.metrics.length||0:z.value?.metrics.length||0),yt=g(()=>{const d=[];return b.value==="activity"?(d.push({id:"total-contacted",value:lt.value,label:"Total Contacted",subtext:"leads with activity",icon:"heroicons:chart-bar",variant:"primary"}),d.push({id:"conversion-rate",value:`${K.value?.overall_conversion_rate.toFixed(1)||0}%`,label:"Conversion Rate",subtext:"appointments booked",icon:"heroicons:check-circle",variant:"success"})):(d.push({id:"total-new-leads",value:lt.value,label:"New Leads",subtext:"scraped in period",icon:"heroicons:cube",variant:"primary"}),d.push({id:"contacted",value:z.value?.total_contacted_in_period||0,label:"Contacted",subtext:`${z.value?.overall_contact_rate.toFixed(1)||0}% contact rate`,icon:"heroicons:phone",variant:"success"}),d.push({id:"pending",value:z.value?.total_pending_at_end||0,label:"Pending",subtext:"no disposition",icon:"heroicons:clock",variant:"warning"})),d.push({id:"total-locations",value:gt.value,label:`${M[i.value]}s`,icon:"heroicons:map-pin",variant:"info"}),ot.value&&d.push({id:"top-location",value:ot.value.location_value,label:`Top ${M[i.value]} Scraped`,subtext:`${ot.value.percentage.toFixed(1)}% of leads`,icon:"heroicons:trophy",variant:"info"}),d}),ot=g(()=>it.value[0]),kt=g(()=>_.locationTrends?.total_current_leads||0),bt=g(()=>_.locationTrends?.total_previous_leads||0),wt=g(()=>_.locationTrends?.overall_growth_rate||0),ft=g(()=>it.value.map(d=>({category_id:Math.random(),category_name:d.location_value,total_leads:d.total_leads,percentage:d.percentage}))),$t=g(()=>{const s=(Y.value?.metrics||[]).filter(A=>A.leads_with_disposition>0).map(A=>({location_value:A.location_value,leads_with_disposition:A.leads_with_disposition})),N=s.reduce((A,J)=>A+J.leads_with_disposition,0);return s.map(A=>({category_id:Math.random(),category_name:A.location_value,total_leads:A.leads_with_disposition,percentage:N>0?A.leads_with_disposition/N*100:0})).sort((A,J)=>J.total_leads-A.total_leads)}),ct=async d=>{b.value=d,_.updateFilters({metrics_view:d}),await Q()},Q=async()=>{b.value==="activity"?await _.fetchActivityByLocation(i.value):await _.fetchInventoryByLocation(i.value)},Tt=async d=>{i.value=d,_.updateFilters({location_type:d}),await Q()},rt=async()=>{await Q()},Ct=async()=>{await Q()},dt=async()=>{await Q()},Lt=(d,s)=>{d==="period"?s==="custom"?_.updateFilters({days_back:void 0,start_date:void 0,end_date:void 0}):_.updateFilters({days_back:Number(s),start_date:void 0,end_date:void 0}):d==="account_id"?s==="all"?_.updateFilters({account_id:void 0}):_.updateFilters({account_id:Number(s)}):_.updateFilters({[d]:s})},xt=()=>{const d={days_back:30,start_date:void 0,end_date:void 0,limit:10,location_type:i.value||"state"};k.value?d.account_id=$.value:d.account_id=void 0,_.updateFilters(d)};return ut(v,()=>{r.value=1}),ut($,async(d,s)=>{y.value||d!==s&&d&&(_.updateFilters({account_id:d}),await rt())}),Gt(async()=>{if(y.value){_.activityByLocation=oo,_.inventoryByLocation=eo,_.locationTrends=so;return}f.value&&!x.getAccounts.length&&await x.fetchAccounts(),$.value&&_.updateFilters({account_id:$.value}),!_.filters.days_back&&!_.filters.start_date&&_.updateFilters({days_back:30}),_.filters.location_type?i.value=_.filters.location_type:(_.updateFilters({location_type:"state"}),i.value="state"),_.filters.metrics_view||_.updateFilters({metrics_view:"activity"}),b.value=_.filters.metrics_view||"activity",await rt()}),(d,s)=>{const N=Pt,A=Ut,J=Wt,Dt=Vt,X=G,St=qt,Rt=Qt,Bt=Ko,It=re,At=De,Nt=Ye,Ft=_s,Ot=vt,_t=Jt,et=Xt,Et=to,Mt=Z;return e(),n("div",us,[t("div",ps,[o(y)?(e(),pt(N,{key:0,class:"preview-banner",title:"Preview Location Metrics",description:"This is the report your team would work in â same KPIs, charts, disposition breakdown and location table. Everything below is sample data.","plan-label":o(B),"can-self-upgrade":o(D),onUpgrade:o(w)},null,8,["plan-label","can-self-upgrade","onUpgrade"])):L("",!0),t("div",{inert:o(y)||void 0}
1,[o(nt)?(e(),pt(A,{key:0,type:"error",message:o(nt),duration:5e3},null,8,["message"])):L("",!0),p(J,{title:"Location Metrics",subtitle:"Analyze lead distribution by ZIP codes, cities, and states with cross-analysis insights","show-breadcrumb":!1,loading:o(P),"metrics-type":"leads",filters:o(a),"date-range-label":o(l),"period-options":c,"limit-options":h,"account-options":o(I),onApplyFilters:Ct,onRefresh:dt,onUpdateFilter:Lt,onResetFilters:xt},null,8,["loading","filters","date-range-label","account-options"]),p(Dt),t("section",ms,[t("div",hs,[s[17]||(s[17]=t("h2",{class:"selector-title"},"Metrics View",-1)),t("div",gs,[t("button",{class:O(["view-tab",{active:o(b)==="activity"}]),onClick:s[0]||(s[0]=W=>ct("activity"))},[p(X,{name:"heroicons:chart-bar",class:"icon-sm"}),s[13]||(s[13]=U(" Activity ",-1)),s[14]||(s[14]=t("span",{class:"view-description"},"Leads contacted in the period - shows team performance & dispositions",-1))],2),t("button",{class:O(["view-tab",{active:o(b)==="inventory"}]),onClick:s[1]||(s[1]=W=>ct("inventory"))},[p(X,{name:"heroicons:cube",class:"icon-sm"}),s[15]||(s[15]=U(" Inventory ",-1)),s[16]||(s[16]=t("span",{class:"view-description"},"New leads scraped in the period - shows pending vs contacted status",-1))],2)])])]),o(P)&&!o(at)?(e(),n("div",ys,[...s[18]||(s[18]=[t("div",{class:"loading-content"},[t("div",{class:"loading-spinner"}),t("p",null,"Loading geographic analysis...")],-1)])])):o(at)?(e(),n("div",ks,[t("section",bs,[t("div",ws,[s[19]||(s[19]=t("h2",{class:"selector-title"},"Analysis Type",-1)),t("div",fs,[(e(),n(F,null,E(C,W=>t("button",{key:W.value,class:O(["type-tab",{active:o(i)===W.value}]),onClick:Xs=>Tt(W.value)},[p(X,{name:W.icon,class:"icon-sm"},null,8,["name"]),U(" "+m(W.label),1)],10,$s)),64))])])]),o(P)?(e(),n("section",Cs,[p(Rt)])):(e(),n("section",Ts,[p(St,{kpis:o(yt)},null,8,["kpis"])])),t("section",Ls,[s[20]||(s[20]=t("div",{class:"section-header"},[t("div",null,[t("h2",{class:"section-title"},"Location Disposition Analysis"),t("p",{class:"section-subtitle"},"Detailed conversion metrics and disposition breakdown by location")])],-1)),t("div",xs,[p(Bt,{data:o(Y)?.metrics||[],loading:o(P)},null,8,["data","loading"]),t("div",Ds,[p(It,{data:o(Y)?.metrics||[],loading:o(P)},null,8,["data","loading"]),p(At,{data:o(Y)?.metrics||[],loading:o(P)},null,8,["data","loading"])]),t("div",Ss,[p(Nt,{data:o(Y)?.metrics||[],loading:o(P)},null,8,["data","loading"]),p(Ft,{data:o(Y)?.metrics||[],loading:o(P)},null,8,["data","loading"])])])]),t("section",Rs,[t("div",Bs,[t("div",Is,[s[21]||(s[21]=t("h2",{class:"section-title"},"Distribution Overview",-1)),t("p",As,"Compare total scraped leads vs leads with dispositions by "+m(M[o(i)].toLowerCase()),1)]),o(P)?L("",!0):(e(),n("div",Ns,[p(Ot,{"model-value":String(o(u)),options:V,size:"sm","onUpdate:modelValue":s[2]||(s[2]=W=>u.value=Number(W))},null,8,["model-value"])]))]),o(P)?(e(),n("div",Ms,[t("div",zs,[p(et)]),t("div",Ps,[p(et)])])):(e(),n("div",Fs,[t("div",Os,[p(_t,{data:o(ft),loading:o(mt),title:`${M[o(i)]} by Total Scraped`,"max-items":o(u),"category-label":M[o(i)],"total-label":"Total Scraped"},null,8,["data","loading","title","max-items","category-label"])]),t("div",Es,[p(_t,{data:o($t),loading:o(ht),title:`${M[o(i)]} with Dispositions`,"max-items":o(u),"category-label":M[o(i)],"total-label":"With Disposition"},null,8,["data","loading","title","max-items","category-label"])])]))]),o(tt)&&o(tt).length>0?(e(),n("section",Us,[t("div",Ws,[t("div",Vs,[t("h2",Ks,m(M[o(i)])+" Growth Trends",1),s[22]||(s[22]=t("p",{class:"section-subtitle"},"Track performance patterns and growth over time",-1))])]),o(st)?(e(),n("div",Hs,[t("div",Zs,[p(et)])])):(e(),n("div",js,[t("div",Ys,[p(Et,{data:o(tt),loading:o(st),"total-current":o(kt),"total-previous":o(bt),"overall-growth":o(wt),title:"Scrape Analysis",type:"location","max-items":o(u)},null,8,["data","loading","total-current","total-previous","overall-growth","max-items"])])]))])):L("",!0),L("",!0),L("",!0)])):(e(),n("div",Gs,[t("div",qs,[t("div",Qs,[p(X,{name:"heroicons:map-pin",class:"icon-xl"})]),s[32]||(s[32]=t("h3",{class:"empty-title"},"No Location Data Available",-1)),s[33]||(s[33]=t("p",{class:"empty-description"}," No geographic metrics found for the selected period. Try adjusting your filters or check back later. ",-1)),p(Mt,{variant:"primary",onClick:dt},{default:j(()=>[p(X,{name:"heroicons:arrow-path",class:"icon-sm"}),s[31]||(s[31]=U(" Refresh Data ",-1))]),_:1})])]))],8,vs)])])}}}),yn=q(Js,[["__scopeId","data-v-5ce1bfca"]]);export{yn 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.