fcad-core-dragon 2.0.0-beta.1 → 2.0.0-beta.10

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 (163) hide show
  1. package/.editorconfig +6 -31
  2. package/.prettierrc +11 -0
  3. package/.vscode/extensions.json +8 -0
  4. package/.vscode/settings.json +16 -0
  5. package/CHANGELOG +153 -0
  6. package/README.md +28 -43
  7. package/documentation/.vitepress/config.js +114 -0
  8. package/documentation/api-examples.md +49 -0
  9. package/documentation/composants/app-base-button.md +58 -0
  10. package/documentation/composants/app-base-error-display.md +59 -0
  11. package/documentation/composants/app-base-popover.md +68 -0
  12. package/documentation/composants/app-comp-audio.md +75 -0
  13. package/documentation/composants/app-comp-branch-buttons.md +111 -0
  14. package/documentation/composants/app-comp-button-progress.md +53 -0
  15. package/documentation/composants/app-comp-carousel.md +53 -0
  16. package/documentation/composants/app-comp-container.md +53 -0
  17. package/documentation/composants/app-comp-input-checkbox-next.md +42 -0
  18. package/documentation/composants/app-comp-input-dropdown-next.md +34 -0
  19. package/documentation/composants/app-comp-input-radio-next.md +39 -0
  20. package/documentation/composants/app-comp-input-text-next.md +35 -0
  21. package/documentation/composants/app-comp-input-text-table-next.md +34 -0
  22. package/documentation/composants/app-comp-input-text-to-fill-dropdown-next.md +53 -0
  23. package/documentation/composants/app-comp-input-text-to-fill-next.md +31 -0
  24. package/documentation/composants/app-comp-jauge.md +31 -0
  25. package/documentation/composants/app-comp-menu-item.md +55 -0
  26. package/documentation/composants/app-comp-menu.md +29 -0
  27. package/documentation/composants/app-comp-navigation.md +41 -0
  28. package/documentation/composants/app-comp-note-call.md +53 -0
  29. package/documentation/composants/app-comp-note-credit.md +53 -0
  30. package/documentation/composants/app-comp-play-bar-next.md +53 -0
  31. package/documentation/composants/app-comp-pop-up-next.md +93 -0
  32. package/documentation/composants/app-comp-quiz-next.md +235 -0
  33. package/documentation/composants/app-comp-quiz-recall.md +53 -0
  34. package/documentation/composants/app-comp-svg-next.md +53 -0
  35. package/documentation/composants/app-comp-table-of-content.md +50 -0
  36. package/documentation/composants/app-comp-video-player.md +82 -0
  37. package/documentation/composants.md +46 -0
  38. package/documentation/composants_critiques/ModelPageComposant.md +53 -0
  39. package/documentation/composants_critiques/app-base-module.md +43 -0
  40. package/documentation/composants_critiques/app-base-page.md +48 -0
  41. package/documentation/composants_critiques/app-base.md +311 -0
  42. package/documentation/composants_critiques/main.md +15 -0
  43. package/documentation/demarrage.md +50 -0
  44. package/documentation/deploiement.md +58 -0
  45. package/documentation/index.md +33 -0
  46. package/documentation/markdown-examples.md +85 -0
  47. package/documentation/public/npm_version.png +0 -0
  48. package/documentation/public/vite.svg +15 -0
  49. package/documentation/public/vuejs.svg +2 -0
  50. package/documentation/public/vuetify.svg +6 -0
  51. package/eslint.config.js +60 -0
  52. package/package.json +43 -47
  53. package/src/$locales/en.json +86 -108
  54. package/src/$locales/fr.json +66 -127
  55. package/src/assets/data/onboardingMessages.json +1 -1
  56. package/src/components/AppBase.vue +960 -405
  57. package/src/components/AppBaseButton.test.js +21 -0
  58. package/src/components/AppBaseButton.vue +42 -10
  59. package/src/components/AppBaseErrorDisplay.vue +207 -189
  60. package/src/components/AppBaseFlipCard.vue +1 -0
  61. package/src/components/AppBaseModule.vue +769 -977
  62. package/src/components/AppBasePage.vue +635 -81
  63. package/src/components/AppBasePopover.vue +41 -0
  64. package/src/components/AppBaseSkeleton.vue +66 -0
  65. package/src/components/AppCompAudio.vue +256 -0
  66. package/src/components/AppCompBranchButtons.vue +79 -153
  67. package/src/components/AppCompButtonProgress.vue +21 -36
  68. package/src/components/AppCompCarousel.vue +231 -87
  69. package/src/components/{AppCompTranscript.vue → AppCompContainer.vue} +12 -2
  70. package/src/components/AppCompInputCheckBoxNx.vue +323 -0
  71. package/src/components/AppCompInputDropdownNx.vue +299 -0
  72. package/src/components/AppCompInputRadioNx.vue +284 -0
  73. package/src/components/AppCompInputTextNx.vue +153 -0
  74. package/src/components/AppCompInputTextTableNx.vue +202 -0
  75. package/src/components/AppCompInputTextToFillDropdownNx.vue +340 -0
  76. package/src/components/AppCompInputTextToFillNx.vue +313 -0
  77. package/src/components/AppCompJauge.vue +36 -10
  78. package/src/components/AppCompMenu.vue +246 -32
  79. package/src/components/AppCompMenuItem.vue +87 -21
  80. package/src/components/AppCompNavigation.vue +470 -447
  81. package/src/components/AppCompNoteCall.vue +93 -58
  82. package/src/components/AppCompNoteCredit.vue +423 -96
  83. package/src/components/AppCompPlayBarNext.vue +2288 -0
  84. package/src/components/AppCompPopUpNext.vue +504 -0
  85. package/src/components/AppCompQuizNext.vue +510 -0
  86. package/src/components/AppCompQuizRecall.vue +199 -99
  87. package/src/components/AppCompSVGNext.vue +346 -0
  88. package/src/components/AppCompSettingsMenu.vue +17 -16
  89. package/src/components/AppCompTableOfContent.vue +262 -99
  90. package/src/components/AppCompVideoPlayer.vue +183 -142
  91. package/src/components/BaseModule.vue +8 -20
  92. package/src/components/tests__/AppBaseButton.spec.js +53 -0
  93. package/src/components/tests__/useTimer.spec.js +91 -0
  94. package/src/composables/useIdleDetector.js +56 -0
  95. package/src/composables/useQuiz.js +89 -0
  96. package/src/composables/useTimer.js +172 -0
  97. package/src/directives/nvdaFix.js +53 -0
  98. package/src/externalComps/ModuleView.vue +22 -0
  99. package/src/externalComps/SummaryView.vue +91 -0
  100. package/src/main.js +397 -148
  101. package/src/module/stores/appStore.js +947 -0
  102. package/src/module/xapi/ADL.js +241 -60
  103. package/src/module/xapi/Crypto/Hasher.js +8 -8
  104. package/src/module/xapi/Crypto/WordArray.js +6 -6
  105. package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +4 -4
  106. package/src/module/xapi/Crypto/algorithms/C_algo.js +14 -18
  107. package/src/module/xapi/Crypto/algorithms/HMAC.js +1 -1
  108. package/src/module/xapi/Crypto/algorithms/SHA1.js +1 -1
  109. package/src/module/xapi/Crypto/encoders/Base.js +7 -7
  110. package/src/module/xapi/Crypto/encoders/Base64.js +3 -3
  111. package/src/module/xapi/Crypto/encoders/Hex.js +2 -2
  112. package/src/module/xapi/Crypto/encoders/Latin1.js +3 -3
  113. package/src/module/xapi/Crypto/encoders/Utf8.js +3 -3
  114. package/src/module/xapi/Statement/index.js +3 -3
  115. package/src/module/xapi/launch.js +10 -10
  116. package/src/module/xapi/utils.js +17 -17
  117. package/src/module/xapi/wrapper.js +219 -214
  118. package/src/module/xapi/xapiStatement.js +29 -29
  119. package/src/plugins/analytics.js +34 -0
  120. package/src/plugins/bus.js +7 -2
  121. package/src/plugins/gsap.js +5 -7
  122. package/src/plugins/helper.js +97 -34
  123. package/src/plugins/i18n.js +13 -18
  124. package/src/plugins/idb.js +45 -30
  125. package/src/plugins/save.js +1 -1
  126. package/src/plugins/scorm.js +15 -15
  127. package/src/plugins/xapi.js +2 -2
  128. package/src/public/index.html +22 -10
  129. package/src/router/index.js +29 -13
  130. package/src/router/routes.js +29 -54
  131. package/src/shared/generalfuncs.js +186 -30
  132. package/src/shared/validators.js +809 -40
  133. package/vitest.config.js +19 -0
  134. package/.eslintignore +0 -29
  135. package/.eslintrc.js +0 -86
  136. package/.prettierrc.js +0 -5
  137. package/babel.config.js +0 -3
  138. package/src/components/AppBaseDragChoice.vue +0 -91
  139. package/src/components/AppBaseDropZone.vue +0 -112
  140. package/src/components/AppCompBif.vue +0 -120
  141. package/src/components/AppCompDragAndDrop.vue +0 -339
  142. package/src/components/AppCompInputAssociation.vue +0 -332
  143. package/src/components/AppCompInputCheckBox.vue +0 -227
  144. package/src/components/AppCompInputDropdown.vue +0 -184
  145. package/src/components/AppCompInputRadio.vue +0 -169
  146. package/src/components/AppCompInputTextBox.vue +0 -91
  147. package/src/components/AppCompInputTextTable.vue +0 -155
  148. package/src/components/AppCompInputTextToFillDropdown.vue +0 -255
  149. package/src/components/AppCompInputTextToFillText.vue +0 -164
  150. package/src/components/AppCompMediaPlayer.vue +0 -397
  151. package/src/components/AppCompPlayBar.vue +0 -1319
  152. package/src/components/AppCompPopUp.vue +0 -522
  153. package/src/components/AppCompPopover.vue +0 -27
  154. package/src/components/AppCompQuiz.vue +0 -2989
  155. package/src/components/AppCompSVG.vue +0 -309
  156. package/src/mixins/$pageMixins.js +0 -459
  157. package/src/mixins/$quizMixins.js +0 -456
  158. package/src/mixins/timerMixin.js +0 -156
  159. package/src/module/store.js +0 -895
  160. package/src/plugins/timeManager.js +0 -77
  161. package/src/routes_bckp.js +0 -313
  162. package/src/routes_static.js +0 -344
  163. package/vue.config.js +0 -83
