diff --git a/Actividades_Rotafolio_Vantive.xlsx b/Actividades_Rotafolio_Vantive.xlsx index e2b2964..3f5ea90 100644 Binary files a/Actividades_Rotafolio_Vantive.xlsx and b/Actividades_Rotafolio_Vantive.xlsx differ diff --git a/contenido/02.html b/contenido/02.html index 9d23183..8bf354a 100644 --- a/contenido/02.html +++ b/contenido/02.html @@ -106,19 +106,27 @@ width: 16px !important; height: 16px !important; } + + .perso { + top: 111px; + left: 70px; + }
+
+ Riñones +

¿Qué son los riñones?


-
+
Riñones @@ -134,9 +142,7 @@
-
- Riñones -
+
-
+
-

Instrucciones: Relaciona las imágenes de la columna A con la terapia a - la que corresponden en la columna B.

+

Instrucciones: Relaciona las imágenes con la terapia a la que corresponden.

@@ -70,17 +70,17 @@
-
+
-
+
-
+
diff --git a/contenido/04.html b/contenido/04.html index e533345..37bd725 100644 --- a/contenido/04.html +++ b/contenido/04.html @@ -85,8 +85,7 @@
-

Instrucciones: Toma los nombres en la caja y arrástralos hacia el lugar - que les corresponda en las imágenes.

+

Instrucciones: Toma los nombres y arrástralos hacia el lugar que les corresponda en las imágenes.

diff --git a/contenido/05.html b/contenido/05.html index 6be109d..68433c1 100644 --- a/contenido/05.html +++ b/contenido/05.html @@ -51,7 +51,7 @@
-
+

¿Cómo funciona la diálisis peritoneal?


diff --git a/contenido/06.html b/contenido/06.html index b57360a..dc94e32 100644 --- a/contenido/06.html +++ b/contenido/06.html @@ -28,8 +28,7 @@
-

Instrucciones: Arrastre los pasos del recambio para - colocarlos en el orden correcto.

+

Instrucciones: Arrastra los pasos del recambio para colocarlos en el orden correcto.

