fcad-core-dragon 2.0.2-beta.1 → 2.0.2-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.
Files changed (55) hide show
  1. package/.editorconfig +33 -33
  2. package/.eslintignore +29 -29
  3. package/.eslintrc.cjs +81 -81
  4. package/CHANGELOG +4 -3
  5. package/bk.scss +117 -117
  6. package/package.json +1 -1
  7. package/src/assets/data/onboardingMessages.json +47 -47
  8. package/src/components/AppBaseErrorDisplay.vue +438 -438
  9. package/src/components/AppBaseFlipCard.vue +84 -84
  10. package/src/components/AppBasePopover.vue +41 -41
  11. package/src/components/AppCompInputCheckBoxNx.vue +1 -1
  12. package/src/components/AppCompInputDropdownNx.vue +1 -1
  13. package/src/components/AppCompInputRadioNx.vue +1 -1
  14. package/src/components/AppCompInputTextNx.vue +1 -1
  15. package/src/components/AppCompInputTextTableNx.vue +1 -1
  16. package/src/components/AppCompInputTextToFillDropdownNx.vue +1 -1
  17. package/src/components/AppCompInputTextToFillNx.vue +1 -1
  18. package/src/components/AppCompPlayBarProgress.vue +82 -82
  19. package/src/components/AppCompSettingsMenu.vue +172 -172
  20. package/src/components/AppCompViewDisplay.vue +6 -6
  21. package/src/externalComps/ModuleView.vue +22 -22
  22. package/src/externalComps/SummaryView.vue +91 -91
  23. package/src/main.js +2 -2
  24. package/src/module/xapi/Crypto/Hasher.js +241 -241
  25. package/src/module/xapi/Crypto/WordArray.js +278 -278
  26. package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +103 -103
  27. package/src/module/xapi/Crypto/algorithms/C_algo.js +315 -315
  28. package/src/module/xapi/Crypto/algorithms/HMAC.js +9 -9
  29. package/src/module/xapi/Crypto/algorithms/SHA1.js +9 -9
  30. package/src/module/xapi/Crypto/encoders/Base.js +105 -105
  31. package/src/module/xapi/Crypto/encoders/Base64.js +99 -99
  32. package/src/module/xapi/Crypto/encoders/Hex.js +61 -61
  33. package/src/module/xapi/Crypto/encoders/Latin1.js +61 -61
  34. package/src/module/xapi/Crypto/encoders/Utf8.js +45 -45
  35. package/src/module/xapi/Crypto/index.js +53 -53
  36. package/src/module/xapi/Statement/activity.js +47 -47
  37. package/src/module/xapi/Statement/agent.js +55 -55
  38. package/src/module/xapi/Statement/group.js +26 -26
  39. package/src/module/xapi/Statement/index.js +259 -259
  40. package/src/module/xapi/Statement/statement.js +253 -253
  41. package/src/module/xapi/Statement/statementRef.js +23 -23
  42. package/src/module/xapi/Statement/substatement.js +22 -22
  43. package/src/module/xapi/Statement/verb.js +36 -36
  44. package/src/module/xapi/activitytypes.js +17 -17
  45. package/src/module/xapi/utils.js +167 -167
  46. package/src/module/xapi/verbs.js +294 -294
  47. package/src/module/xapi/xapiStatement.js +444 -444
  48. package/src/plugins/bus.js +8 -8
  49. package/src/plugins/gsap.js +14 -14
  50. package/src/plugins/i18n.js +44 -44
  51. package/src/plugins/save.js +37 -37
  52. package/src/plugins/scorm.js +287 -287
  53. package/src/plugins/xapi.js +11 -11
  54. package/src/public/index.html +33 -33
  55. /package/src/components/{AppCompQuizNx.vue → AppCompQuiz.vue} +0 -0
