UNPKG

analytica-frontend-lib

Version:

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

195 lines (188 loc) 7 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/utils/utils.ts var utils_exports = {}; __export(utils_exports, { areFiltersEqual: () => areFiltersEqual, cn: () => cn, formatDateToBrazilian: () => formatDateToBrazilian, formatQuestionNumbers: () => formatQuestionNumbers, formatTimeSpent: () => formatTimeSpent, getSelectedIdsFromCategories: () => getSelectedIdsFromCategories, getStatusBadgeConfig: () => getStatusBadgeConfig, getSubjectColorWithOpacity: () => getSubjectColorWithOpacity, mapQuestionTypeToEnum: () => mapQuestionTypeToEnum, mapQuestionTypeToEnumRequired: () => mapQuestionTypeToEnumRequired, syncDropdownState: () => syncDropdownState, toggleArrayItem: () => toggleArrayItem, toggleSingleValue: () => toggleSingleValue }); module.exports = __toCommonJS(utils_exports); var import_clsx = require("clsx"); var import_tailwind_merge = require("tailwind-merge"); // src/utils/dropdown.ts var syncDropdownState = (open, isActive, setActiveStates, key) => { if (!open && isActive) { setActiveStates((prev) => ({ ...prev, [key]: false })); } }; // src/utils/activityFilters.ts function getSelectedIdsFromCategories(categories, keys) { const result = {}; for (const [outputKey, categoryKey] of Object.entries(keys)) { const category = categories.find((c) => c.key === categoryKey); result[outputKey] = category?.selectedIds || []; } return result; } function toggleArrayItem(array, item) { return array.includes(item) ? array.filter((i) => i !== item) : [...array, item]; } function toggleSingleValue(currentValue, newValue) { return currentValue === newValue ? null : newValue; } function arraysEqual(a, b, comparator) { if (a.length !== b.length) return false; if (comparator) { const sortedA2 = [...a].sort(comparator); const sortedB2 = [...b].sort(comparator); return sortedA2.every((val, index) => val === sortedB2[index]); } const sortedA = [...a].sort((x, y) => String(x).localeCompare(String(y))); const sortedB = [...b].sort((x, y) => String(x).localeCompare(String(y))); return sortedA.every((val, index) => val === sortedB[index]); } function areFiltersEqual(filters1, filters2) { if (filters1 === filters2) return true; if (!filters1 || !filters2) return false; return arraysEqual(filters1.types, filters2.types) && arraysEqual(filters1.bankIds, filters2.bankIds) && arraysEqual(filters1.yearIds, filters2.yearIds) && arraysEqual(filters1.knowledgeIds, filters2.knowledgeIds) && arraysEqual(filters1.topicIds, filters2.topicIds) && arraysEqual(filters1.subtopicIds, filters2.subtopicIds) && arraysEqual(filters1.contentIds, filters2.contentIds); } // src/utils/questionTypeUtils.ts function mapQuestionTypeToEnum(type, fallback) { const upperType = type.toUpperCase(); const typeMap = { ALTERNATIVA: "ALTERNATIVA" /* ALTERNATIVA */, DISSERTATIVA: "DISSERTATIVA" /* DISSERTATIVA */, MULTIPLA_ESCOLHA: "MULTIPLA_ESCOLHA" /* MULTIPLA_ESCOLHA */, VERDADEIRO_FALSO: "VERDADEIRO_FALSO" /* VERDADEIRO_FALSO */, IMAGEM: "IMAGEM" /* IMAGEM */, LIGAR_PONTOS: "LIGAR_PONTOS" /* LIGAR_PONTOS */, PREENCHER: "PREENCHER" /* PREENCHER */ }; return typeMap[upperType] ?? fallback ?? null; } function mapQuestionTypeToEnumRequired(type, fallback = "ALTERNATIVA" /* ALTERNATIVA */) { return mapQuestionTypeToEnum(type, fallback) ?? fallback; } // src/types/activityDetails.ts var STUDENT_ACTIVITY_STATUS = { CONCLUIDO: "CONCLUIDO", AGUARDANDO_CORRECAO: "AGUARDANDO_CORRECAO", AGUARDANDO_RESPOSTA: "AGUARDANDO_RESPOSTA", NAO_ENTREGUE: "NAO_ENTREGUE" }; // src/utils/activityDetailsUtils.ts var getStatusBadgeConfig = (status) => { const configs = { [STUDENT_ACTIVITY_STATUS.CONCLUIDO]: { label: "Conclu\xEDdo", bgColor: "bg-green-50", textColor: "text-green-800" }, [STUDENT_ACTIVITY_STATUS.AGUARDANDO_CORRECAO]: { label: "Aguardando Corre\xE7\xE3o", bgColor: "bg-yellow-50", textColor: "text-yellow-800" }, [STUDENT_ACTIVITY_STATUS.AGUARDANDO_RESPOSTA]: { label: "Aguardando Resposta", bgColor: "bg-blue-50", textColor: "text-blue-800" }, [STUDENT_ACTIVITY_STATUS.NAO_ENTREGUE]: { label: "N\xE3o Entregue", bgColor: "bg-red-50", textColor: "text-red-800" }, default: { label: "Desconhecido", bgColor: "bg-gray-50", textColor: "text-gray-800" } }; return configs[status] ?? configs.default; }; var formatTimeSpent = (seconds) => { const hours = Math.floor(seconds / 3600); const minutes = Math.floor(seconds % 3600 / 60); const secs = seconds % 60; return `${String(hours).padStart(2, "0")}:${String(minutes).padStart(2, "0")}:${String(secs).padStart(2, "0")}`; }; var formatQuestionNumbers = (numbers) => { if (numbers.length === 0) return "-"; return numbers.map((n) => String(n + 1).padStart(2, "0")).join(", "); }; var formatDateToBrazilian = (dateString) => { const date = new Date(dateString); const day = String(date.getUTCDate()).padStart(2, "0"); const month = String(date.getUTCMonth() + 1).padStart(2, "0"); const year = date.getUTCFullYear(); return `${day}/${month}/${year}`; }; // src/utils/utils.ts function cn(...inputs) { return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs)); } function getSubjectColorWithOpacity(hexColor, isDark) { if (!hexColor) return void 0; let color = hexColor.replace(/^#/, "").toLowerCase(); if (isDark) { if (color.length === 8) { color = color.slice(0, 6); } return `#${color}`; } else { let resultColor; if (color.length === 6) { resultColor = `#${color}4d`; } else if (color.length === 8) { resultColor = `#${color}`; } else { resultColor = `#${color}`; } return resultColor; } } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { areFiltersEqual, cn, formatDateToBrazilian, formatQuestionNumbers, formatTimeSpent, getSelectedIdsFromCategories, getStatusBadgeConfig, getSubjectColorWithOpacity, mapQuestionTypeToEnum, mapQuestionTypeToEnumRequired, syncDropdownState, toggleArrayItem, toggleSingleValue }); //# sourceMappingURL=index.js.map