PageSourceSearch

https://ps.ismart.org.br/assets/AdminMetas-BltWn1Rw.js

js ismart.org.br collected 2026-10-03 22:57:45 UTC 32,939 bytes, 1 lines download raw bytes

1import{b as X,j as o}from"./vendor-query-C5CkDKs-.js";import{A as ga}from"./AdminLayout-2FDx33hi.js";import{B as ha}from"./button-0R2ZgURW.js";import{C,a as A,b as I,c as B}from"./card-9APT-VFL.js";import{P as xa,a as ba,b as ja}from"./popover-D3H5bA8N.js";import{T as O,b as k,c as h,d as p,e as D,f as u}from"./table-IOTnUvEC.js";import{S as ya}from"./skeleton-ZqLOLWtQ.js";import{s as T,u as Na,e as La}from"./index-BdftcMxu.js";import{i as Ca}from"./completionRules-DXboNvfQ.js";import{N as Aa}from"./vendor-react-DvTSBsD5.js";import{R as Ta}from"./refresh-cw-B2O0N5Rw.js";import{C as Sa}from"./circle-help-CK5Wmcp3.js";import"./recharts-DwXsdKts.js";import"./useLocalStorageState-DzFN2lhj.js";import"./badge-Boir6d90.js";import"./log-out-6ioh1p2M.js";import"./chevron-right-DCI-hH09.js";import"./layout-dashboard-CM-5gaV3.js";import"./users-CGO92YRL.js";import"./file-text-DXeARP4R.js";import"./graduation-cap-_9Tyja8G.js";import"./map-pin-BaHSV-Ik.js";import"./chart-column-gLDe220g.js";import"./user-check-Ts6i4EN4.js";import"./award-fmT0AfHo.js";import"./star-Cld8ORQq.js";import"./video-BBnGBGFF.js";import"./users-round-f76lm5pS.js";import"./school-D2CG13g_.js";import"./landmark-Q2KGi4YZ.js";import"./target-BsrOlVlc.js";import"./trending-up-DcX6bJvs.js";import"./mail-CYrq9hEK.js";import"./message-circle-BBWm9CO7.js";import"./calendar-clock-CSun_9SP.js";import"./trophy-BBtUVa0I.js";import"./key-round-CuajTwIf.js";import"./vendor-radix-O3lWSZH-.js";import"./vendor-supabase-92svyh75.js";const w=a=>(a==null?void 0:a.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().trim())??"",Ra=2026,Fa="PS2027",Pa="2026-05-12T00:00:00.000Z",wa="public/data/FUNIL_PS2026_V3.xlsx (abas PAINEL, acompanhamento e Historico_PS2026)",Ma=["Belo Horizonte","Rio de Janeiro","São José dos Campos","São Paulo"],Ea=["Belo Horizonte","Cotia","Rio de Janeiro","São José dos Campos","São Paulo","Sorocaba"],Ia=[{id:"ismart_online",label:"Ismart Online",grades:["7"],scope:"praca",vagas:300,vagas_lista_espera:300,meta_inscricoes:4650,meta_completo:3521,ano_passado_inscricoes:4099,ano_passado_completo:3227,ano_passado_aprovados:511,metas_funil:{inscritos:4650,inscritos_com_atividades:3521,aprovados_as:3310,convocados_pd:3310,presentes_pd:1822,aprovados_criterio_presencial:null,aprovados_criterio_iol:353,aprovados_criterio_adi:null,convocados_ef:null,convocados_ei:null,dinamica_ideathon:353,prova_diagnostica:null,aprovados_comite_entrantes:300},ano_passado_funil:{inscritos:4099,inscritos_com_atividades:3227,aprovados_as:432,convocados_pd:4098,presentes_pd:2256,aprovados_criterio_presencial:null,aprovados_criterio_iol:437,aprovados_criterio_adi:891,convocados_ef:null,convocados_ei:null,dinamica_ideathon:355,prova_diagnostica:null,aprovados_comite_entrantes:511}},{id:"adi_pracas",label:"ADI Praças Ismart",grades:["7","8","9"],scope:"praca",vagas:350,vagas_lista_espera:350,meta_inscricoes:1829.5,meta_completo:null,ano_passado_inscricoes:null,ano_passado_completo:null,ano_passado_aprovados:null,metas_funil:{inscritos:1829.5,inscritos_com_atividades:null,aprovados_as:null,convocados_pd:null,presentes_pd:null,aprovados_criterio_presencial:null,aprovados_criterio_iol:null,aprovados_criterio_adi:412,convocados_ef:null,convocados_ei:null,dinamica_ideathon:412,prova_diagnostica:null,aprovados_comite_entrantes:350},ano_passado_funil:{inscritos:null,inscritos_com_atividades:null,aprovados_as:null,convocados_pd:null,presentes_pd:null,aprovados_criterio_presencial:null,aprovados_criterio_iol:null,aprovados_criterio_adi:null,convocados_ef:null,convocados_ei:null,dinamica_ideathon:null,prova_diagnostica:null,aprovados_comite_entrantes:null}},{id:"adi_outras",label:"ADI Outras Cidades",grades:["7","8","9"],scope:"fora_praca",vagas:350,vagas_lista_espera:350,meta_inscricoes:3659,meta_completo:2771,ano_passado_inscricoes:3130,ano_passado_completo:1765,ano_passado_aprovados:352,metas_funil:{inscritos:3659,inscritos_com_atividades:2771,aprovados_as:2605,convocados_pd:2605,presentes_pd:1043,aprovados_criterio_presencial:null,aprovados_criterio_iol:null,aprovados_criterio_adi:412,convocados_ef:null,convocados_ei:null,dinamica_ideathon:412,prova_diagnostica:null,aprovados_comite_entrantes:350},ano_passado_funil:{inscritos:3130,inscritos_com_atividades:1765,aprovados_as:null,convocados_pd:3125,presentes_pd:1251,aprovados_criterio_presencial:null,aprovados_criterio_iol:295,aprovados_criterio_adi:486,convocados_ef:null,convocados_ei:null,dinamica_ideathon:null,prova_diagnostica:null,aprovados_comite_entrantes:352}},{id:"bolsa_talento",label:"Bolsa Talento",grades:["9"],scope:"bt",vagas:160,vagas_lista_espera:191,meta_inscricoes:4795,meta_completo:3517,ano_passado_inscricoes:6973,ano_passado_completo:5335,ano_passado_aprovados:147,metas_funil:{inscritos:4795,inscritos_com_atividades:3517,aprovados_as:2904,convocados_pd:2904,presentes_pd:1952,aprovados_criterio_presencial:593,aprovados_criterio_iol:null,aprovados_criterio_adi:null,convocados_ef:445,convocados_ei:417,dinamica_ideathon:356,prova_diagnostica:303,aprovados_comite_entrantes:191},ano_passado_funil:{inscritos:6973,inscritos_com_atividades:5335,aprovados_as:425,convocados_pd:4014,presentes_pd:2667,aprovados_criterio_presencial:808,aprovados_criterio_iol:null,aprovados_criterio_adi:1496,convocados_ef:397,convocados_ei:397,dinamica_ideathon:330,prova_diagnostica:246,aprovados_comite_entrantes:147},cities:[{city:"Belo Horizonte",vagas:35,vagas_lista_espera:42,meta_inscricoes:1460,meta_completo:1055,ano_passado_inscricoes:1027,ano_passado_completo:773,ano_passado_aprovados:33,metas_funil:{inscritos:1460,inscritos_com_atividades:1055,aprovados_as:850,convocados_pd:850,presentes_pd:557,aprovados_criterio_presencial:171,aprovados_criterio_iol:null,aprovados_criterio_adi:null,convocados_ef:128,convocados_ei:122,dinamica_ideathon:92,prova_diagnostica:78,aprovados_comite_entrantes:42},ano_passado_funil:{inscritos:1027,inscritos_com_atividades:773,aprovados_as:127,convocados_pd:658,presentes_pd:431,aprovados_criterio_presencial:141,aprovados_criterio_iol:null,aprovados_criterio_adi:251,convocados_ef:121,convocados_ei:121,dinamica_ideathon:91,prova_diagnostica:49,a
1provados_comite_entrantes:33}},{city:"Cotia",vagas:6,vagas_lista_espera:7,meta_inscricoes:105,meta_completo:76,ano_passado_inscricoes:119,ano_passado_completo:90,ano_passado_aprovados:0,metas_funil:{inscritos:105,inscritos_com_atividades:76,aprovados_as:74,convocados_pd:74,presentes_pd:67,aprovados_criterio_presencial:13,aprovados_criterio_iol:null,aprovados_criterio_adi:null,convocados_ef:10,convocados_ei:8,dinamica_ideathon:8,prova_diagnostica:7,aprovados_comite_entrantes:7},ano_passado_funil:{inscritos:119,inscritos_com_atividades:90,aprovados_as:10,convocados_pd:72,presentes_pd:65,aprovados_criterio_presencial:14,aprovados_criterio_iol:null,aprovados_criterio_adi:40,convocados_ef:8,convocados_ei:8,dinamica_ideathon:8,prova_diagnostica:8,aprovados_comite_entrantes:0}},{city:"Rio de Janeiro",vagas:25,vagas_lista_espera:30,meta_inscricoes:901,meta_completo:657,ano_passado_inscricoes:2335,ano_passado_completo:1772,ano_passado_aprovados:25,metas_funil:{inscritos:901,inscritos_com_atividades:657,aprovados_as:533,convocados_pd:533,presentes_pd:326,aprovados_criterio_presencial:65,aprovados_criterio_iol:null,aprovados_criterio_adi:null,convocados_ef:49,convocados_ei:46,dinamica_ideathon:35,prova_diagnostica:30,aprovados_comite_entrantes:30},ano_passado_funil:{inscritos:2335,inscritos_com_atividades:1772,aprovados_as:74,convocados_pd:1325,presentes_pd:811,aprovados_criterio_presencial:178,aprovados_criterio_iol:null,aprovados_criterio_adi:373,convocados_ef:69,convocados_ei:69,dinamica_ideathon:52,prova_diagnostica:52,aprovados_comite_entrantes:25}},{city:"São José dos Campos",vagas:15,vagas_lista_espera:18,meta_inscricoes:782,meta_completo:604,ano_passado_inscricoes:1090,ano_passado_completo:875,ano_passado_aprovados:8,metas_funil:{inscritos:782,inscritos_com_atividades:604,aprovados_as:546,convocados_pd:546,presentes_pd:379,aprovados_criterio_presencial:161,aprovados_criterio_iol:null,aprovados_criterio_adi:null,convocados_ef:121,convocados_ei:115,dinamica_ideathon:111,prova_diagnostica:94,aprovados_comite_entrantes:18},ano_passado_funil:{inscritos:1090,inscritos_com_atividades:875,aprovados_as:57,convocados_pd:558,presentes_pd:387,aprovados_criterio_presencial:172,aprovados_criterio_iol:null,aprovados_criterio_adi:262,convocados_ef:54,convocados_ei:54,dinamica_ideathon:52,prova_diagnostica:10,aprovados_comite_entrantes:8}},{city:"São Paulo",vagas:67,vagas_lista_espera:80,meta_inscricoes:1315,meta_completo:968,ano_passado_inscricoes:2143,ano_passado_completo:1642,ano_passado_aprovados:69,metas_funil:{inscritos:1315,inscritos_com_atividades:968,aprovados_as:774,convocados_pd:774,presentes_pd:546,aprovados_criterio_presencial:155,aprovados_criterio_iol:null,aprovados_criterio_adi:null,convocados_ef:116,convocados_ei:108,dinamica_ideathon:94,prova_diagnostica:80,aprovados_comite_entrantes:80},ano_passado_funil:{inscritos:2143,inscritos_com_atividades:1642,aprovados_as:136,convocados_pd:1251,presentes_pd:882,aprovados_criterio_presencial:268,aprovados_criterio_iol:null,aprovados_criterio_adi:509,convocados_ef:127,convocados_ei:127,dinamica_ideathon:111,prova_diagnostica:111,aprovados_comite_entrantes:69}},{city:"Sorocaba",vagas:12,vagas_lista_espera:14,meta_inscricoes:232,meta_completo:157,ano_passado_inscricoes:259,ano_passado_completo:183,ano_passado_aprovados:12,metas_funil:{inscritos:232,inscritos_com_atividades:157,aprovados_as:127,convocados_pd:127,presentes_pd:77,aprovados_criterio_presencial:28,aprovados_criterio_iol:null,aprovados_criterio_adi:null,convocados_ef:21,convocados_ei:18,dinamica_ideathon:16,prova_diagnostica:14,aprovados_comite_entrantes:14},ano_passado_funil:{inscritos:259,inscritos_com_atividades:183,aprovados_as:21,convocados_pd:150,presentes_pd:91,aprovados_criterio_presencial:35,aprovados_criterio_iol:null,aprovados_criterio_adi:61,convocados_ef:18,convocados_ei:18,dinamica_ideathon:16,prova_diagnostica:16,aprovados_comite_entrantes:12}}]}],Ba={cycle_year:Ra,cycle_label:Fa,generated_at:Pa,source:wa,praca_cities:Ma,bolsa_talento_cities:Ea,programs:Ia},K=2026,F=Ba,M={inscritos:null,inscritos_com_atividades:null,aprovados_as:null,convocados_pd:null,presentes_pd:null,aprovados_criterio_presencial:null,aprovados_criterio_iol:null,aprovados_criterio_adi:null,convocados_ef:null,convocados_ei:null,dinamica_ideathon:null,prova_diagnostica:null,aprovados_comite_entrantes:null};async function aa(a,e,i=[],r=[{column:"user_id",ascending:!0}]){let c=[],n=null;for(;;){let t=T.from(a).select(e).limit(1e3);for(const m of r)t=t.order(m.column,{ascending:m.ascending});n&&(t=t.gt("user_id",n));for(const m of i)m.type==="eq"?t=t.eq(m.column,m.value):m.type==="neq"?t=t.neq(m.column,m.value):m.type==="gt"?t=t.gt(m.column,m.value):m.type==="in"&&(t=t.in(m.column,m.values));const{data:d,error:v}=await t;if(v)throw v;if(!d||d.length===0||(c=c.concat(d),n=d[d.length-1].user_id,d.length<1e3))break}return c}async function Oa(a,e,i,r){const c=[];for(let n=0;n<i.length;n+=500){const t=i.slice(n,n+500),d=await aa(a,e,[{type:"in",column:"user_id",values:t}],r);c.push(...d)}return c}async function ka(a){const i=[];let r=0;for(;;){const l=a==null?{}:{p_created_after:a},{data:c,error:n}=await T.rpc("get_analytics_data",l).range(r,r+1e3-1);if(n)throw n;if(!c||c.length===0||(i.push(...c.map(t=>({user_id:t.user_id,profile_created_at:t.profile_created_at,current_grade:t.current_grade,address_city:t.address_city,selected_modality:t.selected_modality,school_type:t.school_type,completion_percentage:t.completion_percentage,candidate_status:t.candidate_status,sub_steps:t.sub_steps,is_praca:t.is_praca,praca_polo:t.praca_polo}))),c.length<1e3))break;r+=1e3}return i}const Da={cidade_vazia:"Sem cidade","9_presencial_fora_bt":"9º presencial fora de cidade BT",modalidade_vazia:"Sem modalidade","7_presencial_fora_praca":"7º presencial fora de praça",presencial_sem_programa:"Presencial sem programa",serie_invalida:"Série inválida",modalidade_invalida:"Modalidade inválida",combinacao_nao_mapeada:"Combinação não mapeada"},oa=new Set(["7","8","9"]),Ua=new Set(["online","presencial"]),L=a=>a.is_praca===!0,ea=a=>{if(!a)return null;const e=a.match(/\d+/);return e?e[0]:a.trim()},Ha=a=>{const e=ea(a.current_grade);return!e||!oa.has(e)?"serie_invalida":!a.address_city||!a.address_city.trim()?"cidade_vazia":!a.selected_modality||!a.selected_modality.trim()?"modalidade_vazia":Ua.has(a.selected_modality)?e==="9"&&a.selected_modality==="presencial"&&!L(a)?"9_presencial_fora_bt":a.selected_modality==="presencial"&&(e==="7"||e==="8")?"presencial_sem_programa":"combinacao_nao_mapeada":"modalidade_invalida"};function $a(a){const e=ea(a.current_grade),i=a.selected_modality;if(!e||!oa.has(e))return null;const r=L(a);return i==="online"?e==="7"&&r?"ismart_online":r?"adi_pracas":"adi_outras":i==="presencial"&&e==="9"&&r?"bolsa_talento":null}const U=a=>({...M,inscritos:a.inscritos,inscritos_com_atividades:a.tudoCompleto,aprovados_criterio_iol:a.aprovadoCriterio.iol,aprovados_criterio_adi:a.aprovadoCriterio.adi,aprovados_criterio_presencial:a.aprovadoCriterio.presencial}),H=(a,e)=>{let i=0,r=0,l=0;for(const c of a){const n=e.get(c);n==="ismart_online"?i++:n==="academia_digital"?r++:n==="bolsa_talento"&&l++}return{iol:i,adi:r,presencial:l}};function Y(a,e,i,r){const l=e.filter(d=>d.programId===a.id),c=l.filter(d=>
1i.has(d.user_id)).length,n=H(l.map(d=>d.user_id),r),t=n.iol+n.adi+n.presencial;return{program:a.id,programLabel:a.label,city:null,vagas:a.vagas,vagas_lista_espera:a.vagas_lista_espera,atual_aprovados:t,meta_inscricoes:a.meta_inscricoes,atual_inscricoes:l.length,meta_completo:a.meta_completo,atual_completo:c,ano_passado_inscricoes:a.ano_passado_inscricoes,ano_passado_completo:a.ano_passado_completo,ano_passado_aprovados:a.ano_passado_aprovados,metas_funil:a.metas_funil,ano_passado_funil:a.ano_passado_funil,atual_funil:U({inscritos:l.length,tudoCompleto:c,aprovadoCriterio:n})}}function za(a,e,i,r){const l=w(a.city),c=e.filter(v=>v.programId==="bolsa_talento"&&w(v.praca_polo)===l),n=c.filter(v=>i.has(v.user_id)).length,t=H(c.map(v=>v.user_id),r),d=t.iol+t.adi+t.presencial;return{program:"bolsa_talento",programLabel:"Bolsa Talento",city:a.city,vagas:a.vagas,vagas_lista_espera:a.vagas_lista_espera,atual_aprovados:d,meta_inscricoes:a.meta_inscricoes,atual_inscricoes:c.length,meta_completo:a.meta_completo,atual_completo:n,ano_passado_inscricoes:a.ano_passado_inscricoes,ano_passado_completo:a.ano_passado_completo,ano_passado_aprovados:a.ano_passado_aprovados,metas_funil:a.metas_funil,ano_passado_funil:a.ano_passado_funil,atual_funil:U({inscritos:c.length,tudoCompleto:n,aprovadoCriterio:t})}}const Ga=353,sa=412,ia=412,ta={"belo horizonte":129,"rio de janeiro":65,"sao jose dos campos":161,"sao paulo":155,cotia:13,sorocaba:28},qa=sa+ia+Object.values(ta).reduce((a,e)=>a+e,0);function Ja(){return X({queryKey:["admin","metas",K],queryFn:async()=>{var V;const e=((V=(await T.from("ps_config").select("registration_opens_at").eq("cycle_year",2027).single()).data)==null?void 0:V.registration_opens_at)??null,i=await ka(e),r=i.filter(s=>(s.completion_percentage??0)>0).map(s=>({user_id:s.user_id,current_grade:s.current_grade,address_city:s.address_city,selected_modality:s.selected_modality,school_type:s.school_type,completion_percentage:s.completion_percentage,created_at:s.profile_created_at,is_praca:s.is_praca,praca_polo:s.praca_polo})),l=i.map(s=>({user_id:s.user_id,status:s.candidate_status,sub_steps:s.sub_steps})),c=r.map(s=>s.user_id),n=await Oa("educaopen_registrations","user_id, status_educaopen, updated_at",c,[{column:"user_id",ascending:!0},{column:"updated_at",ascending:!1}]),t=await aa("candidate_destinations","user_id, destination",[{type:"eq",column:"cycle_year",value:K}]),d=new Map(t.map(s=>[s.user_id,s.destination])),v=new Map(l.map(s=>[s.user_id,s.sub_steps])),m=new Map;for(const s of n)m.has(s.user_id)||m.set(s.user_id,s.status_educaopen);const x=[],g=[];for(const s of r){const _=$a(s);if(!_){g.push(s);continue}x.push({...s,programId:_})}const S=new Map;for(const s of g){const _=Ha(s);S.set(_,(S.get(_)??0)+1)}const la=Object.entries(Da).map(([s,_])=>({key:s,label:_,count:S.get(s)??0})).filter(s=>s.count>0).sort((s,_)=>_.count-s.count),$=s=>Ca({subSteps:v.get(s.user_id)??null,modality:s.selected_modality,schoolType:s.school_type,educaopenStatus:m.get(s.user_id)??null}),y=new Set;for(const s of x)$(s)&&y.add(s.user_id);const z=g.filter($).length,N=H(g.map(s=>s.user_id),d),ca={program:"adi_outras",programLabel:"Sem classificação",city:null,vagas:null,vagas_lista_espera:null,atual_aprovados:N.iol+N.adi+N.presencial,meta_inscricoes:null,atual_inscricoes:g.length,meta_completo:null,atual_completo:z,ano_passado_inscricoes:null,ano_passado_completo:null,ano_passado_aprovados:null,metas_funil:M,ano_passado_funil:M,atual_funil:U({inscritos:g.length,tudoCompleto:z,aprovadoCriterio:N})},da=["ismart_online","adi_pracas","adi_outras"],_a=F.programs.filter(s=>da.includes(s.id)),b=F.programs.find(s=>s.id==="bolsa_talento");if(!(b!=null&&b.cities))throw new Error("JSON de metas inválido: bolsa_talento sem cities");const pa=_a.map(s=>Y(s,x,y,d)),ua=b.cities.map(s=>za(s,x,y,d)),ma=Y(b,x,y,d),va=r.filter(s=>d.get(s.user_id)==="ismart_online"),G=r.filter(s=>{const _=d.get(s.user_id);return L(s)&&(_==="ismart_online"||_==="academia_digital")}),q=r.filter(s=>!L(s)&&d.get(s.user_id)==="academia_digital"),R=new Map;
1for(const s of r){if(d.get(s.user_id)!=="bolsa_talento")continue;const _=w(s.praca_polo);_&&R.set(_,(R.get(_)??0)+1)}const J=[{label:"Belo Horizonte",key:"belo horizonte"},{label:"Rio de Janeiro",key:"rio de janeiro"},{label:"São José dos Campos",key:"sao jose dos campos"},{label:"São Paulo",key:"sao paulo"},{label:"Cotia",key:"cotia"},{label:"Sorocaba",key:"sorocaba"}].map(({label:s,key:_})=>({id:`bt-${_}`,label:`9º presencial — ${s}`,meta:ta[_]??null,atual:R.get(_)??0})),fa=[{id:"geral-praca",label:"Geral online praça",meta:sa,atual:G.length},{id:"ismart-online",label:"↳ destes, Ismart Online",meta:Ga,atual:va.length,isSub:!0},{id:"fora-praca",label:"Fora praça",meta:ia,atual:q.length},...J,{id:"total",label:"Total",meta:qa,atual:G.length+q.length+J.reduce((s,_)=>s+(_.atual??0),0),isTotal:!0}];return{meta:F,onlineRows:pa,btCityRows:ua,btTotalRow:ma,unclassifiedRow:ca,unclassifiedBreakdown:la,pdApprovalRows:fa,semClassificacao:g.length,fetchedAt:new Date().toISOString()}},staleTime:6e4,refetchOnWindowFocus:!1,refetchOnMount:!1})}const j=[{key:"inscritos",label:"Inscritos"},{key:"inscritos_com_atividades",label:"Inscritos c/ atividades"},{key:"aprovados_as",label:"Aprovados AS"},{key:"convocados_pd",label:"Convocados PD"},{key:"presentes_pd",label:"Presentes PD"},{key:"aprovados_criterio_presencial",label:"Aprovados critério presencial"},{key:"aprovados_criterio_iol",label:"Aprovados critério IOL"},{key:"aprovados_criterio_adi",label:"Aprovados critério ADI"},{key:"convocados_ef",label:"Convocados EF"},{key:"convocados_ei",label:"Convocados EI"},{key:"dinamica_ideathon",label:"Dinâmica / Ideathon"},{key:"prova_diagnostica",label:"Prova diagnóstica"},{key:"aprovados_comite_entrantes",label:"Aprovados comitê"}],Va={inscritos:13104,inscritos_com_atividades:9809,aprovados_as:8819,convocados_pd:8819,presentes_pd:4817,aprovados_criterio_presencial:593,aprovados_criterio_iol:353,aprovados_criterio_adi:824,convocados_ef:445,convocados_ei:417,dinamica_ideathon:1533,prova_diagnostica:303,aprovados_comite_entrantes:1191},Ka={inscritos:8309,inscritos_com_atividades:6292,aprovados_as:5915,convocados_pd:5915,presentes_pd:2865,aprovados_criterio_presencial:null,aprovados_criterio_iol:null,aprovados_criterio_adi:null,convocados_ef:null,convocados_ei:null,dinamica_ideathon:765,prova_diagnostica:null,aprovados_comite_entrantes:650},Ya=j.filter(({key:a})=>a!=="aprovados_criterio_presencial"),Qa=j.filter(({key:a})=>!["prova_diagnostica","aprovados_criterio_iol","aprovados_criterio_adi"].includes(a)),f=a=>a==null?"–":a.toLocaleString("pt-BR",{maximumFractionDigits:Number.isInteger(a)?0:1}),Q=(a,e)=>a==null||e==null||e===0?"–":`${(a/e*100).toFixed(1)}%`,na=(a,e)=>a==null||e==null||e===0?"–":`${(a/e*100).toFixed(0)}%`,Wa=(a,e)=>{if(a==null||e==null||e===0)return"–";const i=(a-e)/e*100;return`${i>=0?"+":""}${i.toFixed(0)}%`},ra=(a,e)=>{if(a==null||e==null||e===0)return"text-slate-400";const i=a/e;return i>=1?"text-emerald-600 font-semibold":i>=.7?"text-amber-600 font-semibold":"text-red-600 font-semibold"},Za=a=>{const e=a.filter(i=>i!=null);return e.length===0?null:e.reduce((i,r)=>i+r,0)},E=(a,e)=>Object.fromEntries(j.map(({key:i})=>[i,Za(a.map(r=>r[e][i]))])),Xa=a=>{const[e,i,r]=a.onlineRows,l=[{id:"ismart-online",groupLabel:"Praças",gradeLabel:"7º ano",locationLabel:"Total",programLabel:e.programLabel,vagas:e.vagas,vagasListaEspera:e.vagas_lista_espera,metasFunil:e.metas_funil,atualFunil:e.atual_funil,anoPassadoFunil:e.ano_passado_funil},{id:"adi-pracas",groupLabel:"Fora praça",gradeLabel:"7º ao 9º ano",locationLabel:"Praças Ismart",programLabel:i.programLabel,vagas:i.vagas,vagasListaEspera:i.vagas_lista_espera,metasFunil:i.metas_funil,atualFunil:i.atual_funil,anoPassadoFunil:i.ano_passado_funil},{id:"adi-outras",groupLabel:"Fora praça",gradeLabel:"7º ao 9º ano",locationLabel:"Outras cidades",programLabel:r.programLabel,vagas:r.vagas,vagasListaEspera:r.vagas_lista_espera,metasFunil:r.metas_funil,atualFunil:r.atual_funil,anoPassadoFunil:r.ano_passado_funil},...a.btCityRows.map(n=>({id:`bolsa-talento-${n.city}`,groupLabel:"Bolsa Talento",gradeLabel:"9º ano",locationLabel:n.city??"–",programLabel:n.programLabel,vagas:n.vagas,vagasListaEspera:n.vagas_lista_espera,metasFunil:n.metas_funil,atualFunil:n.atual_funil,anoPassadoFunil:n.ano_passado_funil})),{id:"bolsa-talento-total",groupLabel:"Bolsa Talento",gradeLabel:"9º ano",locationLabel:"Total",programLabel:a.btTotalRow.programLabel,vagas:a.btTotalRow.vagas,vagasListaEspera:a.btTotalRow.vagas_lista_espera,metasFunil:a.btTotalRow.metas_funil,atualFunil:a.btTotalRow.atual_funil,anoPassadoFunil:a.btTotalRow.ano_passado_funil},{id:"sem-classificacao",groupLabel:"Sem classificação",gradeLabel:"",locationLabel:"Não alocados",programLabel:"Sem meta definida",vagas:a.unclassifiedRow.vagas,vagasListaEspera:a.unclassifiedRow.vagas_lista_espera,metasFunil:a.unclassifiedRow.metas_funil,atualFunil:a.unclassifiedRow.atual_funil,anoPassadoFunil:a.unclassifiedRow.ano_passado_funil}],c=[...a.onlineRows,a.btTotalRow,a.unclassifiedRow];return[...l,{id:"total-geral",groupLabel:"Total Geral",gradeLabel:"",locationLabel:"",programLabel:"",vagas:null,vagasListaEspera:null,metasFunil:Va,atualFunil:E(c,"atual_funil"),anoPassadoFunil:E(c,"ano_passado_funil")}]},ao=new Set(["aprovados_criterio_presencial","aprovados_criterio_iol","aprovados_criterio_adi"]),W=a=>{let e=null,i=null;return(a.columns??j).map(({key:r,label:l})=>{const c=a.metasFunil[r],n=a.atualFunil[r],t=ao.has(r),d={label:l,meta:c,atual:n,conversaoMeta:t?"–":Q(c,e),conversaoAtual:t?"–":Q(n,i)};return t||(c!=null&&(e=c),n!=null&&(i=n)),d})},oo=(a,e)=>({meta:a.metasFunil[e],atual:a.atualFunil[e],anoPassado:a.anoPassadoFunil[e]}),eo=a=>a.id==="total-geral"?"bg-slate-50 font-semibold":a.id==="bolsa-talento-total"?"bg-muted/40 font-medium":"",so=a=>
1a.id==="total-geral"?"Total Geral":a.id==="sem-classificacao"?"Sem classificação":a.groupLabel==="Bolsa Talento"&&a.id!=="bolsa-talento-total"?"":a.programLabel;function io({values:a}){return o.jsxs(o.Fragment,{children:[o.jsx(u,{className:"text-right",children:f(a.meta)}),o.jsx(u,{className:"text-right font-medium",children:f(a.atual)}),o.jsx(u,{className:`text-right ${ra(a.atual,a.meta)}`,children:na(a.atual,a.meta)}),o.jsx(u,{className:"text-right text-muted-foreground",children:f(a.anoPassado)}),o.jsx(u,{className:"text-right",children:Wa(a.atual,a.anoPassado)})]})}function P({title:a,rows:e,metricKey:i,unclassifiedBreakdown:r}){return o.jsxs("section",{children:[o.jsx("h3",{className:"mb-3 text-sm font-semibold text-muted-foreground",children:a}),o.jsx("div",{className:"overflow-x-auto",children:o.jsxs(O,{className:"min-w-[1180px] text-sm",children:[o.jsx(k,{children:o.jsxs(h,{className:"border-b hover:bg-transparent",children:[o.jsx(p,{className:"w-40 font-medium text-muted-foreground",children:"Bloco"}),o.jsx(p,{className:"w-48 font-medium text-muted-foreground",children:"Programa"}),o.jsx(p,{className:"w-44 font-medium text-muted-foreground",children:"Praça / Grupo"}),o.jsx(p,{className:"w-28 font-medium text-muted-foreground",children:"Série"}),o.jsx(p,{className:"w-24 text-right font-medium text-muted-foreground",children:"Vagas"}),o.jsx(p,{className:"w-28 text-right font-medium text-muted-foreground",children:"Lista espera"}),o.jsx(p,{className:"w-28 text-right font-medium text-muted-foreground",children:"Meta"}),o.jsx(p,{className:"w-28 text-right font-medium text-muted-foreground",children:"Atual"}),o.jsx(p,{className:"w-32 text-right font-medium text-muted-foreground",children:"% Atingido"}),o.jsx(p,{className:"w-32 text-right font-medium text-muted-foreground",children:"Ano Passado"}),o.jsx(p,{className:"w-36 text-right font-medium text-muted-foreground",children:"Δ vs Ano Passado"})]})}),o.jsx(D,{children:e.map(l=>o.jsxs(h,{className:`border-b hover:bg-transparent ${eo(l)}`,children:[o.jsx(u,{className:"py-4",children:l.groupLabel}),o.jsx(u,{className:"py-4",children:so(l)}),o.jsx(u,{className:"py-4",children:o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{children:l.locationLabel||l.groupLabel}),l.id==="sem-classificacao"&&i==="inscritos"&&o.jsx(no,{total:l.atualFunil.inscritos??0,breakdown:r})]})}),o.jsx(u,{className:"py-4",children:l.gradeLabel}),o.jsx(u,{className:"py-4 text-right",children:f(l.vagas)}),o.jsx(u,{className:"py-4 text-right",children:f(l.vagasListaEspera)}),o.jsx(io,{values:oo(l,i)})]},`${i}-${l.id}`))})]})})]})}function to({column:a,rows:e,unclassifiedBreakdown:i}){const r=e.filter(n=>["ismart-online","adi-pracas","adi-outras"].includes(n.id)),l=e.filter(n=>n.groupLabel==="Bolsa Talento"),c=e.filter(n=>["sem-classificacao","total-geral"].includes(n.id));return o.jsxs(C,{children:[o.jsx(I,{className:"pb-4",children:o.jsxs(B,{className:"text-xl",children:[a.label," vs. Meta"]})}),o.jsxs(A,{className:"space-y-8",children:[o.jsx(P,{title:"Programas Online",rows:r,metricKey:a.key,unclassifiedBreakdown:i}),o.jsx(P,{title:"Bolsa Talento — por cidade",rows:l,metricKey:a.key,unclassifiedBreakdown:i}),o.jsx(P,{title:"Consolidados",rows:c,metricKey:a.key,unclassifiedBreakdown:i})]})]})}function Z({title:a,rows:e}){return o.jsxs(C,{children:[o.jsx(I,{children:o.jsx(B,{className:"text-base",children:a})}),o.jsx(A,{children:o.jsx("div",{className:"overflow-x-auto rounded-md border",children:o.jsxs(O,{className:"min-w-[620px] text-xs",children:[o.jsx(k,{children:o.jsxs(h,{className:"bg-slate-200 hover:bg-slate-200",children:[o.jsx(p,{className:"text-slate-900",children:"Etapa"}),o.jsx(p,{className:"text-right text-slate-900",children:"Meta"}),o.jsx(p,{className:"text-right text-slate-900",children:"Conversão meta"}),o.jsx(p,{className:"text-right text-slate-900",children:"Atual"}),o.jsx(p,{className:"text-right text-slate-900",children:"Conversão atual"})]})}),o.jsx(D,{children:e.map(i=>o.jsxs(h,{children:[o.jsx(u,{className:"font-medium",children:i.label}),o.jsx(u,{className:"text-right",children:f(i.meta)}),o.jsx(u,{className:"text-right",children:i.conversaoMeta}),o.jsx(u,{className:"text-right",children:f(i.atual)}),o.jsx(u,{className:"text-right",children:i.conversaoAtual})]},i.label))})]})})})]})}function no({total:a,breakdown:e}){return a===0||e.length===0?null:o.jsxs(xa,{children:[o.jsx(ba,{asChild:!0,children:o.jsx("button",{type:"button",className:"inline-flex items-center justify-center rounded-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","aria-label":"Ver composição dos candidatos sem classificação",children:o.jsx(Sa,{className:"h-3.5 w-3.5"})})}),o.jsx(ja,{className:"w-[320px] p-4",align:"start",children:o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"space-y-1",children:[o.jsx("h3",{className:"text-sm font-semibold",children:"Sem classificação"}),o.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Inscrições iniciadas que entram no Total Geral, mas ainda não se encaixam em uma meta por falta de cidade, modalidade ou combinação fora das regras atuais de alocação."})]}),o.jsxs("div",{className:"rounded-md border",children:[o.jsxs("div",{className:"flex items-center justify-between border-b px-3 py-2 text-xs font-medium",children:[o.jsx("span",{children:"Motivo"}),o.jsx("span",{children:f(a)})]}),o.jsx("div",{className:"divide-y",children:e.map(i=>o.jsxs("div",{className:"flex items-center justify-between gap-3 px-3 py-2 text-xs",children:[o.jsx("span",{className:"text-muted-foreground",children:i.label}),o.jsx("span",{className:"font-medium text-foreground",children:f(i.count)})]},i.key))})]})]})})]})}const ro=["inscritos","inscritos_com_atividades"];function lo({rows:a}){return o.jsxs(C,{children:[o.jsx(I,{className:"pb-4",children:o.jsx(B,{className:"text-xl",children:"Metas de aprovação na Prova Digital"})}),o.jsx(A,{children:o.jsx("div",{className:"overflow-x-auto",children:o.jsxs(O,{className:"min-w-[560px] text-sm",children:[o.jsx(k,{children:o.jsxs(h,{className:"border-b hover:bg-transparent",children:[o.jsx(p,{className:"font-medium text-muted-foreground",children:"Segmento"}),o.jsx(p,{className:"text-right font-medium text-muted-foreground",children:"Meta"}),o.jsx(p,{className:"text-right font-medium text-muted-foreground",children:"Atual"}),o.jsx(p,{className:"text-right font-medium text-muted-foreground",children:"% Atingido"})]})}),o.jsx(D,{children:a.map(e=>o.jsxs(h,{className:`border-b hover:bg-transparent ${e.isTotal?"bg-slate-50 font-semibold":""} ${e.isSub?"text-muted-foreground":""}`,children:[o.jsx(u,{className:`py-3 ${e.isSub?"pl-8":""}`,children:e.label}),o.jsx(u,{className:"py-3 text-right",children:f(e.meta)}),o.jsx(u,{className:"py-3 text-right font-medium",children:f(e.atual)}),o.jsx(u,{className:`py-3 text-right ${ra(e.atual,e.meta)}`,children:na(e.atual,e.meta)})]},e.id))})]})})})]})}function co({data:a}){const e=Xa(a),i=Ka,r=E(a.onlineRows,"atual_funil"),l=W({metasFunil:i,atualFunil:r,columns:Ya}).filter(t=>t.atual!=null),c=W({metasFunil:a.btTotalRow.metas_funil,atualFunil:a.btTotalRow.atual_funil,columns:Qa}).filter(t=>t.atual!=null),n=j.filter(t=>ro.includes(t.key));return o.jsxs("div",{className:"space-y-6",children:[o.jsx(lo,{rows:a.pdApprovalRows}),n.map(t=>o.jsx(to,{column:t,rows:e,unclassifiedBreakdown:a.unclassifiedBreakdown},t.key)),o.jsxs("div",{className:"grid gap-4 xl:grid-cols-2",children:[o.jsx(Z,{title:"Funil Online + ADI",rows:l}),o.jsx(Z,{title:"Funil Bolsa Talento",rows:c})]})]})}const _o=a=>{if(!a)return"";const e=Date.now()-new Date(a).getTime(),i=Math.floor(e/6e4);return i<1?"agora":i<60?`há ${i} min`:`há ${Math.floor(i/60)}h`};function Xo(){const{user:a,loading:e}=Na(),{data:i,isLoading:r}=X({queryKey:["is-test-user",a==null?void 0:a.id],queryFn:async()=>
1{if(!(a!=null&&a.id))return!1;const{data:v}=await T.from("test_users").select("user_id").eq("user_id",a.id).maybeSingle();return!!v},enabled:!!(a!=null&&a.id)}),{data:l,isLoading:c,error:n,refetch:t,isFetching:d}=Ja();return e||a!=null&&a.id&&(r||i===void 0)?o.jsx("div",{className:"min-h-screen flex items-center justify-center",children:o.jsx(La,{message:"Verificando acesso..."})}):i?o.jsx(ga,{children:o.jsxs("div",{className:"space-y-6 p-6",children:[o.jsxs("div",{className:"flex items-start justify-between gap-4 flex-wrap",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold",children:"Acompanhamento de Metas"}),o.jsxs("p",{className:"text-sm text-muted-foreground",children:[(l==null?void 0:l.meta.cycle_label)??"PS2027"," — matriz de farol por praça, com funil, metas, atual e ano passado. Fonte: ",o.jsx("code",{children:"FUNIL_PS2026_V3.pdf"}),"."]})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[(l==null?void 0:l.fetchedAt)&&o.jsxs("span",{className:"text-xs text-muted-foreground",children:["Atualizado ",_o(l.fetchedAt)]}),o.jsxs(ha,{variant:"outline",size:"sm",onClick:()=>t(),disabled:d,children:[o.jsx(Ta,{className:`w-4 h-4 mr-2 ${d?"animate-spin":""}`}),"Atualizar"]})]})]}),n&&o.jsx(C,{className:"border-destructive",children:o.jsxs(A,{className:"p-4 text-sm text-destructive",children:["Erro ao carregar dados: ",n.message]})}),c||!l?o.jsx(ya,{className:"h-96 w-full"}):o.jsx(co,{data:l})]})}):o.jsx(Aa,{to:"/admin/applications",replace:!0})}export{Xo 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.