Actualización

This commit is contained in:
Xes
2025-04-10 12:36:07 +02:00
parent 1da7c3f3b9
commit 4aff98e77b
3147 changed files with 320647 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 20.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 356 227.3" style="enable-background:new 0 0 356 227.3;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#B71C1C;}
</style>
<g>
<path class="st0" d="M356,48.3C356,21.6,335.4,0,310,0H46C20.6,0,0,21.6,0,48.3V179c0,26.7,20.6,48.3,46,48.3h264
c25.4,0,46-21.6,46-48.3V48.3z"/>
<path class="st1" d="M204.2,95.1l15.7,19.3l12.8-10.6c2.8-2.5,5.3-4.9,7.2-7.2c-0.3,6-0.3,12.6-0.3,19.8v47.3h30V63.8h-26.8
L204.2,95.1z"/>
<path class="st1" d="M158.8,102.8H83.3c-3.3,0-5.8,2.4-5.8,5.7v11.9c0,3.3,2.5,6.4,5.8,6.4h75.5c3.3,0,5.7-3.1,5.7-6.4v-11.9
C164.5,105.2,162.1,102.8,158.8,102.8z"/>
<path class="st1" d="M333.5,65.3c0-23.5-19-42.5-42.5-42.5H65c-23.5,0-42.5,19-42.5,42.5v97c0,23.5,19,42.5,42.5,42.5h226
c23.5,0,42.5-19,42.5-42.5V65.3z M318.5,162.3c0,15.2-12.3,27.5-27.5,27.5H65c-15.2,0-27.5-12.3-27.5-27.5v-97
c0-15.2,12.3-27.5,27.5-27.5h226c15.2,0,27.5,12.3,27.5,27.5V162.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 20.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 356 227.3" style="enable-background:new 0 0 356 227.3;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#216340;}
</style>
<g>
<path class="st0" d="M356,48.3C356,21.6,335.4,0,310,0H46C20.6,0,0,21.6,0,48.3V179c0,26.7,20.6,48.3,46,48.3h264
c25.4,0,46-21.6,46-48.3V48.3z"/>
<path class="st1" d="M204.2,95.1l15.7,19.3l12.8-10.6c2.8-2.5,5.3-4.9,7.2-7.2c-0.3,6-0.3,12.6-0.3,19.8v47.3h30V63.8h-26.8
L204.2,95.1z"/>
<path class="st1" d="M158.8,102.8h-26.3V76.7c0-3.3-2.2-5.9-5.5-5.9h-11.9c-3.3,0-5.6,2.6-5.6,5.9v26.1H83.3
c-3.3,0-5.8,2.4-5.8,5.7v11.9c0,3.3,2.5,6.4,5.8,6.4h26.2v25.4c0,3.3,2.3,5.6,5.6,5.6H127c3.3,0,5.5-2.3,5.5-5.6v-25.4h26.3
c3.3,0,5.7-3.1,5.7-6.4v-11.9C164.5,105.2,162.1,102.8,158.8,102.8z"/>
<path class="st1" d="M333.5,65.3c0-23.5-19-42.5-42.5-42.5H65c-23.5,0-42.5,19-42.5,42.5v97c0,23.5,19,42.5,42.5,42.5h226
c23.5,0,42.5-19,42.5-42.5V65.3z M318.5,162.3c0,15.2-12.3,27.5-27.5,27.5H65c-15.2,0-27.5-12.3-27.5-27.5v-97
c0-15.2,12.3-27.5,27.5-27.5h226c15.2,0,27.5,12.3,27.5,27.5V162.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,45 @@
{
"title": "Question",
"machineName": "H5P.Question",
"majorVersion": 1,
"minorVersion": 4,
"patchVersion": 7,
"runnable": 0,
"license": "MIT",
"author": "Joubel",
"coreApi": {
"majorVersion": 1,
"minorVersion": 7
},
"preloadedCss": [
{
"path": "styles/question.css"
},
{
"path": "styles/explainer.css"
}
],
"preloadedJs": [
{
"path": "scripts/question.js"
},
{
"path": "scripts/explainer.js"
},
{
"path": "scripts/score-points.js"
}
],
"preloadedDependencies": [
{
"machineName": "FontAwesome",
"majorVersion": 4,
"minorVersion": 5
},
{
"machineName": "H5P.JoubelUI",
"majorVersion": 1,
"minorVersion": 3
}
]
}

View File

