UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

140 lines (136 loc) 6.39 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/hooks/useComparator.ts var _react = require('react'); function transformKnowledgeAreas(apiData) { if (apiData.length === 0) return []; const areaNames = _nullishCoalesce(_optionalChain([apiData, 'access', _ => _[0], 'optionalAccess', _2 => _2.areas, 'access', _3 => _3.map, 'call', _4 => _4((a) => a.name)]), () => ( [])); return areaNames.map((areaName) => ({ area: areaName, values: apiData.map((item) => { const area = item.areas.find((a) => a.name === areaName); return { itemId: item.itemId, percentage: _nullishCoalesce(_optionalChain([area, 'optionalAccess', _5 => _5.percentage]), () => ( 0)) }; }) })); } function transformCurricularComponents(apiData) { if (apiData.length === 0) return []; const subjectNames = _nullishCoalesce(_optionalChain([apiData, 'access', _6 => _6[0], 'optionalAccess', _7 => _7.subjects, 'access', _8 => _8.map, 'call', _9 => _9((s) => s.name)]), () => ( [])); return subjectNames.map((subjectName) => ({ component: subjectName, values: apiData.map((item) => { const subject = item.subjects.find((s) => s.name === subjectName); return { itemId: item.itemId, percentage: _nullishCoalesce(_optionalChain([subject, 'optionalAccess', _10 => _10.percentage]), () => ( 0)) }; }) })); } function transformCompetencies(apiData) { if (apiData.length === 0) return []; const competencyNumbers = apiData[0].competencies.map((c) => c.competencyNumber).sort((a, b) => a - b); return competencyNumbers.map((num) => ({ competency: `Compet\xEAncia ${num}`, values: apiData.map((item) => { const comp = item.competencies.find((c) => c.competencyNumber === num); return { itemId: item.itemId, percentage: _nullishCoalesce(_optionalChain([comp, 'optionalAccess', _11 => _11.averagePercentage]), () => ( 0)) }; }) })); } function transformNationalAverages(apiData) { return apiData.map((item) => { const findArea = (name) => item.areas.find((a) => a.name.toLowerCase().includes(name.toLowerCase())); const languages = findArea("linguagens"); const humanities = findArea("humanas"); const essay = _nullishCoalesce(findArea("reda\xE7\xE3o"), () => ( findArea("essay"))); const naturalSciences = findArea("natureza"); const mathematics = findArea("matem\xE1tica"); return { itemId: item.itemId, itemName: item.itemName, simulatedProficiency: item.overallTriScore, publicAverage: item.publicSchoolAverage, privateAverage: item.privateSchoolAverage, details: { languages: _nullishCoalesce(_optionalChain([languages, 'optionalAccess', _12 => _12.triScore]), () => ( 0)), humanities: _nullishCoalesce(_optionalChain([humanities, 'optionalAccess', _13 => _13.triScore]), () => ( 0)), essay: _nullishCoalesce(_optionalChain([essay, 'optionalAccess', _14 => _14.triScore]), () => ( 0)), naturalSciences: _nullishCoalesce(_optionalChain([naturalSciences, 'optionalAccess', _15 => _15.triScore]), () => ( 0)), mathematics: _nullishCoalesce(_optionalChain([mathematics, 'optionalAccess', _16 => _16.triScore]), () => ( 0)) }, status: item.status }; }); } var COMPARATOR_ENDPOINT = "/comparator"; function createUseComparator(config) { const { apiClient, endpoint = COMPARATOR_ENDPOINT, defaultPeriod = "1_MONTH" /* ONE_MONTH */ } = config; return function useComparator() { const [data, setData] = _react.useState.call(void 0, { knowledgeAreas: [], curricularComponents: [], competencies: [], nationalAverages: [] }); const [loading, setLoading] = _react.useState.call(void 0, false); const [error, setError] = _react.useState.call(void 0, null); const fetchData = _react.useCallback.call(void 0, async (ids, type, tab) => { setLoading(true); setError(null); try { const body = type === "school" ? { type: tab, schoolIds: ids, period: defaultPeriod } : { type: tab, schoolYearIds: ids, period: defaultPeriod }; const response = await apiClient.post(endpoint, body); const apiData = response.data.data; setData((prev) => { const newData = { ...prev }; switch (tab) { case "knowledge-areas" /* KNOWLEDGE_AREAS */: newData.knowledgeAreas = transformKnowledgeAreas( apiData ); break; case "curricular-components" /* CURRICULAR_COMPONENTS */: newData.curricularComponents = transformCurricularComponents( apiData ); break; case "competencies" /* COMPETENCIES */: newData.competencies = transformCompetencies( apiData ); break; case "national-averages" /* NATIONAL_AVERAGES */: newData.nationalAverages = transformNationalAverages( apiData ); break; } return newData; }); } catch (err) { console.error("Erro ao buscar dados do comparador:", err); setError("Erro ao carregar dados de compara\xE7\xE3o"); } finally { setLoading(false); } }, [] ); return { data, loading, error, fetchData }; }; } function createComparatorHook(config) { return createUseComparator(config); } exports.createUseComparator = createUseComparator; exports.createComparatorHook = createComparatorHook; //# sourceMappingURL=chunk-LDLEZQ3O.js.map