UNPKG

analytica-frontend-lib

Version:

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

131 lines (122 loc) 6.13 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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/utils/filterHelpers.ts var getSchoolOptionsFromUserData = (userData) => { if (!_optionalChain([userData, 'optionalAccess', _ => _.userInstitutions])) { return []; } const schoolsMap = /* @__PURE__ */ new Map(); for (const userInst of userData.userInstitutions) { if (_optionalChain([userInst, 'access', _2 => _2.school, 'optionalAccess', _3 => _3.id]) && _optionalChain([userInst, 'access', _4 => _4.school, 'optionalAccess', _5 => _5.name])) { schoolsMap.set(userInst.school.id, { id: userInst.school.id, name: userInst.school.name }); } } return Array.from(schoolsMap.values()).sort( (a, b) => a.name.localeCompare(b.name, "pt-BR") ); }; var getSubjectOptionsFromUserData = (userData) => { if (!_optionalChain([userData, 'optionalAccess', _6 => _6.subTeacherTopicClasses])) { return []; } const subjectsMap = /* @__PURE__ */ new Map(); for (const subTeacher of userData.subTeacherTopicClasses) { if (_optionalChain([subTeacher, 'access', _7 => _7.subject, 'optionalAccess', _8 => _8.id]) && _optionalChain([subTeacher, 'access', _9 => _9.subject, 'optionalAccess', _10 => _10.name])) { subjectsMap.set(subTeacher.subject.id, { id: subTeacher.subject.id, name: subTeacher.subject.name }); } } return Array.from(subjectsMap.values()).sort( (a, b) => a.name.localeCompare(b.name, "pt-BR") ); }; var getSchoolYearOptionsFromUserData = (userData) => { if (!_optionalChain([userData, 'optionalAccess', _11 => _11.userInstitutions])) { return []; } const schoolYearsMap = /* @__PURE__ */ new Map(); for (const userInst of userData.userInstitutions) { if (_optionalChain([userInst, 'access', _12 => _12.schoolYear, 'optionalAccess', _13 => _13.id]) && _optionalChain([userInst, 'access', _14 => _14.schoolYear, 'optionalAccess', _15 => _15.name])) { schoolYearsMap.set(userInst.schoolYear.id, { id: userInst.schoolYear.id, name: userInst.schoolYear.name }); } } return Array.from(schoolYearsMap.values()).sort( (a, b) => a.name.localeCompare(b.name, "pt-BR") ); }; var getClassOptionsFromUserData = (userData) => { if (!userData) { return []; } const classesMap = /* @__PURE__ */ new Map(); if (userData.userInstitutions) { for (const userInst of userData.userInstitutions) { if (_optionalChain([userInst, 'access', _16 => _16.class, 'optionalAccess', _17 => _17.id]) && _optionalChain([userInst, 'access', _18 => _18.class, 'optionalAccess', _19 => _19.name])) { classesMap.set(userInst.class.id, { id: userInst.class.id, name: userInst.class.name }); } } } if (userData.subTeacherTopicClasses) { for (const subTeacher of userData.subTeacherTopicClasses) { if (_optionalChain([subTeacher, 'access', _20 => _20.class, 'optionalAccess', _21 => _21.id]) && _optionalChain([subTeacher, 'access', _22 => _22.class, 'optionalAccess', _23 => _23.name])) { classesMap.set(subTeacher.class.id, { id: subTeacher.class.id, name: subTeacher.class.name }); } } } return Array.from(classesMap.values()).sort( (a, b) => a.name.localeCompare(b.name, "pt-BR") ); }; var buildUserFilterData = (userData) => ({ schools: getSchoolOptionsFromUserData(userData), subjects: getSubjectOptionsFromUserData(userData) }); var mergeFilterOptions = (base, extra) => { if (extra.length === 0) return base; const baseIds = new Set(base.map((item) => item.id)); const hasNew = extra.some((item) => !baseIds.has(item.id)); if (!hasNew) return base; const map = new Map(base.map((item) => [item.id, item.name])); extra.forEach((item) => { if (!map.has(item.id)) map.set(item.id, item.name); }); return Array.from(map.entries()).map(([id, name]) => ({ id, name })).sort((a, b) => a.name.localeCompare(b.name, "pt-BR")); }; var extractBreakdownFilterOptions = (items) => { const schoolsMap = /* @__PURE__ */ new Map(); const classesMap = /* @__PURE__ */ new Map(); const subjectsMap = /* @__PURE__ */ new Map(); const schoolYearsMap = /* @__PURE__ */ new Map(); const setIfPresent = (map, ref) => { if (_optionalChain([ref, 'optionalAccess', _24 => _24.id]) && _optionalChain([ref, 'optionalAccess', _25 => _25.name])) map.set(ref.id, ref.name); }; for (const item of items) { setIfPresent(subjectsMap, item.subject); _optionalChain([item, 'access', _26 => _26.breakdown, 'optionalAccess', _27 => _27.forEach, 'call', _28 => _28((b) => { setIfPresent(schoolsMap, b.school); setIfPresent(classesMap, b.class); setIfPresent(schoolYearsMap, b.schoolYear); })]); } const toOptions = (map) => Array.from(map.entries()).map(([id, name]) => ({ id, name })).sort((a, b) => a.name.localeCompare(b.name, "pt-BR")); return { schools: toOptions(schoolsMap), classes: toOptions(classesMap), subjects: toOptions(subjectsMap), schoolYears: toOptions(schoolYearsMap) }; }; exports.getSchoolOptionsFromUserData = getSchoolOptionsFromUserData; exports.getSubjectOptionsFromUserData = getSubjectOptionsFromUserData; exports.getSchoolYearOptionsFromUserData = getSchoolYearOptionsFromUserData; exports.getClassOptionsFromUserData = getClassOptionsFromUserData; exports.buildUserFilterData = buildUserFilterData; exports.mergeFilterOptions = mergeFilterOptions; exports.extractBreakdownFilterOptions = extractBreakdownFilterOptions; //# sourceMappingURL=chunk-JLOAEKEJ.js.map