1import{c as K,u as Q,b as h,j as e}from"./vendor-query-CAW0R6Fd.js";import{r as j}from"./vendor-react-BIBNHc4z.js";import{r as F,a1 as G,c2 as U,B as r,au as W,a2 as H,a3 as R,a4 as J,L as c,bg as N,bh as b,cm as D,ae as X,aS as Y,az as Z,j as q,b7 as z,aw as A,ax as M,cn as $,co as ee,q as m,aA as d,cp as ae,cq as se,cr as oe,cs as te,ak as ie}from"./index-Dr2jZQpy.js";import{I as P}from"./input-Bu5ViSvB.js";import{S as re,a as ne,b as de,c as ce,d as le}from"./select-FsSDRbDW.js";import"./ui-radix-CMPBktV5.js";import"./utils-objBp_8x.js";const me=["FileText","Calendar","MessageSquare","Users","Building","Phone","Mail","MapPin","CreditCard","Briefcase","ShieldCheck","Heart","Landmark","Bus","Lightbulb","BarChart3","TrendingUp","Award","CheckCircle","Clock"],ge=()=>{var E;const u=K(),[T,v]=j.useState(!1),[x,_]=j.useState(null),[s,i]=j.useState({titulo:"",valor:"",icone:"BarChart3",ativo:!0,tipo_indicador:"manual",tipo_componente:"indicador",fonte_dados:"",formato_exibicao:"simples"}),[C,l]=j.useState(""),{data:t,isLoading:V}=Q({queryKey:m.estatisticas.all,queryFn:()=>te()}),B=h({mutationFn:async a=>await ee(a),onSuccess:()=>{u.invalidateQueries({queryKey:m.estatisticas.all}),d.success("Indicador criado com sucesso!"),p()},onError:()=>{d.error("Erro ao criar indicador")}}),L=h({mutationFn:async a=>{const{id:o,...n}=a;return await ae(o,n)},onSuccess:()=>{u.invalidateQueries({queryKey:m.estatisticas.all}),d.success("Indicador atualizado com sucesso!"),p()},onError:()=>{d.error("Erro ao atualizar indicador")}}),y=h({mutationFn:se,onSuccess:()=>{u.invalidateQueries({queryKey:m.estatisticas.all}),d.success("Indicador deletado com sucesso!")},onError:()=>{d.error("Erro ao deletar indicador")}}),w=h({mutationFn:oe,onSuccess:()=>{u.invalidateQueries({queryKey:m.estatisticas.all}),d.success("Ordem atualizada!")}}),p=()=>{i({titulo:"",valor:"",icone:"BarChart3",ativo:!0,tipo_indicador:"manual",tipo_componente:"indicador",fonte_dados:"",formato_exibicao:"simples"}),_(null),l(""),v(!1)},I=a=>{_(a),i({titulo:a.titulo,valor:a.valor,icone:a.icone,ativo:a.ativo,tipo_indicador:a.tipo_indicador||"manual",tipo_componente:a.tipo_componente||"indicador",fonte_dados:a.fonte_dados||"",formato_exibicao:a.formato_exibicao||"simples"}),a.tipo_indicador==="automatico"&&a.fonte_dados&&N(a.fonte_dados).then(o=>{l(b(o,a.formato_exibicao||"simples"))}),v(!0)},O=()=>{if(s.tipo_indicador==="manual"&&!s.valor.trim()){d.error("Insira um valor para o indicador manual");return}if(s.tipo_indicador==="automatico"&&!s.fonte_dados){d.error("Selecione um widget para o indicador automático");return}x?L.mutate({id:x.id,...s}):B.mutate(s)},S=a=>{if(a===0||!t)return;const o=[{id:t[a].id,ordem:t[a-1].ordem},{id:t[a-1].id,ordem:t[a].ordem}];w.mutate(o)},k=a=>{if(!t||a===t.length-1)return;const o=[{id:t[a].id,ordem:t[a+1].ordem},{id:t[a+1].id,ordem:t[a].ordem}];w.mutate(o)},f=({iconName:a})=>{const o=ie[a];return o?e.jsx(o,{className:"w-8 h-8"}):null};return e.jsxs("div",{className:"p-8",children:[e.jsxs("div",{className:"flex items-center justify-between mb-6",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-3xl font-bold flex items-center gap-2",children:[e.jsx(F,{className:"h-8 w-8"}),"Widgets de Indicadores e Dados Públicos"]}),e.jsx("p",{className:"text-muted-foreground mt-2",children:"Sistema unificado de widgets dinâmicos. Configure indicadores pequenos (números resumidos) ou cards grandes (acesso aos dados públicos). Escolha entre valores manuais ou widgets automáticos calculados em tempo real."})]}),e.jsxs(G,{open:T,onOpenChange:v,children:[e.jsx(U,{asChild:!0,children:e.jsxs(r,{onClick:p,children:[e.jsx(W,{className:"w-4 h-4 mr-2"}),"Novo Indicador"]})}
1),e.jsxs(H,{className:"max-w-3xl max-h-[90vh] overflow-y-auto",children:[e.jsx(R,{children:e.jsx(J,{children:x?"Editar Indicador":"Novo Indicador"})}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx(c,{children:"Tipo de Componente Visual *"}),e.jsxs("div",{className:"flex gap-4",children:[e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"radio",name:"tipo_componente",value:"indicador",checked:s.tipo_componente==="indicador",onChange:a=>i({...s,tipo_componente:a.target.value}),className:"w-4 h-4"}),e.jsx("span",{className:"text-sm",children:"ð Indicador (bloco pequeno)"})]}),e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"radio",name:"tipo_componente",value:"card",checked:s.tipo_componente==="card",onChange:a=>i({...s,tipo_componente:a.target.value}),className:"w-4 h-4"}),e.jsx("span",{className:"text-sm",children:"ðï¸ Card Grande (acesso aos dados públicos)"})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(c,{children:"Tipo de Indicador *"}),e.jsxs("div",{className:"flex gap-4",children:[e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"radio",name:"tipo_indicador",value:"manual",checked:s.tipo_indicador==="manual",onChange:a=>{i({...s,tipo_indicador:a.target.value}),l("")},className:"w-4 h-4"}),e.jsx("span",{className:"text-sm",children:"Manual (valor inserido manualmente)"})]}),e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"radio",name:"tipo_indicador",value:"automatico",checked:s.tipo_indicador==="automatico",onChange:a=>{i({...s,tipo_indicador:a.target.value}),l("")},className:"w-4 h-4"}),e.jsx("span",{className:"text-sm",children:"Automático (widget dinâmico)"})]})]})]}),e.jsxs("div",{children:[e.jsx(c,{htmlFor:"titulo",children:"TÃtulo *"}),e.jsx(P,{id:"titulo",value:s.titulo,onChange:a=>i({...s,titulo:a.target.value}),placeholder:"Ex: Contratos Ativos"})]}),s.tipo_indicador==="manual"&&e.jsxs("div",{children:[e.jsx(c,{htmlFor:"valor",children:"Valor/Número *"}),e.jsx(P,{id:"valor",value:s.valor,onChange:a=>i({...s,valor:a.target.value}),placeholder:"Ex: 150+"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Digite o número ou valor que deseja exibir (pode incluir + ou outros sÃmbolos)"})]}),s.tipo_indicador==="automatico"&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(c,{htmlFor:"fonte_dados",children:"Widget Automático *"}),e.jsxs("select",{id:"fonte_dados",value:s.fonte_dados,onChange:async a=>{if(i({...s,fonte_dados:a.target.value}),a.target.value){const o=await N(a.target.value);l(b(o,s.formato_exibicao))}},className:"w-full p-2 border rounded-md",children:[e.jsx("option",{value:"",children:"Selecione um widget..."}),Object.entries(D.reduce((a,o)=>(a[o.categoria]||(a[o.categoria]=[]),a[o.categoria].push(o),a),{})).map(([a,o])=>e.jsx("optgroup",{label:a,children:o.map(n=>e.jsx("option",{value:n.value,children:n.label},n.value))},a))]}),s.fonte_dados&&e.jsxs("div",{className:"flex items-start gap-2 p-3 bg-muted/50 rounded-md mt-2",children:[e.jsx(X,{className:"h-4 w-4 mt-0.5 text-muted-foreground"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:(E=D.find(a=>a.value===s.fonte_dados))==null?void 0:E.descricao})]})]}),e.jsxs("div",{children:[e.jsx(c,{htmlFor:"formato_exibicao",children:"Formato de Exibição"}),e.jsxs("select",{id:"formato_exibicao",value:s.formato_exibicao,onChange:async a=>{if(i({...s,formato_exibicao:a.target.value}),s.fonte_dados){const o=await N(s.fonte_dados);l(b(o,a.target.value))}},className:"w-full p-2 border rounded-md",children:[e.jsx("option",{value:"simples",children:"Número simples (ex: 150)"}),e.jsx("option",{value:"com_plus",children:"Com sÃmbolo + (ex: 150+)"}),e.jsx("option",{value:"formatado",children:"Formatado (ex: 1.500)"})]})]}),C&&e.jsxs("div",{className:"p-4 border-2 border-dashed rounded-lg bg-muted/30",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:"Preview do Valor:"}),e.jsx("div",{className:"text-3xl font-bold bg-gradient-to-r from-primary to-primary/80 bg-clip-text text-transparent",children:C}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Valor calculado em tempo real do banco de dados"})]})]}),e.jsxs("div",{children:[e.jsx(c,{htmlFor:"icone",children:"Ãcone *"}),e.jsxs(re,{value:s.icone,onValueChange:a=>i({...s,icone:a}),children:[e.jsx(ne,{children:e.jsx(de,{})}),e.jsx(ce,{children:me.map(a=>e.jsx(le,{value:a,children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(f,{iconName:a}),a]})},a))})]})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Y,{id:"ativo",checked:s.ativo,onCheckedChange:a=>i({...s,ativo:a})}),e.jsx(c,{htmlFor:"ativo",children:"Indicador ativo"})]})]}),e.jsxs(Z,{children:[e.jsx(r,{variant:"outline",onClick:p,children:"Cancelar"}),e.jsx(r,{onClick:O,disabled:!s.titulo||!s.icone||s.tipo_indicador==="manual"&&!s.valor||s.tipo_indicador==="automatico"&&!s.fonte_dados,children:x?"Salvar Alterações":"Criar Indicador"})]})]})]})]}),e.jsx("div",{className:"space-y-6",children:V?e.jsx("div",{className:"text-center py-8",children:"Carregando..."}):!t||t.length===0?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"Nenhum indicador cadastrado ainda."}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsxs("h3",{className:"text-lg font-semibold mb-3 flex items-center gap-2",children:[e.jsx(F,{className:"h-5 w-5"}),"Indicadores de Transparência (Blocos Pequenos)"]}),e.jsx("div",{className:"space-y-3",children:t.filter(a=>a.tipo_componente==="indicador").length===0?e.jsx("div",{className:"text-center py-4 text-sm text-muted-foreground bg-muted/30 rounded-lg",children:"Nenhum indicador pequeno cadastrado"}):t.filter(a=>a.tipo_componente==="indicador").map((a,o)=>{const n=a.tipo_indicador==="automatico"?"ð Automático":"âï¸ Manual";return e.jsx(q,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(r,{variant:"ghost",size:"sm",onClick:()=>S(o),disabled:o===0,children:"â"}),e.jsx(z,{className:"w-5 h-5 text-muted-foreground"}),e.jsx(r,{variant:"ghost",size:"sm",onClick:()=>k(o),disabled:o===t.filter(g=>g.tipo_componente==="indicador").length-1,children:"â"})]}),e.jsx("div",{className:"w-16 h-16 rounded-lg bg-primary/10 flex items-center justify-center",children:e.jsx(f,{iconName:a.icone})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"font-semibold",children:a.titulo}),e.jsx("p",{className:"text-2xl font-bold text-primary",children:a.valor}),e.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[e.jsx("span",{className:"text-xs px-2 py-0.5 bg-muted rounded",children:"ð Indicador"}),e.jsx("span",{className:"text-xs px-2 py-0.5 bg-muted rounded",children:n}),e.jsx("span",{className:"text-xs text-muted-foreground",children:a.ativo?"â Ativo":"â Inativo"})]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(r,{variant:"outline",size:"sm",onClick:()=>I(a),children:e.jsx(A,{className:"w-4 h-4"})}),e.jsx(r,{variant:"destructive",size:"sm",onClick:()=>{confirm("Deseja realmente deletar este indicador?")&&y.mutate(a.id)},children:e.jsx(M,{className:"w-4 h-4"})})]})]})},a.id)})})]}),e.jsxs("div",{children:[e.jsxs("h3",{className:"text-lg font-semibold mb-3 flex items-center gap-2",children:[e.jsx($,{className:"h-5 w-5"}),"Acesso aos Dados Públicos (Cards Grandes)"]}),e.jsx("div",{className:"space-y-3",children:t.filter(a=>a.tipo_componente==="card").length===0?e.jsx("div",{className:"text-center py-4 text-sm text-muted-foreground bg-muted/30 rounded-lg",children:"Nenhum card de dados públicos cadastrado"}):t.filter(a=>a.tipo_componente==="card").map((a,o)=>{const n=a.tipo_indicador==="automatico"?"ð Automático":"âï¸ Manual";return e.jsx(q,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(r,{variant:"ghost",size:"sm",onClick:()=>S(o),disabled:o===0,children:"â"}),e.jsx(z,{className:"w-5 h-5 text-muted-foreground"}),e.jsx(r,{variant:"ghost",size:"sm",onClick:()=>k(o),disabled:o===t.filter(g=>g.tipo_componente==="card").length-1,children:"â"})]}),e.jsx("div",{className:"w-16 h-16 rounded-lg bg-primary/10 flex items-center justify-center",children:e.jsx(f,{iconName:a.icone})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"font-semibold",children:a.titulo}),e.jsx("p",{className:"text-2xl font-bold text-primary",children:a.valor}),e.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[e.jsx("span",{className:"text-xs px-2 py-0.5 bg-muted rounded",children:"ðï¸ Card"}),e.jsx("span",{className:"text-xs px-2 py-0.5 bg-muted rounded",children:n}),e.jsx("span",{className:"text-xs text-muted-foreground",children:a.ativo?"â Ativo":"â Inativo"})]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(r,{variant:"outline",size:"sm",onClick:()=>I(a),children:e.jsx(A,{className:"w-4 h-4"})}),e.jsx(r,{variant:"destructive",size:"sm",onClick:()=>{confirm("Deseja realmente deletar este card?")&&y.mutate(a.id)},children:e.jsx(M,{className:"w-4 h-4"})})]})]})},a.id)})})]})]})})]})};export{ge 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.