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.
- package/.editorconfig +6 -31
- package/.prettierrc +11 -0
- package/.vscode/extensions.json +8 -0
- package/.vscode/settings.json +16 -0
- package/CHANGELOG +153 -0
- package/README.md +28 -43
- package/documentation/.vitepress/config.js +114 -0
- package/documentation/api-examples.md +49 -0
- package/documentation/composants/app-base-button.md +58 -0
- package/documentation/composants/app-base-error-display.md +59 -0
- package/documentation/composants/app-base-popover.md +68 -0
- package/documentation/composants/app-comp-audio.md +75 -0
- package/documentation/composants/app-comp-branch-buttons.md +111 -0
- package/documentation/composants/app-comp-button-progress.md +53 -0
- package/documentation/composants/app-comp-carousel.md +53 -0
- package/documentation/composants/app-comp-container.md +53 -0
- package/documentation/composants/app-comp-input-checkbox-next.md +42 -0
- package/documentation/composants/app-comp-input-dropdown-next.md +34 -0
- package/documentation/composants/app-comp-input-radio-next.md +39 -0
- package/documentation/composants/app-comp-input-text-next.md +35 -0
- package/documentation/composants/app-comp-input-text-table-next.md +34 -0
- package/documentation/composants/app-comp-input-text-to-fill-dropdown-next.md +53 -0
- package/documentation/composants/app-comp-input-text-to-fill-next.md +31 -0
- package/documentation/composants/app-comp-jauge.md +31 -0
- package/documentation/composants/app-comp-menu-item.md +55 -0
- package/documentation/composants/app-comp-menu.md +29 -0
- package/documentation/composants/app-comp-navigation.md +41 -0
- package/documentation/composants/app-comp-note-call.md +53 -0
- package/documentation/composants/app-comp-note-credit.md +53 -0
- package/documentation/composants/app-comp-play-bar-next.md +53 -0
- package/documentation/composants/app-comp-pop-up-next.md +93 -0
- package/documentation/composants/app-comp-quiz-next.md +235 -0
- package/documentation/composants/app-comp-quiz-recall.md +53 -0
- package/documentation/composants/app-comp-svg-next.md +53 -0
- package/documentation/composants/app-comp-table-of-content.md +50 -0
- package/documentation/composants/app-comp-video-player.md +82 -0
- package/documentation/composants.md +46 -0
- package/documentation/composants_critiques/ModelPageComposant.md +53 -0
- package/documentation/composants_critiques/app-base-module.md +43 -0
- package/documentation/composants_critiques/app-base-page.md +48 -0
- package/documentation/composants_critiques/app-base.md +311 -0
- package/documentation/composants_critiques/main.md +15 -0
- package/documentation/demarrage.md +50 -0
- package/documentation/deploiement.md +58 -0
- package/documentation/index.md +33 -0
- package/documentation/markdown-examples.md +85 -0
- package/documentation/public/npm_version.png +0 -0
- package/documentation/public/vite.svg +15 -0
- package/documentation/public/vuejs.svg +2 -0
- package/documentation/public/vuetify.svg +6 -0
- package/eslint.config.js +60 -0
- package/package.json +43 -47
- package/src/$locales/en.json +86 -108
- package/src/$locales/fr.json +66 -127
- package/src/assets/data/onboardingMessages.json +1 -1
- package/src/components/AppBase.vue +960 -405
- package/src/components/AppBaseButton.test.js +21 -0
- package/src/components/AppBaseButton.vue +42 -10
- package/src/components/AppBaseErrorDisplay.vue +207 -189
- package/src/components/AppBaseFlipCard.vue +1 -0
- package/src/components/AppBaseModule.vue +769 -977
- package/src/components/AppBasePage.vue +635 -81
- package/src/components/AppBasePopover.vue +41 -0
- package/src/components/AppBaseSkeleton.vue +66 -0
- package/src/components/AppCompAudio.vue +256 -0
- package/src/components/AppCompBranchButtons.vue +79 -153
- package/src/components/AppCompButtonProgress.vue +21 -36
- package/src/components/AppCompCarousel.vue +231 -87
- package/src/components/{AppCompTranscript.vue → AppCompContainer.vue} +12 -2
- package/src/components/AppCompInputCheckBoxNx.vue +323 -0
- package/src/components/AppCompInputDropdownNx.vue +299 -0
- package/src/components/AppCompInputRadioNx.vue +284 -0
- package/src/components/AppCompInputTextNx.vue +153 -0
- package/src/components/AppCompInputTextTableNx.vue +202 -0
- package/src/components/AppCompInputTextToFillDropdownNx.vue +340 -0
- package/src/components/AppCompInputTextToFillNx.vue +313 -0
- package/src/components/AppCompJauge.vue +36 -10
- package/src/components/AppCompMenu.vue +246 -32
- package/src/components/AppCompMenuItem.vue +87 -21
- package/src/components/AppCompNavigation.vue +470 -447
- package/src/components/AppCompNoteCall.vue +93 -58
- package/src/components/AppCompNoteCredit.vue +423 -96
- package/src/components/AppCompPlayBarNext.vue +2288 -0
- package/src/components/AppCompPopUpNext.vue +504 -0
- package/src/components/AppCompQuizNext.vue +510 -0
- package/src/components/AppCompQuizRecall.vue +199 -99
- package/src/components/AppCompSVGNext.vue +346 -0
- package/src/components/AppCompSettingsMenu.vue +17 -16
- package/src/components/AppCompTableOfContent.vue +262 -99
- package/src/components/AppCompVideoPlayer.vue +183 -142
- package/src/components/BaseModule.vue +8 -20
- package/src/components/tests__/AppBaseButton.spec.js +53 -0
- package/src/components/tests__/useTimer.spec.js +91 -0
- package/src/composables/useIdleDetector.js +56 -0
- package/src/composables/useQuiz.js +89 -0
- package/src/composables/useTimer.js +172 -0
- package/src/directives/nvdaFix.js +53 -0
- package/src/externalComps/ModuleView.vue +22 -0
- package/src/externalComps/SummaryView.vue +91 -0
- package/src/main.js +397 -148
- package/src/module/stores/appStore.js +947 -0
- package/src/module/xapi/ADL.js +241 -60
- package/src/module/xapi/Crypto/Hasher.js +8 -8
- package/src/module/xapi/Crypto/WordArray.js +6 -6
- package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +4 -4
- package/src/module/xapi/Crypto/algorithms/C_algo.js +14 -18
- package/src/module/xapi/Crypto/algorithms/HMAC.js +1 -1
- package/src/module/xapi/Crypto/algorithms/SHA1.js +1 -1
- package/src/module/xapi/Crypto/encoders/Base.js +7 -7
- package/src/module/xapi/Crypto/encoders/Base64.js +3 -3
- package/src/module/xapi/Crypto/encoders/Hex.js +2 -2
- package/src/module/xapi/Crypto/encoders/Latin1.js +3 -3
- package/src/module/xapi/Crypto/encoders/Utf8.js +3 -3
- package/src/module/xapi/Statement/index.js +3 -3
- package/src/module/xapi/launch.js +10 -10
- package/src/module/xapi/utils.js +17 -17
- package/src/module/xapi/wrapper.js +219 -214
- package/src/module/xapi/xapiStatement.js +29 -29
- package/src/plugins/analytics.js +34 -0
- package/src/plugins/bus.js +7 -2
- package/src/plugins/gsap.js +5 -7
- package/src/plugins/helper.js +97 -34
- package/src/plugins/i18n.js +13 -18
- package/src/plugins/idb.js +45 -30
- package/src/plugins/save.js +1 -1
- package/src/plugins/scorm.js +15 -15
- package/src/plugins/xapi.js +2 -2
- package/src/public/index.html +22 -10
- package/src/router/index.js +29 -13
- package/src/router/routes.js +29 -54
- package/src/shared/generalfuncs.js +186 -30
- package/src/shared/validators.js +809 -40
- package/vitest.config.js +19 -0
- package/.eslintignore +0 -29
- package/.eslintrc.js +0 -86
- package/.prettierrc.js +0 -5
- package/babel.config.js +0 -3
- package/src/components/AppBaseDragChoice.vue +0 -91
- package/src/components/AppBaseDropZone.vue +0 -112
- package/src/components/AppCompBif.vue +0 -120
- package/src/components/AppCompDragAndDrop.vue +0 -339
- package/src/components/AppCompInputAssociation.vue +0 -332
- package/src/components/AppCompInputCheckBox.vue +0 -227
- package/src/components/AppCompInputDropdown.vue +0 -184
- package/src/components/AppCompInputRadio.vue +0 -169
- package/src/components/AppCompInputTextBox.vue +0 -91
- package/src/components/AppCompInputTextTable.vue +0 -155
- package/src/components/AppCompInputTextToFillDropdown.vue +0 -255
- package/src/components/AppCompInputTextToFillText.vue +0 -164
- package/src/components/AppCompMediaPlayer.vue +0 -397
- package/src/components/AppCompPlayBar.vue +0 -1319
- package/src/components/AppCompPopUp.vue +0 -522
- package/src/components/AppCompPopover.vue +0 -27
- package/src/components/AppCompQuiz.vue +0 -2989
- package/src/components/AppCompSVG.vue +0 -309
- package/src/mixins/$pageMixins.js +0 -459
- package/src/mixins/$quizMixins.js +0 -456
- package/src/mixins/timerMixin.js +0 -156
- package/src/module/store.js +0 -895
- package/src/plugins/timeManager.js +0 -77
- package/src/routes_bckp.js +0 -313
- package/src/routes_static.js +0 -344
- package/vue.config.js +0 -83
package/.editorconfig
CHANGED
|
@@ -1,33 +1,8 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
3
|
+
indent_size = 2
|
|
4
|
+
indent_style = space
|
|
10
5
|
insert_final_newline = true
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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,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
|
-
|
|
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
|
-
##
|
|
10
|
-
|
|
11
|
-
### Install in project
|
|
19
|
+
## Development
|
|
12
20
|
|
|
13
|
-
|
|
21
|
+
### Install dependencies
|
|
14
22
|
|
|
15
23
|
```
|
|
16
|
-
npm install
|
|
24
|
+
npm install
|
|
17
25
|
```
|
|
18
26
|
|
|
19
|
-
###
|
|
20
|
-
|
|
21
|
-
Now in your main.js do
|
|
27
|
+
### Install yalc and nodemon globally
|
|
22
28
|
|
|
23
29
|
```
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
Vue.use(FcadCoreDragon, {$options})
|
|
30
|
+
npm install yalc nodemon -g
|
|
27
31
|
```
|
|
28
32
|
|
|
29
|
-
|
|
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
|
-
|
|
39
|
+
### Open a terminal in your target project and link fcad-core-dragon from the yalc store
|
|
40
40
|
|
|
41
41
|
```
|
|
42
|
-
|
|
43
|
-
<app-base/>
|
|
42
|
+
npm link fcad-core-dragon
|
|
44
43
|
```
|
|
45
44
|
|
|
46
|
-
|
|
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
|
-
|
|
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
|
+
|