1import{j as e}from"./vendor-query-C5CkDKs-.js";import{r as d,f as Oe,B as sa,C as ta,X as ra,Y as oa,T as ia,k as na,o as la,p as da,q as ca,s as ma,t as ua}from"./recharts-DwXsdKts.js";import{u as Ce,w as xa}from"./xlsx-CavZULGT.js";import{A as pa}from"./AdminLayout-Ce1PmZLc.js";import{c as ha,s as ae,d as _e,X as fa,u as ga,T as ue,h as xe,i as pe,j as he,f as Ve}from"./index-DCAs_njX.js";import{C as _a}from"./CandidateDetailDrawer-CLxOTqGZ.js";import{I as ee}from"./InfoTooltip-DxcrnNz5.js";import{I as be}from"./input-D_I_KHkU.js";import{B}from"./button-BfXBMGXv.js";import{S as je,a as ve,b as Ne,c as Se,d as le}from"./select-UJpi995A.js";import{T as Ae,a as ke,b as Y,c as Me,d as Pe,e as p}from"./table-DAbVH7Kq.js";import{B as de}from"./badge-DHD5lgF_.js";import{T as ba,a as ja,b as ze,c as Be}from"./tabs-BNIs9kr2.js";import{L as Le}from"./label-exyIzC24.js";import{P as va,a as Na,b as Sa}from"./popover-FA3q8xpK.js";import{S as Ue}from"./search-BsyljqEz.js";import{S as ya}from"./sliders-horizontal-DGICAFyq.js";import{R as Qe}from"./refresh-cw-DX34T5zs.js";import{a as Xe,C as Ye}from"./chevron-right-BD0hxh-_.js";import{C as Je}from"./chevron-up-DfEBMl-n.js";import{C as We}from"./chevron-down-BeWmhHP1.js";import{C as Ze}from"./chevrons-up-down-BnIMH1no.js";import{c as wa}from"./usePermissions-CrRAxGzH.js";import{a as Ma}from"./vendor-react-DvTSBsD5.js";import{C as ea}from"./chart-column-Rrf1uahv.js";import{B as $e}from"./pen-tool-dDIbwqd7.js";import{S as Ca}from"./send-CWUK2M_9.js";import{D as Ta}from"./download-dspn9yvE.js";import{T as Aa}from"./trending-up-BlvjGEFp.js";import{V as ka}from"./video-_uFxN2qa.js";import{I as Pa}from"./info-FV6deZ6y.js";import{A as Ea,a as Fa}from"./arrow-up-CwmnP-xo.js";import{M as Ra}from"./minus-BHr_S5rL.js";import"./useLocalStorageState-DzFN2lhj.js";import"./log-out-DTrhn7gM.js";import"./users-ZxqjNxMI.js";import"./file-text-D95eV0gv.js";import"./graduation-cap-BGQCohCp.js";import"./map-pin-Bm3_OAE1.js";import"./user-check-D-tvkYwl.js";import"./award-Zdjva58J.js";import"./star-CUpkulEu.js";import"./users-round-Mg_N68aL.js";import"./landmark-zT8FNZvC.js";import"./target-Bc1tpXo7.js";import"./mail-6EPpZFbN.js";import"./message-circle-UPx_Ax6n.js";import"./calendar-clock-IAayS6FF.js";import"./trophy-B--s1N7-.js";import"./key-round-C6J2J8pH.js";import"./vendor-radix-CuI5f0xj.js";import"./vendor-supabase-92svyh75.js";import"./skeleton-y1Gmv1Vv.js";import"./StarDisplay-DrEqXx4_.js";import"./separator-CCjL6w1Y.js";import"./socioeconomicLabels-Xs8K0R0d.js";import"./circle-dashed-CFfRkGkW.js";import"./triangle-alert-BjueChHm.js";import"./link-2-BZhk1eHu.js";import"./circle-x-ela5xUmp.js";import"./CandidateMessageHistoryDialog-DTizDjfQ.js";import"./dialog-C5L-hoY7.js";import"./scroll-area-DtwnwLSJ.js";import"./circle-alert-BFGz3h-k.js";import"./useAdminEvaluations-B7tt-CHQ.js";import"./textarea-C2tVJrct.js";import"./radio-group-BdUiohdD.js";import"./circle-nUsLjPNI.js";import"./collapsible-CVtHsJ59.js";import"./RessalvasMultiSelect-BiVj-MGC.js";import"./checkbox-Ck1NVOZ4.js";import"./check-BCQD_7xc.js";import"./ressalvas-fhhP1MPM.js";import"./interview-rubric-BbLqRNsx.js";import"./shield-alert-Dm6zTn94.js";import"./history-C1rLcsv5.js";import"./pencil-CzZW5OGa.js";import"./format-cw6V6tfV.js";import"./pt-BR-C09bp4bj.js";import"./user-x-Bf0mhqXO.js";import"./clock-DedPcJoO.js";import"./message-square-B8q3i3D4.js";import"./user-BIcBphF3.js";import"./phone-BZO7aZXa.js";import"./heart-D96GensZ.js";import"./school-DR1jP1P1.js";import"./external-link-CcYOH-og.js";import"./circle-check-big-BaoxO82E.js";import"./clipboard-list-CU6rdup9.js";import"./flask-conical-oBb09O_U.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const Da=ha("Gamepad2",[["line",{x1:"6",x2:"10",y1:"11",y2:"11",key:"1gktln"}],["line",{x1:"8",x2:"8",y1:"9",y2:"13",key:"qnk9ow"}],["line",{x1:"15",x2:"15.01",y1:"12",y2:"12",key:"krot7o"}],["line",{x1:"18",x2:"18.01",y1:"10",y2:"10",key:"1lcuu1"}],["path",{d:"M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z",key:"mfqc10"}]]);async function fe(o,t,i){let r=[],x=0;for(;;){let v=ae.from(o).select(t).range(x,x+1e3-1);i&&(v=i(v));const{data:_}=await v;if(!_||_.length===0||(r=r.concat(_),_.length<1e3))break;x+=1e3}return r}function ye(o){var k;if(o.length===0)return{count:0,mean:0,median:0,mode:0,stdDev:0,min:0,max:0,p25:0,p75:0};const t=[...o].sort((C,w)=>C-w),i=t.length,r=t.reduce((C,w)=>C+w,0)/i,x=i%2===0?(t[i/2-1]+t[i/2])/2:t[Math.floor(i/2)],v=t[Math.floor(i*.25)],_=t[Math.floor(i*.75)],q=t.reduce((C,w)=>C+(w-r)**2,0)/i,N=Math.sqrt(q),F={};t.forEach(C=>{const w=Math.round(C*100)/100;F[w]=(F[w]||0)+1});const O=Math.max(...Object.values(F)),G=Number(((k=Object.entries(F).find(([,C])=>C===O))==null?void 0:k[0])||0);return{count:i,mean:r,median:x,mode:G,stdDev:N,min:t[0],max:t[i-1],p25:v,p75:_}}function Ia(o,t=10){if(o.length===0)return[];const i=Math.min(...o),u=Math.max(...o),x=(u-i||1)/t,v=[];for(let _=0;_<t;_++){const q=i+_*x,N=_===t-1?u+.01:i+(_+1)*x;v.push({range:`${q.toFixed(0)}-${N.toFixed(0)}`,count:o.filter(F=>F>=q&&F<N).length,from:q,to:N}
6)}return v}function qa(o){return["7","8","9"].map(i=>{const u=o.filter(x=>x.current_grade===i&&x.mindsight_primary!=null).map(x=>x.mindsight_primary),r=ye(u);return{grade:`${i}º ano`,min:r.min,q1:r.p25,median:r.median,q3:r.p75,max:r.max,mean:r.mean,count:r.count}}).filter(i=>i.count>0)}const Oa=["JOURNEY_IN_PROGRESS","EXAM_READY","EXAM_REVIEW","APPROVED"];function Va(){const[o,t]=d.useState([]),[i,u]=d.useState(!0),[r,x]=d.useState({totalTests:0,avgMindsight:0,oxfordCompleted:0,videosAnalyzed:0,totalCandidatesInJourney:0,totalSubmitted:0}),[v,_]=d.useState([]),[q,N]=d.useState([]),[F,O]=d.useState([]),[G,k]=d.useState([]),[C,w]=d.useState([]),H=d.useCallback(async()=>{var S;u(!0);try{const[R,M,L,P,V]=await Promise.all([fe("mindsight_tests","user_id, status, scores"),fe("video_ai_metadata","user_id, status, score_video, score_autoestima, score_comunicacao, score_garra, score_mentalidade"),fe("profile_statuses","user_id, status, sub_steps"),fe("applications","user_id, candidate_full_name, current_grade, school_name, school_city, school_type, address_state, submitted, created_at, status",s=>s.eq("submitted",!0)),ae.from("ps_config").select("registration_opens_at").eq("cycle_year",2027).single()]),$=((S=V.data)==null?void 0:S.registration_opens_at)??null,J=1e3;let j=[],K=0;for(;;){const{data:s,error:f}=await ae.rpc("get_candidate_profiles",{p_search:null,p_grade:null,p_sort_key:"created_at",p_sort_dir:"desc",p_offset:K,p_limit:J,p_created_after:$});if(f||!s||s.length===0||(j=j.concat(s),s.length<J))break;K+=J}const se=new Set(j.map(s=>s.user_id)),E=new Map;j.forEach(s=>{E.set(s.user_id,s)});const U=P.filter(s=>se.has(s.user_id)),W=[...new Set(U.map(s=>s.user_id))],g=new Set(W),z=new Map;R.forEach(s=>{(!z.get(s.user_id)||s.status==="completed")&&z.set(s.user_id,s)});const T=new Map;M.forEach(s=>{(!T.has(s.user_id)||s.status==="completed")&&T.set(s.user_id,s)});const D=new Map;L.forEach(s=>{D.set(s.user_id,s)});const y=U.map(s=>{var qe;const f=z.get(s.user_id),h=T.get(s.user_id),oe=D.get(s.user_id),ce=E.get(s.user_id);let Re=null,De=null,Ie=null;if(f!=null&&f.scores&&typeof f.scores=="object"){const me=f.scores;Re=me.primary_score!=null?Number(me.primary_score):null,De=me.secondary_score!=null?Number(me.secondary_score):null,Ie=me.classification||null}const aa=((qe=oe==null?void 0:oe.sub_steps)==null?void 0:qe.oxford)===!0;return{user_id:s.user_id,full_name:s.candidate_full_name||(ce==null?void 0:ce.full_name)||null,email:(ce==null?void 0:ce.email)||null,current_grade:s.current_grade,school_name:s.school_name,school_city:s.school_city,school_type:s.school_type,address_state:s.address_state,mindsight_status:(f==null?void 0:f.status)||null,mindsight_primary:Re,mindsight_secondary:De,mindsight_classification:Ie,oxford_completed:aa,video_score:(h==null?void 0:h.score_video)!=null?Number(h.score_video):null,video_autoestima:(h==null?void 0:h.score_autoestima)!=null?Number(h.score_autoestima):null,video_comunicacao:(h==null?void 0:h.score_comunicacao)!=null?Number(h.score_comunicacao):null,video_garra:(h==null?void 0:h.score_garra)!=null?Number(h.score_garra):null,video_mentalidade:(h==null?void 0:h.score_mentalidade)!=null?Number(h.score_mentalidade):null,video_status:(h==null?void 0:h.status)||null,vs_media_mindsight:null,candidate_status:(oe==null?void 0:oe.status)||null,submitted:s.submitted||!1,created_at:s.created_at}}),Q=y.filter(s=>s.mindsight_primary!=null).map(s=>s.mindsight_primary),Z=Q.length>0?Q.reduce((s,f)=>s+f,0)/Q.length:0;y.forEach(s=>{s.mindsight_primary!=null&&(s.vs_media_mindsight=s.mindsight_primary-Z)});const n=new Set(R.filter(s=>s.status==="completed"&&g.has(s.user_id)).map(s=>s.user_id)),A=n.size,I=y.filter(s=>s.oxford_completed).length,te=y.filter(s=>{var h;const f=D.get(s.user_id);return((h=f==null?void 0:f.sub_steps)==null?void 0:h.video)===!0}).length,X=y.filter(s=>s.candidate_status&&Oa.includes(s.candidate_status)).length;x({totalTests:A,avgMindsight:Math.round(Z*100)/100,oxfordCompleted:I,videosAnalyzed:te,totalCandidatesInJourney:X,totalSubmitted:y.length}),_(Ia(Q,12)),N(qa(y));const b=y.filter(s=>s.video_status==="completed"),ne=s=>{const f=s.filter(h=>h!=null);return f.length>0?f.reduce((h,oe)=>h+oe,0)/f.length:0};O([{dimension:"Autoestima",value:Math.round(ne(b.map(s=>s.video_autoestima))*10)/10},{dimension:"Comunicação",value:Math.round(ne(b.map(s=>s.video_comunicacao))*10)/10},{dimension:"Garra",value:Math.round(ne(b.map(s=>s.video_garra))*10)/10},{dimension:"Mentalidade",value:Math.round(ne(b.map(s=>s.video_mentalidade))*10)/10}]);const a=y.filter(s=>s.video_score!=null).map(s=>s.video_score),m=y.filter(s=>s.mindsight_secondary!=null).map(s=>s.mindsight_secondary);k([{label:"Mindsight (Primário)",...ye(Q)},{label:"Mindsight (Secundário)",...ye(m)},{label:"VÃdeo (Nota geral)",...ye(a)}]);const c=y.length,l=n.size,re=y.filter(s=>s.oxford_completed).length,Ee=y.filter(s=>{var h;
6const f=D.get(s.user_id);return((h=f==null?void 0:f.sub_steps)==null?void 0:h.video)===!0}).length,Fe=y.filter(s=>{const f=D.get(s.user_id);return f!=null&&f.sub_steps?Object.values(f.sub_steps).every(h=>h===!0):!1}).length;w([{label:"Inscrição enviada",value:c,pct:100},{label:"Mindsight concluÃdo",value:l,pct:c>0?Math.round(l/c*100):0},{label:"Oxford concluÃdo",value:re,pct:c>0?Math.round(re/c*100):0},{label:"VÃdeo analisado",value:Ee,pct:c>0?Math.round(Ee/c*100):0},{label:"Percurso completo",value:Fe,pct:c>0?Math.round(Fe/c*100):0}]),t(y)}catch(R){console.error("Error fetching performance analytics:",R)}finally{u(!1)}},[]);return d.useEffect(()=>{H()},[H]),{candidates:o,loading:i,refresh:H,globalStats:r,histogram:v,gradeBox:q,radarData:F,descriptiveTable:G,funnelData:C}}const Ke=200,za={created_at:"created_at",status:"status",score_video:"score_video",score_autoestima:"score_autoestima",score_comunicacao:"score_comunicacao",score_garra:"score_garra",score_mentalidade:"score_mentalidade",webhook_sent_at:"webhook_sent_at",ai_processed_at:"ai_processed_at"};function Ba(o){return o==="pending"||o==="completed"||o==="error"}function La(o){return o instanceof Error?o.message:"Erro desconhecido"}function $a({page:o,pageSize:t,statusFilter:i,search:u,scoreVideoMin:r,scoreVideoMax:x,sortKey:v,sortDir:_}){const[q,N]=d.useState([]),[F,O]=d.useState(0),[G,k]=d.useState(!0),[C,w]=d.useState(null),[H,S]=d.useState(!1),R=d.useRef(0),M=d.useCallback(async()=>{const L=++R.current;k(!0),w(null),S(!1);try{const P=(o-1)*t,V=P+t-1;let $=null;if(u.length>0){const{data:g,error:z}=await ae.rpc("get_candidate_profiles",{p_search:u,p_sort_key:"created_at",p_sort_dir:"desc",p_offset:0,p_limit:Ke});if(z)throw z;if($=(g??[]).map(T=>T.user_id),L!==R.current)return;if($&&$.length===Ke&&S(!0),!$||$.length===0){N([]),O(0),k(!1);return}}const J=za[v];let j=ae.from("video_ai_metadata").select("id, video_submission_id, user_id, status, score_video, score_autoestima, score_comunicacao, score_garra, score_mentalidade, ai_processed_at, webhook_sent_at, webhook_attempts, webhook_last_error, created_at",{count:"exact"}).order(J,{ascending:_==="asc",nullsFirst:!1});v!=="created_at"&&(j=j.order("created_at",{ascending:!1})),j=j.range(P,V),i!=="all"&&(j=j.eq("status",i)),r!==null&&(j=j.gte("score_video",r)),x!==null&&(j=j.lte("score_video",x)),$&&(j=j.in("user_id",$));const{data:K,count:se,error:E}=await j;if(E)throw E;if(L!==R.current)return;const U=Array.from(new Set((K??[]).map(g=>g.user_id))),W=new Map;if(U.length>0){const{data:g}=await ae.from("profiles").select("user_id, full_name").in("user_id",U);if(L!==R.current)return;(g??[]).forEach(z=>{z.full_name&&W.set(z.user_id,z.full_name)})}N((K??[]).map(g=>({metadata_id:g.id,video_submission_id:g.video_submission_id,user_id:g.user_id,candidate_full_name:W.get(g.user_id)??null,status:Ba(g.status)?g.status:"pending",score_video:g.score_video,score_autoestima:g.score_autoestima,score_comunicacao:g.score_comunicacao,score_garra:g.score_garra,score_mentalidade:g.score_mentalidade,ai_processed_at:g.ai_processed_at,webhook_sent_at:g.webhook_sent_at,webhook_attempts:g.webhook_attempts??0,webhook_last_error:g.webhook_last_error,created_at:g.created_at??""}))),O(se??0)}catch(P){if(L!==R.current)return;w(La(P)),N([]),O(0)}finally{L===R.current&&k(!1)}},[o,t,i,u,r,x,v,_]);return d.useEffect(()=>{M()},[M]),{rows:q,totalCount:F,loading:G,error:C,searchOverflowed:H,refresh:M}}function Ka(o,t=300){const[i,u]=d.useState(o);return d.useEffect(()=>{const r=setTimeout(()=>u(o),t);return()=>clearTimeout(r)},[o,t]),i}const Ge=20,Ga=[{label:"Todas",min:"",max:""},{label:"Baixas: 0-40",min:"0",max:"40"},{label:"Médias: 40-70",min:"40",max:"70"},{label:"Altas: 70-100",min:"70",max:"100"},{label:"80+",min:"80",max:""},{label:"90+",min:"90",max:""}];function He(o){const t=o.trim().replace(",",".");if(!t)return null;const i=Number(t);return Number.isFinite(i)?i:null}function Ha(o,t){const i=o.trim(),u=t.trim(),r=i.length>0,x=u.length>0;return!r&&!x?"Nota geral":r&&x?`Nota ${i}-${u}`:r?`Nota >= ${i}`:`Nota <= ${u}`}function Ua({dir:o}){return o==="asc"?e.jsx(Je,{className:"w-3.5 h-3.5"}):o==="desc"?e.jsx(We,{className:"w-3.5 h-3.5"}):e.jsx(Ze,{className:"w-3.5 h-3.5 opacity-40"})}function ie({sortKey:o,activeSortKey:t,sortDir:i,label:u,onSort:r}){return e.jsx(Me,{className:"cursor-pointer select-none whitespace-nowrap hover:text-foreground",onClick:()=>r(o),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[u,e.jsx(Ua,{dir:t===o?i:null})]})})}function Qa({onOpenCandidateProfile:o}
6){const[t,i]=d.useState(1),[u,r]=d.useState("all"),[x,v]=d.useState(""),[_,q]=d.useState(""),[N,F]=d.useState(""),[O,G]=d.useState(""),[k,C]=d.useState(""),[w,H]=d.useState(!1),[S,R]=d.useState("created_at"),[M,L]=d.useState("desc"),V=Ka(x,300).trim().slice(0,80),$=V.length>=2?V:"",J=He(_),j=He(N),K=_.trim().length>0||N.trim().length>0,{rows:se,totalCount:E,loading:U,error:W,searchOverflowed:g,refresh:z}=$a({page:t,pageSize:Ge,statusFilter:u,search:$,scoreVideoMin:J,scoreVideoMax:j,sortKey:S,sortDir:M}),T=Math.max(1,Math.ceil(E/Ge));d.useEffect(()=>{t>T&&i(T)},[T,t]);function D(n){if(S===n){L(A=>A==="asc"?"desc":"asc"),i(1);return}R(n),L("desc"),i(1)}function y(n,A){q(n.trim()),F(A.trim()),R("score_video"),L("desc"),H(!1),i(1)}function Q(){q(""),F(""),G(""),C(""),H(!1),i(1)}function Z(n){H(n),n&&(G(_),C(N))}return e.jsx("div",{className:"space-y-6",children:e.jsxs("div",{className:"bg-card rounded-xl border border-border p-5 space-y-4",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row justify-between gap-3",children:[e.jsxs("div",{children:[e.jsxs("h3",{className:"text-sm font-semibold text-foreground flex items-center gap-1.5",children:["Análises Preparo",e.jsx(ee,{text:"Lista paginada de todas as análises Preparo registradas. Filtrável por status e nome."})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:U?"...":`${E.toLocaleString("pt-BR")} análises`})]}),e.jsxs("div",{className:"flex flex-wrap gap-2 items-center",children:[e.jsxs("div",{className:"relative",children:[e.jsx(Ue,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(be,{placeholder:"Buscar por nome...",value:x,onChange:n=>{v(n.target.value),i(1)},className:"pl-9 w-56 h-9 text-sm"})]}),e.jsxs(je,{value:u,onValueChange:n=>{r(n),i(1)},children:[e.jsx(ve,{className:"w-40 h-9 text-sm",children:e.jsx(Ne,{})}),e.jsxs(Se,{children:[e.jsx(le,{value:"all",children:"Todos os status"}),e.jsx(le,{value:"completed",children:"ConcluÃda"}),e.jsx(le,{value:"pending",children:"Pendente"}),e.jsx(le,{value:"error",children:"Erro"})]})]}),e.jsxs("div",{className:"flex items-center",children:[e.jsxs(va,{open:w,onOpenChange:Z,children:[e.jsx(Na,{asChild:!0,children:e.jsxs(B,{type:"button",variant:K?"default":"outline",size:"sm",className:_e("h-9 gap-1.5",K&&"rounded-r-none"),children:[e.jsx(ya,{className:"w-4 h-4"}),Ha(_,N)]})}),e.jsx(Sa,{className:"w-80 p-4",align:"end",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold text-foreground",children:"Nota geral"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Filtra pela nota geral do vÃdeo Preparo."})]}),e.jsx("div",{className:"grid grid-cols-2 gap-2",children:Ga.map(n=>e.jsx(B,{type:"button",variant:"outline",size:"sm",className:"justify-start text-xs",onClick:()=>y(n.min,n.max),children:n.label},n.label))}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(Le,{htmlFor:"preparo-score-min",className:"text-xs",children:"MÃnima"}),e.jsx(be,{id:"preparo-score-min",inputMode:"decimal",placeholder:"0",value:O,onChange:n=>G(n.target.value),className:"h-9 text-sm"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(Le,{htmlFor:"preparo-score-max",className:"text-xs",children:"Máxima"}),e.jsx(be,{id:"preparo-score-max",inputMode:"decimal",placeholder:"100",value:k,onChange:n=>C(n.target.value),className:"h-9 text-sm"})]})]}),e.jsxs("div",{className:"flex justify-between gap-2",children:[e.jsx(B,{type:"button",variant:"ghost",size:"sm",onClick:Q,children:"Limpar"}),e.jsx(B,{type:"button",size:"sm",onClick:()=>y(O,k),children:"Aplicar"})]})]})})]}),K&&e.jsx(B,{type:"button",variant:"default",size:"icon",className:"h-9 w-8 rounded-l-none border-l border-primary-foreground/20",onClick:Q,"aria-label":"Limpar filtro de nota geral",children:e.jsx(fa,{className:"w-3.5 h-3.5"})})]}),e.jsxs(B,{variant:"outline",size:"sm",onClick:z,disabled:U,children:[e.jsx(Qe,{className:_e("w-4 h-4 mr-1",U&&"animate-spin")}),"Atualizar"]})]})]}),W&&e.jsxs("div",{className:"rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-xs text-red-700 flex items-center justify-between gap-2",children:[e.jsxs("span",{children:["Falha ao carregar análises: ",W]}),e.jsx(B,{size:"sm",variant:"outline",onClick:z,children:"Tentar novamente"})]}),g&&e.jsx("div",{className:"rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-700",children:"Refine a busca â muitos resultados (mostrando apenas os 200 primeiros)."}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(Ae,{children:[e.jsx(ke,{children:e.jsxs(Y,{children:[e.jsx(Me,{children:"Candidato"}),e.jsx(ie,{sortKey:"status",activeSortKey:S,sortDir:M,label:"Status",onSort:D}),e.jsx(ie,{sortKey:"score_video",activeSortKey:S,sortDir:M,label:"VÃdeo",onSort:D}),e.jsx(ie,{sortKey:"score_autoestima",activeSortKey:S,sortDir:M,label:"Autoest.",onSort:D}),e.jsx(ie,{sortKey:"score_comunicacao",activeSortKey:S,sortDir:M,label:"Comunic.",onSort:D}),e.jsx(ie,{sortKey:"score_garra",activeSortKey:S,sortDir:M,label:"Garra",onSort:D}),e.jsx(ie,{sortKey:"score_mentalidade",activeSortKey:S,sortDir:M,label:"Mental.",onSort:D}),e.jsx(ie,{sortKey:"webhook_sent_at",activeSortKey:S,sortDir:M,label:"Enviado em",onSort:D}),e.jsx(ie,{sortKey:"ai_processed_at",activeSortKey:S,sortDir:M,label:"Recebida em",onSort:D})]})}),e.jsx(Pe,{children:U?Array.from({length:8}).map((n,A)=>e.jsx(Y,{children:Array.from({length:9}).map((I,te)=>e.jsx(p,{children:e.jsx("div",{className:"h-4 bg-muted animate-pulse rounded w-16"})},te))},A)):se.length===0?e.jsx(Y,{children:e.jsx(p,{colSpan:9,className:"text-center py-10 text-muted-foreground",children:"Nenhuma análise encontrada"})}):se.map(n=>{var A,I,te,X,b;return e.jsxs(Y,{children:[e.jsx(p,{className:"font-medium max-w-[220px]",children:e.jsx("button",{type:"button",className:"max-w-full truncate text-left text-primary underline-offset-2 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",onClick:()=>
6o==null?void 0:o(n.user_id),"aria-label":`Abrir ficha de ${n.candidate_full_name??"candidato"}`,children:n.candidate_full_name??n.user_id.slice(0,8)})}),e.jsx(p,{children:e.jsxs(de,{variant:"outline",className:_e("text-xs",n.status==="completed"&&"bg-emerald-50 text-emerald-700 border-emerald-200",n.status==="pending"&&"bg-amber-50 text-amber-700 border-amber-200",n.status==="error"&&"bg-red-50 text-red-700 border-red-200"),children:[n.status==="completed"&&"ConcluÃda",n.status==="pending"&&"Pendente",n.status==="error"&&"Erro"]})}),e.jsx(p,{className:"tabular-nums text-xs",children:((A=n.score_video)==null?void 0:A.toFixed(1))??"â"}),e.jsx(p,{className:"tabular-nums text-xs",children:((I=n.score_autoestima)==null?void 0:I.toFixed(1))??"â"}),e.jsx(p,{className:"tabular-nums text-xs",children:((te=n.score_comunicacao)==null?void 0:te.toFixed(1))??"â"}),e.jsx(p,{className:"tabular-nums text-xs",children:((X=n.score_garra)==null?void 0:X.toFixed(1))??"â"}),e.jsx(p,{className:"tabular-nums text-xs",children:((b=n.score_mentalidade)==null?void 0:b.toFixed(1))??"â"}),e.jsx(p,{className:"text-xs whitespace-nowrap",children:n.webhook_sent_at?new Date(n.webhook_sent_at).toLocaleDateString("pt-BR"):"â"}),e.jsx(p,{className:"text-xs whitespace-nowrap",children:n.ai_processed_at?new Date(n.ai_processed_at).toLocaleDateString("pt-BR"):"â"})]},n.metadata_id)})})]})}),T>1&&e.jsxs("div",{className:"flex items-center justify-between pt-2",children:[e.jsxs("p",{className:"text-sm text-muted-foreground",children:[E.toLocaleString("pt-BR")," análises ⢠Página ",t," de ",T]}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx(B,{variant:"outline",size:"icon",className:"h-8 w-8",disabled:t<=1,onClick:()=>i(n=>n-1),children:e.jsx(Xe,{className:"w-4 h-4"})}),Array.from({length:Math.min(5,T)},(n,A)=>{let I;return T<=5||t<=3?I=A+1:t>=T-2?I=T-4+A:I=t-2+A,e.jsx(B,{variant:I===t?"default":"outline",size:"icon",className:"h-8 w-8",onClick:()=>i(I),children:I},I)}),e.jsx(B,{variant:"outline",size:"icon",className:"h-8 w-8",disabled:t>=T,onClick:()=>i(n=>n+1),children:e.jsx(Ye,{className:"w-4 h-4"})})]})]})]})})}const Te=20,Xa=[{value:"all",label:"Todas as séries"},{value:"7",label:"7º ano"},{value:"8",label:"8º ano"},{value:"9",label:"9º ano"}],Ya=[{value:"all",label:"Todos os status"},{value:"completed",label:"ConcluÃdo"},{value:"pending",label:"Pendente"},{value:"started",label:"Iniciado"}],Ja=[{value:"all",label:"Todos os tipos"},{value:"public",label:"Pública"},{value:"private",label:"Particular"}],Wa={contentStyle:{background:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"8px",fontSize:"12px"}};function Za({dir:o}){return o==="asc"?e.jsx(Je,{className:"w-3.5 h-3.5"}):o==="desc"?e.jsx(We,{className:"w-3.5 h-3.5"}):e.jsx(Ze,{className:"w-3.5 h-3.5 opacity-40"})}function ge({title:o,value:t,sub:i,icon:u,color:r,tooltip:x}){return e.jsx(ue,{children:e.jsxs(xe,{children:[e.jsx(pe,{asChild:!0,children:e.jsxs("div",{className:"bg-card rounded-xl border border-border p-5 flex items-start gap-4 cursor-default",children:[e.jsx("div",{className:`p-3 rounded-lg ${r}`,children:e.jsx(u,{className:"w-5 h-5"})}),e.jsxs("div",{children:[e.jsxs("p",{className:"text-sm text-muted-foreground flex items-center gap-1",children:[o,e.jsx(Pa,{className:"w-3 h-3 opacity-50"})]}),e.jsx("p",{className:"text-2xl font-bold text-foreground",children:t}),i&&e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:i})]})]})}),x&&e.jsx(he,{className:"max-w-[280px]",children:e.jsx("p",{className:"text-xs leading-relaxed",children:x})})]})})}function we({message:o="Sem dados suficientes"}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-10 gap-2",children:[e.jsx(ea,{className:"w-8 h-8 text-muted-foreground/40"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:o})]})}function es({diff:o}){if(o==null)return e.jsx("span",{className:"text-muted-foreground",children:"â"});const t=Math.round(o*10)/10;return t>0?e.jsxs(de,{variant:"outline",className:"text-emerald-600 border-emerald-200 bg-emerald-50 gap-1",children:[e.jsx(Ea,{className:"w-3 h-3"}),"+",t]}):t<0?e.jsxs(de,{variant:"outline",className:"text-red-600 border-red-200 bg-red-50 gap-1",children:[e.jsx(Fa,{className:"w-3 h-3"}),t]}):e.jsxs(de,{variant:"outline",className:"text-muted-foreground gap-1",children:[e.jsx(Ra,{className:"w-3 h-3"}),"0"]})}function as({data:o}
6){if(o.length===0)return e.jsx(we,{});const t=Math.max(...o.map(r=>r.max)),i=Math.min(...o.map(r=>r.min)),u=t-i||1;return e.jsxs("div",{className:"space-y-4",children:[o.map(r=>{const x=v=>(v-i)/u*100;return e.jsx(ue,{children:e.jsxs(xe,{children:[e.jsx(pe,{asChild:!0,children:e.jsxs("div",{className:"flex items-center gap-3 cursor-help",children:[e.jsx("span",{className:"text-sm font-medium text-muted-foreground w-16",children:r.grade}),e.jsxs("div",{className:"flex-1 relative h-8",children:[e.jsx("div",{className:"absolute top-1/2 -translate-y-1/2 h-[2px] bg-muted-foreground/30",style:{left:`${x(r.min)}%`,width:`${x(r.max)-x(r.min)}%`}}),e.jsx("div",{className:"absolute top-1/2 -translate-y-1/2 h-6 bg-primary/20 border border-primary rounded",style:{left:`${x(r.q1)}%`,width:`${x(r.q3)-x(r.q1)}%`}}),e.jsx("div",{className:"absolute top-1/2 -translate-y-1/2 h-6 w-[2px] bg-primary",style:{left:`${x(r.median)}%`}}),e.jsx("div",{className:"absolute top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-destructive",style:{left:`${x(r.mean)}%`,transform:"translate(-50%, -50%)"}})]}),e.jsxs("span",{className:"text-xs text-muted-foreground w-10 text-right",children:["n=",r.count]})]})}),e.jsx(he,{className:"max-w-[260px]",children:e.jsxs("p",{className:"text-xs leading-relaxed",children:[e.jsx("strong",{children:r.grade})," (",r.count," candidatos)",e.jsx("br",{}),"MÃn: ",r.min.toFixed(1)," · Q1: ",r.q1.toFixed(1)," · Mediana: ",r.median.toFixed(1)," · Q3: ",r.q3.toFixed(1)," · Máx: ",r.max.toFixed(1),e.jsx("br",{}),"Média: ",r.mean.toFixed(1)]})})]})},r.grade)}),e.jsxs("div",{className:"flex gap-4 text-xs text-muted-foreground mt-2 justify-center flex-wrap",children:[e.jsx(ue,{children:e.jsxs(xe,{children:[e.jsx(pe,{asChild:!0,children:e.jsxs("span",{className:"flex items-center gap-1 cursor-help",children:[e.jsx("div",{className:"w-3 h-3 bg-primary/20 border border-primary rounded"}
6)," IQR (Q1-Q3)"]})}),e.jsx(he,{className:"max-w-[260px]",children:e.jsx("p",{className:"text-xs",children:"Intervalo Interquartil: região entre o 1º quartil (25%) e o 3º quartil (75%). Contém 50% dos dados centrais da distribuição."})})]})}),e.jsx(ue,{children:e.jsxs(xe,{children:[e.jsx(pe,{asChild:!0,children:e.jsxs("span",{className:"flex items-center gap-1 cursor-help",children:[e.jsx("div",{className:"w-3 h-[2px] bg-primary"})," Mediana"]})}),e.jsx(he,{className:"max-w-[260px]",children:e.jsx("p",{className:"text-xs",children:"Valor central da distribuição: 50% dos candidatos pontuaram abaixo e 50% acima deste valor. Menos sensÃvel a outliers que a média."})})]})}),e.jsx(ue,{children:e.jsxs(xe,{children:[e.jsx(pe,{asChild:!0,children:e.jsxs("span",{className:"flex items-center gap-1 cursor-help",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-destructive"})," Média"]})}),e.jsx(he,{className:"max-w-[260px]",children:e.jsx("p",{className:"text-xs",children:"Média aritmética: soma de todas as notas dividida pelo total de candidatos. Pode ser influenciada por valores extremos."})})]})})]})]})}function Ot(){var ne;const{candidates:o,loading:t,refresh:i,globalStats:u,histogram:r,gradeBox:x,radarData:v,descriptiveTable:_,funnelData:q}
6=Va(),[N,F]=d.useState(""),[O,G]=d.useState("all"),[k,C]=d.useState("all"),[w,H]=d.useState("all"),[S,R]=d.useState("mindsight_primary"),[M,L]=d.useState("desc"),[P,V]=d.useState(1),[$,J]=d.useState(null),[j,K]=d.useState(!1),{role:se,user:E}=ga(),[U,W]=d.useState(!1);d.useEffect(()=>{if(!(E!=null&&E.id)){W(!1);return}let a=!1;return ae.from("test_users").select("user_id").eq("user_id",E.id).maybeSingle().then(({data:m})=>{a||W(!!m)}),()=>{a=!0}},[E==null?void 0:E.id]);const z=((ne=Ma().state)==null?void 0:ne.tab)??"mindsight",[T,D]=d.useState(z),y=async a=>{const{data:m,error:c}=await ae.from("applications").select("*").eq("user_id",a).maybeSingle();if(c){console.error("Erro ao carregar ficha do candidato:",c),Ve.error("Não foi possÃvel abrir a ficha do candidato.");return}if(!m){Ve.error("Ficha do candidato não encontrada.");return}const{data:l,error:re}=await ae.from("profiles").select("email").eq("user_id",a).maybeSingle();re&&console.error("Erro ao carregar email do candidato:",re),J({...m,email:(l==null?void 0:l.email)??null}),K(!0)},Q=d.useMemo(()=>{let a=o;if(N){const m=N.toLowerCase();a=a.filter(c=>{var l,re;return((l=c.full_name)==null?void 0:l.toLowerCase().includes(m))||((re=c.email)==null?void 0:re.toLowerCase().includes(m))})}return O!=="all"&&(a=a.filter(m=>m.current_grade===O)),k!=="all"&&(k==="pending"?a=a.filter(m=>!m.mindsight_status||m.mindsight_status==="pending"):a=a.filter(m=>m.mindsight_status===k)),w!=="all"&&(a=a.filter(m=>m.school_type===w)),a},[o,N,O,k,w]),Z=d.useMemo(()=>[...Q].sort((a,m)=>{let c,l;switch(S){case"full_name":c=a.full_name||"",l=m.full_name||"";break;case"current_grade":c=a.current_grade||"",l=m.current_grade||"";break;case"mindsight_primary":c=a.mindsight_primary??-1,l=m.mindsight_primary??-1;break;case"oxford_completed":c=a.oxford_completed?1:0,l=m.oxford_completed?1:0;break;case"video_score":c=a.video_score??-1,l=m.video_score??-1;break;case"vs_media_mindsight":c=a.vs_media_mindsight??-999,l=m.vs_media_mindsight??-999;break;default:c=0,l=0}return typeof c=="string"&&typeof l=="string"?M==="asc"?c.localeCompare(l):l.localeCompare(c):M==="asc"?Number(c)-Number(l):Number(l)-Number(c)}),[Q,S,M]),n=Math.ceil(Z.length/Te),A=Z.slice((P-1)*Te,P*Te),I=a=>{S===a?L(m=>m==="asc"?"desc":"asc"):(R(a),L("desc")),V(1)},te=()=>{const a=Z.map(l=>({Nome:l.full_name||"",Email:l.email||"",Série:l.current_grade?`${l.current_grade}º ano`:"",Escola:l.school_name||"","Cidade/UF":`${l.school_city||""}/${l.address_state||""}`,"Tipo Escola":l.school_type==="public"?"Pública":l.school_type==="private"?"Particular":"","Mindsight (Nota)":l.mindsight_primary??"","Mindsight (Classificação)":l.mindsight_classification||"",Oxford:l.oxford_completed?"Sim":"Não","VÃdeo (Nota)":l.video_score??"","VÃdeo - Autoestima":l.video_autoestima??"","VÃdeo - Comunicação":l.video_comunicacao??"","VÃdeo - Garra":l.video_garra??"","VÃdeo - Mentalidade":l.video_mentalidade??"","vs. Média":l.vs_media_mindsight!=null?Math.round(l.vs_media_mindsight*10)/10:"",Status:l.candidate_status||""})),m=Ce.json_to_sheet(a),c=Ce.book_new();Ce.book_append_sheet(c,m,"Desempenhos"),xa(c,`desempenhos_${new Date().toISOString().slice(0,10)}.xlsx`)};function X({label:a,col:m,tooltip:c}){return e.jsx(Me,{className:"cursor-pointer select-none whitespace-nowrap",onClick:()=>I(m),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[a,c&&e.jsx(ee,{text:c}),e.jsx(Za,{dir:S===m?M:null})]})})}function b({label:a,tooltip:m}){return e.jsx(Me,{className:"whitespace-nowrap",children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[a,e.jsx(ee,{text:m})]})})}return e.jsxs(pa,{children:[e.jsxs("div",{className:"p-6 space-y-6 max-w-[1400px] mx-auto",children:[e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold text-foreground flex items-center gap-2",children:[e.jsx(ea,{className:"w-6 h-6 text-primary"}),"Desempenhos"]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"EstatÃsticas avançadas de testes e desempenho dos candidatos"})]})}),e.jsxs(ba,{value:T,onValueChange:D,className:"space-y-6",children:[e.jsxs(ja,{children:[e.jsxs(ze,{value:"mindsight",className:"gap-1.5",children:[e.jsx($e,{className:"w-4 h-4"}),"Mindsight + CRM"]}),e.jsxs(ze,{value:"preparo",className:"gap-1.5",children:[e.jsx(Ca,{className:"w-4 h-4"}),"Preparo"]})]}),e.jsxs(Be,{value:"mindsight",className:"space-y-6",children:[e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(B,{variant:"outline",size:"sm",onClick:i,disabled:t,children:[e.jsx(Qe,{className:_e("w-4 h-4 mr-1",t&&"animate-spin")}),"Atualizar"]}),wa(se)&&e.jsxs(B,{variant:"outline",size:"sm",onClick:te,disabled:t||Z.length===0,children:[e.jsx(Ta,{className:"w-4 h-4 mr-1"}),"Exportar XLSX"]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:[e.jsx(ge,{title:"Testes Realizados",value:t?"...":u.totalTests.toLocaleStr
6ing("pt-BR"),sub:`de ${u.totalSubmitted.toLocaleString("pt-BR")} inscritos`,icon:$e,color:"bg-primary/10 text-primary",tooltip:"Total de testes Mindsight com status 'completed'. Calculado contando registros na tabela mindsight_tests onde o candidato finalizou o teste."}),e.jsx(ge,{title:"Nota Média (Mindsight)",value:t?"...":u.avgMindsight.toFixed(1),sub:`${u.totalTests} testes`,icon:Aa,color:"bg-emerald-100 text-emerald-600",tooltip:"Média aritmética simples: soma de todas as notas primárias do Mindsight dividida pelo número de testes concluÃdos. Fórmula: Σ(notas) / N."}),e.jsx(ge,{title:"Jogos ConcluÃdos (Oxford)",value:t?"...":u.oxfordCompleted.toLocaleString("pt-BR"),sub:`${u.totalSubmitted>0?Math.round(u.oxfordCompleted/u.totalSubmitted*100):0}% de conclusão`,icon:Da,color:"bg-amber-100 text-amber-600",tooltip:"Candidatos que marcaram o jogo de raciocÃnio lógico Oxford como concluÃdo (sub_steps.oxford = true). O Oxford não possui API, então a conclusão é auto-declarada pelo candidato."}),e.jsx(ge,{title:"VÃdeos Analisados",value:t?"...":u.videosAnalyzed.toLocaleString("pt-BR"),sub:`${u.totalSubmitted>0?Math.round(u.videosAnalyzed/u.totalSubmitted*100):0}% analisados`,icon:ka,color:"bg-violet-100 text-violet-600",tooltip:"VÃdeos que foram processados pela IA e receberam notas nas 4 competências (autoestima, comunicação, garra, mentalidade). Status 'completed' na tabela video_ai_metadata."})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"bg-card rounded-xl border border-border p-5",children:[e.jsxs("h3",{className:"text-sm font-semibold text-foreground mb-1 flex items-center gap-1.5",children:["Distribuição de Notas â Mindsight",e.jsx(ee,{text:"Histograma mostrando a frequência de candidatos em cada faixa de nota primária do Mindsight. As notas são divididas em 12 intervalos iguais entre a menor e a maior nota da base. Cada barra representa quantos candidatos pontuaram naquele intervalo."})]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"Histograma das notas primárias"}),r.length>0?e.jsx(Oe,{width:"100%",height:250,children:e.jsxs(sa,{data:r,children:[e.jsx(ta,{strokeDasharray:"3 3",stroke:"hsl(var(--border))"}),e.jsx(ra,{dataKey:"range",tick:{fontSize:10}}),e.jsx(oa,{tick:{fontSize:10}}),e.jsx(ia,{...Wa,formatter:a=>[`${a} candidatos`,"Quantidade"]}),e.jsx(na,{dataKey:"count",fill:"hsl(var(--primary))",radius:[4,4,0,0]})]})}):e.jsx(we,{})]}),e.jsxs("div",{className:"bg-card rounded-xl border border-border p-5",children:[e.jsxs("h3",{className:"text-sm font-semibold text-foreground mb-1 flex items-center gap-1.5",children:["Desempenho por Série",e.jsx(ee,{text:"Box Plot (diagrama de caixa) comparando as notas Mindsight entre séries. A caixa mostra o IQR (Intervalo Interquartil, de Q1 a Q3), que contém 50% dos dados centrais. A linha azul é a mediana e o ponto vermelho é a média. Os bigodes (whiskers) vão até o valor mÃnimo e máximo."})]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"Distribuição de notas Mindsight por série"}),e.jsx(as,{data:x})]}),e.jsxs("div",{className:"bg-card rounded-xl border border-border p-5",children:[e.jsxs("h3",{className:"text-sm font-semibold text-foreground mb-1 flex items-center gap-1.5",children:["Competências do VÃdeo (IA)",e.jsx(ee,{text:"Gráfico radar mostrando a média das 4 competências avaliadas pela IA nos vÃdeos dos candidatos: Autoestima, Comunicação, Garra e Mentalidade. Cada eixo representa a média aritmética das notas daquela competência entre todos os vÃdeos analisados. Quanto maior a área, melhor o desempenho geral."})]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"Médias das 4 dimensões avaliadas"}),v.some(a=>a.value>0)?e.jsx(Oe,{width:"100%",height:280,children:e.jsxs(la,{data:v,children:[e.jsx(da,{stroke:"hsl(var(--border))"}),e.jsx(ca,{dataKey:"dimension",tick:{fontSize:12}}),e.jsx(ma,{tick:{fontSize:10}}),e.jsx(ua,{name:"Média",dataKey:"value",stroke:"hsl(var(--primary))",fill:"hsl(var(--primary))",fillOpacity:.3})]})}):e.jsx(we,{message:"Nenhum vÃdeo analisado ainda"})]}),e.jsxs("div",{className:"bg-card rounded-xl border border-border p-5",children:[e.jsxs("h3",{className:"text-sm font-semibold text-foreground mb-1 flex items-center gap-1.5",children:["Funil de Conclusão",e.jsx(ee,{text:"Mostra a taxa de conclusão de cada etapa do percurso. A primeira barra (Inscrição enviada) representa 100% e as demais mostram quantos candidatos concluÃram ca
6da etapa subsequente. 'Percurso completo' indica candidatos com todas as sub-etapas marcadas como concluÃdas (mindsight, oxford, formulários, questionários e vÃdeo)."})]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"Progresso dos candidatos por etapa"}),q.length>0?e.jsx("div",{className:"space-y-3",children:q.map((a,m)=>e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-foreground",children:a.label}),e.jsxs("span",{className:"font-semibold text-foreground",children:[a.value.toLocaleString("pt-BR")," ",e.jsxs("span",{className:"text-muted-foreground font-normal",children:["(",a.pct,"%)"]})]})]}),e.jsx("div",{className:"h-3 bg-muted rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${a.pct}%`,background:`hsl(var(--primary) / ${1-m*.15})`}})})]},a.label))}):e.jsx(we,{})]})]}),e.jsxs("div",{className:"bg-card rounded-xl border border-border p-5",children:[e.jsxs("h3",{className:"text-sm font-semibold text-foreground mb-1 flex items-center gap-1.5",children:["EstatÃsticas Descritivas",e.jsx(ee,{text:"Tabela de estatÃsticas descritivas calculadas sobre as notas de cada tipo de avaliação. Todas as métricas são calculadas apenas sobre candidatos que possuem nota registrada para aquela avaliação."})]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"Resumo estatÃstico por tipo de avaliação"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(Ae,{children:[e.jsx(ke,{children:e.jsxs(Y,{children:[e.jsx(b,{label:"Avaliação",tooltip:"Tipo de teste ou avaliação analisada."}),e.jsx(b,{label:"N",tooltip:"Tamanho da amostra: total de candidatos com nota registrada para esta avaliação."}),e.jsx(b,{label:"Média",tooltip:"Média aritmética: soma de todas as notas dividida por N. Fórmula: Σ(xi) / N. SensÃvel a valores extremos (outliers)."}),e.jsx(b,{label:"Mediana",tooltip:"Valor central quando as notas são ordenadas. 50% dos candidatos pontuaram abaixo e 50% acima. Mais robusta que a média para dados com outliers."}),e.jsx(b,{label:"Moda",tooltip:"Nota mais frequente na distribuição (arredondada a 2 casas decimais). Se houver empate, mostra uma delas."}),e.jsx(b,{label:"Desvio Padrão",tooltip:"Mede a dispersão das notas em relação à média. Quanto maior, mais espalhadas estão as notas. Fórmula: â(Σ(xi - média)² / N). Um DP baixo indica notas próximas da média."}),e.jsx(b,{label:"MÃn",tooltip:"Menor nota registrada na amostra."}),e.jsx(b,{label:"Máx",tooltip:"Maior nota registrada na amostra."}),e.jsx(b,{label:"P25",tooltip:"Percentil 25 (1º Quartil): 25% dos candidatos pontuaram abaixo deste valor. Marca o inÃcio do IQR."}),e.jsx(b,{label:"P75",tooltip:"Percentil 75 (3º Quartil): 75% dos candidatos pontuaram abaixo deste valor. Marca o fim do IQR."})]})}),e.jsxs(Pe,{children:[_.map(a=>e.jsxs(Y,{children:[e.jsx(p,{className:"font-medium",children:a.label}),e.jsx(p,{className:"tabular-nums",children:a.count}),e.jsx(p,{className:"tabular-nums",children:a.mean.toFixed(2)}),e.jsx(p,{className:"tabular-nums",children:a.median.toFixed(2)}),e.jsx(p,{className:"tabular-nums",children:a.mode.toFixed(2)}),e.jsx(p,{className:"tabular-nums",children:a.stdDev.toFixed(2)}),e.jsx(p,{className:"tabular-nums",children:a.min.toFixed(2)}),e.jsx(p,{className:"tabular-nums",children:a.max.toFixed(2)}),e.jsx(p,{className:"tabular-nums",children:a.p25.toFixed(2)}),e.jsx(p,{className:"tabular-nums",children:a.p75.toFixed(2)})]},a.label)),_.length===0&&e.jsx(Y,{children:e.jsx(p,{colSpan:10,className:"text-center text-muted-foreground py-8",children:"Sem dados"})})]})]})})]}),e.jsxs("div",{className:"bg-card rounded-xl border border-border p-5 space-y-4",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row justify-between gap-3",children:[e.jsxs("div",{children:[e.jsxs("h3",{className:"text-sm font-semibold text-foreground flex items-center gap-1.5",children:["CRM de Desempenho",e.jsx(ee,{text:"Tabela com a visão individual de desempenho de cada candidato inscrito. Mostra as notas do Mindsight, conclusão do Oxford, nota do vÃdeo e a comparação com a média geral. Clique em um candidato para ver detalhes completos."})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Visão individual de cada candidato"})]}),e.jsxs("div",{className:"flex flex-wrap gap-2 items-center",children:[e.jsxs("div",{className:"relative",children:[e.jsx(Ue,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(be,{placeholder:"Buscar por nome ou email...",value:N,onChange:a=>{F(a.target.value),V(1)},className:"pl-9 w-56 h-9 text-sm"})]}),e.jsxs(je,{value:O,onValueChange:a=>{G(a),V(1)},children:[e.jsx(ve,{className:"w-36 h-9 text-sm",children:e.jsx(Ne,{})}),e.jsx(Se,{children:Xa.map(a=>e.jsx(le,{value:a.value,children:a.label},a.value))})]}),e.jsxs(je,{value:k,onValueChange:a=>{C(a),V(1)},children:[e.jsx(ve,{className:"w-40 h-9 text-sm",children:e.jsx(Ne,{})}),e.jsx(Se,{children:Ya.map(a=>e.jsx(le,{value:a.value,children:a.label},a.value))})]}),e.jsxs(je,{value:w,onValueChange:a=>{H(a),V(1)},children:[e.jsx(ve,{className:"w-36 h-9 text-sm",children:e.jsx(Ne,{})}),e.jsx(Se,{children:Ja.map(a=>e.jsx(le,{value:a.value,children:a.label},a.value))})]})]})]}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(Ae,{children:[e.jsx(ke,{children:e.jsxs(Y,{children:[e.jsx(X,{label:"Nome",col:"full_name",tooltip:"Nome completo do candidato, conforme informado na inscrição."}),e.jsx(X,{label:"Série",col:"current_grade",tooltip:"Série escolar atual do candidato (7º, 8º ou 9º ano)."}),e.jsx(b,{label:"Escola",tooltip:"Nome da escola do candidato."}
6),e.jsx(b,{label:"Cidade/UF",tooltip:"Cidade e estado da escola do candidato."}),e.jsx(X,{label:"Mindsight",col:"mindsight_primary",tooltip:"Nota primária do teste de raciocÃnio lógico Mindsight. Obtida via API da Mindsight após conclusão do teste pelo candidato."}),e.jsx(b,{label:"Classificação",tooltip:"Classificação qualitativa atribuÃda pela Mindsight com base na nota primária (ex: alto, médio, baixo)."}),e.jsx(X,{label:"Oxford",col:"oxford_completed",tooltip:"Se o candidato marcou como concluÃdo o jogo de raciocÃnio lógico Oxford. Auto-declarado pelo candidato após finalizar o jogo."}),e.jsx(X,{label:"VÃdeo",col:"video_score",tooltip:"Nota geral do vÃdeo Ismart, calculada pela IA como média ponderada das 4 competências: autoestima, comunicação, garra e mentalidade."}),e.jsx(b,{label:"Autoestima",tooltip:"Nota Preparo para autoestima."}),e.jsx(b,{label:"Comunicação",tooltip:"Nota Preparo para comunicação."}),e.jsx(b,{label:"Garra",tooltip:"Nota Preparo para garra."}),e.jsx(b,{label:"Mentalidade",tooltip:"Nota Preparo para mentalidade."}),e.jsx(X,{label:"vs. Média",col:"vs_media_mindsight",tooltip:"Diferença entre a nota Mindsight deste candidato e a média geral da base. Verde (â) = acima da média, vermelho (â) = abaixo da média."})]})}),e.jsx(Pe,{children:t?Array.from({length:5}).map((a,m)=>e.jsx(Y,{children:Array.from({length:13}).map((c,l)=>e.jsx(p,{children:e.jsx("div",{className:"h-4 bg-muted animate-pulse rounded w-20"})},l))},m)):A.length===0?e.jsx(Y,{children:e.jsx(p,{colSpan:13,className:"text-center py-10 text-muted-foreground",children:"Nenhum candidato encontrado"})}):A.map(a=>e.jsxs(Y,{className:"cursor-pointer hover:bg-muted/50",onClick:()=>y(a.user_id),children:[e.jsx(p,{className:"font-medium max-w-[200px] truncate",children:a.full_name||"â"}),e.jsx(p,{children:a.current_grade?`${a.current_grade}º`:"â"}),e.jsx(p,{className:"max-w-[160px] truncate",children:a.school_name||"â"}),e.jsxs(p,{className:"whitespace-nowrap",children:[a.school_city||"â","/",a.address_state||"â"]}),e.jsx(p,{className:"tabular-nums font-semibold",children:a.mindsight_primary!=null?a.mindsight_primary.toFixed(1):"â"}),e.jsx(p,{children:a.mindsight_classification?e.jsx(de,{variant:"outline",className:"text-xs",children:a.mindsight_classification}):"â"}),e.jsx(p,{children:a.oxford_completed?e.jsx(de,{className:"bg-emerald-100 text-emerald-700 border-emerald-200",children:"â Sim"}):e.jsx(de,{variant:"outline",className:"text-muted-foreground",children:"Não"})}),e.jsx(p,{className:"tabular-nums",children:a.video_score!=null?a.video_score.toFixed(1):"â"}),e.jsx(p,{className:"tabular-nums text-xs",children:a.video_autoestima!=null?a.video_autoestima.toFixed(1):"â"}),e.jsx(p,{className:"tabular-nums text-xs",children:a.video_comunicacao!=null?a.video_comunicacao.toFixed(1):"â"}),e.jsx(p,{className:"tabular-nums text-xs",children:a.video_garra!=null?a.video_garra.toFixed(1):"â"}),e.jsx(p,{className:"tabular-nums text-xs",children:a.video_mentalidade!=null?a.video_mentalidade.toFixed(1):"â"}),e.jsx(p,{children:e.jsx(es,{diff:a.vs_media_mindsight})})]},a.user_id))})]})}),n>1&&e.jsxs("div",{className:"flex items-center justify-between pt-2",children:[e.jsxs("p",{className:"text-sm text-muted-foreground",children:[Z.length.toLocaleString("pt-BR")," candidatos ⢠Página ",P," de ",n]}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx(B,{variant:"outline",size:"icon",className:"h-8 w-8",disabled:P<=1,onClick:()=>V(a=>a-1),children:e.jsx(Xe,{className:"w-4 h-4"})}),Array.from({length:Math.min(5,n)},(a,m)=>{let c;return n<=5||P<=3?c=m+1:P>=n-2?c=n-4+m:c=P-2+m,e.jsx(B,{variant:c===P?"default":"outline",size:"icon",className:"h-8 w-8",onClick:()=>V(c),children:c},c)}),e.jsx(B,{variant:"outline",size:"icon",className:"h-8 w-8",disabled:P>=n,onClick:()=>V(a=>a+1),children:e.jsx(Ye,{className:"w-4 h-4"})})]})]})]})]}),e.jsx(Be,{value:"preparo",children:e.jsx(Qa,{onOpenCandidateProfile:y})})]})]}),e.jsx(_a,{candidate:$,open:j,onClose:()=>{K(!1),J(null)}})]})}export{Ot 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.