package/.editorconfig CHANGED
@@ -1,33 +1,8 @@
1
- # http://editorconfig.org
2
- root = true
3
-
4
- [*]
5
- indent_style = space
6
- indent_size = 2
7
- end_of_line = lf
1
+ [*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue,css,scss,sass,less,styl}]
8
2
  charset = utf-8
9
- trim_trailing_whitespace = true
3
+ indent_size = 2
4
+ indent_style = space
10
5
  insert_final_newline = true
11
-
12
-
13
- # The JSON files contain newlines inconsistently
14
- [*.json]
15
- insert_final_newline = ignore
16
-
17
- # Minified JavaScript files shouldn't be changed
18
- [**.min.js]
19
- indent_style = ignore
20
- insert_final_newline = ignore
21
-
22
- # Makefiles always use tabs for indentation
23
- [Makefile]
24
- indent_style = tab
25
-
26
- # Batch files use tabs for indentation
27
- [*.bat]
28
- indent_style = tab
29
-
30
- [*.md]
31
- trim_trailing_whitespace = false
32
- insert_final_newline = false
33
-
6
+ trim_trailing_whitespace = true
7
+ end_of_line = lf
8
+ max_line_length = 80
package/.prettierrc ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://www.schemastore.org/prettierrc.json",
3
+ "singleQuote": true,
4
+ "semi": false,
5
+ "tabWidth": 2,
6
+ "trailingComma": "none",
7
+ "arrowParens": "always",
8
+ "htmlWhitespaceSensitivity": "ignore",
9
+ "endOfLine": "auto",
10
+ "printWidth": 80
11
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "recommendations": [
3
+ "Vue.volar",
4
+ "dbaeumer.vscode-eslint",
5
+ "EditorConfig.EditorConfig",
6
+ "esbenp.prettier-vscode"
7
+ ]
8
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "explorer.fileNesting.enabled": true,
3
+ "explorer.fileNesting.patterns": {
4
+ "tsconfig.json": "tsconfig.*.json, env.d.ts",
5
+ "vite.config.*": "jsconfig*, vitest.config.*, cypress.config.*, playwright.config.*",
6
+ "package.json": "package-lock.json, pnpm*, .yarnrc*, yarn*, .eslint*, eslint*, .oxlint*, oxlint*, .prettier*, prettier*, .editorconfig"
7
+ },
8
+ "editor.codeActionsOnSave": {
9
+ "source.fixAll": "explicit"
10
+ },
11
+ "editor.formatOnSave": true,
12
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
13
+ "[vue]": {
14
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
15
+ }
16
+ }
package/CHANGELOG CHANGED
@@ -1,3 +1,156 @@
1
+ 2.1.0-beta.6(20 novembre 2025)
2
+ Correction de l’affichage des listes déroulantes
3
+
4
+ Correction de la validation des object de quiz si le quiz n’est pas null il ne valide pas le contenu du pop-up neutre
5
+
6
+ Correction des titres dans les pop-ups de fin d’activité et de leçon (le titre est la maintenant)
7
+
8
+ 2.1.0-beta.5(22 octobre 2025)
9
+ Correction du problème de complétion avec les fenêtres latérales
10
+
11
+ Multiples corrections de l’accessibilité
12
+
13
+ Optimisation des dépendances (package.json)
14
+
15
+ Amélioration de quizrecall (récupération du data)
16
+
17
+ 2.1.0-beta.4(26 septembre 2025)
18
+ ajout du plugin ScrollTrigger à l’objet $gsap
19
+
20
+
21
+ 2.1.0-beta.3(24 septembre 2025)
22
+ RUPTURE DE COMPATIBILITÉ : Ajout de Google Analytics (analytics_id dans app.vue) nouvelle dépendance : npm install vue-gtag@2.0.1
23
+
24
+ Tracking Analytics des événements play/end pour les lecteurs audio/vidéo
25
+
26
+ RUPTURE DE COMPATIBILITÉ : Nouvelle structure de données utilisées pour les lecteurs audio/vidéo
27
+
28
+ Correction du bogue de scroll au changement de page
29
+
30
+ Optimisation de la mise à jour de la valeur de currentPage dans le Store
31
+
32
+ Nouvelle fonctionnalité : Il est maintenant possible de redéfinir certains libellés spécifiques du FCAD (FIAG)
33
+
34
+ Tracking learninglocker pour les lecteurs audio/vidéo
35
+
36
+ Refactoring de la fonctionnalité "idle detector" et du calcul du temps passé sur une activité
37
+
38
+ Ajout d’informations supplémentaires affichées quand on active le debug mode
39
+
40
+
41
+ 2.1.0-beta.1(27 août 2025)
42
+ RUPTURE DE COMPATIBILITÉ : (structure de données des rétroactions). Seules les propriétés "title" et "hypertext" sont acceptées (anciennement "title", "hypertext_1" et "hypertext_2")
43
+
44
+ Ajout de Style pour le responsive de la carte audio
45
+
46
+ Retrait du border sur les balises fieldset
47
+
48
+ Correction des styles texte à trous
49
+
50
+ Liste des changement de classe :
51
+
52
+ container-quiz-radio => container_quiz_choix_unique
53
+ container-quiz-checkbox => container_quiz_choix_mul
54
+ container-quiz-texte-tableau => container_quiz_texte_tableau
55
+ container-quiz-text-area => container_quiz_reponse_ouverte
56
+ container-quiz-dropdown => container_quiz_dropdown
57
+ container-quiz-texte-troue-select => container_quiz_texte_troue_select
58
+ container-quiz-texte-troue => container_quiz_texte_troue
59
+
60
+ Pour les rétros la classe dynamic est sur le container
61
+ retro_inline_positive => retro_inline_retro_positive
62
+ retro_inline_negative => retro_inline_retro_negative
63
+ retro_inline_neutre => retro_inline_retro_neutre
64
+ reponseSelectionner => answerSlct
65
+ wrong_answer => badAnswer
66
+ correct_answer => goodAnswer
67
+
68
+ 2.0.3(27 août 2025)
69
+ HOTFIX Renommer app-comp-quiz en app-comp-quiz-next pour assurer la compatibilité avec les projets existants
70
+
71
+ 2.0.2(26 août 2025)
72
+ Exercices : Renommer app-comp-quiz-nx en app-comp-quiz pour assurer la compatibilité avec les projets existants
73
+
74
+ Exercices : Réécriture complète de la logique derrière les exercices
75
+
76
+ 2.0.2-beta.2(25 août 2025)
77
+ Exercices : Renommer app-comp-quiz-nx en app-comp-quiz pour assurer la compatibilité avec les projets existants
78
+
79
+ 2.0.2-beta.1(19 août 2025)
80
+ Exercices : Réécriture complète de la logique derrière les exercices
81
+
82
+ Rappel de réponse : Mise à jour automatique du contenu quand la réponse change
83
+
84
+ Accessibilité : Balise fieldset qui annonce la marche \ suivre quand on arrive sur un exercice
85
+
86
+ Lecteur audio : meilleur responsive
87
+
88
+ Ajout de composants Skeleton Loader (Vuetify) au moment du chargement du contenu des exercices
89
+
90
+ Nouveau nom de classe dans les exercices texte tableau
91
+
92
+ 2.0.1(12 août 2025)
93
+ carroussel : Changement du titre h3 pour une balise p avec une classe
94
+
95
+ TOC : Alignement vertical du libellé "terminé"
96
+
97
+ 2.0.1-beta.1(12 mai 2025)
98
+ Vitepress : La documentation du FCAD 2 est maintenant dans le dossier "documentation"
99
+
100
+ Correction de bogues avec les exercices à réponse ouverte, boutons radio et checkbox
101
+
102
+ Ajout de classe pour faciliter le css appliqué aux rétroactions
103
+
104
+ 2.0.0(31 mars 2025)
105
+ Menu : ponctuation des titres selon la langue (fr/en)
106
+
107
+ Fenêtre latérale : Le minimum de "branches" est maintenant 1 (était 2)
108
+
109
+ Fenêtre latérale : Bogue quand on la referme avec espace
110
+
111
+ Nouvelle fonctionnalité : Idle detector
112
+
113
+ Fenêtre progression : Bogue avec le path "activité 99", maintenant "conclusion"
114
+
115
+ 2.0.0-beta.9(03 mars 2025)
116
+ Correction de bogues (conflit toc/notes avec popup, ouverture simultanée de toc et notes)
117
+
118
+ 2.0.0-beta.8(25 février 2025)
119
+ Nettoyage des dépendances
120
+
121
+ Nettoyage commentaires et console.log
122
+
123
+ 2.0.0-beta.7(24 février 2025)
124
+ Règle un problème avec l’import dynamique des branches
125
+
126
+ 2.0.0-beta.6(21 février 2025)
127
+ Les projets SCORM fonctionnent maintenant avec FCAD 2
128
+
129
+ Amélioration de l’accessibilité
130
+
131
+ Nouvelle fonct. : Fenêtre latérale "custom"
132
+
133
+ Ménage des libellés
134
+
135
+ Optimisation des requêtes vers le LRS au chargement initial
136
+
137
+ Boutons d’embranchement sous forme de carte : acceptent maintenant le HTML
138
+
139
+ Internationalisation de Vuetify selon la langue de l’app
140
+
141
+ 2.0.0-beta.5(27 janvier 2025)
142
+ FIXES:
143
+ Corrections de divers Bugs Fonctionnalité et Accessiblité
144
+
145
+ 2.0.0-beta.3(24 octobre 2024)
146
+ Framework JS : Migration de Vue 2 à Vue 3
147
+
148
+ Framework CSS : Migration de Bootstrap-vue à Vuetify
149
+
150
+ Build tool : Migration de Webpack à Vite
151
+
152
+ Vuejs Store : Migration de VueX à Pinia
153
+
1
154
  1.3.0(17 avril 2023)
