fcad-core-dragon 2.1.1 → 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.
Files changed (160) hide show
  1. package/.editorconfig +7 -7
  2. package/.gitlab-ci.yml +124 -0
  3. package/.prettierrc +11 -11
  4. package/.vscode/extensions.json +8 -8
  5. package/.vscode/settings.json +46 -16
  6. package/CHANGELOG +520 -520
  7. package/README.md +57 -57
  8. package/documentation/.vitepress/config.js +114 -114
  9. package/documentation/api-examples.md +49 -49
  10. package/documentation/composants/app-base-button.md +58 -58
  11. package/documentation/composants/app-base-error-display.md +59 -59
  12. package/documentation/composants/app-base-popover.md +68 -68
  13. package/documentation/composants/app-comp-audio.md +75 -75
  14. package/documentation/composants/app-comp-branch-buttons.md +111 -111
  15. package/documentation/composants/app-comp-button-progress.md +53 -53
  16. package/documentation/composants/app-comp-carousel.md +53 -53
  17. package/documentation/composants/app-comp-container.md +53 -53
  18. package/documentation/composants/app-comp-input-checkbox-next.md +42 -42
  19. package/documentation/composants/app-comp-input-dropdown-next.md +34 -34
  20. package/documentation/composants/app-comp-input-radio-next.md +39 -39
  21. package/documentation/composants/app-comp-input-text-next.md +35 -35
  22. package/documentation/composants/app-comp-input-text-table-next.md +34 -34
  23. package/documentation/composants/app-comp-input-text-to-fill-dropdown-next.md +53 -53
  24. package/documentation/composants/app-comp-input-text-to-fill-next.md +31 -31
  25. package/documentation/composants/app-comp-jauge.md +31 -31
  26. package/documentation/composants/app-comp-menu-item.md +55 -55
  27. package/documentation/composants/app-comp-menu.md +29 -29
  28. package/documentation/composants/app-comp-navigation.md +41 -41
  29. package/documentation/composants/app-comp-note-call.md +53 -53
  30. package/documentation/composants/app-comp-note-credit.md +53 -53
  31. package/documentation/composants/app-comp-play-bar-next.md +53 -53
  32. package/documentation/composants/app-comp-pop-up-next.md +93 -93
  33. package/documentation/composants/app-comp-quiz-next.md +235 -235
  34. package/documentation/composants/app-comp-quiz-recall.md +53 -53
  35. package/documentation/composants/app-comp-svg-next.md +53 -53
  36. package/documentation/composants/app-comp-table-of-content.md +50 -50
  37. package/documentation/composants/app-comp-video-player.md +82 -82
  38. package/documentation/composants.md +46 -46
  39. package/documentation/composants_critiques/ModelPageComposant.md +53 -53
  40. package/documentation/composants_critiques/app-base-module.md +43 -43
  41. package/documentation/composants_critiques/app-base-page.md +48 -48
  42. package/documentation/composants_critiques/app-base.md +311 -311
  43. package/documentation/composants_critiques/main.md +15 -15
  44. package/documentation/demarrage.md +50 -50
  45. package/documentation/deploiement.md +57 -57
  46. package/documentation/index.md +33 -33
  47. package/documentation/markdown-examples.md +85 -85
  48. package/documentation/public/vite.svg +14 -14
  49. package/documentation/public/vuejs.svg +1 -1
  50. package/documentation/public/vuetify.svg +5 -5
  51. package/eslint.config.js +60 -60
  52. package/junit-report.xml +182 -0
  53. package/package.json +66 -59
  54. package/playwright/index.html +12 -0
  55. package/playwright/index.js +21 -0
  56. package/playwright-ct.config.js +95 -0
  57. package/src/$locales/en.json +157 -157
  58. package/src/$locales/fr.json +120 -120
  59. package/src/assets/data/onboardingMessages.json +47 -47
  60. package/src/components/AppBase.vue +1171 -1169
  61. package/src/components/AppBaseButton.vue +90 -95
  62. package/src/components/AppBaseErrorDisplay.vue +438 -438
  63. package/src/components/AppBaseFlipCard.vue +84 -84
  64. package/src/components/AppBaseModule.vue +1639 -1634
  65. package/src/components/AppBasePage.vue +867 -866
  66. package/src/components/AppBasePopover.vue +41 -41
  67. package/src/components/AppBaseSkeleton.vue +66 -66
  68. package/src/components/AppCompAudio.vue +261 -256
  69. package/src/components/AppCompBranchButtons.vue +508 -508
  70. package/src/components/AppCompButtonProgress.vue +137 -132
  71. package/src/components/AppCompCarousel.vue +342 -336
  72. package/src/components/AppCompContainer.vue +29 -29
  73. package/src/components/AppCompInputCheckBoxNx.vue +325 -323
  74. package/src/components/AppCompInputDropdownNx.vue +302 -299
  75. package/src/components/AppCompInputRadioNx.vue +287 -284
  76. package/src/components/AppCompInputTextNx.vue +156 -153
  77. package/src/components/AppCompInputTextTableNx.vue +205 -202
  78. package/src/components/AppCompInputTextToFillDropdownNx.vue +343 -340
  79. package/src/components/AppCompInputTextToFillNx.vue +316 -313
  80. package/src/components/AppCompJauge.vue +81 -81
  81. package/src/components/AppCompMenu.vue +6 -1
  82. package/src/components/AppCompMenuItem.vue +246 -240
  83. package/src/components/AppCompNavigation.vue +977 -972
  84. package/src/components/AppCompNoteCall.vue +167 -161
  85. package/src/components/AppCompNoteCredit.vue +496 -491
  86. package/src/components/AppCompPlayBarNext.vue +2290 -2288
  87. package/src/components/AppCompPopUpNext.vue +508 -504
  88. package/src/components/AppCompQuizNext.vue +515 -510
  89. package/src/components/AppCompQuizRecall.vue +355 -350
  90. package/src/components/AppCompSVGNext.vue +346 -346
  91. package/src/components/AppCompSettingsMenu.vue +177 -172
  92. package/src/components/AppCompTableOfContent.vue +433 -427
  93. package/src/components/AppCompVideoPlayer.vue +377 -377
  94. package/src/components/AppCompViewDisplay.vue +6 -6
  95. package/src/components/BaseModule.vue +55 -55
  96. package/src/composables/useIdleDetector.js +56 -56
  97. package/src/composables/useQuiz.js +89 -89
  98. package/src/composables/useTimer.js +172 -172
  99. package/src/directives/nvdaFix.js +53 -53
  100. package/src/externalComps/ModuleView.vue +22 -22
  101. package/src/externalComps/SummaryView.vue +91 -91
  102. package/src/main.js +493 -476
  103. package/src/module/stores/appStore.js +960 -947
  104. package/src/module/xapi/ADL.js +520 -520
  105. package/src/module/xapi/Crypto/Hasher.js +241 -241
  106. package/src/module/xapi/Crypto/WordArray.js +278 -278
  107. package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +103 -103
  108. package/src/module/xapi/Crypto/algorithms/C_algo.js +315 -315
  109. package/src/module/xapi/Crypto/algorithms/HMAC.js +9 -9
  110. package/src/module/xapi/Crypto/algorithms/SHA1.js +9 -9
  111. package/src/module/xapi/Crypto/encoders/Base.js +105 -105
  112. package/src/module/xapi/Crypto/encoders/Base64.js +99 -99
  113. package/src/module/xapi/Crypto/encoders/Hex.js +61 -61
  114. package/src/module/xapi/Crypto/encoders/Latin1.js +61 -61
  115. package/src/module/xapi/Crypto/encoders/Utf8.js +45 -45
  116. package/src/module/xapi/Crypto/index.js +53 -53
  117. package/src/module/xapi/Statement/activity.js +47 -47
  118. package/src/module/xapi/Statement/agent.js +55 -55
  119. package/src/module/xapi/Statement/group.js +26 -26
  120. package/src/module/xapi/Statement/index.js +259 -259
  121. package/src/module/xapi/Statement/statement.js +253 -253
  122. package/src/module/xapi/Statement/statementRef.js +23 -23
  123. package/src/module/xapi/Statement/substatement.js +22 -22
  124. package/src/module/xapi/Statement/verb.js +36 -36
  125. package/src/module/xapi/activitytypes.js +17 -17
  126. package/src/module/xapi/launch.js +157 -157
  127. package/src/module/xapi/utils.js +167 -167
  128. package/src/module/xapi/verbs.js +294 -294
  129. package/src/module/xapi/wrapper.js +1895 -1895
  130. package/src/module/xapi/xapiStatement.js +444 -444
  131. package/src/plugins/analytics.js +34 -34
  132. package/src/plugins/bus.js +12 -8
  133. package/src/plugins/gsap.js +17 -17
  134. package/src/plugins/helper.js +355 -358
  135. package/src/plugins/i18n.js +27 -26
  136. package/src/plugins/idb.js +227 -227
  137. package/src/plugins/save.js +37 -37
  138. package/src/plugins/scorm.js +287 -287
  139. package/src/plugins/xapi.js +11 -11
  140. package/src/public/index.html +33 -33
  141. package/src/router/index.js +57 -57
  142. package/src/router/routes.js +312 -312
  143. package/src/shared/generalfuncs.js +344 -344
  144. package/src/shared/validators.js +1018 -1018
  145. package/tests/component/AppBaseButton.spec.js +53 -0
  146. package/tests/component/pinia.spec.js +24 -0
  147. package/{src/components/tests__ → tests/unit}/AppBaseButton.spec.js +53 -53
  148. package/tests/unit/AppCompInputCheckBoxNx.spec.js +59 -0
  149. package/tests/unit/AppCompInputDropdownNx.spec.js +51 -0
  150. package/tests/unit/AppCompInputRadioNx.spec.js +59 -0
  151. package/tests/unit/AppCompInputTextNx.spec.js +44 -0
  152. package/tests/unit/AppCompInputTextTableNx.spec.js +77 -0
  153. package/tests/unit/AppCompInputTextToFillDropdownNx.spec.js +60 -0
  154. package/tests/unit/AppCompInputTextToFillNx.spec.js +45 -0
  155. package/tests/unit/AppCompQuizNext.spec.js +114 -0
  156. package/tests/unit/AppCompVideoPlayer.spec.js +177 -0
  157. package/{src/components/tests__ → tests/unit}/useTimer.spec.js +91 -91
  158. package/vitest.config.js +28 -19
  159. package/vitest.setup.js +28 -0
  160. package/src/components/AppBaseButton.test.js +0 -21
