fcad-core-dragon 2.1.0 → 2.1.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 +7 -7
- package/.gitlab-ci.yml +124 -0
- package/.prettierrc +11 -11
- package/.vscode/extensions.json +8 -8
- package/.vscode/settings.json +46 -16
- package/CHANGELOG +520 -520
- package/README.md +57 -57
- package/documentation/.vitepress/config.js +114 -114
- package/documentation/api-examples.md +49 -49
- package/documentation/composants/app-base-button.md +58 -58
- package/documentation/composants/app-base-error-display.md +59 -59
- package/documentation/composants/app-base-popover.md +68 -68
- package/documentation/composants/app-comp-audio.md +75 -75
- package/documentation/composants/app-comp-branch-buttons.md +111 -111
- package/documentation/composants/app-comp-button-progress.md +53 -53
- package/documentation/composants/app-comp-carousel.md +53 -53
- package/documentation/composants/app-comp-container.md +53 -53
- package/documentation/composants/app-comp-input-checkbox-next.md +42 -42
- package/documentation/composants/app-comp-input-dropdown-next.md +34 -34
- package/documentation/composants/app-comp-input-radio-next.md +39 -39
- package/documentation/composants/app-comp-input-text-next.md +35 -35
- package/documentation/composants/app-comp-input-text-table-next.md +34 -34
- package/documentation/composants/app-comp-input-text-to-fill-dropdown-next.md +53 -53
- package/documentation/composants/app-comp-input-text-to-fill-next.md +31 -31
- package/documentation/composants/app-comp-jauge.md +31 -31
- package/documentation/composants/app-comp-menu-item.md +55 -55
- package/documentation/composants/app-comp-menu.md +29 -29
- package/documentation/composants/app-comp-navigation.md +41 -41
- package/documentation/composants/app-comp-note-call.md +53 -53
- package/documentation/composants/app-comp-note-credit.md +53 -53
- package/documentation/composants/app-comp-play-bar-next.md +53 -53
- package/documentation/composants/app-comp-pop-up-next.md +93 -93
- package/documentation/composants/app-comp-quiz-next.md +235 -235
- package/documentation/composants/app-comp-quiz-recall.md +53 -53
- package/documentation/composants/app-comp-svg-next.md +53 -53
- package/documentation/composants/app-comp-table-of-content.md +50 -50
- package/documentation/composants/app-comp-video-player.md +82 -82
- package/documentation/composants.md +46 -46
- package/documentation/composants_critiques/ModelPageComposant.md +53 -53
- package/documentation/composants_critiques/app-base-module.md +43 -43
- package/documentation/composants_critiques/app-base-page.md +48 -48
- package/documentation/composants_critiques/app-base.md +311 -311
- package/documentation/composants_critiques/main.md +15 -15
- package/documentation/demarrage.md +50 -50
- package/documentation/deploiement.md +57 -57
- package/documentation/index.md +33 -33
- package/documentation/markdown-examples.md +85 -85
- package/documentation/public/vite.svg +14 -14
- package/documentation/public/vuejs.svg +1 -1
- package/documentation/public/vuetify.svg +5 -5
- package/eslint.config.js +60 -60
- package/junit-report.xml +182 -0
- package/package.json +66 -59
- package/playwright/index.html +12 -0
- package/playwright/index.js +21 -0
- package/playwright-ct.config.js +95 -0
- package/src/$locales/en.json +157 -157
- package/src/$locales/fr.json +120 -120
- package/src/assets/data/onboardingMessages.json +47 -47
- package/src/components/AppBase.vue +1171 -1169
- package/src/components/AppBaseButton.vue +90 -95
- package/src/components/AppBaseErrorDisplay.vue +438 -438
- package/src/components/AppBaseFlipCard.vue +84 -84
- package/src/components/AppBaseModule.vue +1639 -1634
- package/src/components/AppBasePage.vue +3 -2
- package/src/components/AppBasePopover.vue +41 -41
- package/src/components/AppBaseSkeleton.vue +66 -66
- package/src/components/AppCompAudio.vue +261 -256
- package/src/components/AppCompBranchButtons.vue +508 -508
- package/src/components/AppCompButtonProgress.vue +137 -132
- package/src/components/AppCompCarousel.vue +342 -336
- package/src/components/AppCompContainer.vue +29 -29
- package/src/components/AppCompInputCheckBoxNx.vue +325 -323
- package/src/components/AppCompInputDropdownNx.vue +302 -299
- package/src/components/AppCompInputRadioNx.vue +287 -284
- package/src/components/AppCompInputTextNx.vue +156 -153
- package/src/components/AppCompInputTextTableNx.vue +205 -202
- package/src/components/AppCompInputTextToFillDropdownNx.vue +343 -340
- package/src/components/AppCompInputTextToFillNx.vue +316 -313
- package/src/components/AppCompJauge.vue +81 -81
- package/src/components/AppCompMenu.vue +6 -2
- package/src/components/AppCompMenuItem.vue +246 -240
- package/src/components/AppCompNavigation.vue +977 -972
- package/src/components/AppCompNoteCall.vue +167 -161
- package/src/components/AppCompNoteCredit.vue +496 -491
- package/src/components/AppCompPlayBarNext.vue +2290 -2288
- package/src/components/AppCompPopUpNext.vue +508 -504
- package/src/components/AppCompQuizNext.vue +515 -510
- package/src/components/AppCompQuizRecall.vue +355 -350
- package/src/components/AppCompSVGNext.vue +346 -346
- package/src/components/AppCompSettingsMenu.vue +177 -172
- package/src/components/AppCompTableOfContent.vue +433 -427
- package/src/components/AppCompVideoPlayer.vue +377 -377
- package/src/components/AppCompViewDisplay.vue +6 -6
- package/src/components/BaseModule.vue +55 -55
- package/src/composables/useIdleDetector.js +56 -56
- package/src/composables/useQuiz.js +89 -89
- package/src/composables/useTimer.js +172 -172
- package/src/directives/nvdaFix.js +53 -53
- package/src/externalComps/ModuleView.vue +22 -22
- package/src/externalComps/SummaryView.vue +91 -91
- package/src/main.js +493 -476
- package/src/module/stores/appStore.js +960 -947
- package/src/module/xapi/ADL.js +520 -520
- 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/launch.js +157 -157
- package/src/module/xapi/utils.js +167 -167
- package/src/module/xapi/verbs.js +294 -294
- package/src/module/xapi/wrapper.js +1895 -1895
- package/src/module/xapi/xapiStatement.js +444 -444
- package/src/plugins/analytics.js +34 -34
- package/src/plugins/bus.js +12 -8
- package/src/plugins/gsap.js +17 -15
- package/src/plugins/helper.js +355 -358
- package/src/plugins/i18n.js +27 -26
- package/src/plugins/idb.js +227 -227
- 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 +57 -57
- package/src/router/routes.js +312 -312
- package/src/shared/generalfuncs.js +344 -344
- package/src/shared/validators.js +1018 -1018
- package/tests/component/AppBaseButton.spec.js +53 -0
- package/tests/component/pinia.spec.js +24 -0
- package/{src/components/tests__ → tests/unit}/AppBaseButton.spec.js +53 -53
- package/tests/unit/AppCompInputCheckBoxNx.spec.js +59 -0
- package/tests/unit/AppCompInputDropdownNx.spec.js +51 -0
- package/tests/unit/AppCompInputRadioNx.spec.js +59 -0
- package/tests/unit/AppCompInputTextNx.spec.js +44 -0
- package/tests/unit/AppCompInputTextTableNx.spec.js +77 -0
- package/tests/unit/AppCompInputTextToFillDropdownNx.spec.js +60 -0
- package/tests/unit/AppCompInputTextToFillNx.spec.js +45 -0
- package/tests/unit/AppCompQuizNext.spec.js +114 -0
- package/tests/unit/AppCompVideoPlayer.spec.js +177 -0
- package/{src/components/tests__ → tests/unit}/useTimer.spec.js +91 -91
- package/vitest.config.js +28 -19
- package/vitest.setup.js +28 -0
- package/src/components/AppBaseButton.test.js +0 -21
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
import { WordArray } from '../WordArray'
|
|
2
|
-
import { Utf8 } from '../encoders/Utf8'
|
|
3
|
-
import { Base } from '../encoders/Base'
|
|
4
|
-
/**
|
|
5
|
-
* Abstract buffered block algorithm template.
|
|
6
|
-
* The property blockSize must be implemented in a concrete subtype.
|
|
7
|
-
* @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0
|
|
8
|
-
*/
|
|
9
|
-
export const BufferedBlockAlgorithm = Base.extend({
|
|
10
|
-
/**
|
|
11
|
-
* Resets this block algorithm's data buffer to its initial state.
|
|
12
|
-
* @example
|
|
13
|
-
* bufferedBlockAlgorithm.reset();
|
|
14
|
-
*/
|
|
15
|
-
reset: function () {
|
|
16
|
-
// Initial values
|
|
17
|
-
this._data = new WordArray.init()
|
|
18
|
-
this._nDataBytes = 0
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Adds new data to this block algorithm's buffer.
|
|
23
|
-
* @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
|
|
24
|
-
* @example
|
|
25
|
-
* bufferedBlockAlgorithm._append('data');
|
|
26
|
-
* bufferedBlockAlgorithm._append(wordArray);
|
|
27
|
-
*/
|
|
28
|
-
_append: function (data) {
|
|
29
|
-
// Convert string to WordArray, else assume WordArray already
|
|
30
|
-
if (typeof data == 'string') {
|
|
31
|
-
data = Utf8.parse(data)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// Append
|
|
35
|
-
this._data.concat(data)
|
|
36
|
-
this._nDataBytes += data.sigBytes
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Processes available data blocks.
|
|
41
|
-
* This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
|
|
42
|
-
* @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
|
|
43
|
-
* @return {WordArray} The processed data.
|
|
44
|
-
* @example
|
|
45
|
-
*
|
|
46
|
-
* var processedData = bufferedBlockAlgorithm._process();
|
|
47
|
-
* var processedData = bufferedBlockAlgorithm._process(!!'flush');
|
|
48
|
-
*/
|
|
49
|
-
_process: function (doFlush) {
|
|
50
|
-
// Shortcuts
|
|
51
|
-
var data = this._data
|
|
52
|
-
var dataWords = data.words
|
|
53
|
-
var dataSigBytes = data.sigBytes
|
|
54
|
-
var blockSize = this.blockSize
|
|
55
|
-
var blockSizeBytes = blockSize * 4
|
|
56
|
-
|
|
57
|
-
// Count blocks ready
|
|
58
|
-
var nBlocksReady = dataSigBytes / blockSizeBytes
|
|
59
|
-
if (doFlush) {
|
|
60
|
-
// Round up to include partial blocks
|
|
61
|
-
nBlocksReady = Math.ceil(nBlocksReady)
|
|
62
|
-
} else {
|
|
63
|
-
// Round down to include only full blocks,
|
|
64
|
-
// less the number of blocks that must remain in the buffer
|
|
65
|
-
nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0)
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// Count words ready
|
|
69
|
-
var nWordsReady = nBlocksReady * blockSize
|
|
70
|
-
|
|
71
|
-
// Count bytes ready
|
|
72
|
-
var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes)
|
|
73
|
-
|
|
74
|
-
// Process blocks
|
|
75
|
-
if (nWordsReady) {
|
|
76
|
-
for (var offset = 0; offset < nWordsReady; offset += blockSize) {
|
|
77
|
-
// Perform concrete-algorithm logic
|
|
78
|
-
this._doProcessBlock(dataWords, offset)
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Remove processed words
|
|
82
|
-
var processedWords = dataWords.splice(0, nWordsReady)
|
|
83
|
-
data.sigBytes -= nBytesReady
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// Return processed words
|
|
87
|
-
return new WordArray.init(processedWords, nBytesReady)
|
|
88
|
-
},
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Creates a copy of this object.
|
|
92
|
-
* @return {Object} The clone.
|
|
93
|
-
* @example
|
|
94
|
-
* var clone = bufferedBlockAlgorithm.clone();
|
|
95
|
-
*/
|
|
96
|
-
clone: function () {
|
|
97
|
-
var clone = Base.clone.call(this)
|
|
98
|
-
clone._data = this._data.clone()
|
|
99
|
-
return clone
|
|
100
|
-
},
|
|
101
|
-
|
|
102
|
-
_minBufferSize: 0
|
|
103
|
-
})
|
|
1
|
+
import { WordArray } from '../WordArray'
|
|
2
|
+
import { Utf8 } from '../encoders/Utf8'
|
|
3
|
+
import { Base } from '../encoders/Base'
|
|
4
|
+
/**
|
|
5
|
+
* Abstract buffered block algorithm template.
|
|
6
|
+
* The property blockSize must be implemented in a concrete subtype.
|
|
7
|
+
* @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0
|
|
8
|
+
*/
|
|
9
|
+
export const BufferedBlockAlgorithm = Base.extend({
|
|
10
|
+
/**
|
|
11
|
+
* Resets this block algorithm's data buffer to its initial state.
|
|
12
|
+
* @example
|
|
13
|
+
* bufferedBlockAlgorithm.reset();
|
|
14
|
+
*/
|
|
15
|
+
reset: function () {
|
|
16
|
+
// Initial values
|
|
17
|
+
this._data = new WordArray.init()
|
|
18
|
+
this._nDataBytes = 0
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Adds new data to this block algorithm's buffer.
|
|
23
|
+
* @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
|
|
24
|
+
* @example
|
|
25
|
+
* bufferedBlockAlgorithm._append('data');
|
|
26
|
+
* bufferedBlockAlgorithm._append(wordArray);
|
|
27
|
+
*/
|
|
28
|
+
_append: function (data) {
|
|
29
|
+
// Convert string to WordArray, else assume WordArray already
|
|
30
|
+
if (typeof data == 'string') {
|
|
31
|
+
data = Utf8.parse(data)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Append
|
|
35
|
+
this._data.concat(data)
|
|
36
|
+
this._nDataBytes += data.sigBytes
|
|
37
|
+
},
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Processes available data blocks.
|
|
41
|
+
* This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
|
|
42
|
+
* @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
|
|
43
|
+
* @return {WordArray} The processed data.
|
|
44
|
+
* @example
|
|
45
|
+
*
|
|
46
|
+
* var processedData = bufferedBlockAlgorithm._process();
|
|
47
|
+
* var processedData = bufferedBlockAlgorithm._process(!!'flush');
|
|
48
|
+
*/
|
|
49
|
+
_process: function (doFlush) {
|
|
50
|
+
// Shortcuts
|
|
51
|
+
var data = this._data
|
|
52
|
+
var dataWords = data.words
|
|
53
|
+
var dataSigBytes = data.sigBytes
|
|
54
|
+
var blockSize = this.blockSize
|
|
55
|
+
var blockSizeBytes = blockSize * 4
|
|
56
|
+
|
|
57
|
+
// Count blocks ready
|
|
58
|
+
var nBlocksReady = dataSigBytes / blockSizeBytes
|
|
59
|
+
if (doFlush) {
|
|
60
|
+
// Round up to include partial blocks
|
|
61
|
+
nBlocksReady = Math.ceil(nBlocksReady)
|
|
62
|
+
} else {
|
|
63
|
+
// Round down to include only full blocks,
|
|
64
|
+
// less the number of blocks that must remain in the buffer
|
|
65
|
+
nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Count words ready
|
|
69
|
+
var nWordsReady = nBlocksReady * blockSize
|
|
70
|
+
|
|
71
|
+
// Count bytes ready
|
|
72
|
+
var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes)
|
|
73
|
+
|
|
74
|
+
// Process blocks
|
|
75
|
+
if (nWordsReady) {
|
|
76
|
+
for (var offset = 0; offset < nWordsReady; offset += blockSize) {
|
|
77
|
+
// Perform concrete-algorithm logic
|
|
78
|
+
this._doProcessBlock(dataWords, offset)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Remove processed words
|
|
82
|
+
var processedWords = dataWords.splice(0, nWordsReady)
|
|
83
|
+
data.sigBytes -= nBytesReady
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Return processed words
|
|
87
|
+
return new WordArray.init(processedWords, nBytesReady)
|
|
88
|
+
},
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Creates a copy of this object.
|
|
92
|
+
* @return {Object} The clone.
|
|
93
|
+
* @example
|
|
94
|
+
* var clone = bufferedBlockAlgorithm.clone();
|
|
95
|
+
*/
|
|
96
|
+
clone: function () {
|
|
97
|
+
var clone = Base.clone.call(this)
|
|
98
|
+
clone._data = this._data.clone()
|
|
99
|
+
return clone
|
|
100
|
+
},
|
|
101
|
+
|
|
102
|
+
_minBufferSize: 0
|
|
103
|
+
})
|