COMENZAR ACTIVIDAD
diff --git a/contenido/17.html b/contenido/17.html
index 81bfd36..67f2614 100644
--- a/contenido/17.html
+++ b/contenido/17.html
@@ -191,9 +191,7 @@

-
Instrucciones: Lea con atención cada
- descripción y arrástrela hacia el sobre con el nombre del paso al
- que corresponde.
+
Instrucciones: Lea con atención cada descripción y arrastre hacia ella el sobre con el nombre del paso al que corresponde.
diff --git a/contenido/18.html b/contenido/18.html
index ec54991..c9bf7a0 100644
--- a/contenido/18.html
+++ b/contenido/18.html
@@ -292,7 +292,9 @@
if (questions.length === 0) return;
const QuestionPop = false;
- const preguntaAleatoria = questions[Math.floor(Math.random() * questions.length)];
+ const indiceAleatorio = Math.floor(Math.random() * questions.length);
+ const preguntaAleatoria = questions[indiceAleatorio];
+ questions.splice(indiceAleatorio, 1); // Eliminar la pregunta usada
const opcionesBarajadas = shuffleArray([...preguntaAleatoria.opciones]);
let opcionesHTML = '';
diff --git a/css/style.scss b/css/style.scss
index c16e60f..4520638 100644
--- a/css/style.scss
+++ b/css/style.scss
@@ -110,7 +110,7 @@ body {
}
&[data-coursenavvisited='false'] {
&::before {
- content: '\f023'; // unicode de fa-check
+ content: '\f023'; // unicode de fa-lock
font-family: 'Font Awesome 6 Pro';
font-weight: lighter; // solid
display: inline-block;
diff --git a/img/10.0.png b/img/10.0.png
index dd7d4a9..a9251f8 100644
Binary files a/img/10.0.png and b/img/10.0.png differ
diff --git a/img/16.10.png b/img/16.10.png
index 6e00753..43b5b95 100644
Binary files a/img/16.10.png and b/img/16.10.png differ
diff --git a/img/16.11.png b/img/16.11.png
index e1965ac..c08c797 100644
Binary files a/img/16.11.png and b/img/16.11.png differ
diff --git a/img/16.12.png b/img/16.12.png
index d3ca255..5f2bdd9 100644
Binary files a/img/16.12.png and b/img/16.12.png differ
diff --git a/img/16.13.png b/img/16.13.png
index b4699cc..15d3488 100644
Binary files a/img/16.13.png and b/img/16.13.png differ
diff --git a/img/16.4.png b/img/16.4.png
index 70c06a6..62e90a0 100644
Binary files a/img/16.4.png and b/img/16.4.png differ
diff --git a/img/16.5.png b/img/16.5.png
index 743e50a..53947d4 100644
Binary files a/img/16.5.png and b/img/16.5.png differ
diff --git a/img/16.6.png b/img/16.6.png
index a135a7b..e974979 100644
Binary files a/img/16.6.png and b/img/16.6.png differ
diff --git a/img/16.7.png b/img/16.7.png
index c026465..cd07370 100644
Binary files a/img/16.7.png and b/img/16.7.png differ
diff --git a/img/16.8.png b/img/16.8.png
index dc0666c..82a7cca 100644
Binary files a/img/16.8.png and b/img/16.8.png differ
diff --git a/img/16.9.png b/img/16.9.png
index 56d8f3a..1f18e00 100644
Binary files a/img/16.9.png and b/img/16.9.png differ
diff --git a/js/coursenav.js b/js/coursenav.js
index 13a93d2..437009c 100644
--- a/js/coursenav.js
+++ b/js/coursenav.js
@@ -361,21 +361,17 @@ 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();
- }
+ // Permitir navegación libre desde el menú
+ currentIndex = index;
+ closeSidebar();
+ loadContent();
} else {
const toggle = wdiv.querySelector(".toggle-icon");
toggle && toggle.click();
@@ -504,8 +500,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..3b5ccb8 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&&t
v.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=!0,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=!0,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