fcad-core-dragon 2.1.0-beta.1 → 2.1.0-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 +20 -0
- package/bk.scss +117 -117
- package/package.json +1 -1
- package/src/assets/data/onboardingMessages.json +47 -47
- package/src/components/AppBaseErrorDisplay.vue +438 -438
- package/src/components/AppBaseFlipCard.vue +84 -84
- package/src/components/AppBasePopover.vue +41 -41
- package/src/components/AppCompInputCheckBoxNx.vue +1 -1
- package/src/components/AppCompInputRadioNx.vue +1 -1
- package/src/components/AppCompPlayBarProgress.vue +82 -82
- package/src/components/AppCompQuizNext.vue +1 -1
- package/src/components/AppCompSettingsMenu.vue +172 -172
- package/src/components/AppCompViewDisplay.vue +6 -6
- package/src/externalComps/ModuleView.vue +22 -22
- package/src/externalComps/SummaryView.vue +91 -91
- 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/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
|
@@ -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
|
+
}
|
package/src/module/xapi/utils.js
CHANGED
|
@@ -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
|
+
}
|