@@ -1,84 +1,84 @@
1
- <template>
2
- <!--
3
- inspire by : https://vuejsexamples.com/generic-flip-card-in-vue-that-allows-completely-arbitrary-content-on-each-side/
4
- -->
5
- <div class="flip-card" role="button" aria-pressed="false" @click="fnClick">
6
- <div class="inside-card" :class="{ flip: isFlipped }">
7
- <div class="front-card" name="front-card">
8
- <slot name="front-card" />
9
- </div>
10
- <div class="back-card">
11
- <slot name="back-card" />
12
- </div>
13
- </div>
14
- </div>
15
- </template>
16
- <script>
17
- export default {
18
- props: {
19
- isActive: {
20
- type: Boolean,
21
- default: false
22
- }
23
- },
24
- emits: ['click'],
25
- data() {
26
- return {
27
- isFlipped: false
28
- }
29
- },
30
- methods: {
31
- /**
32
- * @fires click to parent componant or page
33
- */
34
- fnClick() {
35
- this.$emit('click', this.$el)
36
- this.isFlipped = !this.isFlipped
37
- }
38
- }
39
- }
40
- </script>
41
- <style lang="scss">
42
- .flip-card {
43
- height: auto;
44
- cursor: pointer;
45
-
46
- /***** Parameretre modifiable *****/
47
- perspective: 100%;
48
- width: 90%;
49
-
50
- .inside-card {
51
- position: relative;
52
- width: 100%;
53
- height: 100%;
54
-
55
- /***** Parameretre modifiable *****/
56
- transform-style: preserve-3d;
57
- transition: transform 0.5s;
58
-
59
- &.flip {
60
- /***** Parameretre modifiable *****/
61
- transform: rotateY(180deg);
62
- }
63
-
64
- .front-card,
65
- .back-card {
66
- position: absolute;
67
- width: 100%;
68
- height: 100%;
69
- -webkit-backface-visibility: hidden;
70
- backface-visibility: hidden;
71
-
72
- .img-flip-card {
73
- width: 90%;
74
- height: auto;
75
- }
76
- }
77
-
78
- .back-card {
79
- /***** Parameretre modifiable *****/
80
- transform: rotateY(180deg);
81
- }
82
- }
83
- }
84
- </style>
1
+ <template>
2
+ <!--
3
+ inspire by : https://vuejsexamples.com/generic-flip-card-in-vue-that-allows-completely-arbitrary-content-on-each-side/
4
+ -->
5
+ <div class="flip-card" role="button" aria-pressed="false" @click="fnClick">
6
+ <div class="inside-card" :class="{ flip: isFlipped }">
7
+ <div class="front-card" name="front-card">
8
+ <slot name="front-card" />
9
+ </div>
10
+ <div class="back-card">
11
+ <slot name="back-card" />
12
+ </div>
13
+ </div>
14
+ </div>
15
+ </template>
16
+ <script>
17
+ export default {
18
+ props: {
19
+ isActive: {
20
+ type: Boolean,
21
+ default: false
22
+ }
23
+ },
24
+ emits: ['click'],
25
+ data() {
26
+ return {
27
+ isFlipped: false
28
+ }
29
+ },
30
+ methods: {
31
+ /**
32
+ * @fires click to parent componant or page
33
+ */
34
+ fnClick() {
35
+ this.$emit('click', this.$el)
36
+ this.isFlipped = !this.isFlipped
37
+ }
38
+ }
39
+ }
40
+ </script>
41
+ <style lang="scss">
42
+ .flip-card {
43
+ height: auto;
44
+ cursor: pointer;
45
+
46
+ /***** Parameretre modifiable *****/
47
+ perspective: 100%;
48
+ width: 90%;
49
+
50
+ .inside-card {
51
+ position: relative;
52
+ width: 100%;
53
+ height: 100%;
54
+
55
+ /***** Parameretre modifiable *****/
56
+ transform-style: preserve-3d;
57
+ transition: transform 0.5s;
58
+
59
+ &.flip {
60
+ /***** Parameretre modifiable *****/
61
+ transform: rotateY(180deg);
62
+ }
63
+
64
+ .front-card,
65
+ .back-card {
66
+ position: absolute;
67
+ width: 100%;
68
+ height: 100%;
69
+ -webkit-backface-visibility: hidden;
70
+ backface-visibility: hidden;
71
+
72
+ .img-flip-card {
73
+ width: 90%;
74
+ height: auto;
75
+ }
76
+ }
77
+
78
+ .back-card {
79
+ /***** Parameretre modifiable *****/
80
+ transform: rotateY(180deg);
81
+ }
82
+ }
83
+ }
84
+ </style>
@@ -1,41 +1,41 @@
1
- <!--
2
- @ Description: This component is used to create a popover that is accessible via keyboard navigation (tab + space/enter)
3
- -->
4
- <template>
5
- <v-tooltip
6
- ref="tooltip"
7
- v-bind="$attrs"
8
- v-model="show"
9
- transition="false"
10
- :open-on-click="true"
11
- :persistent="false"
12
- >
13
- <slot></slot>
14
- </v-tooltip>
15
- </template>
16
-
17
- <script>
18
- export default {
19
- name: 'AppBasePopover',
20
- data() {
21
- return {
22
- show: false,
23
- alertContainer: null
24
- }
25
- },
26
- watch: {
27
- show: {
28
- handler(newValue) {
29
- if (newValue) {
30
- const content = this.$refs.tooltip.contentEl.textContent
31
- this.alertContainer.textContent = ''
32
- this.alertContainer.textContent = content
33
- }
34
- }
35
- }
36
- },
37
- mounted() {
38
- this.alertContainer = document.getElementById('hiddenAlertContainer')
39
- }
40
- }
41
- </script>
1
+ <!--
2
+ @ Description: This component is used to create a popover that is accessible via keyboard navigation (tab + space/enter)
3
+ -->
4
+ <template>
5
+ <v-tooltip
6
+ ref="tooltip"
7
+ v-bind="$attrs"
8
+ v-model="show"
9
+ transition="false"
10
+ :open-on-click="true"
11
+ :persistent="false"
12
+ >
13
+ <slot></slot>
14
+ </v-tooltip>
15
+ </template>
16
+
17
+ <script>
18
+ export default {
19
+ name: 'AppBasePopover',
20
+ data() {
21
+ return {
22
+ show: false,
23
+ alertContainer: null
24
+ }
25
+ },
26
+ watch: {
27
+ show: {
28
+ handler(newValue) {
29
+ if (newValue) {
30
+ const content = this.$refs.tooltip.contentEl.textContent
31
+ this.alertContainer.textContent = ''
32
+ this.alertContainer.textContent = content
33
+ }
34
+ }
35
+ }
36
+ },
37
+ mounted() {
38
+ this.alertContainer = document.getElementById('hiddenAlertContainer')
39
+ }
40
+ }
41
+ </script>
@@ -2,7 +2,7 @@
2
2
  * Renders a checkboxe input type for the Quiz component
