fcad-core-dragon 2.0.1 → 2.0.2-beta.2
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/.editorconfig +33 -33
- package/.eslintignore +29 -29
- package/.eslintrc.cjs +81 -81
- package/CHANGELOG +17 -1
- package/bk.scss +117 -117
- package/package.json +1 -1
- package/src/$locales/en.json +18 -4
- package/src/$locales/fr.json +17 -3
- package/src/assets/data/onboardingMessages.json +47 -47
- package/src/components/AppBase.vue +36 -341
- package/src/components/AppBaseErrorDisplay.vue +438 -438
- package/src/components/AppBaseFlipCard.vue +84 -84
- package/src/components/AppBaseModule.vue +16 -21
- package/src/components/AppBasePage.vue +45 -14
- package/src/components/AppBasePopover.vue +41 -41
- package/src/components/AppBaseSkeleton.vue +45 -0
- package/src/components/AppCompAudio.vue +12 -3
- package/src/components/AppCompButtonProgress.vue +13 -2
- package/src/components/AppCompCarousel.vue +12 -4
- package/src/components/AppCompInputCheckBoxNx.vue +324 -0
- package/src/components/AppCompInputDropdownNx.vue +295 -0
- package/src/components/AppCompInputRadioNx.vue +264 -0
- package/src/components/AppCompInputTextNx.vue +148 -0
- package/src/components/AppCompInputTextTableNx.vue +198 -0
- package/src/components/AppCompInputTextToFillDropdownNx.vue +291 -0
- package/src/components/AppCompInputTextToFillNx.vue +277 -0
- package/src/components/AppCompJauge.vue +11 -4
- package/src/components/AppCompMenu.vue +7 -14
- package/src/components/AppCompMenuItem.vue +7 -5
- package/src/components/AppCompNavigation.vue +21 -21
- package/src/components/AppCompNoteCall.vue +1 -0
- package/src/components/AppCompNoteCredit.vue +2 -1
- package/src/components/AppCompPlayBarNext.vue +94 -41
- package/src/components/AppCompPlayBarProgress.vue +82 -82
- package/src/components/AppCompPopUpNext.vue +6 -6
- package/src/components/AppCompQuiz.vue +500 -0
- package/src/components/AppCompQuizRecall.vue +113 -66
- package/src/components/AppCompSettingsMenu.vue +172 -172
- package/src/components/AppCompTableOfContent.vue +39 -10
- package/src/components/AppCompVideoPlayer.vue +1 -1
- package/src/components/AppCompViewDisplay.vue +6 -6
- package/src/composables/useQuiz.js +62 -179
- package/src/directives/nvdaFix.js +53 -0
- package/src/externalComps/ModuleView.vue +22 -22
- package/src/externalComps/SummaryView.vue +91 -91
- package/src/main.js +227 -30
- package/src/mixins/$mediaMixins.js +1 -11
- package/src/module/stores/appStore.js +29 -11
- package/src/module/xapi/Crypto/Hasher.js +241 -241
- package/src/module/xapi/Crypto/WordArray.js +278 -278
- package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +103 -103
- package/src/module/xapi/Crypto/algorithms/C_algo.js +315 -315
- package/src/module/xapi/Crypto/algorithms/HMAC.js +9 -9
- package/src/module/xapi/Crypto/algorithms/SHA1.js +9 -9
- package/src/module/xapi/Crypto/encoders/Base.js +105 -105
- package/src/module/xapi/Crypto/encoders/Base64.js +99 -99
- package/src/module/xapi/Crypto/encoders/Hex.js +61 -61
- package/src/module/xapi/Crypto/encoders/Latin1.js +61 -61
- package/src/module/xapi/Crypto/encoders/Utf8.js +45 -45
- package/src/module/xapi/Crypto/index.js +53 -53
- package/src/module/xapi/Statement/activity.js +47 -47
- package/src/module/xapi/Statement/agent.js +55 -55
- package/src/module/xapi/Statement/group.js +26 -26
- package/src/module/xapi/Statement/index.js +259 -259
- package/src/module/xapi/Statement/statement.js +253 -253
- package/src/module/xapi/Statement/statementRef.js +23 -23
- package/src/module/xapi/Statement/substatement.js +22 -22
- package/src/module/xapi/Statement/verb.js +36 -36
- package/src/module/xapi/activitytypes.js +17 -17
- package/src/module/xapi/utils.js +167 -167
- package/src/module/xapi/verbs.js +294 -294
- package/src/module/xapi/xapiStatement.js +444 -444
- package/src/plugins/bus.js +8 -8
- package/src/plugins/gsap.js +14 -14
- package/src/plugins/i18n.js +44 -44
- package/src/plugins/idb.js +1 -1
- package/src/plugins/save.js +37 -37
- package/src/plugins/scorm.js +287 -287
- package/src/plugins/xapi.js +11 -11
- package/src/public/index.html +33 -33
- package/src/shared/generalfuncs.js +134 -0
- package/src/shared/validators.js +308 -234
- package/src/components/AppCompInputCheckBoxNext.vue +0 -205
- package/src/components/AppCompInputDropdownNext.vue +0 -201
- package/src/components/AppCompInputRadioNext.vue +0 -158
- package/src/components/AppCompInputTextNext.vue +0 -124
- package/src/components/AppCompInputTextTableNext.vue +0 -142
- package/src/components/AppCompInputTextToFillDropdownNext.vue +0 -238
- package/src/components/AppCompInputTextToFillNext.vue +0 -171
- package/src/components/AppCompQuizNext.vue +0 -2908
package/.editorconfig
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
# http://editorconfig.org
|
|
2
|
-
root = true
|
|
3
|
-
|
|
4
|
-
[*]
|
|
5
|
-
indent_style = space
|
|
6
|
-
indent_size = 2
|
|
7
|
-
end_of_line = lf
|
|
8
|
-
charset = utf-8
|
|
9
|
-
trim_trailing_whitespace = true
|
|
10
|
-
insert_final_newline = true
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
# The JSON files contain newlines inconsistently
|
|
14
|
-
[*.json]
|
|
15
|
-
insert_final_newline = ignore
|
|
16
|
-
|
|
17
|
-
# Minified JavaScript files shouldn't be changed
|
|
18
|
-
[**.min.js]
|
|
19
|
-
indent_style = ignore
|
|
20
|
-
insert_final_newline = ignore
|
|
21
|
-
|
|
22
|
-
# Makefiles always use tabs for indentation
|
|
23
|
-
[Makefile]
|
|
24
|
-
indent_style = tab
|
|
25
|
-
|
|
26
|
-
# Batch files use tabs for indentation
|
|
27
|
-
[*.bat]
|
|
28
|
-
indent_style = tab
|
|
29
|
-
|
|
30
|
-
[*.md]
|
|
31
|
-
trim_trailing_whitespace = false
|
|
32
|
-
insert_final_newline = false
|
|
33
|
-
|
|
1
|
+
# http://editorconfig.org
|
|
2
|
+
root = true
|
|
3
|
+
|
|
4
|
+
[*]
|
|
5
|
+
indent_style = space
|
|
6
|
+
indent_size = 2
|
|
7
|
+
end_of_line = lf
|
|
8
|
+
charset = utf-8
|
|
9
|
+
trim_trailing_whitespace = true
|
|
10
|
+
insert_final_newline = true
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# The JSON files contain newlines inconsistently
|
|
14
|
+
[*.json]
|
|
15
|
+
insert_final_newline = ignore
|
|
16
|
+
|
|
17
|
+
# Minified JavaScript files shouldn't be changed
|
|
18
|
+
[**.min.js]
|
|
19
|
+
indent_style = ignore
|
|
20
|
+
insert_final_newline = ignore
|
|
21
|
+
|
|
22
|
+
# Makefiles always use tabs for indentation
|
|
23
|
+
[Makefile]
|
|
24
|
+
indent_style = tab
|
|
25
|
+
|
|
26
|
+
# Batch files use tabs for indentation
|
|
27
|
+
[*.bat]
|
|
28
|
+
indent_style = tab
|
|
29
|
+
|
|
30
|
+
[*.md]
|
|
31
|
+
trim_trailing_whitespace = false
|
|
32
|
+
insert_final_newline = false
|
|
33
|
+
|
package/.eslintignore
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
.DS_Store
|
|
2
|
-
node_modules
|
|
3
|
-
/dist
|
|
4
|
-
yalc.lock
|
|
5
|
-
package-lock.json
|
|
6
|
-
.zip
|
|
7
|
-
|
|
8
|
-
# local env files
|
|
9
|
-
.env.local
|
|
10
|
-
.env.*.local
|
|
11
|
-
|
|
12
|
-
# Log files
|
|
13
|
-
npm-debug.log*
|
|
14
|
-
yarn-debug.log*
|
|
15
|
-
yarn-error.log*
|
|
16
|
-
pnpm-debug.log*
|
|
17
|
-
|
|
18
|
-
# Editor directories and files
|
|
19
|
-
.idea
|
|
20
|
-
.vscode
|
|
21
|
-
*.suo
|
|
22
|
-
*.ntvs*
|
|
23
|
-
*.njsproj
|
|
24
|
-
*.sln
|
|
25
|
-
*.sw?
|
|
26
|
-
\_*
|
|
27
|
-
.eslintrc
|
|
28
|
-
.gitignore
|
|
29
|
-
|
|
1
|
+
.DS_Store
|
|
2
|
+
node_modules
|
|
3
|
+
/dist
|
|
4
|
+
yalc.lock
|
|
5
|
+
package-lock.json
|
|
6
|
+
.zip
|
|
7
|
+
|
|
8
|
+
# local env files
|
|
9
|
+
.env.local
|
|
10
|
+
.env.*.local
|
|
11
|
+
|
|
12
|
+
# Log files
|
|
13
|
+
npm-debug.log*
|
|
14
|
+
yarn-debug.log*
|
|
15
|
+
yarn-error.log*
|
|
16
|
+
pnpm-debug.log*
|
|
17
|
+
|
|
18
|
+
# Editor directories and files
|
|
19
|
+
.idea
|
|
20
|
+
.vscode
|
|
21
|
+
*.suo
|
|
22
|
+
*.ntvs*
|
|
23
|
+
*.njsproj
|
|
24
|
+
*.sln
|
|
25
|
+
*.sw?
|
|
26
|
+
\_*
|
|
27
|
+
.eslintrc
|
|
28
|
+
.gitignore
|
|
29
|
+
|
package/.eslintrc.cjs
CHANGED
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
// Special confirugation for pettier for this project. Creating this file is optional in a project.
|
|
2
|
-
module.exports = {
|
|
3
|
-
root: true,
|
|
4
|
-
env: {
|
|
5
|
-
node: true,
|
|
6
|
-
browser: true
|
|
7
|
-
},
|
|
8
|
-
plugins: ['prettier'],
|
|
9
|
-
extends: ['eslint:recommended', 'plugin:vue/vue3-recommended', 'prettier'],
|
|
10
|
-
rules: {
|
|
11
|
-
// Only allow debugger in development
|
|
12
|
-
'no-debugger': process.env.PRE_COMMIT ? 'error' : 'off',
|
|
13
|
-
// Only allow `console.log` in development
|
|
14
|
-
'no-console': process.env.PRE_COMMIT
|
|
15
|
-
? ['error', { allow: ['warn', 'error'] }]
|
|
16
|
-
: 'off',
|
|
17
|
-
//'comma-dangle': ['error', 'never'],
|
|
18
|
-
'no-alert': 'off',
|
|
19
|
-
//'vue/array-bracket-spacing': 'error',
|
|
20
|
-
//'vue/block-spacing': 'error',
|
|
21
|
-
// 'vue/comma-dangle': ['error', 'never'],
|
|
22
|
-
//'vue/object-curly-spacing': ['error', 'always'],
|
|
23
|
-
'vue/no-v-for-template-key': 'off',
|
|
24
|
-
'vue/valid-template-root': 'off',
|
|
25
|
-
// 'vue/no-v-for-template-key-on-child':'off',
|
|
26
|
-
'vue/component-name-in-template-casing': [
|
|
27
|
-
'error',
|
|
28
|
-
'kebab-case',
|
|
29
|
-
{
|
|
30
|
-
ignores: []
|
|
31
|
-
}
|
|
32
|
-
],
|
|
33
|
-
'vue/no-v-html': 'off',
|
|
34
|
-
'prettier/prettier': [
|
|
35
|
-
'error',
|
|
36
|
-
{
|
|
37
|
-
singleQuote: true,
|
|
38
|
-
semi: false,
|
|
39
|
-
tabWidth: 2,
|
|
40
|
-
trailingComma: 'none',
|
|
41
|
-
arrowParens: 'always',
|
|
42
|
-
htmlWhitespaceSensitivity: 'ignore',
|
|
43
|
-
endOfLine: 'auto'
|
|
44
|
-
}
|
|
45
|
-
],
|
|
46
|
-
'no-param-reassign': [0, { allowPassedByValue: true }],
|
|
47
|
-
'no-shadow': 'off',
|
|
48
|
-
'prefer-const': [
|
|
49
|
-
'off',
|
|
50
|
-
{
|
|
51
|
-
destructuring: 'any',
|
|
52
|
-
ignoreReadBeforeAssign: false
|
|
53
|
-
}
|
|
54
|
-
],
|
|
55
|
-
'consistent-return': 'off',
|
|
56
|
-
camelcase: 'off',
|
|
57
|
-
'no-underscore-dangle': 'off',
|
|
58
|
-
'no-restricted-syntax': 'off',
|
|
59
|
-
'no-lonely-if': 'off',
|
|
60
|
-
'default-case': 'off',
|
|
61
|
-
'no-plusplus': 'off',
|
|
62
|
-
'no-loop-func': 'off',
|
|
63
|
-
'no-prototype-builtins': 'off',
|
|
64
|
-
'func-names': 'off',
|
|
65
|
-
'no-unused-vars': ['error', { args: 'none', ignoreRestSiblings: true }]
|
|
66
|
-
},
|
|
67
|
-
parserOptions: {
|
|
68
|
-
sourceType: 'module'
|
|
69
|
-
},
|
|
70
|
-
overrides: [
|
|
71
|
-
{
|
|
72
|
-
files: [
|
|
73
|
-
'**/__tests__/*.{j,t}s?(x)',
|
|
74
|
-
'**/tests/unit/**/*.spec.{j,t}s?(x)'
|
|
75
|
-
],
|
|
76
|
-
env: {
|
|
77
|
-
jest: true
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
]
|
|
81
|
-
}
|
|
1
|
+
// Special confirugation for pettier for this project. Creating this file is optional in a project.
|
|
2
|
+
module.exports = {
|
|
3
|
+
root: true,
|
|
4
|
+
env: {
|
|
5
|
+
node: true,
|
|
6
|
+
browser: true
|
|
7
|
+
},
|
|
8
|
+
plugins: ['prettier'],
|
|
9
|
+
extends: ['eslint:recommended', 'plugin:vue/vue3-recommended', 'prettier'],
|
|
10
|
+
rules: {
|
|
11
|
+
// Only allow debugger in development
|
|
12
|
+
'no-debugger': process.env.PRE_COMMIT ? 'error' : 'off',
|
|
13
|
+
// Only allow `console.log` in development
|
|
14
|
+
'no-console': process.env.PRE_COMMIT
|
|
15
|
+
? ['error', { allow: ['warn', 'error'] }]
|
|
16
|
+
: 'off',
|
|
17
|
+
//'comma-dangle': ['error', 'never'],
|
|
18
|
+
'no-alert': 'off',
|
|
19
|
+
//'vue/array-bracket-spacing': 'error',
|
|
20
|
+
//'vue/block-spacing': 'error',
|
|
21
|
+
// 'vue/comma-dangle': ['error', 'never'],
|
|
22
|
+
//'vue/object-curly-spacing': ['error', 'always'],
|
|
23
|
+
'vue/no-v-for-template-key': 'off',
|
|
24
|
+
'vue/valid-template-root': 'off',
|
|
25
|
+
// 'vue/no-v-for-template-key-on-child':'off',
|
|
26
|
+
'vue/component-name-in-template-casing': [
|
|
27
|
+
'error',
|
|
28
|
+
'kebab-case',
|
|
29
|
+
{
|
|
30
|
+
ignores: []
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
'vue/no-v-html': 'off',
|
|
34
|
+
'prettier/prettier': [
|
|
35
|
+
'error',
|
|
36
|
+
{
|
|
37
|
+
singleQuote: true,
|
|
38
|
+
semi: false,
|
|
39
|
+
tabWidth: 2,
|
|
40
|
+
trailingComma: 'none',
|
|
41
|
+
arrowParens: 'always',
|
|
42
|
+
htmlWhitespaceSensitivity: 'ignore',
|
|
43
|
+
endOfLine: 'auto'
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
'no-param-reassign': [0, { allowPassedByValue: true }],
|
|
47
|
+
'no-shadow': 'off',
|
|
48
|
+
'prefer-const': [
|
|
49
|
+
'off',
|
|
50
|
+
{
|
|
51
|
+
destructuring: 'any',
|
|
52
|
+
ignoreReadBeforeAssign: false
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
'consistent-return': 'off',
|
|
56
|
+
camelcase: 'off',
|
|
57
|
+
'no-underscore-dangle': 'off',
|
|
58
|
+
'no-restricted-syntax': 'off',
|
|
59
|
+
'no-lonely-if': 'off',
|
|
60
|
+
'default-case': 'off',
|
|
61
|
+
'no-plusplus': 'off',
|
|
62
|
+
'no-loop-func': 'off',
|
|
63
|
+
'no-prototype-builtins': 'off',
|
|
64
|
+
'func-names': 'off',
|
|
65
|
+
'no-unused-vars': ['error', { args: 'none', ignoreRestSiblings: true }]
|
|
66
|
+
},
|
|
67
|
+
parserOptions: {
|
|
68
|
+
sourceType: 'module'
|
|
69
|
+
},
|
|
70
|
+
overrides: [
|
|
71
|
+
{
|
|
72
|
+
files: [
|
|
73
|
+
'**/__tests__/*.{j,t}s?(x)',
|
|
74
|
+
'**/tests/unit/**/*.spec.{j,t}s?(x)'
|
|
75
|
+
],
|
|
76
|
+
env: {
|
|
77
|
+
jest: true
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
}
|
package/CHANGELOG
CHANGED
|
@@ -1,4 +1,20 @@
|
|
|
1
|
-
2.0.
|
|
1
|
+
2.0.2-beta.2(25 août 2025)
|
|
2
|
+
Exercices : Renommer app-comp-quiz-nx en app-comp-quiz pour assurer la compatibilité avec les projets existants
|
|
3
|
+
|
|
4
|
+
2.0.2-beta.1(19 août 2025)
|
|
5
|
+
Exercices : Réécriture complète de la logique derrière les exercices
|
|
6
|
+
|
|
7
|
+
Rappel de réponse : Mise à jour automatique du contenu quand la réponse change
|
|
8
|
+
|
|
9
|
+
Accessibilité : Balise fieldset qui annonce la marche \ suivre quand on arrive sur un exercice
|
|
10
|
+
|
|
11
|
+
Lecteur audio : meilleur responsive
|
|
12
|
+
|
|
13
|
+
Ajout de composants Skeleton Loader (Vuetify) au moment du chargement du contenu des exercices
|
|
14
|
+
|
|
15
|
+
Nouveau nom de classe dans les exercices texte tableau
|
|
16
|
+
|
|
17
|
+
2.0.1(12 août 2025)
|
|
2
18
|
carroussel : Changement du titre h3 pour une balise p avec une classe
|
|
3
19
|
|
|
4
20
|
TOC : Alignement vertical du libellé "terminé"
|
package/bk.scss
CHANGED
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
.navbar {
|
|
4
|
-
position: absolute;
|
|
5
|
-
top: 0;
|
|
6
|
-
left: 0;
|
|
7
|
-
z-index: 10;
|
|
8
|
-
display: flex;
|
|
9
|
-
flex-direction: column;
|
|
10
|
-
flex-wrap: wrap;
|
|
11
|
-
align-content: start;
|
|
12
|
-
width: 67px;
|
|
13
|
-
height: 100%;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.module-wrapper {
|
|
17
|
-
width: 100%;
|
|
18
|
-
position: relative;
|
|
19
|
-
|
|
20
|
-
#wrapper-content {
|
|
21
|
-
width: 100%;
|
|
22
|
-
position: relative;
|
|
23
|
-
padding-right: 0 !important;
|
|
24
|
-
padding-left: 0 !important;
|
|
25
|
-
|
|
26
|
-
&.active {
|
|
27
|
-
overflow: hidden;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.box {
|
|
31
|
-
width: 100%;
|
|
32
|
-
height: 95%;
|
|
33
|
-
|
|
34
|
-
.app-page {
|
|
35
|
-
width: 100%;
|
|
36
|
-
margin-top: 60px;
|
|
37
|
-
|
|
38
|
-
.row {
|
|
39
|
-
width: 100%;
|
|
40
|
-
margin-right: 0;
|
|
41
|
-
margin-left: 0;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.app-comp-table-of-content {
|
|
48
|
-
display: -webkit-flex;
|
|
49
|
-
display: flex;
|
|
50
|
-
flex-direction: column;
|
|
51
|
-
flex-wrap: wrap;
|
|
52
|
-
position: absolute;
|
|
53
|
-
top: 0px;
|
|
54
|
-
min-height: 100%;
|
|
55
|
-
z-index: 1;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
.app-nav {
|
|
60
|
-
.md-controller {
|
|
61
|
-
display: -webkit-flex;
|
|
62
|
-
display: flex;
|
|
63
|
-
flex-direction: row;
|
|
64
|
-
align-items: baseline;
|
|
65
|
-
//width: $widthPlayer;
|
|
66
|
-
width: 50%;
|
|
67
|
-
|
|
68
|
-
.ctrl-play {
|
|
69
|
-
display: -webkit-flex;
|
|
70
|
-
display: flex;
|
|
71
|
-
flex-direction: row;
|
|
72
|
-
align-items: baseline;
|
|
73
|
-
//width: $widthPlayer;
|
|
74
|
-
width: 50%;
|
|
75
|
-
|
|
76
|
-
#progress-bar {
|
|
77
|
-
display: block;
|
|
78
|
-
//width: $widthProgressBar;
|
|
79
|
-
width: 150px;
|
|
80
|
-
//height: $heigthProgressBar;
|
|
81
|
-
height: 10px;
|
|
82
|
-
position: relative;
|
|
83
|
-
overflow: hidden;
|
|
84
|
-
|
|
85
|
-
#progress {
|
|
86
|
-
display: block;
|
|
87
|
-
height: 100%;
|
|
88
|
-
background-color: red;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
#progress-shaddow {
|
|
92
|
-
display: block;
|
|
93
|
-
height: 100%;
|
|
94
|
-
position: absolute;
|
|
95
|
-
top: 0px;
|
|
96
|
-
left: 0px;
|
|
97
|
-
z-index: -1;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
.ctrl-subtitle {
|
|
103
|
-
//width: $widthCtrSubtitle;
|
|
104
|
-
width: 10%;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.ctrl-sound {
|
|
108
|
-
display: -webkit-flex;
|
|
109
|
-
display: flex;
|
|
110
|
-
flex-direction: row;
|
|
111
|
-
align-items: baseline;
|
|
112
|
-
justify-content: space-between;
|
|
113
|
-
//width: $widthCtrlSound;
|
|
114
|
-
width: 40%;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
.navbar {
|
|
4
|
+
position: absolute;
|
|
5
|
+
top: 0;
|
|
6
|
+
left: 0;
|
|
7
|
+
z-index: 10;
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
flex-wrap: wrap;
|
|
11
|
+
align-content: start;
|
|
12
|
+
width: 67px;
|
|
13
|
+
height: 100%;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.module-wrapper {
|
|
17
|
+
width: 100%;
|
|
18
|
+
position: relative;
|
|
19
|
+
|
|
20
|
+
#wrapper-content {
|
|
21
|
+
width: 100%;
|
|
22
|
+
position: relative;
|
|
23
|
+
padding-right: 0 !important;
|
|
24
|
+
padding-left: 0 !important;
|
|
25
|
+
|
|
26
|
+
&.active {
|
|
27
|
+
overflow: hidden;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.box {
|
|
31
|
+
width: 100%;
|
|
32
|
+
height: 95%;
|
|
33
|
+
|
|
34
|
+
.app-page {
|
|
35
|
+
width: 100%;
|
|
36
|
+
margin-top: 60px;
|
|
37
|
+
|
|
38
|
+
.row {
|
|
39
|
+
width: 100%;
|
|
40
|
+
margin-right: 0;
|
|
41
|
+
margin-left: 0;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.app-comp-table-of-content {
|
|
48
|
+
display: -webkit-flex;
|
|
49
|
+
display: flex;
|
|
50
|
+
flex-direction: column;
|
|
51
|
+
flex-wrap: wrap;
|
|
52
|
+
position: absolute;
|
|
53
|
+
top: 0px;
|
|
54
|
+
min-height: 100%;
|
|
55
|
+
z-index: 1;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.app-nav {
|
|
60
|
+
.md-controller {
|
|
61
|
+
display: -webkit-flex;
|
|
62
|
+
display: flex;
|
|
63
|
+
flex-direction: row;
|
|
64
|
+
align-items: baseline;
|
|
65
|
+
//width: $widthPlayer;
|
|
66
|
+
width: 50%;
|
|
67
|
+
|
|
68
|
+
.ctrl-play {
|
|
69
|
+
display: -webkit-flex;
|
|
70
|
+
display: flex;
|
|
71
|
+
flex-direction: row;
|
|
72
|
+
align-items: baseline;
|
|
73
|
+
//width: $widthPlayer;
|
|
74
|
+
width: 50%;
|
|
75
|
+
|
|
76
|
+
#progress-bar {
|
|
77
|
+
display: block;
|
|
78
|
+
//width: $widthProgressBar;
|
|
79
|
+
width: 150px;
|
|
80
|
+
//height: $heigthProgressBar;
|
|
81
|
+
height: 10px;
|
|
82
|
+
position: relative;
|
|
83
|
+
overflow: hidden;
|
|
84
|
+
|
|
85
|
+
#progress {
|
|
86
|
+
display: block;
|
|
87
|
+
height: 100%;
|
|
88
|
+
background-color: red;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
#progress-shaddow {
|
|
92
|
+
display: block;
|
|
93
|
+
height: 100%;
|
|
94
|
+
position: absolute;
|
|
95
|
+
top: 0px;
|
|
96
|
+
left: 0px;
|
|
97
|
+
z-index: -1;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.ctrl-subtitle {
|
|
103
|
+
//width: $widthCtrSubtitle;
|
|
104
|
+
width: 10%;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.ctrl-sound {
|
|
108
|
+
display: -webkit-flex;
|
|
109
|
+
display: flex;
|
|
110
|
+
flex-direction: row;
|
|
111
|
+
align-items: baseline;
|
|
112
|
+
justify-content: space-between;
|
|
113
|
+
//width: $widthCtrlSound;
|
|
114
|
+
width: 40%;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
package/package.json
CHANGED
package/src/$locales/en.json
CHANGED
|
@@ -75,7 +75,9 @@
|
|
|
75
75
|
},
|
|
76
76
|
"label": {
|
|
77
77
|
"side_panel": "side panel",
|
|
78
|
-
"timer": "estimated time"
|
|
78
|
+
"timer": "estimated time",
|
|
79
|
+
"info_long": "Display notes and references",
|
|
80
|
+
"note_reference": "???"
|
|
79
81
|
},
|
|
80
82
|
"message": {
|
|
81
83
|
"err_download_file": "The file download has failed.",
|
|
@@ -83,7 +85,7 @@
|
|
|
83
85
|
"first_option_dropdown": "Choose an option",
|
|
84
86
|
"no_attempts": "You have no more attempts.",
|
|
85
87
|
"loading_state_msg": "Loading. Please wait...",
|
|
86
|
-
"progress_card": "
|
|
88
|
+
"progress_card": "Progress status:",
|
|
87
89
|
"recall_done": "You have answered the question :",
|
|
88
90
|
"recall_undone": "You have not answered the question.",
|
|
89
91
|
"skip_content": "Skip to the main content."
|
|
@@ -129,7 +131,19 @@
|
|
|
129
131
|
"goodAnswer": "Good answer",
|
|
130
132
|
"badAnswer": "Wrong answer",
|
|
131
133
|
"neutralAnswer": "Neutral answer",
|
|
132
|
-
"answers": "Answer choices"
|
|
134
|
+
"answers": "Answer choices",
|
|
135
|
+
"radioFieldset": "Select one answer from the following",
|
|
136
|
+
"checkboxFieldset": "Select one or more answers from the following",
|
|
137
|
+
"options": "options",
|
|
138
|
+
"textTableFieldset1": "Fill the",
|
|
139
|
+
"textTableFieldset2": "following text fields",
|
|
140
|
+
"dropdownFieldsetSingle": "Select an answer in the following dropdown list",
|
|
141
|
+
"dropdownFieldsetMulti1": "Select an answer in the",
|
|
142
|
+
"dropdownFieldsetMulti2": "following dropdown lists",
|
|
143
|
+
"textToFillFieldset1": "In the following text, fill the",
|
|
144
|
+
"textToFillFieldset2": "text fields",
|
|
145
|
+
"textToFillDropdownFieldset1": "In the following text, Select an answer in the",
|
|
146
|
+
"textToFillDropdownFieldset2": "text fields"
|
|
133
147
|
},
|
|
134
148
|
"a11y_sr": {
|
|
135
149
|
"time": {
|
|
@@ -140,4 +154,4 @@
|
|
|
140
154
|
"seek_slider": "Seek slider",
|
|
141
155
|
"range_expression": "at %x of %y."
|
|
142
156
|
}
|
|
143
|
-
}
|
|
157
|
+
}
|
package/src/$locales/fr.json
CHANGED
|
@@ -38,7 +38,9 @@
|
|
|
38
38
|
},
|
|
39
39
|
"label": {
|
|
40
40
|
"side_panel": "fenêtre latérale",
|
|
41
|
-
"timer": "temps estimé"
|
|
41
|
+
"timer": "temps estimé",
|
|
42
|
+
"info_long": "Afficher les notes et les mentions de sources",
|
|
43
|
+
"note_reference": "Note de reference"
|
|
42
44
|
},
|
|
43
45
|
"message": {
|
|
44
46
|
"err_download_file": "Le téléchargement de ce fichier a échoué.",
|
|
@@ -46,7 +48,7 @@
|
|
|
46
48
|
"first_option_dropdown": "Choisir une option",
|
|
47
49
|
"no_attempts": "Vous n'avez plus d'essai.",
|
|
48
50
|
"loading_state_msg": "Chargement. Veuillez patienter...",
|
|
49
|
-
"progress_card": "État d’avancement:",
|
|
51
|
+
"progress_card": "État d’avancement :",
|
|
50
52
|
"recall_done": "Vous avez répondu précédemment à la question :",
|
|
51
53
|
"recall_undone": "Vous n'avez pas répondu à la question concernée.",
|
|
52
54
|
"skip_content": "Passer au contenu principal"
|
|
@@ -92,7 +94,19 @@
|
|
|
92
94
|
"goodAnswer": "Bonne réponse",
|
|
93
95
|
"badAnswer": "Mauvaise réponse",
|
|
94
96
|
"neutralAnswer": "Réponse neutre",
|
|
95
|
-
"answers": "Choix de réponses"
|
|
97
|
+
"answers": "Choix de réponses",
|
|
98
|
+
"radioFieldset": "Sélectionnez une réponse parmi les",
|
|
99
|
+
"checkboxFieldset": "Sélectionnez une ou plusieurs réponses parmi les",
|
|
100
|
+
"options": "options suivantes",
|
|
101
|
+
"textTableFieldset1": "Remplissez les",
|
|
102
|
+
"textTableFieldset2": "champs de texte suivants",
|
|
103
|
+
"dropdownFieldsetSingle": "Sélectionnez une réponse dans la liste déroulante suivante",
|
|
104
|
+
"dropdownFieldsetMulti1": "Sélectionnez une réponse dans les",
|
|
105
|
+
"dropdownFieldsetMulti2": "listes déroulantes suivantes",
|
|
106
|
+
"textToFillFieldset1": "Dans le texte qui suit, remplissez les",
|
|
107
|
+
"textToFillFieldset2": "champs de texte",
|
|
108
|
+
"textToFillDropdownFieldset1": "Dans le texte qui suit, Sélectionnez une réponse dans les",
|
|
109
|
+
"textToFillDropdownFieldset2": "listes déroulantes"
|
|
96
110
|
},
|
|
97
111
|
"a11y_sr": {
|
|
98
112
|
"time": {
|