fcad-core-dragon 2.1.0-beta.4 → 2.1.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/.editorconfig +8 -33
- package/.prettierrc +11 -0
- package/.vscode/extensions.json +8 -0
- package/.vscode/settings.json +16 -0
- package/CHANGELOG +20 -0
- package/eslint.config.js +60 -0
- package/package.json +9 -9
- package/src/$locales/en.json +3 -3
- package/src/$locales/fr.json +3 -3
- package/src/assets/data/onboardingMessages.json +47 -47
- package/src/components/AppBase.vue +5 -6
- package/src/components/AppBaseErrorDisplay.vue +438 -438
- package/src/components/AppBaseFlipCard.vue +84 -84
- package/src/components/AppBaseModule.vue +15 -17
- package/src/components/AppBasePage.vue +866 -783
- package/src/components/AppBasePopover.vue +41 -41
- package/src/components/AppBaseSkeleton.vue +24 -3
- package/src/components/AppCompAudio.vue +12 -2
- package/src/components/AppCompInputCheckBoxNx.vue +1 -2
- package/src/components/AppCompInputRadioNx.vue +8 -2
- package/src/components/AppCompInputTextToFillDropdownNx.vue +45 -0
- package/src/components/AppCompMenu.vue +424 -423
- package/src/components/AppCompNavigation.vue +2 -2
- package/src/components/AppCompPlayBarNext.vue +123 -94
- package/src/components/AppCompPopUpNext.vue +2 -2
- package/src/components/AppCompQuizNext.vue +12 -2
- package/src/components/AppCompQuizRecall.vue +10 -4
- package/src/components/AppCompSettingsMenu.vue +172 -172
- package/src/components/AppCompTableOfContent.vue +1 -4
- package/src/components/AppCompVideoPlayer.vue +7 -0
- package/src/components/AppCompViewDisplay.vue +6 -6
- package/src/composables/useTimer.js +17 -20
- package/src/externalComps/ModuleView.vue +22 -22
- package/src/externalComps/SummaryView.vue +91 -91
- package/src/module/stores/appStore.js +0 -1
- 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/helper.js +4 -0
- 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/router/index.js +1 -1
- package/src/shared/validators.js +22 -6
- package/.eslintignore +0 -29
- package/.eslintrc.cjs +0 -81
- package/bk.scss +0 -117
package/src/plugins/bus.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import emitter from 'tiny-emitter/instance'
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
$on: (...args) => emitter.on(...args),
|
|
5
|
-
$once: (...args) => emitter.once(...args),
|
|
6
|
-
$off: (...args) => emitter.off(...args),
|
|
7
|
-
$emit: (...args) => emitter.emit(...args)
|
|
8
|
-
}
|
|
1
|
+
import emitter from 'tiny-emitter/instance'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
$on: (...args) => emitter.on(...args),
|
|
5
|
+
$once: (...args) => emitter.once(...args),
|
|
6
|
+
$off: (...args) => emitter.off(...args),
|
|
7
|
+
$emit: (...args) => emitter.emit(...args)
|
|
8
|
+
}
|
package/src/plugins/helper.js
CHANGED
|
@@ -157,6 +157,10 @@ export default function helper(app, name) {
|
|
|
157
157
|
// HyperText Markup Language (HTML)
|
|
158
158
|
mimeType = 'text/html'
|
|
159
159
|
break
|
|
160
|
+
case aType.endsWith('.ggb') || aType.endsWith('.ggb'):
|
|
161
|
+
// HyperText Markup Language (HTML)
|
|
162
|
+
mimeType = 'text/xml'
|
|
163
|
+
break
|
|
160
164
|
}
|
|
161
165
|
|
|
162
166
|
return mimeType
|
package/src/plugins/save.js
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
/* creating a small save plug-in to save store state in the localStorage
|
|
2
|
-
* the plugin listen for mutations made to the Pinia store and store them in the local browser storage.
|
|
3
|
-
* This prevent reseting the store to initial state when the browser refreshes
|
|
4
|
-
* Note: the plugin is used in the store.js
|
|
5
|
-
*/
|
|
6
|
-
export function saveStatePlugin(store) {
|
|
7
|
-
store.subscribe((mutation, state) => {
|
|
8
|
-
// save the user data
|
|
9
|
-
if (Object.entries(state.$appStore.userMetaData).length) {
|
|
10
|
-
localStorage.setItem(
|
|
11
|
-
'userData',
|
|
12
|
-
JSON.stringify(state.$appStore.userMetaData)
|
|
13
|
-
)
|
|
14
|
-
} else if (
|
|
15
|
-
!localStorage.getItem('userData') &&
|
|
16
|
-
!Object.entries(state.$appStore.userMetaData).length
|
|
17
|
-
) {
|
|
18
|
-
localStorage.setItem('userData', JSON.stringify({}))
|
|
19
|
-
}
|
|
20
|
-
})
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* creating a small save plug-in to get stored state from the localStorage
|
|
25
|
-
*/
|
|
26
|
-
export function getSavedStatePlugin(type, id) {
|
|
27
|
-
if (localStorage.getItem('thisModule')) {
|
|
28
|
-
const savedData = JSON.parse(localStorage.getItem('thisModule'))
|
|
29
|
-
|
|
30
|
-
if (type === 'module' && savedData.id === id) return savedData
|
|
31
|
-
if (type === 'page' && savedData.children.length) {
|
|
32
|
-
return savedData.children.find((p) => id === p.id)
|
|
33
|
-
}
|
|
34
|
-
return JSON.parse(localStorage.getItem('thisModule'))
|
|
35
|
-
}
|
|
36
|
-
return null
|
|
37
|
-
}
|
|
1
|
+
/* creating a small save plug-in to save store state in the localStorage
|
|
2
|
+
* the plugin listen for mutations made to the Pinia store and store them in the local browser storage.
|
|
3
|
+
* This prevent reseting the store to initial state when the browser refreshes
|
|
4
|
+
* Note: the plugin is used in the store.js
|
|
5
|
+
*/
|
|
6
|
+
export function saveStatePlugin(store) {
|
|
7
|
+
store.subscribe((mutation, state) => {
|
|
8
|
+
// save the user data
|
|
9
|
+
if (Object.entries(state.$appStore.userMetaData).length) {
|
|
10
|
+
localStorage.setItem(
|
|
11
|
+
'userData',
|
|
12
|
+
JSON.stringify(state.$appStore.userMetaData)
|
|
13
|
+
)
|
|
14
|
+
} else if (
|
|
15
|
+
!localStorage.getItem('userData') &&
|
|
16
|
+
!Object.entries(state.$appStore.userMetaData).length
|
|
17
|
+
) {
|
|
18
|
+
localStorage.setItem('userData', JSON.stringify({}))
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* creating a small save plug-in to get stored state from the localStorage
|
|
25
|
+
*/
|
|
26
|
+
export function getSavedStatePlugin(type, id) {
|
|
27
|
+
if (localStorage.getItem('thisModule')) {
|
|
28
|
+
const savedData = JSON.parse(localStorage.getItem('thisModule'))
|
|
29
|
+
|
|
30
|
+
if (type === 'module' && savedData.id === id) return savedData
|
|
31
|
+
if (type === 'page' && savedData.children.length) {
|
|
32
|
+
return savedData.children.find((p) => id === p.id)
|
|
33
|
+
}
|
|
34
|
+
return JSON.parse(localStorage.getItem('thisModule'))
|
|
35
|
+
}
|
|
36
|
+
return null
|
|
37
|
+
}
|