fcad-core-dragon 2.1.0-beta.4 → 2.1.1

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 (73) hide show
  1. package/.editorconfig +8 -33
  2. package/.prettierrc +11 -0
  3. package/.vscode/extensions.json +8 -0
  4. package/.vscode/settings.json +16 -0
  5. package/CHANGELOG +20 -0
  6. package/eslint.config.js +60 -0
  7. package/package.json +9 -9
  8. package/src/$locales/en.json +3 -3
  9. package/src/$locales/fr.json +3 -3
  10. package/src/assets/data/onboardingMessages.json +47 -47
  11. package/src/components/AppBase.vue +5 -6
  12. package/src/components/AppBaseErrorDisplay.vue +438 -438
  13. package/src/components/AppBaseFlipCard.vue +84 -84
  14. package/src/components/AppBaseModule.vue +15 -17
  15. package/src/components/AppBasePage.vue +91 -8
  16. package/src/components/AppBasePopover.vue +41 -41
  17. package/src/components/AppBaseSkeleton.vue +24 -3
  18. package/src/components/AppCompAudio.vue +12 -2
  19. package/src/components/AppCompInputCheckBoxNx.vue +1 -2
  20. package/src/components/AppCompInputRadioNx.vue +8 -2
  21. package/src/components/AppCompInputTextToFillDropdownNx.vue +45 -0
  22. package/src/components/AppCompMenu.vue +423 -423
  23. package/src/components/AppCompNavigation.vue +2 -2
  24. package/src/components/AppCompPlayBarNext.vue +123 -94
  25. package/src/components/AppCompPopUpNext.vue +2 -2
  26. package/src/components/AppCompQuizNext.vue +12 -2
  27. package/src/components/AppCompQuizRecall.vue +10 -4
  28. package/src/components/AppCompSettingsMenu.vue +172 -172
  29. package/src/components/AppCompTableOfContent.vue +1 -4
  30. package/src/components/AppCompVideoPlayer.vue +7 -0
  31. package/src/components/AppCompViewDisplay.vue +6 -6
  32. package/src/composables/useTimer.js +17 -20
  33. package/src/externalComps/ModuleView.vue +22 -22
  34. package/src/externalComps/SummaryView.vue +91 -91
  35. package/src/main.js +5 -5
  36. package/src/module/stores/appStore.js +0 -1
  37. package/src/module/xapi/Crypto/Hasher.js +241 -241
  38. package/src/module/xapi/Crypto/WordArray.js +278 -278
  39. package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +103 -103
  40. package/src/module/xapi/Crypto/algorithms/C_algo.js +315 -315
  41. package/src/module/xapi/Crypto/algorithms/HMAC.js +9 -9
  42. package/src/module/xapi/Crypto/algorithms/SHA1.js +9 -9
  43. package/src/module/xapi/Crypto/encoders/Base.js +105 -105
  44. package/src/module/xapi/Crypto/encoders/Base64.js +99 -99
  45. package/src/module/xapi/Crypto/encoders/Hex.js +61 -61
  46. package/src/module/xapi/Crypto/encoders/Latin1.js +61 -61
  47. package/src/module/xapi/Crypto/encoders/Utf8.js +45 -45
  48. package/src/module/xapi/Crypto/index.js +53 -53
  49. package/src/module/xapi/Statement/activity.js +47 -47
  50. package/src/module/xapi/Statement/agent.js +55 -55
  51. package/src/module/xapi/Statement/group.js +26 -26
  52. package/src/module/xapi/Statement/index.js +259 -259
  53. package/src/module/xapi/Statement/statement.js +253 -253
  54. package/src/module/xapi/Statement/statementRef.js +23 -23
  55. package/src/module/xapi/Statement/substatement.js +22 -22
  56. package/src/module/xapi/Statement/verb.js +36 -36
  57. package/src/module/xapi/activitytypes.js +17 -17
  58. package/src/module/xapi/utils.js +167 -167
  59. package/src/module/xapi/verbs.js +294 -294
  60. package/src/module/xapi/xapiStatement.js +444 -444
  61. package/src/plugins/analytics.js +4 -4
  62. package/src/plugins/bus.js +8 -8
  63. package/src/plugins/gsap.js +4 -2
  64. package/src/plugins/helper.js +8 -4
  65. package/src/plugins/save.js +37 -37
  66. package/src/plugins/scorm.js +287 -287
  67. package/src/plugins/xapi.js +11 -11
  68. package/src/public/index.html +33 -33
  69. package/src/router/index.js +1 -1
  70. package/src/shared/validators.js +22 -6
  71. package/.eslintignore +0 -29
  72. package/.eslintrc.cjs +0 -81
  73. package/bk.scss +0 -117
