fcad-core-dragon 2.0.0-beta.0 → 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 -49
- package/src/$locales/en.json +94 -92
- package/src/$locales/fr.json +77 -113
- package/src/assets/data/onboardingMessages.json +1 -1
- package/src/components/AppBase.vue +971 -437
- package/src/components/AppBaseButton.test.js +21 -0
- package/src/components/AppBaseButton.vue +42 -10
- package/src/components/AppBaseErrorDisplay.vue +209 -162
- package/src/components/AppBaseFlipCard.vue +1 -0
- package/src/components/AppBaseModule.vue +1021 -976
- package/src/components/AppBasePage.vue +656 -128
- 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 +108 -181
- package/src/components/AppCompButtonProgress.vue +44 -70
- package/src/components/AppCompCarousel.vue +284 -233
- package/src/components/AppCompContainer.vue +29 -0
- 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 -11
- package/src/components/AppCompMenu.vue +312 -92
- package/src/components/AppCompMenuItem.vue +129 -105
- package/src/components/AppCompNavigation.vue +972 -0
- package/src/components/AppCompNoteCall.vue +161 -0
- package/src/components/AppCompNoteCredit.vue +491 -0
- 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 +350 -0
- package/src/components/AppCompSVGNext.vue +346 -0
- package/src/components/AppCompSettingsMenu.vue +18 -16
- package/src/components/AppCompTableOfContent.vue +340 -122
- package/src/components/AppCompVideoPlayer.vue +377 -0
- package/src/components/BaseModule.vue +24 -117
- 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 +400 -142
- 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 +4 -3
- 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 +223 -218
- 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 +9 -8
- package/src/plugins/helper.js +141 -43
- package/src/plugins/i18n.js +13 -18
- package/src/plugins/idb.js +46 -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 +23 -11
- package/src/router/index.js +57 -0
- package/src/router/routes.js +312 -0
- package/src/shared/generalfuncs.js +241 -10
- package/src/shared/validators.js +1018 -0
- 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/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 -365
- package/src/components/AppCompNavigationFull.vue +0 -1791
- package/src/components/AppCompPlayBar.vue +0 -1540
- package/src/components/AppCompPopUp.vue +0 -523
- package/src/components/AppCompQuiz.vue +0 -2998
- package/src/components/AppCompToolTip.vue +0 -94
- package/src/mixins/$pageMixins.js +0 -381
- package/src/mixins/$quizMixins.js +0 -456
- package/src/mixins/timerMixin.js +0 -132
- package/src/module/store.js +0 -874
- package/src/plugins/timeManager.js +0 -77
- package/src/routes.js +0 -734
- package/vue.config.js +0 -83
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Jauge
|
|
2
|
+
|
|
3
|
+
Ce composant sert de marqueur de progression.
|
|
4
|
+
|
|
5
|
+
## Aperçu
|
|
6
|
+
|
|
7
|
+
Ce composant affiche la progression sois en pourcentage.
|
|
8
|
+
|
|
9
|
+
## Comportement
|
|
10
|
+
|
|
11
|
+
Par défaut, vous devez lui passé 2 donnés la valeur maximum et la valeur actuel. Vous pouvez lui dire d'afficher le résultat en pourcentage.
|
|
12
|
+
|
|
13
|
+
::: tip 💡 Note
|
|
14
|
+
|
|
15
|
+
Pour l'instant ce composant est utiliser en synchronisation avec les items de menu.
|
|
16
|
+
Vous pouvez vous y référé en cas de question.
|
|
17
|
+
:::
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## Paramètre
|
|
21
|
+
|
|
22
|
+
Aucun paramètre n'est modifiable. L'apprence du composant peut être modifier par css seulement. Vous ne pouvez pas trouver à la struture de se composant.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## Style
|
|
26
|
+
|
|
27
|
+
N/A
|
|
28
|
+
|
|
29
|
+
## Accessibilité
|
|
30
|
+
|
|
31
|
+
Pour l'instant, il n'y a pas de critère d'accessibilité pour ce composant, puisqu'il n'est qu'esthétique.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Menu item
|
|
2
|
+
|
|
3
|
+
Ce composant aide la création de la page de menu et crée la présentation des activités.
|
|
4
|
+
|
|
5
|
+
## Aperçu
|
|
6
|
+
|
|
7
|
+
Par défaut, crée une cartes par activité présente dans le *paquage* scorm avec le numéro de l'activité.
|
|
8
|
+
|
|
9
|
+
## Comportement
|
|
10
|
+
|
|
11
|
+
Affiche une carte par activité présente dans le *paquage* scorm. La carte contient :
|
|
12
|
+
|
|
13
|
+
- Le nom de l'activité et son numéro d'activité
|
|
14
|
+
|
|
15
|
+
- Le temps de l'activité
|
|
16
|
+
- Une jauge de progression
|
|
17
|
+
|
|
18
|
+
La carte se remplie à l'aide d'un tableau d'objet déclaré dans le fichier `menu.setting.js`
|
|
19
|
+
S'il manque une clé ou une information n'est pas valide, l'application affiche une page blanche et la console vous retourneras une erreure.
|
|
20
|
+
|
|
21
|
+
Ce composant est connecter directement avec la composant CompJauge, vous pouvez consulter son comportement [ici](./CompJauge).
|
|
22
|
+
|
|
23
|
+
Au clique du composant, il redirige vers la permière pas de l'activité.
|
|
24
|
+
|
|
25
|
+
## Paramètre
|
|
26
|
+
|
|
27
|
+
Voici un extrait du fichier `menu.setting.js` à titre d'exemple :
|
|
28
|
+
|
|
29
|
+
```vue
|
|
30
|
+
<script>
|
|
31
|
+
A00: {
|
|
32
|
+
title: 'Introduction',
|
|
33
|
+
subTitle: 'ceci est un sous-titre',
|
|
34
|
+
time: 'Durée : X minutes',
|
|
35
|
+
anchors: [
|
|
36
|
+
{
|
|
37
|
+
anchorName: 'Moxxi',
|
|
38
|
+
pageRef: 'P01',
|
|
39
|
+
page: 'page_1'
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
</script>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Si vous avez déclarer dans `menu.setting.js` l'introActive, l'activité 00 s'affiche en tant que : Introduction. Le nom est changeable dans `menu.setting.js`.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
## Style
|
|
50
|
+
|
|
51
|
+
Vous ne pouvez pas ajouter des classes supplémentaires à l'objet lui même, mais vous pouvez ajouter des classes au conteneur (qui est une row). Les cartes ont tous les mêmes classes.
|
|
52
|
+
|
|
53
|
+
## Accessibilité
|
|
54
|
+
|
|
55
|
+
Pour l'instant aucune action n'a été faite pour l'accessibilité.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Menu
|
|
2
|
+
|
|
3
|
+
Ce composant aide la création de la page de menu,créé les la présentaion des activités et créé une carte de présentation qui serre de bookmark.
|
|
4
|
+
|
|
5
|
+
## Aperçu
|
|
6
|
+
|
|
7
|
+
Par défault, appelle le composant Menu item qui créé toute les activités. Il créé en simultanné une carte qui permet de retourner au dernière endroit visité.
|
|
8
|
+
|
|
9
|
+
## Comportement
|
|
10
|
+
|
|
11
|
+
Appelle [Menu item](./CompMenuItem) pour créé les cartes des activités.
|
|
12
|
+
|
|
13
|
+
Créé une carte qui permet de retourner à la dernière page visité. Si aucune activité n'a été visité, la carte redirige vers la premier page de la première activité.
|
|
14
|
+
|
|
15
|
+
Pour créé le lien vers le dernière page visité, il regarde dans le store la dernière page enregistrer par celui-ci.
|
|
16
|
+
|
|
17
|
+
Pour visiualiser le composant dans le template, il est présent de le dossier `Views` dans le fichier `SummaryView.vue`.
|
|
18
|
+
|
|
19
|
+
## Paramètre
|
|
20
|
+
|
|
21
|
+
Pour l'instant aucune paramètre n'est demander.
|
|
22
|
+
|
|
23
|
+
## Style
|
|
24
|
+
|
|
25
|
+
Vous pouvez ajouter une classe au conteur le plus haut. Les autres ne sont pas atteignable.
|
|
26
|
+
|
|
27
|
+
## Accessibilité
|
|
28
|
+
|
|
29
|
+
Pour l'instant aucune action n'a été fait pour l'accessibilité.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Navigation
|
|
2
|
+
|
|
3
|
+
Fait affiche le bare de navigation et les boutons du pas de page pour aller à la page suivante et la précédente.
|
|
4
|
+
|
|
5
|
+
## Aperçu
|
|
6
|
+
|
|
7
|
+
La navigation comprend 3 boutons.
|
|
8
|
+
|
|
9
|
+
- Le bouton de retour au sommaire (qui est dans la bare de navigation)
|
|
10
|
+
- Le bouton pour aller à la page suivant
|
|
11
|
+
- Le bouton pour aller à la page précédente
|
|
12
|
+
- La pagination
|
|
13
|
+
|
|
14
|
+
## Comportement
|
|
15
|
+
|
|
16
|
+
Affiche une barre a gauche de l'écran qui contient le bouton pour retourner au menu et d'autre fonctionalité (qui ne sont pas controler par navigation). Il affiche aussi les deux boutons de navigation (Suivant précédent) avec la pagination dans le page de la page écran.
|
|
17
|
+
|
|
18
|
+
Le chemin de navigation par default est :
|
|
19
|
+
|
|
20
|
+
- Au départ, de l'application on arrive sur le menu.
|
|
21
|
+
- Lorsqu'on arrive la fin d'un activité on clique sur next. Un pop-up apparait avec 2 boutons un qui ramenere au menu et un qui redigire vers l'activité suivante.
|
|
22
|
+
- Lorsqu'on est sur la dernière page et qu'on cliquer sur le bouton next. Un pop-up apprait avec un bouton qui ramene au menu et l'autre qui envoie à la prochain leçon.
|
|
23
|
+
|
|
24
|
+
Tout les boutons s'auto-gère. Le contexte navigation est modifiable par les paramètres disponible dans `App.vue`.
|
|
25
|
+
|
|
26
|
+
## Paramètre
|
|
27
|
+
|
|
28
|
+
| Propriété | Type | Description | valeur par défaut |
|
|
29
|
+
|:----------|:-----------------|:------------------------------------------------|:-------|
|
|
30
|
+
| No_menu | Bolean | Retire le menu. L'application redirige vers la premier page de l'activité. | false |
|
|
31
|
+
| is_single_activity | Bolean | L'application est navigable seulement dans une seul activité (s'il y a plus d'un dossier d'activité l'apllication vous retourneras une erreure). Sur la dernière page, le bouton suviant est désactivé. | false |
|
|
32
|
+
| auto_next_activity | Bolean | | false |
|
|
33
|
+
| linkedResource | Object | Chemin vers la prochaine server leçon et lien https ver la prochaine leçon | url: 'pluginfile.php/24153/mod_tincanlaunch/content/index.html',id: 'https://projets.cegepadistance.ca/lrs-xapi/123123AA6001/M1L2' |
|
|
34
|
+
|
|
35
|
+
## Style
|
|
36
|
+
|
|
37
|
+
N/A
|
|
38
|
+
|
|
39
|
+
## Accessibilité
|
|
40
|
+
|
|
41
|
+
Pour l'instant aucune action n'a été faite pour l'accessibilité.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Model de page
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
::: warning 🚩 Important
|
|
6
|
+
Utilisez ce model comme depart pour écrire la page de votre composant:
|
|
7
|
+
|
|
8
|
+
1) Copiez /dubliquez cette page
|
|
9
|
+
2) Renommez votre copie avec le nom de votre composant
|
|
10
|
+
3) Édtitez la page en rempliçant les sections qui conserne votre composant.
|
|
11
|
+
:::
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Composant pour ....
|
|
15
|
+
|
|
16
|
+
## Aperçu
|
|
17
|
+
|
|
18
|
+
Le composant permet de...
|
|
19
|
+
Et culpa explicabo est amet voluptas qui fuga deleniti. Sed consectetur minus aut animi modi sed natus pariatur.
|
|
20
|
+
|
|
21
|
+
## Comportement
|
|
22
|
+
|
|
23
|
+
Lorem ipsum dolor sit amet. At quas quis qui velit tenetur aut suscipit error id iure doloremque ad velit explicabo. Sit repellat praesentium aut perferendis illum qui omnis recusandae est explicabo dolores in quia tempore qui totam velit.
|
|
24
|
+
|
|
25
|
+
## Référence du composant
|
|
26
|
+
|
|
27
|
+
**ModelComposantPage** `<model-composant/>`
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## Paramètre
|
|
31
|
+
|
|
32
|
+
Aucun paramètre n'est nécessaire pour ce composant.
|
|
33
|
+
|
|
34
|
+
### Props
|
|
35
|
+
|
|
36
|
+
| Propriété | Type | Description | valeur par défaut |
|
|
37
|
+
|:----------|:-----------------|:-----------------------------------------------------------------------------------------------------------------------------------|:-------|
|
|
38
|
+
| page | Object | données brutes de la page à créer | Doit contenir au minimum les valeurs suivantes: `{id, type, activityRef }`. Référez-vous à la section sur la [création de page](/guide/pageType.html#qu-est-ce-qu-une-page) pour une liste exhaustive des valeurs de la propriété. |
|
|
39
|
+
|
|
40
|
+
### Slots
|
|
41
|
+
`content`[named-slot] - Eos nemo officiis a ducimus officiis aut delectus obcaecati qui dolor consequatur.
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## Style
|
|
45
|
+
|
|
46
|
+
`nomde class`[class]
|
|
47
|
+
|
|
48
|
+
Aucune manipulation requise.
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
## Accessibilité
|
|
52
|
+
Aucune manipulation requise.
|
|
53
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Model de page
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
::: warning 🚩 Important
|
|
6
|
+
Utilisez ce model comme depart pour écrire la page de votre composant:
|
|
7
|
+
|
|
8
|
+
1) Copiez /dubliquez cette page
|
|
9
|
+
2) Renommez votre copie avec le nom de votre composant
|
|
10
|
+
3) Édtitez la page en rempliçant les sections qui conserne votre composant.
|
|
11
|
+
:::
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Composant pour ....
|
|
15
|
+
|
|
16
|
+
## Aperçu
|
|
17
|
+
|
|
18
|
+
Le composant permet de...
|
|
19
|
+
Et culpa explicabo est amet voluptas qui fuga deleniti. Sed consectetur minus aut animi modi sed natus pariatur.
|
|
20
|
+
|
|
21
|
+
## Comportement
|
|
22
|
+
|
|
23
|
+
Lorem ipsum dolor sit amet. At quas quis qui velit tenetur aut suscipit error id iure doloremque ad velit explicabo. Sit repellat praesentium aut perferendis illum qui omnis recusandae est explicabo dolores in quia tempore qui totam velit.
|
|
24
|
+
|
|
25
|
+
## Référence du composant
|
|
26
|
+
|
|
27
|
+
**ModelComposantPage** `<model-composant/>`
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## Paramètre
|
|
31
|
+
|
|
32
|
+
Aucun paramètre n'est nécessaire pour ce composant.
|
|
33
|
+
|
|
34
|
+
### Props
|
|
35
|
+
|
|
36
|
+
| Propriété | Type | Description | valeur par défaut |
|
|
37
|
+
|:----------|:-----------------|:-----------------------------------------------------------------------------------------------------------------------------------|:-------|
|
|
38
|
+
| page | Object | données brutes de la page à créer | Doit contenir au minimum les valeurs suivantes: `{id, type, activityRef }`. Référez-vous à la section sur la [création de page](/guide/pageType.html#qu-est-ce-qu-une-page) pour une liste exhaustive des valeurs de la propriété. |
|
|
39
|
+
|
|
40
|
+
### Slots
|
|
41
|
+
`content`[named-slot] - Eos nemo officiis a ducimus officiis aut delectus obcaecati qui dolor consequatur.
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## Style
|
|
45
|
+
|
|
46
|
+
`nomde class`[class]
|
|
47
|
+
|
|
48
|
+
Aucune manipulation requise.
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
## Accessibilité
|
|
52
|
+
Aucune manipulation requise.
|
|
53
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Model de page
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
::: warning 🚩 Important
|
|
6
|
+
Utilisez ce model comme depart pour écrire la page de votre composant:
|
|
7
|
+
|
|
8
|
+
1) Copiez /dubliquez cette page
|
|
9
|
+
2) Renommez votre copie avec le nom de votre composant
|
|
10
|
+
3) Édtitez la page en rempliçant les sections qui conserne votre composant.
|
|
11
|
+
:::
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Composant pour ....
|
|
15
|
+
|
|
16
|
+
## Aperçu
|
|
17
|
+
|
|
18
|
+
Le composant permet de...
|
|
19
|
+
Et culpa explicabo est amet voluptas qui fuga deleniti. Sed consectetur minus aut animi modi sed natus pariatur.
|
|
20
|
+
|
|
21
|
+
## Comportement
|
|
22
|
+
|
|
23
|
+
Lorem ipsum dolor sit amet. At quas quis qui velit tenetur aut suscipit error id iure doloremque ad velit explicabo. Sit repellat praesentium aut perferendis illum qui omnis recusandae est explicabo dolores in quia tempore qui totam velit.
|
|
24
|
+
|
|
25
|
+
## Référence du composant
|
|
26
|
+
|
|
27
|
+
**ModelComposantPage** `<model-composant/>`
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## Paramètre
|
|
31
|
+
|
|
32
|
+
Aucun paramètre n'est nécessaire pour ce composant.
|
|
33
|
+
|
|
34
|
+
### Props
|
|
35
|
+
|
|
36
|
+
| Propriété | Type | Description | valeur par défaut |
|
|
37
|
+
|:----------|:-----------------|:-----------------------------------------------------------------------------------------------------------------------------------|:-------|
|
|
38
|
+
| page | Object | données brutes de la page à créer | Doit contenir au minimum les valeurs suivantes: `{id, type, activityRef }`. Référez-vous à la section sur la [création de page](/guide/pageType.html#qu-est-ce-qu-une-page) pour une liste exhaustive des valeurs de la propriété. |
|
|
39
|
+
|
|
40
|
+
### Slots
|
|
41
|
+
`content`[named-slot] - Eos nemo officiis a ducimus officiis aut delectus obcaecati qui dolor consequatur.
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## Style
|
|
45
|
+
|
|
46
|
+
`nomde class`[class]
|
|
47
|
+
|
|
48
|
+
Aucune manipulation requise.
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
## Accessibilité
|
|
52
|
+
Aucune manipulation requise.
|
|
53
|
+
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Pop up
|
|
2
|
+
|
|
3
|
+
Se composant est repris de vuetify.
|
|
4
|
+
|
|
5
|
+
## Aperçu
|
|
6
|
+
|
|
7
|
+
Ce composant est un pop-up qui permet de visualiser du contenu. Il peut être appelé par la machine ou par l'utlisateur. Vous pouvez donc à n'importe quel endroit de votre page ou de votre autre composant appeler ce POP-UP pour afficher les messages de type: `information et personnalisé`.
|
|
8
|
+
|
|
9
|
+
## Comportement
|
|
10
|
+
|
|
11
|
+
Le FCAD offre un composant POP-UP pour afficher une boite de dialogue à l'utilisateur. Ce composant est paramètré pour générer **2 types de boite de dialogue**.
|
|
12
|
+
|
|
13
|
+
Vous devez utiliser le bus pour appeler l'ouverture du pop-up. Voici comment faire:
|
|
14
|
+
|
|
15
|
+
- Emettre l'événement `open-popup`.
|
|
16
|
+
- Passer en "argument" l'objet POP-UP à générer.
|
|
17
|
+
|
|
18
|
+
```vue
|
|
19
|
+
<script>
|
|
20
|
+
export default {
|
|
21
|
+
//...
|
|
22
|
+
methods: {
|
|
23
|
+
openPopup(data) {
|
|
24
|
+
this.$bus.$emit("open-popup", data);
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
</script>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Dans la section **`<template/>`** de votre page ou de votre composant, vous pouvez maintenant faire afficher le POP-UP, par l'appel de votre méthode sur le clique d'un bouton par exemple.
|
|
32
|
+
|
|
33
|
+
```vue
|
|
34
|
+
<template>
|
|
35
|
+
<div>
|
|
36
|
+
<app-base-button @click="openPopup(myPopupExemple1)">
|
|
37
|
+
Information
|
|
38
|
+
</app-base-button>
|
|
39
|
+
</div>
|
|
40
|
+
</template>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## Paramètre
|
|
45
|
+
|
|
46
|
+
Le pop-up doit recevoir l'information à afficher d'object. Voici le contenu que doit avoir l'objet pop-up:
|
|
47
|
+
|
|
48
|
+
| Propriété | Type | Description |valeur | Required |
|
|
49
|
+
|-----------|--------|-------------------------------|------------------------------------------|----------|
|
|
50
|
+
| type | String | défini le type de pop-up à être générer | `popup-info`, `popup-custom` | true |
|
|
51
|
+
| value | Object | défini le contenu à générer dans le pop-up | `title`, `text_n`, `hypertext`\*, `hypertext_n`\*\*, `audio_n`, `video_n`, `link_n`, `image_n`, `cb_$open`,`cb_$close`, `cb_$cancel`, `cb_$confirm`,`$bvArgs`\*\*\*, <br><br> **_NOTES: <br> `n` étant un entier de 1 à infini <br>\* Doit être uniquement utiliser avec le Pop-up Custom<br>\*\* Doit être utilisé iniquement avec les pop-up<br>\*\*\* liste de proprietés Boostrap-vue à passer_** | true |
|
|
52
|
+
|
|
53
|
+
Voici comment définir l'objet à générer :
|
|
54
|
+
|
|
55
|
+
```vue
|
|
56
|
+
<script>
|
|
57
|
+
export default {
|
|
58
|
+
//...
|
|
59
|
+
data() {
|
|
60
|
+
return {
|
|
61
|
+
//...
|
|
62
|
+
myPopupExemple1: {
|
|
63
|
+
type: "popup-info",
|
|
64
|
+
value: {text_1:"voici une information de pop-up à afficher"},
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
</script>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Voici le tableau de tous les paramètres possible pour les pop-ups :
|
|
73
|
+
| Propriété | Type | Description | Usage | Required |
|
|
74
|
+
|-------------------------|----------|-----------------------------------------|-----------|-------------|
|
|
75
|
+
| title | String | Le titre que doit afficher le POP-UP dans l'entête<br><br>_exemple : information_ | title: 'information' | optionnelle |
|
|
76
|
+
| text_n <br><br>**`n` étant un entier de 1 à infini** | String | un contenu textuel que doit afficher le POP-UP. | text_1:"Hello world" | optionnelle |
|
|
77
|
+
| image_n <br><br>**`n` étant un entier de 1 à infini** | Object | une image à faire afficher dans le POP-UP avec une source et un alt | image_1:{path:'img/mon_image.png', label:'nom de mon image'} <br><br> **Note: les clés `path` et `label` sont obligatoire**. | optionnelle |
|
|
78
|
+
| audio_n <br><br>**`n` étant un entier de 1 à infini** | String | un élément audio à faire afficher dans le POP-UP. | audio_1:'audio/mon_image.png' | optionnelle |
|
|
79
|
+
| video_n <br><br>**`n` étant un entier de 1 à infini** | String | un élément audio à faire afficher dans le POP-UP. | video_1:'video/mon_image.png' | optionnelle |
|
|
80
|
+
| link_n <br><br>**`n` étant un entier de 1 à infini** | Object | un lien à faire afficher dans le POP-UP, avec une source et un libélé | link_1:{ ref:'https://FCADdocumentation.netlify.app/guide/', label:'libélé de mon lien' }<br><br>**Note: les clés `ref` et `label` sont obligatoire**. | optionnelle |
|
|
81
|
+
| hypertext_n <br><br>**`n` étant un entier de 1 à infini** | String | un contenu html à faire afficher dans le POP-UP. | hypertext_1:'voici un texte avec du <strong>html</strong> à afficher' | |
|
|
82
|
+
| cb\_\$open | Function | une fonction de callback à exécuter lorsque le POP-UP sera ouvert | cb\_\$open:foo() | optionnelle |
|
|
83
|
+
| cb\_\$close | Function | une fonction de callback à exécuter lorsque le POP-UP sera fermé | cb\_\$close:foo() | optionnelle |
|
|
84
|
+
| cb\_\$cancel | Function | une fonction de callback à exécuter lorsque le button d'annulation sera appuyé<br> | cb\_\$cancel:foo() | optionnelle |
|
|
85
|
+
| cb\_\$confirm | Function | une fonction de callback à exécuter lorsque le button de confirmation sera appuyé<br> | cb\_\$confirm:foo() | optionnelle | | optionnelle |
|
|
86
|
+
|
|
87
|
+
## Style
|
|
88
|
+
|
|
89
|
+
N/A
|
|
90
|
+
|
|
91
|
+
## Accessibilité
|
|
92
|
+
|
|
93
|
+
Pour l'instant aucune action n'a été fait pour l'accessibilité.
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
# Quiz
|
|
2
|
+
|
|
3
|
+
*Quiz* est le composant qui gère principalement toutes les actions principales de tous les types de quiz de l'application, sans être un gestionnaire.
|
|
4
|
+
|
|
5
|
+
## Aperçu
|
|
6
|
+
|
|
7
|
+
Le composant *quiz* importe et affiche les données. Selon les données entrer dans la feuille *json*, *quiz* se charge d'utiliser le bon type de quiz. Il gère aussi tout ce qui est validation pour tout type de quiz, si validation il y a. Il affiche la rétroaction en dessous du quiz.
|
|
8
|
+
|
|
9
|
+
## Comportement
|
|
10
|
+
|
|
11
|
+
*Quiz* doit absolument être lié avec un fichier *json* lors de son appelle. Si le fichier *json* comporte une erreur, le quiz ne fonctionnera pas.
|
|
12
|
+
|
|
13
|
+
Le *json* doit avoir les informations suivantes :
|
|
14
|
+
|
|
15
|
+
- id
|
|
16
|
+
- type
|
|
17
|
+
- enonce
|
|
18
|
+
- choix de réponse
|
|
19
|
+
- solution
|
|
20
|
+
- rétroaction
|
|
21
|
+
- valeur de point
|
|
22
|
+
- le nombre essais
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"id": "Axx_Pxx_Qxx",
|
|
27
|
+
"type_question": "",
|
|
28
|
+
"ennonce": "",
|
|
29
|
+
"choix_reponse": [],
|
|
30
|
+
"solution": "",
|
|
31
|
+
"rétroaction": {
|
|
32
|
+
"retro_neutre": {} ,
|
|
33
|
+
"retro_positive": {} ,
|
|
34
|
+
"retro_negative": {}
|
|
35
|
+
},
|
|
36
|
+
"valeur_points": null,
|
|
37
|
+
"max_essai": null
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
Peu importe le type de quiz développé, ce sont les informations nécessaires pour créer un quiz.
|
|
42
|
+
|
|
43
|
+
Le paramètre *ennonce* doit absolument recevoir une structure html.
|
|
44
|
+
|
|
45
|
+
::: warning Attention
|
|
46
|
+
Prenez note que *valeur_points* n'est pas fonctionnel pour l'instant.
|
|
47
|
+
:::
|
|
48
|
+
|
|
49
|
+
## Paramètre
|
|
50
|
+
|
|
51
|
+
### Voici les paramètres généraux à tous les quiz
|
|
52
|
+
|
|
53
|
+
#### ID
|
|
54
|
+
|
|
55
|
+
**Type:** `String` _(Axx_Pxx_Qxx)_
|
|
56
|
+
|
|
57
|
+
**Usage:** Obligatoire.
|
|
58
|
+
Définie l'identification unique pour le quiz/ la question. Cet *ID* est constitué de la référence de l'activité **Axx** , référence de la page **Pxx** et un numéro du Quiz **Qxx**.
|
|
59
|
+
|
|
60
|
+
#### TYPE_QUESTION
|
|
61
|
+
|
|
62
|
+
**Type:** `String` _(choix_mult | choix_unique | dropdown | reponse_ouverte | texte_tableau | texte_troue | texte_troue_select)__
|
|
63
|
+
|
|
64
|
+
**Usage:** Obligatoire.
|
|
65
|
+
Définie le type de question.
|
|
66
|
+
|
|
67
|
+
#### ENNONCE
|
|
68
|
+
|
|
69
|
+
**Type:** `String`
|
|
70
|
+
|
|
71
|
+
**Usage:** Obligatoire.
|
|
72
|
+
Définie l'énoncé textuel de la question.
|
|
73
|
+
|
|
74
|
+
#### RETROACTION
|
|
75
|
+
|
|
76
|
+
**Type:** `Object` retro_positive | retro_negative | retro_neutre
|
|
77
|
+
|
|
78
|
+
**Usage:** Obligatoire.
|
|
79
|
+
Définie la rétroaction à afficher pour la question. Doit /referencesléter une des situations ci-dessous:
|
|
80
|
+
|
|
81
|
+
- Une rétraction particulière est attendue selon le type de réponse de l'utilisateur. Les clés `retro_positive , retro_negative , retro_neutre` doivent être remplies.
|
|
82
|
+
|
|
83
|
+
- Aucune rétroaction particulière n'est demandée. Les clés `retro_positive` , `retro_negative` peuvent contenir un string vide ou être mise `Null` et la clé `retro_neutre` doit être remplie pour la rétroaction générale à afficher.
|
|
84
|
+
|
|
85
|
+
#### VALEUR_POINTS
|
|
86
|
+
|
|
87
|
+
**Type:** `Number | Null`
|
|
88
|
+
|
|
89
|
+
**Usage:** Optionnel.
|
|
90
|
+
Définie la valeur de la question en termes de points. Doit être mit à `null` si aucune valeur n’est nécessaire pour le quiz.
|
|
91
|
+
|
|
92
|
+
#### MAX_ESSAI
|
|
93
|
+
|
|
94
|
+
**Type:** `Number | Null`
|
|
95
|
+
|
|
96
|
+
**Usage:** Optionnel.
|
|
97
|
+
Définie le nombre d'essai permit pour ce quiz. Doit être mis à `null` si aucun aucune condition d'essai maximum n'est nécessaire pour le quiz.
|
|
98
|
+
|
|
99
|
+
### Voici les paramètres spécifique pour les inputs et les types de solutions
|
|
100
|
+
|
|
101
|
+
### Quiz réponse ouverte
|
|
102
|
+
|
|
103
|
+
[Exemple d'un objet quizData de réponse ouverte](../ref/quizDataReponseOuverte.json)
|
|
104
|
+
|
|
105
|
+
#### CHOIX_REPONSE
|
|
106
|
+
|
|
107
|
+
**Type:** `Null`
|
|
108
|
+
|
|
109
|
+
**Usage:** Obligatoire.
|
|
110
|
+
Doit être mis à `null` si la question ne présente pas un choix de réponse.
|
|
111
|
+
|
|
112
|
+
#### SOLUTION
|
|
113
|
+
|
|
114
|
+
**Type:** `String | Null`
|
|
115
|
+
|
|
116
|
+
**Usage:** Obligatoire.
|
|
117
|
+
Définie la solution pour la question.
|
|
118
|
+
|
|
119
|
+
### Quiz réponse radio et réponse checkbox
|
|
120
|
+
|
|
121
|
+
[Exemple d'un objet quizData de réponse radio](../ref/quizDataChoixUnique.json)
|
|
122
|
+
|
|
123
|
+
[Exemple d'un objet quizData de réponse checkbox](../ref/quizDataChoixMult.json)
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
#### CHOIX_REPONSE
|
|
127
|
+
|
|
128
|
+
**Type:** `Array{Object} | Null`
|
|
129
|
+
|
|
130
|
+
**Usage:** Obligatoire.
|
|
131
|
+
Définie l'ensemble des choix proposés pour la réponse. Doit être mis à `null` si la question ne présente pas un choix de réponse.
|
|
132
|
+
Le type d'objet contenu de l'array change selon le type de quiz:
|
|
133
|
+
- Le type `reponse_simple` pour les quiz `choix_unique` || `choix_mult`
|
|
134
|
+
|
|
135
|
+
#### SOLUTION
|
|
136
|
+
|
|
137
|
+
**Type:** `Number | Array | Null`
|
|
138
|
+
|
|
139
|
+
**Usage:** Obligatoire.
|
|
140
|
+
Définie la solution pour la question. Doit contenir une des valeurs ci-dessous:
|
|
141
|
+
|
|
142
|
+
- un Array ( *IDs* des solutions, dans le cas de la question type choix_mult)
|
|
143
|
+
- Null dans le cas où aucune solution n'est attendu/exigé (reponse_ouverte sans validation)
|
|
144
|
+
|
|
145
|
+
### Quiz réponse liste déroulante
|
|
146
|
+
|
|
147
|
+
[Exemple d'un objet quizData de réponse liste déroulante](../ref/quizDataDropdown.json)
|
|
148
|
+
|
|
149
|
+
#### CHOIX_REPONSE
|
|
150
|
+
|
|
151
|
+
**Type:** `Array{Object} | Null`
|
|
152
|
+
|
|
153
|
+
**Usage:** Obligatoire.
|
|
154
|
+
Définie l'ensemble des choix proposés pour chaque réponse.
|
|
155
|
+
|
|
156
|
+
#### SOLUTION
|
|
157
|
+
|
|
158
|
+
**Type:** `Array | Null`
|
|
159
|
+
|
|
160
|
+
**Usage:** Obligatoire.
|
|
161
|
+
Définie la solution pour la question.
|
|
162
|
+
|
|
163
|
+
### Quiz texte tableau
|
|
164
|
+
|
|
165
|
+
[Exemple d'un objet quizData de texte tableau](../ref/quizDataTextTableau.json)
|
|
166
|
+
|
|
167
|
+
#### CHOIX_REPONSE
|
|
168
|
+
|
|
169
|
+
**Type:** `Array{Object}`
|
|
170
|
+
|
|
171
|
+
**Usage:** Obligatoire.
|
|
172
|
+
Définie l'ensemble des rangés du tableau avec chaque rangé ayant une réponse.
|
|
173
|
+
|
|
174
|
+
#### SOLUTION
|
|
175
|
+
|
|
176
|
+
**Type:** `Array{Object} | Null`
|
|
177
|
+
|
|
178
|
+
**Usage:** Obligatoire.
|
|
179
|
+
Définie la solution pour la question.
|
|
180
|
+
|
|
181
|
+
### Quiz texte trou
|
|
182
|
+
|
|
183
|
+
[Exemple d'un objet quizData de texte trou](../ref/quizDataTexteTroue.json)
|
|
184
|
+
|
|
185
|
+
#### TEXTE_BASE
|
|
186
|
+
|
|
187
|
+
**Type:** `String`
|
|
188
|
+
|
|
189
|
+
**Usage:** Obligatoire.
|
|
190
|
+
Définie le texte où les entrées de champs textes seront insérées. L'emplacement des entrés est indiqué dans le texte avec `$%KEY%$`.
|
|
191
|
+
|
|
192
|
+
#### SOLUTION
|
|
193
|
+
|
|
194
|
+
**Type:** `Array{Object} | Null`
|
|
195
|
+
|
|
196
|
+
**Usage:** Obligatoire.
|
|
197
|
+
Définie la solution pour la question.
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
### Quiz texte trou à liste déroulante
|
|
201
|
+
|
|
202
|
+
[Exemple d'un objet quizData de texte trou à liste déroulante](../ref/quizDataTextTrouSelect.json)
|
|
203
|
+
|
|
204
|
+
#### CHOIX_REPONSE
|
|
205
|
+
|
|
206
|
+
**Type:** `Array{Object}`
|
|
207
|
+
|
|
208
|
+
**Usage:** Obligatoire.
|
|
209
|
+
Définie l'ensemble des choix proposés pour chaque réponse.
|
|
210
|
+
|
|
211
|
+
#### TEXTE_BASE
|
|
212
|
+
|
|
213
|
+
**Type:** `String`
|
|
214
|
+
|
|
215
|
+
**Usage:** Obligatoire.
|
|
216
|
+
Définie le texte où les entrées de champs textes seront insérées. L'emplacement des entrés est indiqué dans le texte avec `$%KEY%$`.
|
|
217
|
+
|
|
218
|
+
#### SOLUTION
|
|
219
|
+
|
|
220
|
+
**Type:** `Array{Object} | Null`
|
|
221
|
+
|
|
222
|
+
**Usage:** Obligatoire.
|
|
223
|
+
Définie la solution pour la question.
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
## Style
|
|
228
|
+
|
|
229
|
+
Lorsque vous sélectionnez une réponse, la classe *select* est ajoutée à l'élément sélectionné. Lors de la validation des éléments, toutes les bonnes réponses ont la classe *good* et toute les mauvaises réponses on la classes *bad*. Un jeu de classes est utilisé dans la feuille sass de chaque type de input pour identifier les bonnes réponses, les mauvaises réponses, les mauvaises réponse sélectionnées et les bonnes réponses sélectionnées.
|
|
230
|
+
|
|
231
|
+
Aucune classe supplémentaire ne peut être ajoutée au élément du quiz. Vous ne pouvez jouer qu'avec le conteneur parent du quiz pour ajouter des classes ou *id*. Par défaut, le quiz et ses éléments ont l'*id* que vous définissez dans la feuille *json*.
|
|
232
|
+
|
|
233
|
+
## Accessibilité
|
|
234
|
+
|
|
235
|
+
Pour l'instant aucune action n'a été fait pour l'accessibilité.
|