3
3
  * Related Quiz to question: REPONSE_MULTIPLE
4
4
  * Receives the a data object defined by user
5
- * Used by AppCompQuizNx
5
+ * Used by AppCompQuiz
6
6
  -->
7
7
  <template>
8
8
  <div :id="id" class="input-box">
@@ -2,7 +2,7 @@
2
2
  * Renders a SELECT input to display choices of response for the Quiz component
3
3
  * Related Quiz to question: DROPDOWN
4
4
  * Receives the a data object defined by user
5
- * Used by AppCompQuizNx
5
+ * Used by AppCompQuiz
6
6
  * Uses useQuiz composable
7
7
  -->
8
8
  <template>
@@ -2,7 +2,7 @@
2
2
  * Renders a RADIO BUTTON input to display choices of response for the Quiz component
3
3
  * Related Quiz to question: REPONSE_UNIQUE
4
4
  * Receives the a data object defined by user
5
- * Used by AppCompQuizNx
5
+ * Used by AppCompQuiz
6
6
  * Uses useQuiz composable
7
7
  -->
8
8
 
@@ -2,7 +2,7 @@
2
2
  * Renders a TEXTAREA input to collect input for the Quiz component
3
3
  * Related Quiz to question: REPONSE_OUVERTE
4
4
  Receives the a data object defined by user