2
155
 
3
156
  [sprint 14.2]
package/README.md CHANGED
@@ -1,51 +1,48 @@
1
- # fcad-core-ninja
2
-
3
- ## Project setup
4
-
5
1
  ```
6
- npm install
2
+ .. ..
3
+ oec : dF dF
4
+ @88888 '88bu. u. .u . '88bu. .u . u. u. u.
5
+ 8"*88% . u '*88888bu . ...ue888b .d88B :@8c .u '*88888bu .d88B :@8c u uL ...ue888b x@88k u@88c.
6
+ 8b. .udR88N us888u. ^"*8888N .udR88N 888R Y888r ="8888f8888r ud8888. ^"*8888N ="8888f8888r us888u. .ue888Nc.. 888R Y888r ^"8888""8888"
7
+ u888888> <888'888k .@88 "8888" beWE "888L <888'888k 888R I888> 4888>'88" :888'8888. beWE "888L 4888>'88" .@88 "8888" d88E`"888E` 888R I888> 8888 888R
8
+ 8888R 9888 'Y" 9888 9888 888E 888E 9888 'Y" 888R I888> 4888> ' d888 '88%" 888E 888E 4888> ' 9888 9888 888E 888E 888R I888> 8888 888R
9
+ 8888P 9888 9888 9888 888E 888E 9888 888R I888> 4888> 8888.+" 888E 888E 4888> 9888 9888 888E 888E 888R I888> 8888 888R
10
+ *888> 9888 9888 9888 888E 888F 88888888 9888 u8888cJ888 .d888L .+ 8888L 88888888 888E 888F .d888L .+ 9888 9888 888E 888E u8888cJ888 8888 888R
11
+ 4888 ?8888u../ 9888 9888 .888N..888 88888888 ?8888u../ "*888*P" ^"8888*" '8888c. .+ 88888888 .888N..888 ^"8888*" 9888 9888 888& .888E "*888*P" "*88*" 8888"
12
+ '888 "8888P' "888*""888" `"888*"" "8888P' 'Y" "Y" "88888% `"888*"" "Y" "888*""888" *888" 888& 'Y" "" 'Y"
13
+ 88R "P' ^Y" ^Y' "" "P' "YP' "" ^Y" ^Y' `" "888E
14
+ 88> .dWi `88E
15
+ 48 4888~ J8%
16
+ '8 ^"===*"`
7
17
  ```
8
18
 
9
- ## How to use
10
-
11
- ### Install in project
19
+ ## Development
12
20
 
13
- In your project install this library by doing :
21
+ ### Install dependencies
14
22
 
15
23
  ```
