jclic 2.2.1 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -7
- package/dist-node/jclic-node.js +14157 -0
- package/dist-node/jclic-node.umd.cjs +530 -0
- package/package.json +38 -26
- package/.vscode/launch.json +0 -33
- package/.vscode/settings.json +0 -13
- package/CHANGELOG.md +0 -672
- package/TRANSLATIONS.md +0 -11
- package/build-locales.mjs +0 -82
- package/dist/jclic-node.js +0 -31680
- package/dist/jclic-node.js.map +0 -1
- package/dist/jclic.components.LICENSE +0 -2254
- package/dist/jclic.min.js +0 -27
- package/dist/jclic.min.js.map +0 -1
- package/eslint.config.mjs +0 -31
- package/jsdoc.config.js +0 -71
- package/locales/ar.po +0 -244
- package/locales/ast.po +0 -246
- package/locales/bs.po +0 -247
- package/locales/ca.po +0 -248
- package/locales/ca_ES@valencia.po +0 -248
- package/locales/cs.po +0 -244
- package/locales/da.po +0 -244
- package/locales/de.po +0 -246
- package/locales/el.po +0 -244
- package/locales/es.po +0 -248
- package/locales/eu.po +0 -244
- package/locales/fr.po +0 -244
- package/locales/gl.po +0 -244
- package/locales/he.po +0 -244
- package/locales/hr.po +0 -245
- package/locales/it.po +0 -246
- package/locales/ja.po +0 -242
- package/locales/jclic.js.pot +0 -241
- package/locales/nb_NO.po +0 -244
- package/locales/nl.po +0 -244
- package/locales/pl.po +0 -244
- package/locales/pt.po +0 -244
- package/locales/pt_BR.po +0 -248
- package/locales/ro.po +0 -248
- package/locales/ru.po +0 -245
- package/locales/ta.po +0 -244
- package/locales/tr.po +0 -246
- package/locales/uk.po +0 -247
- package/locales/vec.po +0 -244
- package/locales/zh_TW.po +0 -246
- package/patches/po2json+1.0.0-beta-3.patch +0 -12
- package/src/AWT.js +0 -2067
- package/src/Activity.js +0 -1311
- package/src/Deps.js +0 -232
- package/src/GlobalData.js +0 -5
- package/src/JClic.js +0 -196
- package/src/JClicPlayer.js +0 -1308
- package/src/PlayerHistory.js +0 -305
- package/src/Utils.js +0 -1355
- package/src/activities/associations/ComplexAssociation.js +0 -321
- package/src/activities/associations/SimpleAssociation.js +0 -519
- package/src/activities/memory/MemoryGame.js +0 -423
- package/src/activities/panels/Explore.js +0 -349
- package/src/activities/panels/Identify.js +0 -356
- package/src/activities/panels/InformationScreen.js +0 -262
- package/src/activities/panels/Menu.js +0 -209
- package/src/activities/panels/icons/ico00.png +0 -0
- package/src/activities/panels/icons/ico01.png +0 -0
- package/src/activities/panels/icons/ico02.png +0 -0
- package/src/activities/panels/icons/ico03.png +0 -0
- package/src/activities/panels/icons/icofolder.png +0 -0
- package/src/activities/puzzles/DoublePuzzle.js +0 -424
- package/src/activities/puzzles/ExchangePuzzle.js +0 -374
- package/src/activities/puzzles/HolePuzzle.js +0 -360
- package/src/activities/text/Complete.js +0 -127
- package/src/activities/text/Evaluator.js +0 -534
- package/src/activities/text/FillInBlanks.js +0 -426
- package/src/activities/text/IdentifyText.js +0 -253
- package/src/activities/text/OrderText.js +0 -421
- package/src/activities/text/TextActivityBase.js +0 -557
- package/src/activities/text/TextActivityDocument.js +0 -660
- package/src/activities/text/WrittenAnswer.js +0 -557
- package/src/activities/textGrid/CrossWord.js +0 -565
- package/src/activities/textGrid/WordSearch.js +0 -458
- package/src/activities/textGrid/icons/hIcon.svg +0 -3
- package/src/activities/textGrid/icons/vIcon.svg +0 -3
- package/src/automation/AutoContentProvider.js +0 -182
- package/src/automation/arith/Arith.js +0 -864
- package/src/bags/ActivitySequence.js +0 -318
- package/src/bags/ActivitySequenceElement.js +0 -161
- package/src/bags/ActivitySequenceJump.js +0 -140
- package/src/bags/ConditionalJumpInfo.js +0 -113
- package/src/bags/JumpInfo.js +0 -136
- package/src/bags/MediaBag.js +0 -215
- package/src/bags/MediaBagElement.js +0 -516
- package/src/boxes/AbstractBox.js +0 -699
- package/src/boxes/ActiveBagContent.js +0 -494
- package/src/boxes/ActiveBox.js +0 -810
- package/src/boxes/ActiveBoxBag.js +0 -357
- package/src/boxes/ActiveBoxContent.js +0 -484
- package/src/boxes/ActiveBoxGrid.js +0 -179
- package/src/boxes/BoxBag.js +0 -500
- package/src/boxes/BoxBase.js +0 -398
- package/src/boxes/BoxConnector.js +0 -325
- package/src/boxes/TextGrid.js +0 -887
- package/src/boxes/TextGridContent.js +0 -215
- package/src/init-jsdom.js +0 -65
- package/src/jclic-node.js +0 -219
- package/src/media/ActiveMediaBag.js +0 -145
- package/src/media/ActiveMediaPlayer.js +0 -297
- package/src/media/AudioBuffer.js +0 -219
- package/src/media/EventSounds.js +0 -169
- package/src/media/EventSoundsElement.js +0 -155
- package/src/media/MediaContent.js +0 -328
- package/src/media/MidiAudioPlayer.js +0 -254
- package/src/media/icons/audio.svg +0 -3
- package/src/media/icons/generic.svg +0 -3
- package/src/media/icons/mic.svg +0 -3
- package/src/media/icons/movie.svg +0 -3
- package/src/media/icons/music.svg +0 -3
- package/src/media/icons/url.svg +0 -3
- package/src/media/sounds/actionError.mp3 +0 -0
- package/src/media/sounds/actionOk.mp3 +0 -0
- package/src/media/sounds/click.mp3 +0 -0
- package/src/media/sounds/finishedError.mp3 +0 -0
- package/src/media/sounds/finishedOk.mp3 +0 -0
- package/src/media/sounds/start.mp3 +0 -0
- package/src/project/JClicProject.js +0 -282
- package/src/project/ProjectSettings.js +0 -273
- package/src/report/ActionReg.js +0 -123
- package/src/report/ActivityReg.js +0 -271
- package/src/report/EncryptMin.js +0 -210
- package/src/report/Reporter.js +0 -727
- package/src/report/SCORM.js +0 -272
- package/src/report/SequenceReg.js +0 -275
- package/src/report/SessionReg.js +0 -340
- package/src/report/SessionStorageReporter.js +0 -131
- package/src/report/TCPReporter.js +0 -628
- package/src/shapers/ClassicJigSaw.js +0 -138
- package/src/shapers/Holes.js +0 -77
- package/src/shapers/JigSaw.js +0 -161
- package/src/shapers/Rectangular.js +0 -78
- package/src/shapers/Shaper.js +0 -386
- package/src/shapers/TriangularJigSaw.js +0 -121
- package/src/skins/BlueSkin.js +0 -80
- package/src/skins/Counter.js +0 -152
- package/src/skins/CustomSkin.js +0 -412
- package/src/skins/DefaultSkin.js +0 -376
- package/src/skins/EmptySkin.js +0 -82
- package/src/skins/GreenSkin.js +0 -94
- package/src/skins/MiniSkin.js +0 -130
- package/src/skins/OrangeSkin.js +0 -78
- package/src/skins/SimpleSkin.js +0 -92
- package/src/skins/Skin.js +0 -1021
- package/src/skins/assets/actionsIcon.svg +0 -3
- package/src/skins/assets/appLogo.svg +0 -8
- package/src/skins/assets/basic.css +0 -41
- package/src/skins/assets/closeDialogIcon.svg +0 -3
- package/src/skins/assets/closeIcon.svg +0 -3
- package/src/skins/assets/copyIcon.svg +0 -3
- package/src/skins/assets/fullScreenExitIcon.svg +0 -3
- package/src/skins/assets/fullScreenIcon.svg +0 -3
- package/src/skins/assets/infoIcon.svg +0 -3
- package/src/skins/assets/main.css +0 -43
- package/src/skins/assets/mainHalf.css +0 -23
- package/src/skins/assets/mainTwoThirds.css +0 -23
- package/src/skins/assets/mini.css +0 -15
- package/src/skins/assets/nextIcon.svg +0 -3
- package/src/skins/assets/okDialogIcon.svg +0 -3
- package/src/skins/assets/prevIcon.svg +0 -3
- package/src/skins/assets/reports.css +0 -156
- package/src/skins/assets/reportsIcon.svg +0 -3
- package/src/skins/assets/scoreIcon.svg +0 -3
- package/src/skins/assets/simple.css +0 -16
- package/src/skins/assets/simpleHalf.css +0 -11
- package/src/skins/assets/simpleTwoThirds.css +0 -11
- package/src/skins/assets/timeIcon.svg +0 -4
- package/src/skins/assets/waitAnim.css +0 -54
- package/src/skins/assets/waitImgBig.svg +0 -3
- package/src/skins/assets/waitImgSmall.svg +0 -3
- package/webpack.config.mjs +0 -169
package/src/JClic.js
DELETED
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* File : JClic.js
|
|
3
|
-
* Created : 01/04/2015
|
|
4
|
-
* By : Francesc Busquets <francesc@gmail.com>
|
|
5
|
-
*
|
|
6
|
-
* JClic.js
|
|
7
|
-
* An HTML5 player of JClic activities
|
|
8
|
-
* https://projectestac.github.io/jclic.js
|
|
9
|
-
*
|
|
10
|
-
* @source https://github.com/projectestac/jclic.js
|
|
11
|
-
*
|
|
12
|
-
* @license EUPL-1.2
|
|
13
|
-
* @licstart
|
|
14
|
-
* (c) 2000-2021 Educational Telematic Network of Catalonia (XTEC)
|
|
15
|
-
*
|
|
16
|
-
* Licensed under the EUPL, Version 1.1 or -as soon they will be approved by
|
|
17
|
-
* the European Commission- subsequent versions of the EUPL (the "Licence");
|
|
18
|
-
* You may not use this work except in compliance with the Licence.
|
|
19
|
-
*
|
|
20
|
-
* You may obtain a copy of the Licence at:
|
|
21
|
-
* https://joinup.ec.europa.eu/software/page/eupl
|
|
22
|
-
*
|
|
23
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
24
|
-
* distributed under the Licence is distributed on an "AS IS" basis, WITHOUT
|
|
25
|
-
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
26
|
-
* Licence for the specific language governing permissions and limitations
|
|
27
|
-
* under the Licence.
|
|
28
|
-
* @licend
|
|
29
|
-
* @module
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
/* global JClicDataProject, JClicDataOptions, window, document */
|
|
33
|
-
|
|
34
|
-
import $ from 'jquery';
|
|
35
|
-
import JClicPlayer from './JClicPlayer.js';
|
|
36
|
-
import JClicProject from './project/JClicProject.js';
|
|
37
|
-
import AWT from './AWT.js';
|
|
38
|
-
import Utils, { init, log } from './Utils.js';
|
|
39
|
-
import Deps from './Deps.js';
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* This is the main method of JClic
|
|
43
|
-
*
|
|
44
|
-
* Executes on `document.ready()`.
|
|
45
|
-
*
|
|
46
|
-
* The method iterates over all `div` objects with `JClic` class and creates a {@link module:JClicPlayer.JClicPlayer JClicPlayer}
|
|
47
|
-
* within them. Each player loads the JClic project file specified in the `data-project` attribute of
|
|
48
|
-
* the `div` tag.
|
|
49
|
-
*
|
|
50
|
-
* The `div` elements must preferabily be empty. Inner content may become overlapped by objects
|
|
51
|
-
* created by the JClic player.
|
|
52
|
-
*
|
|
53
|
-
* This method exports the global variable `window.JClicObject`, useful when other scripts
|
|
54
|
-
* need to make direct calls to the main components of JClic.
|
|
55
|
-
*
|
|
56
|
-
* The main members of the global variable `JClicObject` are:
|
|
57
|
-
* - `JClicObject.JClicPlayer` (the {@link module:JClicPlayer} object)
|
|
58
|
-
* - `JClicObject.JClicProject` (the {@link module:JClicProject} object)
|
|
59
|
-
* - `JClicObject.AWT` (the {@link module:AWT} object)
|
|
60
|
-
* - `JClicObject.Utils` (the {@link module:Utils} object)
|
|
61
|
-
* - `JClicObject.$` (the JQuery object)
|
|
62
|
-
* - `JClicObject.options` (the main options loaded at startup, usually the content of the global variable `JClicDataOptions`)
|
|
63
|
-
* - `JClicObject.projectFiles` (used by JSONP to store the content of some files when inaccessible to the browser because CORS or other restrictions)
|
|
64
|
-
* - `JClicObject.currentPlayers` (array with references to the players currently running)
|
|
65
|
-
* - `JClicObject.loadProject` (a function that starts a JClicPlayer on a specific `div`)
|
|
66
|
-
*
|
|
67
|
-
* @module JClic
|
|
68
|
-
* @example <caption>
|
|
69
|
-
* Creates a JClic div and loads "myproject.jclic" on it:
|
|
70
|
-
* </caption><div class ="JClic" data-project="myproject.jclic"></div>
|
|
71
|
-
* @example <caption>
|
|
72
|
-
* Creates a JClic div that loads "myproject.jclic" with additional parameters, passed as a JSON string.
|
|
73
|
-
* Note that `data-options` should be delimited by apostrophes `'` because quotation marks `"` are used
|
|
74
|
-
* for JSON keys and values:
|
|
75
|
-
* </caption><div class ="JClic" data-project="myproject.jclic" data-options='{"fade":"400","lang":"es","reporter":"TCPReporter","user":"test01","path":"localhost:9090"}'></div>
|
|
76
|
-
*/
|
|
77
|
-
export const JClicObject = {
|
|
78
|
-
Deps,
|
|
79
|
-
JClicPlayer,
|
|
80
|
-
JClicProject,
|
|
81
|
-
AWT,
|
|
82
|
-
Utils,
|
|
83
|
-
$,
|
|
84
|
-
options: typeof JClicDataOptions === 'undefined' ? {} : JClicDataOptions,
|
|
85
|
-
projectFiles: {},
|
|
86
|
-
currentPlayers: [],
|
|
87
|
-
loadProject,
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
*
|
|
92
|
-
* Creates a new JClicPlayer hosted on the specified `div`, and loads an specific project on it.
|
|
93
|
-
* @param {external:HTMLElement} div - The HTML element (usually a `<div/>`) that will be used as a main container of the player.
|
|
94
|
-
* @param {string} projectName - The file name or URL of the JClic project to be loaded
|
|
95
|
-
* @param {object} [options] - An optional set of preferences
|
|
96
|
-
* @returns {module:JClicPlayer.JClicPlayer}
|
|
97
|
-
*/
|
|
98
|
-
export function loadProject(div, projectName, options = {}) {
|
|
99
|
-
|
|
100
|
-
options = init({ ...JClicObject.options, ...options }, true, false);
|
|
101
|
-
let player = null;
|
|
102
|
-
|
|
103
|
-
// Find if there is another player already running on 'div'
|
|
104
|
-
for (const pl of JClicObject.currentPlayers) {
|
|
105
|
-
if (pl && pl.$topDiv && pl.$topDiv.get(-1) === div) {
|
|
106
|
-
// Player found! Check if it has the same options
|
|
107
|
-
log('debug', 'Existing JClicPlayer found in div. I will try to reuse it.');
|
|
108
|
-
player = pl;
|
|
109
|
-
for (const prop of Object.getOwnPropertyNames(options)) {
|
|
110
|
-
if (!player.options.hasOwnProperty(prop) || player.options[prop] !== options[prop]) {
|
|
111
|
-
log('debug', 'Existing JClicPlayer has diferent options! Creating a new one from scratch.');
|
|
112
|
-
player = null;
|
|
113
|
-
break;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
break;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
if (player)
|
|
121
|
-
player.reset();
|
|
122
|
-
else {
|
|
123
|
-
log('debug', 'Creating a new instance of JClicPlayer');
|
|
124
|
-
player = new JClicPlayer($(div).empty(), options);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
if (projectName)
|
|
128
|
-
player.initReporter()
|
|
129
|
-
.then(() => player.load(projectName))
|
|
130
|
-
.catch(err => {
|
|
131
|
-
log('error', `Unable to start reporting: ${err.toString()}.\n JClicPlayer will be removed.'`);
|
|
132
|
-
$(div).empty().removeAttr('style').append($('<h2/>').html(player.getMsg('ERROR'))).append($('<p/>').html(err));
|
|
133
|
-
const i = JClicObject.currentPlayers.indexOf(player);
|
|
134
|
-
if (i >= 0)
|
|
135
|
-
JClicObject.currentPlayers.splice(i, 1);
|
|
136
|
-
player = null;
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
if (player && options.savePlayersRef !== false && JClicObject.currentPlayers.indexOf(player) === -1)
|
|
140
|
-
JClicObject.currentPlayers.push(player);
|
|
141
|
-
|
|
142
|
-
return player;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// Make JClicObject global and attach resize handler
|
|
146
|
-
if (typeof window !== 'undefined') {
|
|
147
|
-
window.JClicObject = JClicObject;
|
|
148
|
-
const fnFit = () => JClicObject.currentPlayers.forEach(player => {
|
|
149
|
-
if (player && player.skin)
|
|
150
|
-
player.skin.fit();
|
|
151
|
-
});
|
|
152
|
-
$(document).on('webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange', fnFit);
|
|
153
|
-
$(window).on('resize', fnFit);
|
|
154
|
-
// Expose jQuery globally if attribute 'data-expose-jQuery' is set:
|
|
155
|
-
if (document.currentScript && document.currentScript.getAttribute('data-expose-jQuery'))
|
|
156
|
-
window.jQuery = JClicObject.$;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// Execute on document ready
|
|
160
|
-
$(function () {
|
|
161
|
-
// If defined, load the global variable `JClicDataOptions`
|
|
162
|
-
let options = typeof JClicDataOptions === 'undefined' ? {} : JClicDataOptions;
|
|
163
|
-
JClicObject.options = options;
|
|
164
|
-
|
|
165
|
-
if (!options.noInit) {
|
|
166
|
-
// If defined, load the global variable `JClicDataProject` or `JClicObject.projectFile`
|
|
167
|
-
let projectName =
|
|
168
|
-
typeof JClicDataProject === 'string' ?
|
|
169
|
-
JClicDataProject :
|
|
170
|
-
typeof JClicObject.projectFile === 'string' ?
|
|
171
|
-
JClicObject.projectFile :
|
|
172
|
-
null;
|
|
173
|
-
|
|
174
|
-
// Enable sync with browser history only when there is a single element of class 'JClic'.
|
|
175
|
-
// This is done automatically when this element is a direct child of body, or when 'browserHistory' is
|
|
176
|
-
// explicitly set
|
|
177
|
-
options.browserHistory = $('body>div.JClic').length === 1 || options.browserHistory && $('.JClic').length === 1;
|
|
178
|
-
|
|
179
|
-
// Search DOM elements with class "JClic" (usually of type 'div') and iterate over them
|
|
180
|
-
// initializing players
|
|
181
|
-
$('.JClic').each((_n, element) => {
|
|
182
|
-
const $div = $(element);
|
|
183
|
-
const prj = $div.data('project');
|
|
184
|
-
if (prj)
|
|
185
|
-
projectName = prj;
|
|
186
|
-
|
|
187
|
-
const opt = $div.data('options');
|
|
188
|
-
if (opt)
|
|
189
|
-
options = $.extend(Object.create(options), opt);
|
|
190
|
-
|
|
191
|
-
JClicObject.loadProject(element, projectName, options);
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
export default JClicObject;
|