5
- * Used by AppCompQuizNx
5
+ * Used by AppCompQuiz
6
6
  * Uses useQuiz composable
7
7
  -->
8
8
  <template>
@@ -2,7 +2,7 @@
2
2
  * Renders a Series of SELECTS inputs to collect input for the Quiz component.
3
3
  * Related Quiz to question: TEXTE_TABLEAU
4
4
  * Receives the a data object defined by user
5
- * Used by AppCompQuizNx
5
+ * Used by AppCompQuiz
6
6
  * Uses useQuiz composable
7
7
  -->
8
8
  <template>
@@ -2,7 +2,7 @@
2
2
  * Renders a Series of inputs to collect input for the Quiz component.
3
3
  * Related Quiz to question: TEXTE_TROUE_SELECT
4
4
  * Receives the a data object defined by user
5
- * Used by AppCompQuizNx
5
+ * Used by AppCompQuiz
6
6
  * Uses useQuiz composable
7
7
  -->
8
8
  <template>
@@ -2,7 +2,7 @@
2
2
  * Renders a Series of inputs to collect input for the Quiz component.
3
3
  * Related Quiz to question: TEXTE_TROUE
4
4
  * Receives the a data object defined by user
5
- * Used by AppCompQuizNx
5
+ * Used by AppCompQuiz
6
6
  * Uses useQuiz composable
7
7
  -->
8
8
  <template>