@@ -0,0 +1,84 @@
H5P.Question.Explainer = (function ($) {
/**
* Constructor
*
* @class
* @param {string} title
* @param {array} explanations
*/
function Explainer(title, explanations) {
var self = this;
/**
* Create the DOM structure
*/
var createHTML = function () {
self.$explanation = $('<div>', {
'class': 'h5p-question-explanation-container'
});
// Add title:
$('<div>', {
'class': 'h5p-question-explanation-title',
role: 'heading',
html: title,
appendTo: self.$explanation
});
var $explanationList = $('<ul>', {
'class': 'h5p-question-explanation-list',
appendTo: self.$explanation
});
for (var i = 0; i < explanations.length; i++) {
var feedback = explanations[i];
var $explanationItem = $('<li>', {
'class': 'h5p-question-explanation-item',
appendTo: $explanationList
});
var $content = $('<div>', {
'class': 'h5p-question-explanation-status'
});
if (feedback.correct) {
$('<span>', {
'class': 'h5p-question-explanation-correct',
html: feedback.correct,
appendTo: $content
});
}
if (feedback.wrong) {
$('<span>', {
'class': 'h5p-question-explanation-wrong',
html: feedback.wrong,
appendTo: $content
});
}
$content.appendTo($explanationItem);
if (feedback.text) {
$('<div>', {
'class': 'h5p-question-explanation-text',
html: feedback.text,
appendTo: $explanationItem
});
}
}
};
createHTML();
/**
* Return the container HTMLElement
*
* @return {HTMLElement}
*/
self.getElement = function () {
return self.$explanation;
};
}
return Explainer;
})(H5P.jQuery);

View File

@@ -0,0 +1,72 @@
(function (Question) {
/**
* Makes it easy to add animated score points for your question type.
*
* @class H5P.Question.ScorePoints
*/
Question.ScorePoints = function () {
var self = this;
var elements = [];
var showElementsTimer;
/**
* Create the element that displays the score point element for questions.
*
* @param {boolean} isCorrect
* @return {HTMLElement}
*/
self.getElement = function (isCorrect) {
var element = document.createElement('div');
element.classList.add(isCorrect ? 'h5p-question-plus-one' : 'h5p-question-minus-one');
element.classList.add('h5p-question-hidden-one');
elements.push(element);
// Schedule display animation of all added elements
if (showElementsTimer) {
clearTimeout(showElementsTimer);
}
showElementsTimer = setTimeout(showElements, 0);
return element;
};
/**
* @private
*/
var showElements = function () {
// Determine delay between triggering animations
var delay = 0;
var increment = 150;
var maxTime = 1000;
if (elements.length && elements.length > Math.ceil(maxTime / increment)) {
// Animations will run for more than ~1 second, reduce it.
increment = maxTime / elements.length;
}
for (var i = 0; i < elements.length; i++) {
// Use timer to trigger show
setTimeout(showElement(elements[i]), delay);
// Increse delay for next element
delay += increment;
}
};
/**
* Trigger transition animation for the given element
*
* @private
* @param {HTMLElement} element
* @return {function}
*/
var showElement = function (element) {
return function () {
element.classList.remove('h5p-question-hidden-one');
};
};
};
})(H5P.Question);

View File

@@ -0,0 +1,80 @@
.h5p-question-explanation {
/* Needed this to make it display in IE 11 */
position: relative;
}
.h5p-question-explanation-container {
margin: 0;
padding: 1em;
background: #FAFAFA;
}
.h5p-question-explanation-title {
font-size: 1.125em;
margin-bottom: 0.5em;
}
.h5p-question-explanation-list {
background: #FFFFFF;
border: 1px solid #e0e0e0;
overflow: auto;
overflow-x: hidden;
list-style: none;
padding: 0;
margin: 0;
}
.h5p-question-explanation-item {
padding: 0.5em;
margin: 0;
line-height: 1.2;
display: flex;
}
.h5p-question-explanation-item:not(:last-child) {
border-bottom: 1px solid #e0e0e0;
}
.h5p-question-explanation-status {
display: flex;
flex-shrink: 0;
width: 8em;
flex-wrap: wrap;
}
.h5p-question-explanation-correct,
.h5p-question-explanation-wrong {
display: inline-flex;
font-weight: bold;
margin-left: 0.5em;
font-size: 0.9em;
word-break: break-all;
/* Non standard for WebKit */
word-break: break-word;
}
.h5p-question-explanation-correct {
color: #265c42;
}
.h5p-question-explanation-wrong {
color: #b61c1e;
text-decoration: line-through;
}
.h5p-question-explanation-text {
display: inline-flex;
padding-left: 1em;
margin-left: 0.5em;
border-left: 1px solid #ddd;
}
.h5p-question-explanation-list::-webkit-scrollbar {
width: 0.4em;
}
.h5p-question-explanation-list::-webkit-scrollbar-thumb {
background-color: #e0e0e0;
}

