diff --git a/.vscode/course-nav-snippets.code-snippets b/.vscode/course-nav-snippets.code-snippets new file mode 100644 index 0000000..b4883ae --- /dev/null +++ b/.vscode/course-nav-snippets.code-snippets @@ -0,0 +1,198 @@ +{ + "useCourseNav.getStudentName": { + "prefix": "cn.getStudentName", + "body": [ + "CourseNav.getStudentName(${1})" + ], + "description": "CourseNav: getStudentName" + }, + "useCourseNav.getLessonLocation": { + "prefix": "cn.getLessonLocation", + "body": [ + "CourseNav.getLessonLocation(${1})" + ], + "description": "CourseNav: getLessonLocation" + }, + "useCourseNav.setLessonLocation": { + "prefix": "cn.setLessonLocation", + "body": [ + "CourseNav.setLessonLocation(${1})" + ], + "description": "CourseNav: setLessonLocation" + }, + "useCourseNav.getLessonStatus": { + "prefix": "cn.getLessonStatus", + "body": [ + "CourseNav.getLessonStatus(${1})" + ], + "description": "CourseNav: getLessonStatus" + }, + "useCourseNav.setLessonStatus": { + "prefix": "cn.setLessonStatus", + "body": [ + "CourseNav.setLessonStatus(${1})" + ], + "description": "CourseNav: setLessonStatus" + }, + "useCourseNav.getScore": { + "prefix": "cn.getScore", + "body": [ + "CourseNav.getScore(${1})" + ], + "description": "CourseNav: getScore" + }, + "useCourseNav.setScore": { + "prefix": "cn.setScore", + "body": [ + "CourseNav.setScore(${1})" + ], + "description": "CourseNav: setScore" + }, + "useCourseNav.getSuspendData": { + "prefix": "cn.getSuspendData", + "body": [ + "CourseNav.getSuspendData(${1})" + ], + "description": "CourseNav: getSuspendData" + }, + "useCourseNav.setSuspendData": { + "prefix": "cn.setSuspendData", + "body": [ + "CourseNav.setSuspendData(${1})" + ], + "description": "CourseNav: setSuspendData" + }, + "useCourseNav.createSound": { + "prefix": "cn.createSound", + "body": [ + "CourseNav.createSound(${1})" + ], + "description": "CourseNav: createSound" + }, + "useCourseNav.setSlideVisited": { + "prefix": "cn.setSlideVisited", + "body": [ + "CourseNav.setSlideVisited(${1})" + ], + "description": "CourseNav: setSlideVisited" + }, + "useCourseNav.soundClick": { + "prefix": "cn.soundClick", + "body": [ + "CourseNav.soundClick(${1})" + ], + "description": "CourseNav: soundClick" + }, + "useCourseNav.isVisited": { + "prefix": "cn.isVisited", + "body": [ + "CourseNav.isVisited(${1})" + ], + "description": "CourseNav: isVisited" + }, + "useCourseNav.nextSlide": { + "prefix": "cn.nextSlide", + "body": [ + "CourseNav.nextSlide(${1})" + ], + "description": "CourseNav: nextSlide" + }, + "useCourseNav.save": { + "prefix": "cn.save", + "body": [ + "CourseNav.save(${1})" + ], + "description": "CourseNav: save" + }, + "useCourseNav.reload": { + "prefix": "cn.reload", + "body": [ + "CourseNav.reload(${1})" + ], + "description": "CourseNav: reload" + }, + "useCourseNav.gotoSlide": { + "prefix": "cn.gotoSlide", + "body": [ + "CourseNav.gotoSlide(${1})" + ], + "description": "CourseNav: gotoSlide" + }, + "useCourseNav.isCompletedSlideIndex": { + "prefix": "cn.isCompletedSlideIndex", + "body": [ + "CourseNav.isCompletedSlideIndex(${1})" + ], + "description": "CourseNav: isCompletedSlideIndex" + }, + "useCourseNav.getCurrentSlide": { + "prefix": "cn.getCurrentSlide", + "body": [ + "CourseNav.getCurrentSlide(${1})" + ], + "description": "CourseNav: getCurrentSlide" + }, + "useCourseNav.prevSlide": { + "prefix": "cn.prevSlide", + "body": [ + "CourseNav.prevSlide(${1})" + ], + "description": "CourseNav: prevSlide" + }, + "useCourseNav.resetCourse": { + "prefix": "cn.resetCourse", + "body": [ + "CourseNav.resetCourse(${1})" + ], + "description": "CourseNav: resetCourse" + }, + "useCourseNav.adjustMainContentHeight": { + "prefix": "cn.adjustMainContentHeight", + "body": [ + "CourseNav.adjustMainContentHeight(${1})" + ], + "description": "CourseNav: adjustMainContentHeight" + }, + "useCourseNav.markSlidesAsVisited": { + "prefix": "cn.markSlidesAsVisited", + "body": [ + "CourseNav.markSlidesAsVisited(${1})" + ], + "description": "CourseNav: markSlidesAsVisited" + }, + "useCourseNav.updateProgressBar": { + "prefix": "cn.updateProgressBar", + "body": [ + "CourseNav.updateProgressBar(${1})" + ], + "description": "CourseNav: updateProgressBar" + }, + "useCourseNav.completarLeccion": { + "prefix": "cn.completarLeccion", + "body": [ + "CourseNav.completarLeccion(${1})" + ], + "description": "CourseNav: completarLeccion" + }, + "useCourseNav.audioController": { + "prefix": "cn.audio", + "body": [ + "CourseNav.audioController" + ], + "description": "CourseNav: controlador de audio" + }, + "useCourseNav.getScormData": { + "prefix": "cn.getScormData", + "body": [ + "CourseNav.getScormData('${1:key}')" + ], + "description": "CourseNav: Obtiene valor de SCORM/sessionStorage" + }, + "useCourseNav.setScormData": { + "prefix": "cn.setScormData", + "body": [ + "CourseNav.setScormData('${1:key}', ${2:value})" + ], + "description": "CourseNav: Guarda valor en SCORM/sessionStorage" + } +} \ No newline at end of file diff --git a/.vscode/howler-utils.code-snippets b/.vscode/howler-utils.code-snippets new file mode 100644 index 0000000..3d4eb4d --- /dev/null +++ b/.vscode/howler-utils.code-snippets @@ -0,0 +1,61 @@ +{ + "🎵 Reproducir sonido con createSound": { + "prefix": "howl-play", + "body": [ + "const sonido = createSound('audio/$1.mp3');", + "stopAllSoundsAndPlay(sonido);" + ], + "description": "Crea y reproduce un sonido con utilidades Howler" + }, + + "🔇 Silenciar todos los sonidos": { + "prefix": "howl-mute-on", + "body": [ + "setGlobalMute(true);" + ], + "description": "Silencia todos los sonidos con Howler" + }, + + "🔊 Activar todos los sonidos": { + "prefix": "howl-mute-off", + "body": [ + "setGlobalMute(false);" + ], + "description": "Activa todos los sonidos con Howler" + }, + + "🔁 Detener todos los sonidos": { + "prefix": "howl-stop", + "body": [ + "stopAllSounds();" + ], + "description": "Detiene todos los sonidos activos" + }, + + "🎚️ Ajustar volumen global": { + "prefix": "howl-volume", + "body": [ + "setGlobalVolume($1); // valor entre 0.0 y 1.0" + ], + "description": "Controlar volumen global con Howler" + }, + + "🕵️ Verificar si un sonido está reproduciéndose": { + "prefix": "howl-is-playing", + "body": [ + "if (isPlaying(sonido)) {", + " console.log('Está reproduciendo');", + "} else {", + " console.log('No está sonando');", + "}" + ], + "description": "Verifica si un sonido está activo" + }, + "🎵 crear sonido con createSound": { + "prefix": "newsound", + "body": [ + "createSound('audio/$1.mp3');", + ], + "description": "Crea un sonido con utilidades Howler" + }, +} diff --git a/.vscode/html.code-snippets b/.vscode/html.code-snippets new file mode 100644 index 0000000..c2b2d52 --- /dev/null +++ b/.vscode/html.code-snippets @@ -0,0 +1,111 @@ +{ + // Place your curso workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and + // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope + // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is + // used to trigger the snippet and the body will be expanded and inserted. Possible variables are: + // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. + // Placeholders with the same ids are connected. + // Example: + // "Print to console": { + // "scope": "javascript,typescript", + // "prefix": "log", + // "body": [ + // "console.log('$1');", + // "$2" + // ], + // "description": "Log output to console" + // } + "Nuevo sco": { + "scope": "html", + "prefix": "sco", + "body": [ + "", + "", + "", + ], + "description": "sco" + }, + "Mitad bs5": { + "scope": "html", + "prefix": "md", + "body": [ + "
+ Has concluido la actividad.
+