fcad-core-dragon 2.0.0-beta.8 → 2.0.0-beta.9

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.
Files changed (57) hide show
  1. package/.editorconfig +33 -33
  2. package/.eslintignore +29 -29
  3. package/.eslintrc.cjs +81 -81
  4. package/CHANGELOG +3 -0
  5. package/README.md +71 -71
  6. package/bk.scss +117 -117
  7. package/package.json +1 -1
  8. package/src/assets/data/onboardingMessages.json +47 -47
  9. package/src/components/AppBaseErrorDisplay.vue +438 -438
  10. package/src/components/AppBaseFlipCard.vue +84 -84
  11. package/src/components/AppBasePopover.vue +41 -41
  12. package/src/components/AppCompInputRadioNext.vue +152 -152
  13. package/src/components/AppCompInputTextToFillNext.vue +171 -171
  14. package/src/components/AppCompJauge.vue +74 -74
  15. package/src/components/AppCompMenuItem.vue +228 -228
  16. package/src/components/AppCompNoteCall.vue +1 -0
  17. package/src/components/AppCompPlayBarProgress.vue +82 -82
  18. package/src/components/AppCompPopUpNext.vue +5 -1
  19. package/src/components/AppCompSettingsMenu.vue +172 -172
  20. package/src/components/AppCompViewDisplay.vue +6 -6
  21. package/src/composables/useQuiz.js +206 -206
  22. package/src/externalComps/ModuleView.vue +22 -22
  23. package/src/externalComps/SummaryView.vue +91 -91
  24. package/src/mixins/$mediaMixins.js +819 -819
  25. package/src/mixins/timerMixin.js +155 -155
  26. package/src/module/xapi/Crypto/Hasher.js +241 -241
  27. package/src/module/xapi/Crypto/WordArray.js +278 -278
  28. package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +103 -103
  29. package/src/module/xapi/Crypto/algorithms/C_algo.js +315 -315
  30. package/src/module/xapi/Crypto/algorithms/HMAC.js +9 -9
  31. package/src/module/xapi/Crypto/algorithms/SHA1.js +9 -9
  32. package/src/module/xapi/Crypto/encoders/Base.js +105 -105
  33. package/src/module/xapi/Crypto/encoders/Base64.js +99 -99
  34. package/src/module/xapi/Crypto/encoders/Hex.js +61 -61
  35. package/src/module/xapi/Crypto/encoders/Latin1.js +61 -61
  36. package/src/module/xapi/Crypto/encoders/Utf8.js +45 -45
  37. package/src/module/xapi/Crypto/index.js +53 -53
  38. package/src/module/xapi/Statement/activity.js +47 -47
  39. package/src/module/xapi/Statement/agent.js +55 -55
  40. package/src/module/xapi/Statement/group.js +26 -26
  41. package/src/module/xapi/Statement/index.js +259 -259
  42. package/src/module/xapi/Statement/statement.js +253 -253
  43. package/src/module/xapi/Statement/statementRef.js +23 -23
  44. package/src/module/xapi/Statement/substatement.js +22 -22
  45. package/src/module/xapi/Statement/verb.js +36 -36
  46. package/src/module/xapi/activitytypes.js +17 -17
  47. package/src/module/xapi/utils.js +167 -167
  48. package/src/module/xapi/verbs.js +294 -294
  49. package/src/module/xapi/xapiStatement.js +444 -444
  50. package/src/plugins/bus.js +8 -8
  51. package/src/plugins/gsap.js +14 -14
  52. package/src/plugins/i18n.js +44 -44
  53. package/src/plugins/save.js +37 -37
  54. package/src/plugins/scorm.js +287 -287
  55. package/src/plugins/xapi.js +11 -11
  56. package/src/public/index.html +33 -33
  57. package/src/shared/generalfuncs.js +210 -210