16
- npm install fcad-core-dragon
24
+ npm install
17
25
  ```
18
26
 
19
- ### Use in project
20
-
21
- Now in your main.js do
27
+ ### Install yalc and nodemon globally
22
28
 
23
29
  ```
24
- import FcadCoreDragon from 'fcad-core-dragon'
25
-
26
- Vue.use(FcadCoreDragon, {$options})
30
+ npm install yalc nodemon -g
27
31
  ```
28
32
 
29
- #### $options Parameters
30
-
31
- $options to pass to library are:
32
-
33
- + **i18n**: pass project **internationalization / Localisation** reference to library
34
- + **router**: pass project **router** reference library
35
- + **appSettings**: pass project **app setting** from './app.settings.js'
36
- + **menuSettings**: pass project **menu settings** './src/menu.settings.js'
33
+ ### Publish to the yalc store on file change (monitors js,vue,html,json filetypes)
37
34
 
35
+ ```
36
+ npm run watch
37
+ ```
38
38
 
39
- In the components of your project you can now use the components of the library
39
+ ### Open a terminal in your target project and link fcad-core-dragon from the yalc store
40
40
 
41
41
  ```
42
- //Exemple in App.js of your project use component AppBase of Library
43
- <app-base/>
42
+ npm link fcad-core-dragon
44
43
  ```
45
44
 
46
- For more information check [documentation](https://fcaddocumentation.netlify.app/)
47
-
48
- ### Compiles and minifies for production
45
+ ### Prepare a build for production (lands in dist folder)
49
46
 
50
47
  ```