@@ -1,132 +1,137 @@
1
- <template>
2
- <div class="button-progress-wrapper">
3
- <app-base-button
4
- :id="`btn_branch_${branchData.id}`"
5
- :target-ref="branchData.id"
6
- aria-controls="right-sidebar"
7
- :title="btnTitle || $t('text.place_holder.for_title_btn_progress')"
8
- :aria-label="btnTitle || $t('text.place_holder.for_title_btn_progress')"
9
- :aria-expanded="isActive"
10
- :class="
11
- branchData.state === status.COMPLETE
12
- ? 'branch-btn-default branche-complete'
13
- : 'branch-btn-default'
14
- "
15
- @click="openBranch(branchData.id)"
16
- >
17
- <svg
18
- v-if="branchData.state === status.COMPLETE"
19
- aria-hidden="true"
20
- focusable="false"
21
- >
22
- <use href="#check-icon"></use>
23
- </svg>
24
- <svg
25
- v-if="branchData.state != status.COMPLETE"
26
- aria-hidden="true"
27
- focusable="false"
28
- >
29
- <use href="#navigate-next-icon"></use>
30
- </svg>
31
- </app-base-button>
32
- </div>
33
- </template>
34
- <script>
35
- import AppBaseButton from './AppBaseButton.vue'
36
- export default {
37
- components: { AppBaseButton },
38
- props: {
39
- mini: {
40
- type: Boolean,
41
- default: false
42
- },
43
- percent: {
44
- type: [Number],
45
- default: 0,
46
- required: true
47
- },
48
- branchData: {
49
- type: Object,
50
- required: true
51
- },
52
- setTarget: {
53
- type: [String],
54
- default: ''
55
- },
56
-
57
- btnTitle: {
58
- type: String,
59
- default: null
60
- }
61
- },
62
- data() {
63
- const svgRadius = 23
64
- return {
65
- radius: svgRadius,
66
- circumference: svgRadius * 2 * Math.PI,
67
- status: {
68
- NEW: 'new',
69
- STARTED: 'started',
70
- COMPLETE: 'complete'
71
- },
72
- withRouter: false, //Only for demo purpose. Remove after demo
73
- isActive: false,
74
- currentPercent: 0
75
- }
76
- },
77
-
78
- created() {
79
- this.$bus.$on('branching-hidden', this.resetIsActive)
80
- },
81
-
82
- beforeUnmount() {
83
- this.$bus.$off('branching-hidden', this.resetIsActive)
84
- },
85
-
86
- methods: {
87
- openBranch(e) {
88
- this.isActive = true
89
- this.$bus.$emit('open-sidebar', { ctx: 'ctxBranching', e })
90
- },
91
-
92
- resetIsActive() {
93
- this.isActive = false
94
- }
95
- }
96
- }
97
- </script>
98
- <style lang="scss">
99
- .button-progress-wrapper {
100
- &.card-btn {
101
- .branch-btn-default {
102
- left: 5.5px;
103
- top: 5.5px;
104
- min-width: 40px;
105
- min-height: 40px;
106
- }
107
- }
108
- }
109
-
110
- .button-progress-wrapper {
111
- &:not(.card-btn) {
112
- .branch-btn-default {
113
- min-width: 42px;
114
- min-height: 42px;
115
- }
116
- }
117
- }
118
-
119
- .button-progress-wrapper {
120
- position: relative;
121
-
122
- .progress-ring {
123
- position: absolute;
124
- top: 0;
125
- left: 0;
126
- }
127
-
128
- .branch-btn-default {
129
- position: absolute;
130
- }
131
- }
132
- </style>
1
+ <template>
2
+ <div class="button-progress-wrapper">
3
+ <app-base-button
4
+ :id="`btn_branch_${branchData.id}`"
5
+ :target-ref="branchData.id"
6
+ aria-controls="right-sidebar"
7
+ :title="btnTitle || $t('text.place_holder.for_title_btn_progress')"
8
+ :aria-label="btnTitle || $t('text.place_holder.for_title_btn_progress')"
9
+ :aria-expanded="isActive"
10
+ :class="
11
+ branchData.state === status.COMPLETE
12
+ ? 'branch-btn-default branche-complete'
13
+ : 'branch-btn-default'
14
+ "
15
+ @click="openBranch(branchData.id)"
16
+ >
17
+ <svg
18
+ v-if="branchData.state === status.COMPLETE"
19
+ aria-hidden="true"
20
+ focusable="false"
21
+ >
22
+ <use href="#check-icon"></use>
23
+ </svg>
24
+ <svg
25
+ v-if="branchData.state != status.COMPLETE"
26
+ aria-hidden="true"
27
+ focusable="false"
28
+ >
29
+ <use href="#navigate-next-icon"></use>
30
+ </svg>
31
+ </app-base-button>
32
+ </div>
33
+ </template>
34
+ <script>
35
+ import AppBaseButton from './AppBaseButton.vue'
36
+ import { useI18n } from 'vue-i18n'
37
+ export default {
38
+ components: { AppBaseButton },
39
+ props: {
40
+ mini: {
41
+ type: Boolean,
42
+ default: false
43
+ },
44
+ percent: {
45
+ type: [Number],
46
+ default: 0,
47
+ required: true
48
+ },
49
+ branchData: {
50
+ type: Object,
51
+ required: true
52
+ },
53
+ setTarget: {
54
+ type: [String],
55
+ default: ''
56
+ },
57
+
58
+ btnTitle: {
59
+ type: String,
60
+ default: null
61
+ }
62
+ },
63
+ setup() {
64
+ const { t } = useI18n()
65
+ return { t }
66
+ },
67
+ data() {
68
+ const svgRadius = 23
69
+ return {
70
+ radius: svgRadius,
71
+ circumference: svgRadius * 2 * Math.PI,
72
+ status: {
73
+ NEW: 'new',
74
+ STARTED: 'started',
75
+ COMPLETE: 'complete'
76
+ },
77
+ withRouter: false, //Only for demo purpose. Remove after demo
78
+ isActive: false,
79
+ currentPercent: 0
80
+ }
81
+ },
82
+
83
+ created() {
84
+ this.$bus.$on('branching-hidden', this.resetIsActive)
85
+ },
86
+
87
+ beforeUnmount() {
88
+ this.$bus.$off('branching-hidden', this.resetIsActive)
89
+ },
90
+
91
+ methods: {
92
+ openBranch(e) {
93
+ this.isActive = true
94
+ this.$bus.$emit('open-sidebar', { ctx: 'ctxBranching', e })
95
+ },
96
+
97
+ resetIsActive() {
98
+ this.isActive = false
99
+ }
100
+ }
101
+ }
102
+ </script>
103
+ <style lang="scss">
104
+ .button-progress-wrapper {
105
+ &.card-btn {
106
+ .branch-btn-default {
107
+ left: 5.5px;
108
+ top: 5.5px;
109
+ min-width: 40px;
110
+ min-height: 40px;
111
+ }
112
+ }
113
+ }
114
+
115
+ .button-progress-wrapper {
116
+ &:not(.card-btn) {
117
+ .branch-btn-default {
118
+ min-width: 42px;
119
+ min-height: 42px;
120
+ }
121
+ }
122
+ }
123
+
124
+ .button-progress-wrapper {
125
+ position: relative;
126
+
127
+ .progress-ring {
128
+ position: absolute;
129
+ top: 0;
130
+ left: 0;
131
+ }
132
+
133
+ .branch-btn-default {
134
+ position: absolute;
135
+ }
136
+ }
137
+ </style>