@@ -1,172 +1,172 @@
1
- <template>
2
- <b-sidebar
3
- id="sidebar-settings"
4
- title="Settings"
5
- right
6
- shadow
7
- backdrop
8
- no-header
9
- @hidden="onClose"
10
- >
11
- <div class="pl-3 pr-3">
12
- <b-form-group :label="$t('user_settings.title')">
13
- <b-form-checkbox
14
- v-for="(setting, index) in Object.entries(settingsSelected)"
15
- :key="index"
16
- v-model="settingsSelected[setting[0]]"
17
- :aria-describedby="ariaDescribedby"
18
- :name="`parameter-${setting[0]}`"
19
- :text-field="$t(`user_settings.${setting[0]}`)"
20
- switch
21
- stacked
22
- size="lg"
23
- @change="onSettingsChange"
24
- >
25
- <span>{{ $t(`user_settings.${setting[0]}`) }}</span>
26
- </b-form-checkbox>
27
- </b-form-group>
28
- <app-base-button
29
- v-b-toggle.sidebar-settings
30
- class="float-right btn-primary"
31
- :title="$t('user_settings.close')"
32
- >
33
- {{ $t('user_settings.close') }}
34
- </app-base-button>
35
- </div>
36
- </b-sidebar>
37
- </template>
38
-
39
- <script>
40
- import { mapState, mapActions } from 'pinia'
41
- import { useAppStore } from '../module/stores/appStore'
42
- import AppBaseButton from './AppBaseButton.vue'
43
-
44
- export default {
45
- components: { AppBaseButton },
46
- props: {},
47
- data() {
48
- return {
49
- settingsSelected: {},
50
- settingsNeedUpdate: false
51
- }
52
- },
53
- computed: {
54
- ...mapState(useAppStore, [
55
- 'getApplicationSettings',
56
- 'getModuleInfo',
57
- 'getUserInteraction',
58
- 'getConnectionInfo',
59
- 'onboardingEnabled'
60
- ]),
61
- settingsOptions() {
62
- return this.settingsOptionsELPlus
63
- }
64
- },
65
- watch: {
66
- getApplicationSettings: {
67
- immediate: true,
68
- deep: true,
69
- handler() {
70
- this.getAppSettingsInStore()
71
- }
72
- }
73
- },
74
- created() {
75
- setTimeout(() => this.getAppSettingsInStore(), 1700)
76
-
77
- this.$bus.$on('save-settings', (settings) => {
78
- this.saveSettings(settings)
79
- })
80
- },
81
- methods: {
82
- ...mapActions(useAppStore, [
83
- 'setApplicationSettings',
84
- 'updateUserMetaData'
85
- ]),
86
- getAppSettingsInStore() {
87
- this.settingsSelected = { ...this.getApplicationSettings }
88
- },
89
-
90
- //Save user settings to the store
91
- onSettingsChange() {
92
- this.settingsNeedUpdate = true
93
- this.saveSettingsToStore(this.settingsSelected)
94
- },
95
- saveSettingsToStore(settings) {
96
- this.setApplicationSettings(settings)
97
- },
98
- /**
99
- * @description Save the user preferred settings to vue store and LRS or local store:
100
- * LRS: Send a XAPI Statement to the LRS
101
- * IndexedDB: Set a new Key for preferred settings in the userInteraction in store
102
- * Update current value of settings
103
- * @param {Object} appSettings - group of application settings {autoplay, subtitles, onboarding}
104
- *
105
- */
106
- saveSettings(appSettings) {
107
- this.saveSettingsToStore(appSettings) //save to store
108
-
109
- if (
110
- this.getModuleInfo.packageType === 'xapi' &&
111
- this.getConnectionInfo &&
112
- this.getConnectionInfo.remote
113
- ) {
114
- let text
115
- //Defining the text to display for stmt description and definition
116
- switch (this.$i18n.locale) {
117
- case 'fr':
118
- if (this.getModuleInfo.courseID)
119
- text = `Le ${this.getModuleInfo.id} de ${this.getModuleInfo.courseID}`
120
- else text = `Le ${this.getModuleInfo.id}`
121
- break
122
- case 'en':
123
- if (this.getModuleInfo.courseID)
124
- text = `The ${this.getModuleInfo.id} of ${this.getModuleInfo.courseID}`
125
- else text = `The ${this.getModuleInfo.id}`
126
- break
127
- }
128
- //Creating custom statement
129
- const stmt = {
130
- id: (() => {
131
- return this.getModuleInfo.courseID
132
- ? this.getModuleInfo.courseID
133
- : null
134
- })(),
135
- verb: 'preferred',
136
- definition: text,
137
- description: text,
138
- extensions: [
139
- {
140
- id: 'application-settings',
141
- content: {
142
- userSettings: { ...appSettings }
143
- }
144
- }
145
- ]
146
- }
147
-
148
- setTimeout(() => {
149
- this.$bus.$emit('send-xapi-statement', stmt) //send xapi statement
150
- }, 1000)
151
- } else {
152
- this.$set(this.getUserInteraction, 'userSettings', appSettings) // adding the usersettings to user Interaction to save to save to the local DB
153
- this.updateUserMetaData(this.getUserInteraction) //force update of the userInteraction to ensure saving of settings in local DB
154
- }
155
-
156
- //update sidebar data
157
- this.getAppSettingsInStore()
158
- },
159
-
160
- /**
161
- * @description -Action to perform when the sidebar closed- will require saving when changing occurred
162
- */
163
- onClose() {
164
- if (this.settingsNeedUpdate) {
165
- this.saveSettingsToStore(this.settingsSelected)
166
- this.saveSettings(this.getApplicationSettings)
167
- this.settingsNeedUpdate = false
168
- }
169
- }
170
- }
171
- }
172
- </script>
1
+ <template>
2
+ <b-sidebar
3
+ id="sidebar-settings"
4
+ title="Settings"
5
+ right
6
+ shadow
7
+ backdrop
8
+ no-header
9
+ @hidden="onClose"
10
+ >
11
+ <div class="pl-3 pr-3">
12
+ <b-form-group :label="$t('user_settings.title')">
13
+ <b-form-checkbox
14
+ v-for="(setting, index) in Object.entries(settingsSelected)"
15
+ :key="index"
16
+ v-model="settingsSelected[setting[0]]"
17
+ :aria-describedby="ariaDescribedby"
18
+ :name="`parameter-${setting[0]}`"
19
+ :text-field="$t(`user_settings.${setting[0]}`)"
20
+ switch
21
+ stacked
22
+ size="lg"
23
+ @change="onSettingsChange"
24
+ >
25
+ <span>{{ $t(`user_settings.${setting[0]}`) }}</span>
26
+ </b-form-checkbox>
27
+ </b-form-group>
28
+ <app-base-button
29
+ v-b-toggle.sidebar-settings
30
+ class="float-right btn-primary"
31
+ :title="$t('user_settings.close')"
32
+ >
33
+ {{ $t('user_settings.close') }}
34
+ </app-base-button>
35
+ </div>
36
+ </b-sidebar>
37
+ </template>
38
+
39
+ <script>
40
+ import { mapState, mapActions } from 'pinia'
41
+ import { useAppStore } from '../module/stores/appStore'
42
+ import AppBaseButton from './AppBaseButton.vue'
43
+
44
+ export default {
45
+ components: { AppBaseButton },
46
+ props: {},
47
+ data() {
48
+ return {
49
+ settingsSelected: {},
50
+ settingsNeedUpdate: false
51
+ }
52
+ },
53
+ computed: {
54
+ ...mapState(useAppStore, [
55
+ 'getApplicationSettings',
56
+ 'getModuleInfo',
57
+ 'getUserInteraction',
58
+ 'getConnectionInfo',
59
+ 'onboardingEnabled'
60
+ ]),
61
+ settingsOptions() {
62
+ return this.settingsOptionsELPlus
63
+ }
64
+ },
65
+ watch: {
66
+ getApplicationSettings: {
67
+ immediate: true,
68
+ deep: true,
69
+ handler() {
70
+ this.getAppSettingsInStore()
71
+ }
72
+ }
73
+ },
74
+ created() {
75
+ setTimeout(() => this.getAppSettingsInStore(), 1700)
76
+
77
+ this.$bus.$on('save-settings', (settings) => {
78
+ this.saveSettings(settings)
79
+ })
80
+ },
81
+ methods: {
82
+ ...mapActions(useAppStore, [
83
+ 'setApplicationSettings',
84
+ 'updateUserMetaData'
85
+ ]),
86
+ getAppSettingsInStore() {
87
+ this.settingsSelected = { ...this.getApplicationSettings }
88
+ },
89
+
90
+ //Save user settings to the store
91
+ onSettingsChange() {
92
+ this.settingsNeedUpdate = true
93
+ this.saveSettingsToStore(this.settingsSelected)
94
+ },
95
+ saveSettingsToStore(settings) {
96
+ this.setApplicationSettings(settings)
97
+ },
98
+ /**
99
+ * @description Save the user preferred settings to vue store and LRS or local store:
100
+ * LRS: Send a XAPI Statement to the LRS
101
+ * IndexedDB: Set a new Key for preferred settings in the userInteraction in store
102
+ * Update current value of settings
103
+ * @param {Object} appSettings - group of application settings {autoplay, subtitles, onboarding}
104
+ *
105
+ */
106
+ saveSettings(appSettings) {
107
+ this.saveSettingsToStore(appSettings) //save to store
108
+
109
+ if (
110
+ this.getModuleInfo.packageType === 'xapi' &&
111
+ this.getConnectionInfo &&
112
+ this.getConnectionInfo.remote
113
+ ) {
114
+ let text
115
+ //Defining the text to display for stmt description and definition
116
+ switch (this.$i18n.locale) {
117
+ case 'fr':
118
+ if (this.getModuleInfo.courseID)
119
+ text = `Le ${this.getModuleInfo.id} de ${this.getModuleInfo.courseID}`
120
+ else text = `Le ${this.getModuleInfo.id}`
121
+ break
122
+ case 'en':
123
+ if (this.getModuleInfo.courseID)
124
+ text = `The ${this.getModuleInfo.id} of ${this.getModuleInfo.courseID}`
125
+ else text = `The ${this.getModuleInfo.id}`
126
+ break
127
+ }
128
+ //Creating custom statement
129
+ const stmt = {
130
+ id: (() => {
131
+ return this.getModuleInfo.courseID
132
+ ? this.getModuleInfo.courseID
133
+ : null
134
+ })(),
135
+ verb: 'preferred',
136
+ definition: text,
137
+ description: text,
138
+ extensions: [
139
+ {
140
+ id: 'application-settings',
141
+ content: {
142
+ userSettings: { ...appSettings }
143
+ }
144
+ }
145
+ ]
146
+ }
147
+
148
+ setTimeout(() => {
149
+ this.$bus.$emit('send-xapi-statement', stmt) //send xapi statement
150
+ }, 1000)
151
+ } else {
152
+ this.$set(this.getUserInteraction, 'userSettings', appSettings) // adding the usersettings to user Interaction to save to save to the local DB
153
+ this.updateUserMetaData(this.getUserInteraction) //force update of the userInteraction to ensure saving of settings in local DB
154
+ }
155
+
156
+ //update sidebar data
157
+ this.getAppSettingsInStore()
158
+ },
159
+
160
+ /**
161
+ * @description -Action to perform when the sidebar closed- will require saving when changing occurred
162
+ */
163
+ onClose() {
164
+ if (this.settingsNeedUpdate) {
165
+ this.saveSettingsToStore(this.settingsSelected)
166
+ this.saveSettings(this.getApplicationSettings)
167
+ this.settingsNeedUpdate = false
168
+ }
169
+ }
170
+ }
171
+ }
172
+ </script>
@@ -1,6 +1,6 @@
1
- <template>
2
- <router-view />
3
- </template>
4
- <script>
5
- export default {}
6
- </script>
1
+ <template>
2
+ <router-view />
3
+ </template>
4
+ <script>
5
+ export default {}
6
+ </script>