{"version":3,"sources":["../src/types/comparator.ts"],"sourcesContent":["export type ComparisonType = 'school' | 'schoolYear';\n\nexport enum ComparatorTabValue {\n  KNOWLEDGE_AREAS = 'knowledge-areas',\n  CURRICULAR_COMPONENTS = 'curricular-components',\n  COMPETENCIES = 'competencies',\n  NATIONAL_AVERAGES = 'national-averages',\n}\n\nexport type ComparatorTabType = `${ComparatorTabValue}`;\n\nexport interface ComparisonItem {\n  id: string;\n  name: string;\n  color: string;\n}\n\nexport interface KnowledgeAreaData {\n  area: string;\n  values: { itemId: string; percentage: number }[];\n}\n\nexport interface CurricularComponentData {\n  component: string;\n  values: { itemId: string; percentage: number }[];\n}\n\nexport interface CompetencyData {\n  competency: string;\n  values: { itemId: string; percentage: number }[];\n}\n\nexport interface NationalAverageData {\n  itemId: string;\n  itemName: string;\n  simulatedProficiency: number;\n  publicAverage: number;\n  privateAverage: number;\n  details: {\n    languages: number;\n    humanities: number;\n    essay: number;\n    naturalSciences: number;\n    mathematics: number;\n  };\n  status: 'above' | 'below';\n}\n\nexport interface ComparatorData {\n  knowledgeAreas: KnowledgeAreaData[];\n  curricularComponents: CurricularComponentData[];\n  competencies: CompetencyData[];\n  nationalAverages: NationalAverageData[];\n}\n\n// API Response types\nexport interface AreaPerformance {\n  id: string;\n  name: string;\n  icon: string | null;\n  color: string | null;\n  percentage: number;\n  questionsTotal: number;\n  questionsCorrect: number;\n}\n\nexport interface KnowledgeAreasApiItem {\n  itemId: string;\n  itemName: string;\n  areas: AreaPerformance[];\n}\n\nexport interface CurricularComponentsApiItem {\n  itemId: string;\n  itemName: string;\n  subjects: AreaPerformance[];\n}\n\nexport interface CompetencyPerformance {\n  competencyNumber: number;\n  name: string;\n  averageScore: number;\n  averagePercentage: number;\n  essaysCount: number;\n  studentsCount: number;\n}\n\nexport interface CompetenciesApiItem {\n  itemId: string;\n  itemName: string;\n  competencies: CompetencyPerformance[];\n  totalEssays: number;\n  totalStudents: number;\n}\n\nexport interface NationalAverageAreaPerformance {\n  id: string;\n  name: string;\n  triScore: number;\n  questionsTotal: number;\n  questionsCorrect: number;\n}\n\nexport interface NationalAveragesApiItem {\n  itemId: string;\n  itemName: string;\n  overallTriScore: number;\n  areas: NationalAverageAreaPerformance[];\n  publicSchoolAverage: number;\n  privateSchoolAverage: number;\n  status: 'above' | 'below';\n}\n\n// API Client interface for dependency injection\nexport interface ComparatorApiClient {\n  post: <T>(url: string, data: unknown) => Promise<{ data: { data: T } }>;\n}\n\n// Store types\nexport interface ComparatorStoreState {\n  comparisonType: ComparisonType | null;\n  selectedItems: ComparisonItem[];\n  setComparisonType: (type: ComparisonType | null) => void;\n  setSelectedItems: (items: ComparisonItem[]) => void;\n  addItem: (item: ComparisonItem) => void;\n  removeItem: (itemId: string) => void;\n  clearSelection: () => void;\n}\n\n// Hook return type\nexport interface UseComparatorReturn {\n  data: ComparatorData;\n  loading: boolean;\n  error: string | null;\n  fetchData: (\n    ids: string[],\n    type: ComparisonType,\n    tab: ComparatorTabType\n  ) => Promise<void>;\n}\n\n// Labels for customization\nexport interface ComparatorLabels {\n  title: string;\n  selectComparison: string;\n  selectSchools: string;\n  selectSchoolYears: string;\n  schools: string;\n  schoolYears: string;\n  school: string;\n  schoolYear: string;\n  compareSchoolsDescription: string;\n  compareSchoolYearsDescription: string;\n  selectComparisonType: string;\n  noAccessMessage: string;\n  emptyStateDescriptionBoth: string;\n  emptyStateDescriptionSchools: string;\n  emptyStateDescriptionSchoolYears: string;\n  selectItemInstruction: string;\n  search: string;\n  maxLimitWarning: string;\n  confirm: string;\n  back: string;\n  filters: string;\n  knowledgeAreasTitle: string;\n  curricularComponentsTitle: string;\n  competenciesTitle: string;\n  nationalAveragesTitle: string;\n  simulatedProficiency: string;\n  publicSchoolAverage: string;\n  privateSchoolAverage: string;\n  aboveAverage: string;\n  belowAverage: string;\n  ofSelected: string;\n}\n\nexport const DEFAULT_COMPARATOR_LABELS: ComparatorLabels = {\n  title: 'Comparador',\n  selectComparison: 'Selecionar comparação',\n  selectSchools: 'Selecionar escolas',\n  selectSchoolYears: 'Selecionar turmas',\n  schools: 'Escolas',\n  schoolYears: 'Turmas',\n  school: 'escola',\n  schoolYear: 'turma',\n  compareSchoolsDescription: 'Compare o desempenho entre escolas',\n  compareSchoolYearsDescription: 'Compare o desempenho entre turmas',\n  selectComparisonType: 'Selecione o tipo de comparação.',\n  noAccessMessage:\n    'Você precisa ter acesso a mais de uma escola ou turma para usar o comparador.',\n  emptyStateDescriptionBoth:\n    'Selecione escolas ou turmas para visualizar a comparação',\n  emptyStateDescriptionSchools:\n    'Selecione escolas para visualizar a comparação',\n  emptyStateDescriptionSchoolYears:\n    'Selecione turmas para visualizar a comparação',\n  selectItemInstruction: 'Selecione uma {item} para comparar.',\n  search: 'Buscar',\n  maxLimitWarning: 'Limite máximo de 5 itens atingido',\n  confirm: 'Confirmar',\n  back: 'Voltar',\n  filters: 'Filtros',\n  knowledgeAreasTitle: 'Proficiência média das escolas por área do Enem',\n  curricularComponentsTitle: 'Proficiência média por componente curricular',\n  competenciesTitle: 'Proficiência média por competência',\n  nationalAveragesTitle:\n    'Proficiência média dos simulados comparada com dados oficiais do INEP',\n  simulatedProficiency: 'Proficiência Simulados',\n  publicSchoolAverage: 'Média Escolas Públicas (INEP)',\n  privateSchoolAverage: 'Média Escolas Privadas (INEP)',\n  aboveAverage: 'Esta escola está acima da média nacional.',\n  belowAverage: 'Esta escola está abaixo da média nacional.',\n  ofSelected: 'selecionadas',\n};\n\n// Tab configuration\nexport interface ComparatorTab {\n  value: ComparatorTabType;\n  label: string;\n}\n\nexport const DEFAULT_COMPARATOR_TABS: ComparatorTab[] = [\n  { value: ComparatorTabValue.KNOWLEDGE_AREAS, label: 'Áreas do conhecimento' },\n  {\n    value: ComparatorTabValue.CURRICULAR_COMPONENTS,\n    label: 'Componentes curriculares',\n  },\n  { value: ComparatorTabValue.COMPETENCIES, label: 'Competências' },\n  {\n    value: ComparatorTabValue.NATIONAL_AVERAGES,\n    label: 'Médias Nacionais ENEM',\n  },\n];\n\n// Chart colors\nexport const COMPARATOR_CHART_COLORS = [\n  '#1E40AF',\n  '#F59E0B',\n  '#10B981',\n  '#EF4444',\n  '#8B5CF6',\n];\n"],"mappings":";AAEO,IAAK,qBAAL,kBAAKA,wBAAL;AACL,EAAAA,oBAAA,qBAAkB;AAClB,EAAAA,oBAAA,2BAAwB;AACxB,EAAAA,oBAAA,kBAAe;AACf,EAAAA,oBAAA,uBAAoB;AAJV,SAAAA;AAAA,GAAA;AA8KL,IAAM,4BAA8C;AAAA,EACzD,OAAO;AAAA,EACP,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,SAAS;AAAA,EACT,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,2BAA2B;AAAA,EAC3B,+BAA+B;AAAA,EAC/B,sBAAsB;AAAA,EACtB,iBACE;AAAA,EACF,2BACE;AAAA,EACF,8BACE;AAAA,EACF,kCACE;AAAA,EACF,uBAAuB;AAAA,EACvB,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AAAA,EACT,qBAAqB;AAAA,EACrB,2BAA2B;AAAA,EAC3B,mBAAmB;AAAA,EACnB,uBACE;AAAA,EACF,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB,cAAc;AAAA,EACd,cAAc;AAAA,EACd,YAAY;AACd;AAQO,IAAM,0BAA2C;AAAA,EACtD,EAAE,OAAO,yCAAoC,OAAO,2BAAwB;AAAA,EAC5E;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,EAAE,OAAO,mCAAiC,OAAO,kBAAe;AAAA,EAChE;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACF;AAGO,IAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":["ComparatorTabValue"]}