@@ -77,22 +76,28 @@ return shuffled; } + const imgNums = ['img/06.0.png', 'img/06.1.png', 'img/06.2.png']; + // Crear y mezclar las tarjetas function createShuffledCards() { const cards = [1, 2, 3]; - const shuffledCards = shuffleArray(cards); + let shuffledCards; + do { + shuffledCards = shuffleArray(cards); + } while (shuffledCards[0] === 1 && shuffledCards[1] === 2 && shuffledCards[2] === 3); const container = $('#sortable-cards'); // Limpiar contenedor container.empty(); // Crear tarjetas mezcladas - shuffledCards.forEach(number => { + shuffledCards.forEach((number, index) => { const cardHtml = ` -
-
+
+
@@ -106,9 +111,9 @@ let correct = true; $('#sortable-cards .card-sort').each(function (index) { if ($(this).data('order') === index + 1) { - $(this).removeClass('bg-verde-claro').addClass('bg-verde-pasto'); + $(this).find('.card-body').removeClass('bg-verde-claro').addClass('bg-verde-pasto'); } else { - $(this).removeClass('bg-verde-pasto').addClass('bg-verde-claro'); + $(this).find('.card-body').removeClass('bg-verde-pasto').addClass('bg-verde-claro'); correct = false; } }); diff --git a/contenido/07.html b/contenido/07.html index 5728bab..3887a09 100644 --- a/contenido/07.html +++ b/contenido/07.html @@ -159,19 +159,19 @@
- +
- +
- +
- +
@@ -223,7 +223,7 @@ const bad = CourseNav.createSound('audio/feedback-incorrect.mpeg'); const good = CourseNav.createSound('audio/feedback-correct.mpeg'); - const urlExcelFile = 'verdadero_falso.xlsx'; + const urlExcelFile = 'Actividades_Rotafolio_Vantive.xlsx'; function readExcelFile(url, callback) { var xhr = new XMLHttpRequest(); @@ -274,8 +274,8 @@ // Cargar preguntas al inicio readExcelFile(urlExcelFile, function(data) { - const sheetData = data[Object.keys(data)[0]]; - questions = procesarPreguntas(sheetData); + const hojaDatos = data["Diapositiva 7"]; + questions = procesarPreguntas(hojaDatos); }); $('.object-btn').click(function (e) { @@ -289,9 +289,9 @@ }); function showRandomQuestion() { - // Seleccionar pregunta aleatoria - const randomIndex = Math.floor(Math.random() * questions.length); - currentQuestion = questions[randomIndex]; + // Seleccionar pregunta en orden secuencial + currentQuestion = questions[currentQuestionIndex]; + currentQuestionIndex = (currentQuestionIndex + 1) % questions.length; const html = $("#pops-questions").html(); Swal.fire({ diff --git a/contenido/12.html b/contenido/12.html index 671805d..085225d 100644 --- a/contenido/12.html +++ b/contenido/12.html @@ -8,7 +8,7 @@ .hr-style { opacity: 1; - width: 40%; + width: 80%; } .btn-respuesta { @@ -41,8 +41,7 @@
-

Lee lo que opinan dos doctores sobre los cuidados del sitio de salida y las complicaciones que pueden surgir si no se - hace correctamente. Analiza cuidadosamente sus argumentos y elige quién tiene la razón.

+

Lee lo que opinan dos doctores sobre los cuidados del sitio de salida y las complicaciones que pueden surgir si no se hacen correctamente. Analiza cuidadosamente sus argumentos y elige quién tiene la razón.

@@ -86,7 +85,7 @@ const feedbackincorrect = CourseNav.createSound('audio/feedback-incorrect.mpeg'); const imgPerso = ['img/12.0.png','img/12.1.png']; - const urlExcelFile = 'versus.xlsx'; + const urlExcelFile = 'Actividades_Rotafolio_Vantive.xlsx'; let versusData; let currentQuestionIndex = 0; @@ -116,6 +115,14 @@ return array; } + function procesarPreguntas(data) { + return data.map(fila => ({ + pregunta: fila.pregunta ? String(fila.pregunta).trim() : '', + opcion: fila.opcion ? String(fila.opcion).trim() : '', + opcion_c: fila.opcion_c ? String(fila.opcion_c).trim() : '' + })); + } + function createIndicators(total) { const container = $('.indicadores-avance'); container.empty(); @@ -164,20 +171,20 @@ const leftResponse = randomOrder ? responses[0] : responses[1]; const rightResponse = randomOrder ? responses[1] : responses[0]; - const leftIsCorrect = randomOrder ? true : false; // opcion_c es la correcta + const leftIsCorrect = randomOrder ? false : true; // opcion_c es la correcta const structure = `
- personaje -
${leftResponse || ''}
+ personaje +
${leftResponse || ''}
- personaje -
${rightResponse || ''}
+ personaje +
${rightResponse || ''}
`; @@ -252,8 +259,8 @@ // Cargar datos del Excel readExcelFile(urlExcelFile, function(data) { - const sheetData = data[Object.keys(data)[0]]; - versusData = sheetData; + const hojaDatos = data["Diapositiva 14"]; + versusData = procesarPreguntas(hojaDatos); console.log('Datos cargados:', versusData); createIndicators(versusData.length); createVersusStructure(); diff --git a/contenido/14.html b/contenido/14.html index da71037..9517988 100644 --- a/contenido/14.html +++ b/contenido/14.html @@ -30,7 +30,7 @@ .img-sotable.disabled { pointer-events: none; - opacity: 0.7; + background-color: #84a816; }
@@ -50,7 +50,7 @@
-
+
@@ -137,6 +137,7 @@ // Initialize sortable $('.custom-grid').sortable({ items: '.img-sotable', + containment: ".wrap-course-content", cursor: 'grabbing', tolerance: 'pointer', helper: "clone", diff --git a/contenido/16.html b/contenido/16.html index 8eb7730..a740a1d 100644 --- a/contenido/16.html +++ b/contenido/16.html @@ -215,10 +215,7 @@ CourseNav.audioController.stopAllSoundsAndPlay(good); correctQuestions++; - // Show puzzle piece only for first 3 questions - if (correctQuestions <= 3) { - $(`#pz${correctQuestions - 1}`).show(); - } + $(`#pz${correctQuestions - 1}`).show(); currentQuestionIndex++; @@ -229,8 +226,6 @@ displayQuestion(); }, 500); } else { - // Show remaining pieces and hide col-actividad - $('#pz3,#pz4').show(); $('.col-actividad').hide(); setTimeout(() => { checkAllCompleted(); diff --git a/contenido/17.html b/contenido/17.html index 2c45188..ce6ab2d 100644 --- a/contenido/17.html +++ b/contenido/17.html @@ -57,7 +57,7 @@
-

Instrucciones: Toma los tipos de terapia que se presentan en la caja y arrástralos hacia el registro que les corresponde.

+

Instrucciones: Toma los tipos de terapia que se presentan y arrástralos hacia el registro que les corresponde.

diff --git a/contenido/18.html b/contenido/18.html index 89bf75c..04f3f2b 100644 --- a/contenido/18.html +++ b/contenido/18.html @@ -37,6 +37,7 @@ .object-btn { cursor: pointer; position: relative; + width: 19%; } .btn-answer { @@ -110,7 +111,7 @@
-
+

Sala: Estilo de vida

diff --git a/contenido/ruleta.html b/contenido/ruleta.html index ae459ef..9445efa 100644 --- a/contenido/ruleta.html +++ b/contenido/ruleta.html @@ -160,8 +160,8 @@
-

Puntos acumulados:

-

0

+

Puntos acumulados:

+

0

@@ -181,7 +181,7 @@
- +
@@ -241,6 +241,7 @@ isSpinning = true; spinBtn.disabled = true; + spinBtn.classList.remove("animate__animated", "animate__pulse", "animate__infinite"); ruletaWheel.classList.add("spinning"); document.getElementById("coursenav-main-content").classList.add("no-overflow"); // Mínimo 3 vueltas + ángulo aleatorio (siempre hacia la derecha) @@ -394,13 +395,15 @@ icon: "success", target: document.getElementById('wrap-course-content'), confirmButtonText: "Continuar", - }).then(() => finalizarTurno()); + }).then(() => { + finalizarTurno(); + if (girosRealizados < maxGiros) { + spinBtn.classList.add("animate__animated", "animate__pulse", "animate__infinite"); + } + }); } else { CourseNav.audioController.stopAllSoundsAndPlay(bad); - // Solo sonido, sin popup - no cuenta como intento - setTimeout(() => { - finalizarTurno(); - }, 1000); + // Solo sonido, el usuario puede seguir intentando } } diff --git a/css/style.min.css b/css/style.min.css index 8e4a1a0..9ecf3ec 100644 --- a/css/style.min.css +++ b/css/style.min.css @@ -1 +1 @@ -html{box-sizing:border-box;height:100%}*,*::before,*::after{box-sizing:inherit}body{display:flex;flex-direction:column;min-height:100vh;margin:0;padding:0;font-family:"Arial",sans-serif;line-height:1.3;font-size:18px}body>header,body>footer{flex:0 0 auto}body>header .coursenav-btn-navigation,body>footer .coursenav-btn-navigation{width:48px;height:48px;padding:0;border:none;background:none;display:flex;align-items:center;justify-content:center;color:inherit;position:relative;cursor:pointer}body>header .coursenav-btn-navigation:disabled,body>footer .coursenav-btn-navigation:disabled{cursor:not-allowed;filter:opacity(0.5)}body>main{flex:1 0 auto;width:100%}#coursenav-offcanvas{padding:1em;width:50%}#coursenav-offcanvas-label{-webkit-user-select:none;-moz-user-select:none;user-select:none}#coursenav-navbar .navbar-brand img{-o-object-fit:contain;object-fit:contain;aspect-ratio:1/1;height:45px}.course-menu,.course-menu ul{list-style:none !important;margin:0;padding:0}.course-menu .witem{display:flex;width:100%;flex-direction:row}.course-menu .witem>span{margin-left:auto}.course-menu .menu-item+.course-menu .menu-item{margin-top:.5rem}.course-menu .coursenav-link{display:block;padding:.5rem 1rem;color:inherit;text-decoration:none;font-weight:500;-webkit-user-select:none;-moz-user-select:none;user-select:none}.course-menu .sub-ul{display:none;padding-left:1rem}.course-menu .sub-ul.open{display:block}.course-menu .sub-ul .coursenav-link{cursor:pointer}.course-menu .sub-ul .coursenav-link:hover{filter:invert(100%)}.course-menu .sub-ul .coursenav-link[data-coursenavvisited=false]::before{content:"";font-family:"Font Awesome 6 Pro";font-weight:lighter;display:inline-block;margin-right:.5rem;color:inherit}.course-menu .sub-ul .coursenav-link[data-coursenavvisited=true]::before{content:"";font-family:"Font Awesome 6 Pro";font-weight:900;display:inline-block;margin-right:.5rem;color:var(--bs-success)}.course-menu .toggle-icon{cursor:pointer;margin-left:.5rem;color:inherit}.controls-btn{width:48px;height:48px;padding:0;border:none;background:none;display:flex;align-items:center;justify-content:center;color:inherit;position:relative}.controls-btn>svg{width:100%;height:100%;display:block}.controls-btn>i{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.controls-btn:focus{outline:2px solid #ffa300;outline-offset:2px}.controls-btn .position-relative{position:relative;width:100%;height:100%}.controls-btn .position-relative svg{width:100%;height:100%;display:block}.controls-btn .position-relative i{font-size:2rem}.controls-btn{width:55px;height:100%;padding:0;border:none;background:none;display:flex;align-items:center;justify-content:center;color:inherit;position:relative;border-top-left-radius:0;border-bottom-left-radius:0}.font-custom{font-size:2.5rem}.navbar-toggler{width:48px;height:48px;padding:0;border:none;background:none;display:flex;align-items:center;justify-content:center;color:inherit;position:relative}.navbar-toggler>svg{width:100%;height:100%;display:block}.navbar-toggler>i{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.navbar-toggler:focus{outline:2px solid #ffa300;outline-offset:2px}.navbar-toggler .position-relative{position:relative;width:100%;height:100%}.navbar-toggler .position-relative svg{width:100%;height:100%;display:block}.navbar-toggler .position-relative i{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.disabled{pointer-events:none;animation:none}.text-white *{color:#fff}.page-sco{height:100%;display:flex;flex-direction:column;position:relative}.card.flat{margin:0;padding:0;border-radius:0;border:none;box-shadow:none;background-color:rgba(0,0,0,0)}.card.flat .card-body{margin:0;padding:0;border-radius:0;border:none;box-shadow:none;background-color:rgba(0,0,0,0)}.cursor{cursor:pointer}.wrap-course-adaptive{position:fixed;top:0;left:0;width:100vw;height:100vh;min-width:100vw;min-height:100vh;max-width:none;max-height:none;overflow:hidden;z-index:0;background:inherit}.wrap-course-content{width:1366px;height:768px;position:absolute;left:0;top:0;overflow:hidden;z-index:1}#coursenav-offcanvas{border-top-right-radius:30px !important;border-bottom-right-radius:30px !important}.footer-details{border-top-right-radius:30px !important;border-bottom-right-radius:30px !important;width:100%;padding:0% .5rem}.stepper-container{width:80%;max-width:400px}.stepper{position:relative;display:flex;justify-content:space-between;align-items:center;padding:1rem 0}.stepper::before{content:"";position:absolute;top:50%;left:0;right:0;height:4px;background:#ddd;transform:translateY(-50%);border-radius:2px;z-index:0}.stepper::after{content:"";position:absolute;top:50%;left:0;height:4px;background:#4caf50;transform:translateY(-50%);border-radius:2px;z-index:1;width:var(--pct, 0);transition:width .3s ease}.stepper .step{position:relative;z-index:2;width:24px;height:24px;background:#ddd;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .3s ease,width .3s ease,height .3s ease,top .3s ease}.stepper .step.completed{background:#4caf50}.stepper .step.current{background:#4caf50;border:4px solid #fff;width:32px;height:32px;top:-4px}.stepper .step.current::before{content:attr(data-label);position:absolute;top:-2.5rem;left:50%;transform:translateX(-50%);font-size:1rem;color:#fff;white-space:nowrap}#wrap-course-content-navigation{padding:.5rem;border-radius:30px !important;border-bottom-left-radius:0 !important;border-bottom-right-radius:0 !important}#wrap-course-content-navigation button{margin-left:.33rem;margin-right:.33rem;padding:0;border:none;box-shadow:none;background:none}#wrap-course-paginator{justify-self:end;margin-left:auto;border-top-left-radius:20px;border-bottom-left-radius:20px;padding:0% .5rem;width:120px;justify-content:center}#wrap-course-controls{width:40%}#coursenav-main-content{height:calc(100% - 85px);overflow-x:hidden}.stepper #step-movil{background:#4caf50;border:4px solid #fff;width:32px;height:32px;top:12px;position:absolute;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:4}.stepper #step-movil::before{content:attr(data-label);position:absolute;top:1.9rem;left:50%;transform:translateX(-50%);font-size:.8rem;color:#fff;white-space:nowrap}.coursenav-btn-navigation:disabled{cursor:not-allowed;filter:opacity(0.5);pointer-events:none}.offcanvas-backdrop{width:100%;height:100%}.pop_class{width:100%;max-width:1000px;padding:0;border-radius:1em;overflow:hidden}.pop_class .swal2-html-container{padding:0}.pop_class .img-fit-pop{-o-object-fit:cover;object-fit:cover;height:100%;width:100%}.pop_class .swal2-close{width:50px;height:50px;border-radius:50%}h6{color:#4c4c4c;font-weight:bold;font-size:14px}.pop_html_style .swal2-html-container{padding:.5em} \ No newline at end of file +html{box-sizing:border-box;height:100%;overflow:hidden}*,*::before,*::after{box-sizing:inherit}body{display:flex;flex-direction:column;min-height:100vh;margin:0;padding:0;font-family:"Arial",sans-serif;line-height:1.3;font-size:18px;overflow:hidden}body>header,body>footer{flex:0 0 auto}body>header .coursenav-btn-navigation,body>footer .coursenav-btn-navigation{width:48px;height:48px;padding:0;border:none;background:none;display:flex;align-items:center;justify-content:center;color:inherit;position:relative;cursor:pointer}body>header .coursenav-btn-navigation:disabled,body>footer .coursenav-btn-navigation:disabled{cursor:not-allowed;filter:opacity(0.5)}body>main{flex:1 0 auto;width:100%}#coursenav-offcanvas{padding:1em;width:50%}#coursenav-offcanvas-label{-webkit-user-select:none;-moz-user-select:none;user-select:none}#coursenav-navbar .navbar-brand img{-o-object-fit:contain;object-fit:contain;aspect-ratio:1/1;height:45px}.course-menu,.course-menu ul{list-style:none !important;margin:0;padding:0}.course-menu .witem{display:flex;width:100%;flex-direction:row}.course-menu .witem>span{margin-left:auto}.course-menu .menu-item+.course-menu .menu-item{margin-top:.5rem}.course-menu .coursenav-link{display:block;padding:.5rem 1rem;color:inherit;text-decoration:none;font-weight:500;-webkit-user-select:none;-moz-user-select:none;user-select:none}.course-menu .sub-ul{display:none;padding-left:1rem}.course-menu .sub-ul.open{display:block}.course-menu .sub-ul .coursenav-link{cursor:pointer}.course-menu .sub-ul .coursenav-link:hover{filter:invert(100%)}.course-menu .sub-ul .coursenav-link[data-coursenavvisited=false]::before{content:"";font-family:"Font Awesome 6 Pro";font-weight:lighter;display:inline-block;margin-right:.5rem;color:inherit}.course-menu .sub-ul .coursenav-link[data-coursenavvisited=true]::before{content:"";font-family:"Font Awesome 6 Pro";font-weight:900;display:inline-block;margin-right:.5rem;color:var(--bs-success)}.course-menu .toggle-icon{cursor:pointer;margin-left:.5rem;color:inherit}.controls-btn{width:48px;height:48px;padding:0;border:none;background:none;display:flex;align-items:center;justify-content:center;color:inherit;position:relative}.controls-btn>svg{width:100%;height:100%;display:block}.controls-btn>i{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.controls-btn:focus{outline:2px solid #ffa300;outline-offset:2px}.controls-btn .position-relative{position:relative;width:100%;height:100%}.controls-btn .position-relative svg{width:100%;height:100%;display:block}.controls-btn .position-relative i{font-size:2rem}.controls-btn{width:55px;height:100%;padding:0;border:none;background:none;display:flex;align-items:center;justify-content:center;color:inherit;position:relative;border-top-left-radius:0;border-bottom-left-radius:0}.font-custom{font-size:2.5rem}.navbar-toggler{width:48px;height:48px;padding:0;border:none;background:none;display:flex;align-items:center;justify-content:center;color:inherit;position:relative}.navbar-toggler>svg{width:100%;height:100%;display:block}.navbar-toggler>i{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.navbar-toggler:focus{outline:2px solid #ffa300;outline-offset:2px}.navbar-toggler .position-relative{position:relative;width:100%;height:100%}.navbar-toggler .position-relative svg{width:100%;height:100%;display:block}.navbar-toggler .position-relative i{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.disabled{pointer-events:none;animation:none}.text-white *{color:#fff}.page-sco{height:100%;display:flex;flex-direction:column;position:relative}.card.flat{margin:0;padding:0;border-radius:0;border:none;box-shadow:none;background-color:rgba(0,0,0,0)}.card.flat .card-body{margin:0;padding:0;border-radius:0;border:none;box-shadow:none;background-color:rgba(0,0,0,0)}.cursor{cursor:pointer}.wrap-course-adaptive{position:fixed;top:0;left:0;width:100vw;height:100vh;min-width:100vw;min-height:100vh;max-width:none;max-height:none;overflow:hidden;z-index:0;background:inherit}.wrap-course-content{width:1366px;height:768px;position:absolute;left:0;top:0;overflow:hidden;z-index:1}#coursenav-offcanvas{border-top-right-radius:30px !important;border-bottom-right-radius:30px !important}.footer-details{border-top-right-radius:30px !important;border-bottom-right-radius:30px !important;width:100%;padding:0% .5rem}.stepper-container{width:80%;max-width:400px}.stepper{position:relative;display:flex;justify-content:space-between;align-items:center;padding:1rem 0}.stepper::before{content:"";position:absolute;top:50%;left:0;right:0;height:4px;background:#ddd;transform:translateY(-50%);border-radius:2px;z-index:0}.stepper::after{content:"";position:absolute;top:50%;left:0;height:4px;background:#4caf50;transform:translateY(-50%);border-radius:2px;z-index:1;width:var(--pct, 0);transition:width .3s ease}.stepper .step{position:relative;z-index:2;width:24px;height:24px;background:#ddd;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .3s ease,width .3s ease,height .3s ease,top .3s ease}.stepper .step.completed{background:#4caf50}.stepper .step.current{background:#4caf50;border:4px solid #fff;width:32px;height:32px;top:-4px}.stepper .step.current::before{content:attr(data-label);position:absolute;top:-2.5rem;left:50%;transform:translateX(-50%);font-size:1rem;color:#fff;white-space:nowrap}#wrap-course-content-navigation{padding:.5rem;border-radius:30px !important;border-bottom-left-radius:0 !important;border-bottom-right-radius:0 !important}#wrap-course-content-navigation button{margin-left:.33rem;margin-right:.33rem;padding:0;border:none;box-shadow:none;background:none}#wrap-course-paginator{justify-self:end;margin-left:auto;border-top-left-radius:20px;border-bottom-left-radius:20px;padding:0% .5rem;width:120px;justify-content:center}#wrap-course-controls{width:40%}#coursenav-main-content{height:calc(100% - 85px);overflow-x:hidden}.stepper #step-movil{background:#4caf50;border:4px solid #fff;width:32px;height:32px;top:12px;position:absolute;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:4}.stepper #step-movil::before{content:attr(data-label);position:absolute;top:1.9rem;left:50%;transform:translateX(-50%);font-size:.8rem;color:#fff;white-space:nowrap}.coursenav-btn-navigation:disabled{cursor:not-allowed;filter:opacity(0.5);pointer-events:none}.offcanvas-backdrop{width:100%;height:100%}.pop_class{width:100%;max-width:1000px;padding:0;border-radius:1em;overflow:hidden}.pop_class .swal2-html-container{padding:0}.pop_class .img-fit-pop{-o-object-fit:cover;object-fit:cover;height:100%;width:100%}.pop_class .swal2-close{width:50px;height:50px;border-radius:50%}h6{color:#4c4c4c;font-weight:bold;font-size:14px}.pop_html_style .swal2-html-container{padding:.5em} \ No newline at end of file diff --git a/css/style.scss b/css/style.scss index 9e302e4..b32cc3f 100644 --- a/css/style.scss +++ b/css/style.scss @@ -8,6 +8,7 @@ $outline-color: #ffa300 !default; html { box-sizing: border-box; height: 100%; + overflow: hidden; } *, *::before, @@ -25,6 +26,7 @@ body { font-family: 'Arial', sans-serif; line-height: 1.3; font-size: 18px; + overflow: hidden; > header, > footer { @@ -428,7 +430,7 @@ $transition-time: 0.3s !default; } #coursenav-main-content { - height: 100%; + height: calc(100% - 85px); overflow-x: hidden; } .stepper { diff --git a/css/stylee.css b/css/stylee.css index 63ee1b9..cd38055 100644 --- a/css/stylee.css +++ b/css/stylee.css @@ -1,6 +1,7 @@ html { box-sizing: border-box; height: 100%; + overflow: hidden; } *, @@ -18,6 +19,7 @@ body { font-family: "Arial", sans-serif; line-height: 1.3; font-size: 18px; + overflow: hidden; } body > header, body > footer { @@ -411,7 +413,7 @@ body > main { } #coursenav-main-content { - height: 100%; + height: calc(100% - 85px); overflow-x: hidden; } diff --git a/img/06.0.png b/img/06.0.png new file mode 100644 index 0000000..3c4ff19 Binary files /dev/null and b/img/06.0.png differ diff --git a/img/06.1.png b/img/06.1.png new file mode 100644 index 0000000..8e3c2c9 Binary files /dev/null and b/img/06.1.png differ diff --git a/img/06.2.png b/img/06.2.png new file mode 100644 index 0000000..d6748fe Binary files /dev/null and b/img/06.2.png differ diff --git a/img/09.14.png b/img/09.14.png index 104f3f4..4c29502 100644 Binary files a/img/09.14.png and b/img/09.14.png differ diff --git a/img/18.0.png b/img/18.0.png index a48922d..b9f99c5 100644 Binary files a/img/18.0.png and b/img/18.0.png differ diff --git a/img/18.1.png b/img/18.1.png index debb02d..35133a7 100644 Binary files a/img/18.1.png and b/img/18.1.png differ diff --git a/img/18.2.png b/img/18.2.png index f91f0a6..813ec07 100644 Binary files a/img/18.2.png and b/img/18.2.png differ diff --git a/img/18.3.png b/img/18.3.png index 2fc5a17..73c707e 100644 Binary files a/img/18.3.png and b/img/18.3.png differ diff --git a/img/18.4.png b/img/18.4.png index 393b637..4961d77 100644 Binary files a/img/18.4.png and b/img/18.4.png differ diff --git a/img/3.2.png b/img/3.2.png index 39b5bec..45b6454 100644 Binary files a/img/3.2.png and b/img/3.2.png differ diff --git a/img/3.3.png b/img/3.3.png index 932e652..b763b18 100644 Binary files a/img/3.3.png and b/img/3.3.png differ diff --git a/img/3.4.png b/img/3.4.png index cdd7673..18ac54e 100644 Binary files a/img/3.4.png and b/img/3.4.png differ diff --git a/img/puzzle.svg b/img/puzzle.svg index b128cf4..f7b7a25 100644 --- a/img/puzzle.svg +++ b/img/puzzle.svg @@ -2,156 +2,227 @@ + + + - + - - - - + - - - - - + + + + - + - - - - + - + + + + - + - - - - + - + + + + - + - - - - + - + + + + + + + + - + - - - - + - + + + + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - + - - - - - + + + + + - + - - - - - + + + + + - + - - - - - + + + + - - - - - - - - - - - + + + + + + + diff --git a/js/coursenav.js b/js/coursenav.js index 13a93d2..d6a8e57 100644 --- a/js/coursenav.js +++ b/js/coursenav.js @@ -361,21 +361,16 @@ var CourseNav = (function (COURSE_CONFIG) { const idx = courseData.contentArray.findIndex((c) => c.content === item.content && c.title === item.title); link.dataset.coursenavindex = idx; - link.dataset.coursenavvisited = idx >= 0 && courseData.contentArray[idx].visited; + link.dataset.coursenavvisited = "true"; wdiv.appendChild(link); link.addEventListener("click", () => { CLICK_SOUND.play(); const index = parseInt(link.dataset.coursenavindex, 10); if (index >= 0) { - if (DEBUG || courseData.contentArray[index].visited) { - currentIndex = index; - closeSidebar(); - loadContent(); - } else { - closeSidebar(); - showLockedContentWarning(); - } + currentIndex = index; + closeSidebar(); + loadContent(); } else { const toggle = wdiv.querySelector(".toggle-icon"); toggle && toggle.click(); @@ -504,8 +499,8 @@ var CourseNav = (function (COURSE_CONFIG) { const idx = parseInt(link.dataset.coursenavindex, 10); const item = courseData.contentArray[idx]; if (item) { - link.dataset.coursenavvisited = item.visited; - item.visited ? link.classList.add("visited") : link.classList.remove("visited"); + link.dataset.coursenavvisited = "true"; + link.classList.add("visited"); } }); } diff --git a/js/coursenav.min.js b/js/coursenav.min.js index fd7085d..33586ed 100644 --- a/js/coursenav.min.js +++ b/js/coursenav.min.js @@ -1 +1 @@ -var CourseNav=function(e){"use strict";new Set;class t extends Howl{constructor(e){super(e),this._timeupdateListeners=[],this._interval=null,this._startTimeUpdate()}_startTimeUpdate(){this._interval=setInterval((()=>{this.playing()&&this._emitTimeUpdate(this.seek())}),250)}_emitTimeUpdate(e){this._timeupdateListeners.forEach((t=>t(e)))}onTimeUpdate(e){this._timeupdateListeners.push(e)}offTimeUpdate(e){this._timeupdateListeners=this._timeupdateListeners.filter((t=>t!==e))}play(e){const t=super.play(e);return this._interval||this._startTimeUpdate(),t}pause(e){const t=super.pause(e);return clearInterval(this._interval),this._interval=null,t}stop(e){super.stop(e),clearInterval(this._interval),this._interval=null}}function n(e){return e?new t({src:[e]}):null}const o=new class{constructor(){this.audioElement=null,this.audioControlButton=document.getElementById("coursenav-audio-control"),this.audioIcon=document.getElementById("coursenav-audio-icon"),this.progressCircle=document.getElementById("coursenav-progress-circle"),this.isMuted=!1,this.progressCircle&&(this.progressCircle.style.display="none"),this.audioControlButton&&this.audioControlButton.addEventListener("click",this.toggleAudio.bind(this))}stopAllSoundsAndPlay(e){Howler._howls?.forEach((e=>e.stop())),this.setAudio(e),this.playAudio()}loadAudio(e){this.audioElement&&this.audioElement.stop(),e&&(this.audioElement=n(e),this._bindAudioEvents())}playAudio(){this.audioElement?.play()}pauseAudio(){this.audioElement?.pause()}stopAudio(){this.audioElement?.stop()}toggleAudio(){this.audioElement&&(this.audioElement.playing()?this.pauseAudio():this.playAudio())}toggleMute(){this.isMuted=!this.isMuted,Howler.mute(this.isMuted),this.updateIcon(),document.querySelectorAll("video").forEach((e=>e.muted=this.isMuted))}onPlay(){this.progressCircle&&(this.progressCircle.style.display="block");const e=this.audioElement.seek();this.updateProgressCircle(e),this.updateIcon()}onEnd(){this.progressCircle&&(this.progressCircle.style.display="none"),this.updateIcon()}updateIcon(){if(!this.audioIcon)return;const e=this.audioElement?.playing();this.audioIcon.className=e?"fa-duotone fa-solid fa-pause":"fa-duotone fa-solid fa-play"}updateProgressCircle(e){if(!this.progressCircle||!this.audioElement)return;const t=parseFloat(this.progressCircle.getAttribute("r")),n=2*Math.PI*t,o=n-e/this.audioElement.duration()*n;this.progressCircle.setAttribute("stroke-dashoffset",o)}setAudioUrl(e){this.loadAudio(e)}setAudio(e){e instanceof t&&(this.audioElement?.stop(),this.audioElement=e,this._bindAudioEvents())}_bindAudioEvents(){this.audioElement.on("play",this.onPlay.bind(this)),this.audioElement.on("pause",this.updateIcon.bind(this)),this.audioElement.on("stop",this.updateIcon.bind(this)),this.audioElement.on("end",this.onEnd.bind(this)),this.audioElement.onTimeUpdate(this.updateProgressCircle.bind(this))}},s=e.COURSE_CONFIG_URL||"config.json",i=e.DEBUG||!1,r=(e.KEY,document.getElementById("coursenav-main-content")),a=document.getElementById("wrap-course-content");a.setAttribute("data-original-class",a.className);const c=document.getElementById("coursenav-loader-course"),d=new Audio("audio/click.mp3"),l=document.getElementById("coursenav-prev-btn"),u=document.getElementById("coursenav-next-btn"),p=document.getElementById("coursenav-progress-bar"),m=document.getElementById("coursenav-main-menu");let h;pipwerks.SCORM.version="1.2",pipwerks.debug.isActive=i,pipwerks.SCORM.handleExitMode=!1;let f=!1,g=null,v={contentArray:[],maximumAdvance:0},y=0;function A(e,t="",n="",o=null){e.forEach((e=>{const s=!o&&!n?e.title:n;e.content&&v.contentArray.push({title:e.title,content:e.content,audio:e.audio,visited:!1,courseTitle:t,moduleTitle:s,parentTitle:o}),e.topics&&A(e.topics,t,s,e.title)}))}function C(){const e=new XMLHttpRequest;e.open("GET",`${s}?_=${Date.now()}`,!0),e.setRequestHeader("X-Requested-With","XMLHttpRequest"),e.withCredentials=!0,e.responseType="json",e.onload=function(){if(e.status>=200&&e.status<300){g=e.response,v={contentArray:[],maximumAdvance:0},g.title&&(document.title=g.title),A(g.modules,g.title||"");const t=T()||{contentArray:[],maximumAdvance:0};t.contentArray&&function(e,t){return!(!e||!t||e.length!==t.length)&&e.every(((e,n)=>e.title===t[n].title&&e.content===t[n].content))}(t.contentArray,v.contentArray)&&(v=t),v.maximumAdvance>0?"undefined"==typeof Swal?(y=confirm("¿Retomar tu progreso?")?v.maximumAdvance:0,S()):Swal.fire({title:"¿Dónde quieres empezar?",text:"Retomar o comenzar de nuevo",icon:"question",showCancelButton:!0,confirmButtonText:"Retomar",cancelButtonText:"Comenzar",target:r,customClass:{confirmButton:"btn btn-primary",cancelButton:"btn btn-secondary"}}).then((e=>{y=e.isConfirmed?v.maximumAdvance:0,S()})):S(),q(v)}else r?.remove()},e.onerror=function(){r?.remove()},e.send()}function S(){m&&(m.innerHTML="",(g.modules||[]).forEach((e=>{const t=document.createElement("ul");t.classList.add("course-menu"),t.appendChild(w(e)),m.appendChild(t)})),E(),E()),v.contentArray.length>0?k():r.innerHTML="
No hay contenido.
",l?.addEventListener("click",(()=>{d.play(),L(-1)})),u?.addEventListener("click",(()=>{d.play(),L(1)})),O()}function w(e){const t=document.createElement("li");t.classList.add("menu-item");const n=document.createElement("div");n.classList.add("witem"),t.appendChild(n);const o=document.createElement("a");o.classList.add("coursenav-link"),o.textContent=e.title;const s=v.contentArray.findIndex((t=>t.content===e.content&&t.title===e.title));if(o.dataset.coursenavindex=s,o.dataset.coursenavvisited=s>=0&&v.contentArray[s].visited,n.appendChild(o),o.addEventListener("click",(()=>{d.play();const e=parseInt(o.dataset.coursenavindex,10);if(e>=0)i||v.contentArray[e].visited?(y=e,M(),k()):(M(),b());else{const e=n.querySelector(".toggle-icon");e&&e.click()}})),e.topics?.length){const o=document.createElement("span");o.classList.add("toggle-icon"),o.innerHTML='',n.appendChild(o);const s=document.createElement("ul");s.classList.add("sub-ul","open"),e.topics.forEach((e=>s.appendChild(w(e)))),t.appendChild(s),o.addEventListener("click",(()=>{d.play();const e=s.classList.toggle("open"),t=o.querySelector("i");t.classList.toggle("fa-square-chevron-down",e),t.classList.toggle("fa-square-chevron-right",!e)}))}return t}function E(){document.querySelectorAll("#coursenav-main-menu > ul.course-menu").forEach((function e(t){const n=new Set;Array.from(t.children).filter((e=>"LI"===e.tagName)).forEach((t=>{const o=t.querySelector(":scope > .witem > .coursenav-link");if(o){const e=o.textContent.trim();n.has(e)?t.style.display="none":n.add(e)}t.querySelectorAll(":scope > ul").forEach(e)}))}))}function M(){const e=document.getElementById("coursenav-offcanvas");(bootstrap.Offcanvas.getInstance(e)||new bootstrap.Offcanvas(e)).hide()}function b(){"undefined"==typeof Swal?alert("Debes completar el contenido actual antes de avanzar."):Swal.fire({text:"Debes completar el contenido actual antes de avanzar.",icon:"warning",target:r,customClass:{confirmButton:"btn btn-primary",cancelButton:"btn btn-warning"}})}function k(){r.innerHTML="",a.className=a.getAttribute("data-original-class"),window.scrollTo(0,0),c.style.display="block";const e=v.contentArray[y];e?.content&&(o.stopAudio(),Howler._howls?.forEach((e=>e.stop())),Swal.isVisible()&&Swal.close(),document.documentElement.classList.remove("swal2-shown","swal2-height-auto"),document.body.classList.remove("swal2-shown","swal2-height-auto"),document.documentElement.removeAttribute("aria-hidden"),document.body.removeAttribute("aria-hidden"),document.querySelectorAll("script[aria-hidden]").forEach((e=>e.removeAttribute("aria-hidden"))),fetch(e.content,{cache:"no-store"}).then((e=>{if(!e.ok)throw new Error(e.statusText);return e.text()})).then((e=>{$(r).html(e)})).catch((e=>{r.innerHTML=`
${e.message}
`})).finally((()=>{v.maximumAdvance=Math.max(v.maximumAdvance,y),c.style.display="none",I(),function(e,t){document.body.dispatchEvent(new CustomEvent("slideChange",{detail:{message:"Slide changed!",slideIndex:e,contentArray:t}}))}(y,v.contentArray)})))}function I(){q(v),O(),R(),document.querySelectorAll(".coursenav-link").forEach((e=>{const t=parseInt(e.dataset.coursenavindex,10),n=v.contentArray[t];n&&(e.dataset.coursenavvisited=n.visited,n.visited?e.classList.add("visited"):e.classList.remove("visited"))}))}function L(e){!function(e,t){document.body.dispatchEvent(new CustomEvent("beforeSlideChange",{detail:{message:"Before slide change!",currentIndex:e,contentArray:t}}))}(y,v.contentArray);const t=y+e;t<0||t>=v.contentArray.length||(-1===e||v.contentArray[y].visited||i?(y=t,k()):b(),O())}function O(){v.contentArray.length&&v.contentArray[y]?(l.disabled=0===y,u.disabled=y>=v.contentArray.length-1||!v.contentArray[y].visited&&!i):l.disabled=u.disabled=!0}function R(){const e=v.contentArray.filter((e=>e.visited)).length/v.contentArray.length*100;p.style.width=e+"%",p.setAttribute("aria-valuenow",e.toFixed(2)),p.textContent=`${e.toFixed(0)}%`}function _(e=!0){var t,n,o;v.contentArray[y].visited=e,I(),t=y,n=v.contentArray.length,o=v.contentArray[y],document.body.dispatchEvent(new CustomEvent("slideCompleted",{detail:{message:"Slide completed!",slideIndex:t,totalSlides:n,slide:o}}))}function x(e){if(pipwerks.SCORM.connection.isActive){const t=pipwerks.SCORM.set("cmi.core.lesson_status",e);return t&&pipwerks.SCORM.save(),t}return sessionStorage.setItem("cmi.core.lesson_status",e),!0}function T(){let e=pipwerks.SCORM.connection.isActive?pipwerks.SCORM.get("cmi.suspend_data"):sessionStorage.getItem("cmi.suspend_data");if(e)try{return JSON.parse(e)}catch{return e}return""}function B(e){const t=JSON.stringify(e);if(pipwerks.SCORM.connection.isActive){const e=pipwerks.SCORM.set("cmi.suspend_data",t);return e&&pipwerks.SCORM.save(),e}return sessionStorage.setItem("cmi.suspend_data",t),!0}function q(e){B(e)}function N(){if(pipwerks.SCORM.connection.isActive&&!f){const e=(Date.now()-h)/1e3,t=String(Math.floor(e/3600)).padStart(2,"0"),n=String(Math.floor(e%3600/60)).padStart(2,"0"),o=String(Math.floor(e%60)).padStart(2,"0");pipwerks.SCORM.set("cmi.core.session_time",`${t}:${n}:${o}`),pipwerks.SCORM.save(),pipwerks.SCORM.quit(),f=!0}}function D(e){return pipwerks.SCORM.connection.isActive?pipwerks.SCORM.get(e)??"":sessionStorage.getItem(e)??""}return document.addEventListener("DOMContentLoaded",(()=>{!function(e){const t=pipwerks.SCORM,n=t.init();n&&("not attempted"===t.get("cmi.core.lesson_status")&&(t.set("cmi.core.lesson_status","incomplete"),t.save()),h=Date.now());e(n)}((()=>C())),window.addEventListener("beforeunload",N),[].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((e=>new bootstrap.Tooltip(e)));const e=document.getElementById("coursenav-offcanvas"),t=document.getElementById("wrap-course-content"),n=bootstrap.Offcanvas.getOrCreateInstance(e);e.addEventListener("shown.bs.offcanvas",(()=>{if(t.querySelector(".offcanvas-backdrop"))return;const e=document.createElement("div");e.className="offcanvas-backdrop fade",t.appendChild(e),e.getBoundingClientRect(),e.classList.add("show"),e.addEventListener("click",(()=>n.hide()))})),e.addEventListener("hidden.bs.offcanvas",(()=>{t.querySelector(".offcanvas-backdrop")?.remove()}))})),{audioController:o,createSound:n,soundClick:function(){d.play()},isDebug:function(){return i},getStudentName:()=>D("cmi.core.student_name"),getLessonLocation:function(){if(pipwerks.SCORM.connection.isActive){return pipwerks.SCORM.get("cmi.core.lesson_location")??""}return sessionStorage.getItem("cmi.core.lesson_location")??""},setLessonLocation:function(e){if(pipwerks.SCORM.connection.isActive){const t=pipwerks.SCORM.set("cmi.core.lesson_location",e);return t&&pipwerks.SCORM.save(),t}return sessionStorage.setItem("cmi.core.lesson_location",e),!0},getLessonStatus:function(){return pipwerks.SCORM.connection.isActive?pipwerks.SCORM.get("cmi.core.lesson_status")??"":sessionStorage.getItem("cmi.core.lesson_status")??""},setLessonStatus:x,getScore:function(){let e=pipwerks.SCORM.connection.isActive?pipwerks.SCORM.get("cmi.core.score.raw"):sessionStorage.getItem("cmi.core.score.raw");return null!=e&&""!==e?Number(e):null},setScore:function(e){if(pipwerks.SCORM.connection.isActive){const t=pipwerks.SCORM.set("cmi.core.score.raw",e);return t&&pipwerks.SCORM.save(),t}return sessionStorage.setItem("cmi.core.score.raw",e),!0},getSuspendData:T,setSuspendData:B,getScormData:D,setScormData:function(e,t){if(pipwerks.SCORM.connection.isActive){const n=pipwerks.SCORM.set(e,t);return n&&pipwerks.SCORM.save(),n}return sessionStorage.setItem(e,t),!0},nextSlide:()=>L(1),prevSlide:()=>L(-1),gotoSlide:function(e){const t=Math.floor(e);!isNaN(t)&&t>=0&&tv.contentArray[y]?.visited||!1,isCompletedSlideIndex:e=>e>=0&&ev.contentArray[y],getCurrentIndex:()=>y,getCourseData:()=>v,getCourseStructure:()=>g,getCourseConfig:()=>e,getCourseTitle:()=>g?.title||"",getCourseModules:()=>g?.modules||[],getCourseContentArray:()=>v.contentArray,resetCourse:function(){v.contentArray.forEach((e=>e.visited=!1)),v.maximumAdvance=0,y=0,I(),k()},markSlidesAsVisited:function(e){e.sort(((e,t)=>t-e)).forEach((e=>{y=e,_(!0)}))},setSlideVisited:_,completeLesson:()=>x("completed"),updateProgressBar:R,getProgressPercent:function(e=!1){if(!e){const e=v.contentArray.filter((e=>e.visited)).length;return parseFloat((e/v.contentArray.length*100).toFixed(2))}const t=v.contentArray[y],n=v.contentArray.filter((e=>e.moduleTitle===t.moduleTitle)),o=n.filter((e=>e.visited)).length;return n.length?parseFloat((o/n.length*100).toFixed(2)):0},getProgressByModule:function(){const e={};v.contentArray.forEach((t=>{const n=t.moduleTitle||"Sin módulo";e[n]||(e[n]={total:0,visited:0}),e[n].total++,t.visited&&e[n].visited++}));const t={};return Object.entries(e).forEach((([e,{total:n,visited:o}])=>{t[e]=parseFloat((o/n*100).toFixed(2))})),t},getCurrentModuleSlides:()=>{const e=v.contentArray[y]?.moduleTitle;return v.contentArray.filter((t=>t.moduleTitle===e))},getCurrentModuleTitle:()=>v.contentArray[y]?.moduleTitle||"",getCurrentCourseTitle:()=>v.contentArray[y]?.courseTitle||"",save:()=>pipwerks.SCORM.connection.isActive?pipwerks.SCORM.save():q(v),reload:k,loadModule:e=>{const t=v.contentArray.findIndex((t=>t.moduleTitle===e));t>=0&&(y=t,k())}}}(COURSE_CONFIG);window.CourseNav=CourseNav; \ No newline at end of file +var CourseNav=function(e){"use strict";new Set;class t extends Howl{constructor(e){super(e),this._timeupdateListeners=[],this._interval=null,this._startTimeUpdate()}_startTimeUpdate(){this._interval=setInterval((()=>{this.playing()&&this._emitTimeUpdate(this.seek())}),250)}_emitTimeUpdate(e){this._timeupdateListeners.forEach((t=>t(e)))}onTimeUpdate(e){this._timeupdateListeners.push(e)}offTimeUpdate(e){this._timeupdateListeners=this._timeupdateListeners.filter((t=>t!==e))}play(e){const t=super.play(e);return this._interval||this._startTimeUpdate(),t}pause(e){const t=super.pause(e);return clearInterval(this._interval),this._interval=null,t}stop(e){super.stop(e),clearInterval(this._interval),this._interval=null}}function n(e){return e?new t({src:[e]}):null}const o=new class{constructor(){this.audioElement=null,this.audioControlButton=document.getElementById("coursenav-audio-control"),this.audioIcon=document.getElementById("coursenav-audio-icon"),this.progressCircle=document.getElementById("coursenav-progress-circle"),this.isMuted=!1,this.progressCircle&&(this.progressCircle.style.display="none"),this.audioControlButton&&this.audioControlButton.addEventListener("click",this.toggleAudio.bind(this))}stopAllSoundsAndPlay(e){Howler._howls?.forEach((e=>e.stop())),this.setAudio(e),this.playAudio()}loadAudio(e){this.audioElement&&this.audioElement.stop(),e&&(this.audioElement=n(e),this._bindAudioEvents())}playAudio(){this.audioElement?.play()}pauseAudio(){this.audioElement?.pause()}stopAudio(){this.audioElement?.stop()}toggleAudio(){this.audioElement&&(this.audioElement.playing()?this.pauseAudio():this.playAudio())}toggleMute(){this.isMuted=!this.isMuted,Howler.mute(this.isMuted),this.updateIcon(),document.querySelectorAll("video").forEach((e=>e.muted=this.isMuted))}onPlay(){this.progressCircle&&(this.progressCircle.style.display="block");const e=this.audioElement.seek();this.updateProgressCircle(e),this.updateIcon()}onEnd(){this.progressCircle&&(this.progressCircle.style.display="none"),this.updateIcon()}updateIcon(){if(!this.audioIcon)return;const e=this.audioElement?.playing();this.audioIcon.className=e?"fa-duotone fa-solid fa-pause":"fa-duotone fa-solid fa-play"}updateProgressCircle(e){if(!this.progressCircle||!this.audioElement)return;const t=parseFloat(this.progressCircle.getAttribute("r")),n=2*Math.PI*t,o=n-e/this.audioElement.duration()*n;this.progressCircle.setAttribute("stroke-dashoffset",o)}setAudioUrl(e){this.loadAudio(e)}setAudio(e){e instanceof t&&(this.audioElement?.stop(),this.audioElement=e,this._bindAudioEvents())}_bindAudioEvents(){this.audioElement.on("play",this.onPlay.bind(this)),this.audioElement.on("pause",this.updateIcon.bind(this)),this.audioElement.on("stop",this.updateIcon.bind(this)),this.audioElement.on("end",this.onEnd.bind(this)),this.audioElement.onTimeUpdate(this.updateProgressCircle.bind(this))}},s=e.COURSE_CONFIG_URL||"config.json",i=e.DEBUG||!1,r=(e.KEY,document.getElementById("coursenav-main-content")),a=document.getElementById("wrap-course-content");a.setAttribute("data-original-class",a.className);const c=document.getElementById("coursenav-loader-course"),l=new Audio("audio/click.mp3"),d=document.getElementById("coursenav-prev-btn"),u=document.getElementById("coursenav-next-btn"),p=document.getElementById("coursenav-progress-bar"),m=document.getElementById("coursenav-main-menu");let h;pipwerks.SCORM.version="1.2",pipwerks.debug.isActive=i,pipwerks.SCORM.handleExitMode=!1;let g=!1,f=null,v={contentArray:[],maximumAdvance:0},y=0;function A(e,t="",n="",o=null){e.forEach((e=>{const s=!o&&!n?e.title:n;e.content&&v.contentArray.push({title:e.title,content:e.content,audio:e.audio,visited:!1,courseTitle:t,moduleTitle:s,parentTitle:o}),e.topics&&A(e.topics,t,s,e.title)}))}function C(){const e=new XMLHttpRequest;e.open("GET",`${s}?_=${Date.now()}`,!0),e.setRequestHeader("X-Requested-With","XMLHttpRequest"),e.withCredentials=!0,e.responseType="json",e.onload=function(){if(e.status>=200&&e.status<300){f=e.response,v={contentArray:[],maximumAdvance:0},f.title&&(document.title=f.title),A(f.modules,f.title||"");const t=_()||{contentArray:[],maximumAdvance:0};t.contentArray&&function(e,t){return!(!e||!t||e.length!==t.length)&&e.every(((e,n)=>e.title===t[n].title&&e.content===t[n].content))}(t.contentArray,v.contentArray)&&(v=t),v.maximumAdvance>0?"undefined"==typeof Swal?(y=confirm("¿Retomar tu progreso?")?v.maximumAdvance:0,S()):Swal.fire({title:"¿Dónde quieres empezar?",text:"Retomar o comenzar de nuevo",icon:"question",showCancelButton:!0,confirmButtonText:"Retomar",cancelButtonText:"Comenzar",target:r,customClass:{confirmButton:"btn btn-primary",cancelButton:"btn btn-secondary"}}).then((e=>{y=e.isConfirmed?v.maximumAdvance:0,S()})):S(),T(v)}else r?.remove()},e.onerror=function(){r?.remove()},e.send()}function S(){m&&(m.innerHTML="",(f.modules||[]).forEach((e=>{const t=document.createElement("ul");t.classList.add("course-menu"),t.appendChild(w(e)),m.appendChild(t)})),E(),E()),v.contentArray.length>0?M():r.innerHTML="
No hay contenido.
",d?.addEventListener("click",(()=>{l.play(),k(-1)})),u?.addEventListener("click",(()=>{l.play(),k(1)})),I()}function w(e){const t=document.createElement("li");t.classList.add("menu-item");const n=document.createElement("div");n.classList.add("witem"),t.appendChild(n);const o=document.createElement("a");o.classList.add("coursenav-link"),o.textContent=e.title;const s=v.contentArray.findIndex((t=>t.content===e.content&&t.title===e.title));if(o.dataset.coursenavindex=s,o.dataset.coursenavvisited="true",n.appendChild(o),o.addEventListener("click",(()=>{l.play();const e=parseInt(o.dataset.coursenavindex,10);if(e>=0)y=e,function(){const e=document.getElementById("coursenav-offcanvas");(bootstrap.Offcanvas.getInstance(e)||new bootstrap.Offcanvas(e)).hide()}(),M();else{const e=n.querySelector(".toggle-icon");e&&e.click()}})),e.topics?.length){const o=document.createElement("span");o.classList.add("toggle-icon"),o.innerHTML='',n.appendChild(o);const s=document.createElement("ul");s.classList.add("sub-ul","open"),e.topics.forEach((e=>s.appendChild(w(e)))),t.appendChild(s),o.addEventListener("click",(()=>{l.play();const e=s.classList.toggle("open"),t=o.querySelector("i");t.classList.toggle("fa-square-chevron-down",e),t.classList.toggle("fa-square-chevron-right",!e)}))}return t}function E(){document.querySelectorAll("#coursenav-main-menu > ul.course-menu").forEach((function e(t){const n=new Set;Array.from(t.children).filter((e=>"LI"===e.tagName)).forEach((t=>{const o=t.querySelector(":scope > .witem > .coursenav-link");if(o){const e=o.textContent.trim();n.has(e)?t.style.display="none":n.add(e)}t.querySelectorAll(":scope > ul").forEach(e)}))}))}function M(){r.innerHTML="",a.className=a.getAttribute("data-original-class"),window.scrollTo(0,0),c.style.display="block";const e=v.contentArray[y];e?.content&&(o.stopAudio(),Howler._howls?.forEach((e=>e.stop())),Swal.isVisible()&&Swal.close(),document.documentElement.classList.remove("swal2-shown","swal2-height-auto"),document.body.classList.remove("swal2-shown","swal2-height-auto"),document.documentElement.removeAttribute("aria-hidden"),document.body.removeAttribute("aria-hidden"),document.querySelectorAll("script[aria-hidden]").forEach((e=>e.removeAttribute("aria-hidden"))),fetch(e.content,{cache:"no-store"}).then((e=>{if(!e.ok)throw new Error(e.statusText);return e.text()})).then((e=>{$(r).html(e)})).catch((e=>{r.innerHTML=`
${e.message}
`})).finally((()=>{v.maximumAdvance=Math.max(v.maximumAdvance,y),c.style.display="none",b(),function(e,t){document.body.dispatchEvent(new CustomEvent("slideChange",{detail:{message:"Slide changed!",slideIndex:e,contentArray:t}}))}(y,v.contentArray)})))}function b(){T(v),I(),O(),document.querySelectorAll(".coursenav-link").forEach((e=>{const t=parseInt(e.dataset.coursenavindex,10);v.contentArray[t]&&(e.dataset.coursenavvisited="true",e.classList.add("visited"))}))}function k(e){!function(e,t){document.body.dispatchEvent(new CustomEvent("beforeSlideChange",{detail:{message:"Before slide change!",currentIndex:e,contentArray:t}}))}(y,v.contentArray);const t=y+e;t<0||t>=v.contentArray.length||(-1===e||v.contentArray[y].visited||i?(y=t,M()):"undefined"==typeof Swal?alert("Debes completar el contenido actual antes de avanzar."):Swal.fire({text:"Debes completar el contenido actual antes de avanzar.",icon:"warning",target:r,customClass:{confirmButton:"btn btn-primary",cancelButton:"btn btn-warning"}}),I())}function I(){v.contentArray.length&&v.contentArray[y]?(d.disabled=0===y,u.disabled=y>=v.contentArray.length-1||!v.contentArray[y].visited&&!i):d.disabled=u.disabled=!0}function O(){const e=v.contentArray.filter((e=>e.visited)).length/v.contentArray.length*100;p.style.width=e+"%",p.setAttribute("aria-valuenow",e.toFixed(2)),p.textContent=`${e.toFixed(0)}%`}function L(e=!0){var t,n,o;v.contentArray[y].visited=e,b(),t=y,n=v.contentArray.length,o=v.contentArray[y],document.body.dispatchEvent(new CustomEvent("slideCompleted",{detail:{message:"Slide completed!",slideIndex:t,totalSlides:n,slide:o}}))}function R(e){if(pipwerks.SCORM.connection.isActive){const t=pipwerks.SCORM.set("cmi.core.lesson_status",e);return t&&pipwerks.SCORM.save(),t}return sessionStorage.setItem("cmi.core.lesson_status",e),!0}function _(){let e=pipwerks.SCORM.connection.isActive?pipwerks.SCORM.get("cmi.suspend_data"):sessionStorage.getItem("cmi.suspend_data");if(e)try{return JSON.parse(e)}catch{return e}return""}function x(e){const t=JSON.stringify(e);if(pipwerks.SCORM.connection.isActive){const e=pipwerks.SCORM.set("cmi.suspend_data",t);return e&&pipwerks.SCORM.save(),e}return sessionStorage.setItem("cmi.suspend_data",t),!0}function T(e){x(e)}function B(){if(pipwerks.SCORM.connection.isActive&&!g){const e=(Date.now()-h)/1e3,t=String(Math.floor(e/3600)).padStart(2,"0"),n=String(Math.floor(e%3600/60)).padStart(2,"0"),o=String(Math.floor(e%60)).padStart(2,"0");pipwerks.SCORM.set("cmi.core.session_time",`${t}:${n}:${o}`),pipwerks.SCORM.save(),pipwerks.SCORM.quit(),g=!0}}function q(e){return pipwerks.SCORM.connection.isActive?pipwerks.SCORM.get(e)??"":sessionStorage.getItem(e)??""}return document.addEventListener("DOMContentLoaded",(()=>{!function(e){const t=pipwerks.SCORM,n=t.init();n&&("not attempted"===t.get("cmi.core.lesson_status")&&(t.set("cmi.core.lesson_status","incomplete"),t.save()),h=Date.now());e(n)}((()=>C())),window.addEventListener("beforeunload",B),[].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((e=>new bootstrap.Tooltip(e)));const e=document.getElementById("coursenav-offcanvas"),t=document.getElementById("wrap-course-content"),n=bootstrap.Offcanvas.getOrCreateInstance(e);e.addEventListener("shown.bs.offcanvas",(()=>{if(t.querySelector(".offcanvas-backdrop"))return;const e=document.createElement("div");e.className="offcanvas-backdrop fade",t.appendChild(e),e.getBoundingClientRect(),e.classList.add("show"),e.addEventListener("click",(()=>n.hide()))})),e.addEventListener("hidden.bs.offcanvas",(()=>{t.querySelector(".offcanvas-backdrop")?.remove()}))})),{audioController:o,createSound:n,soundClick:function(){l.play()},isDebug:function(){return i},getStudentName:()=>q("cmi.core.student_name"),getLessonLocation:function(){if(pipwerks.SCORM.connection.isActive){return pipwerks.SCORM.get("cmi.core.lesson_location")??""}return sessionStorage.getItem("cmi.core.lesson_location")??""},setLessonLocation:function(e){if(pipwerks.SCORM.connection.isActive){const t=pipwerks.SCORM.set("cmi.core.lesson_location",e);return t&&pipwerks.SCORM.save(),t}return sessionStorage.setItem("cmi.core.lesson_location",e),!0},getLessonStatus:function(){return pipwerks.SCORM.connection.isActive?pipwerks.SCORM.get("cmi.core.lesson_status")??"":sessionStorage.getItem("cmi.core.lesson_status")??""},setLessonStatus:R,getScore:function(){let e=pipwerks.SCORM.connection.isActive?pipwerks.SCORM.get("cmi.core.score.raw"):sessionStorage.getItem("cmi.core.score.raw");return null!=e&&""!==e?Number(e):null},setScore:function(e){if(pipwerks.SCORM.connection.isActive){const t=pipwerks.SCORM.set("cmi.core.score.raw",e);return t&&pipwerks.SCORM.save(),t}return sessionStorage.setItem("cmi.core.score.raw",e),!0},getSuspendData:_,setSuspendData:x,getScormData:q,setScormData:function(e,t){if(pipwerks.SCORM.connection.isActive){const n=pipwerks.SCORM.set(e,t);return n&&pipwerks.SCORM.save(),n}return sessionStorage.setItem(e,t),!0},nextSlide:()=>k(1),prevSlide:()=>k(-1),gotoSlide:function(e){const t=Math.floor(e);!isNaN(t)&&t>=0&&tv.contentArray[y]?.visited||!1,isCompletedSlideIndex:e=>e>=0&&ev.contentArray[y],getCurrentIndex:()=>y,getCourseData:()=>v,getCourseStructure:()=>f,getCourseConfig:()=>e,getCourseTitle:()=>f?.title||"",getCourseModules:()=>f?.modules||[],getCourseContentArray:()=>v.contentArray,resetCourse:function(){v.contentArray.forEach((e=>e.visited=!1)),v.maximumAdvance=0,y=0,b(),M()},markSlidesAsVisited:function(e){e.sort(((e,t)=>t-e)).forEach((e=>{y=e,L(!0)}))},setSlideVisited:L,completeLesson:()=>R("completed"),updateProgressBar:O,getProgressPercent:function(e=!1){if(!e){const e=v.contentArray.filter((e=>e.visited)).length;return parseFloat((e/v.contentArray.length*100).toFixed(2))}const t=v.contentArray[y],n=v.contentArray.filter((e=>e.moduleTitle===t.moduleTitle)),o=n.filter((e=>e.visited)).length;return n.length?parseFloat((o/n.length*100).toFixed(2)):0},getProgressByModule:function(){const e={};v.contentArray.forEach((t=>{const n=t.moduleTitle||"Sin módulo";e[n]||(e[n]={total:0,visited:0}),e[n].total++,t.visited&&e[n].visited++}));const t={};return Object.entries(e).forEach((([e,{total:n,visited:o}])=>{t[e]=parseFloat((o/n*100).toFixed(2))})),t},getCurrentModuleSlides:()=>{const e=v.contentArray[y]?.moduleTitle;return v.contentArray.filter((t=>t.moduleTitle===e))},getCurrentModuleTitle:()=>v.contentArray[y]?.moduleTitle||"",getCurrentCourseTitle:()=>v.contentArray[y]?.courseTitle||"",save:()=>pipwerks.SCORM.connection.isActive?pipwerks.SCORM.save():T(v),reload:M,loadModule:e=>{const t=v.contentArray.findIndex((t=>t.moduleTitle===e));t>=0&&(y=t,M())}}}(COURSE_CONFIG);window.CourseNav=CourseNav; \ No newline at end of file diff --git a/verdadero_falso.xlsx b/verdadero_falso.xlsx deleted file mode 100644 index 50bfd56..0000000 Binary files a/verdadero_falso.xlsx and /dev/null differ diff --git a/versus.xlsx b/versus.xlsx deleted file mode 100644 index 09336aa..0000000 Binary files a/versus.xlsx and /dev/null differ