51
48
  npm run build
@@ -57,16 +54,4 @@ npm run build
57
54
  npm run lint
58
55
  ```
59
56
 
60
- ## Configurations
61
-
62
- Get the configurations files from [FCAD ressources](https://redmine.cegepadistance.ca/projects/fcad/wiki/Wiki) and
63
- add them in the root of your projects.
64
- .Zip containts:
65
-
66
- 1. Vue.config.js
67
- 2. .editorconfig
68
- 3. .gitignore
69
- 4. .eslintrc
70
- 5. .eslintignore
71
- 6. .prettierrc.js
72
-
57
+ For more information check the [documentation](https://fcaddocumentation.netlify.app/)
@@ -0,0 +1,114 @@
1
+ import { defineConfig } from 'vitepress'
2
+
3
+ // https://vitepress.dev/reference/site-config
4
+ export default defineConfig({
5
+ title: 'FCAD 2',
6
+ description: 'La documentation technique du FCAD 2',
7
+ ignoreDeadLinks: true,
8
+ themeConfig: {
9
+ /* il8n */
10
+ lang: 'fr-CA',
11
+ outline: {
12
+ label: 'Contenu de la page'
13
+ },
14
+ docFooter: {
15
+ prev: 'Page précédente',
16
+ next: 'Page suivante'
17
+ },
18
+ darkModeSwitchTitle : 'Activer le thème sombre',
19
+ lightModeSwitchTitle : 'Activer le thème clair',
20
+ lastUpdated: {
21
+ text: 'Dernière modification ',
22
+ formatOptions: {
23
+ dateStyle: 'short',
24
+ timeStyle: 'short'
25
+ }
26
+ },
27
+ search: {
28
+ provider: 'local',
29
+ options:{
30
+ locales: {
31
+ root: {
32
+ translations: {
33
+ button: {
34
+ buttonText: 'Recherche',
35
+ buttonAriaLabel: 'Recherche'
36
+ },
37
+ modal: {
38
+ displayDetails: 'Afficher la vue détaillée',
39
+ resetButtonTitle: 'Réinitialiser',
40
+ backButtonTitle: 'Retour',
41
+ noResultsText: 'Aucun résultat trouvé pour',
42
+ footer: {
43
+ selectText: 'accéder à la page',
44
+ navigateText: 'parcourir les résultats',
45
+ closeText: 'quitter la recherche',
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ },
53
+ /* END - il8n */
54
+
55
+ nav: [
56
+ { text: 'Accueil', link: '/' },
57
+ { text: 'Démarrage', link: '/demarrage' },
58
+ { text: 'Composants', link: '/composants' },
59
+ { text: 'Déploiement', link: '/deploiement' },
60
+ // { text: 'Examples', link: '/markdown-examples' }
61
+ ],
62
+ sidebar: [
63
+ { text: 'Composants critiques',
64
+ collapsed: true,
65
+ items: [
66
+ { text: 'app-base', link: '/composants_critiques/app-base' },
67
+ { text: 'app-base-module', link: '/composants_critiques/app-base-module' },
68
+ { text: 'app-base-page', link: '/composants_critiques/app-base-page' },
69
+ { text: 'main', link: '/composants_critiques/main' },
70
+ ]
71
+ },
72
+ {
73
+ text: 'Tous les composants',
74
+ collapsed: true,
75
+ items: [
76
+ { text: 'app-base-button', link: '/composants/app-base-button' },
77
+ { text: 'app-base-error-display', link: '/composants/app-base-error-display' },
78
+ { text: 'app-base-popover', link: '/composants/app-base-popover' },
79
+ { text: 'app-comp-audio', link: '/composants/app-comp-audio' },
80
+ { text: 'app-comp-branch-buttons', link: '/composants/app-comp-branch-buttons' },
81
+ { text: 'app-comp-button-progress', link: '/composants/app-comp-button-progress' },
82
+ { text: 'app-comp-carousel', link: '/composants/app-comp-carousel' },
83
+ { text: 'app-comp-container', link: '/composants/app-comp-container' },
84
+ { text: 'app-comp-input-checkbox-next', link: '/composants/app-comp-input-checkbox-next' },
85
+ { text: 'app-comp-input-dropdown-next', link: '/composants/app-comp-input-dropdown-next' },
86
+ { text: 'app-comp-input-radio-next', link: '/composants/app-comp-input-radio-next' },
87
+ { text: 'app-comp-input-text-next', link: '/composants/app-comp-input-text-next' },
88
+ { text: 'app-comp-input-text-table-next', link: '/composants/app-comp-input-text-table-next' },
89
+ { text: 'app-comp-input-text-to-fill-dropdown-next', link: '/composants/app-comp-input-text-to-fill-dropdown-next' },
90
+ { text: 'app-comp-input-text-to-fill-next', link: '/composants/app-comp-input-text-to-fill-next' },
91
+ { text: 'app-comp-jauge', link: '/composants/app-comp-jauge' },
92
+ { text: 'app-comp-menu', link: '/composants/app-comp-menu' },
93
+ { text: 'app-comp-menu-item', link: '/composants/app-comp-menu-item' },
94
+ { text: 'app-comp-navigation', link: '/composants/app-comp-navigation' },
95
+ { text: 'app-comp-note-call', link: '/composants/app-comp-note-call' },
96
+ { text: 'app-comp-note-credit', link: '/composants/app-comp-note-credit' },
97
+ { text: 'app-comp-play-bar-next', link: '/composants/app-comp-play-bar-next' },
98
+ { text: 'app-comp-play-bar-progress', link: '/composants/app-comp-play-bar-progress' },
99
+ { text: 'app-comp-pop-up-next', link: '/composants/app-comp-pop-up-next' },
100
+ { text: 'app-comp-quiz-next', link: '/composants/app-comp-quiz-next' },
101
+ { text: 'app-comp-quiz-recall', link: '/composants/app-comp-quiz-recall' },
102
+ // { text: 'app-comp-settings-menu', link: '/composants/app-comp-settings-menu' },
103
+ { text: 'app-comp-svg-next', link: '/composants/app-comp-svg-next' },
104
+ { text: 'app-comp-table-of-content', link: '/composants/app-comp-table-of-content' },
105
+ { text: 'app-comp-video-player', link: '/composants/app-comp-video-player' },
106
+ ]
107
+ }
108
+ ],
109
+
110
+ socialLinks: [
111
+ { icon: 'gitlab', link: 'https://git.crosemont.qc.ca/fcad/core/fcad-core-2' }
112
+ ]
113
+ }
114
+ })
@@ -0,0 +1,49 @@
1
+ ---
2
+ outline: deep
3
+ ---
4
+
5
+ # Runtime API Examples
6
+
7
+ This page demonstrates usage of some of the runtime APIs provided by VitePress.
8
+
9
+ The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:
10
+
11
+ ```md
12
+ <script setup>
13
+ import { useData } from 'vitepress'
14
+
15
+ const { theme, page, frontmatter } = useData()
16
+ </script>
17
+
18
+ ## Results
19
+
20
+ ### Theme Data
21
+ <pre>{{ theme }}</pre>
22
+
23
+ ### Page Data
24
+ <pre>{{ page }}</pre>
25
+
26
+ ### Page Frontmatter
27
+ <pre>{{ frontmatter }}</pre>
28
+ ```
29
+
30
+ <script setup>
31
+ import { useData } from 'vitepress'
32
+
33
+ const { site, theme, page, frontmatter } = useData()
34
+ </script>
35
+
36
+ ## Results
37
+
38
+ ### Theme Data
39
+ <pre>{{ theme }}</pre>
40
+
41
+ ### Page Data
42
+ <pre>{{ page }}</pre>
43
+
44
+ ### Page Frontmatter
45
+ <pre>{{ frontmatter }}</pre>
46
+
47
+ ## More
48
+
49
+ Check out the documentation for the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata).
@@ -0,0 +1,58 @@
1
+ # Bouton de base
2
+
3
+ Pour tous les boutons dans votre application, utiliser le bouton du FCAD.
4
+
5
+
6
+
7
+ ## Aperçu
8
+
9
+ Le FCAD génère un bouton à l'appel de la balise `<app-base-button/>`. Vous pouvez lui appliquer le style désiré en lui ajoutant une classe et/ou un *id*. Permet d'exécuter toute **Fonction** qui lui sera associée.
10
+
11
+ ## Référence du composant
12
+
13
+ **AppBaseButton**
14
+ `<app-base-button/>`
15
+
16
+ ## Comportement
17
+
18
+ De base le composant s'attend à exécuter une fonction. Il déclenche toutes les actions associées et émet l'évènement `click` (écoutable dans toute l'application). L'élément qui a été cliqué est aussi retourné en référence. Au clique, le bouton ajoute ou retire la classe `isClick` (qui peut servir pour créer un effet de toggle).
19
+
20
+ ::: danger 👁️ Attention!
21
+
22
+ Le bouton ne réagit pas au hover. Le bouton retourne l'information qu'au clique. Si vous développez un composant réactif au hover. Prenez cette information en compte
23
+
24
+ :::
25
+
26
+ ::: tip 💡 Note
27
+ Lorsque vous utilisez le bouton dans le développement d'un composant, pensez à rajouter son libellé au dictionnaire.
28
+ :::
29
+
30
+ ## Paramètre
31
+
32
+ Voici les éléments paramétrables du bouton.
33
+
34
+ | Propriété | Type | Description | valeur par défaut | modifiable |
35
+ |:----------|:-----------------|:-----------------------------------------------------------------------------------------------------------------------------------|:-------|:-------------|
36
+ | name | Props type String | Nom du bouton pour les lecteurs d'écran ce label est fourni par le dictionnaire de l'application et devrait être le même que le label du bouton | Si vide : Bouton | oui |
37
+ | type | String | Type d'élément html | button | non |
38
+ | class | String | Toutes les classes par défaut du bouton. Si vous désirez en ajouter, ajoutez les lors de l'appelle du composant | btn | non |
39
+ | :class | Object | Classe réactive selon les actions demandées | isClick | non |
40
+ | :disabled | Props type boolean | Donne état **disabled** au bouton. Utiliser pour désactiver le bouton. Attribut important pour les lecteurs d'écran. | false | non |
41
+ | @click | function | Fonction qui émet le clique et retourne l'élément cliqué | click | non |
42
+
43
+ ### Évènements
44
+
45
+ `click`: Événement native émit lorsqu’un bouton actif est cliqué. Retourne l'élément cliqué en référence.
46
+
47
+ `focus`: Événement native émit lorsqu’un bouton actif est en focus. Retourne l'élément en référence.
48
+
49
+ ## Style
50
+
51
+ `.btn`[class]
52
+
53
+ Par défaut, le composant n'a que la classe `btn`, qui sert à tous les boutons de base de l'application. L'ajout de classe et *id* pour modifier son style devront être ajouter à l'appelle du composant.
54
+
55
+ ## Accessibilité
56
+
57
+ Le bouton de base vient avec un niveau d'accessibilité de base. Lors de son usage utilisez ces [paramètres](#parametre) pour respecter le critère du WCAG.
58
+
@@ -0,0 +1,59 @@
1
+ # Error Display
2
+
3
+ Composant pour l'affichage d'erreurs en environnement de développement.
4
+
5
+ ## Aperçu
6
+
7
+ Ce composant n'est pas affiché pour les étudiants. Il sert plutôt à avertir l'intégrateur/développeurs qu'il a une erreur avec l'utilisant de l'application.
8
+
9
+ Il y a deux niveaux de couleur pour l`affichage d'erreurs:
10
+
11
+ - Rouge (niveau majeur): Indique une erreur qui brise le fonctionnement de l'application (l'application n'est plus navigable ou plus rien ne peut être affiché)
12
+ - Jaune (niveau mineur): Indique la présence d`erreurs qui ne brisent pas l'application (il y a une erreur, mais on peut toujours naviguer dans l'application et certains éléments sont affichables).
13
+
14
+ ## Référence du composant
15
+
16
+ **AppBaseErrorDisplay**
17
+ `<app-base-error-display/>`
18
+
19
+ ## Comportement
20
+
21
+ Le composant affiche un message avec la liste d`erreurs passées en paramètre lors de son appel.
22
+
23
+
24
+ ::: danger Important
25
+
26
+ Vous ne devez pas faire la gestion de vos erreurs à l'intérieur du composant. Gérez plutôt vos erreurs dans votre composant et faites-les afficher en utilisant `<app-base-error-display/>`.
27
+
28
+ Ajoutez les messages d'erreurs qui conviennent à votre situation. Copiez et collez la structure et modifiez le message pour convenir à votre situation.
29
+
30
+ :::
31
+
32
+ ::: tip 💡 Note
33
+
34
+ Si vous jugez qu'utiliser le composant est trop pour l'erreur à afficher, vous pouvez toujours afficher l'erreur dans votre composant. Utilisez les styles présents dans la feuille de style pour garder l'uniformité du look.
35
+
36
+ :::
37
+
38
+ ## Paramètre
39
+
40
+ Voici les éléments paramétrable d'Error Display.
41
+
42
+ ::: details <b>Props</b>
43
+
44
+ | Propriété | Type | Description | valeur par défaut | valeur accepté |
45
+ |:----------|:-----------------|:-----------------------------------------------------------------------------------------------------------------------------------|:-------|:-------------|
46
+ | errorMessage | String | Le type de message d'erreur à afficher | ' ' | 404 / errorPage / errorMenu / errorModule |
47
+ | errorsList | Array | Liste des valeurs des erreurs que vous voulez afficher | tableau vide | un array de *string* |
48
+ | docLink | String | lien url de référence pour plus d`information | [documentation](https://fcaddocumentation.netlify.com/guide/proceduries.html) | *string* |
49
+
50
+ :::
51
+
52
+ ## Style
53
+
54
+ Les classes et la structure sont déjà faites pour vous, si vous voulez rajouter un type d'erreur dupliquer la section avec sa structure. Vous remarquerez dans la feuille de style ce sont les seules couleurs en dur. Il en est ainsi pour ne pas créer d'erreur avec le style des cours.
55
+
56
+ ## Accessibilité
57
+
58
+ Ce composant sert seulement à éviter les codes 18 pour l'intégrateur, il n'est donc pas tenu d'être accessible.
59
+