import React, { useState, useEffect } from 'react'; import { Link } from 'react-router-dom'; import { DocumentArrowDownIcon, EyeIcon } from '@heroicons/react/24/outline'; interface ParametroCritico { label: string; count: number; } interface DimensionCritica { name: string; count: number; } interface RutInfo { rut: string; razonSocial: string; fecha: string; _id: string; } interface DeepAnalysisData { dimensionesCriticas: DimensionCritica[]; parametrosCriticos: ParametroCritico[]; rutsByParam: Record; } interface Props { data: DeepAnalysisData | null; loadingAnalysis: boolean; loadingExcel: boolean; onAnalyze: () => void; onExportExcel: () => void; } const DeepAnalysisPanel: React.FC = ({ data, loadingAnalysis, loadingExcel, onAnalyze, onExportExcel }) => { const [selectedParams, setSelectedParams] = useState([]); const maxCount = data ? Math.max(...data.parametrosCriticos.map(p => p.count), 1) : 1; useEffect(() => { if (data && selectedParams.length > 0) { const validParams = selectedParams.filter(p => data.rutsByParam[p]); if (validParams.length !== selectedParams.length) { setSelectedParams(validParams); } } }, [data, selectedParams]); const toggleParam = (label: string) => { setSelectedParams(prev => prev.includes(label) ? prev.filter(p => p !== label) : [...prev, label] ); }; return (

Análisis Profundo

{data && data.parametrosCriticos.length > 0 && ( <>
{/* Dimensiones Críticas - solo parámetros severo/Crítico con nombre y conteo */}

Parametros severos

Crítico
    {data.dimensionesCriticas.map((dim, i) => (
  • {dim.name} 0 ? 'text-red-600 dark:text-red-400' : 'text-gray-400 dark:text-gray-500'}`}> {dim.count}
  • ))}
{/* Parámetros Críticos - gráfico de barras */}

Recurrencia por parámetro

Crítico / Alto
{data.parametrosCriticos.map((param, i) => (
toggleParam(param.label)} className="w-4 h-4 text-primary-600 border-gray-300 rounded focus:ring-primary-500 flex-shrink-0" /> {param.label}
{param.count}
))}
{selectedParams.length > 0 && (

RUTs por Parámetro Seleccionado ({selectedParams.length})

{selectedParams.flatMap(paramLabel => (data.rutsByParam[paramLabel] || []).map((r, idx) => ( )) )}
Parámetro RUT Razón Social Fecha Acciones
{paramLabel} {r.rut} {r.razonSocial} {r.fecha ? new Date(r.fecha).toLocaleDateString('es-CL') : '-'} {r._id && ( Ver Detalle )}
)} )} {data && data.parametrosCriticos.length === 0 && (

No se encontraron parámetros críticos o altos.

)}
); }; export default DeepAnalysisPanel;