1/* empty css *//* empty css */import{M as Q,cd as H,bW as R,b7 as J,x as d,H as M,bO as l,bE as n,u as r,w as m,cs as p,cj as b,b as g,bo as k,ci as S,v as K,cf as X,B as C,bm as _,s as Y,ai as $,a_ as Z,bc as u}from"./BqRK_f-2.js";import{u as ee}from"./CNxMQkOW.js";import{u as ae}from"./DapnQ07H.js";import{C as te}from"./C4jdoUid.js";import{F as oe}from"./DlOvc8xN.js";import{a as x}from"./DOcBdUHk.js";import{r as se}from"./Btsr2atu.js";import"./DD0bMvq5.js";import"./e5v6qK9R.js";import"./DXek99um.js";const re={class:"space-y-5"},le={key:0,class:"py-16 text-center text-[var(--muted)]"},ne={key:1,class:"rounded-2xl border border-[var(--border)] bg-[var(--surface)] shadow-[var(--shadow)] p-5 md:p-6 dark:backdrop-blur-xl space-y-4"},ue={class:"flex flex-wrap items-center justify-between gap-3"},de={class:"space-y-0.5"},ie={class:"text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},ce={class:"text-lg font-bold text-[var(--text)]"},me={class:"text-sm text-[var(--muted)]"},pe={key:0,class:"rounded-xl border border-[var(--accent)]/30 bg-[var(--accent)]/5 p-4 space-y-3"},ve=["placeholder"],_e={class:"space-y-2 max-w-2xl"},fe={class:"text-xs font-semibold text-[var(--text)]"},xe={class:"flex flex-wrap gap-2"},be=["onClick"],he={value:null},ye=["value"],ge={class:"text-[11px] text-[var(--muted)]"},ke={class:"flex items-center gap-2 text-xs text-[var(--text)] cursor-pointer"},Ce={class:"flex items-center gap-2 flex-wrap"},we={class:"rounded-md bg-[var(--accent)]/10 px-2 py-0.5 text-xs font-bold text-[var(--accent)]"},Ve={class:"text-xs text-[var(--muted)]"},Ne=["onUpdate:modelValue"],Ue={class:"text-xs text-[var(--muted)]"},Ee=["onUpdate:modelValue"],$e=["onUpdate:modelValue"],qe={value:"whatsapp"},Ae={value:"telefone"},Me={value:"observacao"},Se=["onClick"],Te=["onUpdate:modelValue","placeholder"],Oe=["onUpdate:modelValue","placeholder"],Fe={class:"flex items-center gap-2"},Be={class:"ml-auto flex gap-2"},Pe=["disabled"],We={key:1,class:"py-6 text-center text-sm text-[var(--muted)]"},je={key:2,class:"py-6 text-center text-sm text-[var(--muted)] rounded-xl border border-dashed border-[var(--border)] bg-[var(--surface-2)]/50"},ze={key:3,class:"space-y-2"},Le={class:"min-w-0 flex-1"},De={class:"font-semibold text-sm text-[var(--text)]"},Ge={class:"text-xs text-[var(--muted)]"},Ie={key:0,class:"text-[var(--accent)]"},Qe={key:1,class:"text-[var(--accent)]"},He={key:2},Re=["onClick"],Je=["title","onClick"],da=Q({__name:"cadencias",setup(Ke){const{tn:t}=H(),{canViewCrm:T,canEditCrm:w}=ee(),f=R(),V=_(!1),h=_(!1),N=_([]),q=_([]),U=_([]),s=_(null),O=[{valor:"funil",label:t("Quando o lead entra num funil")},{valor:"coluna",label:t("Quando o lead entra numa etapa")},{valor:"manual",label:t("Só quando eu aplicar no card")}],i=_("manual");function F(o){i.value=o,s.value&&(o==="funil"?s.value.crm_coluna_id=null:(o==="coluna"||(s.value.crm_coluna_id=null),s.value.crm_funil_id=null))}const B=Y(()=>i.value==="funil"?t("Todo lead que cair nesse funil recebe as tarefas abaixo. Não duplica se ele já recebeu."):i.value==="coluna"?t("Todo lead que chegar nessa etapa recebe as tarefas abaixo. Não duplica se ele já recebeu."):t("Nada automático: você abre o card e aplica o fluxo quando quiser."));function P(){const o=s.value?.passos||[];return o.length?Math.max(...o.map(a=>Number(a.offset_dias)||0))+1:0}function W(o){const a=Number(o)||0;return a===0?t("No mesmo dia"):a===1?t("No dia seguinte"):`${a} dias depois`}const j={telefone:"Ligar",observacao:t("Anotação"),whatsapp:"WhatsApp"};function z(o){return(o.passos||[]).map(a=>`${j[a.tipo_acao]||"WhatsApp"} d${a.offset_dias}`).join(" â ")}function A(o){if(!o)return"";const a=q.value.find(v=>v.id===o);if(!a)return"";const e=a.funil?.nome||E(a.crm_funil_id);return e?`${e} ⺠${a.nome}`:a.nome}function E(o){return o&&U.value.find(a=>a.id===o)?.nome||""}async function y(){V.value=!0;try{const[o,a,e]=await Promise.all([f.loadCadencias(),f.fetchTodasColunas().catch(()=>[]),f.loadFunis().catch(()=>[])]);N.value=o,q.value=a,U.value=e}catch(o){x.error($(o))}finally{V.value=!1}}function L(){s.value={nome:"",passos:[{offset_dias:0,hora:"09:00",tipo_acao:"whatsapp",titulo:"",mensagem:""}],crm_coluna_id:null,crm_funil_id:null,pular_fim_de_semana:!0},i.value="manual"}function D(o){s.value={id:o.id,nome:o.nome,crm_coluna_id:o.crm_coluna_id||null,crm_funil_id:o.crm_funil_id||null,pular_fim_de_semana:o.pular_fim_de_semana!==!1,passos:(o.passos||[]).map(a=>({offset_dias:a.offset_dias,hora:a.hora||"09:00",tipo_acao:a.tipo_acao,titulo:a.titulo,mensagem:a.mensagem||""}))},i.value=o.crm_funil_id?"funil":o.crm_coluna_id?"coluna":"manual"}async function G(){if(s.value){if(i.value==="funil"&&!s.value.crm_funil_id){x.warning(t("Escolha o funil que dispara esse fluxo."));return}if(i.value==="coluna"&&!s.value.crm_coluna_id){x.warning(t("Escolha a etapa que dispara esse fluxo."));return}h.value=!0;try{const o={nome:s.value.nome.trim(),passos:s.value.passos,crm_coluna_id:s.value.crm_coluna_id||null,crm_funil_id:s.value.crm_funil_id||null,pular_fim_de_semana:s.value.pular_fim_de_semana};s.value.id?await f.updateCadencia(s.value.id,o):await f.createCadencia(o),s.value=null,x.success(t("Fluxo salvo")),await y()}catch(o){x.error($(o))}finally{h.value=!1}}}async function I(o){try{await f.deleteCadencia(o.id),await y()}catch(a){x.error($(a))}}return J(y),ae(y),(o,a)=>(u(),d("div",re,[M(te),l(T)?(u(),d("div",ne,[r("div",ue,[r("div",de,[r("p",ie,n(l(t)("Inside sales")),1),r("h2",ce,n(l(t)("Fluxos de tarefas")),1
1),r("p",me,n(l(t)("A sequência de contatos que todo lead recebe. Exemplo: no mesmo dia manda WhatsApp à s 9h, dois dias depois liga à s 14h. As tarefas caem na fila e na agenda do vendedor responsável.")),1)]),l(w)&&!s.value?(u(),d("button",{key:0,type:"button",class:"btn-primary-gradient px-4 py-2 rounded-xl text-sm font-semibold",onClick:L},n(l(t)("+ Novo fluxo")),1)):m("",!0)]),s.value?(u(),d("div",pe,[p(r("input",{"onUpdate:modelValue":a[0]||(a[0]=e=>s.value.nome=e),type:"text",placeholder:l(t)("Nome do fluxo (ex.: Recuperação de lead)"),class:"w-full max-w-md rounded-xl border border-[var(--border)] bg-[var(--surface)] px-3 py-2 text-sm text-[var(--text)]"},null,8,ve),[[b,s.value.nome]]),r("div",_e,[r("label",fe,n(l(t)("Quando aplicar")),1),r("div",xe,[(u(),d(g,null,k(O,e=>r("button",{key:e.valor,type:"button",class:Z(["px-3 py-1.5 rounded-lg text-xs font-semibold border transition",i.value===e.valor?"border-[var(--accent)] bg-[var(--accent)]/10 text-[var(--accent)]":"border-[var(--border)] text-[var(--text)] hover:bg-[var(--surface-2)]"]),onClick:v=>F(e.valor)},n(l(t)(e.label)),11,be)),64))]),i.value==="funil"?p((u(),d("select",{key:0,"onUpdate:modelValue":a[1]||(a[1]=e=>s.value.crm_funil_id=e),class:"w-full rounded-xl border border-[var(--border)] bg-[var(--surface)] px-3 py-2 text-sm text-[var(--text)]"},[r("option",he,n(l(t)("Escolha o funilâ¦")),1),(u(!0),d(g,null,k(U.value,e=>(u(),d("option",{key:e.id,value:e.id},n(e.nome),9,ye))),128))],512)),[[S,s.value.crm_funil_id]]):m("",!0),i.value==="coluna"?(u(),K(oe,{key:1,modelValue:s.value.crm_coluna_id,"onUpdate:modelValue":a[2]||(a[2]=e=>s.value.crm_coluna_id=e),"mostrar-labels":!1,"texto-coluna-vazia":l(t)("Escolha a etapaâ¦"),"coluna-opcional":""},null,8,["modelValue","texto-coluna-vazia"])):m("",!0),r("p",ge,n(B.value),1),r("label",ke,[p(r("input",{"onUpdate:modelValue":a[3]||(a[3]=e=>s.value.pular_fim_de_semana=e),type:"checkbox",class:"rounded border-[var(--border)]"},null,512),[[X,s.value.pular_fim_de_semana]]),C(" "+n(l(t)("Não marcar tarefa em sábado e domingo (empurra pra segunda)")),1)])]),(u(!0),d(g,null,k(s.value.passos,(e,v)=>(u(),d("div",{key:v,class:"rounded-lg border border-[var(--border)] bg-[var(--surface)] p-3 space-y-2"},[r("div",Ce,[r("span",we,n(W(e.offset_dias)),1),r("label",Ve,[C(n(l(t)("dia"))+" ",1),p(r("input",{"onUpdate:modelValue":c=>e.offset_dias=c,type:"number",min:"0",class:"w-14 rounded border border-[var(--border)] bg-[var(--surface-2)] px-2 py-1 text-xs text-[var(--text)] mx-1"},null,8,Ne),[[b,e.offset_dias,void 0,{number:!0}]])]),r("label",Ue,[C(n(l(t)("à s"))+" ",1),p(r("input",{"onUpdate:modelValue":c=>e.hora=c,type:"time",class:"rounded border border-[var(--border)] bg-[var(--surface-2)] px-2 py-1 text-xs text-[var(--text)] mx-1"},null,8,Ee),[[b,e.hora]])]),p(r("select",{"onUpdate:modelValue":c=>e.tipo_acao=c,class:"rounded border border-[var(--border)] bg-[var(--surface-2)] px-2 py-1 text-xs text-[var(--text)]"},[r("option",qe,n(l(t)("WhatsApp")),1),r("option",Ae,n(l(t)("Ligar")),1),r("option",Me,n(l(t)("Anotação")),1)],8,$e),[[S,e.tipo_acao]]),r("button",{type:"button",class:"ml-auto text-[var(--status-danger)] hover:opacity-80 text-xs",onClick:c=>s.value.passos.splice(v,1)},n(l(t)("remover")),9,Se)]),p(r("input",{"onUpdate:modelValue":c=>e.titulo=c,type:"text",placeholder:l(t)("O que fazer (ex.: Mandar a oferta)"),class:"w-full rounded border border-[var(--border)] bg-[var(--surface-2)] px-2.5 py-1.5 text-sm text-[var(--text)]"},null,8,Te),[[b,e.titulo]]),p(r("textarea",{"onUpdate:modelValue":c=>e.mensagem=c,rows:"2",placeholder:l(t)("Mensagem/roteiro (opcional)"),class:"w-full rounded border border-[var(--border)] bg-[var(--surface-2)] px-2.5 py-1.5 text-sm text-[var(--text)] resize-none"},null,8,Oe),[[b,e.mensagem]])]))),128)),r("div",Fe,[r("button",{type:"button",class:"text-xs font-semibold text-[var(--accent)] hover:underline",onClick:a[4]||(a[4]=e=>s.value.passos.push({offset_dias:P(),hora:"09:00",tipo_acao:"whatsapp",titulo:"",mensagem:""}))},n(l(t)("+ Passo")),1),r("div",Be,[r("button",{type:"button",class:"px-3 py-1.5 rounded-lg text-xs font-semibold text-[var(--muted)] border border-[var(--border)] hover:bg-[var(--surface-2)]",onClick:a[5]||(a[5]=e=>s.value=null)},n(l(t)("Cancelar")),1),r("button",{type:"button",class:"btn-primary-gradient px-4 py-1.5 rounded-lg text-xs font-semibold disabled:opacity-50",disabled:h.value||!s.value.nome.trim()||!s.value.passos.length,onClick:G},n(h.value?"Salvandoâ¦":"Salvar"),9,Pe)])])])):m("",!0),V.value?(u(),d("div",We,n(l(t)("Carregandoâ¦")),1)):!N.value.length&&!s.value?(u(),d("div",je,n(l(t)('Nenhum fluxo de tarefas ainda. Crie um com "+ Novo fluxo".')),1)):(u(),d("div",ze,[(u(!0),d(g,null,k(N.value,e=>(u(),d("div",{key:e.id,class:"rounded-xl border border-[var(--border)] bg-[var(--surface)] p-3 flex items-center gap-3"},[r("div",Le,[r("p",De,n(e.nome),1),r("p",Ge,[C(n((e.passos||[]).length)+" passo(s) · "+n(z(e))+" ",1),A(e.crm_coluna_id)?(u(),d("span",Ie," · etapa: "+n(A(e.crm_coluna_id)),1)):m("",!0),E(e.crm_funil_id)?(u(),d("span",Qe," · funil: "+n(E(e.crm_funil_id)),1)):m("",!0),!e.crm_coluna_id&&!e.crm_funil_id?(u(),d("span",He,n(l(t)("· aplicação manual")),1)):m("",!0)])]),l(w)?(u(),d("button",{key:0,t
1ype:"button",class:"text-xs font-semibold text-[var(--accent)] hover:underline",onClick:v=>D(e)},n(l(t)("Editar")),9,Re)):m("",!0),l(w)?(u(),d("button",{key:1,type:"button",class:"p-1.5 rounded-lg text-[var(--status-danger)] hover:bg-[color-mix(in_srgb,var(--status-danger)_10%,transparent)]",title:l(t)("Excluir"),onClick:v=>I(e)},[M(l(se),{class:"h-4 w-4"})],8,Je)):m("",!0)]))),128))]))])):(u(),d("div",le,n(l(t)("Sem permissão.")),1))]))}});export{da 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.