@@ -1,17 +1,17 @@
1
- export default {
2
- assessment: 'http://adlnet.gov/expapi/activities/assessment',
3
- attempt: 'http://adlnet.gov/expapi/activities/attempt',
4
- course: 'http://adlnet.gov/expapi/activities/course',
5
- file: 'http://adlnet.gov/expapi/activities/file',
6
- interaction: 'http://adlnet.gov/expapi/activities/interaction',
7
- lesson: 'http://adlnet.gov/expapi/activities/lesson',
8
- link: 'http://adlnet.gov/expapi/activities/link',
9
- media: 'http://adlnet.gov/expapi/activities/media',
10
- meeting: 'http://adlnet.gov/expapi/activities/meeting',
11
- module: 'http://adlnet.gov/expapi/activities/module',
12
- objective: 'http://adlnet.gov/expapi/activities/objective',
13
- performance: 'http://adlnet.gov/expapi/activities/performance',
14
- profile: 'http://adlnet.gov/expapi/activities/profile',
15
- question: 'http://adlnet.gov/expapi/activities/question',
16
- simulation: 'http://adlnet.gov/expapi/activities/simulation'
17
- }
1
+ export default {
2
+ assessment: 'http://adlnet.gov/expapi/activities/assessment',
3
+ attempt: 'http://adlnet.gov/expapi/activities/attempt',
4
+ course: 'http://adlnet.gov/expapi/activities/course',
5
+ file: 'http://adlnet.gov/expapi/activities/file',
6
+ interaction: 'http://adlnet.gov/expapi/activities/interaction',
7
+ lesson: 'http://adlnet.gov/expapi/activities/lesson',
8
+ link: 'http://adlnet.gov/expapi/activities/link',
9
+ media: 'http://adlnet.gov/expapi/activities/media',
10
+ meeting: 'http://adlnet.gov/expapi/activities/meeting',
11
+ module: 'http://adlnet.gov/expapi/activities/module',
12
+ objective: 'http://adlnet.gov/expapi/activities/objective',
13
+ performance: 'http://adlnet.gov/expapi/activities/performance',
14
+ profile: 'http://adlnet.gov/expapi/activities/profile',
15
+ question: 'http://adlnet.gov/expapi/activities/question',
16
+ simulation: 'http://adlnet.gov/expapi/activities/simulation'
17
+ }
@@ -1,167 +1,167 @@
1
- export const defineUtils = function (obj = {}) {
2
- let ADL = obj
3
- let onBrowser = false
4
- if (typeof window !== 'undefined') {
5
- ADL = window.ADL = obj.ADL || {}
6
- onBrowser = true
7
- }
8
-
9
- const getObjDefName = function (o) {
10
- if (o.definition && o.definition.name) {
11
- return ADL.xapiutil.getLangVal(o.definition.name)
12
- }
13
- return undefined
14
- }
15
-
16
- const getSubStatementDisplay = function (o) {
17
- if (o.objectType !== 'SubStatement') return
18
- if (o.object.objectType === 'SubStatement') return
19
- if (o.id || o.stored || o.version || o.authority) return
20
- const disp =
21
- ADL.xapiutil.getActorId(o.actor) +
22
- ':' +
23
- ADL.xapiutil.getVerbDisplay(o.verb) +
24
- ':' +
25
- ADL.xapiutil.getObjectId(o.object)
26
- return disp
27
- }
28
-
29
- ADL.xapiutil = {}
30
-
31
- ADL.xapiutil.getLang = function () {
32
- let lang
33
- if (typeof navigator !== 'undefined')
34
- lang =
35
- navigator.language ||
36
- navigator.browserLanguage ||
37
- navigator.systemLanguage ||
38
- navigator.userLanguage
39
- else if (
40
- typeof process !== 'undefined' &&
41
- typeof import.meta.env !== 'undefined' &&
42
- typeof import.meta.env.LANG !== 'undefined'
43
- ) {
44
- const str = import.meta.env.LANG
45
- lang = str.slice(0, str.indexOf('.'))
46
- lang = lang.replace(/_/, '-')
47
- }
48
- return lang || 'en-US'
49
- }
50
-
51
- ADL.xapiutil.getLangVal = function (langprop) {
52
- if (!langprop) return
53
-
54
- const options = Object.keys(langprop)
55
- // test that langprop is a dict (obj)
56
- // skips if not a dict(obj) and returns
57
- if (options.length == 0) return undefined
58
-
59
- let lang = ADL.xapiutil.getLang(),
60
- ret,
61
- dispGotten = false
62
-
63
- do {
64
- //test and retest
65
- if (langprop[lang]) {
66
- ret = langprop[lang]
67
- dispGotten = true
68
- } else if (lang.indexOf('-')) {
69
- lang = lang.substring(0, lang.lastIndexOf('-'))
70
- }
71
- } while (!dispGotten && lang !== '')
72
-
73
- return ret
74
- }
75
-
76
- ADL.xapiutil.getMoreStatements = function (
77
- iterations,
78
- callback,
79
- searchParams
80
- ) {
81
- if (!onBrowser) throw new Error('Node not supported.')
82
-
83
- let stmts = []
84
-
85
- ADL.XAPIWrapper.getStatements(searchParams, null, function getMore(r) {
86
- if (!(r && r.response)) return
87
- const res = JSON.parse(r.response)
88
- if (!res.statements) return
89
- stmts = stmts.concat(res.statements)
90
-
91
- if (iterations-- <= 0) {
92
- callback(stmts)
93
- } else {
94
- if (res.more && res.more !== '') {
95
- ADL.XAPIWrapper.getStatements(searchParams, res.more, getMore)
96
- } else if (res.more === '') {
97
- callback(stmts)
98
- }
99
- }
100
- })
101
- }
102
-
103
- ADL.xapiutil.getActorId = function (a) {
104
- return a.mbox || a.openid || a.mbox_sha1sum || a.account
105
- }
106
-
107
- ADL.xapiutil.getActorIdString = function (a) {
108
- let id = a.mbox || a.openid || a.mbox_sha1sum
109
- if (!id) {
110
- if (a.account) id = a.account.homePage + ':' + a.account.name
111
- else if (a.member) id = 'Anon Group ' + a.member
112
- else id = 'unknown'
113
- }
114
- return id
115
- }
116
-
117
- ADL.xapiutil.getActorDisplay = function (a) {
118
- return a.name || ADL.xapiutil.getActorIdString(a)
119
- }
120
-
121
- ADL.xapiutil.getVerbDisplay = function (v) {
122
- if (!v) return
123
- if (v.display) {
124
- return ADL.xapiutil.getLangVal(v.display) || v.id
125
- }
126
- return v.id
127
- }
128
-
129
- ADL.xapiutil.getObjectType = function (o) {
130
- return o.objectType || (o.id ? 'Activity' : 'Agent')
131
- }
132
-
133
- ADL.xapiutil.getObjectId = function (o) {
134
- if (o.id) return o.id
135
- const type = ADL.xapiutil.getObjectType(o)
136
- if (type === 'Agent' || type === 'Group') return ADL.xapiutil.getActorId(o)
137
- return undefined
138
- }
139
-
140
- ADL.xapiutil.getObjectIdString = function (o) {
141
- if (!o) return 'unknown'
142
- if (o.id) return o.id
143
- const type = ADL.xapiutil.getObjectType(o)
144
- if (type === 'Agent' || type === 'Group')
145
- return ADL.xapiutil.getActorIdString(o)
146
- else if (type == 'SubStatement') {
147
- return getSubStatementDisplay(o)
148
- }
149
- return 'unknown'
150
- }
151
-
152
- ADL.xapiutil.getObjectDisplay = function (o) {
153
- if (!o) return 'unknown'
154
- let disp = getObjDefName(o) || o.name || o.id
155
- if (!disp) {
156
- const type = ADL.xapiutil.getObjectType(o)
157
- if (type === 'Agent' || type == 'Group')
158
- disp = ADL.xapiutil.getActorDisplay(o)
159
- else if (type == 'SubStatement') {
160
- disp = getSubStatementDisplay(o)
161
- }
162
- }
163
-
164
- return disp
165
- }
166
- return ADL.xapiutil
167
- }
1
+ export const defineUtils = function (obj = {}) {
2
+ let ADL = obj
3
+ let onBrowser = false
4
+ if (typeof window !== 'undefined') {
5
+ ADL = window.ADL = obj.ADL || {}
6
+ onBrowser = true
7
+ }
8
+
9
+ const getObjDefName = function (o) {
10
+ if (o.definition && o.definition.name) {
11
+ return ADL.xapiutil.getLangVal(o.definition.name)
12
+ }
13
+ return undefined
14
+ }
15
+
16
+ const getSubStatementDisplay = function (o) {
17
+ if (o.objectType !== 'SubStatement') return
18
+ if (o.object.objectType === 'SubStatement') return
19
+ if (o.id || o.stored || o.version || o.authority) return
20
+ const disp =
21
+ ADL.xapiutil.getActorId(o.actor) +
22
+ ':' +
23
+ ADL.xapiutil.getVerbDisplay(o.verb) +
24
+ ':' +
25
+ ADL.xapiutil.getObjectId(o.object)
26
+ return disp
27
+ }
28
+
29
+ ADL.xapiutil = {}
30
+
31
+ ADL.xapiutil.getLang = function () {
32
+ let lang
33
+ if (typeof navigator !== 'undefined')
34
+ lang =
35
+ navigator.language ||
36
+ navigator.browserLanguage ||
37
+ navigator.systemLanguage ||
38
+ navigator.userLanguage
39
+ else if (
40
+ typeof process !== 'undefined' &&
41
+ typeof import.meta.env !== 'undefined' &&
42
+ typeof import.meta.env.LANG !== 'undefined'
43
+ ) {
44
+ const str = import.meta.env.LANG
45
+ lang = str.slice(0, str.indexOf('.'))
46
+ lang = lang.replace(/_/, '-')
47
+ }
48
+ return lang || 'en-US'
49
+ }
50
+
51
+ ADL.xapiutil.getLangVal = function (langprop) {
52
+ if (!langprop) return
53
+
54
+ const options = Object.keys(langprop)
55
+ // test that langprop is a dict (obj)
56
+ // skips if not a dict(obj) and returns
57
+ if (options.length == 0) return undefined
58
+
59
+ let lang = ADL.xapiutil.getLang(),
60
+ ret,
61
+ dispGotten = false
62
+
63
+ do {
64
+ //test and retest
65
+ if (langprop[lang]) {
66
+ ret = langprop[lang]
67
+ dispGotten = true
68
+ } else if (lang.indexOf('-')) {
69
+ lang = lang.substring(0, lang.lastIndexOf('-'))
70
+ }
71
+ } while (!dispGotten && lang !== '')
72
+
73
+ return ret
74
+ }
75
+
76
+ ADL.xapiutil.getMoreStatements = function (
77
+ iterations,
78
+ callback,
79
+ searchParams
80
+ ) {
81
+ if (!onBrowser) throw new Error('Node not supported.')
82
+
83
+ let stmts = []
84
+
85
+ ADL.XAPIWrapper.getStatements(searchParams, null, function getMore(r) {
86
+ if (!(r && r.response)) return
87
+ const res = JSON.parse(r.response)
88
+ if (!res.statements) return
89
+ stmts = stmts.concat(res.statements)
90
+
91
+ if (iterations-- <= 0) {
92
+ callback(stmts)
93
+ } else {
94
+ if (res.more && res.more !== '') {
95
+ ADL.XAPIWrapper.getStatements(searchParams, res.more, getMore)
96
+ } else if (res.more === '') {
97
+ callback(stmts)
98
+ }
99
+ }
100
+ })
101
+ }
102
+
103
+ ADL.xapiutil.getActorId = function (a) {
104
+ return a.mbox || a.openid || a.mbox_sha1sum || a.account
105
+ }
106
+
107
+ ADL.xapiutil.getActorIdString = function (a) {
108
+ let id = a.mbox || a.openid || a.mbox_sha1sum
109
+ if (!id) {
110
+ if (a.account) id = a.account.homePage + ':' + a.account.name
111
+ else if (a.member) id = 'Anon Group ' + a.member
112
+ else id = 'unknown'
113
+ }
114
+ return id
115
+ }
116
+
117
+ ADL.xapiutil.getActorDisplay = function (a) {
118
+ return a.name || ADL.xapiutil.getActorIdString(a)
119
+ }
120
+
121
+ ADL.xapiutil.getVerbDisplay = function (v) {
122
+ if (!v) return
123
+ if (v.display) {
124
+ return ADL.xapiutil.getLangVal(v.display) || v.id
125
+ }
126
+ return v.id
127
+ }
128
+
129
+ ADL.xapiutil.getObjectType = function (o) {
130
+ return o.objectType || (o.id ? 'Activity' : 'Agent')
131
+ }
132
+
133
+ ADL.xapiutil.getObjectId = function (o) {
134
+ if (o.id) return o.id
135
+ const type = ADL.xapiutil.getObjectType(o)
136
+ if (type === 'Agent' || type === 'Group') return ADL.xapiutil.getActorId(o)
137
+ return undefined
138
+ }
139
+
140
+ ADL.xapiutil.getObjectIdString = function (o) {
141
+ if (!o) return 'unknown'
142
+ if (o.id) return o.id
143
+ const type = ADL.xapiutil.getObjectType(o)
144
+ if (type === 'Agent' || type === 'Group')
145
+ return ADL.xapiutil.getActorIdString(o)
146
+ else if (type == 'SubStatement') {
147
+ return getSubStatementDisplay(o)
148
+ }
149
+ return 'unknown'
150
+ }
151
+
152
+ ADL.xapiutil.getObjectDisplay = function (o) {
153
+ if (!o) return 'unknown'
154
+ let disp = getObjDefName(o) || o.name || o.id
155
+ if (!disp) {
156
+ const type = ADL.xapiutil.getObjectType(o)
157
+ if (type === 'Agent' || type == 'Group')
158
+ disp = ADL.xapiutil.getActorDisplay(o)
159
+ else if (type == 'SubStatement') {
160
+ disp = getSubStatementDisplay(o)
161
+ }
162
+ }
163
+
164
+ return disp
165
+ }
166
+ return ADL.xapiutil
167
+ }