PageSourceSearch

https://meubiz.com.br/_nuxt/B4Zj5TxY.js

js meubiz.com.br collected 2026-10-04 21:23:18 UTC 93,493 bytes, 1 lines download raw bytes

1import{_ as le}from"./p1WpBErb.js";import{_ as ut,e as Pt}from"./DJJmyNE4.js";import{_ as Me}from"./WJwSRuzG.js";import{m as Rt,a as Bt,D as Ue,b as Pe,c as Ft,d as Mt}from"./DFtKCUej.js";import{E as U,O as o,G as n,ao as a,ap as c,aj as C,ax as P,ar as x,P as I,aq as M,ay as B,b as D,u as r,am as $,az as Ne,aD as Nt,aE as Et,an as ee,at as K,h as L,aK as Tt,aR as _e,aA as ze,aS as qe,w as Ee,v as Re,i as ke}from"./Dgi4Cgz7.js";import{ac as Te,ad as ct,b2 as Vt,b3 as It,ao as mt,b4 as pt,b5 as Dt,T as Ot,N as bt,b6 as Kt,b7 as Ut,b8 as gt,b9 as zt,ba as qt,bb as Gt,bc as Oe,bd as jt,aD as Ke,G as Yt,be as Wt,an as Ht,bf as Qt,a8 as Zt,bg as Jt,bh as Xt,bi as ea,bj as ta,t as aa,bk as sa}from"./CLHRk2aN.js";import{F as vt}from"./BMNBhKzw.js";import{p as re,c as yt,f as Ge}from"./B5XUcRAO.js";import{t as ae}from"./CFaUfapQ.js";import{I as ye,f as ft,d as ht,e as xt,a as _t,b as kt,c as wt}from"./DTqw6P-A.js";import{_ as oa}from"./Cnsk5JbA.js";import{_ as na}from"./DlAUqK2U.js";import{e as ra}from"./BgvFE_aA.js";import"./l6pIxQMD.js";const la={class:"flex h-full flex-col rounded-xl border border-slate-200/80 bg-white p-4 shadow-sm","aria-labelledby":"kpi-advisory-heading"},ia={class:"mb-4 text-xs text-gray-500"},da={key:0,class:"space-y-3","aria-busy":"true"},ua={key:1,class:"space-y-0"},ca={class:"flex flex-col items-center"},ma={class:"flex size-7 shrink-0 items-center justify-center rounded-full bg-[#182247] text-xs font-bold text-white"},pa={key:0,class:"mt-1 w-px flex-1 bg-[#2FA6BC]/30","aria-hidden":"true"},ba={class:"min-w-0 flex-1 pt-0.5"},ga={class:"mb-1.5 flex flex-wrap items-baseline justify-between gap-2"},va={class:"text-sm font-semibold text-[#09133a]"},ya={class:"text-sm font-bold text-[#09133a]"},fa={class:"h-2 overflow-hidden rounded-full bg-slate-100","aria-hidden":"true"},ha={key:0,class:"mt-1 text-[11px] font-medium text-[#1A8FA3]"},xa={key:0,class:"text-gray-500"},_a={key:1,class:"mt-0.5 text-[11px] text-gray-500"},ka={key:2,class:"py-8 text-center text-sm text-gray-500"},wa=U({__name:"KpiAdvisoryFunnel",props:{funnel:{},loading:{type:Boolean}},setup(e){function t(s,i){return i<=0?null:`${(s/i*100).toFixed(1)}%`}return(s,i)=>(o(),n("section",la,[i[0]||(i[0]=a("h2",{id:"kpi-advisory-heading",class:"text-sm font-bold text-[#09133a]"}," Funil de assessoria digital ",-1)),a("p",ia,c(e.funnel?.description||"Leads de campanha até SQLs."),1),e.loading?(o(),n("div",da,[(o(),n(C,null,P(4,l=>a("div",{key:`adv-sk-${l}`,class:"h-12 animate-pulse rounded-lg bg-gray-200"})),64))])):e.funnel&&e.funnel.layers.length>0?(o(),n("ol",ua,[(o(!0),n(C,null,P(e.funnel.layers,(l,m)=>(o(),n("li",{key:`${l.title}-${m}`,class:"relative flex gap-3 pb-4 last:pb-0"},[a("div",ca,[a("span",ma,c(m+1),1),m<e.funnel.layers.length-1?(o(),n("span",pa)):x("",!0)]),a("div",ba,[a("div",ga,[a("p",va,c(l.title),
11),a("p",ya,c(Math.round(l.value).toLocaleString("pt-BR")),1)]),a("div",fa,[a("div",{class:"h-full rounded-full bg-gradient-to-r from-[#182247] to-[#2FA6BC]",style:I({width:`${Math.min(100,Math.max(8,l.value/(e.funnel.layers[0]?.value||1)*100))}%`})},null,4)]),m>0&&t(l.value,e.funnel.layers[m-1].value)?(o(),n("p",ha,[M(" Conversão: "+c(t(l.value,e.funnel.layers[m-1].value))+" ",1),l.conversionLabel?(o(),n("span",xa," ("+c(l.conversionLabel)+") ",1)):x("",!0)])):x("",!0),l.secondaryDisplay?(o(),n("p",_a,c(l.secondaryLabel||"Detalhe")+": "+c(l.secondaryDisplay),1)):x("",!0)])]))),128))])):(o(),n("p",ka," Sem dados do funil de assessoria. "))]))}}),Ca=Object.assign(wa,{__name:"MarketingKpiAdvisoryFunnel"}),$a={class:"flex h-full flex-col rounded-xl border border-slate-200/80 bg-white p-4 shadow-sm","aria-labelledby":"kpi-annual-goals-heading"},La={id:"kpi-annual-goals-heading",class:"text-sm font-bold text-[#09133a]"},Sa={key:0,class:"font-semibold text-gray-500"},Aa={key:0,class:"space-y-3","aria-busy":"true"},Pa={key:1,class:"space-y-3"},Ra={class:"flex flex-wrap items-center justify-between gap-2"},Ba={class:"text-sm font-semibold text-[#09133a]"},Fa={class:"mt-1 flex flex-wrap gap-x-4 gap-y-0.5 text-xs text-gray-600"},Ma={class:"font-semibold text-gray-800"},Na={class:"font-semibold text-gray-800"},Ea={key:0,class:"mt-2 h-1 w-full overflow-hidden rounded-full bg-white"},Ta={key:1,class:"mt-1 text-[11px] font-medium text-gray-500"},Va={key:2,class:"py-8 text-center text-sm text-gray-500"},Ia=U({__name:"KpiAnnualGoalsTable",props:{rows:{},year:{},loading:{type:Boolean}},setup(e){const t={on_track:"Dentro da meta",attention:"Atenção",below:"Abaixo da meta",none:"—"},s={on_track:"bg-emerald-50 text-emerald-700 ring-emerald-200",attention:"bg-amber-50 text-amber-800 ring-amber-200",below:"bg-red-50 text-red-700 ring-red-200",none:"bg-gray-50 text-gray-500 ring-gray-200"},i={on_track:"bg-emerald-500",attention:"bg-amber-400",below:"bg-red-400",none:"bg-gray-300"};function l(m,p){return p==="currency"?m.toLocaleString("pt-BR",{style:"currency",currency:"BRL",maximumFractionDigits:0}):Math.round(m).toLocaleString("pt-BR")}return(m,p)=>(o(),n("section",$a,[a("h2",La,[p[0]||(p[0]=M(" Metas × resultados anuais ",-1)),e.year?(o(),n("span",Sa,"("+c(e.year)+")",1)):x("",!0)]),p[3]||(p[3]=a("p",{class:"mb-4 text-xs text-gray-500"}," Soma das metas mensais cadastradas vs acumulado YTD. ",-1)),e.loading?(o(),n("div",Aa,[(o(),n(C,null,P(4,d=>a("div",{key:`goal-sk-${d}`,class:"h-12 animate-pulse rounded-lg bg-gray-200"})),64))])):e.rows.length>0?(o(),n("div",Pa,[(o(!0),n(C,null,P(e.rows,d=>(o(),n("div",{key:d.key,class:"rounded-lg border border-slate-100 bg-slate-50/80 px-3 py-2.5"},[a("div",Ra,[a("p",Ba,c(d.label),1),a("span",{class:B(["rounded-md px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wide ring-1 ring-inset",s[d.status]])},c(t[d.status]),3)]),a("div",Fa,[a("span",null,[p[1]||(p[1]=M(" Meta: ",-1)),a("strong",Ma,c(d.goal>0?l(d.goal,d.format):"—"),1)]),a("span",null,[p[2]||(p[2]=M(" Resultado: ",-1)),a("strong",Na,c(l(d.actual,d.format)),1)])]),d.progressPct!=null?(o(),n("div",Ea,[a("div",{class:B(["h-full rounded-full",i[d.status]]),style:I({width:`${Math.min(100,Math.max(0,d.progressPct))}%`})},null,6)])):x("",!0),d.progressPct!=null?(o(),n("p",Ta,c(Math.round(d.progressPct))+"% atingido ",1)):x("",!0)]))),128))])):(o(),n("p",Va," Cadastre metas mensais para ver o progresso anual. "))]))}}),Da=Object.assign(Ia,{__name:"MarketingKpiAnnualGoalsTable"}),Oa={class:"rounded-xl border border-slate-200/90 bg-white shadow-sm ring-1 ring-slate-900/[0.03]"},Ka=["aria-expanded"],Ua={class:"min-w-0"},za={class:"text-base font-bold text-[#09133a]"},qa={key:0,class:"mt-0.5 text-xs text-gray-500"},Ga={class:"border-t border-slate-100 px-4 py-4"},ja=U({__name:"KpiCollapsibleBlock",props:{title:{},description:{},defaultOpen:{type:Boolean,default:!0}},setup(e){const s=D(e.defaultOpen);return(i,l)=>{const m=le;return o(),n("section",Oa,[a("button",{type:"button",class:"flex w-full items-center justify-between gap-3 px-4 py-3.5 text-left transition-colors hover:bg-slate-50/80","aria-expanded":r(s),onClick:l[0]||(l[0]=p=>s.value=!r(s))}
1,[a("div",Ua,[a("h2",za,c(e.title),1),e.description?(o(),n("p",qa,c(e.description),1)):x("",!0)]),$(m,{class:"size-5 shrink-0 fill-slate-500",path:r(s)?r(Te):r(ct)},null,8,["path"])],8,Ka),Ne(a("div",Ga,[Et(i.$slots,"default")],512),[[Nt,r(s)]])])}}}),Ya=Object.assign(ja,{__name:"MarketingKpiCollapsibleBlock"}),Wa={class:"flex flex-col gap-4 rounded-xl border border-cyan-200/80 bg-cyan-50 px-5 py-4 sm:flex-row sm:items-center sm:justify-between"},Ha={class:"flex min-w-0 items-start gap-3"},Qa={class:"flex size-9 shrink-0 items-center justify-center rounded-lg bg-[#2FA6BC]/15","aria-hidden":"true"},Za={class:"min-w-0"},Ja={class:"text-sm text-[#09133a]"},Xa=U({__name:"KpiFocusBar",props:{focus:{}},setup(e){return(t,s)=>{const i=le,l=ut;return o(),n("div",Wa,[a("div",Ha,[a("span",Qa,[$(i,{class:"size-5 fill-[#1A8FA3]",path:r(Vt)},null,8,["path"])]),a("div",Za,[a("p",Ja,[s[0]||(s[0]=a("span",{class:"font-bold"},"Foco do mês:",-1)),e.focus?(o(),n(C,{key:0},[M(c(e.focus.title)+" — "+c(e.focus.body),1)],64)):(o(),n(C,{key:1},[M(" Acompanhe as metas mensais e os funis para priorizar ações. ")],64))])])]),$(l,{to:"/marketing/dashboard/goals",class:"inline-flex shrink-0 items-center justify-center gap-2 rounded-lg bg-[#2FA6BC] px-5 py-2.5 text-sm font-bold text-white shadow-sm transition-colors hover:bg-[#1A8FA3]"},{default:ee(()=>[s[1]||(s[1]=M(" Ver planos de ação ",-1)),$(i,{class:"size-4 fill-white",path:r(It)},null,8,["path"])]),_:1})])}}}),es=Object.assign(Xa,{__name:"MarketingKpiFocusBar"});function ts(e){const t=e,s=t.subscriptionInstallment;return{paymentId:Number(t.paymentId)||0,productId:Number(t.productId)||0,amount:Number(t.amount)||0,createdAt:String(t.createdAt??""),subscriptionInstallment:s==null?null:Number(s)}}function Ct(e,t,s){return e.filter(i=>t===null?!0:t.includes(i.productId)?!s||!ye.includes(i.productId)?!0:s==="first"?i.subscriptionInstallment==null||i.subscriptionInstallment===0:i.subscriptionInstallment!=null&&i.subscriptionInstallment>0:!1)}function Le(e,t,s){return Ct(e,t,s).length}const as=[{key:"monthly_first",label:"1ª parcela ou sem vínculo com assinatura",footnote:"Parcela 0 ou pagamento sem assinatura vinculada.",filter:{productIds:ye,subscriptionSlice:"first"},getValue:e=>Number(e.newSalesThisMonth.monthlySubscription)||0},{key:"monthly_recurring",label:"Parcelas seguintes (recorrente)",footnote:"Cobrança no período, independentemente de quando a assinatura foi criada.",filter:{productIds:ye,subscriptionSlice:"recurring"},getValue:e=>Number(e.recurringReceived)||0},{key:"monthly_total",label:"Total plano mensal (1ª + seguintes)",filter:{productIds:ye},getValue:e=>(Number(e.newSalesThisMonth.monthlySubscription)||0)+(Number(e.recurringReceived)||0)}],ss=[{key:"semiannual",label:"Plano semestral",filter:{productIds:ht},getValue:e=>Number(e.newSalesThisMonth.semiannualPlan)||0},{key:"one_time_monthly",label:"Plano mensal avulso",filter:{productIds:xt},getValue:e=>Number(e.newSalesThisMonth.oneTimeMonthlyPlan)||0},{key:"homepage_boost",label:"Boost página inicial",filter:{productIds:_t},getValue:e=>Number(e.newSalesThisMonth.homepageBoost)||0},{key:"email_boost",label:"Boost e-mail",filter:{productIds:kt},getValue:e=>Number(e.newSalesThisMonth.emailBoost)||0},{key:"social_boost",label:"Boost redes sociais",filter:{productIds:wt},getValue:e=>Number(e.newSalesThisMonth.socialBoost)||0},{key:"valuation",label:"Valuation",filter:{productIds:ft},getValue:e=>Number(e.newSalesThisMonth.valuation)||0}];function Ve(e){const t=e.newSalesThisMonth,s=Number(e.recurringReceived)||0;return[{label:"Plano mensal — 1ª parcela",value:Number(t.monthlySubscription)||0},{label:"Boost página inicial",value:Number(t.homepageBoost)||0},{label:"Boost e-mail",value:Number(t.emailBoost)||0},{label:"Boost redes sociais",value:Number(t.socialBoost)||0},{label:"Plano semestral",value:Number(t.semiannualPlan)||0},{label:"Plano mensal avulso",value:Number(t.oneTimeMonthlyPlan)||0},{label:"Valuation",value:Number(t.valuation)||0},{label:"Plano mensal — parcelas seguintes",value:s}]}function os(e,t){const s=ns(e);if(!t){const d=[...s].sort((u,g)=>g.value-u.value);return{labels:d.map(u=>u.label),values:d.map(u=>u.value)}}const i=new Map(Ve(e).map(d=>[d.label,d.value])),l=new Map(Ve(t).map(d=>[d.label,d.value])),p=[...new Set([...i.keys(),...l.keys()])].map(d=>({label:d,value:i.get(d)??0,previousValue:l.get(d)??0})).filter(d=>d.value>0||d.previousValue>0).sort((d,u)=>u.value-d.value||u.previousValue-d.previousValue);return{labels:p.map(d=>d.label),values:p.map(d=>d.value),previousValues:p.map(d=>d.previousValue)}}function ns(e){return Ve(e).filter(t=>t.value>0)}function je(e,t,s,i,l){const{productIds:m,subscriptionSlice:p}=e.filter;return{key:e.key,label:e.label,value:e.getValue(t),previousValue:i?e.getValue(i):void 0,paymentCount:Le(s,m,p),previousPaymentCount:l?Le(l,m,p):void 0,footnote:e.footnote,filter:e.filter}}function Ie(e){const{productId:t,subscriptionInstallment:s}=e;if(ft.includes(t))return{key:"valuation",label:"Valuation"};if(ht.includes(t))return{key:"semiannual",label:"Plano semestral"};if(xt.includes(t))return{key:"one_time_monthly",label:"Plano mensal avulso"};if(_t.includes(t))return{key:"homepage_boost",label:"Boost página inicial"};if(kt.includes(t))return{key:"email_boost",label:"Boost e-mail"};if(wt.includes(t))return{key:"social_boost",label:"Boost redes sociais"};if(ye.includes(t)){if(s!=null&&s>0)return{key:"monthly_recurring",label:"Plano mensal — parcelas seguintes",installmentLabel:`Parcela ${s}`};let l;return s===0?l="1ª parcela":s==null&&(l="Sem vínculo com assinatura"),{key:"monthly_first",label:"Plano mensal — 1ª parcela",installmentLabel:l}}return{key:`product_${t}`,label:`Produto #${t}`}}function rs(e){const t=Ie(e),s=[`#${e.productId}`,`Pagamento #${e.paymentId}`];return t.installmentLabel&&s.push(t.installmentLabel),s.join(" · ")}function Se(e,t){const s=new Date(e);return s.setDate(s.getDate()+t),s.setHours(0,0,0,0),s}function we(e,t){const s=re(e),i=re(t),m=Math.round((i.getTime()-s.getTime())/864e5)+1,p=Se(s,-1),d=Se(p,-(m-1));return{start:ae(d),end:ae(p)}}function Ye(e,t,s=1){const i=re(e),l=re(t);return i.setFullYear(i.getFullYear()-s),l.setFullYear(l.getFullYear()-s),{start:ae(i),end:ae(l)}}function We(e,t){const s=new Date(e),i=s.getDate();s.setDate(1),s.setMonth(s.getMonth()+t);const l=new Date(s.getFullYear(),s.getMonth()+1,0).getDate();return s.setDate(Math.min(i,l)),s.setHours(0,0,0,0),s}function $t(e,t,s){return{start:ae(We(re(e),-s)),end:ae(We(re(t),-s))}}function ls(e,t){return $t(e,t,1)}function is(e,t){return $t(e,t,3)}function ds(e,t){return{start:ae(Se(re(e),-7)),end:ae(Se(re(t),-7))}}function us(e){const t=re(e),s=new Date(t.getFullYear(),t.getMonth()-1,1);s.setHours(0,0,0,0);const i=new Date(s.getFullYear(),s.getMonth()+1,0);return i.setHours(0,0,0,0),{start:ae(s),end:ae(i)}}function fe(e,t){return t==null||t===void 0?null:t===0?e>0?100:0:(e-t)/t*100}function be(e,t){return[{date:e,value:t}]}function pe(e,t){const s=fe(e,t);return s==null?void 0:`${s>0?"+":""}${s.toFixed(1)}%`}const He=[{backgroundColor:"#E8EEF5",textColor:"#182247"},{backgroundColor:"#A8D3E1",textColor:"#0F2A3A"},{backgroundColor:"#2FA6BC",textColor:"#ffffff"},{backgroundColor:"#182247",textColor:"#ffffff"}];function he(e){return e.map((t,s)=>({...t,...He[Math.min(s,He.length-1)]}))}function Qe(e){const t=e.periodUsers,s=t.conversationsStartedCreatedInPeriod,i=t.conversationsReadCreatedInPeriod,l=t.conversationsRepliedCreatedInPeriod;return he([{title:"Conversas iniciadas no período",value:s},{title:"Conversas lidas no período",value:i,conversionLabel:"Iniciadas → lidas",secondary
1Display:pe(i,s),secondaryLabel:"Taxa"},{title:"Com resposta bilateral",value:l,conversionLabel:"Lidas → resposta",secondaryDisplay:pe(l,i),secondaryLabel:"Conversão da leitura"}])}function Ze(e){const t=e.brokerFunnel,s=t.cohort??{startedConversation:0,withBilateralResponse:0},i=s.startedConversation,l=s.withBilateralResponse;return he([{title:"Novos corretores (perfil)",value:t.newBrokers},{title:"Iniciaram conversa no período",value:i,conversionLabel:"Perfil → conversa",secondaryDisplay:pe(i,t.newBrokers),secondaryLabel:"Taxa de conversão"},{title:"Com resposta bilateral",value:l,conversionLabel:"Conversa → resposta",secondaryDisplay:pe(l,i),secondaryLabel:"Taxa de conversão"}])}function Je(e){const t=e.buyerFunnel,s=t.cohort??{startedConversation:0,withBilateralResponse:0},i=s.startedConversation,l=s.withBilateralResponse;return he([{title:"Compradores cadastrados",value:t.newBuyers},{title:"Enviaram mensagem",value:i,conversionLabel:"Cadastro → mensagem",secondaryDisplay:pe(i,t.newBuyers),secondaryLabel:"Taxa de conversão"},{title:"Com resposta bilateral",value:l,conversionLabel:"Mensagem → resposta",secondaryDisplay:pe(l,i),secondaryLabel:"Taxa de conversão"}])}function Xe(e){const t=e.sellerFunnel,s=t.cohort??{createdListing:0};return he([{title:"Novos vendedores",value:t.newSellers},{title:"Criaram anúncio no período",value:s.createdListing,conversionLabel:"Vendedores → anúncio",secondaryDisplay:pe(s.createdListing,t.newSellers),secondaryLabel:"Taxa de conversão"}])}function De(e,t){return t<=0?0:e/t*100}function cs(e,t){const i=e.buyerFunnel.cohort??{startedConversation:0,withBilateralResponse:0,withoutBilateralResponse:0},l=t?.buyerFunnel.cohort,m=De(i.withBilateralResponse,i.startedConversation),p=l!=null?De(l.withBilateralResponse,l.startedConversation):void 0;return[{key:"buyer_messages",label:"Enviaram mensagem",value:i.startedConversation,previousValue:l?.startedConversation,format:"number"},{key:"buyer_reply_rate",label:"Taxa de resposta",value:m,previousValue:p,format:"percent"},{key:"buyer_no_reply",label:"Sem resposta",value:i.withoutBilateralResponse,previousValue:l?.withoutBilateralResponse,format:"number"}]}function ms(e,t){const s=e.sellerFunnel;return[{key:"listings_free",label:"Anúncios grátis",value:s.freeListingsCreated,previousValue:t?.sellerFunnel.freeListingsCreated,format:"number"},{key:"listings_paid",label:"Anúncios pagos",value:s.paidListingsCreated,previousValue:t?.sellerFunnel.paidListingsCreated,format:"number"},{key:"messages",label:"Mensagens enviadas",value:e.periodUsers.messagesSent,previousValue:t?.periodUsers.messagesSent,format:"number"}]}function et(e){return e?he(Bt(e)):[]}function ps(e){const t=e.revenue.newSalesThisMonth;return[{label:"Assinatura — 1ª parcela",value:Number(t.monthlySubscription)||0},{label:"Assinatura — parcelas recorrentes",value:Number(e.revenue.recurringReceived)||0},{label:"Boost página inicial",value:Number(t.homepageBoost)||0},{label:"Boost e-mail",value:Number(t.emailBoost)||0},{label:"Boost redes sociais",value:Number(t.socialBoost)||0},{label:"Plano semestral",value:Number(t.semiannualPlan)||0},{label:"Plano mensal único",value:Number(t.oneTimeMonthlyPlan)||0},{label:"Valuation",value:Number(t.valuation)||0}].filter(s=>s.value>0)}function bs(e){const{period:t,compare:s}=e,i=t.revenuePaymentEntries??[],l=s?.revenuePaymentEntries,m=Number(t.revenue.total)||0,p=Le(i,null);if(m===0&&p===0)return null;const d=os(t.revenue,s?.revenue);return{total:m,previousTotal:s?Number(s.revenue.total)||0:void 0,totalPaymentCount:p,previousTotalPaymentCount:l?Le(l,null):void 0,chart:d,monthlyPlan:as.map(u=>je(u,t.revenue,i,s?.revenue,l)),newSales:ss.map(u=>je(u,t.revenue,i,s?.revenue,l)),paymentEntries:i,comparePaymentEntries:l}}function Lt(e,t){if(t==null||t<=0)return{progressPct:null,status:"none"};const s=e/t*100;return s>=100?{progressPct:s,status:"on_track"}:s>=80?{progressPct:s,status:"attention"}:{progressPct:s,status:"below"}}function ge(e){const{progressPct:t,status:s}=Lt(e.value,e.expectedValue);return{...e,goalProgressPct:t,goalStatus:s}}function gs(e,t){const{period:s,compare:i}=e,l=s.marketingDashboard,m=l?.metrics.investment.daily.map(u=>({date:u.date,value:u.actual}))??be(t,s.marketingInvested),p=l?.metrics.leads.daily.map(u=>({date:u.date,value:u.actual}))??be(t,s.marketingLeadsTotal),d=l?.metrics.sqls.daily.map(u=>({date:u.date,value:u.actual}))??be(t,s.sqlAppointments);return[ge({key:"investment",title:"Valor investido",value:s.marketingInvested,previousValue:i?.marketingInvested,expectedValue:l&&l.metrics.investment.expected>0?l.metrics.investment.expected:void 0,prefix:"R$ ",footnote:"Soma Google Ads (GA4) + Meta no período selecionado.",entries:m,datasetLabel:"Investimento",icon:Ke}
1),ge({key:"unique_users",title:"Acessos únicos",value:s.activeUsers,previousValue:i?.activeUsers,footnote:"Usuários únicos GA4 no período selecionado.",entries:be(t,s.activeUsers),datasetLabel:"Usuários únicos",icon:Yt}),ge({key:"leads",title:"Leads",value:s.marketingLeadsTotal,previousValue:i?.marketingLeadsTotal,expectedValue:l&&l.metrics.leads.expected>0?l.metrics.leads.expected:void 0,footnote:"Novos usuários cadastrados no período (campanha / cadastro na plataforma).",entries:p,datasetLabel:"Leads",icon:Wt}),ge({key:"active_ads",title:"Anúncios ativos",value:s.activeApprovedAds,previousValue:i?.activeApprovedAds,footnote:"Anúncios aprovados acumulados desde a era baseline selecionada.",entries:be(t,s.activeApprovedAds),datasetLabel:"Anúncios ativos",badge:"Acumulado",icon:gt}),ge({key:"revenue",title:"Receita MeuBiZ",value:s.revenue.total,previousValue:i?.revenue.total,prefix:"R$ ",footnote:"Receita total do período (pagamentos confirmados).",entries:be(t,s.revenue.total),datasetLabel:"Receita",icon:Ht}),ge({key:"sqls",title:"SQLs",value:s.sqlAppointments,previousValue:i?.sqlAppointments,expectedValue:l&&l.metrics.sqls.expected>0?l.metrics.sqls.expected:void 0,footnote:"Reuniões / SQLs de assessoria no período.",entries:d,datasetLabel:"SQLs",icon:Oe})]}function vs(e){const t=ys(e),s=[{id:"cadastro",title:"Cadastro & anúncios",indicators:[]},{id:"assessoria",title:"Assessoria Buyco",indicators:[]},{id:"receita",title:"Receita",indicators:[]}];for(const i of t)s.find(m=>m.id===i.group)?.indicators.push(i);return s.filter(i=>i.indicators.length>0)}function ys(e){const{period:t,compare:s}=e;return[{key:"new_sellers",label:"Vendedores novos",value:t.periodUsers.newSellers,previousValue:s?.periodUsers.newSellers,footnote:"Usuários com perfil vendedor criados no período.",format:"number",group:"cadastro",icon:Kt},{key:"new_brokers",label:"Corretores novos",value:t.periodUsers.newBrokers,previousValue:s?.periodUsers.newBrokers,format:"number",group:"cadastro",icon:Ut},{key:"listings_free",label:"Anúncios grátis",value:t.sellerFunnel.freeListingsCreated,previousValue:s?.sellerFunnel.freeListingsCreated,footnote:"Total de anúncios gratuitos criados no período.",format:"number",group:"cadastro",icon:gt},{key:"listings_paid",label:"Anúncios pagos",value:t.sellerFunnel.paidListingsCreated,previousValue:s?.sellerFunnel.paidListingsCreated,footnote:"Empresas cadastradas com plano pago no período.",format:"number",group:"cadastro",icon:zt},{key:"leads_registered",label:"Empresas cadastradas",value:t.leadsDistinctUsers,previousValue:s?.leadsDistinctUsers,footnote:"Usuários distintos que criaram anúncio no período.",format:"number",group:"cadastro",icon:qt},{key:"meetings",label:"Reuniões agendadas",value:t.sqlAppointments,previousValue:s?.sqlAppointments,footnote:"Registros em user_scheduled_meetings.",format:"number",group:"assessoria",icon:Gt},{key:"sqls",label:"SQLs (assessoria)",value:t.sqlAppointments,previousValue:s?.sqlAppointments,footnote:"Mesma fonte das reuniões agendadas.",format:"number",group:"assessoria",icon:Oe},{key:"messages",label:"Mensagens enviadas",value:t.periodUsers.messagesSent,previousValue:s?.periodUsers.messagesSent,format:"number",group:"cadastro",icon:jt},{key:"revenue_total",label:"Receita total MeuBiz",value:t.revenue.total,previousValue:s?.revenue.total,format:"currency",group:"receita",icon:Ke}]}function fs(e){const{period:t,compare:s}=e;
1return[{id:"buyers",title:"Funil de compradores",description:"Coorte de novos compradores: cadastro → enviaram mensagem → resposta bilateral.",layers:Je(t),previousLayers:s?Je(s):void 0,miniStats:cs(t,s)},{id:"sellers",title:"Funil de vendedores",description:"Coorte de novos vendedores → quantos criaram anúncio. A divisão grátis/pago aparece nos mini-indicadores.",layers:Xe(t),previousLayers:s?Xe(s):void 0,miniStats:ms(t,s)},{id:"marketing-sql",title:"Funil Marketing → SQL",description:"Leads de campanha (novos usuários) até SQLs. Custos por etapa quando investimento disponível.",layers:et(t.marketingDashboard),previousLayers:s?.marketingDashboard?et(s.marketingDashboard):void 0},{id:"conversations",title:"Funil de Conversas",description:"Conversas iniciadas → lidas → com resposta bilateral. Cada etapa é subconjunto da anterior.",layers:Qe(t),previousLayers:s?Qe(s):void 0},{id:"brokers",title:"Funil Corretores",description:"Coorte de novos corretores: perfil criado → iniciaram conversa → tiveram resposta bilateral.",layers:Ze(t),previousLayers:s?Ze(s):void 0}]}function hs(e){const{period:t,compare:s}=e;return{activeAds:t.activeApprovedAds,previousActiveAds:s?.activeApprovedAds,freeListings:t.sellerFunnel.freeListingsCreated,previousFreeListings:s?.sellerFunnel.freeListingsCreated,paidListings:t.sellerFunnel.paidListingsCreated,previousPaidListings:s?.sellerFunnel.paidListingsCreated,googleAdsCost:t.googleAdsCost,previousGoogleAdsCost:s?.googleAdsCost,metaSpend:t.metaSpend,previousMetaSpend:s?.metaSpend,totalInvested:t.marketingInvested,previousTotalInvested:s?.marketingInvested}}function xs(e){const{period:t,compare:s}=e;return[{key:"revenue",label:"Receita",value:t.revenue.total,previousValue:s?.revenue.total,format:"currency"},{key:"leads",label:"Leads",value:t.marketingLeadsTotal,previousValue:s?.marketingLeadsTotal,format:"number"},{key:"investment",label:"Investimento",value:t.marketingInvested,previousValue:s?.marketingInvested,format:"currency"},{key:"active_ads",label:"Anúncios ativos",value:t.activeApprovedAds,previousValue:s?.activeApprovedAds,format:"number"},{key:"sqls",label:"SQLs",value:t.sqlAppointments,previousValue:s?.sqlAppointments,format:"number"},{key:"messages",label:"Mensagens",value:t.periodUsers.messagesSent,previousValue:s?.periodUsers.messagesSent,format:"number"}]}const _s=[{key:"leads",label:"Leads",format:"number",goalKeys:["leads"],actualFromTrends:e=>e.reduce((t,s)=>t+s.leads,0),actualFromReport:e=>e.metrics.leads.actual},{key:"sqls",label:"SQLs",format:"number",goalKeys:["sqls"],actualFromTrends:e=>e.reduce((t,s)=>t+s.sqls,0),actualFromReport:e=>e.metrics.sqls.actual},{key:"investment",label:"Investimento",format:"currency",goalKeys:["investment"],actualFromTrends:e=>e.reduce((t,s)=>t+s.investment,0),actualFromReport:e=>e.metrics.investment.actual},{key:"mqls",label:"MQLs",format:"number",goalKeys:["mqls"],actualFromTrends:e=>e.reduce((t,s)=>t+s.mqls,0),actualFromReport:e=>e.metrics.mqls.actual}];function ks(e,t){if(!e&&!t)return[];const i=`${t?.year??new Date().getFullYear()}-`,l=new Map;for(const d of e?.goals.items??[]){if(!d.month.startsWith(i))continue;const u=l.get(d.metric_key)??0;l.set(d.metric_key,u+(Number(d.goal_value)||0))}if(l.size===0&&e?.goals.expected_by_metric)for(const[d,u]of Object.entries(e.goals.expected_by_metric))Number(u)>0&&l.set(d,Number(u));const m=t?.points??[],p=[];for(const d of _s){let u=0;for(const A of d.goalKeys)u+=l.get(A)??0;const g=(e&&d.actualFromReport?d.actualFromReport(e):null)??d.actualFromTrends(m);if(u<=0&&g<=0)continue;const{progressPct:f,status:k}=Lt(g,u>0?u:null);p.push({key:d.key,label:d.label,goal:u,actual:g,format:d.format,progressPct:f,status:k})}return p}function ws(e,t){const s=[],{period:i,compare:l}=e,m=[];for(const u of t){if(u.previousValue==null)continue;const g=fe(u.value,u.previousValue);if(g==null)continue;const f=Math.abs(g);if(f<5)continue;const k=g>0,A=u.key==="investment";let F="neutral";A?F=k?"warning":"positive":F=k?"positive":"negative";const N=k?"+":"";m.push({id:`card-${u.key}`,title:k?`${u.title} em crescimento`:`${u.title} em queda`,body:`${N}${g.toFixed(1)}% vs período comparativo (${u.title.toLowerCase()}: ${u.prefix??""}
1${Math.round(u.value).toLocaleString("pt-BR")}).`,tone:F,icon:k?mt:pt,score:f})}const p=i.periodUsers.conversationsStartedCreatedInPeriod,d=i.periodUsers.conversationsReadNotRepliedCreatedInPeriod;if(p>0&&d>0){const u=De(d,p);m.push({id:"unanswered-messages",title:"Mensagens sem resposta",body:`${d.toLocaleString("pt-BR")} conversas lidas sem resposta bilateral (${u.toFixed(0)}% das iniciadas).`,tone:u>=20?"warning":"neutral",icon:Dt,score:u+10})}if(l){const u=fe(i.marketingLeadsTotal,l.marketingLeadsTotal),g=fe(i.marketingInvested,l.marketingInvested);u!=null&&g!=null&&g>10&&u<g/2&&m.push({id:"efficiency",title:"Investimento vs leads",body:`Investimento subiu ${g.toFixed(1)}% enquanto leads variaram ${u.toFixed(1)}% — revisar eficiência de aquisição.`,tone:"warning",icon:Ot,score:Math.abs(g-u)+5})}m.sort((u,g)=>g.score-u.score);for(const u of m.slice(0,4))s.push({id:u.id,title:u.title,body:u.body,tone:u.tone,icon:u.icon});return s.length===0&&s.push({id:"stable",title:"Indicadores estáveis",body:"Sem variações relevantes vs o período comparativo nos principais KPIs.",tone:"neutral",icon:bt}),s}function Cs(e){return e.find(s=>s.tone==="warning"||s.tone==="negative")??e[0]??null}function $s(e,t=new Date){if(!e)return null;const s=Rt(e,t);return{year:t.getFullYear(),points:s}}function Ls(e,t,s=null){const i=gs(e,t),l=fs(e),m=$s(s),p=ws(e,i),d=l.filter(f=>f.id==="buyers"||f.id==="sellers"),u=l.filter(f=>f.id!=="buyers"&&f.id!=="sellers"),g=l.find(f=>f.id==="marketing-sql")??null;return{topCards:i,primaryFunnels:d,secondaryFunnels:u,advisoryFunnel:g,statGroups:vs(e),funnels:l,revenueDetails:ps(e.period),revenueSection:bs(e),adsOverview:hs(e),insights:p,annualGoals:ks(s,m),monthSummary:xs(e),focusInsight:Cs(p),annualTrends:m,ga4FetchFailed:e.period.marketingDashboard?.meta?.ga4_fetch_failed===!0||e.period.marketingInvestedFetchFailed===!0,analyticsFetchFailed:e.period.analyticsFetchFailed===!0}}const Ss={key:1,class:"text-xs text-gray-400"},As=U({__name:"KpiComparisonBadge",props:{current:{},previous:{},compact:{type:Boolean},compareLabel:{},variant:{default:"compare-label"}},setup(e){const t=e,s=L(()=>fe(t.current,t.previous)),i=L(()=>(s.value??0)>0),l=L(()=>s.value===0),m=L(()=>{const d=s.value;if(d==null)return null;if(t.variant==="direction"){if(d===0)return"Sem variação";const f=Math.abs(d).toLocaleString("pt-BR",{maximumFractionDigits:1});return d>0?`Cresceu ${f}%`:`Diminuiu ${f}%`}const u=d>0?"+":"",g=t.compareLabel??"vs período anterior";return`${u}${d.toFixed(1)}% ${g}`}),p=L(()=>t.variant!=="direction"||s.value==null?null:l.value?Qt:i.value?mt:pt);return(d,u)=>{const g=le;return m.value?(o(),n("span",{key:0,class:B(["inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-semibold",l.value?"bg-gray-100 text-gray-600":i.value?"bg-emerald-100 text-emerald-800":"bg-red-100 text-red-800"])},[p.value?(o(),K(g,{key:0,class:"size-3.5 shrink-0 fill-current",path:p.value},null,8,["path"])):x("",!0),M(" "+c(m.value),1)],2)):e.compact?x("",!0):(o(),n("span",Ss," — "))}}}),te=Object.assign(As,{__name:"MarketingKpiComparisonBadge"}),Ps={class:"flex h-full flex-col rounded-xl border border-slate-200/80 bg-white p-4 shadow-sm"},Rs={class:"text-sm font-bold text-[#09133a]"},Bs={class:"sr-only"},Fs={key:0,class:"flex flex-col gap-2 py-4","aria-busy":"true"},Ms={key:2,class:"py-6 text-center text-sm text-gray-500"},Ns={key:3,class:"mt-4 grid grid-cols-2 gap-2 border-t border-gray-100 pt-3 xl:grid-cols-4"},Es={class:"text-[10px] font-medium uppercase tracking-wide text-gray-500"},Ts={class:"mt-0.5 flex flex-wrap items-center gap-1"},Vs={class:"text-sm font-bold text-[#09133a]"},Is=U({__name:"KpiFunnelPanel",props:{funnel:{},compareEnabled:{type:Boolean},compareLabel:{},loading:{type:Boolean}},setup(e){const t=[100,86,72,58,46];function s(i){return i.format==="currency"?i.value.toLocaleString("pt-BR",{style:"currency",currency:"BRL",maximumFractionDigits:0}):i.format==="percent"?`${i.value.toFixed(1)}%`:Math.round(i.value).toLocaleString("pt-BR")}return(i,l)=>(o(),n("div",Ps,[a("h3",Rs,c(e.funnel.title),1),a("p",Bs,c(e.funnel.description),1),e.loading?(
1o(),n("div",Fs,[(o(),n(C,null,P(t,(m,p)=>a("div",{key:p,class:"mx-auto h-10 animate-pulse rounded-md bg-gray-200",style:I({width:`${m}%`})},null,4)),64))])):e.funnel.layers.length>0?(o(),K(vt,{key:1,layers:e.funnel.layers,orientation:"left",compact:""},null,8,["layers"])):(o(),n("p",Ms," Sem dados para o período. ")),e.funnel.miniStats?.length?(o(),n("div",Ns,[(o(!0),n(C,null,P(e.funnel.miniStats,m=>(o(),n("div",{key:m.key,class:"rounded-lg bg-slate-50 px-2.5 py-2 ring-1 ring-slate-100"},[a("p",Es,c(m.label),1),a("div",Ts,[a("span",Vs,c(s(m)),1),e.compareEnabled&&m.previousValue!=null&&m.format!=="percent"?(o(),K(te,{key:0,current:m.value,previous:m.previousValue,"compare-label":e.compareLabel??"Comparativo",compact:""},null,8,["current","previous","compare-label"])):x("",!0)])]))),128))])):x("",!0)]))}}),Ds=Object.assign(Is,{__name:"MarketingKpiFunnelPanel"}),Os={class:"rounded-xl border border-slate-200/80 bg-white px-4 py-4 shadow-sm sm:px-5","aria-labelledby":"kpi-insights-heading"},Ks={class:"mb-4 flex items-center gap-2.5"},Us={class:"flex size-8 shrink-0 items-center justify-center rounded-lg bg-[#182247]","aria-hidden":"true"},zs={class:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4"},qs={class:"min-w-0"},Gs={class:"text-xs font-bold text-[#09133a] sm:text-sm"},js={class:"mt-0.5 text-[11px] leading-relaxed text-gray-600"},Ys=U({__name:"KpiInsightsRow",props:{insights:{},loading:{type:Boolean}},setup(e){const t={positive:"bg-emerald-50",warning:"bg-amber-50",negative:"bg-red-50",neutral:"bg-cyan-50"},s={positive:"fill-emerald-600",warning:"fill-amber-600",negative:"fill-red-600",neutral:"fill-[#1A8FA3]"};return(i,l)=>{const m=le;return o(),n("section",Os,[a("div",Ks,[a("span",Us,[$(m,{class:"size-4 fill-white",path:r(Zt)},null,8,["path"])]),l[0]||(l[0]=a("h2",{id:"kpi-insights-heading",class:"text-sm font-bold text-[#09133a] sm:text-base"}," O que os dados estão mostrando? ",-1))]),a("div",zs,[e.loading?(o(),n(C,{key:0},P(4,p=>a("div",{key:`insight-sk-${p}`,class:"h-20 animate-pulse rounded-lg bg-slate-100","aria-busy":"true"})),64)):(o(!0),n(C,{key:1},P(e.insights,p=>(o(),n("article",{key:p.id,class:"flex gap-2.5 rounded-lg border border-slate-100 bg-slate-50/50 p-3"},[p.icon?(o(),n("span",{key:0,class:B(["flex size-8 shrink-0 items-center justify-center rounded-lg",t[p.tone]]),"aria-hidden":"true"},[$(m,{class:B(["size-4",s[p.tone]]),path:p.icon},null,8,["class","path"])],2)):x("",!0),a("div",qs,[a("h3",Gs,c(p.title),1),a("p",js,c(p.body),1)])]))),128))])])}}}),Ws=Object.assign(Ys,{__name:"MarketingKpiInsightsRow"}),Hs={class:"overflow-x-auto rounded-xl border border-gray-200 bg-white shadow-sm"},Qs={class:"min-w-full text-sm"},Zs={class:"border-b border-gray-100 bg-gray-50/80 text-left text-xs uppercase tracking-wide text-gray-500"},Js={key:0,class:"px-4 py-3 font-semibold text-right"},Xs={key:1,class:"px-4 py-3 font-semibold text-right"},eo={class:"px-4 py-3"},to={class:"flex items-start gap-3"},ao={key:0,class:"mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-lg bg-cyan-50 text-cyan-700","aria-hidden":"true"},so={class:"font-medium text-gray-800"},oo={key:0,class:"mt-0.5 text-xs text-gray-500"},no={class:"px-4 py-3 text-right font-bold text-[#09133a]"},ro={key:0,class:"px-4 py-3 text-right text-gray-600"},lo={key:1,class:"px-4 py-3 text-right"},io=U({__name:"KpiIndicatorTable",props:{indicators:{},compareEnabled:{type:Boolean},compareLabel:{},formatCurrency:{type:Function}},setup(e){const t=e;function s(l){return l.format==="currency"?t.formatCurrency(l.value):l.value.toLocaleString("pt-BR")}function i(l){return l.previousValue==null?"—":l.format==="currency"?t.formatCurrency(l.previousValue):l.previousValue.toLocaleString("pt-BR")}return(l,m)=>{const p=le;return o(),n("div",Hs,[a("table",Qs,[a("thead",Zs,[a("tr",null,[m[0]||(m[0]=a("th",{class:"px-4 py-3 font-semibold"},"Indicador",-1)),m[1]||(m[1]=a("th",{class:"px-4 py-3 font-semibold text-right"},"Período atual",-1)),e.compareEnabled?(o(),n("th",Js,c(e.compareLabel),1)):x("",!0),e.compareEnabled?(o(),n("th",Xs," Variação ")):x("",!0)])]),a("tbody",null,[(o(!0),n(C,null,P(e.indicators,d=>(o(),n("tr",{key:d.key,class:"border-b border-gray-50 last:border-0 hover:bg-gray-50/60"},[a("td",eo,[a("div",to,[d.icon?(o(),n("span",ao,[$(p,{path:d.icon,class:"size-5 fill-current"},null,8,["path"])])):x("",!0),a("div",null,[a("div",so,c(d.label),1),d.footnote?(o(),n("p",oo,c(d.footnote),1)):x("",!0)])])]),a("td",no,c(s(d)),1),e.compareEnabled?(o(),n("td",ro,c(i(d)),1)):x("",!0),e.compareEnabled?(o(),n("td",lo,[$(te,{current:d.value,previous:d.previousValue,"compare-label":e.compareLabel,compact:""},null,8,["current","previous","compare-label"])])):x("",!0)]))),128))])])])}}}),uo=Object.assign(io,{__name:"MarketingKpiIndicatorTable"}),co={class:"flex h-full flex-col rounded-xl border border-slate-200/80 bg-white p-4 shadow-sm","aria-labelledby":"kpi-month-summary-heading"},mo={class:"mb-4 text-xs text-gray-500"},po={key:0,class:"space-y-2","aria-busy":"true"},bo={key:1,class:"divide-y divide-gray-100"},go={class:"text-sm text-gray-600"},vo={class:"flex shrink-0 flex-col items-end gap-0.5"},yo={class:"text-sm font-bold text-[#09133a]"},fo=U({__name:"KpiMonthSummary",props:{items:{},compareEnabled:{type:Boolean},compareLabel:{},periodLabel:{},loading:{type:Boolean}}
1,setup(e){function t(s,i){return i==="currency"?s.toLocaleString("pt-BR",{style:"currency",currency:"BRL",maximumFractionDigits:0}):Math.round(s).toLocaleString("pt-BR")}return(s,i)=>(o(),n("section",co,[i[0]||(i[0]=a("h2",{id:"kpi-month-summary-heading",class:"text-sm font-bold text-[#09133a]"}," Resumo do mês ",-1)),a("p",mo,c(e.periodLabel||"Principais indicadores do intervalo selecionado."),1),e.loading?(o(),n("div",po,[(o(),n(C,null,P(6,l=>a("div",{key:`sum-sk-${l}`,class:"h-10 animate-pulse rounded-lg bg-gray-200"})),64))])):(o(),n("ul",bo,[(o(!0),n(C,null,P(e.items,l=>(o(),n("li",{key:l.key,class:"flex items-center justify-between gap-3 py-2.5 first:pt-0 last:pb-0"},[a("span",go,c(l.label),1),a("div",vo,[a("span",yo,c(t(l.value,l.format)),1),e.compareEnabled&&l.previousValue!=null?(o(),K(te,{key:0,current:l.value,previous:l.previousValue,"compare-label":e.compareLabel??"Comparativo",compact:""},null,8,["current","previous","compare-label"])):x("",!0)])]))),128))]))]))}}),ho=Object.assign(fo,{__name:"MarketingKpiMonthSummary"}),xo=["aria-busy"],_o={key:0,class:"space-y-3","aria-hidden":"true"},ko={class:"mb-2 flex items-start gap-2"},wo={class:"min-w-0 flex-1"},Co={class:"truncate text-[11px] font-semibold text-gray-600 xl:text-xs"},$o={key:0,class:"mt-0.5 inline-flex rounded bg-slate-600 px-1.5 py-px text-[9px] font-semibold uppercase tracking-wide text-white"},Lo={class:"text-xl font-bold tracking-tight text-[#09133a] xl:text-2xl"},So={class:"mt-1 text-[10px] text-gray-500 xl:text-[11px]"},Ao={class:"mt-1.5 h-1 w-full overflow-hidden rounded-full bg-slate-200"},Po={class:"mt-2 flex flex-col gap-1.5"},Ro={class:"text-[11px] font-semibold text-gray-700"},Bo={class:"mt-2 flex flex-col gap-1.5"},Fo={key:0,class:"mt-auto pt-2 text-[10px] text-gray-500 xl:text-[11px]"},Mo=U({__name:"KpiOverviewCard",props:{title:{},value:{},previousValue:{},expectedValue:{},goalProgressPct:{},goalStatus:{default:"none"},prefix:{default:""},footnote:{},badge:{},icon:{},iconIndex:{default:0},compareEnabled:{type:Boolean,default:!1},compareLabel:{default:"Período anterior"},loading:{type:Boolean,default:!1}},setup(e){const t=e,s=["bg-[#182247] ring-[#182247]/20","bg-[#1A8FA3] ring-[#1A8FA3]/20","bg-[#2FA6BC] ring-[#2FA6BC]/2
10","bg-emerald-600 ring-emerald-600/20","bg-[#182247] ring-[#182247]/20","bg-emerald-600 ring-emerald-600/20"],i=L(()=>t.goalProgressPct!=null&&t.goalProgressPct>=100&&t.goalStatus==="on_track"?"above":t.goalStatus??"none"),l={on_track:"Dentro da meta",attention:"Atenção",below:"Abaixo da meta",above:"Acima da meta",none:""},m={on_track:"bg-emerald-50 text-emerald-700 ring-emerald-200",attention:"bg-amber-50 text-amber-800 ring-amber-200",below:"bg-red-50 text-red-700 ring-red-200",above:"bg-emerald-600 text-white ring-emerald-700",none:""},p={on_track:"bg-emerald-500",attention:"bg-amber-400",below:"bg-red-400",above:"bg-emerald-600",none:"bg-[#2FA6BC]"};function d(k){const A=Math.round(k).toLocaleString("pt-BR");return`${t.prefix}${A}`}const u=L(()=>t.goalProgressPct==null?0:Math.min(100,Math.max(0,t.goalProgressPct))),g=L(()=>t.expectedValue!=null&&t.expectedValue>0&&t.goalStatus!=="none"),f=L(()=>s[t.iconIndex%s.length]);return(k,A)=>{const F=le;return o(),n("div",{class:"flex h-full flex-col rounded-xl border border-slate-200/80 bg-white p-3.5 shadow-sm xl:p-4","aria-busy":e.loading},[e.loading?(o(),n("div",_o,[...A[0]||(A[0]=[Tt('<div class="flex items-center gap-2"><div class="size-8 animate-pulse rounded-full bg-gray-200"></div><div class="h-3 w-20 animate-pulse rounded bg-gray-200"></div></div><div class="h-6 w-24 animate-pulse rounded bg-gray-200"></div><div class="h-1.5 w-full animate-pulse rounded bg-gray-200"></div><div class="h-3 w-16 animate-pulse rounded bg-gray-200"></div>',4)])])):(o(),n(C,{key:1},[a("div",ko,[e.icon?(o(),n("span",{key:0,class:B(["flex size-8 shrink-0 items-center justify-center rounded-full ring-1 xl:size-9",r(f)]),"aria-hidden":"true"},[$(F,{class:"size-3.5 fill-white xl:size-4",path:e.icon},null,8,["path"])],2)):x("",!0),a("div",wo,[a("p",Co,c(e.title),
11),e.badge?(o(),n("p",$o,c(e.badge),1)):x("",!0)])]),a("p",Lo,c(d(e.value)),1),r(g)?(o(),n(C,{key:0},[a("p",So," Meta: "+c(d(e.expectedValue)),1),a("div",Ao,[a("div",{class:B(["h-full rounded-full transition-all",p[r(i)]]),style:I({width:`${r(u)}%`})},null,6)]),a("div",Po,[a("span",Ro,c(Math.round(e.goalProgressPct??0))+"% da meta ",1),e.compareEnabled&&e.previousValue!=null?(o(),K(te,{key:0,current:e.value,previous:e.previousValue,"compare-label":e.compareLabel,compact:""},null,8,["current","previous","compare-label"])):x("",!0),r(i)&&r(i)!=="none"?(o(),n("span",{key:1,class:B(["inline-flex w-fit rounded-md px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wide ring-1 ring-inset xl:text-[10px]",m[r(i)]])},c(l[r(i)]),3)):x("",!0)])],64)):(o(),n(C,{key:1},[a("div",Bo,[e.compareEnabled&&e.previousValue!=null?(o(),K(te,{key:0,current:e.value,previous:e.previousValue,"compare-label":e.compareLabel,compact:""},null,8,["current","previous","compare-label"])):x("",!0)]),e.footnote?(o(),n("p",Fo,c(e.footnote),1)):x("",!0)],64))],64))],8,xo)}}}),tt=Object.assign(Mo,{__name:"MarketingKpiOverviewCard"}),No={class:"flex h-full flex-col rounded-xl border border-slate-200/80 bg-white p-4 shadow-sm"},Eo={key:0,class:"mt-4 space-y-3","aria-busy":"true"},To={class:"grid grid-cols-2 gap-3"},Vo={class:"mt-4 grid grid-cols-2 gap-3"},Io={class:"text-[10px] font-semibold uppercase tracking-wide text-gray-500"},Do={class:"mt-1 flex flex-wrap items-center gap-1.5"},Oo={class:"text-lg font-bold text-[#09133a]"},Ko={class:"mt-4 rounded-xl border border-slate-100 bg-slate-50/80 p-4"},Uo={class:"mb-3 flex items-center justify-between gap-2"},zo={class:"text-sm font-bold text-[#09133a]"},qo=["aria-label"],Go={class:"grid gap-2 sm:grid-cols-2"},jo={class:"flex items-center gap-2"},Yo={class:"text-[10px] font-semibold uppercase tracking-wide text-slate-600"},Wo={class:"mt-1 flex flex-wrap items-baseline gap-2"},Ho={class:"text-sm font-bold text-[#09133a]"},Qo={class:"text-xs font-medium text-slate-500"},Zo={key:1,class:"py-4 text-center text-sm text-gray-500"},Jo={key:2,class:"mt-8 py-4 text-center text-sm text-gray-500"},Xo=U({__name:"KpisAdsSection",props:{ads:{},compareEnabled:{type:Boolean},compareLabel:{},loading:{type:Boolean}},setup(e){const t=e,s=[{key:"google",label:"Google Ads",color:"#182247",softBg:"bg-slate-100",ring:"ring-slate-300/70"},{key:"meta",label:"Meta",color:"#1A8FA3",softBg:"bg-cyan-50",ring:"ring-cyan-200/80"}];function i(g){return Math.round(g).toLocaleString("pt-BR")}function l(g){return g.toLocaleString("pt-BR",{style:"currency",currency:"BRL",maximumFractionDigits:0})}const m=L(()=>t.ads?t.ads.freeListings+t.ads.paidListings:0),p=L(()=>
1{if(!t.ads)return[];const g=t.ads.totalInvested,f={google:t.ads.googleAdsCost,meta:t.ads.metaSpend},k={google:t.ads.previousGoogleAdsCost,meta:t.ads.previousMetaSpend};return s.map(A=>{const F=f[A.key],N=g>0?F/g*100:0;return{...A,value:F,previousValue:k[A.key],share:N}})}),d=L(()=>p.value.some(g=>g.value>0)),u=L(()=>t.ads?[{key:"created",label:"Anúncios criados",value:m.value,previousValue:void 0,accent:"bg-cyan-50 ring-cyan-100"},{key:"active",label:"Anúncios ativos",value:t.ads.activeAds,previousValue:t.ads.previousActiveAds,accent:"bg-slate-50 ring-slate-100"},{key:"free",label:"Gratuitos",value:t.ads.freeListings,previousValue:t.ads.previousFreeListings,accent:"bg-white ring-slate-100"},{key:"paid",label:"Pagos",value:t.ads.paidListings,previousValue:t.ads.previousPaidListings,accent:"bg-white ring-slate-100"}]:[]);return(g,f)=>(o(),n("div",No,[f[2]||(f[2]=a("h2",{class:"text-sm font-bold text-[#09133a]"},"Anúncios",-1)),e.loading?(o(),n("div",Eo,[a("div",To,[(o(),n(C,null,P(4,k=>a("div",{key:`ads-sk-${k}`,class:"h-16 animate-pulse rounded-lg bg-gray-200"})),64))]),f[0]||(f[0]=a("div",{class:"h-24 animate-pulse rounded-lg bg-gray-200"},null,-1))])):e.ads?(o(),n(C,{key:1},[a("div",Vo,[(o(!0),n(C,null,P(r(u),k=>(o(),n("div",{key:k.key,class:B(["rounded-lg px-3 py-2.5 ring-1",k.accent])},[a("p",Io,c(k.label),1),a("div",Do,[a("span",Oo,c(i(k.value)),1),e.compareEnabled&&k.previousValue!=null&&k.key!=="created"?(o(),K(te,{key:0,current:k.value,previous:k.previousValue,"compare-label":e.compareLabel??"Comparativo",compact:""},null,8,["current","previous","compare-label"])):x("",!0)])],2))),128))]),a("div",Ko,[a("div",Uo,[f[1]||(f[1]=a("p",{class:"text-xs font-semibold text-[#09133a]"}," Investimento por canal ",-1)),a("span",zo,c(l(e.ads.totalInvested)),1)]),r(d)?(o(),n(C,{key:0},[a("div",{class:"mb-3 flex h-2.5 overflow-hidden rounded-full bg-white ring-1 ring-slate-200",role:"img","aria-label":`Distribuição: Google ${l(e.ads.googleAdsCost)}, Meta ${l(e.ads.metaSpend)}`},[(o(!0),n(C,null,P(r(p),k=>(o(),n("div",{key:`bar-${k.key}`,class:"h-full transition-all",style:I({width:`${k.share}%`,backgroundColor:k.color})},null,4))),128))],8,qo),a("div",Go,[(o(!0),n(C,null,P(r(p),k=>(o(),n("div",{key:k.key,class:B(["rounded-lg px-3 py-2 ring-1",[k.softBg,k.ring]])},[a("div",jo,[a("span",{class:"size-2 shrink-0 rounded-sm",style:I({backgroundColor:k.color}),"aria-hidden":"true"},null,4),a("p",Yo,c(k.label),1)]),a("div",Wo,[a("span",Ho,c(l(k.value)),1),a("span",Qo,c(k.share.toFixed(0))+"% ",1),e.compareEnabled&&k.previousValue!=null?(o(),K(te,{key:0,current:k.value,previous:k.previousValue,"compare-label":e.compareLabel??"Comparativo",compact:""},null,8,["current","previous","compare-label"])):x("",!0)])],2))),128))])],64)):(o(),n("p",Zo," Sem investimento no período. "))])],64)):(o(),n("p",Jo," Sem dados de anúncios. "))]))}}),en=Object.assign(Xo,{__name:"MarketingKpisAdsSection"}),tn={class:"flex min-h-screen flex-col bg-[#182247] p-4 lg:sticky lg:top-0 lg:min-h-[calc(100vh-0px)]","aria-labelledby":"kpi-filters-heading"},an={class:"flex flex-1 flex-col"},sn={class:"space-y-4"}
1,on={key:0,class:"mt-2 inline-flex rounded-md bg-[#2FA6BC]/20 px-2.5 py-0.5 text-xs font-medium text-[#a8e6f0]"},nn=["disabled"],rn=["value"],ln={key:0,class:"mt-2"},dn={class:"mt-2 flex flex-wrap gap-1.5"},un={key:0,class:"inline-flex rounded-md bg-white/10 px-2.5 py-0.5 text-xs font-medium text-white/90"},cn={key:1,class:"inline-flex rounded-md bg-white/5 px-2.5 py-0.5 text-xs font-medium text-white/50"},mn=["disabled"],pn=["value"],bn={key:0,class:"mt-4 flex items-center gap-1.5 text-xs text-white/45"},gn={class:"mt-auto space-y-2 border-t border-white/10 pt-4"},vn=["disabled"],yn=["disabled","aria-busy"],at="w-full rounded-lg border border-white/10 bg-[#09133a]/60 px-3 py-2 text-sm font-medium text-white shadow-sm focus:border-[#2FA6BC] focus:outline-none focus:ring-2 focus:ring-[#2FA6BC]/30 disabled:cursor-not-allowed disabled:opacity-50",Be="mb-1.5 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide text-white/80",fn=U({__name:"KpisFilterRail",props:qe({periodLabel:{},compareLabel:{},comparePeriodLabel:{},compareEnabled:{type:Boolean},showCustomComparePicker:{type:Boolean},loading:{type:Boolean},exportingCsv:{type:Boolean},canExport:{type:Boolean},annualTrendsYear:{},compareOptions:{},baselineOptions:{}},{period:{required:!0},periodModifiers:{},compareMode:{required:!0},compareModeModifiers:{},customComparePeriod:{required:!0},customComparePeriodModifiers:{},baselineEra:{required:!0},baselineEraModifiers:{}}),emits:qe(["refresh","export"],["update:period","update:compareMode","update:customComparePeriod","update:baselineEra"]),setup(e,{emit:t}){const s=_e(e,"period"),i=_e(e,"compareMode"),l=_e(e,"customComparePeriod"),m=_e(e,"baselineEra"),p=t;return(d,u)=>{const g=le;return o(),n("aside",tn,[u[12]||(u[12]=a("div",{class:"mb-6 pt-2"},[a("img",{src:oa,alt:"meuBiZ",class:"h-7 w-auto brightness-0 invert"})],-1)),a("div",an,[u[11]||(u[11]=a("h2",{id:"kpi-filters-heading",class:"mb-4 text-xs font-bold uppercase tracking-[0.12em] text-white/60"}," Filtros ",-1)),a("div",sn,[a("div",null,[a("label",{class:B(Be)},[$(g,{class:"size-3.5 fill-[#2FA6BC]",path:r(Jt)},null,8,["path"]),u[6]||(u[6]=M(" Período ",-1))]),$(Ue,{modelValue:s.value,"onUpdate:modelValue":u[0]||(u[0]=f=>s.value=f),class:"kpi-filter-rail-picker w-full",disabled:e.loading},null,8,["modelValue","disabled"]),e.periodLabel?(o(),n("p",on,c(e.periodLabel),1)):x("",!0)]),a("div",null,[a("label",{for:"compare-mode",class:B(Be)},[$(g,{class:"size-3.5 fill-[#2FA6BC]",path:r(Xt)},null,8,["path"]),u[7]||(u[7]=M(" Comparar com ",-1))]),Ne(a("select",{id:"compare-mode","onUpdate:modelValue":u[1]||(u[1]=f=>i.value=f),class:B(at),disabled:e.loading},[(o(!0),n(C,null,P(e.compareOptions,f=>(o(),n("option",{key:f.value,value:f.value,class:"bg-[#182247] text-white"},c(f.label),9,rn))),128))],8,nn),[[ze,i.value]]),e.showCustomComparePicker?(o(),n("div",ln,[u[8]||(u[8]=a("label",{class:"mb-1 block text-[11px] font-medium uppercase tracking-wide text-white/70"}," Período de comparação ",-1)),$(Ue,{modelValue:l.value,"onUpdate:modelValue":u[2]||(u[2]=f=>l.value=f),class:"kpi-filter-rail-picker w-full",disabled:e.loading},null,8,["modelValue","disabled"])])):x("",!0),a("div",dn,[e.compareEnabled&&e.comparePeriodLabel?(o(),n("span",un,c(e.compareLabel)+": "+c(e.comparePeriodLabel),1)):(o(),n("span",cn," Comparativo desativado "))])]),a("div",null,[a("label",{for:"baseline-era",class:B(Be)},[$(g,{class:"size-3.5 fill-[#2FA6BC]",path:r(ea)},null,8,["path"]),u[9]||(u[9]=M(" Era baseline ",-1))]),Ne(a("select",{id:"baseline-era","onUpdate:modelValue":u[3]||(u[3]=f=>m.value=f),class:B(at),disabled:e.loading},[(o(!0),n(C,null,P(e.baselineOptions,f=>(o(),n("option",{key:f.value,value:f.value,class:"bg-[#182247] text-white"},c(f.label),9,pn))),128))],8,mn),[[ze,m.value]]),u[10]||(u[10]=a("p",{class:"mt-1.5 text-xs text-white/45"}," Afeta apenas o acumulado de anúncios ativos. ",-1))])]),e.annualTrendsYear?(o(),n("p",bn,[$(g,{class:"size-3.5 shrink-0 fill-white/40",path:r(bt)},null,8,["path"]),M(" Tendência anual "+c(e.annualTrendsYear)+" (YTD). ",1)])):x("",!0),a("div",gn,[a("button",{type:"button",class:"inline-flex w-full items-center justify-center gap-2 rounded-lg border border-white/30 bg-transparent px-4 py-2 text-sm font-semibold text-white transition-colors hover:bg-white/10 disabled:cursor-not-allowed disabled:opacity-50",disabled:e.loading||e.exportingCsv||!e.canExport,onClick:u[4]||(u[4]=f=>p("export"))},[$(g,{class:"size-4 fill-white",path:r(ta)},null,8,["path"]),M(" "+c(e.exportingCsv?"Exportando...":"Exportar"),1)],8,vn),a("button",{type:"button",class:"inline-flex w-full items-center justify-center gap-2 rounded-lg border border-white/10 bg-white/5 px-4 py-2 text-sm font-medium text-white/80 transition-colors hover:bg-white/10 disabled:cursor-not-allowed disabled:opacity-50",disabled:e.loading,"aria-busy":e.loading,onClick:u[5]||(u[5]=f=>p("refresh"))},[$(g,{class:B(["size-4 fill-white/80",{"animate-spin":e.loading}]),path:r(aa)},null,8,["class","path"]),M(" "+c(e.loading?"Atualizando...":"Atualizar"),1)],8,yn)])])])}}}),hn=Object.assign(na(fn,[["__scopeId","data-v-d61e434f"]]),{__name:"MarketingKpisFilterRail"}),xn={monthly_first:"#182247",monthly_recurring:"#1A8FA3",monthly_total:"#2563EB",semiannual:"#3B82F6",one_time_monthly:"#0D9488",homepage_boost:"#C2410C",email_boost:"#EA580C",social_boost:"#F59E0B",valuation:"#DB2777"},_n={monthly_first:"plan",monthly_recurring:"plan",monthly_total:"plan",semiannual:"plan",one_time_monthly:"plan",homepage_boost:"boost",email_boost:"boost",social_boost:"boost",valuation:"valuation"},st={monthly_first:"monthly_first",monthly_recurring:"monthly_recurring",monthly_total:"monthly_total",semiannual:"semiannual",one_time_monthly:"one_time_monthly",homepage_boost:"homepage_boost",email_boost:"email_boost",social_boost:"social_boost",valuation:"valuation"},ot={"Plano mensal — 1ª parcela":"monthly_first","Plano mensal — parcelas seguintes":"monthly_recurring","Plano semestral":"semiannual","Plano mensal avulso":"one_time_monthly","Boost página inicial":"homepage_boost","Boost e-mail"
1:"email_boost","Boost redes sociais":"social_boost",Valuation:"valuation"},nt={"Assinatura — 1ª parcela":"monthly_first","Assinatura — parcelas recorrentes":"monthly_recurring","Plano mensal único":"one_time_monthly","Plano semestral":"semiannual","Boost página inicial":"homepage_boost","Boost e-mail":"email_boost","Boost redes sociais":"social_boost",Valuation:"valuation"},kn="#94a3b8";function St(e){if(e.key&&st[e.key])return st[e.key];if(e.label){if(ot[e.label])return ot[e.label];if(nt[e.label])return nt[e.label]}return null}function Ae(e){const t=St(e);return t?xn[t]:kn}function wn(e){const t=St(e);return t?_n[t]:null}function At(e,t){return e.startsWith("#")&&e.length===7?`${e}${t}`:e}function Cn(e,t="FF"){return e.map(s=>At(Ae({label:s}),t))}function $n(e,t="FF"){return e.map(s=>At(Ae({label:s}),t))}const Ce={plan:"Planos",boost:"Boosts",valuation:"Valuation"},$e={plan:"#1A8FA3",boost:"#EA580C",valuation:"#DB2777"},Ln=["plan","boost","valuation"];function Sn(e){const t=new Map;for(const s of e){const i=wn({key:s.key,label:s.label})??"plan",l=t.get(i)??[];l.push(s),t.set(i,l)}return Ln.filter(s=>t.has(s)).map(s=>({group:s,label:Ce[s],accentColor:$e[s],lines:t.get(s)}))}const An={key:0,class:"h-64 animate-pulse rounded-xl bg-gray-200","aria-busy":"true"},Pn={key:0,class:"flex h-full flex-col rounded-xl border border-slate-200/80 bg-white p-4 shadow-sm"},Rn={class:"mt-3 flex flex-wrap items-end justify-between gap-3"},Bn={class:"text-2xl font-bold tracking-tight text-[#09133a]"},Fn={class:"mt-1 text-xs text-gray-500"},Mn={key:0},Nn={key:0,class:"mt-4"},En={class:"mt-4 grid grid-cols-2 gap-3"},Tn={class:"rounded-lg bg-slate-50 px-3 py-2.5 ring-1 ring-slate-100"},Vn={class:"mt-1 text-base font-bold text-[#09133a]"},In={class:"rounded-lg bg-slate-50 px-3 py-2.5 ring-1 ring-slate-100"},Dn={class:"mt-1 text-base font-bold text-[#09133a]"},On={class:"flex flex-col gap-5 lg:flex-row lg:items-center lg:justify-between"},Kn={class:"flex items-center gap-3"},Un={class:"flex size-10 shrink-0 items-center justify-center rounded-xl bg-cyan-100 ring-1 ring-cyan-200/80","aria-hidden":"true"},zn={class:"text-xs text-gray-500"},qn={key:0},Gn={key:0,class:"flex flex-col gap-4 sm:flex-row sm:items-end sm:gap-8"},jn={class:"text-right"},Yn={key:0,class:"text-[10px] text-gray-400"},Wn={class:"text-right"},Hn={class:"text-xs font-semibold uppercase tracking-wide text-gray-600"},Qn={key:0,class:"text-[10px] text-gray-400"},Zn={class:"mt-1 text-2xl font-bold text-gray-700"},Jn={key:1,class:"mt-0.5 text-xs text-gray-500"},Xn={key:1,class:"text-right"},er=["aria-expanded"],tr={key:0,class:"border-t border-gray-100 px-5 pb-5"},ar={key:0,class:"mb-3 mt-4 inline-flex rounded-lg border border-gray-200 bg-gray-50 p-0.5",role:"tablist"},sr=["aria-selected"],or=["aria-selected"],nr={class:"overflow-x-auto rounded-lg border border-gray-200"},rr={class:"min-w-full text-sm"},lr={class:"px-3 py-2.5 text-gray-700"},ir={class:"px-3 py-2.5"},dr={class:"flex items-start gap-2"},ur={class:"font-medium text-gray-800"},cr={class:"mt-0.5 text-xs text-gray-500"},mr={class:"px-3 py-2.5 text-right font-bold text-[#09133a]"},pr={key:0},br={colspan:"3",class:"px-3 py-6 text-center text-gray-500"},gr={key:0,class:"border-t border-gray-200 bg-gray-50/60"}
1,vr={colspan:"2",class:"px-3 py-2 text-xs font-semibold text-gray-600"},yr={class:"px-3 py-2 text-right font-bold text-gray-900"},fr={key:0,class:"mb-6 rounded-lg bg-white p-4 shadow-sm"},hr={class:"mb-4 flex flex-wrap gap-2"},xr={class:"space-y-6"},_r={class:"mb-2 text-sm font-semibold text-cyan-800"},kr={class:"overflow-x-auto rounded-xl border border-gray-200 bg-white shadow-sm"},wr={class:"min-w-full table-fixed text-sm"},Cr={class:"border-b border-gray-100 bg-gray-50/80 text-left text-xs uppercase tracking-wide text-gray-500"},$r={key:0,class:"bg-slate-50/80 px-4 py-3 text-right font-semibold"},Lr={key:0,class:"mt-0.5 block text-[10px] font-normal normal-case tracking-normal text-gray-400"},Sr={key:0,class:"mt-0.5 block text-[10px] font-normal normal-case tracking-normal text-gray-400"},Ar={key:1,class:"px-4 py-3 text-right font-semibold"},Pr={key:0,class:"border-b border-gray-100 bg-gray-50/60"},Rr=["colspan"],Br={class:"flex items-center gap-2"},Fr={class:"text-xs font-semibold uppercase tracking-wide text-gray-600"},Mr={class:"flex items-start gap-2"},Nr={class:"font-medium text-gray-800"},Er={key:0,class:"mt-0.5 text-xs text-gray-500"},Tr={key:0,class:"bg-slate-50/50 px-4 py-3 text-right text-sm font-normal text-gray-500"},Vr={class:"mt-0.5 text-xs text-gray-400"},Ir={class:"mt-0.5 text-xs font-normal text-gray-500"},Dr={key:1,class:"px-4 py-3 text-right"},Or={key:1,class:"text-xs text-gray-400"},Kr={class:"px-4 py-3 text-center"},Ur=["disabled","aria-expanded","aria-label","onClick"],zr={key:0},qr=["colspan"],Gr={class:"min-w-full text-sm"},jr={class:"px-3 py-2 text-gray-700"},Yr={class:"px-3 py-2"},Wr={class:"flex items-start gap-2"},Hr={class:"font-medium text-gray-800"},Qr={class:"mt-0.5 text-xs text-gray-500"},Zr={class:"px-3 py-2 text-right font-medium text-gray-900"},Jr={key:0},Xr={key:0,class:"border-t border-gray-200 bg-white"},el={class:"px-3 py-2 text-right font-bold text-gray-900"},tl={key:2,class:"rounded-lg bg-white px-4 py-8 text-center text-sm text-gray-500 shadow-sm"},al="rgba(24, 34, 71, 0.22)",sl="rgba(24, 34, 71, 0.45)",rt="w-72 min-w-72 max-w-72 align-top break-words px-4 py-3",ol=U({__name:"KpisRevenueSection",props:{section:{},compareEnabled:{type:Boolean},compareLabel:{},comparePeriodLabel:{},formatCurrency:{},periodLabel:{},loading:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},variant:{default:"full"},recurringValue:{default:0}},setup(e){const t=[{group:"plan",label:Ce.plan,color:$e.plan},{group:"boost",label:Ce.boost,color:$e.boost},{group:"valuation",label:Ce.valuation,color:$e.valuation}];function s(h){return h.toLocaleString("pt-BR",{style:"currency",currency:"BRL",maximumFractionDigits:0})}function i(h){return Cn(h)}function l(h,y){return Ae({key:h,label:y})}const m=e,p=L(()=>m.variant==="overview"),d=L(()=>m.section?Math.max(0,m.section.total-(m.recurringValue??0)):0),u=D(new Set),g=D(!1),f=D("current");function k(h){const y=new Set(u.value);y.has(h)?y.delete(h):y.add(h),u.value=y}function A(h){return u.value.has(h)}function F(h){return`${h} pagamento${h===1?"":"s"}`}function N(h){if(!h)return"—";const y=new Date(h);return Number.isNaN(y.getTime())?h:y.toLocaleString("pt-BR",{timeZone:"America/Sao_Paulo",day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"})}function T(h){const y=m.section?.paymentEntries??[],{productIds:V,subscriptionSlice:G}=h.filter;return Ct(y,V,G)}function j(){return m.section?.paymentEntries??[]}function de(){return m.section?.comparePaymentEntries??[]}function w(){return f.value==="compare"?de():j()}function R(h){return h.reduce((y,V)=>y+(Number(V.amount)||0),0)}function Y(h){const y=Ie(h);return Ae({key:y.key,label:y.label})}function se(h){return Ie(h).label}function E(h){return rs(h)}function Q(h){return h.previousPaymentCount==null?"—":F(h.previousPaymentCount)}const ue=L(()=>{const h=m.section?.chart.labels.length??0;if(h===0)return 0;const y=m.compact?280:420,V=m.compact?140:180,G=m.compact?32:40;return Math.min(y,Math.max(V,h*G+60))}),ce=L(()=>{const h=m.section?.chart;if(!h)return"";const y=h.previousValues?.join(",")??"";return`${h.labels.join("|")}:${h.values.join(",")}:${y}`}
1),O=L(()=>m.compareEnabled&&(m.section?.chart.previousValues?.some(h=>h>0)??!1)),ve=L(()=>({indexAxis:"y",layout:{padding:{top:4,right:12,bottom:0,left:4}},datasets:{bar:{minBarLength:4}},plugins:{legend:{display:O.value,position:"bottom",labels:{boxWidth:12,font:{size:11}}},tooltip:{callbacks:{label(h){const y=Number(h.parsed?.x)||0;return`${h.dataset.label?`${h.dataset.label}: `:""}${s(y)}`}}}},scales:{x:{beginAtZero:!0,grid:{color:"rgba(31, 41, 55, 0.12)"},ticks:{color:"#182247",callback(h){return s(Number(h))}}},y:{grid:{display:!1},ticks:{color:"#182247",font:{size:11},autoSkip:!1,crossAlign:"far"}}}})),z=L(()=>{if(!m.section||m.section.chart.values.length===0)return[];const{values:h,previousValues:y,labels:V}=m.section.chart,G=[];return O.value&&y&&G.push({label:m.compareLabel,data:y,borderWidth:1,backgroundColor:al,borderColor:sl,barThickness:22,order:0}),G.push({label:"Receita",data:h,borderWidth:1,backgroundColor:i(V),borderColor:$n(V),barThickness:18,order:1}),G}),W=L(()=>m.compareEnabled?5:3),oe=L(()=>m.section?[{id:"monthly",title:"Plano mensal",lines:m.section.monthlyPlan,grouped:!1},{id:"newSales",title:"Vendas novas no período",lines:m.section.newSales,grouped:!0}]:[]),q=L(()=>m.compareEnabled&&(m.section?.comparePaymentEntries?.length??0)>0);function ne(h){return h.grouped?Sn(h.lines).map(y=>({groupLabel:y.label,accentColor:y.accentColor,lines:y.lines})):[{lines:h.lines}]}return(h,y)=>{const V=Pt,G=le;return o(),n("section",{class:B(e.compact?"mb-0":"mb-8")},[e.loading?(o(),n("div",An)):e.section?(o(),n(C,{key:1},[r(p)?(o(),n("div",Pn,[y[7]||(y[7]=a("h2",{class:"text-sm font-bold text-[#09133a]"},"Receita MeuBiZ",-1)),a("div",Rn,[a("p",Bn,c(e.formatCurrency(e.section.total)),1),e.compareEnabled&&e.section.previousTotal!=null?(o(),K(te,{key:0,current:e.section.total,previous:e.section.previousTotal,"compare-label":e.compareLabel},null,8,["current","previous","compare-label"])):x("",!0)]),a("p",Fn,[M(c(F(e.section.totalPaymentCount))+" ",1),e.periodLabel?(o(),n("span",Mn," · "+c(e.periodLabel),1)):x("",!0)]),e.section.chart.labels.length>0?(o(),n("div",Nn,[y[4]||(y[4]=a("h3",{class:"mb-2 text-xs font-semibold text-[#09133a]"}," Receita por produto ",-1)),$(V,null,{fallback:ee(()=>[...y[3]||(y[3]=[a("div",{class:"h-32 animate-pulse rounded-lg bg-gray-100","aria-busy":"true"},null,-1)])]),default:ee(()=>[(o(),K(Me,{key:r(ce),type:"bar",labels:e.section.chart.labels,datasets:r(z),options:r(ve),responsive:"","set-height":Math.min(220,r(ue)||180),"bar-thickness":14,"tick-font-size":9},null,8,["labels","datasets","options","set-height"]))]),_:1})])):x("",!0),a("div",En,[a("div",Tn,[y[5]||(y[5]=a("p",{class:"text-[10px] font-semibold uppercase tracking-wide text-gray-500"}," Recorrente (MRR) ",-1)),a("p",Vn,c(e.formatCurrency(e.recurringValue)),1)]),a("div",In,[y[6]||(y[6]=a("p",{class:"text-[10px] font-semibold uppercase tracking-wide text-gray-500"}," Não recorrente ",-1)),a("p",Dn,c(e.formatCurrency(r(d))),1)])])])):(o(),n(C,{key:1},[a("div",{class:B(["overflow-hidden rounded-xl border border-slate-200 border-l-4 border-l-[#1A8FA3] bg-white shadow-sm ring-1 ring-slate-900/[0.03]",e.compact?"mb-4":"mb-6"])},[a("div",{class:B(e.compact?"px-4 py-4":"px-5 py-5")},[a("div",On,[a("div",Kn,[a("span",Un,[$(G,{class:"size-6 fill-cyan-700",path:r(Ke)},null,8,["path"])]),a("div",null,[y[8]||(y[8]=a("h2",{class:"text-base font-bold text-[#09133a]"},"Receita total",-1)),a("p",zn,[M(c(F(e.section.totalPaymentCount))+" ",1),e.periodLabel?(o(),n("span",qn," · "+c(e.periodLabel),1)):x("",!0)])])]),e.compareEnabled&&e.section.previousTotal!=null?(o(),n("div",Gn,[a("div",jn,[y[9]||(y[9]=a("p",{class:"text-xs font-semibold uppercase tracking-wide text-cyan-800"}," Período atual ",-1)),e.periodLabel?(o(),n("p",Yn,c(e.periodLabel),1)):x("",!0),a("p",{class:B(["mt-1 font-bold tracking-tight text-[#09133a]",e.compact?"text-2xl":"text-4xl"])},c(e.formatCurrency(e.section.total)),3)]),y[10]||(y[10]=a("div",{class:"hidden h-12 w-px bg-gray-200 sm:block","aria-hidden":"true"},null,-1)),a("div",Wn,[a("p",Hn,c(e.compareLabel),1),e.comparePerio
1dLabel?(o(),n("p",Qn,c(e.comparePeriodLabel),1)):x("",!0),a("p",Zn,c(e.formatCurrency(e.section.previousTotal)),1),e.section.previousTotalPaymentCount!=null?(o(),n("p",Jn,c(F(e.section.previousTotalPaymentCount)),1)):x("",!0)]),$(te,{current:e.section.total,previous:e.section.previousTotal,"compare-label":e.compareLabel},null,8,["current","previous","compare-label"])])):(o(),n("div",Xn,[a("p",{class:B(["font-bold tracking-tight text-[#09133a]",e.compact?"text-2xl":"text-4xl"])},c(e.formatCurrency(e.section.total)),3)]))]),a("button",{type:"button",class:B(["mt-4 inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-xs font-medium transition-colors",r(g)?"border-cyan-200 bg-cyan-50 text-cyan-800":"border-gray-200 bg-white text-cyan-700 hover:border-cyan-200 hover:bg-cyan-50"]),"aria-expanded":r(g),onClick:y[0]||(y[0]=_=>g.value=!r(g))},[$(G,{class:"size-4 fill-current",path:r(g)?r(Te):r(ct)},null,8,["path"]),M(" "+c(r(g)?"Ocultar pagamentos":"Ver pagamentos"),1)],10,er)],2),r(g)?(o(),n("div",tr,[r(q)?(o(),n("div",ar,[a("button",{type:"button",role:"tab",class:B(["rounded-md px-3 py-1 text-xs font-medium transition-colors",r(f)==="current"?"bg-white text-cyan-800 shadow-sm":"text-gray-600 hover:text-gray-800"]),"aria-selected":r(f)==="current",onClick:y[1]||(y[1]=_=>f.value="current")}," Período atual ",10,sr),a("button",{type:"button",role:"tab",class:B(["rounded-md px-3 py-1 text-xs font-medium transition-colors",r(f)==="compare"?"bg-white text-cyan-800 shadow-sm":"text-gray-600 hover:text-gray-800"]),"aria-selected":r(f)==="compare",onClick:y[2]||(y[2]=_=>f.value="compare")},c(e.compareLabel),11,or)])):x("",!0),a("div",nr,[a("table",rr,[y[11]||(y[11]=a("thead",{class:"border-b border-gray-100 bg-gray-50/80 text-left text-xs uppercase tracking-wide text-gray-500"},[a("tr",null,[a("th",{class:"px-3 py-2 font-semibold"},"Data"),a("th",{class:"px-3 py-2 font-semibold"},"Produto"),a("th",{class:"px-3 py-2 text-right font-semibold"},"Valor")])],-1)),a("tbody",null,[(o(!0),n(C,null,P(w(),(_,b)=>(o(),n("tr",{key:`${_.paymentId}-${_.productId}-${_.createdAt}-${b}`,class:"border-b border-gray-50 last:border-0 hover:bg-gray-50/60",style:I({borderLeftWidth:"3px",borderLeftColor:Y(_),borderLeftStyle:"solid"})},[a("td",lr,c(N(_.createdAt)),1),a("td",ir,[a("div",dr,[a("span",{class:"mt-1.5 size-2.5 shrink-0 rounded-sm",style:I({backgroundColor:Y(_)}),"aria-hidden":"true"},null,4),a("div",null,[a("div",ur,c(se(_)),1),a("p",cr,c(E(_)),1)])])]),a("td",mr,c(e.formatCurrency(_.amount)),1)],4))),128)),w().length===0?(o(),n("tr",pr,[a("td",br," Nenhum pagamento "+c(r(f)==="compare"?"no período comparativo":"no período")+". ",1)])):x("",!0)]),w().length>0?(o(),n("tfoot",gr,[a("tr",null,[a("td",vr," Soma ("+c(w().length)+" "+c(w().length===1?"pagamento":"pagamentos")+") ",1),a("td",yr,c(e.formatCurrency(R(w()))),1)])])):x("",!0)])])])):x("",!0)],2),e.section.chart.labels.length>0?(o(),n("div",fr,[y[13]||(y[13]=a("h3",{class:"mb-1 text-sm font-semibold text-cyan-800"}," Ranking por produto ",-1)),y[14]||(y[14]=a("p",{class:"mb-3 text-xs text-gray-500"}," Receita no período, ordenada do maior para o menor valor. ",-1)),$(V,null,{fallback:ee(()=>[...y[12]||(y[12]=[a("div",{class:"h-48 animate-pulse rounded-lg bg-gray-100","aria-busy":"true"},null,-1)])]),default:ee(()=>[(o(),K(Me,{key:r(ce),type:"bar",labels:e.section.chart.labels,datasets:r(z),options:r(ve),responsive:"","set-height":r(ue),"bar-thickness":18,"tick-font-size":10},null,8,["labels","datasets","options","set-height"]))]),_:1})])):x("",!0),a("div",hr,[(o(),n(C,null,P(t,_=>a("span",{key:_.group,class:"inline-flex items-center gap-1.5 rounded-full border border-gray-200 bg-white px-2.5 py-1 text-xs font-medium text-gray-700 shadow-sm"},[a("span",{class:"size-2.5 shrink-0 rounded-sm",style:I({backgroundColor:_.color}),"aria-hidden":"true"},null,4),M(" "+c(_.label),1)])),64))]),a("div",xr,[(o(!0),n(C,null,P(r(oe),_=>(o(),n("div",{key:_.id},[a("h3",_r,c(_.title),1),a("div",kr,[a("table",wr,[a("thead",Cr,[a("tr",null,[a("th",{class:B([rt,"font-semibold"])}
1," Produto ",2),e.compareEnabled?(o(),n("th",$r,[y[15]||(y[15]=a("span",null,"Período anterior",-1)),e.comparePeriodLabel?(o(),n("span",Lr,c(e.comparePeriodLabel),1)):x("",!0)])):x("",!0),a("th",{class:B(["px-4 py-3 text-right font-semibold",e.compareEnabled?"border-l border-gray-200/80":""])},[y[16]||(y[16]=a("span",null,"Período atual",-1)),e.periodLabel?(o(),n("span",Sr,c(e.periodLabel),1)):x("",!0)],2),e.compareEnabled?(o(),n("th",Ar," Variação ")):x("",!0),y[17]||(y[17]=a("th",{class:"px-4 py-3 text-center font-semibold"},"Detalhes",-1))])]),a("tbody",null,[(o(!0),n(C,null,P(ne(_),(b,Z)=>(o(),n(C,{key:`${_.id}-block-${Z}`},[b.groupLabel?(o(),n("tr",Pr,[a("td",{colspan:r(W),class:"px-4 py-2"},[a("div",Br,[a("span",{class:"h-4 w-1 shrink-0 rounded-full",style:I({backgroundColor:b.accentColor}),"aria-hidden":"true"},null,4),a("span",Fr,c(b.groupLabel),1)])],8,Rr)])):x("",!0),(o(!0),n(C,null,P(b.lines,S=>(o(),n(C,{key:S.key},[a("tr",{class:"border-b border-gray-50 hover:bg-gray-50/60",style:I({borderLeftWidth:"4px",borderLeftColor:l(S.key,S.label),borderLeftStyle:"solid"})},[a("td",{class:B(rt)},[a("div",Mr,[a("span",{class:"mt-1.5 size-2.5 shrink-0 rounded-sm",style:I({backgroundColor:l(S.key,S.label)}),"aria-hidden":"true"},null,4),a("div",null,[a("div",Nr,c(S.label),1),S.footnote?(o(),n("p",Er,c(S.footnote),1)):x("",!0)])])]),e.compareEnabled?(o(),n("td",Tr,[a("div",null,c(S.previousValue!=null?e.formatCurrency(S.previousValue):"—"),1),a("div",Vr,c(Q(S)),1)])):x("",!0),a("td",{class:B(["px-4 py-3 text-right font-bold text-[#09133a]",e.compareEnabled?"border-l border-gray-200/80":""])},[a("div",null,c(e.formatCurrency(S.value)),1),a("div",Ir,c(F(S.paymentCount)),1)],2),e.compareEnabled?(o(),n("td",Dr,[S.previousValue!=null?(o(),K(te,{key:0,current:S.value,previous:S.previousValue,variant:"direction",compact:""},null,8,["current","previous"])):(o(),n("span",Or,"—"))])):x("",!0),a("td",Kr,[a("button",{type:"button",class:B(["inline-flex items-center gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-40",A(S.key)?"border-cyan-200 bg-cyan-50 text-cyan-800":"border-gray-200 bg-white text-cyan-700 hover:border-cyan-200 hover:bg-cyan-50"]),disabled:S.paymentCount===0,"aria-expanded":A(S.key),"aria-label":A(S.key)?`Ocultar pagamentos de ${S.label}`:`Ver pagamentos de ${S.label}`,onClick:v=>k(S.key)},[$(G,{class:"size-3.5 fill-current",path:A(S.key)?r(Te):r(sa)},null,8,["path"]),a("span",null,c(A(S.key)?"Ocultar":"Pagamentos"),1)],10,Ur)])],4),A(S.key)?(o(),n("tr",zr,[a("td",{colspan:r(W),class:"border-b border-gray-100 bg-gray-50/40 px-4 py-3"},[a("table",Gr,[y[20]||(y[20]=a("thead",{class:"border-b border-gray-100 bg-white text-left text-xs uppercase tracking-wide text-gray-500"},[a("tr",null,[a("th",{class:"px-3 py-2 font-semibold"},"Data"),a("th",{class:"px-3 py-2 font-semibold"},"Produto"),a("th",{class:"px-3 py-2 text-right font-semibold"}," Valor ")])],-1)),a("tbody",null,[(o(!0),n(C,null,P(T(S),(v,J)=>(o(),n("tr",{key:`${v.paymentId}-${v.productId}-${v.createdAt}-${J}`,class:"border-b border-gray-50 last:border-0 odd:bg-white even:bg-gray-50/50"},[a("td",jr,c(N(v.createdAt)),1),a("td",Yr,[a("div",Wr,[a("span",{class:"mt-1.5 size-2 shrink-0 rounded-sm",style:I({backgroundColor:Y(v)}),"aria-hidden":"true"},null,4),a("div",null,[a("div",Hr,c(se(v)),1),a("p",Qr,c(E(v)),1)])])]),a("td",Zr,c(e.formatCurrency(v.amount)),1)]))),128)),T(S).length===0?(o(),n("tr",Jr,[...y[18]||(y[18]=[a("td",{colspan:"3",class:"px-3 py-4 text-center text-gray-500"}," Nenhum pagamento no período. ",-1)])])):x("",!0)]),T(S).length>0?(o(),n("tfoot",Xr,[a("tr",null,[y[19]||(y[19]=a("td",{colspan:"2",class:"px-3 py-2 text-xs font-semibold text-gray-600"}," Soma ",-1)),a("td",el,c(e.formatCurrency(R(T(S)))),1)])])):x("",!0)])],8,qr)])):x("",!0)],64))),128))],64))),128))])])])]))),128))])],64))],64)):(o(),n("p",tl," Sem dados de receita para o período. "))],2)}}}),lt=Object.assign(ol,{__name:"MarketingKpisRevenueSection"});function it(e){const t=e?.cohort??{};return{startedConversation:Number(t.startedConversation)||0,withBilateralResponse:Number(t.withBilateralResponse)||0,withoutBilateralResponse:Number(t.withoutBilateralResponse)||0}}function nl(e){const t=e?.cohort??{};return{createdListing:Number(t.createdListing)||0,freeListings:Number(t.freeListings)||0,paidListings:Number(t.paidListings)||0}}function ie(e){if(e==null)return null;if(typeof e=="string")try{return JSON.parse(e)}catch{return null}return e}function H(e){if(e==null)return 0;if(typeof e=="number")return Number.isFinite(e)?e:0;const t=parseFloat(String(e).trim().replace(",","."));return Number.isFinite(t)?t:0}
1const rl={new_era:"2024-03-01",all:"1999-12-31"};async function X(e,t,s){try{return{data:await e(t,s),httpFailed:!1}}catch{return{data:null,httpFailed:!0}}}function me(e){return e!=null&&e.done===!1}async function dt(e,t){const{date_from:s,date_to:i,baseline_date:l}=t,m=`date=${l}&date_from=${s}&date_to=${i}`,p=[],[d,u,g,f,k,A,F,N,T]=await Promise.all([X(e,`/api/consultants/users/statistics?${m}`),X(e,`/api/consultants/listings/statistics?${m}`),X(e,`/api/consultants/reports/kpis-dashboard?${m}`),X(e,`/api/consultants/reports/marketing-invested?date_from=${s}&date_to=${i}`),X(e,`/api/consultants/reports/analytics-overview?date_from=${s}&date_to=${i}`),X(e,`/api/consultants/reports/sql-appointments?date_from=${s}&date_to=${i}`),X(e,`/api/consultants/reports/revenue-breakdown?date_from=${s}&date_to=${i}`),X(e,`/api/marketing/reports/leads?date_from=${s}&date_to=${i}`),X(e,"/api/marketing/reports/dashboard",{query:{date_from:s,date_to:i,channel:"overview"}})]),j=ie(d.data),de=ie(u.data),w=ie(g.data),R=ie(f.data),Y=ie(k.data),se=ie(A.data),E=ie(F.data),Q=ie(N.data),ue=T.httpFailed?null:T.data;(d.httpFailed||me(j))&&p.push(j?.error||"Estatísticas de usuários indisponíveis; alguns indicadores podem estar zerados."),(u.httpFailed||me(de))&&p.push(de?.error||"Estatísticas de anúncios indisponíveis; alguns indicadores podem estar zerados."),(g.httpFailed||me(w))&&p.push(w?.error||"Painel estendido de KPIs indisponível; funis de compradores/vendedores podem estar zerados.");const ce=f.httpFailed||me(R);ce&&p.push(R?.error||"Investimento em marketing indisponível (GA4 ou Meta). Valores de investimento podem estar incompletos.");const O=k.httpFailed||me(Y);if(O&&p.push(Y?.error||"Acessos únicos (GA4) indisponíveis. Tráfego do site pode não aparecer neste período."),(A.httpFailed||me(se))&&p.push(se?.error||"SQLs / reuniões agendadas indisponíveis."),(F.httpFailed||me(E))&&p.push(E?.error||"Receita MeuBiz indisponível para o período."),(N.httpFailed||Q&&Q.done===!1)&&p.push(Q?.error||"Leads de campanha indisponíveis."),T.httpFailed&&p.push("Dashboard de marketing indisponível; funil Marketing→SQL pode estar vazio."),!(j?.done&&j.statistics||w?.done&&w.statistics||E?.done&&E.total!=null))throw new Error(p.join(" ")||"Não foi possível carregar os dados principais dos KPIs.");const z=j?.statistics?.period_statistics??{},W=w?.statistics??{},oe=W.buyerFunnel??{},q=W.brokerFunnel??{},ne=W.sellerFunnel??{},h=E?.newSalesThisMonth??{};return{warnings:p,snapshot:{marketingInvested:H(R?.investedBrl),googleAdsCost:H(R?.googleAdsCostFromGa4),metaSpend:H(R?.metaSpendFromDb),activeUsers:Number(Y?.activeUsers)||0,pageviews:Number(Y?.pageviews)||0,sessions:Number(Y?.sessions)||0,marketingLeadsTotal:Number(Q?.leads?.total)||0,leadsDistinctUsers:Number(W.leadsDistinctUsers)||0,activeApprovedAds:Number(W.activeApprovedAds)||0,sqlAppointments:Number(se?.count)||0,buyerFunnel:{newBuyers:Number(oe.newBuyers)||0,conversationsStarted:Number(oe.conversationsStarted)||0,conversationsResponded:Number(oe.conversationsResponded)||0,conversationsNotResponded:Number(oe.conversationsNotResponded)||0,cohort:it(oe)},brokerFunnel:{newBrokers:Number(q.newBrokers)||0,conversationsStarted:Number(q.conversationsStarted)||0,conversationsResponded:Number(q.conversationsResponded)||0,conversationsNotResponded:Number(q.conversationsNotResponded)||0,cohort:it(q)},sellerFunnel:{newSellers:Number(ne.newSellers)||0,freeListingsCreated:Number(ne.freeListingsCreated)||0,paidListingsCreated:Number(ne.paidListingsCreated)||0,cohort:nl(ne)},periodUsers:{newSellers:Number(z.new_sellers)||0,newBrokers:Number(z.new_brokers)||0,messagesSent:Number(z.messages_sent)||0,conversationsStartedCreatedInPeriod:Number(z.conversations_started_created_in_period)||0,conversationsReadCreatedInPeriod:Number(z.conversations_read_created_in_period)||0,conversationsReadNotRepliedCreatedInPeriod:Number(z.conversations_read_not_replied_created_in_period)||0,conversationsRepliedCreatedInPeriod:Number(z.conversations_replied_created_in_period)||0},revenue:{total:H(E?.total),recurringReceived:H(E?.recurringReceived),newSalesThisMonth:{monthlySubscription:H(h.monthlySubscription),homepageBoost:H(h.homepageBoost),emailBoost:H(h.emailBoost),socialBoost:H(h.socialBoost),semiannualPlan:H(h.semiannualPlan),oneTimeMonthlyPlan:H(h.oneTimeMonthlyPlan),valuation:H(h.valuation)}},revenuePaymentEntries:Array.isArray(E?.revenuePaymentEntries)?E.revenuePaymentEntries.map(ts):[],marketingDashboard:ue,analyticsFetchFailed:O,marketingInvestedFetchFailed:ce}}}function ll(e){const t=$fetch,s=D(null),i=D(null),l=D(!1),m=D(null),p=D([]);async function d(){if(l.value)return;const g=Re(e);if(!g?.date_from||!g?.date_to){s.value=null,i.value=null,p.value=[];return}l.value=!0,m.value=null,p.value=[];try{const f={date_from:g.date_from,date_to:g.date_to,baseline_date:g.baseline_date},k=await dt(t,f),A=[...k.warnings];let F=null;if(g.compare_mode!=="none"&&g.compare_date_from&&g.compare_date_to){const j=await dt(t,{date_from:g.compare_date_from,date_to:g.compare_date_to,baseline_date:g.baseline_date});F=j.snapshot,A.push(...j.warnings)}s.value={period:k.snapshot,compare:F};const N=yt("this_year",!0),T=await X(t,"/api/marketing/reports/dashboard",{query:{date_from:N.start,date_to:N.end,channel:"overview"}});i.value=T.httpFailed?null:T.data,p.value=[...new Set(A)]}catch(f){s.value=null,m.value=f instanceof Error?f.message:"Falha ao carregar KPIs."}finally{l.value=!1}}Ee(()=>Re(e),d,{deep:!0,immediate:!0});const u=L(()=>
1{if(!s.value)return null;const g=Re(e);return Ls(s.value,g?.date_to??"",i.value)});return{snapshot:s,viewModel:u,loading:l,error:m,warnings:p,refresh:d,computePreviousPeriod:we}}const il={class:"min-h-screen bg-slate-100"},dl={class:"grid grid-cols-1 lg:grid-cols-[240px_minmax(0,1fr)] lg:items-start"},ul={class:"min-w-0 px-4 py-6 lg:px-6 lg:py-8"},cl={class:"mx-auto max-w-[1160px] space-y-5"},ml={class:"flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between"},pl={class:"text-2xl font-bold text-[#09133a]"},bl={key:0,class:"font-semibold text-gray-500"},gl={class:"flex shrink-0 flex-col items-end gap-2"},vl={key:0,class:"text-xs text-gray-500"},yl={key:0,class:"flex flex-col gap-3 rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700 sm:flex-row sm:items-center sm:justify-between"},fl={key:1,class:"rounded-lg border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-900"},hl={class:"mt-2 list-disc space-y-1 pl-5"},xl={"aria-labelledby":"kpi-overview-cards-heading"},_l={class:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-6"},kl={class:"grid gap-4 lg:grid-cols-2"},wl={class:"grid gap-4 lg:grid-cols-2"},Cl={key:0,class:"min-w-0"},$l={key:1,class:"flex min-h-[200px] items-center justify-center rounded-xl border border-dashed border-gray-200 bg-white p-6 text-center text-sm text-gray-500"},Ll={class:"grid gap-4 lg:grid-cols-3"},Sl={class:"space-y-8"},Al={key:0,class:"min-w-0"},Pl={key:1,class:"space-y-3","aria-busy":"true"},Rl={key:2},Bl={class:"mb-1 text-sm font-bold text-[#09133a]"},Fl={class:"rounded-lg border border-slate-200 bg-white p-3"},Ml={class:"grid gap-4 lg:grid-cols-2"},Nl={class:"flex flex-col gap-2 py-4"},El={class:"text-sm font-bold text-[#09133a]"},Tl={class:"mb-3 mt-1 text-xs text-gray-500"},Vl={key:1,class:"flex flex-col gap-2 py-4","aria-busy":"true"},Il={key:2,class:"py-6 text-center text-sm text-gray-500"},Dl={class:"space-y-6"},Ol={class:"mb-2 text-sm font-semibold text-[#1A8FA3]"},Fe="Não foi possível carregar o investimento do Google Ads (GA4). Os valores exibidos podem estar incompletos.",Kl="Não foi possível carregar acessos únicos via GA4. O card pode exibir zero neste período.",Ul="são excluídas das métricas de cadastros, leads, anúncios, conversas e mensagens.",si=U({__name:"kpis",setup(e){const t=["#182247","#1A8FA3","#2FA6BC","#0D9488"],s=[{value:"new_era",label:"Era Buyco (desde mar/2024)"},{value:"all",label:"Desde o início"}],i=[{value:"previous",label:"Período anterior (mesma duração)"},{value:"previous_week",label:"Mesmo período na semana anterior"},{value:"previous_month",label:"Mesmo período no mês anterior"},{value:"previous_quarter",label:"Mesmo período no trimestre anterior"},{value:"yoy",label:"Mesmo período no ano anterior"},{value:"yoy_2",label:"Mesmo período há 2 anos"},{value:"previous_calendar_month",label:"Mesmo mês no ano anterior"},{value:"custom",label:"Avançado"},{value:"none",label:"Sem comparativo"}],l=[100,86,72,58,46];function m(){return yt("this_month",!0)}function p(_){return{start:_.start,end:_.end,preset:"fixed",includeToday:!0}}const d=D(m()),u=D("new_era"),g=D("previous"),f=D(p(we(d.value.start,d.value.end))),k=L(()=>{const{start:_,end:b}=d.value;switch(g.value){case"none":return null;case"custom":return{start:f.value.start,end:f.value.end};case"previous_week":return ds(_,b);case"previous_month":return ls(_,b);case"previous_calendar_month":return us(_);case"previous_quarter":return is(_,b);case"yoy":return Ye(_,b);case"yoy_2":return Ye(_,b,2);default:return we(_,b)}}),A=L(()=>{switch(g.value){case"previous_week":return"Semana anterior";case"previous_month":return"Mês anterior";case"previous_calendar_month":return"Mês calendário";case"previous_quarter":return"Trimestre anterior";case"yoy":return"Ano anterior";case"yoy_2":return"Há 2 anos";case"custom":return"Comparativo";case"previous":return"Período anterior";default:return"Período comparativo"}}),F=L(()=>g.value==="custom");Ee(g,(_,b)=>{_!=="custom"||b==="custom"||(f.value=p(we(d.value.start,d.value.end)))});const N=L(()=>Ge(d.value)),T=L(()=>k.value?Ge(k.value):""),j=L(()=>({date_from:d.value.start,date_to:d.value.end,baseline_date:rl[u.value],compare_mode:g.value,compare_date_from:k.value?.start,compare_date_to:k.value?.end}
1)),{snapshot:de,viewModel:w,loading:R,error:Y,warnings:se,refresh:E}=ll(j),Q=D(null);Ee(()=>w.value,_=>{_&&!R.value&&(Q.value=new Date)});const ue=L(()=>Q.value?Q.value.toLocaleString("pt-BR",{timeZone:"America/Sao_Paulo",day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"}):null),ce=L(()=>(w.value?.revenueDetails??[]).find(Z=>Z.label.includes("parcelas recorrentes"))?.value??0),O=L(()=>g.value!=="none"),ve=L(()=>w.value?.statGroups.filter(_=>_.id!=="receita")??[]),z=L(()=>w.value?.revenueSection!=null||R.value),W=L(()=>w.value?.ga4FetchFailed===!0),oe=L(()=>w.value?.analyticsFetchFailed===!0),q=L(()=>{const _=w.value?.annualTrends;return!_||_.points.length===0?{labels:[],datasets:[]}:{labels:_.points.map(b=>b.label),datasets:[{label:"Leads",type:"bar",yAxisID:"y1",data:_.points.map(b=>b.leads),borderWidth:0,pointRadius:0},{label:"MQLs",type:"bar",yAxisID:"y1",data:_.points.map(b=>b.mqls),borderWidth:0,pointRadius:0},{label:"SQLs",type:"bar",yAxisID:"y1",data:_.points.map(b=>b.sqls),borderWidth:0,pointRadius:0},{label:"Investimento",type:"line",yAxisID:"y",data:_.points.map(b=>b.investment),borderWidth:2,pointRadius:0}]}});function ne(_){if(_<=0)return 10;const b=_*1.1,Z=10**Math.floor(Math.log10(b)),S=b/Z;let v;return S<=1?v=1:S<=2?v=2:S<=5?v=5:v=10,v*Z}const h=L(()=>{const _=q.value.datasets.filter(v=>v.yAxisID==="y1").flatMap(v=>v.data),b=q.value.datasets.filter(v=>v.yAxisID==="y").flatMap(v=>v.data),Z=ne(Math.max(0,..._)),S=ne(Math.max(0,...b));return{layout:{padding:{top:2,right:8,bottom:0,left:0}},plugins:{legend:{labels:{color:"#182247",boxWidth:16,boxHeight:8}}},scales:{x:{ticks:{color:"#182247",maxRotation:0},grid:{display:!1}},y:{position:"left",min:0,max:S,ticks:{color:"#182247",callback(v){return Number(v).toLocaleString("pt-BR",{style:"currency",currency:"BRL",maximumFractionDigits:0})}},grid:{color:"rgba(31, 41, 55, 0.15)"}},y1:{position:"right",min:0,max:Z,ticks:{color:"#182247",callback(v){return Number(v).toLocaleString("pt-BR")}},grid:{drawOnChartArea:!1,display:!1}}}}}),y=D(!1);function V(_){return _.toLocaleString("pt-BR",{style:"currency",currency:"BRL",maximumFractionDigits:0})}function G(){if(!(R.value||y.value||!de.value||!w.value)){y.value=!0;try{const{headers:_,rows:b}=Ft({snapshot:de.value,viewModel:w.value,periodLabel:N.value,compareLabel:T.value||void 0});ra({headers:_,rows:b,filename:Mt(d.value.start,d.value.end)})}finally{y.value=!1}}}return(_,b)=>{const Z=le,S=ut;return o(),n("div",il,[a("div",dl,[$(hn,{period:r(d),"onUpdate:period":b[0]||(b[0]=v=>ke(d)?d.value=v:null),"compare-mode":r(g),"onUpdate:compareMode":b[1]||(b[1]=v=>ke(g)?g.value=v:null),"custom-compare-period":r(f),"onUpdate:customComparePeriod":b[2]||(b[2]=v=>ke(f)?f.value=v:null),"baseline-era":r(u),"onUpdate:baselineEra":b[3]||(b[3]=v=>ke(u)?u.value=v:null),"period-label":r(N),"compare-label":r(A),"compare-period-label":r(T),"compare-enabled":r(O),"show-custom-compare-picker":r(F),loading:r(R),"exporting-csv":r(y),"can-export":!!r(w),"annual-trends-year":r(w)?.annualTrends?.year,"compare-options":i,"baseline-options":s,onRefresh:b[4]||(b[4]=v=>r(E)()),onExport:G},null,8,["period","compare-mode","custom-compare-period","baseline-era","period-label","compare-label","compare-period-label","compare-enabled","show-custom-compare-picker","loading","exporting-csv","can-export","annual-trends-year"]),a("div",ul,[a("div",cl,[a("header",ml,[a("div",null,[a("h1",pl,[b[9]||(b[9]=M(" Visão geral ",-1)),r(N)?(o(),n("span",bl,c(r(N)),1)):x("",!0)]),b[10]||(b[10]=a("p",{class:"mt-1 max-w-2xl text-sm text-gray-600"}," Acompanhe os principais indicadores e o desempenho da plataforma MeuBiZ. ",-1))]),a("div",gl,[r(ue)?(o(),n("p",vl," Atualizado em: "+c(r(ue)),1)):x("",!0),$(S,{to:"/marketing/dashboard/goals",class:"inline-flex items-center gap-2 rounded-lg border border-[#2FA6BC] bg-white px-4 py-2 text-sm font-semibold text-[#1A8FA3] transition-colors hover:bg-cyan-50"},{default:ee(()=>[$(Z,{class:"size-4 fill-[#1A8FA3]",path:r(Oe)},null,8,["path"]),b[11]||(b[11]=M(" Ver metas ",-1))]),_:1})])]),r(Y)?(o(),n("div",yl,[a("span",null,c(r(Y)),1),a("button",{type:"button",class:"inline-flex shrink-0 items-center justify-center rounded-md bg-red-600 px-3 py-1.5 text-sm font-medium text-white hover:bg-red-700",onClick:b[5]||(b[5]=v=>r(E)())}," Tentar novamente ")])):r(se).length>0?(o(),n("div",fl,[b[12]||(b[12]=a("p",{class:"font-semibold"},"Alguns dados não puderam ser carregados",-1)),a("ul",hl,[(o(!0),n(C,null,P(r(se),(v,J)=>(o(),n("li",{key:J},c(v),1))),128))])])):x("",!0),a("p",{class:"text-xs text-gray-500"},[b[13]||(b[13]=M(" Contas com e-mail ",-1)),b[14]||(b[14]=a("span",{class:"font-medium text-gray-600"},"@buyco.com.br",-1)),M(" "+c(Ul))]),a("section",xl,[b[15]||(b[15]=a("h2",{id:"kpi-overview-cards-heading",class:"sr-only"}," Indicadores principais ",-1)),a("div",_l,[r(R)&&!r(w)?(o(),n(C,{key:0},P(6,v=>
1$(tt,{key:`skeleton-top-${v}`,title:"",value:0,"icon-index":v-1,loading:""},null,8,["icon-index"])),64)):(o(!0),n(C,{key:1},P(r(w)?.topCards??[],(v,J)=>(o(),n("div",{key:v.key},[$(Pe,{active:r(W)&&v.key==="investment"||r(oe)&&v.key==="unique_users",message:v.key==="unique_users"?Kl:Fe,loading:r(R),onRetry:b[6]||(b[6]=xe=>r(E)())},{default:ee(()=>[$(tt,{title:v.title,value:v.value,"previous-value":v.previousValue,"expected-value":v.expectedValue,"goal-progress-pct":v.goalProgressPct,"goal-status":v.goalStatus,prefix:v.prefix,footnote:v.footnote,badge:v.badge,icon:v.icon,"icon-index":J,"compare-enabled":r(O),"compare-label":r(A),loading:r(R)},null,8,["title","value","previous-value","expected-value","goal-progress-pct","goal-status","prefix","footnote","badge","icon","icon-index","compare-enabled","compare-label","loading"])]),_:2},1032,["active","message","loading"])]))),128))])]),$(Ws,{insights:r(w)?.insights??[],loading:r(R)&&!r(w)},null,8,["insights","loading"]),a("div",kl,[r(R)&&!r(w)?.primaryFunnels?.length?(o(),n(C,{key:0},P(2,v=>a("div",{key:`funnel-sk-${v}`,class:"h-72 animate-pulse rounded-xl bg-gray-200","aria-busy":"true"})),64)):x("",!0),(o(!0),n(C,null,P(r(w)?.primaryFunnels??[],v=>(o(),K(Ds,{key:v.id,funnel:v,"compare-enabled":r(O),"compare-label":r(A),loading:r(R)},null,8,["funnel","compare-enabled","compare-label","loading"]))),128))]),a("div",wl,[r(z)?(o(),n("div",Cl,[$(lt,{section:r(w)?.revenueSection??null,"compare-enabled":r(O),"compare-label":r(A),"compare-period-label":r(T),"format-currency":V,"period-label":r(N),"recurring-value":r(ce),variant:"overview",compact:"",loading:r(R)},null,8,["section","compare-enabled","compare-label","compare-period-label","period-label","recurring-value","loading"])])):(o(),n("div",$l," Sem receita no período. ")),$(en,{ads:r(w)?.adsOverview??null,"compare-enabled":r(O),"compare-label":r(A),loading:r(R)&&!r(w)},null,8,["ads","compare-enabled","compare-label","loading"])]),a("div",Ll,[$(Pe,{active:r(W),message:Fe,loading:r(R),onRetry:b[7]||(b[7]=v=>r(E)())},{default:ee(()=>[$(Ca,{funnel:r(w)?.advisoryFunnel??null,loading:r(R)&&!r(w)},null,8,["funnel","loading"])]),_:1},8,["active","loading"]),$(Da,{rows:r(w)?.annualGoals??[],year:r(w)?.annualTrends?.year,loading:r(R)&&!r(w)},null,8,["rows","year","loading"]),$(ho,{items:r(w)?.monthSummary??[],"compare-enabled":r(O),"compare-label":r(A),"period-label":r(N),loading:r(R)&&!r(w)},null,8,["items","compare-enabled","compare-label","period-label","loading"])]),$(es,{focus:r(w)?.focusInsight??null},null,8,["focus"]),$(Ya,{title:"Detalhes adicionais",description:"Tendência anual, receita detalhada, outros funis e indicadores por tema","default-open":!1},{default:ee(()=>[a("div",Sl,[r(z)?(o(),n("div",Al,[b[16]||(b[16]=a("h3",{class:"mb-3 text-sm font-bold text-[#09133a]"}," Receita detalhada ",-1)),$(lt,{section:r(w)?.revenueSection??null,"compare-enabled":r(O),"compare-label":r(A),"compare-period-label":r(T),"format-currency":V,"period-label":r(N),variant:"full",loading:r(R)},null,8,["section","compare-enabled","compare-label","compare-period-label","period-label","loading"])])):x("",!0),r(R)?(o(),n("div",Pl,[...b[17]||(b[17]=[a("div",{class:"h-5 w-48 animate-pulse rounded bg-gray-200"},null,-1),a("div",{class:"h-[300px] animate-pulse rounded-lg bg-gray-200"},null,-1)])])):r(q).labels.length>0?(o(),n("div",Rl,[a("h3",Bl," Tendência anual ("+c(r(w)?.annualTrends?.year)+") ",1),b[18]||(b[18]=a("p",{class:"mb-3 text-xs text-gray-500"}," Linha: investimento (eixo esquerdo). Barras: leads, MQLs e SQLs por mês (eixo direito). ",-1)),a("div",Fl,[$(Me,{type:"bar",labels:r(q).labels,datasets:r(q).datasets,options:r(h),colors:t,"flat-color":"",responsive:"","multi-axis":"",money:"","set-height":300,"bar-thickness":14,"line-tension":0,"legend-font-size":12,"tick-font-size":10},null,8,["labels","datasets","options"])])])):x("",!0),a("div",null,[b[20]||(b[20]=a("h3",{class:"mb-3 text-sm font-bold text-[#09133a]"}," Outros funis ",-1)),a("div",Ml,[r(R)&&!r(w)?.secondaryFunnels?.length?(o(),n(C,{key:0},P(3,v=>a("div",{key:`sec-funnel-sk-${v}`,class:"rounded-lg border border-gray-100 bg-white p-4","aria-busy":"true"},[b[19]||(b[19]=a("div",{class:"mb-3 h-4 w-40 animate-pulse rounded bg-gray-200"},null,-1)),a("div",Nl,[(o(),n(C,null,P(l,(J,xe)=>a("div",{key:xe,class:"mx-auto h-10 animate-pulse rounded-md bg-gray-200",style:I({width:`${J}%`})},null,4)),64))])])),64)):x("",!0),(o(!0),n(C,null,P(r(w)?.secondaryFunnels??[],v=>(o(),n("div",{key:v.id,class:"rounded-lg border border-gray-100 bg-white p-4"}
1,[a("h4",El,c(v.title),1),a("p",Tl,c(v.description),1),$(Pe,{active:r(W)&&v.id==="marketing-sql",message:Fe,loading:r(R),onRetry:b[8]||(b[8]=J=>r(E)())},{default:ee(()=>[!r(R)&&v.layers.length>0?(o(),K(vt,{key:0,layers:v.layers,orientation:"left",compact:""},null,8,["layers"])):r(R)?(o(),n("div",Vl,[(o(),n(C,null,P(l,(J,xe)=>a("div",{key:xe,class:"mx-auto h-10 animate-pulse rounded-md bg-gray-200",style:I({width:`${J}%`})},null,4)),64))])):(o(),n("p",Il," Sem dados para o período. "))]),_:2},1032,["active","loading"])]))),128))])]),a("div",null,[b[21]||(b[21]=a("h3",{class:"mb-1 text-sm font-bold text-[#09133a]"}," Indicadores do período ",-1)),b[22]||(b[22]=a("p",{class:"mb-3 text-xs text-gray-500"}," Detalhamento por tema, com comparativo lado a lado quando ativo. ",-1)),a("div",Dl,[r(R)?(o(),n(C,{key:0},P(3,v=>a("div",{key:`indicator-skeleton-${v}`,class:"h-48 animate-pulse rounded-xl bg-gray-200","aria-busy":"true"})),64)):(o(!0),n(C,{key:1},P(r(ve),v=>(o(),n("div",{key:v.id},[a("h4",Ol,c(v.title),1),$(uo,{indicators:v.indicators,"compare-enabled":r(O),"compare-label":r(A),"format-currency":V},null,8,["indicators","compare-enabled","compare-label"])]))),128))])])])]),_:1})])])])])}}});export{si 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.