// SIMULADOR LAUNCHER β carga HTML en iframe, gestiona lΓmite de intentos y guarda resultados
window.SimuladorLauncher = function SimuladorLauncher({ navigate, store, pruebaId, modo }) {
const PRUEBAS = store.pruebas || window.SD_SEED.PRUEBAS;
const prueba = PRUEBAS.find(p => p.id === pruebaId);
const isCompleto = modo === 'completo';
// Completo siempre requiere sesiΓ³n
if (!store.session && isCompleto) { navigate('/login'); return null; }
if (!prueba) {
return (
Prueba no encontrada
);
}
if (isCompleto && !store.hasPremium(pruebaId)) {
return (
{prueba.icono || 'π'}
Simulador completo β acceso premium
Desbloquea {prueba.nombre} con un pago ΓΊnico de{' '}
{window.formatPrice(prueba.precio || prueba.precio_mxn)}.
);
}
// Sin sesiΓ³n β modo diagnΓ³stico anΓ³nimo (solo muestra)
if (!store.session) {
return ;
}
return ;
};
// Script de detecciΓ³n de fin de examen para anΓ³nimos (inyectado en blob)
// Solo notifica al parent para guardar resultado en localStorage β sin overlay ni timer
function buildAnonDetectScript(pruebaId) {
return `