1/* empty css *//* empty css *//* empty css *//* empty css */import{e as mt,u as xt}from"./DapnQ07H.js";import{x as r,u as e,bc as s,Q as bt,bQ as de,bV as ua,M as $e,cd as Ee,b as oe,bo as le,H as $,bO as t,bE as a,B as _,w as x,cu as Pe,v as se,bm as y,aq as pe,a_ as ie,bC as la,b7 as Ta,co as we,f as ht,cr as Ie,cs as ve,ci as Se,e as Oe,s as X,ba as ft,ai as Te,b4 as _t,aU as gt,_ as yt,cj as De,bt as Ue,D as Ma,cl as ia,cm as Je,az as da,aY as Ae,bW as wt,T as Ua,ct as ca,cf as $t,ae as pa,ck as Sa,b0 as kt}from"./BqRK_f-2.js";import{c as Za}from"./23MbjXQC.js";import{r as Ct}from"./Dp75NpWa.js";import{r as Re}from"./CeyAskHA.js";import{r as At}from"./DftyShu9.js";import{r as va}from"./DZurrT1J.js";import{r as ea}from"./Btsr2atu.js";import{E as aa}from"./nlMPApAa.js";import{a as B}from"./DOcBdUHk.js";import{u as Xa}from"./BeP0OkF7.js";import{D as Ea}from"./BbfztX2Y.js";import{M as Ya}from"./ss8uvVgk.js";import{r as qa}from"./S8O7PaZF.js";import{r as St}from"./2OXMBzXc.js";import{r as Me}from"./DJOCsDZD.js";import{r as et}from"./DrRyTEwt.js";import{S as It,r as Mt}from"./B6eQpfY6.js";import{u as Et,r as at}from"./Dyk25lj0.js";import{r as Pt}from"./DfV-pj4s.js";import{r as Qe}from"./xVg5lwfs.js";import{r as Ra}from"./CaIHQU6-.js";import{r as Lt}from"./DlnjRESJ.js";import{r as tt}from"./Cd9l05fp.js";import{_ as ot}from"./DlAUqK2U.js";import{a as Fa,d as Oa,c as jt,_ as Dt,b as Tt,M as za}from"./Dwf-CZRD.js";import{r as Pa}from"./DaYM8LIK.js";import{r as Ba}from"./FESaaFjj.js";import{r as Ka}from"./kq5ZvVDH.js";import{r as Wa}from"./DNO3fWYc.js";import{r as Ne}from"./lqZkYAQv.js";import{r as st}from"./BGTLcZJP.js";import{r as rt}from"./PBZ4GN-F.js";import{r as nt}from"./BFYdUNtr.js";import{r as lt}from"./DhUCiZUx.js";import{r as it}from"./Dc3RQwAi.js";import{r as Ut}from"./BF_1rTWq.js";import{r as Na}from"./Bozzgdra.js";import{r as Rt}from"./DRNw6N3p.js";import{r as Nt}from"./PYv6ZgKr.js";import{P as Vt}from"./B13zbBVQ.js";import{r as qt}from"./Nma_Rhoa.js";import{r as Ga}from"./C0DHa5wP.js";import{r as Ft}from"./Bag7YVPS.js";import{u as Ot}from"./DyTmvOMJ.js";
1import"./BhFJ2G4y.js";import"./e5v6qK9R.js";import"./DXek99um.js";import"./Ciw6P5tU.js";import"./rJurE3b8.js";/* empty css */function Ye(n,p){return s(),r("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"})])}function La(n,p){return s(),r("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h1.5C5.496 19.5 6 18.996 6 18.375m-3.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-1.5A1.125 1.125 0 0 1 18 18.375M20.625 4.5H3.375m17.25 0c.621 0 1.125.504 1.125 1.125M20.625 4.5h-1.5C18.504 4.5 18 5.004 18 5.625m3.75 0v1.5c0 .621-.504 1.125-1.125 1.125M3.375 4.5c-.621 0-1.125.504-1.125 1.125M3.375 4.5h1.5C5.496 4.5 6 5.004 6 5.625m-3.75 0v1.5c0 .621.504 1.125 1.125 1.125m0 0h1.5m-1.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m1.5-3.75C5.496 8.25 6 7.746 6 7.125v-1.5M4.875 8.25C5.496 8.25 6 8.754 6 9.375v1.5m0-5.25v5.25m0-5.25C6 5.004 6.504 4.5 7.125 4.5h9.75c.621 0 1.125.504 1.125 1.125m1.125 2.625h1.5m-1.5 0A1.125 1.125 0 0 1 18 7.125v-1.5m1.125 2.625c-.621 0-1.125.504-1.125 1.125v1.5m2.625-2.625c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125M18 5.625v5.25M7.125 12h9.75m-9.75 0A1.125 1.125 0 0 1 6 10.875M7.125 12C6.504 12 6 12.504 6 13.125m0-2.25C6 11.496 5.496 12 4.875 12M18 10.875c0 .621-.504 1.125-1.125 1.125M18 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m-12 5.25v-5.25m0 5.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125m-12 0v-1.5c0-.621-.504-1.125-1.125-1.125M18 18.375v-5.25m0 5.25v-1.5c0-.621.504-1.125 1.125-1.125M18 13.125v1.5c0 .621.504 1.125 1.125 1.125M18 13.125c0-.621.504-1.125 1.125-1.125M6 13.125v1.5c0 .621-.504 1.125-1.125 1.125M6 13.125C6 12.504 5.496 12 4.875 12m-1.5 0h1.5m-1.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M19.125 12h1.5m0 0c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h1.5m14.25 0h1.5"})])}function ja(n,p){return s(),r("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m9 9 10.5-3m0 6.553v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 1 1-.99-3.467l2.31-.66a2.25 2.25 0 0 0 1.632-2.163Zm0 0V2.25L9 5.25v10.303m0 0v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 0 1-.99-3.467l2.31-.66A2.25 2.25 0 0 0 9 15.553Z"})])}function Da(n,p){return s(),r("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.114 5.636a9 9 0 0 1 0 12.728M16.463 8.288a5.25 5.25 0 0 1 0 7.424M6.75 8.25l4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z"})])}function dt(n,p){return s(),r("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M16.5 8.25V6a2.25 2.25 0 0 0-2.25-2.25H6A2.25 2.25 0 0 0 3.75 6v8.25A2.25 2.25 0 0 0 6 16.5h2.25m8.25-8.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-7.5A2.25 2.25 0 0 1 8.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 0 0-2.25 2.25v6"})])}const Le=bt("disparos",{state:()=>({campanhas:[],campanhaAtual:null,contatos:[],linhasCampanha:[],isLoading:!1,isUploadingCSV:!1,isUploadingMidia:!1,isLoadingContatos:!1,isLoadingLinhas:!1,error:null,paginacao:null,paginacaoContatos:null,filtroStatusContatos:""}),actions:{_barbeariaId(){const n=ua().barbeariaSelecionada?.id;if(!n)throw new Error("Nenhuma barbearia selecionada");return n},async loadCampanhas(){const n=this._barbeariaId();this.isLoading=!0,this.error=null;try{const p=await de(`/disparo/campanhas?barbearia_id=${n}`,"GET");this.campanhas=Array.isArray(p)?p:[]}catch(p){this.error=p?.message||"Erro ao carregar campanhas de disparo",this.campanhas=[]}finally{this.isLoading=!1}},async loadCampanha(n,p){const o=this._barbeariaId(),d=!!p?.silent;d||(this.isLoading=!0),this.error=null;try{const b=await de(`/disparo/campanhas/${n}?barbearia_id=${o}`,"GET");this.campanhaAtual=b;const C=this.campanhas.findIndex(E=>E.id===n);return C!==-1&&(this.campanhas[C]=b),b}catch(b){return this.error=b?.message||"Erro ao carregar campanha",null}finally{d||(this.isLoading=!1)}},async createCampanha(n){const p=this._barbeariaId();this.error=null;try{const o=await de("/disparo/campanhas","POST",{...n,barbearia_id:p});return this.campanhas.unshift(o),o}catch(o){throw this.error=o?.message||"Erro ao criar campanha",o}},async updateCampanha(n,p){const o=this._barbeariaId();this.error=null;try{const d=await de(`/disparo/campanhas/${n}`,"PUT",{...p,barbearia_id:o}),b=this.campanhas.findIndex(C=>C.id===n);return b!==-1&&(this.campanhas[b]=d),this.campanhaAtual?.id===n&&(this.campanhaAtual=d),d}catch(d){throw this.error=d?.message||"Erro ao atualizar campanha",d}},async duplicarCampanha(n,p){const o=this._barbeariaId();this.error=null;try{const d={barbearia_id:o};p?.nome&&p.nome.trim()&&(d.nome=p.nome.trim().slice(0,255));const b=await de(`/disparo/campanhas/${n}/duplicar`,"POST",d),C=this.campanhas.findIndex(E=>E.id===b.campanha.id);return C===-1?this.campanhas.unshift(b.campanha):this.campanhas[C]=b.campanha,b}catch(d){throw this.error=d?.message||"Erro ao duplicar campanha",d}},async uploadCSV(n,p){const o=this._barbeariaId();this.isUploadingCSV=!0,this.error=null;try{const d=new FormData;d.append("arquivo",p),d.append("barbearia_id",o);const b=await de(`/disparo/campanhas/${n}/csv`,"POST",d);return await this.loadCampanha(n),b}catch(d){throw this.error=d?.message||"Erro ao fazer upload do CSV",d}finally{this.isUploadingCSV=!1}},async orcamentoCampanha(n){const p=this._barbeariaId();return await de(`/disparo/campanhas/${n}/orcamento?barbearia_id=${p}`,"GET")},async ativarCampanha(n,p){const o=this._barbeariaId();this.error=null;try{const d=await de(`/disparo/campanhas/${n}/ativar`,"POST",{barbearia_id:o,...p===void 0?{}:{risco_capacidade_assumido:p}});return this._atualizarNaLista(d),d}catch(d){throw this.error=d?.message||"Erro ao ativar campanha",d}},async pausarCampanha(n){const p=this._barbeariaId();this.error=null;try{const o=await de(`/disparo/campanhas/${n}/pausar`,"POST",{barbearia_id:p});return this._atualizarNaLista(o),o}catch(o){throw this.error=o?.message||"Erro ao pausar campanha",o}},async cancelarCampanha(n){const p=this._barbeariaId();this.error=null;try{const o=await de(`/disparo/campanhas/${n}/cancelar`,"POST",{barbearia_id:p});return this._atualizarNaLista(o),o}catch(o){throw this.error=o?.message||"Erro ao cancelar campanha",o}},async reiniciarEnviosCampanha(n){const p=this._barbeariaId();this.error=null;try{const o=await de(`/disparo/campanhas/${n}/reiniciar-envios`,"POST",{barbearia_id:p});return this._atualizarNaLista(o.campanha),o}catch(o){throw this.error=o?.message||"Erro ao reiniciar envios",o}},async reenviarTodasFalhas(n){const p=this._barbeariaId();return de(`/disparo/campanhas/${n}/contatos/reenviar-falhas`,"POST",{barbearia_id:p})},async reenviarFalhaContato(n,p,o){const d=this._barbeariaId();this.error=null;try{return await de(`/disparo/campanhas/${n}/contatos/${p}/reenviar-falha`,"POST",{barbearia_id:d,...o!=null?{passo_ordem:o}:{}})}catch(b){throw this.error=b?.message||"Erro ao reenviar contato",b}},async getMidiaUrl(n,p){const o=this._barbeariaId(),d=new URLSearchParams({barbearia_id:o,s3_key:p});return(await de(`/disparo/campanhas/${n}/midia/url?${d.toString()}`,"GET")).url},async loadContatoDetalhe(n,p){const o=this._barbeariaId(),d=new URLSearchParams({barbearia_id:o});return de(`/disparo/campanhas/${n}/contatos/${p}?${d.toString()}`,"GET")},async loadContatos(n,p=1,o=50,d="",b=""){const C=this._barbeariaId();this.isLoadingContatos=!0,this.error=null;try{const E=new URLSearchParams({barbearia_id:C,pagina:String(p),limite:String(o)});d&&E.append("status",d),b&&E.append("busca",b);const R=await de(`/disparo/campanhas/${n}/contatos?${E.toString()}`,"GET");this.contatos=R.contatos||[],this.paginacaoContatos={total:R.total,pagina:R.pagina,limite:R.limite,total_paginas:Math.ceil(R.total/R.limite)}}catch(E){this.error=E?.message||"Erro ao carregar contatos",this.contatos=[]}finally{this.isLoadingContatos=!1}},async loadMaisContatos(n,p="",o=""){if(this.isLoadingContatos)return;const d=this.paginacaoContatos;if(!d)return this.loadContatos(n,1,50,p,o);if(this.contatos.length>=d.total)return;const b=this._barbeariaId();this.isLoadingContatos=!0,this.error=null;try{const C=new URLSearchParams({barbearia_id:b,pagina:String(d.pagina+1),limite:String(d.limite)});p&&C.append("status",p),o&&C.append("busca",o);const E=await de(`/disparo/campanhas/${n}/contatos?${C.toString()}`,"GET"),R=new Set(this.contatos.map(z=>z.id)),w=(E.contatos||[]).filter(z=>!R.has(z.id));this.contatos=[...this.contatos,...w],this.paginacaoContatos={total:E.total,pagina:E.pagina,limite:E.limite,total_paginas:Math.ceil(E.total/E.limite)}}catch(C){this.error=C?.message||"Erro ao carregar mais contatos"}finally{this.isLoadingContatos=!1}},async uploadMidiaPresign(n,p,o){const d=this._barbeariaId();return await de(`/disparo/campanhas/${n}/midia/presign`,"POST",{content_type:p,content_length:o??void 0,barbearia_id:d})},async uploadArquivoComoMidia(n,p,o){this.isUploadingMidia=!0;try{const d=await this.uploadMidiaPresign(n,p.type,p.size),b=await fetch(d.upload_url,{method:"PUT",body:p,headers:{"Content-Type":p.type}});if(!b.ok)throw new Error(`Falha no upload da mÃdia (HTTP ${b.status})`);return{s3_key:d.s3_key,tipo:o,filename:p.name,caption:null}}finally{this.isUploadingMidia=!1}},async salvarMidia(n,p){const o=this._barbeariaId(),d=await de(`/disparo/campanhas/${n}`,"PUT",{...p,barbearia_id:o});return this._atualizarNaLista(d),d},async salvarFunilConfig(n,p){const o=this._barbeariaId(),d=await de(`/disparo/campanhas/${n}`,"PUT",{funil_config:p,barbearia_id:o});return this._atualizarNaLista(d),d},async adicionarContatosManuais(n,p){const o=this._barbeariaId(),d=await de(`/disparo/campanhas/${n}/contatos`,"POST",{contatos:p,barbearia_id:o});return await this.loadCampanha(n),d},async adicionarContatosDeMaquina(n,p){const o=this._barbeariaId(),d=await de(`/disparo/campanhas/${n}/contatos/maquina`,"POST",{maquina_id:p,barbearia_id:o});return await this.loadCampanha(n),d},async removerContatosCampanha(n,p){const o=this._barbeariaId(),d=p.filter(
1Boolean);if(d.length===0){const w=await this.loadCampanha(n,{silent:!0});return{removidos:0,ignorados:[],total_contatos:w?.total_contatos??0,campanha:w}}this.error=null;const b=500;let C=0;const E=[];let R=0;try{for(let z=0;z<d.length;z+=b){const F=d.slice(z,z+b),L=await de(`/disparo/campanhas/${n}/contatos/remover`,"POST",{barbearia_id:o,contato_ids:F});C+=L.removidos,L.ignorados?.length&&E.push(...L.ignorados),R=L.total_contatos}const w=await this.loadCampanha(n,{silent:!0});return w&&(R=w.total_contatos),{removidos:C,ignorados:E,total_contatos:R,campanha:w}}catch(w){throw this.error=w?.message||"Erro ao remover contatos",w}},_atualizarNaLista(n){const p=this.campanhas.findIndex(o=>o.id===n.id);p!==-1&&(this.campanhas[p]=n),this.campanhaAtual?.id===n.id&&(this.campanhaAtual=n)},limparCampanhaAtual(){this.campanhaAtual=null,this.contatos=[],this.linhasCampanha=[],this.paginacaoContatos=null},async loadLinhasCampanha(n){const p=this._barbeariaId();this.isLoadingLinhas=!0;try{const o=await de(`/disparo/campanhas/${n}/linhas?barbearia_id=${p}`,"GET");return this.linhasCampanha=Array.isArray(o)?o:[],this.linhasCampanha}catch(o){return this.error=o?.message||"Erro ao carregar linhas da campanha",this.linhasCampanha=[],[]}finally{this.isLoadingLinhas=!1}},async adicionarLinhaCampanha(n,p){const o=this._barbeariaId();try{const d=await de(`/disparo/campanhas/${n}/linhas`,"POST",{...p,barbearia_id:o});return this.linhasCampanha.push(d),d}catch(d){throw this.error=d?.message||"Erro ao adicionar linha",d}},async editarLinhaCampanha(n,p,o){const d=this._barbeariaId();try{const b=await de(`/disparo/campanhas/${n}/linhas/${p}`,"PATCH",{...o,barbearia_id:d}),C=this.linhasCampanha.findIndex(E=>E.id===p);return C!==-1&&(this.linhasCampanha[C]=b),b}catch(b){throw this.error=b?.message||"Erro ao editar linha",b}},async removerLinhaCampanha(n,p){const o=this._barbeariaId();try{await de(`/disparo/campanhas/${n}/linhas/${p}`,"DELETE",{barbearia_id:o}),this.linhasCampanha=this.linhasCampanha.filter(d=>d.id!==p)}catch(d){throw this.error=d?.message||"Erro ao remover linha",d}},async deletarCampanha(n){const p=this._barbeariaId();try{await de(`/disparo/campanhas/${n}`,"DELETE",{barbearia_id:p}),this.campanhas=this.campanhas.filter(o=>o.id!==n),this.campanhaAtual?.id===n&&(this.campanhaAtual=null,this.contatos=[],this.linhasCampanha=[])}catch(o){throw this.error=o?.message||"Erro ao excluir campanha",o}},async fetchCampanhaCronogramaDia(n,p){const o=this._barbeariaId(),d=p?.dia??new Date().toISOString().slice(0,10),b=p?.limit??200;return de(`/disparo/campanhas/${encodeURIComponent(n)}/cronograma?barbearia_id=${o}&dia=${encodeURIComponent(d)}&limit=${b}`,"GET")},async fetchChipsSaude(){const n=this._barbeariaId(),p=await de(`/disparo/chips/saude?barbearia_id=${n}`,"GET");return Array.isArray(p)?p:p&&Array.isArray(p.dados)?p.dados:[]},async fetchCampanhaProjecao(n){const p=this._barbeariaId();return de(`/disparo/campanhas/${encodeURIComponent(n)}/projecao?barbearia_id=${p}`,"GET")},async sugerirVariacoesTextoDisparo(n,p){const o=this._barbeariaId();return de(`/disparo/campanhas/${encodeURIComponent(n)}/sugerir-variar-texto`,"POST",{...p,barbearia_id:o})}}}),zt={class:"rounded-2xl border border-[var(--border)] bg-[var(--surface)] shadow-[var(--shadow)] dark:backdrop-blur-xl overflow-hidden"},Bt={key:0,class:"p-6 flex flex-col gap-3"},Kt={key:1,class:"flex flex-col items-center justify-center gap-4 py-16 px-6 text-center"},Wt={class:"w-14 h-14 rounded-2xl bg-[var(--surface-2)] flex items-center justify-center"},Gt={class:"font-bold text-[var(--text)]"},Ht={class:"text-sm text-[var(--muted)] mt-1"},Jt={key:2,class:"overflow-x-auto"},Qt={class:"w-full min-w-[700px]"},Zt={class:"border-b border-[var(--border)]"},Xt={class:"px-4 py-3 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Yt={class:"px-4 py-3 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},eo={class:"px-4 py-3 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},ao={class:"px-4 py-3 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},to={class:"px-4 py-3 text-right text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},oo={class:"px-4 py-3 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},so={class:"px-4 py-3 text-right text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},ro=["onClick"],no={class:"px-4 py-3"},lo={class:"flex items-center gap-2"},io={class:"font-semibold text-sm text-[var(--text)]"},co={key:0,class:"inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-bold bg-vi
1olet-500/12 text-violet-400 border border-violet-500/25"},uo={class:"px-4 py-3"},po={class:"px-4 py-3"},vo={class:"text-sm text-[var(--muted)] capitalize"},mo={class:"px-4 py-3"},xo={class:"text-sm text-[var(--muted)]"},bo={class:"px-4 py-3 text-right"},ho={class:"text-sm font-semibold text-[var(--text)] tabular-nums"},fo={class:"px-4 py-3 min-w-[120px]"},_o={class:"flex items-center justify-end gap-1"},go=["title","onClick"],yo=["title","disabled","onClick"],wo={key:0,class:"block h-4 w-4 border-2 border-[var(--accent)] border-t-transparent rounded-full animate-spin"},$o=["title","onClick"],ko=["disabled","title","onClick"],Co={key:0,class:"block w-4 h-4 border-2 border-red-500 border-t-transparent rounded-full animate-spin"},Ao=$e({__name:"DisparosCampanhaLista",props:{campanhas:{},isLoading:{type:Boolean},duplicandoId:{default:null}},emits:["nova-campanha","ver-detalhe","editar","duplicar"],setup(n){const{tn:p}=Ee(),o=n,d=Le(),b=y(null),C=async F=>{try{await aa.confirm(`Excluir permanentemente "${F.nome}"? Todos os contatos serão removidos junto.`,"Excluir campanha",{confirmButtonText:p("Sim, excluir"),cancelButtonText:p("Cancelar"),type:"warning",distinguishCancelAndClose:!0}),b.value=F.id,await d.deletarCampanha(F.id),B.success(p("Campanha excluÃda."))}catch(L){if(L==="cancel"||L==="close")return;B.error(L?.data?.message||L?.message||"Erro ao excluir campanha")}finally{b.value=null}},E={props:["status"],setup(F){const L={rascunho:{label:"Rascunho",classes:"bg-[var(--surface-2)] text-[var(--muted)] border border-[var(--border)]"},ativa:{label:"Ativa",classes:"bg-[var(--accent-soft)] text-[var(--accent)] border border-[var(--accent-ring)]"},pausada:{label:"Pausada",classes:"bg-amber-500/10 text-amber-500 border border-amber-500/25"},concluida:{label:p("ConcluÃda"),classes:"bg-emerald-500/10 text-emerald-500 border border-emerald-500/25"},cancelada:{label:"Cancelada",classes:"bg-red-500/10 text-red-500 border border-red-500/25"}};return()=>{const j=L[F.status]||L.rascunho;return pe("span",{class:`inline-flex items-center rounded-full px-2.5 py-1 text-[11px] font-bold ${j.classes}`},j.label)}}},R={props:["campanha"],setup(F){return()=>{const L=Za(F.campanha);return F.campanha.total_contatos===0&&L===0?pe("div",{class:"h-1.5 rounded-full bg-[var(--surface-2)]"}):pe("div",{class:"flex flex-col gap-1"},[pe("div",{class:"h-1.5 rounded-full bg-[var(--surface-2)] overflow-hidden"},[pe("div",{class:"h-full rounded-full bg-[var(--accent)] transition-all duration-500",style:{width:`${L}%`}})]),pe("span",{class:"text-[11px] text-[var(--subtle)] tabular-nums"},`${L}%`)])}}},w=F=>({lenta:"Lenta (10/h)",media:"Média (30/h)",rapida:"Rápida (60/h)",inteligente:"Inteligente"})[F]||F,z=F=>{if(!F)return"â";const[L,j,A]=F.split("T")[0].split("-");return`${A}/${j}/${L}`};return(F,L)=>(s(),r("div",zt,[n.isLoading?(s(),r("div",Bt,[(s(),r(oe,null,le(3,j=>e("div",{key:j,class:"h-14 rounded-xl bg-[var(--surface-2)] animate-pulse"})),64))])):n.campanhas.length===0?(s(),r("div",Kt,[e("div",Wt,[$(t(Ct),{class:"h-7 w-7 text-[var(--muted)]"})]),e("div",null,[e("p",Gt,a(t(p)("Nenhuma campanha ainda")),1),e("p",Ht,a(t(p)("Crie sua primeira campanha de disparo em massa")),1)]),e("button",{type:"button",class:"btn-primary-gradient inline-flex items-center gap-2 rounded-xl px-4 py-2 text-sm font-semibold transition duration-200",onClick:L[0]||(L[0]=j=>F.$emit("nova-campanha"))},[$(t(Re),{class:"h-4 w-4"}),_(" "+a(t(p)("Nova Campanha")),1)])])):(s(),r("div",Jt,[e("table",Qt,[e("thead",null,[e("tr",Zt,[e("th",Xt,a(t(p)("Nome")),1),e("th",Yt,a(t(p)("Status")),1),e("th",eo,a(t(p)("Velocidade")),1),e("th",ao,a(t(p)("PerÃodo")),1),e("th",to,a(t(p)("Contatos")),1),e("th",oo,a(t(p)("Progresso")),1),e("th",so,a(t(p)("Mais")),1)])]),e("tbody",null,[(s(!0),r(oe,null,le(n.campanhas,j=>(s(),r("tr",{key:j.id,class:"border-b border-[var(--border)] odd:bg-transparent even:bg-[rgba(255,255,255,0.03)] hover:bg-[var(--surface-2)] transition duration-150 cursor-pointer",onClick:A=>F.$emit("ver-detalhe",j)},[e("td",no,[e("div",lo,[e("span",io,a(j.nome),1),j.tipo==="funil"?(s(),r("span",co,a(t(p)("Funil")),1)):x("",!0)])]),e("td",uo,[$(E,{status:j.status},null,8,["status"])]),e("td",po,[e("span",vo,a(w(j.velocidade)),1)]),e("td",mo,[e("span",xo,a(z(j.data_inicio))+" â "+a(z(j.data_fim)),1)]),e("td",bo,[e("span",ho,a(j.total_contatos.toLocaleStr
1ing("pt-BR")),1)]),e("td",fo,[$(R,{campanha:j},null,8,["campanha"])]),e("td",{class:"px-4 py-3",onClick:L[1]||(L[1]=Pe(()=>{},["stop"]))},[e("div",_o,[e("button",{type:"button",class:"p-1.5 rounded-lg text-[var(--muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] transition duration-150",title:t(p)("Ver detalhes"),onClick:A=>F.$emit("ver-detalhe",j)},[$(t(At),{class:"h-4 w-4"})],8,go),e("button",{type:"button",class:"p-1.5 rounded-lg text-[var(--muted)] hover:text-[var(--accent)] hover:bg-[var(--surface-2)] transition duration-150 disabled:opacity-45 disabled:cursor-not-allowed",title:t(p)("Duplicar campanha (fluxos e linhas)"),disabled:o.duplicandoId===j.id,onClick:A=>F.$emit("duplicar",j)},[o.duplicandoId===j.id?(s(),r("span",wo)):(s(),se(t(dt),{key:1,class:"h-4 w-4"}))],8,yo),j.status==="rascunho"||j.status==="pausada"?(s(),r("button",{key:0,type:"button",class:"p-1.5 rounded-lg text-[var(--muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] transition duration-150",title:t(p)("Editar"),onClick:A=>F.$emit("editar",j)},[$(t(va),{class:"h-4 w-4"})],8,$o)):x("",!0),j.status==="rascunho"||j.status==="cancelada"?(s(),r("button",{key:1,type:"button",disabled:b.value===j.id,class:"p-1.5 rounded-lg text-red-500 hover:bg-red-500/10 disabled:opacity-45 disabled:cursor-not-allowed transition duration-150",title:t(p)("Excluir campanha"),onClick:A=>C(j)},[b.value===j.id?(s(),r("span",Co)):(s(),se(t(ea),{key:1,class:"h-4 w-4"}))],8,ko)):x("",!0)])])],8,ro))),128))])])]))]))}}),So=Object.assign(Ao,{__name:"DisparosCampanhaLista"}),Io={class:"flex flex-col gap-4"},Mo={class:"rounded-2xl border border-[var(--border)] bg-[var(--surface-2)] p-4 space-y-2.5"},Eo={class:"text-sm font-semibold text-[var(--text)]"},Po={class:"text-xs text-[var(--muted)]"},Lo={class:"flex flex-wrap items-end gap-2"},jo={class:"flex-1 min-w-[200px]"},Do=["disabled"],To={class:"w-10 h-10 rounded-xl bg-[var(--surface)] flex items-center justify-center"},Uo={key:0},Ro={class:"text-sm font-semibold text-[var(--text)]"},No={class:"text-xs text-[var(--muted)] mt-0.5"},Vo={key:1,class:"flex items-center gap-2"},qo={class:"text-sm font-semibold text-[var(--text)]"},Fo={class:"rounded-xl bg-[var(--surface-2)] border border-[var(--border)] px-3 py-2.5 text-xs text-[var(--muted)]"},Oo={class:"font-bold text-[var(--text)]"},zo={class:"font-bold text-[var(--text)]"},Bo={class:"font-semibold text-[var(--text)]"},Ko=["disabled"],Wo={key:0,class:"inline-block w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin"},Go={key:1,class:"flex flex-col gap-3"},Ho={class:"grid grid-cols-3 gap-3"},Jo={class:"rounded-xl bg-emerald-500/10 border border-emerald-500/25 p-3 text-center"},Qo={class:"text-xl font-extrabold text-emerald-500 tabular-nums"},Zo={class:"text-[11px] font-bold uppercase tracking-[0.06em] text-emerald-600 dark:text-emerald-400 mt-0.5"},Xo={class:"rounded-xl bg-amber-500/10 border border-amber-500/25 p-3 text-center"},Yo={class:"text-xl font-extrabold text-amber-500 tabular-nums"},es={class:"text-[11px] font-bold uppercase tracking-[0.06em] text-amber-600 dark:text-amber-400 mt-0.5"},as={class:"rounded-xl bg-red-500/10 border border-red-500/25 p-3 text-center"},ts={class:"text-xl font-extrabold text-red-500 tabular-nums"},os={class:"text-[11px] font-bold uppercase tracking-[0.06em] text-red-600 dark:text-red-400 mt-0.5"},ss={key:0,class:"rounded-xl border border-[var(--border)] overflow-hidden"},rs={key:0,class:"border-t border-[var(--border)]"},ns={class:"w-full text-xs"},ls={class:"border-b border-[var(--border)] bg-[var(--surface-2)]"},is={class:"px-4 py-2 text-left font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},ds={class:"px-4 py-2 text-left font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},cs={class:"px-4 py-2 text-left font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},us={class:"px-4 py-2 text-[var(--muted)] tabular-nums"},ps={class:"px-4 py-2 font-mono text-[var(--text)]"},vs={class:"px-4 py-2 text-[var(--muted)]"},ms={key:2,class:"text-sm text-red-500 font-medium"},xs=$e({__name:"DisparosUploadCSV",props:{campanhaId:{}},emits:["uploaded"],setup(n,{emit:p}){const{tn:o}=Ee(),d=n,b=p,C=Le(),E=y(null),R=y(null),w=y(!1),z=y(!1),F=y(null),L=y(!1),j=y(""),A=y(null),c=y(!1),P=async()=>
1{if(A.value){c.value=!0;try{const V=await C.adicionarContatosDeMaquina(d.campanhaId,A.value),M=[`${V.inseridos} adicionado(s)`];V.duplicatas&&M.push(`${V.duplicatas} já estavam`),V.sem_telefone&&M.push(`${V.sem_telefone} sem telefone`),B.success(`Público da máquina: ${M.join(" · ")}.`),A.value=null}catch(V){B.error(V?.data?.message||V?.message||"Erro ao adicionar o público da máquina")}finally{c.value=!1}}},H=V=>{const I=V.target.files?.[0];I&&(R.value=I,F.value=null,j.value="")},g=V=>{z.value=!1;const M=V.dataTransfer?.files?.[0];M&&M.name.endsWith(".csv")&&(R.value=M,F.value=null,j.value="")},N=async()=>{if(R.value){w.value=!0,j.value="";try{const V=await C.uploadCSV(d.campanhaId,R.value);F.value=V,b("uploaded",V)}catch(V){j.value=V?.data?.message||V?.message||"Erro ao enviar o CSV"}finally{w.value=!1}}};return(V,M)=>(s(),r("div",Io,[e("div",Mo,[e("div",null,[e("p",Eo,a(t(o)("Público de uma máquina")),1),e("p",Po,a(t(o)("Adiciona como destinatários todos os leads de uma máquina (intenção) que têm telefone. Duplicados são ignorados.")),1)]),e("div",Lo,[e("div",jo,[$(Ya,{modelValue:A.value,"onUpdate:modelValue":M[0]||(M[0]=I=>A.value=I)},null,8,["modelValue"])]),e("button",{type:"button",class:"rounded-xl px-4 py-2 text-sm font-semibold btn-primary-gradient transition disabled:opacity-45",disabled:!A.value||c.value,onClick:P},a(c.value?"Adicionandoâ¦":"Adicionar público"),9,Do)])]),e("div",{class:ie(["rounded-2xl border-2 border-dashed border-[var(--border)] bg-[var(--surface-2)] p-6 flex flex-col items-center gap-3 text-center transition duration-200",{"border-[var(--accent)] bg-[color-mix(in_srgb,var(--accent)_4%,transparent)]":z.value}]),onDragover:M[3]||(M[3]=Pe(I=>z.value=!0,["prevent"])),onDragleave:M[4]||(M[4]=I=>z.value=!1),onDrop:Pe(g,["prevent"])},[e("div",To,[$(t(qa),{class:"h-5 w-5 text-[var(--muted)]"})]),R.value?(s(),r("div",Vo,[$(t(St),{class:"h-4 w-4 text-[var(--accent)]"}),e("span",qo,a(R.value.name),1),e("button",{type:"button",class:"p-0.5 rounded text-[var(--subtle)] hover:text-red-500 transition",onClick:M[1]||(M[1]=Pe(I=>{R.value=null,F.value=null},["stop"]))},[$(t(Me),{class:"h-3.5 w-3.5"})])])):(s(),r("div",Uo,[e("p",Ro,a(t(o)("Arraste um arquivo CSV aqui")),1),e("p",No,a(t(o)("ou clique para selecionar")),1)])),e("input",{ref_key:"inputRef",ref:E,type:"file",accept:".csv",class:"hidden",onChange:H},null,544),e("button",{type:"button",class:"px-4 py-2 rounded-xl text-sm font-semibold border border-[var(--border)] text-[var(--text)] hover:bg-[var(--surface)] bg-transparent transition duration-200",onClick:M[2]||(M[2]=I=>E.value?.click())},a(t(o)("Escolher arquivo")),1)],34),e("div",Fo,[_(a(t(o)("O CSV deve ter colunas"))+" ",1),e("span",Oo,a(t(o)("Nome")),1),_(" "+a(t(o)("e"))+" ",1),e("span",zo,a(t(o)("Telefone")),1),_(a(t(o)(", separadas por"))+" ",1),M[6]||(M[6]=e("code",{class:"font-mono"},",",-1)),_(" "+a(t(o)("ou"))+" ",1),M[7]||(M[7]=e("code",{class:"font-mono"},";",-1)),_(a(t(o)(". Contatos já existentes são ignorados â o CSV"))+" ",1),e("span",Bo,a(t(o)("adiciona")),1),_(" "+a(t(o)("sem apagar nada.")),1)]),R.value?(s(),r("button",{key:0,type:"button",disabled:w.value,class:"btn-primary-gradient inline-flex items-center justify-center gap-2 w-full rounded-xl px-4 py-2.5 text-sm font-semibold disabled:opacity-45 disabled:cursor-not-allowed transition duration-200",onClick:N},[w.value?(s(),r("span",Wo)):(s(),se(t(qa),{key:1,class:"h-4 w-4"})),_(" "+a(w.value?"Enviando...":"Enviar CSV"),1)],8,Ko)):x("",!0),F.value?(s(),r("div",Go,[e("div",Ho,[e("div",Jo,[e("p",Qo,a(F.value.inseridos),1),e("p",Zo,a(t(o)("Inseridos")),1)]),e("div",Xo,[e("p",Yo,a(F.value.duplicatas),1),e("p",es,a(t(o)("Duplicatas")),1)]),e("div",as,[e("p",ts,a(F.value.invalidos.length),1),e("p",os,a(t(o)("Inválidos")),1)])]),F.value.invalidos.length>0?(s(),r("div",ss,[e("button",{type:"button",class:"w-full flex items-center justify-between px-4 py-3 text-sm font-semibold text-[var(--text)] hover:bg-[var(--surface-2)] transition duration-150",onClick:M[5]||(M[5]=I=>L.value=!L.value)}
1,[e("span",null,a(F.value.invalidos.length)+" "+a(t(o)("telefone(s) inválido(s)")),1),$(t(et),{class:ie(["h-4 w-4 text-[var(--muted)] transition-transform duration-200",{"rotate-180":L.value}])},null,8,["class"])]),L.value?(s(),r("div",rs,[e("table",ns,[e("thead",null,[e("tr",ls,[e("th",is,a(t(o)("Linha")),1),e("th",ds,a(t(o)("Valor")),1),e("th",cs,a(t(o)("Motivo")),1)])]),e("tbody",null,[(s(!0),r(oe,null,le(F.value.invalidos,I=>(s(),r("tr",{key:I.linha,class:"border-b border-[var(--border)] last:border-0"},[e("td",us,a(I.linha),1),e("td",ps,a(I.raw),1),e("td",vs,a(I.motivo),1)]))),128))])])])):x("",!0)])):x("",!0)])):x("",!0),j.value?(s(),r("p",ms,a(j.value),1)):x("",!0)]))}}),ct=Object.assign(xs,{__name:"DisparosUploadCSV"}),bs={class:"space-y-3"},hs={class:"flex items-center justify-between"},fs={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},_s={class:"text-xs text-[var(--subtle)] mt-0.5"},gs={class:"inline-flex items-center rounded-full px-2.5 py-1 text-[11px] font-bold bg-[var(--surface-2)] border border-[var(--border)] text-[var(--muted)]"},ys={key:0,class:"space-y-2"},ws={class:"flex items-start gap-3"},$s={class:"flex-shrink-0 w-7 h-7 rounded-full bg-[var(--surface-2)] border border-[var(--border)] flex items-center justify-center"},ks={class:"text-[11px] font-bold text-[var(--muted)]"},Cs={class:"flex-1 min-w-0"},As={class:"flex items-center gap-2 flex-wrap"},Ss={class:"text-sm font-semibold text-[var(--text)] truncate"},Is={key:0,class:"text-xs text-[var(--muted)] mt-0.5"},Ms={class:"flex items-center gap-3 mt-2 flex-wrap"},Es={class:"flex items-center gap-1.5"},Ps={value:null},Ls=["value"],js={key:1,class:"text-xs text-[var(--muted)]"},Ds={class:"flex items-center gap-1.5"},Ts={class:"flex items-center gap-1 flex-shrink-0"},Us=["disabled","onClick"],Rs=["onClick","title"],Ns=["disabled","onClick","title"],Vs={key:0,class:"rounded-2xl border border-dashed border-[var(--border)] bg-[var(--surface-2)]/40 p-6 text-center"},qs={class:"text-sm font-semibold text-[var(--muted)]"},Fs={class:"text-xs text-[var(--subtle)] mt-1"},Os={key:0,class:"rounded-2xl border border-[var(--accent)]/30 bg-[var(--surface)] p-4 space-y-3"},zs={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--accent)]"},Bs={class:"space-y-1"},Ks={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Ws={value:""},Gs=["value","disabled"],Hs={key:0,class:"text-xs text-amber-500"},Js={class:"space-y-1"},Qs={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Zs={value:null},Xs=["value"],Ys={class:"flex items-center justify-between py-1"},er={class:"text-sm font-semibold text-[var(--text)]"},ar={class:"text-xs text-[var(--muted)]"},tr={class:"flex gap-2 pt-1"},or=["disabled"],sr={key:2,class:"text-xs text-[var(--muted)] flex items-center gap-1.5"},rr=$e({__name:"DisparosLinhasCampanha",props:{campanhaId:{},campanhaStatus:{},readonly:{type:Boolean,default:!1}},setup(n){const{tn:p}=Ee(),o=n,d=Le(),b=Xa(),{linhasDisparo:C,buscarLista:E}=Et(),R=ua(),{linhasCampanha:w,isLoadingLinhas:z}=la(d),{flows:F}=la(b),L=y(!1),j=y(!1),A=y(null),c=y(null),P=y(!1),H=y({whatsapp_conexao_id:"",flow_id:null,ia_ativa:!1}),g=y({flow_id:null,ia_ativa:!1}),N=X(()=>[...w.value].sort((Q,Y)=>Q.ordem-Y.ordem)),V=X(()=>F.value.filter(Q=>Q.active)),M=X(()=>C.value),I=X(()=>o.campanhaStatus==="rascunho"||o.campanhaStatus==="pausada"),K=X(()=>o.campanhaStatus==="rascunho"||o.campanhaStatus==="pausada"),te=Q=>w.value.some(Y=>Y.whatsapp_conexao_id===Q),xe=Q=>{if(!Q)return"";if(Q.startsWith("55")&&Q.length===13){const Y=Q.substring(2,4),ye=Q.substring(4,9),J=Q.substring(9);return`+55 (${Y}) ${ye}-${J}`}return`+${Q}`},l=Q=>({conectado:"conectado",desconectado:"desconectado",conectando:"conectando",qr_code_gerado:"aguardando QR",erro:"erro"})[Q]||Q,ue=async()=>{if(H.value.whatsapp_conexao_id){j.value=!0;try{await d.adicionarLinhaCampanha(o.campanhaId,{whatsapp_conexao_id:H.value.whatsapp_conexao_id,flow_id:H.value.flow_id||null,ia_ativa:H.value.ia_ativa}),H.value={whatsapp_conexao_id:"",flow_id:null,ia_ativa:!1},L.value=!1,B.success(p("Linha adicionada com sucesso!"))}catch{}finally{j.value=!1}}},be=Q=>{c.value=Q.id,g.value={flow_id:Q.flow_id,ia_ativa:Q.ia_ativa}},T=()=>{c.value=null},q=async Q=>{P.value=!0;try{await d.editarLinhaCampanha(o.campanhaId,Q.id,{flow_id:g.value.flow_id,ia_ativa:g.value.ia_ativa}),c.value=null,B.success(p("Linha atualizada!"))}catch{}finally{P.value=!1}},S=async Q=>{try{await aa.confirm(`Remover a linha "${Q.conexao?.rotulo||xe(Q.conexao?.numero_whatsapp)}" da campanha?`,"Remover linha",{confirmButtonText:p("Remover"),cancelButtonText:p("Cancelar"),type:"warning"}),A.value=Q.id,await d.removerLinhaCampanha(o.campanhaId,Q.id),B.success(p("Linha removida."))}catch{}finally{A.value=null}};return Ta(async()=>{const Q=R.barbeariaSelecionada?.id;await Promise.all([d.loadLinhasCampanha(o.campanhaId),E(),Q?b.loadFlows(Q,{active:!0,limit:100}):Promise.resolve()])}),we(()=>o.campanhaId,async()=>{await d.loadLinhasCampanha(o.campanhaId)}),(Q,Y)=>{const ye=It;return s(),r("div",bs,[e("div",hs,[e("div",null,[e("p",fs,a(t(p)("Linhas de envio")),1),e("p",_s,a(t(p)("Ca
1da linha é um número WhatsApp dedicado ao disparo.")),1)]),e("span",gs,a(t(w).length)+" "+a(t(w).length===1?"linha":"linhas"),1)]),t(z)?(s(),r("div",ys,[(s(),r(oe,null,le(2,J=>e("div",{key:J,class:"h-20 rounded-2xl bg-[var(--surface-2)] border border-[var(--border)] animate-pulse"})),64))])):(s(),r(oe,{key:1},[$(ht,{name:"linha-list",tag:"div",class:"space-y-2"},{default:Ie(()=>[(s(!0),r(oe,null,le(N.value,J=>(s(),r("div",{key:J.id,class:"rounded-2xl border border-[var(--border)] bg-[var(--surface)] p-4 transition duration-200 hover:-translate-y-[1px] hover:brightness-[1.02]"},[e("div",ws,[e("div",$s,[e("span",ks,a(J.ordem+1),1)]),e("div",Cs,[e("div",As,[e("span",Ss,a(J.conexao?.rotulo||xe(J.conexao?.numero_whatsapp)||J.instance_name),1),$(ye,{status:J.conexao?.status||"desconectado"},null,8,["status"])]),J.conexao?.rotulo?(s(),r("p",Is,a(xe(J.conexao.numero_whatsapp)),1)):x("",!0),e("div",Ms,[e("div",Es,[$(t(Pt),{class:"h-3.5 w-3.5 text-[var(--muted)]"}),c.value===J.id?ve((s(),r("select",{key:0,"onUpdate:modelValue":Y[0]||(Y[0]=re=>g.value.flow_id=re),class:"text-xs rounded-lg border border-[var(--border)] bg-[var(--surface-2)] px-2 py-1 text-[var(--text)] focus:outline-none focus-visible:ring-1 focus-visible:ring-[var(--accent)] max-w-[180px]"},[e("option",Ps,a(t(p)("â Usar flow padrão da campanha â")),1),(s(!0),r(oe,null,le(V.value,re=>(s(),r("option",{key:re.id,value:re.id},a(re.name),9,Ls))),128))],512)),[[Se,g.value.flow_id]]):(s(),r("span",js,a(J.flow?J.flow.name:"Flow padrão da campanha"),1))]),e("div",Ds,[c.value===J.id?(s(),r("button",{key:0,type:"button",onClick:Y[1]||(Y[1]=re=>g.value.ia_ativa=!g.value.ia_ativa),class:ie(["relative inline-flex h-5 w-9 items-center rounded-full transition-colors duration-200 focus:outline-none",g.value.ia_ativa?"bg-emerald-500":"bg-[var(--surface-2)] border border-[var(--border)]"])},[e("span",{class:ie(["inline-block h-3.5 w-3.5 transform rounded-full bg-white shadow transition-transform duration-200",g.value.ia_ativa?"translate-x-4":"translate-x-0.5"])},null,2)],2)):(s(),r("span",{key:1,class:ie(["inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-bold border",J.ia_ativa?"bg-emerald-500/10 text-emerald-500 border-emerald-500/25":"bg-[var(--surface-2)] text-[var(--muted)] border-[var(--border)]"])},[e("span",{class:ie(["h-1.5 w-1.5 rounded-full",J.ia_ativa?"bg-emerald-500 animate-pulse":"bg-[var(--subtle)]"])},null,2),_(" IA "+a(J.ia_ativa?"ativa":"desligada"),1)],2))])])]),e("div",Ts,[c.value===J.id?(s(),r(oe,{key:0},[e("button",{type:"button",disabled:P.value,onClick:re=>q(J),class:"inline-flex items-center gap-1 rounded-xl px-2.5 py-1.5 text-xs font-semibold bg-[image:var(--brand-gradient)] text-white disabled:opacity-45 transition duration-200"},[P.value?(s(),se(t(Qe),{key:0,class:"h-3.5 w-3.5 animate-spin"})):(s(),se(t(Ra),{key:1,class:"h-3.5 w-3.5"})),_(" "+a(t(p)("Salvar")),1)],8,Us),e("button",{type:"button",onClick:T,class:"p-1.5 rounded-xl text-[var(--muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] transition duration-200"},[$(t(Me),{class:"h-4 w-4"})])],64)):n.readonly?x("",!0):(s(),r(oe,{key:1},[e("button",{type:"button",onClick:re=>be(J),class:"p-1.5 rounded-xl text-[var(--muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] transition duration-200",title:t(p)("Editar linha")},[$(t(va),{class:"h-4 w-4"})],8,Rs),K.value?(s(),r("button",{key:0,type:"button",disabled:A.value===J.id,onClick:re=>S(J),class:"p-1.5 rounded-xl text-red-500 hover:bg-red-500/10 disabled:opacity-45 transition duration-200",title:t(p)("Remover linha")},[A.value===J.id?(s(),se(t(Qe),{key:0,class:"h-4 w-4 animate-spin"})):(s(),se(t(ea),{key:1,class:"h-4 w-4"}))],8,Ns)):x("",!0)],64))])])]))),128))]),_:1}),t(w).length===0&&!L.value?(s(),r("div",Vs,[$(t(Lt),{class:"h-8 w-8 text-[var(--subtle)] mx-auto mb-2"}),e("p",qs,a(t(p)("Nenhuma linha de disparo")),1),e("p",Fs,a(t(p)("Adicione ao menos uma linha para poder ativar a campanha.")),1)])):x("",!0),$(Oe,{"enter-active-class":"transition duration-200 ease-out","enter-from-class":"opacity-0 -translate-y-1","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition duration-150 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-1"},{default:Ie(()=>[L.value&&!n.readonly&&I.value?(s(),r("div",Os,[e("p",zs,a(t(p)("Nova linha")),1),e("div",Bs,[e("label",Ks,[_(a(t(p)("Número WhatsApp"))+" ",1),Y[7]||(Y[7]=e("span",{class:"text-red-500"},"*",-1))]),ve(e("select",{"onUpdate:modelValue":Y[2]||(Y[2]=J=>H.value.whatsapp_conexao_id=J),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 text-sm text-[var(--text)] focu
1s:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)]"},[e("option",Ws,a(t(p)("Selecione uma linha de disparo")),1),(s(!0),r(oe,null,le(M.value,J=>(s(),r("option",{key:J.id,value:J.id,disabled:te(J.id)},a(J.rotulo||xe(J.numero_whatsapp))+" "+a(te(J.id)?"(já adicionada)":"")+" · "+a(l(J.status)),9,Gs))),128))],512),[[Se,H.value.whatsapp_conexao_id]]),M.value.length===0?(s(),r("p",Hs,a(t(p)("Nenhuma linha de disparo disponÃvel. Crie uma na aba WhatsApp primeiro.")),1)):x("",!0)]),e("div",Js,[e("label",Qs,a(t(p)("Flow de IA (opcional)")),1),ve(e("select",{"onUpdate:modelValue":Y[3]||(Y[3]=J=>H.value.flow_id=J),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 text-sm text-[var(--text)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)]"},[e("option",Zs,a(t(p)("â Usar flow padrão da campanha â")),1),(s(!0),r(oe,null,le(V.value,J=>(s(),r("option",{key:J.id,value:J.id},a(J.name),9,Xs))),128))],512),[[Se,H.value.flow_id]])]),e("div",Ys,[e("div",null,[e("p",er,a(t(p)("Responder com IA")),1),e("p",ar,a(t(p)("Ativa o bot para responder automaticamente nesta linha.")),1)]),e("button",{type:"button",onClick:Y[4]||(Y[4]=J=>H.value.ia_ativa=!H.value.ia_ativa),class:ie(["relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200",H.value.ia_ativa?"bg-emerald-500":"bg-[var(--surface-2)] border border-[var(--border)]"])},[e("span",{class:ie(["inline-block h-4 w-4 transform rounded-full bg-white shadow transition-transform duration-200",H.value.ia_ativa?"translate-x-5":"translate-x-0.5"])},null,2)],2)]),e("div",tr,[e("button",{type:"button",disabled:!H.value.whatsapp_conexao_id||j.value,onClick:ue,class:"inline-flex items-center gap-2 rounded-xl px-3 py-1.5 text-sm font-semibold bg-[image:var(--brand-gradient)] text-white disabled:opacity-45 disabled:cursor-not-allowed dark:hover:shadow-[var(--glow)] transition duration-200"},[j.value?(s(),se(t(Qe),{key:0,class:"h-4 w-4 animate-spin"})):(s(),se(t(Re),{key:1,class:"h-4 w-4"})),_(" "+a(t(p)("Adicionar linha")),1)],8,or),e("button",{type:"button",onClick:Y[5]||(Y[5]=J=>L.value=!1),class:"inline-flex items-center gap-1 rounded-xl px-3 py-1.5 text-sm font-semibold text-[var(--muted)] border border-[var(--border)] hover:bg-[var(--surface-2)] transition duration-200"},a(t(p)("Cancelar")),1)])])):x("",!0)]),_:1}),!n.readonly&&I.value&&!L.value?(s(),r("button",{key:1,type:"button",onClick:Y[6]||(Y[6]=J=>L.value=!0),class:"w-full flex items-center justify-center gap-2 rounded-2xl border border-dashed border-[var(--border)] py-3 text-sm font-semibold text-[var(--muted)] hover:border-[var(--accent)] hover:text-[var(--accent)] hover:bg-[var(--surface-2)] transition duration-200"},[$(t(Re),{class:"h-4 w-4"}),_(" "+a(t(p)("Adicionar linha de disparo")),1)])):x("",!0),n.campanhaStatus==="ativa"&&!n.readonly?(s(),r("p",sr,[$(t(tt),{class:"h-3.5 w-3.5 flex-shrink-0"}),_(" "+a(t(p)("Você pode editar o flow e ligar/desligar a IA mesmo com a campanha ativa. Para adicionar ou remover linhas, pause a campanha primeiro.")),1)])):x("",!0)],64))])}}}),ut=Object.assign(ot(rr,[["__scopeId","data-v-3f161de1"]]),{__name:"DisparosLinhasCampanha"});function Xe(n){const p=(n.nome??"").trim();return p.length>0?p:`Etapa ${n.ordem}`}const nr={class:"hidden","aria-hidden":"true"},lr=$e({__name:"DisparoVariacoesIaPanel",props:{campanhaId:{},escopo:{},indiceAtivo:{},templates:{},nomeCampanha:{default:""},autoInicial:{type:Boolean,default:!0},legendaDeMidia:{type:Boolean,default:!1}},emits:["aplicar"],setup(n,{expose:p,emit:o}){const{tn:d}=Ee(),b=n,C=o,E=Le(),R=y(!1),w=y(!!(b.templates[0]||"").trim()),z=X(()=>(b.templates[0]||"").trim());function F(H){const g=(b.nomeCampanha||"").trim(),N=z.value,V=(b.templates[b.indiceAtivo]||"").trim(),M=b.templates.map((K,te)=>{if(te>=b.indiceAtivo)return null;const xe=(K||"").trim();return xe?`Variação ${te+1}: ${xe}`:null}).filter(Boolean).join(` 2`);if(H==="inicial"){const K=b.legendaDeMidia?"Reescreva a LEGENDA abaixo (mÃdia já definida) como UMA ÃNICA variação pronta para envio, em português, mantendo {{nome}} se existir.":"O comerciante escreveu o texto de referência abaixo. Reescreva como UMA ÃNICA variação pronta para envio, em português, mantendo o placeholder {{nome}} se existir.";return[`Campanha: ${g||"(sem nome)"}
2 (WhatsApp, disparo em massa).`,K,"---",N,"---"].filter(Boolean).join(` 3`)}if(H==="sequencia"){const K=b.legendaDeMidia?"Legenda de referência":"Mensagem de referência (primeiro rascunho)",te=b.legendaDeMidia?`Agora gere UMA LEGENDA alternativa para a posição ${b.indiceAtivo+1}, distinta das anteriores.`:`Agora gere UMA variação para a posição ${b.indiceAtivo+1}, diferente das anteriores.`;return[`Campanha: ${g||"(sem nome)"} (WhatsApp).`,`${K}: 4${N||"(vazio)"}`,M?`Variações já definidas (as novas devem ser claramente distintas destas): 5${M}`:"",te].filter(Boolean).join(` 6 7`)}return H==="outra"?["O trecho a seguir precisa de uma ALTERNATIVA diferente (mesma intenção, redação outra) para o mesmo contexto de campanha de WhatsApp.","---",V,"---",`Referência do primeiro rascunho: ${N||"(não informado)"}`].filter(Boolean).join(` 8`):[b.legendaDeMidia?"Reescreva a LEGENDA abaixo como UMA variação melhor para campanha de WhatsApp em português, preservando {{nome}} se houver.":"Reescreva o texto abaixo como UMA variação melhor para campanha de WhatsApp em português, preservando {{nome}} se houver.","---",V||N,"---"].filter(Boolean).join(` 9 10`)}async function L(H){if(!b.campanhaId)return B.warning(d("Salve a campanha antes para usar a IA.")),!1;if(H==="inicial"&&!z.value)return B.info(d("Escreva a mensagem de referência na primeira aba.")),!1;if(H==="sequencia"&&!z.value)return B.warning(d("A primeira aba (referência) não pode estar vazia para gerar a próxima variação.")),!1;if((H==="substituir"||H==="outra")&&!(b.templates[b.indiceAtivo]||"").trim()&&!z.value)return B.info(d("Preencha o texto desta aba ou a referência na primeira aba.")),!1;R.value=!0;try{const g=F(H),N=await E.sugerirVariacoesTextoDisparo(b.campanhaId,{contexto:g,quantidade:1,escopo:b.escopo}),V=(N.sugestoes&&N.sugestoes[0]?N.sugestoes[0]:"").trim();return V?(C("aplicar",V),!0):(B.warning(d("A IA não retornou texto. Tente novamente.")),!1)}catch(g){return B.error(Te(g)),!1}finally{R.value=!1}}async function j(){return b.campanhaId?b.indiceAtivo>0?z.value?L("sequencia"):(B.warning(d("A mensagem da aba A não pode estar vazia.")),!1):z.value?L("substituir"):(B.info(d("Escreva primeiro a mensagem de referência na aba A (ou aguarde a sugestão automática).")),!1):(B.warning(d("Salve a campanha antes para usar a IA.")),!1)}function A(){w.value=!0}p({gerar:L,gerarVariacaoAtual:j,carregando:R,bloquearAuto:A}),we(()=>(b.templates[0]||"").trim(),H=>{H&&(w.value=!0)},{immediate:!0});async function c(){if(!b.autoInicial||w.value||!b.campanhaId||!z.value||b.indiceAtivo!==0)return;await L("inicial")&&(w.value=!0)}let P=null;return we(()=>[b.campanhaId,z.value,b.indiceAtivo,b.autoInicial],()=>{b.autoInicial&&(w.value||b.indiceAtivo===0&&(!b.campanhaId||!z.value||(P&&clearTimeout(P),P=setTimeout(()=>{P=null,c()},700))))},{immediate:!0}),ft(()=>{P&&clearTimeout(P)}),(H,g)=>(s(),r("div",nr))}}),pt=Object.assign(lr,{__name:"DisparoVariacoesIaPanel"}),ir={class:"relative h-full overflow-hidden funil-canvas"},dr={class:"absolute inset-0"},cr={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-4 pointer-events-none z-10"},ur={class:"w-14 h-14 rounded-2xl bg-[var(--surface-2)] flex items-center justify-center border border-[var(--border)]"},pr={class:"text-center"},vr={class:"font-bold text-[var(--text)]"},mr={class:"text-sm text-[var(--muted)] mt-1"},xr={key:0,class:"absolute right-0 top-0 h-full w-[min(100vw,440px)] sm:w-[420px] border-l border-[var(--border)] bg-[var(--bg)] flex flex-col overflow-hidden z-20 shadow-[-12px_0_32px_rgba(0,0,0,0.18)]"},br={class:"shrink-0 flex items-center justify-between px-4 py-3 border-b border-[var(--border)]"},hr={class:"min-w-0"},fr={class:"text-[10px] font-bold uppercase tracking-[0.06em] text-[var(--muted)]"},_r=["title"],gr={key:0,class:"flex-1 overflow-y-auto custom-scrollbar px-4 py-4 space-y-4"},yr={class:"space-y-1.5"},wr={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},$r=["placeholder"],kr={class:"text-[11px] text-[var(--subtle)] leading-relaxed"},Cr={class:"space-y-1.5"},Ar={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Sr={class:"grid grid-cols-3 gap-2"},Ir=["disabled","onClick"],Mr={key:0,class:"text-[11px] text-[var(--subtle)]"},Er={key:0,class:"space-y-1.5"},Pr={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Lr={class:"ml-1 normal-case font-normal text-[var(--subtle)]"},jr=["value"],Dr={value:""},Tr=["value"],Ur={class:"text-[11px] text-[var(--subtle)]"},Rr={key:1,class:"space-y-3 rounded-xl border border-[var(--border)] bg-[var(--surface-2)] p-3"},Nr={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Vr={class:"space-y-1.5"},qr={class:"text-[11px] text-[var(--subtle)]"},Fr={value:"respondeu"},Or={value:"lido"},zr={value:"entregue"},Br={value:"timeout_sem_resposta"},Kr={class:"space-y-1.5"},Wr={class:"text-[11px] text-[var(--subtle)]"},Gr={class:"flex items-center gap-2"},Hr={value:"minutos"},Jr={value:"horas"},Qr={value:"dias"},Zr={value:"semanas"},Xr={value:"meses"},Yr={key:2,class:"rounded-xl border border-[var(--accent)]/20 bg-[var(--accent)]/06 px-3 py-2.5 flex items-start gap-2"},en={class:"text-[11px] text-[var(--muted)] leading-relaxed"},an={class:"font-bold text-[var(--text)]"},tn={class:"font-semibold text-[var(--accent)]"},on={key:3,class:"space-y-3"},sn={class:"space-y-2"},rn={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},nn={class:"grid grid-cols-3 gap-2"},ln={class:"text-[10px] text-[var(--subtle)]"},dn={key:1,class:"rounded-xl border border-[var(--accent)]/25 bg-[var(--accent)]/06 p-2.5 flex items-center gap-2.5"},cn=["src"],un={key:1,class:"w-12 h-12 rounded-lg bg-[var(--surface-2)] border border-[var(--border)] flex items-center justify-center shrink-0"},pn={class:"flex-1 min-w-0"},vn={class:"text-xs font-semibold text-[var(--text)]"},mn={key:0,class:"text-[11px] text-[var(--subtle)] truncate"},xn={key:1,class:"text-[11px] text-[var(--subtle)]"},bn={key:2,class:"text-[11px] text-amber-500"},hn={class:"text-[11px] text-[var(--text)] flex-1 truncate"},fn={class:"text-[var(--subtle)]"},_n=["onClick"],gn={key:0,class:"text-[10px] text-[var(--subtle)]"},yn=["accept"],wn={class:"space-y-2"},$n={class:"flex flex-wrap items-center justify-between gap-2"},kn={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Cn={class:"flex items-center gap-0 overflow-x-auto border-b border-[var(--border)] pb-0"},An=["disabled"],Sn=["onClick"],In=["title","onClick"],Mn={class:"flex justify-end pt-1"},En=["disabled"],Pn={key:0,class:"h-3.5 w-3.5 border-2 border-[var(--accent)] border-t-transparent roun
10ded-full animate-spin"},Ln={class:"relative"},jn=["rows","disabled","placeholder"],Dn={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-2 rounded-xl bg-[var(--surface-2)]/80 backdrop-blur-[2px]"},Tn={class:"text-xs text-[var(--muted)]"},Un={key:0,class:"text-[10px] text-[var(--subtle)]"},Rn={key:0,class:"rounded-xl bg-[var(--bg)] border border-[var(--border)] p-2.5"},Nn={class:"text-[10px] font-bold uppercase tracking-[0.06em] text-[var(--subtle)] mb-1.5"},Vn={class:"rounded-2xl rounded-tl-sm bg-[var(--surface-2)] border border-[var(--accent)]/15 overflow-hidden max-w-[220px]"},qn={key:0},Fn=["src"],On={key:1,class:"h-16 bg-black/50 flex items-center justify-center"},zn={key:2,class:"flex items-center gap-2 px-3 py-2"},Bn={class:"w-7 h-7 rounded-full bg-[var(--accent)]/20 flex items-center justify-center"},Kn={class:"text-xs text-[var(--text)] whitespace-pre-wrap break-words leading-relaxed"},Wn={key:4,class:"rounded-xl border border-amber-500/25 bg-amber-500/08 px-3 py-2.5 text-xs text-amber-500 leading-relaxed"},Gn={key:5,class:"rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2.5 text-xs text-[var(--muted)] leading-relaxed"},Hn={class:"shrink-0 border-t border-[var(--border)] px-3 py-2.5 space-y-2"},Jn={key:0,class:"flex gap-2"},Qn=["disabled"],Zn={class:"flex gap-2"},Xn=["disabled"],Yn={key:0,class:"w-3.5 h-3.5 border-2 border-white border-t-transparent rounded-full animate-spin"},el=["accept"],Ze="{{nome}}",Ia=20,Ha=5,al=$e({__name:"DisparosFunilBuilder",props:{passos:{},readonly:{type:Boolean,default:!1},campanhaId:{},nomeCampanha:{default:""}},emits:["update:passos","campanha-atualizada"],setup(n,{emit:p}){const{tn:o}=Ee(),d=Le(),b=n,C=X(()=>b.campanhaId||"rascunho"),E=p,R=y([Math.random().toString(36).slice(2)]),w=y(["A"]),z=()=>Math.random().toString(36).slice(2)+Date.now().toString(36),F=()=>{const f=w.value.reduce((m,D)=>Math.max(m,D.charCodeAt(0)),64);return String.fromCharCode(f+1)},L=X(()=>(c.value?.templates??[""]).map((f,m)=>({id:R.value[m]??`fb-${m}`,label:w.value[m]??String.fromCharCode(65+m),idx:m}))),j=[{value:"enviar_mensagem",label:`Enviar 11Mensagem`,icon:Ka},{value:"pausar_ia",label:`Pausar 12IA`,icon:Ba},{value:"encerrar",label:`Encerrar 13Funil`,icon:Pa}],A=y(null),c=y(null),P=y(0),H=y(null),g=y(!1),N=y(null),V=y(null),M=y({});we(()=>b.passos.map(f=>f.ordem).join(","),()=>{M.value={}});function I({node:f}){const m=Number(f.id.replace("passo-",""));M.value={...M.value,[m]:{...f.position}}}const K=y(null),te=y(null),xe=y(null),l=y({tipo:null,arquivo:null,previewUrl:null,originalName:null,uploadPending:!1,uploading:!1,s3Key:null}),ue=y([]),be=y(null),T=y(!1);function q(f){l.value.previewUrl&&URL.revokeObjectURL(l.value.previewUrl);for(const m of ue.value)m.previewUrl&&URL.revokeObjectURL(m.previewUrl);if(ue.value=[],f?.midias?.length){const[m,...D]=f.midias;l.value={tipo:m.tipo,arquivo:null,previewUrl:null,originalName:m.filename??null,uploadPending:!1,uploading:!1,s3Key:m.s3_key},ue.value=D.map(h=>({arquivo:null,previewUrl:null,originalName:h.filename??null,uploadPending:!1,s3Key:h.s3_key}));return}l.value={tipo:f?.midia_tipo??null,arquivo:null,previewUrl:null,originalName:f?.midia_filename??null,uploadPending:!1,uploading:!1,s3Key:f?.midia_s3_key??null}}const S=X(()=>{switch(l.value.tipo){case"imagem":return"image/*";case"video":return"video/mp4";case"audio":return"audio/*";case"documento":return Ma;default:return"*/*"}}),Q=X(()=>l.value.tipo?1+ue.value.length:0);function Y(f){const m=f.target,D=m.files?.[0];if(!D)return;const h=l.value.tipo,ne=h==="documento"?ia(D):Je(D);if(!ne.ok){B.warning(ne.mensagem),m.value="";return}if(h==="documento"&&D.type&&!da(D.type)){B.warning(o("Tipo de documento não suportado.")),m.value="";return}ue.value.push({arquivo:D,previewUrl:h==="imagem"?URL.createObjectURL(D):null,originalName:D.name,uploadPending:!0,s3Key:null}),m.value=""}function ye(f){const m=ue.value[f];m?.previewUrl&&URL.revokeObjectURL(m.previewUrl),ue.value.splice(f,1)}function J(f){const m=f.target,D=m.files?.[0];if(!D)return;const h=Je(D);if(!h.ok){B.warning(h.mensagem),m.value="";return}const ne=D.type.startsWith("image/")?"imagem":"video";l.value={tipo:ne,arquivo:D,previewUrl:ne==="imagem"?URL.createObjectURL(D):null,originalName:D.name,uploadPending:!0,uploading:!1,s3Key:null},ue.value=[],m.value=""}function re(f){const m=f.target,D=m.files?.[0];if(!D)return;const h=Je(D);if(!h.ok){B.warning(h.mensagem),m.value="";return}l.value={tipo:"audio",arquivo:D,previewUrl:null,originalName:D.name,uploadPending:!0,uploading:!1,s3Key:null},ue.value=[],m.value=""}function W(f){const m=f.target,D=m.files?.[0];if(!D)return;if(D.type&&!da(D.type)){B.warning(o("Tipo de documento não suportado. Aceitos: PDF, doc/docx, xls/xlsx, ppt/pptx, txt, csv.")),m.value="";return}const h=ia(D);if(!h.ok){B.warning(h.mensagem),m.value="";return}l.value={tipo:"documento",arquivo:D,previewUrl:null,originalName:D.name,uploadPending:!0,uploading:!1,s3Key:null},ue.value=[],m.value=""}function U(){l.value.previewUrl&&URL.revokeObjectURL(l.value.previewUrl);for(const f of ue.value)f.previewUrl&&URL.revokeObjectURL(f.previewUrl);l.value={tipo:null,arquivo:null,previewUrl:null,originalName:null,uploadPending:!1,uploading:!1,s3Key:null},ue.value=[],c.value&&(c.value.midia_tipo=null,c.value.midia_s3_key=null,c.value.midia_filename=null,c.value.midia_caption=null,c.value.midia_captions=null,c.value.midias=null)}async function ee(){const f=l.value.tipo;if(!f)return!0;
13if(!b.campanhaId)return B.warning(o("Salve a campanha antes de fazer upload de mÃdia.")),!1;l.value.uploading=!0;try{if(l.value.uploadPending&&l.value.arquivo){const m=await d.uploadArquivoComoMidia(b.campanhaId,l.value.arquivo,f);l.value.s3Key=m.s3_key,l.value.uploadPending=!1}if(!l.value.s3Key)return!0;for(const m of ue.value)if(m.uploadPending&&m.arquivo){const D=await d.uploadArquivoComoMidia(b.campanhaId,m.arquivo,f);m.s3Key=D.s3_key,m.uploadPending=!1}if(c.value){const m=(c.value.templates||[]).map(D=>(D||"").trim()).filter(Boolean);c.value.midias=[{s3_key:l.value.s3Key,tipo:f,filename:l.value.originalName,caption:null},...ue.value.filter(D=>D.s3Key).map(D=>({s3_key:D.s3Key,tipo:f,filename:D.originalName,caption:null}))],c.value.midia_s3_key=l.value.s3Key,c.value.midia_tipo=f,c.value.midia_filename=l.value.originalName,c.value.midia_caption=m[0]||null,c.value.midia_captions=m.length?m:null}return!0}catch(m){return B.error(m?.message||"Erro ao fazer upload da mÃdia"),!1}finally{l.value.uploading=!1}}const _e=X(()=>({imagem:Ne,video:La,audio:Da,documento:Ye})[l.value.tipo||""]||Ne),ze=X(()=>({imagem:"Imagem",video:"VÃdeo",audio:"Ãudio",documento:"Documento"})[l.value.tipo||""]||"");function Be(f){V.value=f}_t(()=>{V.value=null,A.value=null,c.value=null,l.value.previewUrl&&URL.revokeObjectURL(l.value.previewUrl)});function Ke({node:f}){if(b.readonly)return;const m=b.passos.findIndex(D=>`passo-${D.ordem}`===f.id);m!==-1&&O(m)}function O(f){if(b.readonly)return;if(A.value=f,c.value=JSON.parse(JSON.stringify(b.passos[f])),c.value&&(c.value.nome=c.value.nome??"",c.value.ordem>1&&!c.value.gatilho&&(c.value.gatilho={tipo:"timeout_sem_resposta",delay:1,delay_unidade:"horas"}),c.value.acao==="enviar_mensagem")){const D=c.value.templates?.some(h=>(h||"").trim());c.value.midia_captions?.length&&!D?(c.value.templates=[...c.value.midia_captions],c.value.template=c.value.templates[0]||""):c.value.templates?.length?c.value.template=c.value.templates[0]||c.value.template||"":(c.value.templates=c.value.template!=null&&String(c.value.template).length?[c.value.template]:[""],c.value.template=c.value.templates[0]||"")}P.value=0;const m=c.value?.templates??[""];R.value=m.map(()=>z()),w.value=m.map((D,h)=>String.fromCharCode(65+h)),q(c.value??void 0)}function k(){q(),A.value=null,c.value=null}async function Z(){if(A.value===null||!c.value||l.value.tipo&&!await ee())return!1;const f=[...b.passos],m={...c.value};if(m.acao==="enviar_mensagem"){if(m.templates?.length?m.template=(m.templates[0]??"")||void 0:(m.templates=[m.template||""],m.template=m.templates[0]||""),m.midia_tipo){const Ce=(m.templates||[]).map(Ge=>(Ge||"").trim()).filter(Boolean);Ce.length?(m.midia_captions=Ce,m.midia_caption=Ce[0]??null):(m.midia_captions=null,m.midia_caption=null)}const h=m.templates||[],ne=h.filter(Ce=>(Ce||"").trim()).length,me=h.some(Ce=>(Ce||"").trim().length>0),ge=l.value.tipo||m.midia_tipo;if(!(ge==="audio"&&!me||(ge==="imagem"||ge==="video")&&!me)&&ne<Ha)return B.warning(`Inclua pelo menos ${Ha} variações de texto (você tem ${ne}).`),!1}const D=(m.nome??"").trim();if(D?m.nome=D.slice(0,255):delete m.nome,f[A.value]=m,b.campanhaId){T.value=!0;try{const h=await d.salvarFunilConfig(b.campanhaId,{passos:f}),ne=h.funil_config?.passos;return E("update:passos",ne?.length?[...ne]:f),E("campanha-atualizada",h),B.success(o("Funil salvo")),k(),!0}catch(h){return B.error(h?.data?.message||h?.message||"Erro ao salvar o funil"),!1}finally{T.value=!1}}return E("update:passos",f),k(),!0}async function ae(){const f=c.value?.ordem;f==null||l.value.uploading||T.value||!await Z()||(await Ae(),ga(f))}function he(){A.value!==null&&(Ve(A.value),k())}function Ve(f){const m=b.passos.filter((D,h)=>h!==f).map((D,h)=>({...D,ordem:h+1}));E("update:passos",m)}function ma(){const f=b.passos.length+1,m={ordem:f,acao:"enviar_mensagem",gatilho:f>1?{tipo:"timeout_sem_resposta",delay:1,delay_unidade:"horas"}:void 0,template:"",templates:[""]},D=[...b.passos,m];E("update:passos",D),Ae(()=>{O(D.length-1),Ae(()=>{V.value?.fitView({padding:.2,duration:400})})})}function xa(){if(!c.value)return;c.value.templates?.length||(c.value.templates=[c.value.template||""]);const f=P.value,m=N.value;if(!m){c.value.templates[f]=(c.value.templates[f]||"")+Ze,c.value.template=c.value.templates[0]||"";return}const D=c.value.templates[f]||"",h=m.selectionStart??D.length,ne=m.selectionEnd??h;c.value.templates[f]=D.slice(0,h)+Ze+D.slice(ne),c.value.template=c.value.templates[0]||"",Ae(()=>{m.focus(),m.setSelectionRange(h+Ze.length,h+Ze.length)})}function ba(){c.value?.templates||(c.value.templates=[c.value.template||""],R.value=[z()],w.value=["A"]),!(c.value.templates.length>=Ia)&&(c.value.templates.push(""),R.value.push(z()),w.value.push(F()),P.value=c.value.templates.length-1,g.value=!0,Ae(async()=>{try{await H.value?.gerar("sequencia")}finally{g.value=!1}}))}function ta(f){if(!c.value?.templates||c.value.templates.length<=1)return;const m=R.value.indexOf(f);m!==-1&&(c.value.templates.splice(m,1),R.value.splice(m,1),w.value.splice(m,1),c.value.template=c.value.templates[0]||"",m<P.value?P.value-=1:P.value>=c.value.templates.length&&(P.value=c.value.templates.length-1))}async function ha(){if(!g.value){g.value=!0;try{await H.value?.gerarVariacaoAtual()}finally{g.value=!1}}}function We(f){c.value?.templates||(c.value.templates=[c.value.template||""]),c.value.templates[P.value]=f,c.value.template=(c.value.templates[0]||c.value.template)??""}const oa=X(()=>c.value&&(c.value.templates?.[P.value]??c.value.template)||""),fa=X(()=>oa.value.replace(/\{\{nome\}\}/gi,"João")),sa=X(()=>b.passos.some(f=>f.de_passo!==void 0&&f.de_passo!==null));function _a(f){const h=new Map;if(!f.length)return h;const ne=new Map,me=f.find(fe=>!fe.de_passo);if(!me)return h;f.forEach(fe=>{if(fe.de_passo){const je=ne.get(fe.de_passo)||[];je.push(fe.ordem),ne.set(fe.de_passo,je)}});const ge=new Map;function ke(fe){const je=ne.get(fe)||[];if(!je.length)return ge.set(fe,1),1;const Fe=je.reduce((He,v)=>He+ke(v),0);return ge.set(fe,Fe),Fe}ke(me.ordem);function Ce(fe,je,Fe){const He=ge.get(fe)||1,v=(Fe+He/2-.5)*480;h.set(fe,{x:v,y:je*260});const u=ne.get(fe)||[];let i=Fe;u.forEach(G=>{Ce(G,je+1,i),i+=ge.get(G)||1})}const Ge=ge.get(me.ordem)||1;return Ce(me.ordem,0,-(Ge-1)/2),h}function ga(f){const D={ordem:b.passos.length+1,de_passo:f,acao:"enviar_mensagem",gatilho:{tipo:"timeout_sem_resposta",delay:1,delay_unidade:"horas"},template:"",templates:[""]},h=[...b.passos,D];E("update:passos",h),Ae(()=>{O(h.length-1),Ae(()=>V.value?.fitView({padding:.2,duration:400}))})}function ra(f){if(!f.gatilho)return"";const m={respondeu:"Respondeu",lido:"Lido",entregue:"Entregue",timeout_sem_resposta:"Sem resposta"},D={minutos:"min",horas:"h",dias:"d",semanas:"sem",meses:"mes"},h=m[f.gatilho.tipo]||f.gatilho.tipo,ne=f.gatilho.delay;if(!ne||ne<=0)return h;const me=D[f.gatilho.delay_unidade]||f.gatilho.delay_unidade;return`${h} ⢠${ne}${me}`}
13function qe(f){return{enviar_mensagem:"Enviar Mensagem",pausar_ia:"Pausar IA",encerrar:"Encerrar"}[f]||f}function ya(f){return{enviar_mensagem:"cyan",pausar_ia:"amber",encerrar:"red"}[f]||"muted"}const wa={passoFunil:gt($e({props:["data"],setup(f){const m={cyan:{bg:"color-mix(in srgb, var(--accent) 8%, transparent)",border:"var(--accent-ring)",text:"var(--accent)",badge:"var(--accent-soft-strong)"},amber:{bg:"rgba(245,158,11,0.08)",border:"rgba(245,158,11,0.3)",text:"rgba(245,158,11,1)",badge:"rgba(245,158,11,0.15)"},red:{bg:"rgba(239,68,68,0.08)",border:"rgba(239,68,68,0.3)",text:"rgba(239,68,68,1)",badge:"rgba(239,68,68,0.15)"}},D={enviar_mensagem:Ka,pausar_ia:Ba,encerrar:Pa};return()=>{const h=f.data.passo,ne=f.data.readonly,me=m[ya(h.acao)]||m.cyan,ge=D[h.acao],ke=[];return h.ordem>1&&ke.push(pe(Oa,{type:"target",position:Fa.Top,style:{background:me.text,border:"none",width:"10px",height:"10px"}})),ke.push(pe("div",{style:{background:"var(--surface)",border:`1.5px solid ${me.border}`,borderRadius:"16px",padding:"14px 16px",width:"280px",cursor:ne?"default":"pointer",position:"relative"}},[pe("div",{style:"display:flex;align-items:center;gap:8px;margin-bottom:10px"},[pe("div",{style:`width:28px;height:28px;border-radius:8px;background:${me.badge};display:flex;align-items:center;justify-content:center;flex-shrink:0`},[pe(ge,{style:`width:14px;height:14px;color:${me.text}`})]),pe("div",{style:"flex:1;min-width:0"},[pe("p",{style:"font-size:10px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted);line-height:1"},`Passo ${h.ordem}`),pe("p",{style:"font-size:13px;font-weight:800;color:var(--text);margin-top:3px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden"},Xe(h)),pe("p",{style:"font-size:11px;font-weight:600;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis"},qe(h.acao))]),!ne&&pe("div",{style:"width:24px;height:24px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--subtle);flex-shrink:0"},[pe(va,{style:"width:13px;height:13px"})])]),h.midia_tipo&&pe("div",{style:`display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;border-radius:6px;padding:3px 7px;margin-bottom:6px;background:${me.badge};color:${me.text}`},[{imagem:"ð¼ Imagem",video:"ð¬ VÃdeo",audio:"ðµ Ãudio",documento:"ð Documento"}[h.midia_tipo]||h.midia_tipo]),(h.templates?.[0]||h.template)?.trim()&&pe("p",{style:"font-size:11px;color:var(--muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;background:var(--surface-2);border-radius:8px;padding:6px 8px;border:1px solid var(--border)"},(h.templates?.[0]||h.template||"").replace(/\{\{nome\}\}/gi,"João")),h.acao==="pausar_ia"&&pe("p",{style:"font-size:11px;color:rgba(245,158,11,0.9);background:rgba(245,158,11,0.08);border:1px solid rgba(245,158,11,0.2);border-radius:8px;padding:5px 8px"},"IA pausada para este contato"),h.acao==="encerrar"&&pe("p",{style:"font-size:11px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:5px 8px"},"Fluxo encerrado silenciosamente")])),ke.push(pe(Oa,{type:"source",position:Fa.Bottom,style:{background:me.text,border:"none",width:"10px",height:"10px"}})),pe("div",{},ke)}}}))},$a=f=>O(f),ka=X(()=>{const f=c.value,m=A.value;f&&m!==null&&(f.nome,f.template,f.templates,f.acao,f.midia_tipo,f.midia_s3_key);const D=sa.value?_a(b.passos):null;return b.passos.map((h,ne)=>{const me=m===ne&&f?f:h,ge=D?D.get(h.ordem)??{x:0,y:ne*260}:{x:0,y:ne*230},ke=M.value[h.ordem]??ge;return{id:`passo-${h.ordem}`,type:"passoFunil",position:ke,data:{passo:me,readonly:b.readonly,onEdit:$a,idx:ne},draggable:!b.readonly,selectable:!b.readonly}})}),Ca=X(()=>sa.value?b.passos.filter(f=>f.de_passo).map(f=>{const m=ra(f);return{id:`edge-${f.de_passo}-${f.ordem}`,source:`passo-${f.de_passo}`,target:`passo-${f.ordem}`,label:m,type:"smoothstep",animated:f.gatilho?.tipo==="timeout_sem_resposta",markerEnd:{type:za.ArrowClosed,color:"color-mix(in srgb, var(--accent) 70%, transparent)"},style:{stroke:"color-mix(in srgb, var(--accent) 50%, transparent)",strokeWidth:2},labelStyle:{fill:"var(--muted)",fontSize:"11px",fontWeight:"600"},labelBgStyle:{fill:"var(--surface)",fillOpacity:.95,rx:6},labelBgPadding:[6,4]}}):b.passos.slice(1).map((f,m)=>{const D=ra(f);return{id:`edge-${m}-${m+1}`,source:`passo-${b.passos[m].ordem}`,target:`passo-${f.ordem}`,label:D,type:"smoothstep",animated:f.gatilho?.tipo==="timeout_sem_resposta",markerEnd:{type:za.ArrowClosed,color:"color-mix(in srgb, var(--accent) 70%, transparent)"},style:{stroke:"color-mix(in srgb, var(--accent) 50%, transparent)",strokeWidth:2},labelStyle:{fill:"var(--muted)",fontSize:"11px",fontWeight:"600"},labelBgStyle:{fill:"var(--surface)",fillOpacity:.95,rx:6},labelBgPadding:[6,4]}}));return we(()=>b.passos.length,()=>{Ae(()=>{V.value?.fitView({padding:.2,duration:300})})}),(f,m)=>{const D=yt;return s(),r("div",ir,[e("div",dr,[(s(),se(D,{key:C.value},{fallback:Ie(()=>
13[...m[11]||(m[11]=[e("div",{class:"w-full h-full flex items-center justify-center"},[e("div",{class:"animate-spin rounded-full h-8 w-8 border-2 border-[var(--border)] border-t-[var(--accent)]"})],-1)])]),default:Ie(()=>[$(t(jt),{nodes:ka.value,edges:Ca.value,"node-types":wa,"nodes-draggable":!n.readonly,"nodes-connectable":!1,"elements-selectable":!n.readonly,"pan-on-drag":!0,"zoom-on-scroll":!0,"fit-view-on-init":!0,"min-zoom":.2,"max-zoom":1.5,class:"w-full h-full",onPaneReady:Be,onNodeClick:Ke,onNodeDragStop:I},{default:Ie(()=>[$(t(Dt),{"pattern-color":"color-mix(in srgb, var(--accent) 7%, transparent)",gap:28}),n.readonly?x("",!0):(s(),se(t(Tt),{key:0,position:"bottom-center",class:"pb-4"},{default:Ie(()=>[e("button",{type:"button",class:"inline-flex items-center gap-1.5 rounded-xl px-4 py-2 text-sm font-semibold bg-[var(--surface)] border border-[var(--border)] text-[var(--text)] hover:bg-[var(--surface-2)] hover:border-[var(--accent)] transition duration-200 shadow-[var(--shadow)]",onClick:ma},[$(t(Re),{class:"h-4 w-4"}),_(" "+a(t(o)("Adicionar Passo")),1)])]),_:1}))]),_:1},8,["nodes","edges","node-types","nodes-draggable","elements-selectable"])]),_:1})),n.passos.length===0&&!n.readonly?(s(),r("div",cr,[e("div",ur,[$(t(Wa),{class:"h-7 w-7 text-[var(--accent)]"})]),e("div",pr,[e("p",vr,a(t(o)("Funil vazio")),1),e("p",mr,a(t(o)('Clique em "Adicionar Passo" para construir seu funil')),1)])])):x("",!0)]),$(Oe,{"enter-active-class":"transition-transform duration-300 ease-out","enter-from-class":"translate-x-full","enter-to-class":"translate-x-0","leave-active-class":"transition-transform duration-200 ease-in","leave-from-class":"translate-x-0","leave-to-class":"translate-x-full"},{default:Ie(()=>[A.value!==null&&!n.readonly?(s(),r("div",xr,[e("div",br,[e("div",hr,[e("p",fr,"Passo "+a(c.value?.ordem??0),1),e("p",{class:"text-sm font-bold text-[var(--text)] truncate",title:c.value?t(Xe)(c.value):""},a(c.value?t(Xe)(c.value):"â"),9,_r)]),e("button",{type:"button",class:"p-1.5 rounded-lg text-[var(--muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] transition",onClick:k},[$(t(Me),{class:"h-4 w-4"})])]),c.value?(s(),r("div",gr,[e("div",yr,[e("label",wr,a(t(o)("Nome da etapa")),1),ve(e("input",{"onUpdate:modelValue":m[0]||(m[0]=h=>c.value.nome=h),type:"text",maxlength:"255",placeholder:t(o)("Ex.: Primeira mensagem"),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 text-sm text-[var(--text)] placeholder:text-[var(--subtle)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)]"},null,8,$r),[[De,c.value.nome]]),e("p",kr,a(t(o)('Opcional. Aparece nos cards do funil. Se vazio, usamos "Etapa'))+" "+a(c.value.ordem)+'". ',1)]),e("div",Cr,[e("label",Ar,a(t(o)("Ação")),1),e("div",Sr,[(s(),r(oe,null,le(j,h=>e("button",{key:h.value,type:"button",disabled:h.value!=="enviar_mensagem"&&c.value.ordem===1,class:ie(["flex flex-col items-center gap-1.5 rounded-xl border p-2.5 text-center text-xs font-semibold transition duration-200 disabled:opacity-30 disabled:cursor-not-allowed",c.value.acao===h.value?"border-[var(--accent)] bg-[var(--accent)]/10 text-[var(--accent)]":"border-[var(--border)] text-[var(--muted)] hover:border-[var(--accent)]/40 hover:text-[var(--text)]"]),onClick:ne=>c.value.acao=h.value},[(s(),se(Ue(h.icon),{class:"h-4 w-4"})),_(" "+a(t(o)(h.label)),1)],10,Ir)),64))]),c.value.ordem===1?(s(),r("p",Mr,a(t(o)("O passo 1 sempre envia uma mensagem.")),1)):x("",!0)]),c.value.ordem>1?(s(),r("div",Er,[e("label",Pr,[_(a(t(o)("Vem do Passo"))+" ",1),e("span",Lr,a(t(o)("(branch)")),1)]),e("select",{value:c.value.de_passo??"",class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 text-sm text-[var(--text)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] appearance-none",onChange:m[1]||(m[1]=h=>c.value.de_passo=h.target.value?Number(h.target.value):void 0)},[e("option",Dr,a(t(o)("â Linear (sem branch) â")),1),(s(!0),r(oe,null,le(n.passos.filter(h=>h.ordem<c.value.ordem),h=>(s(),r("option",{key:h.ordem,value:h.ordem},a(t(Xe)(h))+a(h.templates?.[0]||h.template?" â "+(h.templates?.[0]||h.template||"").slice(0,28)+((h.templates?.[0]||h.template||"").length>28?"â¦":""):""),9,Tr))),128))],40,jr),e("p",Ur,a(t(o)('Definir "Vem do Passo" ativa o modo branch â passos independentes não se afetam.')),1)])):x("",!0),c.value.ordem>1?(s(),r("div",Rr,[e("p",Nr,a(t(o)("Gatilho de disparo")),1),e("div",Vr,[e("label",qr,a(t(o)("Quando...")),1),ve(e("select",{"onUpdate:modelValue":m[2]||(m[2]=h=>c.value.gatilho.tipo=h),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface)] px-3 py-2 text-sm text-[var(--text)] focu
13s:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] appearance-none"},[e("option",Fr,a(t(o)("Contato respondeu")),1),e("option",Or,a(t(o)("Contato leu a mensagem")),1),e("option",zr,a(t(o)("Mensagem foi entregue")),1),e("option",Br,a(t(o)("Sem resposta após X minutos")),1)],512),[[Se,c.value.gatilho.tipo]])]),e("div",Kr,[e("label",Wr,a(c.value.gatilho.tipo==="timeout_sem_resposta"?"Aguardar desde o envio":"Espera adicional após o evento (0 = imediato)"),1),e("div",Gr,[ve(e("input",{"onUpdate:modelValue":m[3]||(m[3]=h=>c.value.gatilho.delay=h),type:"number",min:"0",class:"w-24 rounded-xl border border-[var(--border)] bg-[var(--surface)] px-3 py-2 text-sm text-[var(--text)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)]"},null,512),[[De,c.value.gatilho.delay,void 0,{number:!0}]]),ve(e("select",{"onUpdate:modelValue":m[4]||(m[4]=h=>c.value.gatilho.delay_unidade=h),class:"flex-1 rounded-xl border border-[var(--border)] bg-[var(--surface)] px-2 py-2 text-sm text-[var(--text)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] appearance-none"},[e("option",Hr,a(t(o)("Minutos")),1),e("option",Jr,a(t(o)("Horas")),1),e("option",Qr,a(t(o)("Dias")),1),e("option",Zr,a(t(o)("Semanas")),1),e("option",Xr,a(t(o)("Meses")),1)],512),[[Se,c.value.gatilho.delay_unidade]])])])])):x("",!0),c.value.ordem===1?(s(),r("div",Yr,[$(t(Wa),{class:"h-3.5 w-3.5 text-[var(--accent)] shrink-0 mt-0.5"}),e("p",en,[e("span",an,a(t(o)("Passo 1")),1),_(" "+a(t(o)("é o disparo inicial â enviado a todos os contatos ao ativar. Os"))+" ",1),e("span",tn,a(t(o)("gatilhos aparecem a partir do Passo 2")),1),_(" "+a(t(o)("para definir quando cada próxima mensagem é enviada.")),1)])])):x("",!0),c.value.acao==="enviar_mensagem"?(s(),r("div",on,[e("div",sn,[e("label",rn,a(t(o)("MÃdia (opcional)")),1),l.value.tipo?(s(),r("div",dn,[l.value.tipo==="imagem"&&l.value.previewUrl?(s(),r("img",{key:0,src:l.value.previewUrl,class:"w-12 h-12 rounded-lg object-cover shrink-0"},null,8,cn)):(s(),r("div",un,[(s(),se(Ue(_e.value),{class:"h-5 w-5 text-[var(--accent)]"}))])),e("div",pn,[e("p",vn,a(ze.value),1),l.value.arquivo?(s(),r("p",mn,a(l.value.arquivo.name),1)):c.value.midia_s3_key?(s(),r("p",xn,a(t(o)("MÃdia salva")),1)):x("",!0),l.value.uploadPending?(s(),r("p",bn,a(t(o)("Pendente de envio")),1)):x("",!0)]),e("button",{type:"button",class:"p-1 rounded-lg text-[var(--subtle)] hover:text-red-500 hover:bg-red-500/08 transition",onClick:U},[$(t(Me),{class:"h-3.5 w-3.5"})])])):(s(),r(oe,{key:0},[e("div",nn,[e("button",{type:"button",class:"flex flex-col items-center gap-1 rounded-xl border border-[var(--border)] py-2.5 text-xs text-[var(--muted)] hover:border-[var(--accent)]/40 hover:text-[var(--text)] transition duration-200",onClick:m[5]||(m[5]=h=>K.value?.click())},[$(t(Ne),{class:"h-4 w-4"}),_(" "+a(t(o)("Imagem / VÃdeo")),1)]),e("button",{type:"button",class:"flex flex-col items-center gap-1 rounded-xl border border-[var(--border)] py-2.5 text-xs text-[var(--muted)] hover:border-[var(--accent)]/40 hover:text-[var(--text)] transition duration-200",onClick:m[6]||(m[6]=h=>te.value?.click())},[$(t(at),{class:"h-4 w-4"}),_(" "+a(t(o)("Ãudio")),1)]),e("button",{type:"button",class:"flex flex-col items-center gap-1 rounded-xl border border-[var(--border)] py-2.5 text-xs text-[var(--muted)] hover:border-[var(--accent)]/40 hover:text-[var(--text)] transition duration-200",onClick:m[7]||(m[7]=h=>xe.value?.click())},[$(t(Ye),{class:"h-4 w-4"}),_(" "+a(t(o)("Documento")),1)])]),e("p",ln,a(t(o)("Imagem/vÃdeo/áudio: 80 MB · Documento (PDF/docx/xlsx): 20 MB.")),1)],64)),l.value.tipo?(s(),r(oe,{key:2},[(s(!0),r(oe,null,le(ue.value,(h,ne)=>(s(),r("div",{key:ne,class:"rounded-xl border border-[var(--accent)]/20 bg-[var(--accent)]/04 px-2.5 py-1.5 flex items-center gap-2"},[(s(),se(Ue(_e.value),{class:"h-4 w-4 text-[var(--subtle)] shrink-0"})),e("span",hn,[_(a(h.originalName||h.arquivo?.name||"Variação")+" ",1),e("span",fn,"("+a(String.fromCharCode(66+ne))+")",1)]),e("button",{type:"button",class:"text-[var(--subtle)] hover:text-red-500 transition",onClick:me=>ye(ne)}
13,[$(t(Me),{class:"h-3 w-3"})],8,_n)]))),128)),e("button",{type:"button",class:"text-[11px] font-semibold text-[var(--accent)] hover:underline",onClick:m[8]||(m[8]=h=>be.value?.click())},a(t(o)("+ Adicionar variação de mÃdia")),1),Q.value>1?(s(),r("p",gn,a(Q.value)+" "+a(t(o)("mÃdias â cada contato recebe uma em rodÃzio.")),1)):x("",!0),e("input",{ref_key:"fileInputMidiaExtraFunil",ref:be,type:"file",class:"hidden",accept:S.value,onChange:Y},null,40,yn)],64)):x("",!0)]),e("div",wn,[e("div",$n,[e("label",kn,a(l.value.tipo?"Legenda (opcional) â abas":"Variações (5â20 ao ativar)"),1),e("button",{type:"button",class:"inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-bold bg-[var(--accent)]/12 text-[var(--accent)] border border-[var(--accent)]/25 hover:bg-[var(--accent)]/22 transition duration-150",onClick:xa},a(Ze))]),e("div",Cn,[e("button",{type:"button",disabled:!c.value.templates||c.value.templates.length>=Ia,class:"shrink-0 p-1 mr-1 rounded text-[var(--muted)] hover:text-[var(--text)] disabled:opacity-30",onClick:ba},[$(t(Re),{class:"h-3.5 w-3.5"})],8,An),(s(!0),r(oe,null,le(L.value,h=>(s(),r("div",{key:h.id,class:"group relative shrink-0"},[e("button",{type:"button",class:ie(["block py-1.5 text-[11px] font-semibold whitespace-nowrap border-b-2 transition duration-150",[L.value.length>1?"pl-2.5 pr-6":"px-2.5",P.value===h.idx?"border-[var(--accent)] text-[var(--text)]":"border-transparent text-[var(--muted)] hover:text-[var(--text)]"]]),onClick:ne=>P.value=h.idx},a(t(o)(h.label)),11,Sn),L.value.length>1?(s(),r("button",{key:0,type:"button",class:ie(["absolute right-0.5 top-1/2 -translate-y-1/2 z-10 flex items-center justify-center w-5 h-5 rounded text-[var(--subtle)] hover:text-red-500 hover:bg-red-500/10 transition duration-150",P.value===h.idx?"opacity-100":"opacity-0 group-hover:opacity-100"]),title:`Remover variação ${h.label}`,onClick:Pe(ne=>ta(h.id),["stop"])},[$(t(Me),{class:"h-3 w-3"})],10,In)):x("",!0)]))),128))]),e("div",Mn,[e("button",{type:"button",disabled:g.value||!n.campanhaId,class:"inline-flex items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-xs font-semibold border border-[var(--border)] text-[var(--text)] hover:bg-[var(--surface-2)] transition duration-200 disabled:opacity-45 disabled:cursor-not-allowed",onClick:ha},[g.value?(s(),r("span",Pn)):x("",!0),_(" "+a(t(o)("Gerar variação")),1)],8,En)]),e("div",Ln,[ve(e("textarea",{ref_key:"textareaEdit",ref:N,"onUpdate:modelValue":m[9]||(m[9]=h=>c.value.templates[P.value]=h),rows:l.value.tipo?2:4,disabled:g.value,placeholder:l.value.tipo?"Legenda da mÃdia (opcional)...":"Digite a mensagem para este passo...",class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 text-sm text-[var(--text)] placeholder:text-[var(--subtle)] resize-none focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] dark:focus-visible:shadow-[var(--glow)] disabled:opacity-0",onInput:m[10]||(m[10]=h=>H.value?.bloquearAuto())},null,40,jn),[[De,c.value.templates[P.value]]]),g.value?(s(),r("div",Dn,[m[12]||(m[12]=e("span",{class:"h-5 w-5 border-2 border-[var(--accent)] border-t-transparent rounded-full animate-spin"},null,-1)),e("span",Tn,a(t(o)("Gerando variação com IA...")),1)])):x("",!0)]),c.value.templates?(s(),r("p",Un,a(t(o)("Aba A é a referência para a IA. MÃn. 5 textos por passo (exc. só mÃdia/áudio), máx."))+" "+a(Ia)+". ",1)):x("",!0),$(pt,{ref_key:"painelIaFunilRef",ref:H,"campanha-id":n.campanhaId??null,escopo:{ordem:c.value.ordem},"indice-ativo":P.value,templates:c.value.templates||[],"nome-campanha":n.nomeCampanha,"auto-inicial":!0,"legenda-de-midia":!!l.value.tipo,class:"hidden",onAplicar:We},null,8,["campanha-id","escopo","indice-ativo","templates","nome-campanha","legenda-de-midia"])]),c.value.templates&&c.value.templates[P.value]?.trim()||c.value.template?.trim()||l.value.tipo?(s(),r("div",Rn,[e("p",Nn,a(t(o)("Preview")),1),e("div",Vn,[l.value.tipo==="imagem"&&l.value.previewUrl?(s(),r("div",qn,[e("img",{src:l.value.previewUrl,class:"w-full max-h-28 object-cover"}
13,null,8,Fn)])):l.value.tipo==="video"?(s(),r("div",On,[$(t(La),{class:"h-6 w-6 text-white/60"})])):l.value.tipo==="audio"?(s(),r("div",zn,[e("div",Bn,[$(t(Da),{class:"h-3.5 w-3.5 text-[var(--accent)]"})]),m[13]||(m[13]=e("div",{class:"h-1 flex-1 bg-[var(--border)] rounded-full"},[e("div",{class:"h-full w-1/3 bg-[var(--accent)] rounded-full"})],-1))])):x("",!0),oa.value?.trim()?(s(),r("div",{key:3,class:ie(["px-2.5 py-1.5",l.value.tipo?"border-t border-[var(--border)]":""])},[e("p",Kn,a(fa.value),1)],2)):x("",!0)])])):x("",!0)])):c.value.acao==="pausar_ia"?(s(),r("div",Wn,a(t(o)("A IA para de responder este contato. Ãtil para quando o cliente responde e precisa de atendimento humano.")),1)):c.value.acao==="encerrar"?(s(),r("div",Gn,a(t(o)("O fluxo do funil é encerrado para este contato silenciosamente, sem enviar mensagem.")),1)):x("",!0)])):x("",!0),e("div",Hn,[c.value?(s(),r("div",Jn,[c.value.ordem>1?(s(),r("button",{key:0,type:"button",class:"inline-flex items-center gap-1 rounded-lg px-2.5 py-1.5 text-xs font-semibold text-red-500 bg-red-500/08 border border-red-500/20 hover:bg-red-500/15 transition duration-200",onClick:he},[$(t(ea),{class:"h-3.5 w-3.5"}),_(" "+a(t(o)("Remover")),1)])):x("",!0),e("button",{type:"button",disabled:l.value.uploading||T.value,class:"inline-flex items-center gap-1 rounded-lg px-2.5 py-1.5 text-xs font-semibold text-violet-400 bg-violet-500/08 border border-violet-500/20 hover:bg-violet-500/15 transition duration-200 disabled:opacity-50 disabled:cursor-not-allowed",onClick:ae},[$(t(Re),{class:"h-3.5 w-3.5"}),_(" "+a(t(o)("Ramo")),1)],8,Qn)])):x("",!0),e("div",Zn,[e("button",{type:"button",class:"flex-1 rounded-lg py-1.5 text-sm font-semibold border border-[var(--border)] text-[var(--muted)] hover:bg-[var(--surface-2)] transition",onClick:k},a(t(o)("Cancelar")),1),e("button",{type:"button",disabled:l.value.uploading||T.value,class:"flex-1 btn-primary-gradient inline-flex items-center justify-center gap-1.5 rounded-lg py-1.5 text-sm font-semibold transition disabled:opacity-50",onClick:Z},[l.value.uploading||T.value?(s(),r("span",Yn)):x("",!0),_(" "+a(l.value.uploading?"Enviandoâ¦":T.value?"Salvandoâ¦":"Salvar"),1)],8,Xn)])])])):x("",!0)]),_:1}),e("input",{ref_key:"fileInputMedia",ref:K,type:"file",class:"hidden",accept:"image/jpeg,image/jpg,image/png,image/webp,video/mp4",onChange:J},null,544),e("input",{ref_key:"fileInputAudio",ref:te,type:"file",class:"hidden",accept:"audio/ogg,audio/mpeg,audio/mp4,audio/aac",onChange:re},null,544),e("input",{ref_key:"fileInputDocumento",ref:xe,type:"file",class:"hidden",accept:t(Ma),onChange:W},null,40,el)])}}}),vt=Object.assign(ot(al,[["__scopeId","data-v-02caba08"]]),{__name:"DisparosFunilBuilder"}),tl={class:"fixed inset-0 z-50 flex flex-col bg-[var(--bg)] overflow-hidden"},ol={class:"shrink-0 flex items-center gap-6 px-6 py-3 border-b border-[var(--border)] bg-[var(--surface)]"},sl={class:"shrink-0 min-w-0"},rl={class:"text-[10px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},nl=["title"],ll={class:"flex-1 flex items-center justify-center gap-0"},il=["onClick"],dl={key:1},cl={class:"text-[9px] text-[var(--subtle)] hidden sm:block text-center max-w-[80px] leading-tight"},ul={class:"flex-1 overflow-hidden"},pl={key:0,class:"h-full overflow-y-auto custom-scrollbar flex justify-center"},vl={class:"w-full max-w-lg py-8 px-6 space-y-5"},ml={class:"space-y-1 mb-6"},xl={class:"text-lg font-bold text-[var(--text)]"},bl={class:"text-sm text-[var(--muted)]"},hl={class:"space-y-2"},fl={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},_l=["placeholder"],gl={class:"space-y-2"},yl={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},wl={class:"grid grid-cols-2 gap-3"},$l=["disabled"],kl={class:"text-sm font-bold"},Cl={class:"text-[11px] leading-relaxed"},Al=["disabled"],Sl={class:"text-sm font-bold flex items-center gap-1.5"},Il={class:"inline-flex items-center rounded-full px-1.5 py-0.5 text-[10px] font-bold bg-violet-500/15 text-violet-400 border border-violet-500/25"},Ml={class:"text-[11px] leading-relaxed"},El={class:"space-y-2"},Pl={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Ll={value:"lenta"},jl={value:"media"},Dl={value:"rapida"},Tl={value:"inteligente"},Ul={key:0,class:"text-xs text-[var(--muted)] bg-[var(--surface-2)] border border-[var(--border)] rounded-xl px-3 py-2"},Rl={class:"grid grid-cols-2 gap-3"},Nl={class:"space-y-2"},Vl={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},ql={class:"space-y-2"},Fl={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Ol={class:"grid grid-cols-2 gap-3"},zl={class:"space-y-2"},Bl={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Kl=["value"],Wl={class:"space-y-2"},Gl={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Hl=["value"],Jl={key:0,class:"text-xs text-red-500 font-medium"},Ql={key:1,class:"text-xs text-[var(--subtle)]"},Zl={class:"space-y-2"},Xl={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Yl={class:"grid grid-cols-2 gap-3"},ei={class:"text-sm font-bold"},ai={class:"text-[11px] leading-relaxed"},ti={class:"text-sm font-bold"},oi={class:"text-[11px] leading-relaxed"},si={key:0,class:"text-xs text-amber-500 bg-amber-500/10 border border-amber-500/25 rounded-xl px-3 py-2"},ri={class:"space-y-2"},ni={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},li={value:null},ii=["value"],di={key:0,class:"text-xs text-[var(--subtle)] leading-relaxed"},ci={key:1,class:"text-xs text-[var(--subtle)]"},ui={class:"space-y-2"},pi={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},vi={key:2,class:"space-y-2"},mi={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},xi={value:null},bi=["value"],hi={key:0,class:"rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 space-y-2"},fi={class:"text-xs text-[var(--muted)] whitespace-pre-wrap"},_i={key:0,class:"space-y-2"},gi={class:"text-[11px] font-bold uppercase tracking-[0.06em] text-[var(--muted)]"},yi=["onUpdate:modelValue","placeholder"],wi={key:0,class:"text-xs text-amber-500"},$i={class:"text-xs text-[var(--subtle)] leading-relaxed"},ki={class:"space-y-2"},Ci={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Ai={value:null},Si=["value"],Ii={class:"text-xs text-[var(--subtle)]"},Mi={key:3,class:"text-sm text-red-500 font-medium"},Ei={key:4,class:"rounded-2xl border border-[var(--border)] bg-[var(--surface-2)] p-4"},Pi={key:5,class:"rounded-xl border border-dashed border-[var(--border)] bg-[var(--surface-2)]/40 px-4 py-3 flex items-center gap-2 text-xs text-[var(--subtle)]"},Li={key:1,class:"h-full overflow-y-auto custom-scrollbar flex justify-center"},ji={class:"w-full max-w-2xl py-8 px-6 space-y-6"},Di={class:"space-y-1 mb-2"},Ti={class:"text-lg font-bold text-[var(--text)]"},Ui={class:"text-sm text-[var(--muted)]"},Ri={class:"flex items-center gap-3"},Ni={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Vi={class:"flex gap-1 bg-[var(--surface-2)] rounded-xl p-1 border border-[var(--border)]"}
13,qi=["onClick"],Fi={key:0,class:"space-y-4"},Oi={class:"rounded-xl border border-[var(--accent)]/20 bg-[var(--accent)]/08 px-4 py-3 flex items-start gap-3"},zi={class:"text-xs text-[var(--muted)]"},Bi={class:"font-semibold text-[var(--text)]"},Ki={key:1,class:"space-y-4"},Wi={class:"rounded-xl border border-[var(--border)] bg-[var(--surface-2)] p-4 space-y-3"},Gi={class:"text-[11px] font-bold uppercase tracking-[0.06em] text-[var(--muted)]"},Hi={class:"grid grid-cols-[1fr_1fr_auto] gap-2 items-end"},Ji={class:"space-y-1"},Qi={class:"text-[11px] text-[var(--subtle)]"},Zi=["placeholder","disabled"],Xi={class:"space-y-1"},Yi={class:"text-[11px] text-[var(--subtle)]"},ed=["value","disabled"],ad=["disabled"],td={key:0,class:"w-3.5 h-3.5 border-2 border-current border-t-transparent rounded-full animate-spin"},od={key:0,class:"rounded-xl border border-emerald-500/25 bg-emerald-500/10 px-4 py-3 flex flex-wrap gap-3 text-sm"},sd={class:"font-semibold text-emerald-600 dark:text-emerald-400"},rd={key:0,class:"text-[var(--muted)]"},nd={key:1,class:"text-amber-500"},ld={class:"text-center py-4 text-xs text-[var(--subtle)]"},id={class:"mt-4 space-y-2"},dd={class:"flex items-center justify-between"},cd={class:"text-[11px] font-bold uppercase tracking-[0.06em] text-[var(--muted)]"},ud={key:0,class:"flex items-center justify-center py-8 gap-2 text-sm text-[var(--muted)]"},pd={key:1,class:"rounded-xl border border-dashed border-[var(--border)] py-8 text-center text-sm text-[var(--subtle)]"},vd={key:2,class:"rounded-xl border border-[var(--border)] divide-y divide-[var(--border)] overflow-hidden"},md={class:"max-h-[420px] overflow-y-auto divide-y divide-[var(--border)]"},xd={class:"w-7 h-7 rounded-full bg-[var(--accent)]/15 flex items-center justify-center text-[10px] font-bold text-[var(--accent)] shrink-0"},bd={class:"min-w-0 flex-1"},hd={class:"text-sm font-medium text-[var(--text)] truncate"},fd={class:"text-xs text-[var(--muted)]"},_d={key:0,class:"flex items-center justify-between gap-3 px-4 py-2 border-t border-[var(--border)] bg-[var(--surface-2)]/40"},gd={class:"text-xs text-[var(--subtle)]"},yd=["disabled"],wd={key:0,class:"w-3 h-3 border-2 border-[var(--accent)] border-t-transparent rounded-full animate-spin"},$d={key:2,class:"h-full flex flex-col overflow-hidden"},kd={class:"shrink-0 px-6 pt-5 pb-3 border-b border-[var(--border)]"},Cd={class:"text-lg font-bold text-[var(--text)]"},Ad={class:"text-sm text-[var(--muted)] mt-0.5"},Sd={class:"flex-1 min-h-0"},Id={key:0,class:"shrink-0 px-6 pb-3"},Md={class:"text-sm text-red-500 font-medium"},Ed={key:3,class:"h-full flex flex-col xl:flex-row overflow-hidden min-h-0"},Pd={class:"w-full xl:w-64 xl:max-w-xs xl:shrink-0 border-b xl:border-b-0 xl:border-r border-[var(--border)] overflow-y-auto custom-scrollbar p-4 xl:p-6 space-y-4"},Ld={class:"text-sm font-bold text-[var(--text)] leading-snug"},jd={class:"text-sm text-[var(--muted)] leading-relaxed"},Dd={class:"font-semibold text-[var(--text)]"},Td={class:"text-sm text-[var(--muted)] leading-relaxed"},Ud={class:"text-sm text-[var(--muted)] leading-relaxed"},Rd={class:"font-semibold text-[var(--text)]"},Nd={class:"font-semibold text-[var(--accent)]"},Vd={key:0},qd={class:"font-semibold text-[var(--text)]"},Fd={class:"rounded-xl bg-[var(--surface-2)] border border-[var(--border)] px-3 py-2.5 text-xs text-[var(--muted)]"},Od={key:0,class:"rounded-xl border border-[var(--accent)]/25 bg-[var(--accent)]/08 p-3 space-y-2"},zd={class:"text-[11px] font-bold uppercase tracking-[0.06em] text-[var(--muted)]"},Bd={key:0,class:"text-[var(--accent)]"},Kd={class:"flex items-center gap-2"},Wd={class:"text-sm font-medium text-[var(--text)]"},Gd={class:"text-[var(--subtle)]"},Hd={key:0,class:"text-xs text-[var(--subtle)] truncate"},Jd={key:1,class:"text-xs text-[var(--subtle)] truncate"},Qd={class:"text-xs text-[var(--text)] flex-1 truncate"},Zd={class:"text-[var(--subtle)]"},Xd=["onClick"],Yd={class:"flex items-center gap-3 pt-1"},ec={class:"text-[11px] text-[var(--subtle)] leading-relaxed"},ac=["accept"],tc={class:"flex-1 flex flex-col lg:flex-row min-w-0 min-h-0 overflow-hidden bg-[var(--bg)]"},oc={class:"flex-1 flex flex-col overflow-hidden min-w-0 min-h-0"},sc={class:"shrink-0 flex items-center px-4 pt-3 gap-0 overflow-x-auto border-b border-[var(--border)] bg-[var(--surface)]"},rc=["disabled","title"],nc=["onClick"],lc=["title","onClick"],ic={class:"flex-1 overflow-y-auto custom-scrollbar flex flex-col justify-end p-6 gap-3",style:{background:"radial-gradient(ellipse at 60% 0%, color-mix(in srgb, var(--accent) 4%, transparent) 0%, transparent 70%), var(--bg)"}},dc={class:"flex items-center gap-2 mb-2 opacity-40"},cc={class:"w-7 h-7 rounded-full bg-[var(--accent)]/20 flex items-center justify-center"},uc={class:"text-[10px] font-bold text-[var(--accent)]"},pc={class:"text-xs text-[var(--muted)] font-medium"},vc={key:0,class:"max-w-[75%] self-start"},mc={class:"rounded-2xl rounded-tl-sm overflow-hidden border border-[var(--accent)]/20 bg-[var(--surface-2)] dark:bg-[rgba(7,19,37,0.9)] shadow-[var(--shadow)]"},xc={key:0},bc=["src","alt"],hc={key:1,class:"w-full h-40 flex items-center justify-center bg-[var(--surface-2)]"},fc={key:1,class:"h-40 bg-black/60 flex flex-col items-center justify-center gap-2"},_c={class:"w-12 h-12 rounded-full bg-white/15 flex items-center justify-center"},gc={key:0,class:"text-[10px] text-white/50 truncate max-w-[180px] px-2"},yc={key:2,class:"p-3 flex items-center gap-3"},wc={class:"w-9 h-9 rounded-full bg-[var(--accent)]/20 flex items-center justify-center"},$c={class:"flex-1 space-y-1"},kc={class:"text-[10px] text-[var(--subtle)]"},Cc={key:3,class:"p-3 flex items-center gap-3"},Ac={class:"w-10 h-10 rounded-lg bg-[var(--accent)]/15 flex items-center justify-center shrink-0"},Sc={class:"flex-1 min-w-0"},Ic={class:"text-xs text-[var(--text)] font-medium truncate"},Mc={class:"text-[10px] text-[var(--subtle)]"},Ec={key:4,class:"px-3 py-2 border-t border-[var(--border)]"},Pc={class:"text-sm text-[var(--text)] whitespace-pre-wrap break-words leading-relaxed"},Lc={key:1,class:"max-w-[75%] self-start"},jc={class:"rounded-2xl rounded-tl-sm px-3.5 py-2.5 border border-[var(--accent)]/20 bg-[var(--surface-2)] dark:bg-[rgba(7,19,37,0.85)] shadow-[var(--shadow)]"},Dc={class:"text-sm text-[var(--text)] whitespace-pre-wrap break-words leading-relaxed"},Tc={class:"shrink-0 border-t border-[var(--border)] bg-[var(--surface)]"},Uc={class:"flex items-center gap-2 px-4 pt-3 pb-1 flex-wrap"},Rc={class:"text-[10px] font-bold uppercase tracking-[0.06em] text-[var(--subtle)]"},Nc={class:"px-4 pt-1 pb-1 flex items-center justify-end"},Vc=["disabled"],qc={key:0,class:"h-3.5 w-3.5 border-2 border-[var(--accent)] border-t-transparent roun
13ded-full animate-spin"},Fc={class:"relative"},Oc=["placeholder","disabled"],zc={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-2 bg-[var(--surface)]/80 backdrop-blur-[2px]"},Bc={class:"text-xs text-[var(--muted)]"},Kc={class:"flex flex-col gap-1 px-3 py-2 border-t border-[var(--border)]"},Wc={class:"flex items-center gap-1 flex-wrap"},Gc=["title"],Hc=["title"],Jc=["title"],Qc={key:0,class:"flex items-center gap-1.5 ml-1 px-2 py-1 rounded-lg bg-[var(--accent)]/10 border border-[var(--accent)]/20"},Zc={class:"text-xs text-[var(--accent)] font-medium"},Xc={class:"text-[10px] text-[var(--subtle)] pl-1"},Yc={key:0,class:"px-4 pb-2 text-[10px] text-[var(--muted)]"},eu={key:4,class:"h-full overflow-y-auto custom-scrollbar flex justify-center"},au={class:"w-full max-w-lg py-8 px-6 space-y-6"},tu={class:"space-y-1 mb-2"},ou={class:"text-lg font-bold text-[var(--text)]"},su={class:"text-sm text-[var(--muted)]"},ru={class:"rounded-2xl border border-[var(--border)] bg-[var(--surface-2)] divide-y divide-[var(--border)] overflow-hidden"},nu={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)] shrink-0 mt-0.5"},lu={class:"text-sm text-[var(--text)] text-right"},iu={key:0,class:"space-y-2"},du={class:"text-[11px] font-bold uppercase tracking-[0.06em] text-[var(--muted)]"},cu={class:"space-y-2"},uu={class:"text-[10px] font-bold uppercase tracking-[0.06em] text-[var(--accent)] block mb-1"},pu={class:"whitespace-pre-wrap break-words text-[var(--muted)]"},vu={key:1,class:"space-y-2"},mu={class:"text-[11px] font-bold uppercase tracking-[0.06em] text-[var(--muted)]"},xu={class:"space-y-1"},bu={class:"w-6 h-6 rounded-full bg-[var(--accent)]/15 flex items-center justify-center text-[10px] font-bold text-[var(--accent)] shrink-0 mt-0.5"},hu={class:"min-w-0 flex-1"},fu={class:"text-sm font-bold text-[var(--text)] leading-tight"},_u={class:"text-[11px] font-semibold text-[var(--muted)] mt-0.5"},gu={class:"text-[11px] text-[var(--muted)]"},yu={key:0,class:"ml-1.5 text-violet-400"},wu={key:0,class:"text-[11px] text-[var(--subtle)] mt-0.5 truncate"},$u={key:2,class:"rounded-xl border border-amber-500/30 bg-amber-500/10 px-4 py-3 flex items-start gap-3"},ku={class:"text-sm text-amber-600 dark:text-amber-400"},Cu={key:3,class:"text-sm text-red-500 font-medium"},Au={class:"shrink-0 flex items-center justify-between px-6 py-3 border-t border-[var(--border)] bg-[var(--surface-2)]"},Su={key:0,class:"flex items-center gap-2 cursor-pointer select-none"},Iu={class:"text-xs text-[var(--muted)]"},Mu={key:1},Eu={class:"flex items-center gap-3"},Pu=["disabled"],Lu=["disabled"],ju={key:0,class:"w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin"},Du=["accept"],na=20,Ja=5,Qa="{{nome}}",Tu=$e({__name:"DisparosCampanhaForm",props:{campanha:{}},emits:["fechar","salvo"],setup(n,{emit:p}){const{tn:o}=Ee(),d=n,b=p,C=Le(),E=Xa(),R=ua(),w=wt(),{flows:z}=la(E),F=X(()=>z.value.filter(v=>v.active));Ta(async()=>{const v=R.barbeariaSelecionada?.id;v&&await E.loadFlows(v,{active:!0,limit:100});try{const[u]=await Promise.all([w.fetchTodasColunas(),w.loadFunis()]);S.value=u??[]}catch(u){console.error("[disparo] etapas do CRM:",u)}await q()});const L=[{label:o("Configurações"),desc:"Nome, velocidade e perÃodo"},{label:o("Público Alvo"),desc:"Contatos da campanha"},{label:o("Conteúdo"),desc:"Mensagens e mÃdia"},{label:o("Revisão"),desc:"Confirme e salve"}],j=[{id:"csv",label:"Upload CSV",icon:st},{id:"manual",label:"Adicionar Manual",icon:rt}],A=y(1),c=y(!1),P=y(""),H=y(!1),g=y(null),N=y(0),V=y("csv"),M=y([Math.random().toString(36).slice(2)]),I=y(["A"]),K=()=>Math.random().toString(36).slice(2)+Date.now().toString(36),te=()=>{const v=I.value.reduce((u,i)=>Math.max(u,i.charCodeAt(0)),64);return String.fromCharCode(v+1)},xe=X(()=>l.value.templates.map((v,u)=>({id:M.value[u]??`t-${u}`,label:I.value[u]??String.fromCharCode(65+u),idx:u}))),l=y({nome:"",velocidade:"inteligente",tipo:"simples",data_inicio:null,data_fim:null,templates:[""],flow_id:null,janela_hora_inicio:8,janela_hora_fim:21,modo_ritmo:"espalhar",crm_coluna_id:null,maquina_id:null,whatsapp_template_id:null,template_variaveis:[]}),ue=y([]),be=X(()=>ue.value.find(v=>v.id===l.value.whatsapp_template_id)||null),T=X(()=>{const v=be.value;return v?(l.value.template_variaveis||[]).slice(0,v.variaveis).filter(i=>String(i??"").trim()!=="").length<v.variaveis:!1});async function q(){const v=R.barbeariaSelecionada?.id;if(v)try{const u=await de(`/whatsapp-oficial/templates?barbearia_id=${v}&apenas_aprovados=1`,"GET");ue.value=u?.templates||[]}catch{}}const S=y([]),Q=X(()=>S.value.map(v=>{const u=w.funis.find(i=>i.id===v.crm_funil_id);return{id:v.id,label:u?`${u.nome} · ${v.nome}`:v.nome}})),Y=y([]),ye=X(()=>l.value.templates.filter(v=>v.trim())),J=y(null),re=y(!1),W=y({nome:"",telefone:""}),U=y(!1),ee=y(null),_e=y(null),ze=y(null),Be=y(null),Ke=y(null),O=y({tipo:null,arquivo:null,previewUrl:null,originalName:null,uploadPending:!1,s3Key:null}),k=y([]),Z=y(null);we(()=>d.campanha,v=>{if(v){g.value=v;const u=v.midia_captions?.length?[...v.midia_captions]:v.templates?.length?[...v.templates]:v.midia_caption?[v.midia_caption]:[""];if(l.value={nome:v.nome,velocidade:v.velocidade,tipo:v.tipo==="funil"?"funil":"simples",data_inicio:v.data_inicio?.split("T")[0]||null,data_fim:v.data_fim?.split("T")[0]||null,templates:u,flow_id:v.flow_id??null,
13janela_hora_inicio:v.janela_hora_inicio??8,janela_hora_fim:v.janela_hora_fim??21,modo_ritmo:v.modo_ritmo==="maximo"?"maximo":"espalhar",crm_coluna_id:v.crm_coluna_id??null,maquina_id:v.maquina_id??null,whatsapp_template_id:v.whatsapp_template_id??null,template_variaveis:Array.isArray(v.template_variaveis)?[...v.template_variaveis]:[]},M.value=u.map(()=>K()),I.value=u.map((i,G)=>String.fromCharCode(65+G)),Y.value=v.funil_config?.passos?[...v.funil_config.passos]:[],k.value=[],v.midias?.length){const[i,...G]=v.midias;O.value={tipo:i.tipo,arquivo:null,previewUrl:null,originalName:i.filename??null,uploadPending:!1,s3Key:i.s3_key},k.value=G.map(ce=>({arquivo:null,previewUrl:null,originalName:ce.filename??null,uploadPending:!1,s3Key:ce.s3_key}))}else v.midia_tipo&&(O.value={tipo:v.midia_tipo,arquivo:null,previewUrl:null,originalName:v.midia_filename??null,uploadPending:!1,s3Key:v.midia_s3_key??null});A.value===2&&qe()}else l.value={nome:"",velocidade:"inteligente",tipo:"simples",data_inicio:null,data_fim:null,templates:[""],flow_id:null,janela_hora_inicio:8,janela_hora_fim:21,modo_ritmo:"espalhar",crm_coluna_id:null,maquina_id:null},M.value=[K()],I.value=["A"],Y.value=[],g.value=null,O.value={tipo:null,arquivo:null,previewUrl:null,originalName:null,uploadPending:!1,s3Key:null},k.value=[],C.contatos=[],C.paginacaoContatos=null},{immediate:!0});const ae=X(()=>(l.value.templates[N.value]||"").replace(/\{\{nome\}\}/gi,"João").trim()||"Sua mensagem aparecerá aqui..."),he=X(()=>({imagem:"Imagem",video:"VÃdeo",audio:"Ãudio",documento:"Documento"})[O.value.tipo||""]||""),Ve=X(()=>({imagem:Ne,video:La,audio:Da,documento:Ye})[O.value.tipo||""]||Ne),ma=X(()=>!!(l.value.nome.trim()&&l.value.velocidade&&l.value.data_inicio&&l.value.data_fim)),xa=X(()=>l.value.templates.filter(v=>v.trim()).length),ba=X(()=>{const v=l.value.templates.some(u=>u.trim().length>0);return O.value.tipo==="audio"&&!v||(O.value.tipo==="imagem"||O.value.tipo==="video")&&!v||O.value.tipo==="documento"&&!v}),ta=X(()=>l.value.tipo==="simples"&&!ba.value),ha=X(()=>[{label:"Nome",value:l.value.nome},{label:"Tipo",value:l.value.tipo==="funil"?"Funil de Disparo":"Simples (round-robin)"},{label:"Velocidade",value:Fe(l.value.velocidade)},{label:o("InÃcio"),value:He(l.value.data_inicio)},{label:"Fim",value:He(l.value.data_fim)},{label:"Janela",value:`${String(l.value.janela_hora_inicio).padStart(2,"0")}hâ${String(l.value.janela_hora_fim).padStart(2,"0")}h`},{label:"Ritmo",value:l.value.modo_ritmo==="maximo"?"â ï¸ Máximo (manda tudo)":"Espalhar"},{label:"Contatos",value:`${(g.value?.total_contatos||0).toLocaleString("pt-BR")} contatos`},...l.value.tipo==="simples"?[{label:"Mensagens",value:`${l.value.templates.filter(v=>v.trim()).length} template(s)`},...O.value.tipo?[{label:o("MÃdia"),value:`${he.value}${We.value>1?` (${We.value} variações)`:""}`}]:[]]:[{label:o("Passos do Funil"),value:`${Y.value.length} passo(s)`}]]),We=X(()=>O.value.tipo?1+k.value.length:0),oa=v=>({enviar_mensagem:"Enviar Mensagem",pausar_ia:"Pausar IA",encerrar:"Encerrar"})[v]||v,fa=v=>{if(!v.gatilho)return"Disparo inicial";const u={respondeu:"Respondeu",lido:"Lido",entregue:"Entregue",timeout_sem_resposta:"Sem resposta"},i={minutos:"min",horas:"h",dias:"d",semanas:"sem",meses:"mes"},G=u[v.gatilho.tipo]||v.gatilho.tipo,ce=v.gatilho.delay;if(!ce||ce<=0)return G;const Aa=i[v.gatilho.delay_unidade]||v.gatilho.delay_unidade;return`${G} ⢠${ce}${Aa}`},sa=X(()=>{if(l.value.tipo!=="funil")return!0;if(Y.value.length<2)return!1;const v=Y.value[0];return!v||v.acao!=="enviar_mensagem"?!1:Y.value.slice(1).every(u=>u.gatilho?.tipo)}),_a=()=>{l.value.templates.length<na&&(l.value.templates.push(""),M.value.push(K()),I.value.push(te()),N.value=l.value.templates.length-1,re.value=!0,Ae(async()=>{try{await J.value?.gerar("sequencia")}finally{re.value=!1}}))};async function ga(){if(!re.value){re.value=!0;try{await J.value?.gerarVariacaoAtual()}finally{re.value=!1}}}const ra=v=>{const u=M.value.indexOf(v);u===-1||l.value.templates.length<=1||(l.value.templates.splice(u,1),M.value.splice(u,1),I.value.splice(u,1),u<N.value?N.value-=1:N.value>=l.value.templates.length&&(N.value=l.value.templates.length-1))};async function qe(){g.value&&await C.loadContatos(g.value.id,1,50)}const ya=async()=>{g.value&&await C.loadMaisContatos(g.value.id)},Va=X(()=>{const v=C.paginacaoContatos;return!!v&&C.contatos.length<v.total});we(A,v=>{v===2&&qe()});const wa=v=>{v<A.value&&g.value&&(A.value=v)},$a=v=>{const u=pa(v.target.value);W.value.telefone=u},ka=Qa,Ca=()=>f(Qa),f=v=>{const u=_e.value;if(!u){l.value.templates[N.value]+=v;return}const i=u.selectionStart??l.value.templates[N.value].length,G=u.selectionEnd??i,ce=l.value.templates[N.value];l.value.templates[N.value]=ce.slice(0,i)+v+ce.slice(G),Ae(()=>{u.focus(),u.setSelectionRange(i+v.length,i+v.length)})},m=async()=>{const v=W.value.telefone.trim();if(!v||!g.value)return;U.value=!0,ee.value=null;const u=W.value.nome.trim();try{const i=await C.adicionarContatosManuais(g.value.id,[{nome:u||void 0,telefone:v}]);if(ee.value=i,W.value.nome="",W.value.telefone="",i.inseridos>0){const G=await C.loadCampanha(g.value.id);G&&(g.value=G),await qe(),B.success(o("Contato adicionado!"))}else i.duplicatas>0?B.warning(o("Telefone já está na campanha.")):i.invalidos?.length&&B.error(o("Telefone inválido."))}catch(i){B.error(i?.message||"Erro ao adicionar contato")}finally{U.value=!1}},D=async v=>{if(!g.value)return;const u=await C.loadCampanha(g.value.id);u&&(g.value=u),await qe()},h=v=>{const u=v.target,i=u.files?.[0];if(!i)return;const G=Je(i);if(!G.ok){B.warning(G.mensagem),u.value="";return}const ce=i.type.startsWith("image/")?"imagem":"video";O.value={tipo:ce,arquivo:i,previewUrl:ce==="imagem"?URL.createObjectURL(i):null,originalName:i.name,uploadPending:!0,s3Key:null},k.value=[],u.value=""},ne=v=>{const u=v.target,i=u.files?.[0];if(!i)return;const G=Je(i);if(!G.ok){B.warning(G.mensagem),u.value="";return}O.value={tipo:"audio",arquivo:i,previewUrl:null,originalName:i.name,uploadPending:!0,s3Key:null},k.value=[],u.value=""},me=v=>{const u=v.target,i=u.files?.[0];if(!i)return;if(i.type&&!da(i.type)){B.warning(o("Tipo de documento não suportado. Aceitos: PDF, doc/docx, xls/xlsx, ppt/pptx, txt, csv.")),u.value="";return}const G=ia(i);if(!G.ok){B.warning(G.mensagem),u.value="";return}O.value={tipo:"documento",arquivo:i,previewUrl:null,originalName:i.name,uploadPending:!0,s3Key:null},k.value=[],u.value=""},ge=X(()=>{switch(O.value.tipo){case"imagem":return"image/*";case"video":return"video/mp4";case"audio":return"audio/*";case"documento":return".pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.csv";default:return"*/*"}}),ke=v=>{const u=v.target,i=u.files?.[0];if(!i)return;const G=O.value.tipo,ce=G==="documento"?ia(i):Je(i);if(!ce.ok){B.warning(ce.mensagem),u.value="";return}if(G==="documento"&&i.type&&!da(i.type)){B.warning(o("Tipo de documento não suportado.")),u.value="";return}k.value.push({arquivo:i,previewUrl:G==="imagem"?URL.createObjectURL(i):null,originalName:i.name,uploadPending:!0,s3Key:null}),u.value=""},Ce=v=>{const u=k.value[v];u?.previewUrl&&URL.revokeObjectURL(u.previewUrl),k.value.splice(v,1)},Ge=async()=>{O.value.previewUrl&&URL.revokeObjectURL(O.value.previewUrl);for(const v of k.value)v.previewUrl&&URL.revokeObjectURL(v.previewUrl);if(O.value={tipo:null,arquivo:null,previewUrl:null,originalName:null,uploadPending:!1,s3Key:null},k.value=[],g.value?.midia_s3_key||g.value?.midias?.length)try{await C.updateCampanha(g.value.id,{midias:[],midia_s3_key:null,midia_tipo:null,midia_filename:null,midia_caption:null,midia_captions:null})}catch{}},fe=async()=>
13{if(!g.value)return!0;const v=O.value.tipo;if(!v)return!0;const u=g.value.id;try{if(O.value.uploadPending&&O.value.arquivo){const ce=await C.uploadArquivoComoMidia(u,O.value.arquivo,v);O.value.s3Key=ce.s3_key,O.value.uploadPending=!1}if(!O.value.s3Key)return!0;for(const ce of k.value)if(ce.uploadPending&&ce.arquivo){const Aa=await C.uploadArquivoComoMidia(u,ce.arquivo,v);ce.s3Key=Aa.s3_key,ce.uploadPending=!1}const i=[{s3_key:O.value.s3Key,tipo:v,filename:O.value.originalName,caption:null},...k.value.filter(ce=>ce.s3Key).map(ce=>({s3_key:ce.s3Key,tipo:v,filename:ce.originalName,caption:null}))],G=l.value.templates.map(ce=>ce.trim()).filter(Boolean);return await C.updateCampanha(u,{midias:i,midia_s3_key:O.value.s3Key,midia_tipo:v,midia_filename:O.value.originalName,midia_caption:G[0]||null,midia_captions:G.length?G:null}),!0}catch(i){return B.error(i?.message||"Erro ao fazer upload da mÃdia"),!1}},je=async()=>{if(P.value="",A.value===1){if(!ma.value){P.value="Preencha todos os campos obrigatórios.";return}if(l.value.janela_hora_fim<=l.value.janela_hora_inicio){P.value="O horário final de envio deve ser maior que o inicial.";return}c.value=!0;try{const v={nome:l.value.nome.trim(),velocidade:l.value.velocidade,tipo:l.value.tipo,data_inicio:l.value.data_inicio,data_fim:l.value.data_fim,flow_id:l.value.flow_id||null,janela_hora_inicio:l.value.janela_hora_inicio,janela_hora_fim:l.value.janela_hora_fim,modo_ritmo:l.value.modo_ritmo,crm_coluna_id:l.value.crm_coluna_id||null,maquina_id:l.value.maquina_id||null,whatsapp_template_id:l.value.whatsapp_template_id||null,template_variaveis:l.value.whatsapp_template_id?(l.value.template_variaveis||[]).map(u=>String(u??"")):null,templates:l.value.tipo==="simples"?l.value.templates.filter(u=>u.trim()).length?l.value.templates:[""]:[""]};g.value?g.value=await C.updateCampanha(g.value.id,v):g.value=await C.createCampanha(v),A.value++}catch(v){P.value=v?.data?.message||v?.message||"Erro ao salvar campanha"}finally{c.value=!1}}else if(A.value===2)A.value++;else if(A.value===3){if(l.value.tipo==="funil"){if(!sa.value){P.value=Y.value.length<2?"O funil precisa ter pelo menos 2 passos.":"Todos os passos (exceto o 1º) precisam de um gatilho definido.";return}c.value=!0;try{g.value=await C.updateCampanha(g.value.id,{funil_config:{passos:Y.value}}),A.value++}catch(u){P.value=u?.data?.message||u?.message||"Erro ao salvar funil"}finally{c.value=!1}return}const v=l.value.templates.filter(u=>u.trim());if(!v.length){P.value="Adicione pelo menos uma mensagem, ou anexe somente mÃdia conforme a regra da campanha.";return}if(ta.value&&v.length<Ja){P.value=`Inclua pelo menos ${Ja} variações de texto (você tem ${v.length}).`;return}c.value=!0;try{if(g.value){const u={nome:l.value.nome.trim(),velocidade:l.value.velocidade,data_inicio:l.value.data_inicio,data_fim:l.value.data_fim,templates:v};O.value.tipo&&v.length&&(u.midia_captions=v,u.midia_caption=v[0]??null),g.value=await C.updateCampanha(g.value.id,u)}if(O.value.tipo&&!await fe()){c.value=!1;return}A.value++}catch(u){P.value=u?.data?.message||u?.message||"Erro ao salvar conteúdo"}finally{c.value=!1}}else if(A.value===4){if(!g.value)return;b("salvo",g.value)}},Fe=v=>({lenta:"Lenta (10/hora)",media:"Média (30/hora)",rapida:"Rápida (60/hora)",inteligente:"Inteligente (adaptativa)"})[v]||v,He=v=>{if(!v)return"â";const[u,i,G]=v.split("T")[0].split("-");return`${G}/${i}/${u}`};return(v,u)=>(s(),se(Ua,{to:"body"},[$(Oe,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-150","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:Ie(()=>[e("div",tl,[e("div",ol,[e("div",sl,[e("p",rl,a(g.value?"Editar":"Criar")+" Campanha ",1),e("h2",{class:"text-sm font-extrabold text-[var(--text)] truncate max-w-[200px]",title:l.value.nome},a(l.value.nome||"Nova Campanha"),9,nl)]),e("div",ll,[(s(),r(oe,null,le(L,(i,G)=>(s(),r(oe,{key:i.label},[e("div",{class:"flex flex-col items-center gap-1 cursor-pointer",onClick:ce=>wa(G+1)},[e("div",{class:ie(["w-8 h-8 rounded-full flex items-center justify-center text-xs font-bold border-2 transition duration-200",A.value>G+1?"bg-[var(--accent)] border-[var(--accent)] text-[var(--on-accent)]":A.value===G+1?"border-[var(--accent)] text-[var(--accent)]":"border-[var(--border)] text-[var(--subtle)]"])},[A.value>G+1?(s(),se(t(Ra),{key:0,class:"h-4 w-4"}
13)):(s(),r("span",dl,a(G+1),1))],2),e("span",{class:ie(["text-[10px] font-bold tracking-[0.04em] whitespace-nowrap transition duration-200",A.value===G+1?"text-[var(--accent)]":A.value>G+1?"text-[var(--muted)]":"text-[var(--subtle)]"])},a(t(o)(i.label)),3),e("span",cl,a(i.desc),1)],8,il),G<L.length-1?(s(),r("div",{key:0,class:ie(["w-12 md:w-20 h-[2px] mb-6 mx-1 rounded-full transition duration-500",A.value>G+1?"bg-[var(--accent)]":"bg-[var(--border)]"])},null,2)):x("",!0)],64))),64))]),e("button",{type:"button",class:"shrink-0 p-2 rounded-xl text-[var(--muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] transition duration-200",onClick:u[0]||(u[0]=i=>v.$emit("fechar"))},[$(t(Me),{class:"h-5 w-5"})])]),e("div",ul,[A.value===1?(s(),r("div",pl,[e("div",vl,[e("div",ml,[e("h3",xl,a(t(o)("Configurações da Campanha")),1),e("p",bl,a(t(o)("Defina o nome, velocidade e perÃodo de envio.")),1)]),e("div",hl,[e("label",fl,[_(a(t(o)("Nome da campanha"))+" ",1),u[28]||(u[28]=e("span",{class:"text-red-500"},"*",-1))]),ve(e("input",{"onUpdate:modelValue":u[1]||(u[1]=i=>l.value.nome=i),type:"text",placeholder:t(o)("Ex: Promoção de Aniversário"),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 text-sm text-[var(--text)] placeholder:text-[var(--subtle)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] dark:focus-visible:shadow-[var(--glow)]"},null,8,_l),[[De,l.value.nome]])]),e("div",gl,[e("label",yl,a(t(o)("Tipo de campanha")),1),e("div",wl,[e("button",{type:"button",class:ie(["flex flex-col gap-1.5 rounded-xl border p-3.5 text-left transition duration-200",l.value.tipo==="simples"?"border-[var(--accent)] bg-[var(--accent)]/08 text-[var(--text)]":"border-[var(--border)] text-[var(--muted)] hover:border-[var(--accent)]/40 hover:text-[var(--text)]"]),disabled:!!g.value&&g.value.tipo==="funil",onClick:u[2]||(u[2]=i=>l.value.tipo="simples")},[e("span",kl,a(t(o)("Simples")),1),e("span",Cl,a(t(o)("5 a 20 variações de texto (rotação por contato). Assistente de IA no editor.")),1)],10,$l),e("button",{type:"button",class:ie(["flex flex-col gap-1.5 rounded-xl border p-3.5 text-left transition duration-200",l.value.tipo==="funil"?"border-[var(--accent)] bg-[var(--accent)]/08 text-[var(--text)]":"border-[var(--border)] text-[var(--muted)] hover:border-[var(--accent)]/40 hover:text-[var(--text)]"]),disabled:!!g.value&&g.value.tipo==="simples",onClick:u[3]||(u[3]=i=>l.value.tipo="funil")},[e("span",Sl,[_(a(t(o)("Funil"))+" ",1),e("span",Il,a(t(o)("NOVO")),1)]),e("span",Ml,a(t(o)("Sequência de passos automáticos com gatilhos por leitura, resposta ou tempo.")),1)],10,Al)])]),e("div",El,[e("label",Pl,[_(a(t(o)("Velocidade de envio"))+" ",1),u[29]||(u[29]=e("span",{class:"text-red-500"},"*",-1))]),ve(e("select",{"onUpdate:modelValue":u[4]||(u[4]=i=>l.value.velocidade=i),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 text-sm text-[var(--text)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] appearance-none"},[e("option",Ll,a(t(o)("Lenta â 10 msg/hora (1 a cada 6 min)")),1),e("option",jl,a(t(o)("Média â 30 msg/hora (1 a cada 2 min)")),1),e("option",Dl,a(t(o)("Rápida â 60 msg/hora (1 a cada 1 min)")),1),e("option",Tl,a(t(o)("Inteligente â adaptativa (recomendado)")),1)],512),[[Se,l.value.velocidade]]),l.value.velocidade==="inteligente"?(s(),r("p",Ul,a(t(o)("O algoritmo ajusta a cadência por entrega, leitura, horário e dia da semana â evita bloqueios e simula comportamento humano.")),1)):x("",!0)]),e("div",Rl,[e("div",Nl,[e("label",Vl,[_(a(t(o)("Data inÃcio"))+" ",1),u[30]||(u[30]=e("span",{class:"text-red-500"},"*",-1))]),$(Ea,{modelValue:l.value.data_inicio,"onUpdate:modelValue":u[5]||(u[5]=i=>l.value.data_inicio=i),type:"date",placeholder:t(o)("InÃcio")},null,8,["modelValue","placeholder"])]),e("div",ql,[e("label",Fl,[_(a(t(o)("Data fim"))+" ",1),u[31]||(u[31]=e("span",{class:"text-red-500"},"*",-1))]),$(Ea,{modelValue:l.value.data_fim,"onUpdate:modelValue":u[6]||(u[6]=i=>l.value.data_fim=i),type:"date",placeholder:t(o)("Fim"),"min-date":l.value.data_inicio||void 0},null,8,["modelValue","placeholder","min-date"])])]),e("div",Ol,[e("div",zl,[e("label",Bl,a(t(o)("Enviar a partir de")),1),ve(e("select",{"onUpdate:modelValue":u[7]||(u[7]=i=>l.value.janela_hora_inicio=i),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 text-sm text-[var(--text)] focu
13s:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] appearance-none"},[(s(),r(oe,null,le(24,i=>e("option",{key:i-1,value:i-1},a(String(i-1).padStart(2,"0"))+":00",9,Kl)),64))],512),[[Se,l.value.janela_hora_inicio,void 0,{number:!0}]])]),e("div",Wl,[e("label",Gl,a(t(o)("Enviar até")),1),ve(e("select",{"onUpdate:modelValue":u[8]||(u[8]=i=>l.value.janela_hora_fim=i),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 text-sm text-[var(--text)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] appearance-none"},[(s(),r(oe,null,le(24,i=>e("option",{key:i,value:i},a(String(i).padStart(2,"0"))+":00",9,Hl)),64))],512),[[Se,l.value.janela_hora_fim,void 0,{number:!0}]])])]),l.value.janela_hora_fim<=l.value.janela_hora_inicio?(s(),r("p",Jl,a(t(o)("O horário final deve ser maior que o inicial.")),1)):(s(),r("p",Ql,a(t(o)("Só envia entre"))+" "+a(String(l.value.janela_hora_inicio).padStart(2,"0"))+":00 e "+a(String(l.value.janela_hora_fim).padStart(2,"0"))+a(t(o)(":00 (horário de BrasÃlia).")),1)),e("div",Zl,[e("label",Xl,a(t(o)("Ritmo de envio")),1),e("div",Yl,[e("button",{type:"button",class:ie(["flex flex-col gap-1 rounded-xl border p-3 text-left transition",l.value.modo_ritmo==="espalhar"?"border-[var(--accent)] bg-[var(--accent)]/08 text-[var(--text)]":"border-[var(--border)] text-[var(--muted)] hover:border-[var(--accent)]/40"]),onClick:u[9]||(u[9]=i=>l.value.modo_ritmo="espalhar")},[e("span",ei,a(t(o)("Espalhar (recomendado)")),1),e("span",ai,a(t(o)("Distribui ao longo dos dias até a data fim e respeita o aquecimento dos chips. Mais seguro.")),1)],2),e("button",{type:"button",class:ie(["flex flex-col gap-1 rounded-xl border p-3 text-left transition",l.value.modo_ritmo==="maximo"?"border-amber-500 bg-amber-500/08 text-[var(--text)]":"border-[var(--border)] text-[var(--muted)] hover:border-amber-500/40"]),onClick:u[10]||(u[10]=i=>l.value.modo_ritmo="maximo")},[e("span",ti,a(t(o)("Máximo")),1),e("span",oi,a(t(o)("Manda tudo dentro da janela no mesmo dia, ignorando aquecimento. Mais rápido.")),1)],2)]),l.value.modo_ritmo==="maximo"?(s(),r("p",si,[_(a(t(o)("â ï¸ Modo máximo comprime o intervalo entre envios e"))+" ",1),e("strong",null,a(t(o)("aumenta o risco de bloqueio dos números")),1),_(a(t(o)(". Use poucos contatos por janela ou adicione mais chips.")),1)])):x("",!0)]),e("div",ri,[e("label",ni,a(t(o)("Alimentar por etapa do CRM (opcional)")),1),ve(e("select",{"onUpdate:modelValue":u[11]||(u[11]=i=>l.value.crm_coluna_id=i),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 text-sm text-[var(--text)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] appearance-none"},[e("option",li,a(t(o)("Nenhuma â lista fechada, do jeito de sempre")),1),(s(!0),r(oe,null,le(Q.value,i=>(s(),r("option",{key:i.id,value:i.id},a(t(o)(i.label)),9,ii))),128))],512),[[Se,l.value.crm_coluna_id]]),l.value.crm_coluna_id?(s(),r("p",di,a(t(o)("Todo card que entrar nessa etapa é adicionado à campanha â arrastado à mão ou empurrado por automação, tanto faz. Cada pessoa entra uma vez só, e quem cair aqui com a campanha fora do perÃodo ou já encerrada é ignorado. Se o card sair da etapa antes de a mensagem ir, ela é descartada de vez â vale a mensagem da etapa onde ele estiver.")),1)):(s(),r("p",ci,a(t(o)("Em branco = campanha comum: vale a lista de contatos que você montar.")),1))]),e("div",ui,[e("label",pi,a(t(o)("Máquina desta campanha (opcional)")),1),$(Ya,{modelValue:l.value.maquina_id,"onUpdate:modelValue":u[12]||(u[12]=i=>l.value.maquina_id=i),hint:t(o)("Agrupa esta campanha com as outras ferramentas da mesma intenção, no relatório de origem.")},null,8,["modelValue","hint"])]),ue.value.length?(s(),r("div",vi,[e("label",mi,a(t(o)("Modelo aprovado (WhatsApp oficial)")),1),ve(e("select",{"onUpdate:modelValue":u[13]||(u[13]=i=>l.value.whatsapp_template_id=i),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 text-sm text-[var(--text)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] appearance-none"},[e("option",xi,a(t(o)("Nenhum â campanha só nas linhas comuns")),1),(s(!0),r(oe,null,le(ue.value,i=>(s(),r("option",{key:i.id,value:i.id},a(i.nome),9,bi))),128))],512),[[Se,l.value.whatsapp_template_id]]),be.value?(s(),r("div",hi,[e("p",fi,a(be.value.corpo),1),be.value.variaveis>0?(s(),r("div",_i,[e("p",gi,a(t(o)("Preencha o que muda")),1),(s(!0),r(oe,null,le(be.value.variaveis,i=>ve((s(),r("input",{key:i,"onUpdate:modelValue":G=>l.value.template_variaveis[i-1]=G,placeholder:`Valor da variável ${i}`,class:"w-full rounded-lg border border-[var(--border)] bg-[var(--surface)] px-3 py-2 text-sm"},null,8,yi)),[[De,l.value.template_variaveis[i-1]]])),128)),T.value?(s(),r("p",wi,a(t(o)("Faltam variáveis: a Meta aceitaria e entregaria a mensagem torta.")),1)):x("",!0)])):x("",!0)])):x("",!0),e("p",$i,a(t(o)("Vale só para linhas do WhatsApp oficial. Nas linhas comuns continua valendo o texto que você escrever no próximo passo.")),1)])):x("",!0),e("div",ki,[e("label",Ci,a(t(o)("Flow de IA padrão (opcional)")),1),ve(e("select",{"onUpdate:modelValue":u[14]||(u[14]=i=>l.value.flow_id=i),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2 text-sm text-[var(--text)] focu
13s:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] appearance-none"},[e("option",Ai,a(t(o)("Sem IA â apenas disparo")),1),(s(!0),r(oe,null,le(F.value,i=>(s(),r("option",{key:i.id,value:i.id},a(i.name),9,Si))),128))],512),[[Se,l.value.flow_id]]),e("p",Ii,a(t(o)("Usado como fallback nas linhas de disparo que não têm flow especÃfico configurado.")),1)]),P.value?(s(),r("p",Mi,a(P.value),1)):x("",!0),g.value?(s(),r("div",Ei,[$(ut,{"campanha-id":g.value.id,"campanha-status":g.value.status},null,8,["campanha-id","campanha-status"])])):(s(),r("div",Pi,[$(t(tt),{class:"h-4 w-4 flex-shrink-0"}),_(" "+a(t(o)("Salve as configurações acima para configurar as linhas de disparo.")),1)]))])])):A.value===2?(s(),r("div",Li,[e("div",ji,[e("div",Di,[e("h3",Ti,a(t(o)("Público Alvo")),1),e("p",Ui,a(t(o)("Adicione os contatos que receberão esta campanha.")),1)]),e("div",Ri,[e("span",Ni,a(t(o)("Contatos carregados:")),1),e("span",{class:ie(["inline-flex items-center rounded-full px-2.5 py-1 text-[11px] font-bold border",(g.value?.total_contatos||0)>0?"bg-[var(--accent)]/15 text-[var(--accent)] border-[var(--accent)]/25":"bg-[var(--surface-2)] text-[var(--muted)] border-[var(--border)]"])},a((g.value?.total_contatos||0).toLocaleString("pt-BR"))+" contatos ",3)]),e("div",Vi,[(s(),r(oe,null,le(j,i=>e("button",{key:i.id,type:"button",class:ie(["flex-1 flex items-center justify-center gap-2 rounded-lg px-4 py-2 text-sm font-semibold transition duration-200",V.value===i.id?"bg-[var(--surface)] text-[var(--text)] shadow-sm":"text-[var(--muted)] hover:text-[var(--text)]"]),onClick:G=>V.value=i.id},[(s(),se(Ue(i.icon),{class:"h-4 w-4"})),_(" "+a(t(o)(i.label)),1)],10,qi)),64))]),V.value==="csv"?(s(),r("div",Fi,[e("div",Oi,[$(t(nt),{class:"h-4 w-4 text-[var(--accent)] shrink-0 mt-0.5"}),e("p",zi,[_(a(t(o)("O CSV"))+" ",1),e("span",Bi,a(t(o)("adiciona")),1),_(" "+a(t(o)("contatos incrementalmente â duplicatas são ignoradas e nenhum contato existente é apagado.")),1)])]),g.value?(s(),se(ct,{key:0,"campanha-id":g.value.id,onUploaded:D},null,8,["campanha-id"])):x("",!0)])):(s(),r("div",Ki,[e("div",Wi,[e("p",Gi,a(t(o)("Adicionar contato")),1),e("div",Hi,[e("div",Ji,[e("label",Qi,a(t(o)("Nome (opcional)")),1),ve(e("input",{"onUpdate:modelValue":u[15]||(u[15]=i=>W.value.nome=i),type:"text",placeholder:t(o)("João Silva"),disabled:U.value,class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface)] px-3 py-2 text-sm text-[var(--text)] placeholder:text-[var(--subtle)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] disabled:opacity-50",onKeyup:ca(m,["enter"])},null,40,Zi),[[De,W.value.nome]])]),e("div",Xi,[e("label",Yi,[_(a(t(o)("Telefone"))+" ",1),u[32]||(u[32]=e("span",{class:"text-red-500"},"*",-1))]),e("input",{value:W.value.telefone,type:"tel",placeholder:"(62) 99999-9999",maxlength:"15",disabled:U.value,class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface)] px-3 py-2 text-sm text-[var(--text)] placeholder:text-[var(--subtle)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] disabled:opacity-50",onInput:$a,onKeyup:ca(m,["enter"])},null,40,ed)]),e("button",{type:"button",disabled:!W.value.telefone.trim()||U.value||!g.value,class:"inline-flex items-center justify-center gap-1.5 rounded-xl px-3 py-2 text-sm font-semibold bg-[var(--accent)]/15 text-[var(--accent)] border border-[var(--accent)]/25 hover:bg-[var(--accent)]/25 disabled:opacity-45 disabled:cursor-not-allowed transition duration-200",onClick:m},[U.value?(s(),r("span",td)):(s(),se(t(lt),{key:1,class:"h-3.5 w-3.5"})),_(" "+a(U.value?"Adicionando...":"+ Adicionar"),1)],8,ad)])]),ee.value?(s(),r("div",od,[e("span",sd,a(ee.value.inseridos)+" adicionado"+a(ee.value.inseridos!==1?"s":""),1),ee.value.duplicatas>0?(s(),r("span",rd," · "+a(ee.value.duplicatas)+" duplicata"+a(ee.value.duplicatas!==1?"s":"")+" ignorada"+a(ee.value.duplicatas!==1?"s":""),1)):x("",!0),ee.value.invalidos?.length>0?(s(),r("span",nd," · "+a(ee.value.invalidos.length)+" "+a(t(o)("inválido"))+a(ee.value.invalidos.length!==1?"s":""),1)):x("",!0)])):x("",!0),e("p",ld,a(t(o)("Cada clique envia direto para a campanha.")),1)]))]),e("div",id,[e("div",dd,[e("p",cd,a(t(o)("Contatos salvos na campanha")),1),g.value?(s(),r("button",{key:0,t
13ype:"button",class:"text-[10px] text-[var(--accent)] hover:underline",onClick:qe},a(t(o)("Atualizar")),1)):x("",!0)]),t(C).isLoadingContatos?(s(),r("div",ud,[u[33]||(u[33]=e("span",{class:"w-4 h-4 border-2 border-[var(--accent)] border-t-transparent rounded-full animate-spin"},null,-1)),_(" "+a(t(o)("Carregando...")),1)])):t(C).contatos.length?(s(),r("div",vd,[e("div",md,[(s(!0),r(oe,null,le(t(C).contatos,i=>(s(),r("div",{key:i.id,class:"flex items-center gap-3 px-3 py-2.5 odd:bg-transparent even:bg-[var(--surface-2)]/50"},[e("div",xd,a((i.nome||i.telefone||"?").charAt(0).toUpperCase()),1),e("div",bd,[e("p",hd,a(i.nome||"â"),1),e("p",fd,a(i.telefone),1)]),e("span",{class:ie(["shrink-0 text-[10px] font-bold rounded-full px-2 py-0.5 border",["enviado","entregue","lido"].includes(i.status)?"text-emerald-500 bg-emerald-500/10 border-emerald-500/20":i.status==="falha"?"text-red-400 bg-red-400/10 border-red-400/20":"text-[var(--muted)] bg-[var(--surface-2)] border-[var(--border)]"])},a(["enviado","entregue","lido"].includes(i.status)?"â "+i.status:i.status==="falha"?"â Falha":i.status),3)]))),128))]),Va.value?(s(),r("div",_d,[e("span",gd," Mostrando "+a(t(C).contatos.length)+" de "+a(t(C).paginacaoContatos?.total),1),e("button",{type:"button",disabled:t(C).isLoadingContatos,class:"text-xs font-semibold text-[var(--accent)] hover:underline disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-1.5",onClick:ya},[t(C).isLoadingContatos?(s(),r("span",wd)):x("",!0),_(" "+a(t(C).isLoadingContatos?"Carregandoâ¦":"Carregar mais"),1)],8,yd)])):x("",!0)])):(s(),r("div",pd,a(t(o)("Nenhum contato adicionado ainda.")),1))])])):A.value===3&&l.value.tipo==="funil"?(s(),r("div",$d,[e("div",kd,[e("h3",Cd,a(t(o)("Construtor de Funil")),1),e("p",Ad,a(t(o)("Monte os passos da sequência automática. Clique em cada passo para editar.")),1)]),e("div",Sd,[(s(),se(vt,{key:`funil-${g.value?.id??"rascunho"}`,passos:Y.value,"campanha-id":g.value?.id,"nome-campanha":l.value.nome,"onUpdate:passos":u[16]||(u[16]=i=>Y.value=i),onCampanhaAtualizada:u[17]||(u[17]=i=>g.value=i)},null,8,["passos","campanha-id","nome-campanha"]))]),P.value?(s(),r("div",Id,[e("p",Md,a(P.value),1)])):x("",!0)])):A.value===3?(s(),r("div",Ed,[e("div",Pd,[e("h3",Ld,a(t(o)("Variações e rotação")),1),e("p",jd,[_(a(t(o)("Na ativação, o sistema exige"))+" ",1),e("span",Dd,a(t(o)("pelo menos 5")),1),_(" "+a(t(o)("textos distintos (até 20), exceto se o envio for só áudio/only mÃdia sem legenda, conforme regras.")),1)]),e("p",Td,a(t(o)("Cada contato recebe uma das versões (round-robin), o que reduz padrão repetido e risco de sinalização como spam.")),1),e("p",Ud,[_(a(t(o)("A primeira aba (A) é a"))+" ",1),e("span",Rd,a(t(o)("referência")),1),_(" "+a(t(o)("para a IA. Use"))+" ",1),e("span",Nd,a(t(o)("Gerar variação")),1),_(" "+a(t(o)("acima do campo de texto ou o"))+" ",1),u[34]||(u[34]=e("span",{class:"font-semibold text-[var(--text)]"},"+",-1)),_(" "+a(t(o)("para criar uma nova aba â a IA preenche na hora."))+" ",1),O.value.tipo?(s(),r("span",Vd,[_(a(t(o)("Com mÃdia, as abas são"))+" ",1),e("span",qd,a(t(o)("variações de legenda")),1),_(" "+a(t(o)("(rotação no envio, como a mensagem só com texto).")),1)])):x("",!0)]),e("div",Fd,[_(a(t(o)("Use"))+" ",1),u[35]||(u[35]=e("span",{class:"font-bold text-[var(--accent)] font-mono"},"{{nome}}",-1)),_(" "+a(t(o)("para personalizar com o nome de cada contato.")),1)]),O.value.tipo?(s(),r("div",Od,[e("p",zd,[_(a(t(o)("MÃdia anexada"))+" ",1),We.value>1?(s(),r("span",Bd,"· "+a(We.value)+" "+a(t(o)("variações")),1)):x("",!0)]),e("div",Kd,[(s(),se(Ue(Ve.value),{class:"h-4 w-4 text-[var(--accent)]"})),e("span",Wd,[_(a(he.value)+" ",1),e("span",Gd,a(t(o)("(A)")),1)])]),O.value.arquivo?(s(),r("p",Hd,a(O.value.arquivo.name),1)):O.value.originalName?(s(),r("p",Jd,a(O.value.originalName),1)):x("",!0),(s(!0),r(oe,null,le(k.value,(i,G)=>(s(),r("div",{key:G,class:"flex items-center gap-2 pl-2 border-l-2 border-[var(--accent)]/30"},[(s(),se(Ue(Ve.value),{class:"h-4 w-4 text-[var(--subtle)]"})),e("span",Qd,[_(a(i.originalName||i.arquivo?.name||"Variação")+" ",1),e("span",Zd,"("+a(String.fromCharCode(66+G))+")",1)]),e("button",{type:"button",class:"text-[var(--subtle)] hover:text-red-500 transition",onClick:ce=>Ce(G)},[$(t(Me),{class:"h-3.5 w-3.5"})],8,Xd)]))),128)),e("div",Yd,[e("button",{type:"button",class:"text-xs font-semibold text-[var(--accent)] hover:underline",onClick:u[18]||(u[18]=i=>Z.value?.click())},a(t(o)("+ Adicionar variação de mÃdia")),1),e("button",{type:"button",class:"text-xs text-red-500 hover:underline",onClick:Ge},a(t(o)("Remover tudo")),1)]),e("p",ec,a(t(o)("Cada contato recebe uma das mÃdias em rodÃzio (igual à s variações de texto).")),1),e("input",{ref_key:"fileInputMidiaExtra",ref:Z,type:"file",class:"hidden",accept:ge.value,onChange:ke},null,40,ac)])):x("",!0)]),e("div",tc,[e("div",oc,[e("div",sc,[e("button",{type:"button",disabled:l.value.templates.length>=na,title:l.value.templates.length>=na?"Máximo de 20 mensagens":"Adicionar mensagem",class:"shrink-0 p-1.5 mr-1 rounded-lg text-[var(--muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] disabled:opacity-30 disabled:cursor-not-allowed transition duration-200",onClick:_a}
13,[$(t(Re),{class:"h-4 w-4"})],8,rc),(s(!0),r(oe,null,le(xe.value,i=>(s(),r("div",{key:i.id,class:"group relative shrink-0"},[e("button",{type:"button",class:ie(["block py-2 text-sm font-semibold whitespace-nowrap border-b-2 transition duration-150",[xe.value.length>1?"pl-3 pr-7":"px-3",N.value===i.idx?"border-[var(--accent)] text-[var(--text)]":"border-transparent text-[var(--muted)] hover:text-[var(--text)]"]]),onClick:G=>N.value=i.idx}," Mensagem "+a(t(o)(i.label)),11,nc),xe.value.length>1?(s(),r("button",{key:0,type:"button",class:ie(["absolute right-1 top-1/2 -translate-y-1/2 z-10 flex items-center justify-center w-5 h-5 rounded text-[var(--subtle)] hover:text-red-500 hover:bg-red-500/10 transition duration-150",N.value===i.idx?"opacity-100":"opacity-0 group-hover:opacity-100"]),title:`Remover Mensagem ${i.label}`,onClick:Pe(G=>ra(i.id),["stop"])},[$(t(Me),{class:"h-3 w-3"})],10,lc)):x("",!0)]))),128))]),e("div",ic,[e("div",dc,[e("div",cc,[e("span",uc,a(t(o)("B")),1)]),e("span",pc,a(t(o)("Estabelecimento")),1)]),O.value.tipo?(s(),r("div",vc,[e("div",mc,[O.value.tipo==="imagem"?(s(),r("div",xc,[O.value.previewUrl?(s(),r("img",{key:0,src:O.value.previewUrl,class:"w-full max-h-52 object-cover",alt:t(o)("Prévia")},null,8,bc)):(s(),r("div",hc,[$(t(Ne),{class:"h-10 w-10 text-[var(--subtle)]"})]))])):O.value.tipo==="video"?(s(),r("div",fc,[e("div",_c,[$(t(it),{class:"h-6 w-6 text-white/80 ml-0.5"})]),O.value.arquivo?(s(),r("span",gc,a(O.value.arquivo.name),1)):x("",!0)])):O.value.tipo==="audio"?(s(),r("div",yc,[e("div",wc,[$(t(ja),{class:"h-4 w-4 text-[var(--accent)]"})]),e("div",$c,[u[36]||(u[36]=e("div",{class:"h-1 bg-[var(--border)] rounded-full overflow-hidden"},[e("div",{class:"h-full w-1/3 bg-[var(--accent)] rounded-full"})],-1)),e("span",kc,a(t(o)("Ãudio")),1)])])):O.value.tipo==="documento"?(s(),r("div",Cc,[e("div",Ac,[$(t(Ye),{class:"h-5 w-5 text-[var(--accent)]"})]),e("div",Sc,[e("p",Ic,a(O.value.originalName||O.value.arquivo?.name||"Documento"),1),e("span",Mc,a(O.value.arquivo?`${(O.value.arquivo.size/(1024*1024)).toFixed(2)} MB`:"Documento anexado"),1)])])):x("",!0),l.value.templates[N.value]?(s(),r("div",Ec,[e("p",Pc,a(ae.value),1),u[37]||(u[37]=e("span",{class:"text-[10px] text-[var(--subtle)] float-right mt-1"},"10:30 ââ",-1))])):x("",!0)])])):(s(),r("div",Lc,[e("div",jc,[e("p",Dc,a(ae.value),1),u[38]||(u[38]=e("div",{class:"flex items-center justify-end gap-1 mt-1"},[e("span",{class:"text-[10px] text-[var(--subtle)]"},"10:30"),e("span",{class:"text-[10px] text-[var(--accent)]"},"ââ")],-1))])]))]),e("div",Tc,[e("div",Uc,[e("span",Rc,a(t(o)("Campos:")),1),e("button",{type:"button",class:"inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-bold bg-[var(--accent)]/12 text-[var(--accent)] border border-[var(--accent)]/25 hover:bg-[var(--accent)]/22 hover:shadow-[0_0_6px_color-mix(in_srgb,var(--accent)_30%,transparent)] transition duration-150",onClick:Ca},a(t(ka)),1)]),e("div",Nc,[e("button",{type:"button",disabled:re.value||!g.value?.id,class:"inline-flex items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-xs font-semibold border border-[var(--border)] text-[var(--text)] hover:bg-[var(--surface-2)] transition duration-200 disabled:opacity-45 disabled:cursor-not-allowed",onClick:ga},[re.value?(s(),r("span",qc)):x("",!0),_(" "+a(t(o)("Gerar variação")),1)],8,Vc)]),e("div",Fc,[ve(e("textarea",{ref_key:"textareaRef",ref:_e,"onUpdate:modelValue":u[19]||(u[19]=i=>l.value.templates[N.value]=i),placeholder:O.value.tipo?"Legenda da mÃdia (opcional)...":"Digite a mensagem aqui...",disabled:re.value,rows:"4",class:"w-full bg-transparent px-4 py-2 text-sm text-[var(--text)] placeholder:text-[var(--subtle)] resize-none focus:outline-none disabled:opacity-0",onInput:u[20]||(u[20]=i=>J.value?.bloquearAuto())},null,40,Oc),[[De,l.value.templates[N.value]]]),re.value?(s(),r("div",zc,[u[39]||(u[39]=e("span",{class:"h-5 w-5 border-2 border-[var(--accent)] border-t-transparent rounded-full animate-spin"},null,-1)),e("span",Bc,a(t(o)("Gerando variação com IA...")),1)])):x("",!0)]),e("div",Kc,[e("div",Wc,[e("button",{type:"button",title:t(o)("Anexar imagem ou vÃdeo"),class:"p-2 rounded-xl text-[var(--muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] transition duration-200",onClick:u[21]||(u[21]=i=>ze.value?.click())},[$(t(Ut),{class:"h-5 w-5"})],8,Gc),e("button",{type:"button",title:t(o)("Anexar áudio"),class:"p-2 rounded-xl text-[var(--muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] transition duration-200",onClick:u[22]||(u[22]=i=>Be.value?.click())},[$(t(at),{class:"h-5 w-5"})],8,Hc),e("button",{type:"button",title:t(o)("Anexar documento (PDF, docx, xlsx, etc â máx. 20 MB)"),class:"p-2 rounded-xl text-[var(--muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] transition duration-200",onClick:u[23]||(u[23]=i=>Ke.value?.click())},[$(t(Ye),{class:"h-5 w-5"})],8,Jc),O.value.tipo?(s(),r("div",Qc,[(s(),se(Ue(Ve.value),{class:"h-3.5 w-3.5 text-[var(--accent)]"})),e("span",Zc,a(he.value),1),e("button",{type:"button",class:"text-[var(--subtle)] hover:text-red-500 transition",onClick:Ge},[$(t(Me),{class:"h-3 w-3"})])])):x("",!0)]),e("p",Xc,a(t(o)("Máx. 80 MB pra imagem/vÃdeo/áudio · 20 MB pra documento (PDF, docx, xlsx).")),1)]),ta.value?(s(),r("p",Yc,a(xa.value)+" "+a(t(o)("de 5+ variações obrigatórias (máx."))+" "+a(na)+"). ",1)):x("",!0)])]),l.value.tipo==="simples"&&A.value===3?(s(),se(pt,{key:0,ref_key:"painelIaVariacoesRef",ref:J,"campanha-id":g.value?.id??null,escopo:"simples","indice-ativo":N.value,templates:l.value.templates,"nome-campanha":l.value.nome,"auto-inicial":!0,"legenda-de-midia":!!O.value.tipo,class:"hidden",onAplicar:u[24]||(u[24]=i=>{l.value.templates[N.value]=i})},null,8,["campanha-id","indice-ativo","templates","nome-campanha","legenda-de-midia"])):x("",!0)])])):A.value===4?(s(),r("div",eu,[e("div",au,[e("div",tu,[e("h3",ou,a(t(
13o)("Revise sua campanha")),1),e("p",su,a(t(o)("Confirme os dados antes de salvar.")),1)]),e("div",ru,[(s(!0),r(oe,null,le(ha.value,i=>(s(),r("div",{key:i.label,class:"flex items-start justify-between gap-4 px-4 py-3"},[e("span",nu,a(t(o)(i.label)),1),e("span",lu,a(i.value),1)]))),128))]),l.value.tipo==="simples"&&ye.value.length>0?(s(),r("div",iu,[e("p",du,a(t(o)("Mensagens")),1),e("div",cu,[(s(!0),r(oe,null,le(ye.value,(i,G)=>(s(),r("div",{key:G,class:"rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-4 py-3 text-sm text-[var(--text)]"},[e("span",uu," Mensagem "+a(String.fromCharCode(65+G)),1),e("p",pu,a(i),1)]))),128))])])):x("",!0),l.value.tipo==="funil"&&Y.value.length>0?(s(),r("div",vu,[e("p",mu,a(t(o)("Passos do Funil")),1),e("div",xu,[(s(!0),r(oe,null,le(Y.value,(i,G)=>(s(),r("div",{key:G,class:"flex items-start gap-3 rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-2.5"},[e("div",bu,a(i.ordem),1),e("div",hu,[e("p",fu,a(t(Xe)(i)),1),e("p",_u,a(oa(i.acao)),1),e("p",gu,[_(a(fa(i))+" ",1),i.de_passo?(s(),r("span",yu,a(t(o)("(ramo de passo"))+" "+a(i.de_passo)+")",1)):x("",!0)]),i.template?.trim()?(s(),r("p",wu,a(i.template),1)):x("",!0)])]))),128))])])):x("",!0),g.value?.total_contatos?x("",!0):(s(),r("div",$u,[$(t(Na),{class:"h-4 w-4 text-amber-500 shrink-0 mt-0.5"}),e("p",ku,a(t(o)("Nenhum contato adicionado. A campanha pode ser salva mas não poderá ser ativada sem contatos.")),1)])),P.value?(s(),r("p",Cu,a(P.value),1)):x("",!0)])])):x("",!0)]),e("div",Au,[A.value===4?(s(),r("label",Su,[ve(e("input",{"onUpdate:modelValue":u[25]||(u[25]=i=>H.value=i),type:"checkbox",class:"w-4 h-4 rounded border-[var(--border)] accent-[var(--accent)] cursor-pointer"},null,512),[[$t,H.value]]),e("span",Iu,a(t(o)("Tenho o consentimento para enviar mensagens ao público selecionado")),1)])):(s(),r("div",Mu)),e("div",Eu,[e("button",{type:"button",class:"inline-flex items-center justify-center rounded-xl px-4 py-2 text-sm font-semibold border border-[var(--border)] text-[var(--text)] hover:bg-[var(--surface)] transition duration-200",onClick:u[26]||(u[26]=i=>v.$emit("fechar"))},a(t(o)("Cancelar")),1),A.value>1?(s(),r("button",{key:0,type:"button",disabled:c.value,class:"inline-flex items-center gap-1 justify-center rounded-xl px-4 py-2 text-sm font-semibold border border-[var(--border)] text-[var(--text)] hover:bg-[var(--surface)] disabled:opacity-45 transition duration-200",onClick:u[27]||(u[27]=i=>A.value--)},[$(t(Rt),{class:"h-4 w-4"}),_(" "+a(t(o)("Anterior")),1)],8,Pu)):x("",!0),e("button",{type:"button",disabled:c.value||A.value===4&&!H.value,class:"btn-primary-gradient inline-flex items-center gap-1.5 justify-center rounded-xl px-5 py-2 text-sm font-semibold transition duration-200 disabled:opacity-45 disabled:cursor-not-allowed",onClick:je},[c.value?(s(),r("span",ju)):x("",!0),e("span",null,a(A.value<4?"Próximo":"Salvar Campanha"),1),!c.value&&A.value<4?(s(),se(t(Nt),{key:1,class:"h-4 w-4"})):x("",!0)],8,Lu)])]),e("input",{ref_key:"fileInputMedia",ref:ze,type:"file",class:"hidden",accept:"image/jpeg,image/jpg,image/png,image/webp,video/mp4",onChange:h},null,544),e("input",{ref_key:"fileInputAudio",ref:Be,type:"file",class:"hidden",accept:"audio/ogg,audio/mpeg,audio/mp4,audio/aac",onChange:ne},null,544),e("input",{ref_key:"fileInputDocumento",ref:Ke,type:"file",class:"hidden",accept:t(Ma),onChange:me},null,40,Du)])]),_:1})]))}}),Uu=Object.assign(Tu,{__name:"DisparosCampanhaForm"}),Ru={class:"space-y-3 min-h-0 flex flex-col"},Nu={class:"flex flex-col sm:flex-row sm:items-end gap-3"},Vu={class:"w-full max-w-[220px] space-y-1.5"},qu={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)] block"},Fu={key:0,class:"text-xs text-[var(--muted)] sm:ml-auto sm:pb-2"},Ou={class:"font-semibold text-[var(--text)] tabular-nums"},zu={key:0,class:"flex items-center justify-center gap-2 py-10 text-sm text-[var(--muted)]"},Bu={key:1,class:"text-sm text-[var(--muted)] py-8 text-center rounded-xl border border-dashed border-[var(--border)]"},Ku={key:2,class:"rounded-xl border border-[var(--border)] bg-[var(--surface)] overflow-hidden min-h-0 max-h-[min(42vh,360px)] flex flex-col"},Wu={class:"overflow-y-auto custom-scrollbar divide-y divide-[var(--border)]"},Gu={class:"w-[52px] shrink-0 text-xs font-mono font-bold text-[var(--accent)] tabular-nums"},Hu={class:"min-w-0 flex-1"},Ju={class:"font-semibold text-[var(--text)] truncate"},Qu={class:"text-[11px] text-[var(--muted)] font-mono truncate"},Zu=["title"],Xu=$e({__name:"DisparosCronogramaLista",props:{dia:{},itens:{},total:{},carregando:{type:Boolean}},emits:["update:dia"],setup(n,{emit:p}){const{tn:o}=Ee(),d=p;function b(E){E&&typeof E=="string"&&d("update:dia",E)}
13function C(E){if(!E)return"â";const R=new Date(E);return Number.isNaN(R.getTime())?"â":R.toLocaleTimeString("pt-BR",{hour:"2-digit",minute:"2-digit"})}return(E,R)=>(s(),r("div",Ru,[e("div",Nu,[e("div",Vu,[e("label",qu,a(t(o)("Dia")),1),$(Ea,{"model-value":n.dia,type:"date",placeholder:t(o)("Selecione o dia"),clearable:!1,class:"w-full","onUpdate:modelValue":b},null,8,["model-value","placeholder"])]),n.total!=null?(s(),r("p",Fu,[e("span",Ou,a(n.total.toLocaleString("pt-BR")),1),_(" "+a(t(o)("agendado(s) neste dia")),1)])):x("",!0)]),n.carregando?(s(),r("div",zu,[R[0]||(R[0]=e("span",{class:"h-4 w-4 border-2 border-[var(--accent)] border-t-transparent rounded-full animate-spin"},null,-1)),_(" "+a(t(o)("Carregando filaâ¦")),1)])):!n.itens||n.itens.length===0?(s(),r("div",Bu,a(t(o)("Nenhum envio agendado para este dia.")),1)):(s(),r("div",Ku,[e("ul",Wu,[(s(!0),r(oe,null,le(n.itens,w=>(s(),r("li",{key:w.id,class:"flex items-center gap-2 sm:gap-3 px-3 py-2.5 text-sm hover:bg-[var(--surface-2)]/50 transition"},[e("span",Gu,a(C(w.agendado_para)),1),e("div",Hu,[e("p",Ju,a(w.nome||"â"),1),e("p",Qu,a(w.telefone),1)]),e("span",{class:"shrink-0 max-w-[100px] sm:max-w-[140px] truncate text-[10px] font-bold px-2 py-1 rounded-lg bg-[var(--surface-2)] border border-[var(--border)] text-[var(--accent)]",title:w.instancia_waha},a(w.instancia_waha),9,Zu)]))),128))])]))]))}}),Yu=Object.assign(Xu,{__name:"DisparosCronogramaLista"}),ep={class:"flex flex-col gap-3 min-h-0 isolate"},ap={class:"flex items-center justify-end gap-2 shrink-0"},tp=["disabled"],op={key:0,class:"text-sm text-red-500 font-medium mb-2"},sp={key:1,class:"flex items-center gap-2 text-sm text-[var(--muted)] py-6 justify-center"},rp={class:"flex gap-0.5 p-0.5 rounded-xl border border-[var(--border)] bg-[var(--surface-2)]/50 w-full overflow-x-auto shrink-0"},np=["onClick"],lp={class:"min-h-0 flex-1 flex flex-col gap-3"},ip={class:"space-y-3 overflow-hidden"},dp={key:0,class:"grid grid-cols-2 sm:grid-cols-4 gap-2"},cp={class:"text-[10px] font-bold uppercase text-[var(--muted)] leading-tight"},up={key:1,class:"text-[11px] text-[var(--muted)] space-y-1"},pp={class:"text-[var(--text)]"},vp={class:"text-[var(--text)]"},mp={key:0,class:"text-amber-500 font-semibold"},xp={key:2,class:"text-sm text-[var(--muted)] py-4 text-center"},bp={class:"min-h-0 max-h-[min(44vh,380px)] overflow-y-auto custom-scrollbar -mx-0.5 px-0.5"},hp={key:0,class:"text-sm text-[var(--muted)] py-6 text-center"},fp={key:1,class:"grid grid-cols-1 sm:grid-cols-2 gap-2"},_p={class:"flex items-start justify-between gap-1"},gp={class:"text-xs font-bold text-[var(--text)] truncate min-w-0"},yp={class:"text-[10px] text-[var(--subtle)] font-mono truncate"},wp={class:"grid grid-cols-2 gap-x-2 gap-y-0.5 text-[10px] text-[var(--muted)]"},$p={class:"text-[var(--text)]"},kp={class:"text-[var(--accent)]"},Cp={key:0},Ap={class:"min-h-0 flex-1 flex flex-col"},Sp=$e({__name:"DisparosPoolInteligentePanel",props:{campanha:{}},setup(n,{expose:p}){const{tn:o}=Ee(),d=n,b=Le(),C=[{id:"projecao",label:o("Projeção")},{id:"chips",label:o("Chips")},{id:"cronograma",label:o("Fila do dia")}],E=y("projecao");function R(){const I=new Date;return`${I.getFullYear()}-${String(I.getMonth()+1).padStart(2,"0")}-${String(I.getDate()).padStart(2,"0")}`}const w=y(R()),z=y(null),F=y(null),L=y(null),j=y(!1),A=y(!1),c=y("");function P(I,K="â"){return I==null||Number.isNaN(Number(I))?K:Number(I).toLocaleString("pt-BR")}const H=X(()=>{const I=z.value;return I?[{k:"p",label:"Pendentes",val:P(I.contatos_pendentes),accent:!1},{k:"c",label:"Capac./dia",val:P(I.capacidade_diaria_pool),accent:!0},{k:"d",label:"Dias (est.)",val:I.dias_estimados!=null&&!Number.isNaN(Number(I.dias_estimados))?String(I.dias_estimados):"â",accent:!1},{k:"n",label:"Chips",val:P(I.chips_no_pool,"0"),accent:!1}]:[]});function g(I){if(!I)return"â";const K=new Date(I);return Number.isNaN(K.getTime())?I:K.toLocaleString("pt-BR",{dateStyle:"short",timeStyle:"short"})}async function N(){j.value=!0,c.value="";try{const[I,K,te]=await Promise.all([b.fetchCampanhaProjecao(d.campanha.id),b.fetchChipsSaude(),b.fetchCampanhaCronogramaDia(d.campanha.id,{dia:w.value,limit:200})]);z.value=I,F.value=K,L.value=te}catch(I){c.value=Te(I)}finally{j.value=!1}}async function V(){A.value=!0;try{L.value=await b.fetchCampanhaCronogramaDia(d.campanha.id,{dia:w.value,limit:200})}catch(I){c.value=Te(I)}finally{A.value=!1}}function M(I){!I||I===w.value||(w.value=I,V())}return we(()=>[d.campanha.id,d.campanha.velocidade],()=>{d.campanha.velocidade==="inteligente"&&(w.value=R(),N())},{immediate:!0}),we(()=>d.campanha.total_contatos,(I,K)=>{d.campanha.velocidade!=="inteligente"||I===K||N()}),p({recarregar:N}),(I,K)=>(s(),r("div",ep,[e("div",ap,[e("button",{type:"button",class:"inline-flex items-center justify-center gap-1.5 rounded-xl border border-[var(--border)] bg-[var(--surface)] px-2.5 py-1.5 text-xs font-semibold text-[var(--text)] hover:bg-[var(--surface-2)] transition disabled:opacity-45",disabled:j.value,onClick:N}
13,[$(t(Qe),{class:ie(["h-3.5 w-3.5",j.value?"animate-spin":""])},null,8,["class"]),_(" "+a(t(o)("Atualizar")),1)],8,tp)]),c.value?(s(),r("p",op,a(c.value),1)):x("",!0),j.value&&!z.value&&!c.value?(s(),r("div",sp,[K[0]||(K[0]=e("span",{class:"h-4 w-4 border-2 border-[var(--accent)] border-t-transparent rounded-full animate-spin"},null,-1)),_(" "+a(t(o)("Carregandoâ¦")),1)])):(s(),r(oe,{key:2},[e("div",rp,[(s(),r(oe,null,le(C,te=>e("button",{key:te.id,type:"button",class:ie(["shrink-0 px-2.5 sm:px-3 py-1.5 rounded-lg text-xs font-semibold transition duration-200",E.value===te.id?"bg-[var(--surface)] text-[var(--text)] shadow-sm":"text-[var(--muted)] hover:text-[var(--text)]"]),onClick:xe=>E.value=te.id},a(t(o)(te.label)),11,np)),64))]),e("div",lp,[ve(e("div",ip,[z.value?(s(),r("div",dp,[(s(!0),r(oe,null,le(H.value,te=>(s(),r("div",{key:te.k,class:"rounded-xl border border-[var(--border)] bg-[var(--surface)] p-2.5"},[e("p",cp,a(t(o)(te.label)),1),e("p",{class:ie(["text-base font-extrabold tabular-nums mt-0.5",te.accent?"text-[var(--accent)]":"text-[var(--text)]"])},a(te.val),3)]))),128))])):x("",!0),z.value?(s(),r("div",up,[e("p",null,[_(a(t(o)("Término estimado:"))+" ",1),e("strong",pp,a(g(z.value.data_termino_estimada)),1)]),e("p",null,[_(a(t(o)("Fim configurado:"))+" ",1),e("strong",vp,a(g(z.value.data_fim_configurada)),1)]),z.value.vai_estourar_data_fim?(s(),r("p",mp,a(t(o)("Risco de não concluir antes da data fim.")),1)):x("",!0)])):j.value?x("",!0):(s(),r("p",xp,a(t(o)("Sem projeção.")),1))],512),[[Sa,E.value==="projecao"]]),ve(e("div",bp,[F.value?.length?(s(),r("div",fp,[(s(!0),r(oe,null,le(F.value,te=>(s(),r("div",{key:te.instance_name+te.numero_whatsapp,class:"rounded-xl border border-[var(--border)] bg-[var(--surface)] p-2.5 space-y-1.5"},[e("div",_p,[e("p",gp,a(te.rotulo||te.instance_name),1),e("span",{class:ie(["shrink-0 text-[9px] font-bold px-1.5 py-0.5 rounded border",te.conexao_status==="WORKING"?"text-emerald-500 border-emerald-500/30":"text-amber-500 border-amber-500/30"])},a(te.conexao_status),3)]),e("p",yp,a(te.numero_whatsapp),1),e("div",wp,[e("span",null,[_(a(t(o)("Teto:"))+" ",1),e("b",$p,a(te.teto_diario_atual),1)]),e("span",null,[_(a(t(o)("Resta:"))+" ",1),e("b",kp,a(te.capacidade_restante),1)]),e("span",null,"Env. "+a(te.enviadas_hoje)+" · Fal. "+a(te.falhas_hoje),1),te.quality_score!=null?(s(),r("span",Cp,"Q "+a((te.quality_score*100).toFixed(0))+"%",1)):x("",!0)])]))),128))])):(s(),r("div",hp,a(t(o)("Nenhum chip com métricas ainda.")),1))],512),[[Sa,E.value==="chips"]]),ve(e("div",Ap,[$(Yu,{dia:w.value,itens:L.value?.cronograma??null,total:L.value?.total??null,carregando:A.value,"onUpdate:dia":M},null,8,["dia","itens","total","carregando"])],512),[[Sa,E.value==="cronograma"]])])],64))]))}}),Ip=Object.assign(Sp,{__name:"DisparosPoolInteligentePanel"}),Mp={key:0,class:"fixed inset-0 z-50 flex justify-end"},Ep={class:"flex items-start justify-between px-5 py-4 border-b border-[var(--border)] shrink-0 gap-4"},Pp={class:"flex flex-col gap-1 min-w-0"},Lp={class:"flex items-center gap-2 flex-wrap"},jp={class:"text-base font-bold text-[var(--text)] truncate"},Dp={class:"text-xs text-[var(--muted)] font-mono"},Tp={class:"flex-1 overflow-y-auto custom-scrollbar px-5 py-4 flex flex-col gap-5"},Up={key:0,class:"rounded-2xl border border-red-500/25 bg-red-500/8 p-4 flex flex-col gap-2"},Rp={class:"flex items-center gap-2"},Np={class:"text-xs font-bold uppercase tracking-[0.06em] text-red-500"},Vp={class:"text-sm text-red-400 leading-relaxed"},qp={class:"text-[11px] text-red-500/60 font-mono break-all"},Fp={key:1},Op={class:"text-[11px] font-bold uppercase tracking-[0.06em] text-[var(--muted)] mb-3"},zp={class:"flex flex-col gap-0"},Bp={class:"flex flex-col items-center"},Kp={key:1,class:"text-[9px] font-bold"},Wp={key:0,class:"w-px flex-1 min-h-[12px] bg-[var(--border)]"},Gp={class:"flex flex-col gap-1 pb-3 min-w-0 flex-1"},Hp={class:"flex items-center gap-2 flex-wrap"},Jp={key:0,class:"text-[10px] font-bold text-[var(--accent)] bg-[var(--accent)]/10 border border-[var(--accent)]/20 rounded-full px-1.5 py-0.5"},Qp={key:0,class:"text-[11px] text-[var(--muted)]"},Zp={key:1,class:"text-[11px] text-[var(--subtle)] line-clamp-2 font-mono bg-[var(--surface-2)] rounded px-2 py-1 mt-0.5"},Xp={key:2,class:"mt-1.5"},Yp=["onClick"],ev={key:1,class:"inline-flex items-center gap-1.5 text-[11px] text-[var(--muted)]"},av={key:2,class:"text-[11px] text-red-400"},tv={key:3,class:"flex flex-col gap-1"},ov=["src","onLoadedmetadata"],sv={key:0,class:"text-[10px] text-[var(--subtle)]"},rv={class:"font-mono text-[var(--muted)]"},nv={key:4,class:"flex flex-col gap-1"},lv=["src","onLoadedmetadata"],iv={key:0,class:"text-[10px] text-[var(--subtle)]"},dv={class:"font-mono text-[var(--muted)]"},cv={key:5},uv=["src","alt"],pv=["disabled","onClick"],vv={key:0,class:"h-3 w-3 border-2 border-[var(--accent)] border-t-transparent roun
13ded-full animate-spin"},mv={key:2},xv={class:"text-[11px] font-bold uppercase tracking-[0.06em] text-[var(--muted)] mb-2"},bv={class:"text-[12px] text-[var(--text)] bg-[var(--surface-2)] rounded-xl border border-[var(--border)] px-4 py-3 whitespace-pre-wrap break-words font-mono leading-relaxed"},hv={class:"text-[10px] text-[var(--subtle)] mt-1"},fv={class:"text-[11px] font-bold uppercase tracking-[0.06em] text-[var(--muted)] mb-2"},_v={class:"grid grid-cols-2 gap-x-4 gap-y-2"},gv={class:"text-[10px] font-bold uppercase tracking-[0.05em] text-[var(--subtle)]"},yv={class:"text-xs text-[var(--muted)]"},wv={class:"text-[11px] font-bold uppercase tracking-[0.06em] text-[var(--muted)] mb-2"},$v={class:"flex flex-col gap-1.5 rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-4 py-3"},kv={class:"text-[11px] text-[var(--subtle)] shrink-0"},Cv={class:"text-[11px] text-[var(--text)] font-mono text-right break-all"},Av={class:"flex items-center justify-between gap-3 px-5 py-4 border-t border-[var(--border)] shrink-0"},Sv=["disabled"],Iv={key:0,class:"h-4 w-4 border-2 border-white border-t-transparent rounded-full animate-spin"},Mv={key:1,class:"text-[11px] text-[var(--subtle)] text-right"},Ev=$e({__name:"DisparosContatoDetalhePanel",props:{modelValue:{type:Boolean},contato:{},campanha:{}},emits:["update:modelValue","reenviado"],setup(n,{emit:p}){const{tn:o}=Ee(),d=n,b=p,C=Le(),E=y(null),R=y({});function w(T){return R.value[T]||(R.value[T]={url:null,loading:!1,duration:null,erro:!1}),R.value[T]}async function z(T){const q=w(T);if(!(q.url||q.loading)){q.loading=!0,q.erro=!1;try{q.url=await C.getMidiaUrl(d.campanha.id,T)}catch{q.erro=!0}finally{q.loading=!1}}}function F(T,q){const S=q.target;w(T).duration=S.duration}function L(T){const q=Math.floor(T/60),S=Math.floor(T%60);return`${q}:${String(S).padStart(2,"0")}`}we(()=>d.modelValue,T=>{T||(R.value={})});const j=X(()=>d.campanha.tipo==="funil"),A=X(()=>(d.campanha.funil_config?.passos??[]).slice().sort((T,q)=>T.ordem-q.ordem)),c=X(()=>["falha","em_fila","pendente"].includes(d.contato.status));function P(T){const q=d.contato.funil_passo_atual;return q==null?T===1?"atual":"futuro":T<q?"concluido":T===q?"atual":"futuro"}function H(T){const q=T.gatilho;if(!q)return"";const Q={timeout_sem_resposta:"Sem resposta após",respondeu:"Quando responder",lido:"Quando ler",entregue:"Quando entregar"}[q.tipo]??q.tipo;if(q.delay&&q.delay_unidade){const Y={minutos:"min",horas:"h",dias:"dia(s)",semanas:"sem.",meses:"mes(es)"};return`${Q} ${q.delay} ${Y[q.delay_unidade]??q.delay_unidade}`}return Q}function g(T){const q=T.templates?.length?T.templates:T.template?[T.template]:[];if(!q.length)return null;const S=d.contato.template_idx??0;return q[S%q.length]??q[0]??null}const N=X(()=>{if(j.value){const T=A.value.find(q=>q.ordem===d.contato.funil_passo_atual);return T?g(T):null}return d.campanha.templates?.[d.contato.template_idx??0]??null}),V={numero_inexistente:"Número não existe no WhatsApp",sem_instancia_waha:"Nenhum chip WhatsApp atribuÃdo ao contato",template_vazio:"Nenhum conteúdo de mensagem para enviar",lid_nao_resolvido:"Falha ao identificar o contato no WhatsApp"},M=X(()=>{const T=d.contato.erro??"";for(const[q,S]of Object.entries(V))if(T.startsWith(q)){const Q=T.slice(q.length).replace(/^:\s*/,"");return Q?`${S}: ${Q}`:S}if(T.startsWith("rate_limit")){const q=T.slice(10).replace(/^:\s*/,"");return`Chip atingiu o limite de taxa (rate limit)${q?`: ${q}`:""}`}return T.startsWith("campanha_")?`Campanha não estava ativa no momento do envio (${T})`:T});function I(T){return T?new Date(T).toLocaleString("pt-BR",{day:"2-digit",month:"2-digit",year:"2-digit",hour:"2-digit",minute:"2-digit"}):""}const K=X(()=>[{label:o("Agendado para"),valor:I(d.contato.agendado_para)},{label:o("Enviado em"),valor:I(d.contato.enviado_em)},{label:o("Entregue em"),valor:I(d.contato.entregue_em)},{label:o("Lido em"),valor:I(d.contato.lido_em)},{label:o("Respondeu em"),valor:I(d.contato.respondeu_em)},...j.value?[{label:o("Próx. avaliação"),valor:I(d.contato.funil_proximo_check_em)}]:[]]),te=X(()=>[{label:o("Chip (instância)"),valor:d.contato.instancia_waha},{label:"ID WAHA",valor:d.contato.waha_message_id},{label:o("Ãndice do template"),valor:`#${(d.contato.template_idx??0)+1}`},...j.value?[{label:"Etapa atual",valor:d.contato.funil_passo_atual!=null?String(d.contato.funil_passo_atual):null}]:[]]);async function xe(T){E.value=T;try{await C.reenviarFalhaContato(d.campanha.id,d.contato.id,T),B.success(`Reenvio solicitado a partir da etapa ${T}.`),b("reenviado"),b("update:modelValue",!1)}catch(q){B.error(Te(q))}finally{E.value=null}}async function l(){E.value=0;try{await C.reenviarFalhaContato(d.campanha.id,d.contato.id),B.success(o("Reenvio solicitado.")),b("reenviado"),b("update:modelValue",!1)}catch(T){B.error(Te(T))}finally{E.value=null}}const ue=T=>({pendente:"Pendente",em_fila:"Em Fila",enviado:"Enviado",entregue:"Entregue",lido:"Lido",falha:"Falha"})[T]||T,be=T=>({pendente:"bg-[var(--surface-2)] text-[var(--muted)] border border-[var(--border)]",em_fila:"bg-[var(--accent-soft)] text-[var(--accent)] border border-[var(--accent-soft-strong)]",enviado:"bg-blue-500/10 text-blue-400 border border-blue-500/20",entregue:"bg-emerald-500/10 text-emerald-500 border border-emerald-500/20",lido:"bg-emerald-500/15 text-emerald-400 border border-emerald-500/30",falha:"bg-red-500/10 text-red-500 border border-red-500/20"})[T]||"";return(T,q)=>(s(),se(Ua,{to:"body"},[$(Oe,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-150","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:Ie(()=>[n.modelValue?(s(),r("div",Mp,[e("div",{class:"absolute inset-0 modal-overlay",onClick:q[0]||(q[0]=S=>T.$emit("update:modelValue",!1))}),$(Oe,{"enter-active-class":"transition-transform duration-300 ease-out","enter-from-class":"translate-x-full","enter-to-class":"translate-x-0","leave-active-class":"transition-transform duration-200 ease-in","leave-from-class":"translate-x-0","leave-to-class":"translate-x-full"},{default:Ie(()=>[n.modelValue?(s(),r("div",{key:0,class:"relative z-10 w-full max-w-[min(100vw,640px)] sm:max-w-[640px] h-full modal-content roun
13ded-none border-l border-[var(--border)] flex flex-col overflow-hidden",style:{"border-radius":"0 !important"},onClick:q[3]||(q[3]=Pe(()=>{},["stop"]))},[e("div",Ep,[e("div",Pp,[e("div",Lp,[e("h2",jp,a(n.contato.nome||"Contato"),1),e("span",{class:ie(["inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-bold",be(n.contato.status)])},a(ue(n.contato.status)),3)]),e("p",Dp,a(t(pa)(n.contato.telefone,!0)),1)]),e("button",{type:"button",class:"shrink-0 rounded-lg p-1.5 text-[var(--muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] transition",onClick:q[1]||(q[1]=S=>T.$emit("update:modelValue",!1))},[$(t(Me),{class:"h-5 w-5"})])]),e("div",Tp,[n.contato.erro?(s(),r("div",Up,[e("div",Rp,[$(t(Na),{class:"h-4 w-4 text-red-500 shrink-0"}),e("span",Np,a(t(o)("Erro no envio")),1)]),e("p",Vp,a(M.value),1),e("p",qp,a(n.contato.erro),1)])):x("",!0),j.value&&A.value.length>0?(s(),r("div",Fp,[e("p",Op,a(t(o)("Etapas do funil")),1),e("div",zp,[(s(!0),r(oe,null,le(A.value,(S,Q)=>(s(),r("div",{key:S.ordem,class:"flex gap-3"},[e("div",Bp,[e("div",{class:ie(["h-6 w-6 rounded-full border-2 flex items-center justify-center shrink-0",P(S.ordem)==="concluido"?"bg-emerald-500/15 border-emerald-500 text-emerald-500":P(S.ordem)==="atual"?"bg-[var(--accent)]/15 border-[var(--accent)] text-[var(--accent)]":"bg-[var(--surface-2)] border-[var(--border)] text-[var(--subtle)]"])},[P(S.ordem)==="concluido"?(s(),se(t(Ra),{key:0,class:"h-3 w-3"})):P(S.ordem)==="atual"?(s(),r("span",Kp,a(S.ordem),1)):(s(),se(t(qt),{key:2,class:"h-2.5 w-2.5"}))],2),Q<A.value.length-1?(s(),r("div",Wp)):x("",!0)]),e("div",Gp,[e("div",Hp,[e("span",{class:ie(["text-sm font-semibold",P(S.ordem)==="atual"?"text-[var(--accent)]":"text-[var(--text)]"])},a(S.nome||`Etapa ${S.ordem}`),3),P(S.ordem)==="atual"?(s(),r("span",Jp,a(t(o)("atual")),1)):x("",!0),S.midia_tipo?(s(),r("span",{key:1,class:ie(["inline-flex items-center gap-1 rounded-full px-1.5 py-0.5 text-[10px] font-bold border",S.midia_tipo==="video"?"bg-purple-500/10 text-purple-400 border-purple-500/20":S.midia_tipo==="imagem"?"bg-blue-500/10 text-blue-400 border-blue-500/20":"bg-amber-500/10 text-amber-400 border-amber-500/20"])},[S.midia_tipo==="video"?(s(),se(t(Ga),{key:0,class:"h-2.5 w-2.5"})):S.midia_tipo==="imagem"?(s(),se(t(Ne),{key:1,class:"h-2.5 w-2.5"})):(s(),se(t(ja),{key:2,class:"h-2.5 w-2.5"})),_(" "+a(S.midia_tipo==="video"?"VÃdeo":S.midia_tipo==="imagem"?"Imagem":"Ãudio"),1)],2)):x("",!0)]),S.gatilho?(s(),r("p",Qp,a(H(S)),1)):x("",!0),g(S)?(s(),r("p",Zp,a(g(S)),1)):x("",!0),S.midia_s3_key?(s(),r("div",Xp,[!w(S.midia_s3_key).url&&!w(S.midia_s3_key).loading&&!w(S.midia_s3_key).erro?(s(),r("button",{key:0,type:"button",class:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--border)] px-2 py-1 text-[11px] text-[var(--muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] transition",onClick:Y=>z(S.midia_s3_key)},[S.midia_tipo==="video"?(s(),se(t(Ga),{key:0,class:"h-3 w-3"})):S.midia_tipo==="imagem"?(s(),se(t(Ne),{key:1,class:"h-3 w-3"})):(s(),se(t(ja),{key:2,class:"h-3 w-3"})),_(" "+a(t(o)("Ver preview")),1)],8,Yp)):w(S.midia_s3_key).loading?(s(),r("span",ev,[q[4]||(q[4]=e("span",{class:"h-3 w-3 border-2 border-[var(--muted)] border-t-transparent rounded-full animate-spin"},null,-1)),_(" "+a(t(o)("Carregandoâ¦")),1)])):w(S.midia_s3_key).erro?(s(),r("span",av,a(t(o)("Não foi possÃvel carregar a mÃdia.")),1)):S.midia_tipo==="video"&&w(S.midia_s3_key).url?(s(),r("div",tv,[e("video",{src:w(S.midia_s3_key).url,controls:"",preload:"metadata",class:"w-full rounded-xl border border-[var(--border)] max-h-48 bg-black",onLoadedmetadata:Y=>F(S.midia_s3_key,Y)},null,40,ov),w(S.midia_s3_key).duration!=null?(s(),r("p",sv,[_(a(t(o)("Duração:"))+" ",1),e("span",rv,a(L(w(S.midia_s3_key).duration)),1)])):x("",!0)])):S.midia_tipo==="audio"&&w(S.midia_s3_key).url?(s(),r("div",nv,[e("audio",{src:w(S.midia_s3_key).url,controls:"",preload:"metadata",class:"w-full",onLoadedmetadata:Y=>F(S.midia_s3_key,Y)},null,40,lv),w(S.midia_s3_key).duration!=null?(s(),r("p",iv,[_(a(t(o)("Duração:"))+" ",1),e("span",dv,a(L(w(S.midia_s3_key).duration)),1)])):x("",!0)])):S.midia_tipo==="imagem"&&w(S.midia_s3_key).url?(s(),r("div",cv,[e("img",{src:w(S.midia_s3_key).url,class:"w-full rounded-xl border border-[var(--border)] max-h-48 object-contain bg-[var(--surface-2)]",alt:t(o)("Preview da imagem")},null,8,uv)])):x("",!0)])):x("",!0),c.value&&P(S.ordem)!=="futuro"?(s(),r("button",{key:3,type:"button",disabled:E.value===S.ordem,class:"self
13-start mt-1 inline-flex items-center gap-1 rounded-lg border border-[var(--accent)]/30 px-2 py-1 text-[11px] font-bold text-[var(--accent)] hover:bg-[var(--accent)]/10 disabled:opacity-45 disabled:cursor-not-allowed transition",onClick:Y=>xe(S.ordem)},[E.value===S.ordem?(s(),r("span",vv)):x("",!0),_(" "+a(E.value===S.ordem?"Enviandoâ¦":"Reenviar desta etapa"),1)],8,pv)):x("",!0)])]))),128))])])):x("",!0),N.value?(s(),r("div",mv,[e("p",xv,a(t(o)("Mensagem tentada")),1),e("pre",bv,a(N.value),1),e("p",hv,"Template #"+a((n.contato.template_idx??0)+1)+a(j.value&&n.contato.funil_passo_atual?` · Etapa ${n.contato.funil_passo_atual}`:""),1)])):x("",!0),e("div",null,[e("p",fv,a(t(o)("Linha do tempo")),1),e("div",_v,[(s(!0),r(oe,null,le(K.value,S=>(s(),r("div",{key:S.label,class:"flex flex-col gap-0.5"},[e("span",gv,a(t(o)(S.label)),1),e("span",yv,a(S.valor||"â"),1)]))),128))])]),e("div",null,[e("p",wv,a(t(o)("Detalhes técnicos")),1),e("div",$v,[(s(!0),r(oe,null,le(te.value,S=>(s(),r("div",{key:S.label,class:"flex items-start justify-between gap-3"},[e("span",kv,a(t(o)(S.label)),1),e("span",Cv,a(S.valor||"â"),1)]))),128))])])]),e("div",Av,[e("button",{type:"button",class:"rounded-xl border border-[var(--border)] px-4 py-2 text-sm font-semibold text-[var(--muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] transition",onClick:q[2]||(q[2]=S=>T.$emit("update:modelValue",!1))},a(t(o)("Fechar")),1),c.value&&!j.value?(s(),r("button",{key:0,type:"button",disabled:E.value!==null,class:"inline-flex items-center gap-2 rounded-xl px-4 py-2 text-sm font-bold text-white bg-[var(--accent)] hover:opacity-90 disabled:opacity-45 disabled:cursor-not-allowed transition",onClick:l},[E.value!==null?(s(),r("span",Iv)):x("",!0),_(" "+a(E.value!==null?"Enviandoâ¦":"Reenviar"),1)],8,Sv)):x("",!0),c.value&&j.value?(s(),r("p",Mv,a(t(o)('Clique em "Reenviar desta etapa" na timeline acima.')),1)):x("",!0)])])):x("",!0)]),_:1})])):x("",!0)]),_:1})]))}}),Pv=Object.assign(Ev,{__name:"DisparosContatoDetalhePanel"}),Lv={class:"flex flex-col gap-4"},jv={class:"flex flex-col gap-2"},Dv={class:"flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-3"},Tv={class:"relative flex-1 min-w-0"},Uv=["placeholder"],Rv={class:"flex items-center gap-2 shrink-0"},Nv={for:"filtro-status",class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)] shrink-0 hidden sm:block"},Vv={value:""},qv={value:"pendente"},Fv={value:"em_fila"},Ov={value:"enviado"},zv={value:"entregue"},Bv={value:"lido"},Kv={value:"falha"},Wv=["disabled"],Gv={key:0,class:"h-3.5 w-3.5 border-2 border-orange-400 border-t-transparent rounded-full animate-spin"},Hv={key:0,class:"text-[11px] text-[var(--subtle)]"},Jv={class:"text-[var(--text)]"},Qv={class:"text-[var(--text)]"},Zv={class:"text-[var(--text)]"},Xv={class:"text-[var(--text)]"},Yv={key:0,class:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2 rounded-2xl border border-[var(--border)] bg-[var(--surface)] p-3 shadow-[var(--shadow)]"},em={class:"flex items-center gap-2"},am=["checked"],tm={class:"text-xs text-[var(--muted)]"}
13,om={key:0,class:"text-xs font-semibold text-[var(--text)] tabular-nums"},sm=["disabled"],rm={key:0,class:"h-3.5 w-3.5 border-2 border-red-500 border-t-transparent rounded-full animate-spin"},nm={key:1,class:"flex flex-col gap-2"},lm={key:2,class:"py-8 text-center"},im={class:"text-sm text-[var(--muted)]"},dm={key:3,class:"rounded-2xl border border-[var(--border)] overflow-hidden"},cm={class:"overflow-x-auto"},um={class:"w-full min-w-[900px]"},pm={class:"border-b border-[var(--border)] bg-[var(--surface-2)]"},vm={class:"w-10 px-2 py-2.5 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},mm={class:"sr-only"},xm={class:"px-4 py-2.5 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},bm={class:"px-4 py-2.5 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)] whitespace-nowrap min-w-[12rem]"},hm={class:"px-4 py-2.5 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},fm={key:0,class:"px-4 py-2.5 text-center text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)] whitespace-nowrap"},_m={class:"px-4 py-2.5 text-center text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},gm={class:"px-4 py-2.5 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},ym={class:"px-4 py-2.5 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},wm={class:"px-4 py-2.5 pr-16 text-right text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},$m=["onClick"],km=["checked","onChange"],Cm={key:1,class:"text-[10px] text-[var(--subtle)] pl-0.5"},Am={class:"px-4 py-2.5 text-sm text-[var(--text)] font-medium"},Sm={class:"px-4 py-2.5 text-sm text-[var(--muted)] font-mono whitespace-nowrap align-top min-w-[12rem]"},Im={class:"px-4 py-2.5"},Mm=["title","onClick"],Em={class:"max-w-[120px] truncate"},Pm={key:0,class:"px-4 py-2.5 text-center"},Lm={key:0,class:"inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-bold bg-[var(--accent)]/10 text-[var(--accent)] border border-[var(--accent)]/20"},jm={key:1,class:"text-[var(--subtle)] text-xs"},Dm={class:"px-4 py-2.5 text-center text-sm text-[var(--muted)]"},Tm={class:"px-4 py-2.5 text-sm text-[var(--muted)]"},Um={class:"px-4 py-2.5 text-sm text-[var(--muted)]"},Rm=["disabled","onClick"],Nm=$e({__name:"DisparosContatosLista",props:{campanhaId:{},campanha:{}},emits:["campanha-atualizada"],setup(n,{emit:p}){const{tn:o}=Ee(),d=n,b=p,C=Le(),E=y(""),R=y(""),w=y(null),z=y(!1),F=y(!1),L=y(new Set),j=y(null),A=y(null),c=y(!1);let P=null;we(R,()=>{P&&clearTimeout(P),P=setTimeout(()=>{re(1)},400)});const{contatos:H,isLoadingContatos:g,paginacaoContatos:N,campanhas:V}=la(C),M=X(()=>d.campanha??V.value.find(k=>k.id===d.campanhaId)??null),I=X(()=>M.value?.tipo==="funil");function K(k){A.value=k,c.value=!0}const te={numero_inexistente:"Número inválido",sem_instancia_waha:"Sem chip",template_vazio:"Sem conteúdo",lid_nao_resolvido:"LID não resolvido"};function xe(k){for(const[Z,ae]of Object.entries(te))if(k.startsWith(Z))return ae;return k.startsWith("rate_limit")?"Rate limit":k.startsWith("campanha_")?"Campanha inativa":k.length>22?k.slice(0,22)+"â¦":k}const l=k=>k==="pendente"||k==="em_fila"||k==="falha",ue=X(()=>H.value.filter(k=>l(k.status))),be=X(()=>L.value.size),T=X(()=>ue.value.map(k=>k.id)),q=X(()=>{const k=T.value;return k.length===0?!1:k.every(Z=>L.value.has(Z))}),S=X(()=>{const k=T.value;if(k.length===0)return!1;const Z=k.filter(ae=>L.value.has(ae)).length;return Z>0&&Z<k.length});function Q(k){const Z=new Set(L.value);Z.has(k)?Z.delete(k):Z.add(k),L.value=Z}function Y(){const k=T.value;if(k.length===0)return;const Z=k.every(he=>L.value.has(he)),ae=new Set(L.value);Z?k.forEach(he=>ae.delete(he)):k.forEach(he=>ae.add(he)),L.value=ae}function ye(k){return(k.motivo||k.moto||"Ignorado").trim()}async function J(){const k=[...L.value];if(k.length!==0){try{await aa.confirm(`Remover ${k.length} contato(s) desta campanha? Contatos já enviados ou em progresso além de pendente, fila e falha não serão removidos.`,"Remover contatos",{type:"warning",confirmButtonText:o("Remover"),cancelButtonText:o("Cancelar"),distinguishCancelAndClose:!0})}catch{return}F.value=!0;try{const Z=await C.removerContatosCampanha(d.campanhaId,k);if(L.value=new Set,Z.campanha&&b("campanha-atualizada",Z.campanha),Z.removidos>0?B.success(`${Z.removidos}
13 contato(s) removido(s). Total na campanha: ${Z.total_contatos.toLocaleString("pt-BR")}.`):Z.ignorados.length&&B.warning(o("Nenhum contato foi removido. Veja o motivo abaixo.")),Z.ignorados.length){const ae=Z.ignorados.slice(0,4).map(Ve=>ye(Ve)).join(" · "),he=Z.ignorados.length>4?` (e mais ${Z.ignorados.length-4})`:"";B({type:Z.removidos>0?"warning":"error",message:`${Z.ignorados.length} não removido(s): ${ae}${he}.`,duration:1e4,showClose:!0})}await U()}catch(Z){B.error(Te(Z))}finally{F.value=!1}}}const re=async(k=1)=>{await C.loadContatos(d.campanhaId,k,50,E.value,R.value)};async function W(){z.value=!0;try{const k=await C.reenviarTodasFalhas(d.campanhaId);k.recolocados>0?B.success(`${k.recolocados} contato(s) voltaram para pendente â o scheduler vai enviá-los respeitando o ritmo dos chips.`):B.info(o("Nenhum contato com falha encontrado.")),await re(N.value?.pagina??1)}catch(k){B.error(Te(k))}finally{z.value=!1}}async function U(){let k=N.value?.pagina??1;await re(k),H.value.length===0&&k>1&&await re(k-1)}const ee=()=>{re(1)},_e=k=>{re(k)};we(()=>[q.value,S.value],()=>{Ae(()=>{const k=j.value;k&&(k.indeterminate=S.value)})},{immediate:!0}),we(()=>d.campanhaId,()=>{L.value=new Set,re(1)},{immediate:!0});async function ze(k){w.value=k;try{await C.reenviarFalhaContato(d.campanhaId,k),B.success(o("Reenvio solicitado.")),await re(N.value?.pagina??1)}catch(Z){B.error(Te(Z))}finally{w.value=null}}const Be=k=>({pendente:"Pendente",em_fila:"Em Fila",enviado:"Enviado",entregue:"Entregue",lido:"Lido",falha:"Falha",descartado:"Descartado"})[k]||k,Ke=k=>({pendente:"bg-[var(--surface-2)] text-[var(--muted)] border border-[var(--border)]",em_fila:"bg-[var(--accent-soft)] text-[var(--accent)] border border-[var(--accent-soft-strong)]",enviado:"bg-blue-500/10 text-blue-400 border border-blue-500/20",entregue:"bg-emerald-500/10 text-emerald-500 border border-emerald-500/20",lido:"bg-emerald-500/15 text-emerald-400 border border-emerald-500/30",falha:"bg-red-500/10 text-red-500 border border-red-500/20",descartado:"bg-[var(--surface-2)] text-[var(--subtle)] border border-[var(--border)]"})[k]||"",O=k=>k?new Date(k).toLocaleString("pt-BR",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"}):"â";return(k,Z)=>(s(),r("div",Lv,[e("div",jv,[e("div",Dv,[e("div",Tv,[$(t(Ft),{class:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-[var(--muted)] pointer-events-none"}),ve(e("input",{"onUpdate:modelValue":Z[0]||(Z[0]=ae=>R.value=ae),type:"text",placeholder:t(o)("Buscar por nome ou telefoneâ¦"),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface-2)] pl-9 pr-3 py-1.5 text-sm text-[var(--text)] placeholder:text-[var(--subtle)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)]"},null,8,Uv),[[De,R.value]])]),e("div",Rv,[e("label",Nv,a(t(o)("Status")),1),ve(e("select",{id:"filtro-status","onUpdate:modelValue":Z[1]||(Z[1]=ae=>E.value=ae),class:"rounded-xl border border-[var(--border)] bg-[var(--surface-2)] px-3 py-1.5 text-sm text-[var(--text)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)]",onChange:ee},[e("option",Vv,a(t(o)("Todos os status")),1),e("option",qv,a(t(o)("Pendente")),1),e("option",Fv,a(t(o)("Em Fila")),1),e("option",Ov,a(t(o)("Enviado")),1),e("option",zv,a(t(o)("Entregue")),1),e("option",Bv,a(t(o)("Lido")),1),e("option",Kv,a(t(o)("Falha")),1)],544),[[Se,E.value]])]),e("button",{type:"button",disabled:z.value,class:"shrink-0 inline-flex items-center gap-1.5 rounded-xl border border-orange-500/30 bg-
13orange-500/8 px-3 py-1.5 text-[12px] font-bold text-orange-400 hover:bg-orange-500/15 disabled:opacity-45 disabled:cursor-not-allowed transition",onClick:W},[z.value?(s(),r("span",Gv)):(s(),se(t(Qe),{key:1,class:"h-3.5 w-3.5"})),_(" "+a(z.value?"Reenviandoâ¦":"Reenviar falhas"),1)],8,Wv)]),!t(g)&&t(H).length>0?(s(),r("p",Hv,[_(a(t(o)("Remoção em lote: apenas"))+" ",1),e("span",Jv,a(t(o)("pendente")),1),Z[6]||(Z[6]=_(", ",-1)),e("span",Qv,a(t(o)("em fila")),1),_(" "+a(t(o)("ou"))+" ",1),e("span",Zv,a(t(o)("falha")),1),_(" "+a(t(o)('(máx. 500 por requisição). "Reenviar falhas" volta os contatos para'))+" ",1),e("span",Xv,a(t(o)("pendente")),1),_(" "+a(t(o)("â o scheduler os enviará no próximo ciclo respeitando warm-up e teto dos chips.")),1)])):x("",!0)]),!t(g)&&t(H).length>0&&ue.value.length?(s(),r("div",Yv,[e("div",em,[e("input",{ref_key:"selectAllInputRef",ref:j,checked:q.value,type:"checkbox",class:"h-4 w-4 rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)]",onChange:Y},null,40,am),e("span",tm,a(t(o)("Selecionar removÃveis desta página")),1),be.value>0?(s(),r("span",om,a(be.value)+" "+a(t(o)("no total")),1)):x("",!0)]),e("button",{type:"button",class:"inline-flex items-center justify-center gap-1.5 self-start sm:self-center rounded-xl px-3 py-2 text-sm font-semibold text-red-500 bg-red-500/10 border border-red-500/25 hover:bg-red-500/15 disabled:opacity-45 disabled:cursor-not-allowed transition duration-200",disabled:be.value===0||F.value,onClick:J},[F.value?(s(),r("span",rm)):(s(),se(t(ea),{key:1,class:"h-4 w-4 shrink-0"})),_(" "+a(F.value?"Removendoâ¦":"Remover selecionados"),1)],8,sm)])):x("",!0),t(g)?(s(),r("div",nm,[(s(),r(oe,null,le(5,ae=>e("div",{key:ae,class:"h-10 rounded-xl bg-[var(--surface-2)] animate-pulse"})),64))])):t(H).length===0?(s(),r("div",lm,[e("p",im,"Nenhum contato encontrado"+a(E.value?` com status "${E.value}"`:"")+".",1)])):(s(),r("div",dm,[e("div",cm,[e("table",um,[e("thead",null,[e("tr",pm,[e("th",vm,[e("span",mm,a(t(o)("Selecionar")),1)]),e("th",xm,a(t(o)("Nome")),1),e("th",bm,a(t(o)("Telefone")),1),e("th",hm,a(t(o)("Status")),1),I.value?(s(),r("th",fm,a(t(o)("Etapa")),1)):x("",!0),e("th",_m,a(t(o)("Template")),1),e("th",gm,a(t(o)("Agendado")),1),e("th",ym,a(t(o)("Enviado em")),1),e("th",wm,a(t(o)("Ações")),1)])]),e("tbody",null,[(s(!0),r(oe,null,le(t(H),ae=>(s(),r("tr",{key:ae.id,class:"border-b border-[var(--border)] last:border-0 odd:bg-transparent even:bg-[rgba(255,255,255,0.03)] cursor-pointer hover:bg-[var(--surface-2)] transition-colors",onClick:he=>K(ae)},[e("td",{class:"px-2 py-2.5 align-top",onClick:Z[2]||(Z[2]=Pe(()=>{},["stop"]))},[l(ae.status)?(s(),r("input",{key:0,type:"checkbox",class:"h-4 w-4 rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)]",checked:L.value.has(ae.id),onChange:he=>Q(ae.id)},null,40,km)):(s(),r("span",Cm,"â"))]),e("td",Am,a(ae.nome),1),e("td",Sm,a(t(pa)(ae.telefone,!0)),1),e("td",Im,[e("span",{class:ie(["inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-bold",Ke(ae.status)])},a(Be(ae.status)),3),ae.erro?(s(),r("button",{key:0,type:"button",class:"inline-flex items-center gap-1 mt-0.5 text-[10px] text-red-400 hover:text-red-300 transition",title:ae.erro,onClick:Pe(he=>K(ae),["stop"])},[$(t(Na),{class:"h-3 w-3 shrink-0"}),e("span",Em,a(xe(ae.erro)),1)],8,Mm)):x("",!0)]),I.value?(s(),r("td",Pm,[ae.funil_passo_atual!=null&&ae.funil_passo_atual>0?(s(),r("span",Lm," Etapa "+a(ae.funil_passo_atual),1)):(s(),r("span",jm,"â"))])):x("",!0),e("td",Dm,"#"+a(ae.template_idx+1),1),e("td",Tm,a(ae.agendado_para?O(ae.agendado_para):"â"),1),e("td",Um,a(ae.enviado_em?O(ae.enviado_em):"â"),1),e("td",{class:"px-4 py-2.5 pr-16 text-right",onClick:Z[3]||(Z[3]=Pe(()=>{},["stop"]))},[e("button",{type:"button",class:"inline-flex items-center justify-center rounded-xl border border-[var(--border)] px-2.5 py-1.5 text-[11px] font-bold text-[var(--accent)] hover:bg-[var(--accent)]/10 disabled:opacity-45 disabled:cursor-not-allowed transition",disabled:w.value===ae.id,onClick:he=>I.value?K(ae):ze(ae.id)},a(w.value===ae.id?"Enviandoâ¦":I.value?"Ver detalhe":"Reenviar"),9,Rm)])],8,$m))),128))])])])])),t(N)&&t(N).total_paginas>1?(s(),se(Vt,{key:4,page:t(N).pagina,limit:t(N).limite,total:t(N).total,"total-pages":t(N).total_paginas,disabled:t(g),"item-label":"contato",onPageChange:_e},null,8,["page","limit","total","total-pages","disabled"])):x("",!0),A.value&&M.value?(s(),se(Pv,{key:5,modelValue:c.value,"onUpdate:modelValue":Z[4]||(Z[4]=ae=>c.value=ae),contato:A.value,campanha:M.value,onReenviado:Z[5]||(Z[5]=ae=>re(t(N)?.pagina??1))},null,8,["modelValue","contato","campanha"])):x("",!0)]))}}),Vm=Object.assign(Nm,{__name:"DisparosContatosLista"}),qm={class:"fixed inset-0 z-40 flex justify-end"},Fm={class:"flex items-start justify-between px-5 py-4 border-b border-[var(--border)] shrink-0 gap-4"},Om={class:"flex flex-col gap-1 min-w-0"},zm={class:"flex items-center gap-2 flex-wrap"},Bm={class:"text-base font-bold text-[var(--text)] truncate"},Km={class:"text-xs text-[var(--muted)]"},Wm={class:"flex-1 overflow-y-auto custom-scrollbar px-5 py-5 flex flex-col gap-6"},Gm={class:"flex flex-wrap gap-2"},Hm=["disabled","title"],Jm=["disabled"],Qm=["disabled","title"],Zm=["disabled","title"],Xm=["disabled"],Ym={key:5,class:"inline-flex items-center gap-1.5 text-sm text-[var(--muted)]"},ex=["disabled"],ax={key:0,class:"w-3.5 h-3.5 border-2 border-red-500 border-t-transparent roun
13ded-full animate-spin"},tx={key:0,class:"rounded-xl border border-amber-500/30 bg-amber-500/10 px-4 py-3 flex flex-col gap-3 -mt-3"},ox={class:"text-sm font-semibold text-[var(--text)]"},sx={class:"text-[var(--accent)]"},rx={class:"text-amber-500"},nx={key:0,class:"text-xs text-[var(--muted)]"},lx={key:0,class:"text-xs text-[var(--muted)]"},ix={key:1,class:"rounded-lg border border-[var(--border)] bg-[var(--surface-2)]/60 px-3 py-2.5 flex flex-col gap-2"},dx={class:"text-sm font-semibold text-[var(--text)]"},cx={class:"text-xs text-[var(--muted)]"},ux={class:"text-xs text-[var(--muted)] flex flex-col gap-1 pl-4 list-disc"},px={key:0},vx={key:1},mx={class:"text-[11px] text-[var(--muted)]"},xx={key:2,class:"text-xs text-emerald-500"},bx={class:"flex gap-2"},hx={key:1,class:"text-sm text-red-500 font-medium -mt-3"},fx={key:2,class:"relative z-10 rounded-2xl border border-[var(--border)] bg-[var(--surface)] shadow-[var(--shadow)] dark:backdrop-blur-xl overflow-hidden shrink-0"},_x=["aria-expanded"],gx={class:"min-w-0"},yx={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--accent)]"},wx={class:"text-xs text-[var(--muted)] mt-0.5"},$x={key:0,class:"border-t border-[var(--border)] p-3 sm:p-4 bg-[var(--bg)]/40"},kx={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)] mb-3"},Cx={class:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-3"},Ax={key:0,class:"mt-4 flex flex-col gap-1.5"},Sx={class:"flex items-center justify-between text-xs text-[var(--muted)]"},Ix={class:"tabular-nums font-semibold"},Mx={class:"h-2 rounded-full bg-[var(--surface-2)] overflow-hidden"},Ex={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)] mb-3"},Px={key:3},Lx={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)] mb-3"},jx={class:"rounded-2xl border border-[var(--border)] overflow-hidden",style:{height:"420px"}},Dx={key:4,class:"space-y-3"},Tx={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)] mb-3"},Ux={key:0,class:"ml-2 normal-case font-normal text-[var(--muted)]"},Rx={class:"flex gap-1 bg-[var(--surface-2)] rounded-xl p-1 border border-[var(--border)]"},Nx=["onClick"],Vx={key:0,class:"space-y-4"},qx={class:"rounded-xl border border-[var(--accent)]/20 bg-[var(--accent)]/08 px-4 py-3 flex items-start gap-3"},Fx={class:"text-xs text-[var(--muted)]"},Ox={class:"font-semibold text-[var(--text)]"},zx={key:1,class:"space-y-4"},Bx={class:"rounded-xl border border-[var(--border)] bg-[var(--surface-2)] p-4 space-y-3"},Kx={class:"text-[11px] font-bold uppercase tracking-[0.06em] text-[var(--muted)]"},Wx={class:"grid grid-cols-1 sm:grid-cols-[1fr_1fr_auto] gap-2 items-end"},Gx={class:"space-y-1"},Hx={class:"text-[11px] text-[var(--subtle)]"},Jx=["placeholder","disabled"],Qx={class:"space-y-1"},Zx={class:"text-[11px] text-[var(--subtle)]"},Xx=["value","disabled"],Yx=["disabled"],eb={key:0,class:"w-3.5 h-3.5 border-2 border-current border-t-transparent rounded-full animate-spin"},ab={key:0,class:"rounded-xl border border-emerald-500/25 bg-emerald-500/10 px-4 py-3 flex flex-wrap gap-3 text-sm"},tb={class:"font-semibold text-emerald-600 dark:text-emerald-400"},ob={key:0,class:"text-[var(--muted)]"},sb={key:1,class:"text-amber-500"},rb={class:"text-center py-2 text-xs text-[var(--subtle)]"},nb={key:5},lb={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)] mb-3"},ib=$e({__name:"DisparosCampanhaDetalhe",props:{campanha:{},duplicando:{type:Boolean,default:!1}},emits:["fechar","atualizada","editar","duplicar"],setup(n,{emit:p}){const{tn:o}=Ee(),d=n,b=p,C=Le(),E=X(()=>C.linhasCampanha.length>0),R=[{id:"csv",label:"Upload CSV",icon:st},{id:"manual",label:"Adicionar Manual",icon:rt}],w=y(!1),z=y(null);async function F(){d.campanha.velocidade==="inteligente"&&(w.value=!0,await Ae(),z.value?.recarregar())}function L(W){b("atualizada",W),W.velocidade==="inteligente"&&z.value?.recarregar()}const j=y("csv"),A=y({nome:"",telefone:""}),c=y(!1),P=y(null),H=W=>{const U=pa(W.target.value);A.value.telefone=U},g=async()=>{const W=A.value.telefone.trim();if(!W)return;c.value=!0,P.value=null;const U=A.value.nome.trim();try{const ee=await C.adicionarContatosManuais(d.campanha.id,[{nome:U||void 0,telefone:W}]);if(P.value=ee,A.value.nome="",A.value.telefone="",ee.inseridos>0){const _e=await C.loadCampanha(d.campanha.id);_e&&b("atualizada",_e),await C.loadContatos(d.campanha.id,1,50),d.campanha.velocidade==="inteligente"&&F(),B.success(o("Contato adicionado!"))}else ee.duplicatas>
130?B.warning(o("Telefone já está na campanha.")):ee.invalidos?.length&&B.error(o("Telefone inválido."))}catch(ee){B.error(ee?.message||"Erro ao adicionar contato")}finally{c.value=!1}},N=y(!1),V=y(!1),M=y(null),I=y(""),K=y(null),te=y(!1),xe=X(()=>M.value==="ativar"&&!!K.value&&!K.value.cabe),l=async W=>{if(M.value=W,I.value="",K.value=null,W==="ativar"){te.value=!0;try{K.value=await C.orcamentoCampanha(d.campanha.id)}catch{K.value=null}finally{te.value=!1}}},ue=W=>({ativar:"Ativar",pausar:"Pausar",cancelar:"Cancelar",reiniciar:"Reiniciar envios"})[W],be=async()=>{if(!M.value)return;N.value=!0,I.value="";const W=M.value;M.value=null;try{let U;if(W==="ativar"){const ee=K.value?!K.value.cabe:void 0;U=await C.ativarCampanha(d.campanha.id,ee)}else if(W==="pausar")U=await C.pausarCampanha(d.campanha.id);else if(W==="reiniciar"){const ee=await C.reiniciarEnviosCampanha(d.campanha.id);U=ee.campanha,B.success(ee.message||"Envios reiniciados. Todos os contatos estão pendentes.")}else U=await C.cancelarCampanha(d.campanha.id);b("atualizada",U)}catch(U){I.value=U?.data?.message||U?.message||(W==="reiniciar"?"Erro ao reiniciar envios":`Erro ao ${W} campanha`)}finally{N.value=!1}},T=async()=>{if(["rascunho","cancelada"].includes(d.campanha.status))try{await aa.confirm(d.campanha.status==="ativa"||d.campanha.status==="pausada"?"Cancele a campanha antes de excluÃ-la.":`Excluir permanentemente a campanha "${d.campanha.nome}"? Esta ação não pode ser desfeita e todos os contatos serão removidos junto.`,"Excluir campanha",{confirmButtonText:o("Sim, excluir"),cancelButtonText:o("Cancelar"),type:"warning",distinguishCancelAndClose:!0}),V.value=!0,await C.deletarCampanha(d.campanha.id),B.success(o("Campanha excluÃda com sucesso.")),b("fechar")}catch(W){if(W==="cancel"||W==="close")return;const U=W?.data?.message||W?.message||"Erro ao excluir campanha";B.error(U)}finally{V.value=!1}},q=async W=>{const U=await C.loadCampanha(d.campanha.id);U&&b("atualizada",U),d.campanha.velocidade==="inteligente"&&F()},S=X(()=>Za(d.campanha)),Q=W=>{const U=d.campanha.metricas?.[W];return U==null||Number.isNaN(Number(U))?"0":String(Number(U))},Y=W=>({lenta:"Lenta (10/h)",media:"Média (30/h)",rapida:"Rápida (60/h)",inteligente:"Inteligente"})[W]||W,ye=W=>{if(!W)return"â";const[U,ee,_e]=W.split("T")[0].split("-");return`${_e}/${ee}/${U}`},J={props:["status"],setup(W){const U={rascunho:{label:"Rascunho",cls:"bg-[var(--surface-2)] text-[var(--muted)] border border-[var(--border)]"},ativa:{label:"Ativa",cls:"bg-[var(--accent-soft)] text-[var(--accent)] border border-[var(--accent-ring)]"},pausada:{label:"Pausada",cls:"bg-amber-500/10 text-amber-500 border border-amber-500/25"},concluida:{label:o("ConcluÃda"),cls:"bg-emerald-500/10 text-emerald-500 border border-emerald-500/25"},cancelada:{label:"Cancelada",cls:"bg-red-500/10 text-red-500 border border-red-500/25"}};return()=>{const{label:ee,cls:_e}=U[W.status]||U.rascunho;return pe("span",{class:`inline-flex items-center rounded-full px-2.5 py-0.5 text-[11px] font-bold ${_e}`},ee)}}},re={props:["label","valor","cor"],setup(W){const U={muted:"text-[var(--muted)]",accent:"text-[var(--accent)]",blue:"text-blue-400",emerald:"text-emerald-500","emerald-strong":"text-emerald-400",red:"text-red-500",violet:"text-violet-400"};return()=>pe("div",{class:"rounded-xl bg-[var(--surface-2)] border border-[var(--border)] p-3 flex flex-col gap-0.5"},[pe("span",{class:`text-xl font-extrabold tabular-nums ${U[W.cor]||"text-[var(--text)]"}`},W.valor),pe("span",{class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},W.label)])}};return(W,U)=>(s(),se(Ua,{to:"body"},[$(Oe,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-150","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:Ie(()=>[e("div",qm,[e("div",{class:"absolute inset-0 modal-overlay",onClick:U[0]||(U[0]=ee=>W.$emit("fechar"))}),$(Oe,{"enter-active-class":"transition-transform duration-300 ease-out","enter-from-class":"translate-x-full","enter-to-class":"translate-x-0","leave-active-class":"transition-transform duration-200 ease-in","leave-from-class":"translate-x-0","leave-to-class":"translate-x-full"},{default:Ie(()=>[e("div",{class:"relative z-10 w-full max-w-[min(100vw,920px)] sm:max-w-[920px] h-full modal-content roun
13ded-none border-l border-[var(--border)] flex flex-col overflow-hidden",style:{"border-radius":"0 !important"},onClick:U[11]||(U[11]=Pe(()=>{},["stop"]))},[e("div",Fm,[e("div",Om,[e("div",zm,[e("h2",Bm,a(n.campanha.nome),1),$(J,{status:n.campanha.status},null,8,["status"])]),e("p",Km,a(Y(n.campanha.velocidade))+" · "+a(ye(n.campanha.data_inicio))+" "+a(t(o)("até"))+" "+a(ye(n.campanha.data_fim)),1)]),e("button",{type:"button",class:"shrink-0 p-2 rounded-xl text-[var(--muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] transition duration-200",onClick:U[1]||(U[1]=ee=>W.$emit("fechar"))},[$(t(Me),{class:"h-5 w-5"})])]),e("div",Wm,[e("div",Gm,[n.campanha.status==="rascunho"||n.campanha.status==="pausada"?(s(),r("button",{key:0,type:"button",disabled:N.value||!E.value,title:E.value?void 0:"Adicione ao menos uma linha de disparo antes de ativar",class:"btn-primary-gradient inline-flex items-center gap-1.5 px-3 py-1.5 rounded-xl text-sm font-semibold disabled:opacity-45 disabled:cursor-not-allowed transition duration-200",onClick:U[2]||(U[2]=ee=>l("ativar"))},[$(t(it),{class:"h-4 w-4"}),_(" "+a(t(o)("Ativar")),1)],8,Hm)):x("",!0),n.campanha.status==="ativa"?(s(),r("button",{key:1,type:"button",disabled:N.value,class:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-xl text-sm font-semibold text-amber-500 bg-amber-500/10 border border-amber-500/25 hover:bg-amber-500/20 disabled:opacity-45 disabled:cursor-not-allowed transition duration-200",onClick:U[3]||(U[3]=ee=>l("pausar"))},[$(t(Mt),{class:"h-4 w-4"}),_(" "+a(t(o)("Pausar")),1)],8,Jm)):x("",!0),["ativa","cancelada"].includes(n.campanha.status)?x("",!0):(s(),r("button",{key:2,type:"button",disabled:N.value,class:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-xl text-sm font-semibold text-[var(--accent)] bg-[var(--accent)]/10 border border-[var(--accent)]/25 hover:bg-[var(--accent)]/15 disabled:opacity-45 disabled:cursor-not-allowed transition duration-200",title:t(o)("Zera o progresso de envio de todos os contatos. Pause a campanha se estiver ativa."),onClick:U[4]||(U[4]=ee=>l("reiniciar"))},[$(t(Qe),{class:"h-4 w-4"}),_(" "+a(t(o)("Reiniciar envios")),1)],8,Qm)),e("button",{type:"button",disabled:n.duplicando||N.value,class:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-xl text-sm font-semibold text-[var(--accent)] bg-[var(--accent)]/10 border border-[var(--accent)]/25 hover:bg-[var(--accent)]/15 disabled:opacity-45 disabled:cursor-not-allowed transition duration-200",title:t(o)("Copia configuração, fluxos e linhas de disparo (sem contatos)"),onClick:U[5]||(U[5]=ee=>W.$emit("duplicar",n.campanha))},[$(t(dt),{class:"h-4 w-4"}),_(" "+a(t(o)("Duplicar")),1)],8,Zm),n.campanha.status==="rascunho"||n.campanha.status==="pausada"?(s(),r("button",{key:3,type:"button",class:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-xl text-sm font-semibold text-[var(--muted)] border border-[var(--border)] hover:bg-[var(--surface-2)] transition duration-200",onClick:U[6]||(U[6]=ee=>W.$emit("editar",n.campanha))},[$(t(va),{class:"h-4 w-4"}),_(" "+a(t(o)("Editar")),1)])):x("",!0),["rascunho","ativa","pausada"].includes(n.campanha.status)?(s(),r("button",{key:4,type:"button",disabled:N.value,class:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-xl text-sm font-semibold text-red-500 bg-red-500/10 border border-red-500/20 hover:bg-red-500/15 disabled:opacity-45 disabled:cursor-not-allowed transition duration-200",onClick:U[7]||(U[7]=ee=>l("cancelar"))},[$(t(Pa),{class:"h-4 w-4"}),_(" "+a(t(o)("Cancelar")),1)],8,Xm)):x("",!0),N.value?(s(),r("span",Ym,[U[12]||(U[12]=e("span",{class:"w-3.5 h-3.5 border-2 border-[var(--accent)] border-t-transparent rounded-full animate-spin"},null,-1)),_(" "+a(t(o)("Processando...")),1)])):x("",!0),n.campanha.status==="rascunho"||n.campanha.status==="cancelada"?(s(),r("button",{key:6,type:"button",disabled:V.value||N.value,class:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-xl text-sm font-semibold text-red-500 bg-red-500/10 border border-red-500/20 hover:bg-red-500/15 disabled:opacity-45 disabled:cursor-not-allowed transition duration-200",onClick:T},[V.value?(s(),r("span",ax)):(s(),se(t(ea),{key:1,class:"h-4 w-4"})),_(" "+a(t(o)("Excluir")),1)],8,ex)):x("",!0)]),M.value?(s(),r("div",tx,[e("p",ox,[M.value==="reiniciar"?(s(),r(oe,{key:0},[_(a(t(o)("Reiniciar envios? Todos os contatos voltam para"))+" ",1),e("span",sx,a(t(o)("pendente")),1),_(" "+a(t(o)("e o progresso de envio é zerado. Depois use"))+" ",1),e("strong",null,a(t(o)("Ativar")),1),_(" "+a(t(o)("para disparar de novo.")),1)],64)):(s(),r(oe,{key:1},[_(a(t(o)("Confirmar:"))+" ",1),e("span",rx,a(ue(M.value)),1),_(" "+a(t(o)("esta campanha?")),1)],64))]),M.value==="cancelar"?(s(),r("p",nx,a(t(o)("Esta ação é irreversÃvel.")),1)):x("",!0),M.value==="ativar"?(s(),r(oe,{key:1},[te.value?(s(),r("p",lx,a(t(o)("Conferindo se dá tempoâ¦")),1)):K.value&&!K.value.cabe?(s(),r("div",ix,[e("p",dx,a(K.value.demanda)+" "+a(t(o)("mensagens não cabem com segurança até"))+" "+a(ye(K.value.data_fim))+". ",1),e("p",cx,a(t(o)("Com os números conectados, dá pra entregar cerca de"))+" "+a(K.value.capacidade_total)+" "+a(t(o)("nesse prazo."))+" "+a(t(o)("Faltam"))+" "+a(K.value.deficit)+". ",1),e("ul",ux,[K.value.sugestao_chips?(s(),r("li",px,a(t(o)("Conectar mais"))+" "+a(K.value.sugestao_chips)+" "+a(K.value.sugestao_chips===1?t(o)("número"):t(o)("números")),1
13)):x("",!0),K.value.sugestao_dias&&K.value.sugestao_dias>K.value.dias?(s(),r("li",vx,a(t(o)("Esticar a data de fim para"))+" "+a(K.value.sugestao_dias)+" "+a(t(o)("dias")),1)):x("",!0),e("li",null,a(t(o)("Ou mandar assim mesmo: a campanha entrega o máximo que der, e o risco de bloqueio é seu.")),1)]),e("p",mx,a(t(o)("Número novo não manda muito de cara â ele aquece aos poucos, e é isso que limita.")),1)])):K.value?(s(),r("p",xx,a(t(o)("Cabe no prazo:"))+" "+a(K.value.demanda)+" "+a(t(o)("mensagens, e os números entregam até"))+" "+a(K.value.capacidade_total)+". ",1)):x("",!0)],64)):x("",!0),e("div",bx,[e("button",{type:"button",class:"px-3 py-1.5 rounded-xl text-sm font-semibold text-white bg-red-600 hover:brightness-110 transition",onClick:be},a(xe.value?t(o)("Mandar assim mesmo"):t(o)("Confirmar")),1),e("button",{type:"button",class:"px-3 py-1.5 rounded-xl text-sm font-semibold text-[var(--muted)] border border-[var(--border)] hover:bg-[var(--surface-2)] transition",onClick:U[8]||(U[8]=ee=>M.value=null)},a(t(o)("Cancelar")),1)])])):x("",!0),I.value?(s(),r("p",hx,a(I.value),1)):x("",!0),n.campanha.velocidade==="inteligente"?(s(),r("div",fx,[e("button",{type:"button",class:"w-full flex items-center justify-between gap-3 px-4 py-3.5 text-left transition duration-200 hover:bg-[var(--surface-2)]/90 focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[var(--accent)]","aria-expanded":w.value,onClick:U[9]||(U[9]=ee=>w.value=!w.value)},[e("div",gx,[e("p",yx,a(t(o)("Pool inteligente")),1),e("p",wx,a(t(o)("Projeção, saúde dos chips e fila do dia")),1)]),$(t(et),{class:ie(["h-5 w-5 shrink-0 text-[var(--muted)] transition-transform duration-200",w.value?"rotate-180":""])},null,8,["class"])],8,_x),w.value?(s(),r("div",$x,[$(Ip,{ref_key:"poolInteligenteRef",ref:z,campanha:n.campanha},null,8,["campanha"])])):x("",!0)])):x("",!0),e("div",null,[e("p",kx,a(t(o)("Métricas de envio")),1),e("div",Cx,[$(re,{label:"Pendentes",valor:Q("pendentes"),cor:"muted"},null,8,["valor"]),$(re,{label:t(o)("Em Fila"),valor:Q("em_fila"),cor:"accent"},null,8,["label","valor"]),$(re,{label:"Enviados",valor:Q("enviados"),cor:"blue"},null,8,["valor"]),$(re,{label:"Entregues",valor:Q("entregues"),cor:"emerald"},null,8,["valor"]),$(re,{label:"Lidos",valor:Q("lidos"),cor:"emerald-strong"},null,8,["valor"]),$(re,{label:"Falhas",valor:Q("falhas"),cor:"red"},null,8,["valor"]),$(re,{label:"Respostas",valor:Q("respostas"),cor:"violet"},null,8,["valor"])]),n.campanha.total_contatos>0?(s(),r("div",Ax,[e("div",Sx,[e("span",null,a(t(o)("Progresso geral")),1),e("span",Ix,a(S.value)+a(t(o)("% de"))+" "+a(n.campanha.total_contatos.toLocaleString("pt-BR")),1)]),e("div",Mx,[e("div",{class:"h-full rounded-full bg-[var(--accent)] transition-all duration-500",style:kt({width:`${S.value}%`})},null,4)])])):x("",!0)]),e("div",null,[e("p",Ex,a(t(o)("Linhas de disparo")),1),$(ut,{"campanha-id":n.campanha.id,"campanha-status":n.campanha.status,readonly:!["rascunho","pausada","ativa"].includes(n.campanha.status)},null,8,["campanha-id","campanha-status","readonly"])]),n.campanha.tipo==="funil"&&n.campanha.funil_config?.passos?.length?(s(),r("div",Px,[e("p",Lx,a(t(o)("Fluxo do Funil")),1),e("div",jx,[(s(),se(vt,{key:`funil-detalhe-${n.campanha.id}`,passos:n.campanha.funil_config.passos,"campanha-id":n.campanha.id,readonly:!0},null,8,["passos","campanha-id"]))])])):x("",!0),n.campanha.status==="rascunho"||n.campanha.status==="pausada"?(s(),r("div",Dx,[e("p",Tx,[_(a(t(o)("Adicionar contatos"))+" ",1),n.campanha.total_contatos>0?(s(),r("span",Ux," · "+a(n.campanha.total_contatos.toLocaleString("pt-BR"))+" "+a(t(o)("já carregados")),1)):x("",!0)]),e("div",Rx,[(s(),r(oe,null,le(R,ee=>e("button",{key:ee.id,type:"button",class:ie(["flex-1 flex items-center justify-center gap-2 rounded-lg px-3 py-2 text-xs sm:text-sm font-semibold transition duration-200",j.value===ee.id?"bg-[var(--surface)] text-[var(--text)] shadow-sm":"text-[var(--muted)] hover:text-[var(--text)]"]),onClick:_e=>j.value=ee.id},[(s(),se(Ue(ee.icon),{class:"h-4 w-4 shrink-0"}
13)),_(" "+a(t(o)(ee.label)),1)],10,Nx)),64))]),j.value==="csv"?(s(),r("div",Vx,[e("div",qx,[$(t(nt),{class:"h-4 w-4 text-[var(--accent)] shrink-0 mt-0.5"}),e("p",Fx,[_(a(t(o)("O CSV"))+" ",1),e("span",Ox,a(t(o)("adiciona")),1),_(" "+a(t(o)("contatos incrementalmente â duplicatas são ignoradas e nenhum contato existente é apagado.")),1)])]),$(ct,{"campanha-id":n.campanha.id,onUploaded:q},null,8,["campanha-id"])])):(s(),r("div",zx,[e("div",Bx,[e("p",Kx,a(t(o)("Adicionar contato")),1),e("div",Wx,[e("div",Gx,[e("label",Hx,a(t(o)("Nome (opcional)")),1),ve(e("input",{"onUpdate:modelValue":U[10]||(U[10]=ee=>A.value.nome=ee),type:"text",placeholder:t(o)("João Silva"),disabled:c.value,class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface)] px-3 py-2 text-sm text-[var(--text)] placeholder:text-[var(--subtle)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] disabled:opacity-50",onKeyup:ca(g,["enter"])},null,40,Jx),[[De,A.value.nome]])]),e("div",Qx,[e("label",Zx,[_(a(t(o)("Telefone"))+" ",1),U[13]||(U[13]=e("span",{class:"text-red-500"},"*",-1))]),e("input",{value:A.value.telefone,type:"tel",placeholder:"(62) 99999-9999",maxlength:"15",disabled:c.value,class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface)] px-3 py-2 text-sm text-[var(--text)] placeholder:text-[var(--subtle)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] disabled:opacity-50",onInput:H,onKeyup:ca(g,["enter"])},null,40,Xx)]),e("button",{type:"button",disabled:!A.value.telefone.trim()||c.value,class:"inline-flex items-center justify-center gap-1.5 rounded-xl px-3 py-2 text-sm font-semibold bg-[var(--accent)]/15 text-[var(--accent)] border border-[var(--accent)]/25 hover:bg-[var(--accent)]/25 disabled:opacity-45 disabled:cursor-not-allowed transition duration-200",onClick:g},[c.value?(s(),r("span",eb)):(s(),se(t(lt),{key:1,class:"h-3.5 w-3.5"})),_(" "+a(c.value?"Adicionando...":"+ Adicionar"),1)],8,Yx)])]),P.value?(s(),r("div",ab,[e("span",tb,a(P.value.inseridos)+" adicionado"+a(P.value.inseridos!==1?"s":""),1),P.value.duplicatas>0?(s(),r("span",ob," · "+a(P.value.duplicatas)+" duplicata"+a(P.value.duplicatas!==1?"s":"")+" ignorada"+a(P.value.duplicatas!==1?"s":""),1)):x("",!0),P.value.invalidos?.length>0?(s(),r("span",sb," · "+a(P.value.invalidos.length)+" "+a(t(o)("inválido"))+a(P.value.invalidos.length!==1?"s":""),1)):x("",!0)])):x("",!0),e("p",rb,a(t(
13o)("Cada clique envia direto para a campanha.")),1)]))])):x("",!0),n.campanha.total_contatos>0?(s(),r("div",nb,[e("p",lb,a(t(o)("Contatos")),1),$(Vm,{"campanha-id":n.campanha.id,campanha:n.campanha,onCampanhaAtualizada:L},null,8,["campanha-id","campanha"])])):x("",!0)])])]),_:1})])]),_:1})]))}}),db=Object.assign(ib,{__name:"DisparosCampanhaDetalhe"}),cb={class:"flex flex-col min-h-0"},ub={class:"flex flex-col gap-6"},pb={class:"flex flex-col gap-2 sm:flex-row sm:items-end sm:justify-between"},vb={class:"text-sm text-[var(--muted)] mt-0.5"},xh=$e({__name:"disparos",setup(n){const{tn:p}=Ee(),o=ua(),d=Le(),{pageTitleClass:b}=Ot(),C=y(!1),E=y(0),R=y(null),w=y(null),z=y(null),F=async()=>{o.barbeariaSelecionada?.id&&await d.loadCampanhas()},L=()=>{R.value=null,E.value+=1,C.value=!0},j=async V=>{const M=await d.loadCampanha(V.id,{silent:!0});R.value=M??V,E.value+=1,C.value=!0},A=()=>{C.value=!1,R.value=null},c=V=>{const M=!!R.value;A(),M||(w.value=V)},P=async V=>{w.value=V;const M=await d.loadCampanha(V.id,{silent:!0});M&&w.value?.id===V.id&&(w.value=M)},H=()=>{w.value=null,d.limparCampanhaAtual()},g=V=>{w.value=V},N=async V=>{try{const{value:M}=await aa.prompt('Nome opcional para a nova campanha (máx. 255 caracteres). Se vazio, será usado o nome atual com sufixo "(cópia)". Contatos não são copiados.',"Duplicar campanha",{confirmButtonText:p("Duplicar"),cancelButtonText:p("Cancelar"),inputPlaceholder:`${V.nome.slice(0,200)} (cópia)`,inputValidator:te=>te.length>255?p("Máximo 255 caracteres"):!0}),I=typeof M=="string"&&M.trim()?M.trim().slice(0,255):void 0;z.value=V.id;const K=await d.duplicarCampanha(V.id,I?{nome:I}:void 0);B.success(`Campanha duplicada: ${K.linhas_copiadas} linha(s) copiada(s). Revise datas, linhas e importe os contatos antes de ativar.`),await F(),H(),R.value=K.campanha,C.value=!0}
13catch(M){if(M==="cancel"||M==="close")return;B.error(Te(M))}finally{z.value=null}};return Ta(async()=>{await mt()&&await F()}),xt(F),(V,M)=>(s(),r("div",cb,[e("div",ub,[e("div",pb,[e("div",null,[e("h1",{class:ie(t(b)??"text-2xl font-extrabold text-[var(--text)]")},a(t(p)("Disparos em Massa")),3),e("p",vb,a(t(p)("Campanhas de envio WhatsApp para sua base de clientes")),1)]),e("button",{type:"button",class:"btn-primary-gradient inline-flex items-center gap-2 rounded-xl px-4 py-2 text-sm font-semibold transition duration-200 shrink-0",onClick:L},[$(t(Re),{class:"h-4 w-4"}),_(" "+a(t(p)("Nova Campanha")),1)])]),$(So,{campanhas:t(d).campanhas,"is-loading":t(d).isLoading,"duplicando-id":z.value,onNovaCampanha:L,onVerDetalhe:P,onEditar:j,onDuplicar:N},null,8,["campanhas","is-loading","duplicando-id"])]),C.value?(s(),se(Uu,{key:`campanha-form-${E.value}-${R.value?.id??"nova"}`,campanha:R.value,onFechar:A,onSalvo:c},null,8,["campanha"])):x("",!0),w.value?(s(),se(db,{key:1,campanha:w.value,duplicando:z.value===w.value.id,onFechar:H,onAtualizada:g,onEditar:j,onDuplicar:N},null,8,["campanha","duplicando"])):x("",!0)]))}});export{xh 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.