View File

@@ -0,0 +1,342 @@
.h5p-question {
background: rgba(255, 255, 255, 0.9);
position: relative;
}
.h5p-question-video {
line-height: 0;
}
.h5p-question-video > video {
width: 100%;
}
.h5p-question-image {
text-align: left;
margin: 0 0 1em;
line-height: 0.8125em;
}
.h5p-question-image img {
display: block;
width: 100%;
height: auto;
border: 0;
outline: none;
}
.h5p-question-image-wrap {
display: inline-block;
position: relative;
margin-bottom: 1em;
-webkit-transform: translate(1em, 1em);
transform: translate(1em, 1em);
max-width: calc(100% - 2em);
}
.h5p-question-image.animatable .h5p-question-image-wrap.h5p-question-image-scalable {
-webkit-transition: -webkit-transform 0.3s 0.3s, margin 0.3s 0.3s, width 0.3s 0s;
transition: transform 0.3s 0.3s, margin 0.3s 0.3s, width 0.3s 0s;
}
.h5p-question-image.animatable.h5p-question-image-fill-width .h5p-question-image-wrap {
-webkit-transition: -webkit-transform 0.3s 0s, margin 0.3s 0s, width 0.3s 0.3s;
transition: transform 0.3s 0s, margin 0.3s 0s, width 0.3s 0.3s;
}
.h5p-question-image-overlay {
display: none;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
.h5p-question-image-overlay.show {
display: block;
}
.h5p-question-image-fill-width .h5p-question-image-wrap,
.h5p-no-frame > .h5p-question .h5p-question-image-wrap,
.h5p-transparent > div > .h5p-question .h5p-question-image-wrap {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
margin: 0;
max-width: 100%;
}
.h5p-question-image-scalable {
cursor: pointer;
width: 35%;
}
.h5p-question-image.h5p-question-image-fill-width .h5p-question-image-scalable{
width: 100%;
}
.h5p-question-image-scalable:before {
position: absolute;
font-family: 'H5PFontAwesome4';
content: "\f067";
right: 0.7em;
top: 0.7em;
color: #fff;
font-size: 10px;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
background: rgba(0, 0, 0, 0.5);
width: 1.8em;
height: 1.8em;
line-height: 1.8em;
text-align: center;
}
.h5p-question-image-fill-width .h5p-question-image-scalable:before {
content: "\f068";
}
.h5p-question-introduction {
margin: 1em;
font-size: 1.125em;
line-height: 1;
}
.h5p-question-introduction > p {
font-size: inherit;
line-height: inherit;
margin: 0;
}
.h5p-question-content {
margin: 1em;
}
.h5p-question-content.h5p-has-question-popup {
position: relative;
}
.h5p-question-scorebar {
max-width: calc(100% - 2em);
vertical-align: top;
opacity: 0;
max-height: 0;
transition: max-height 0.15s ease, margin-top 0.15s ease, margin-bottom 0.15s ease, opacity 0.15s cubic-bezier(0,1,0,1);
}
.h5p-question-scorebar.h5p-question-visible,
.h5p-question-feedback.h5p-question-visible,
.h5p-question-buttons.h5p-question-visible {
opacity: 1;
transition: max-height 0.15s ease, margin-top 0.15s ease, margin-bottom 0.15s ease, opacity 0.15s ease-in;
}
.h5p-question-scorebar.h5p-question-visible {
width: 13em;
max-width: calc(100% - 2em);
margin: 0 0 1em 1em;
padding-right: 0.5em;
display: inline-block;
}
.h5p-question-scorebar.full-width {
min-width: auto;
width: calc(100% - 2em);
}
.h5p-question-scorebar .h5p-joubelui-score-bar {
width: 100%;
}
.h5p-question-feedback {
font-weight: bold;
color: #1a73d9;
margin: 0 1em;
max-height: 0;
opacity: 0;
transition: max-height 0.15s ease, margin-top 0.15s ease, margin-bottom 0.15s ease, opacity 0.15s cubic-bezier(0,1,0,1);
}
.h5p-question-feedback.h5p-question-visible {
margin: 1em;
}
.h5p-question-feedback-content {
font-size: 1em;
display: none;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.h5p-question-visible .h5p-question-feedback-content.has-content {
display: block;
margin-bottom: 0.8em;
}
.h5p-question-feedback-content-text {
display: inline-block;
}
.h5p-question-buttons.h5p-question-visible {
display: inline-block;
width: calc(100% - 1.5em);
margin-left: 1em;
margin-right: 0.5em;
margin-bottom: 1em;
}
.h5p-question-buttons .h5p-joubelui-button,
.h5p-question-buttons .h5p-joubelui-button:first-child:last-child {
margin: 0 0.5em 0 0;
white-space: nowrap;
}
.h5p-question-buttons.has-scorebar {
width: calc(100% - 15em - 1px); /* Need the 1px because of rounding */
margin-left: 0;
}
.h5p-question-buttons.has-scorebar.wrap {
margin-left: 1em;
width: calc(100% - 1.5em);
}
.h5p-question-feedback.h5p-question-popup .h5p-question-buttons {
height: 3.14286em;
max-height: 3.14286em;
transition: none;
}
/* Remove margins when no frame or transparent */
.h5p-no-frame > .h5p-question > *,
.h5p-transparent > div > .h5p-question > * {
margin-left: 0 !important;
margin-right: 0;
}
.h5p-no-frame > .h5p-question > .h5p-question-buttons.wrap,
.h5p-transparent > div > .h5p-question > .h5p-question-buttons.wrap {
width: 100%;
}
.h5p-no-frame > .h5p-question > *:first-child,
.h5p-transparent > div > .h5p-question > *:first-child {
margin-top: 0;
}
.h5p-no-frame > .h5p-question > *:last-child,
.h5p-transparent > div > .h5p-question > *:last-child {
margin-bottom: 0;
}
/* CP specific styles */
.h5p-course-presentation .h5p-question-introduction {
font-size: 1.125em;
line-height: 1.125em;
}
.h5p-course-presentation .h5p-question-introduction > p {
font-size: 1em;
line-height: 1em;
margin: 0;
}
.h5p-question .h5p-hidden-read {
width: 1px;
height: 1px;
top: -1px;
position: absolute;
text-indent: 1px;
overflow: hidden;
}
.h5p-question-popups {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
}
.h5p-question-popups.hidden {
display: none;
}
.h5p-question-feedback.h5p-question-popup {
position: absolute;
display: none;
width: 22em;
max-width: 100%;
margin: 0;
z-index: 3;
background-color: white;
box-shadow: 0px 0px 7px 0px rgba(0, 0, 0, 0.59);
border-radius: 1em;
padding: 1.5em;
transition: none;
}
.h5p-question-feedback.h5p-question-popup.h5p-question-visible {
display: block;
box-sizing: border-box;
max-height: 100%;
}
.h5p-question-feedback.h5p-question-popup .h5p-question-feedback-content {
display: block;
top: 0;
}
.h5p-question-feedback.h5p-question-popup.h5p-question-feedback-correct .h5p-question-feedback-content {
margin-right: 1.5em;
}
.h5p-question-feedback.h5p-question-popup .h5p-question-retry-button {
margin: 1em 0 0 0;
}
.h5p-question-feedback.h5p-question-popup .h5p-question-buttons {
margin: 0;
}
.h5p-question-feedback.h5p-question-popup .h5p-question-feedback-close {
position: absolute;
right: 0;
top: 0;
margin: 1em;
cursor: pointer;
}
.h5p-question-feedback.h5p-question-popup .h5p-question-feedback-close:before {
font-family: 'h5pFontIcons';
font-size: 2.5em;
line-height: 0.9em;
content: '\e600';
color: #707070;
}
.h5p-question-feedback-tail {
position: absolute;
width: 1em;
height: 1em;
z-index: 3;
background-color: white;
box-shadow: -2px -2px 0px 0px rgba(0, 0, 0, 0.18);
transform: rotate(225deg);
}
.h5p-question-plus-one,
.h5p-question-minus-one {
position: absolute;
width: 1.923076923em;
height: calc(1.923076923em * 0.638297872);
background-size: 100% 100%;
right: -1.615384615em;
top: -0.846153846em;
z-index: 1;
opacity: 1;
transition: opacity 150ms linear, transform 150ms linear;
}
.h5p-question-plus-one {
background-image: url(../images/plus-one.svg);
}
.h5p-question-minus-one {
background-image: url(../images/minus-one.svg);
}
.h5p-question-hidden-one {
opacity: 0;
transform: translateY(100%);
}