@@ -1,82 +1,82 @@
1
- <!--@ Description: This component is used to display the playbar associate with the videoPlayer
2
- @ What it does: The component is used to interacted with the videoPlayer via buttons.
3
- v-media class is used to identified which html elements trigger the playBar to be appear (with focus/click)-->
4
- <template>
5
- <!--------------------------------- PLAY-BAR Progress -------------------------------------->
6
- <div ref="$playbar-timeline" class="pb-timeline">
7
- <div ref="$progress-area" class="progress-area">
8
- <div
9
- id="progress-bar"
10
- ref="$progress-bar"
11
- draggable="false"
12
- tabindex="0"
13
- class="v-media pb-progress-bar"
14
- role="slider"
15
- aria-valuemin="0"
16
- :aria-label="mediaA11Y.label"
17
- :aria-valuenow="mediaA11Y.valNow"
18
- :aria-valuemax="mediaA11Y.valMax"
19
- :aria-valuetext="mediaA11Y.valueText"
20
- @focus="changeFocusState('progressBar', true)"
21
- @blur="changeFocusState('progressBar', false)"
22
- >
23
- <!--Class progress-animation is apply when we are not using the thumb to change the progression-->
24
- <div
25
- id="progress-indicator"
26
- ref="$progress-indicator"
27
- draggable="false"
28
- class="progress-indicator"
29
- :class="{ 'progress-animation': !progressThumbDown }"
30
- :style="{ width: progressBarPercentage + '%' }"
31
- >
32
- <!--Mousedown validate if the thumb is cliqued (if yes, the mouse is follow to modify the progress)
33
- MouseOver/MouseOut deactivate click event on progressBar if the mouse hovered the thumb-->
34
- <!-- <div
35
- ref="$progress-thumb"
36
- draggable="false"
37
- class="progress-thumb"
38
- style="z-index: 9"
39
- @mousedown="
40
- savedIsPlaying = isPlaying
41
- progressThumbDown = true
42
- "
43
- @mouseover="progressThumbHover = true"
44
- @mouseleave="progressThumbHover = false"
45
- ></div> -->
46
-
47
- <div
48
- ref="$progress-thumb"
49
- draggable="false"
50
- class="progress-thumb"
51
- style="z-index: 9"
52
- @mouseover="progressThumbHover = true"
53
- @mouseleave="progressThumbHover = false"
54
- ></div>
55
- </div>
56
- </div>
57
- <div
58
- v-if="tooTipTimeCode"
59
- id="seek-tooltip"
60
- ref="$seek-tooltip"
61
- aria-hidden="true"
62
- class="seek-tooltip"
63
- >
64
- {{ tooTipTimeCode }}
65
- </div>
66
- </div>
67
- </div>
68
- </template>
69
-
70
- <script>
71
- import $extendsMedia from '../mixins/$mediaMixins'
72
-
73
- export default {
74
- mixins: [$extendsMedia],
75
- data() {
76
- return {
77
- tooTipTimeCode: null
78
- }
79
- },
80
- mounted() {}
81
- }
82
- </script>
1
+ <!--@ Description: This component is used to display the playbar associate with the videoPlayer
2
+ @ What it does: The component is used to interacted with the videoPlayer via buttons.
3
+ v-media class is used to identified which html elements trigger the playBar to be appear (with focus/click)-->
4
+ <template>
5
+ <!--------------------------------- PLAY-BAR Progress -------------------------------------->
6
+ <div ref="$playbar-timeline" class="pb-timeline">
7
+ <div ref="$progress-area" class="progress-area">
8
+ <div
9
+ id="progress-bar"
10
+ ref="$progress-bar"
11
+ draggable="false"
12
+ tabindex="0"
13
+ class="v-media pb-progress-bar"
14
+ role="slider"
15
+ aria-valuemin="0"
16
+ :aria-label="mediaA11Y.label"
17
+ :aria-valuenow="mediaA11Y.valNow"
18
+ :aria-valuemax="mediaA11Y.valMax"
19
+ :aria-valuetext="mediaA11Y.valueText"
20
+ @focus="changeFocusState('progressBar', true)"
21
+ @blur="changeFocusState('progressBar', false)"
22
+ >
23
+ <!--Class progress-animation is apply when we are not using the thumb to change the progression-->
24
+ <div
25
+ id="progress-indicator"
26
+ ref="$progress-indicator"
27
+ draggable="false"
28
+ class="progress-indicator"
29
+ :class="{ 'progress-animation': !progressThumbDown }"
30
+ :style="{ width: progressBarPercentage + '%' }"
31
+ >
32
+ <!--Mousedown validate if the thumb is cliqued (if yes, the mouse is follow to modify the progress)
33
+ MouseOver/MouseOut deactivate click event on progressBar if the mouse hovered the thumb-->
34
+ <!-- <div
35
+ ref="$progress-thumb"
36
+ draggable="false"
37
+ class="progress-thumb"
38
+ style="z-index: 9"
39
+ @mousedown="
40
+ savedIsPlaying = isPlaying
41
+ progressThumbDown = true
42
+ "
43
+ @mouseover="progressThumbHover = true"
44
+ @mouseleave="progressThumbHover = false"
45
+ ></div> -->
46
+
47
+ <div
48
+ ref="$progress-thumb"
49
+ draggable="false"
50
+ class="progress-thumb"
51
+ style="z-index: 9"
52
+ @mouseover="progressThumbHover = true"
53
+ @mouseleave="progressThumbHover = false"
54
+ ></div>
55
+ </div>
56
+ </div>
57
+ <div
58
+ v-if="tooTipTimeCode"
59
+ id="seek-tooltip"
60
+ ref="$seek-tooltip"
61
+ aria-hidden="true"
62
+ class="seek-tooltip"
63
+ >
64
+ {{ tooTipTimeCode }}
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </template>
69
+
70
+ <script>
71
+ import $extendsMedia from '../mixins/$mediaMixins'
72
+
73
+ export default {
74
+ mixins: [$extendsMedia],
75
+ data() {
76
+ return {
77
+ tooTipTimeCode: null
78
+ }
79
+ },
80
+ mounted() {}
81
+ }
82
+ </script>