fcad-core-dragon 2.1.1 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/.editorconfig +7 -7
  2. package/.gitlab-ci.yml +124 -0
  3. package/.prettierrc +11 -11
  4. package/.vscode/extensions.json +8 -8
  5. package/.vscode/settings.json +46 -16
  6. package/CHANGELOG +520 -520
  7. package/README.md +57 -57
  8. package/documentation/.vitepress/config.js +114 -114
  9. package/documentation/api-examples.md +49 -49
  10. package/documentation/composants/app-base-button.md +58 -58
  11. package/documentation/composants/app-base-error-display.md +59 -59
  12. package/documentation/composants/app-base-popover.md +68 -68
  13. package/documentation/composants/app-comp-audio.md +75 -75
  14. package/documentation/composants/app-comp-branch-buttons.md +111 -111
  15. package/documentation/composants/app-comp-button-progress.md +53 -53
  16. package/documentation/composants/app-comp-carousel.md +53 -53
  17. package/documentation/composants/app-comp-container.md +53 -53
  18. package/documentation/composants/app-comp-input-checkbox-next.md +42 -42
  19. package/documentation/composants/app-comp-input-dropdown-next.md +34 -34
  20. package/documentation/composants/app-comp-input-radio-next.md +39 -39
  21. package/documentation/composants/app-comp-input-text-next.md +35 -35
  22. package/documentation/composants/app-comp-input-text-table-next.md +34 -34
  23. package/documentation/composants/app-comp-input-text-to-fill-dropdown-next.md +53 -53
  24. package/documentation/composants/app-comp-input-text-to-fill-next.md +31 -31
  25. package/documentation/composants/app-comp-jauge.md +31 -31
  26. package/documentation/composants/app-comp-menu-item.md +55 -55
  27. package/documentation/composants/app-comp-menu.md +29 -29
  28. package/documentation/composants/app-comp-navigation.md +41 -41
  29. package/documentation/composants/app-comp-note-call.md +53 -53
  30. package/documentation/composants/app-comp-note-credit.md +53 -53
  31. package/documentation/composants/app-comp-play-bar-next.md +53 -53
  32. package/documentation/composants/app-comp-pop-up-next.md +93 -93
  33. package/documentation/composants/app-comp-quiz-next.md +235 -235
  34. package/documentation/composants/app-comp-quiz-recall.md +53 -53
  35. package/documentation/composants/app-comp-svg-next.md +53 -53
  36. package/documentation/composants/app-comp-table-of-content.md +50 -50
  37. package/documentation/composants/app-comp-video-player.md +82 -82
  38. package/documentation/composants.md +46 -46
  39. package/documentation/composants_critiques/ModelPageComposant.md +53 -53
  40. package/documentation/composants_critiques/app-base-module.md +43 -43
  41. package/documentation/composants_critiques/app-base-page.md +48 -48
  42. package/documentation/composants_critiques/app-base.md +311 -311
  43. package/documentation/composants_critiques/main.md +15 -15
  44. package/documentation/demarrage.md +50 -50
  45. package/documentation/deploiement.md +57 -57
  46. package/documentation/index.md +33 -33
  47. package/documentation/markdown-examples.md +85 -85
  48. package/documentation/public/vite.svg +14 -14
  49. package/documentation/public/vuejs.svg +1 -1
  50. package/documentation/public/vuetify.svg +5 -5
  51. package/eslint.config.js +60 -60
  52. package/junit-report.xml +182 -0
  53. package/package.json +66 -59
  54. package/playwright/index.html +12 -0
  55. package/playwright/index.js +21 -0
  56. package/playwright-ct.config.js +95 -0
  57. package/src/$locales/en.json +157 -157
  58. package/src/$locales/fr.json +120 -120
  59. package/src/assets/data/onboardingMessages.json +47 -47
  60. package/src/components/AppBase.vue +1171 -1169
  61. package/src/components/AppBaseButton.vue +90 -95
  62. package/src/components/AppBaseErrorDisplay.vue +438 -438
  63. package/src/components/AppBaseFlipCard.vue +84 -84
  64. package/src/components/AppBaseModule.vue +1639 -1634
  65. package/src/components/AppBasePage.vue +867 -866
  66. package/src/components/AppBasePopover.vue +41 -41
  67. package/src/components/AppBaseSkeleton.vue +66 -66
  68. package/src/components/AppCompAudio.vue +261 -256
  69. package/src/components/AppCompBranchButtons.vue +508 -508
  70. package/src/components/AppCompButtonProgress.vue +137 -132
  71. package/src/components/AppCompCarousel.vue +342 -336
  72. package/src/components/AppCompContainer.vue +29 -29
  73. package/src/components/AppCompInputCheckBoxNx.vue +325 -323
  74. package/src/components/AppCompInputDropdownNx.vue +302 -299
  75. package/src/components/AppCompInputRadioNx.vue +287 -284
  76. package/src/components/AppCompInputTextNx.vue +156 -153
  77. package/src/components/AppCompInputTextTableNx.vue +205 -202
  78. package/src/components/AppCompInputTextToFillDropdownNx.vue +343 -340
  79. package/src/components/AppCompInputTextToFillNx.vue +316 -313
  80. package/src/components/AppCompJauge.vue +81 -81
  81. package/src/components/AppCompMenu.vue +6 -1
  82. package/src/components/AppCompMenuItem.vue +246 -240
  83. package/src/components/AppCompNavigation.vue +977 -972
  84. package/src/components/AppCompNoteCall.vue +167 -161
  85. package/src/components/AppCompNoteCredit.vue +496 -491
  86. package/src/components/AppCompPlayBarNext.vue +2290 -2288
  87. package/src/components/AppCompPopUpNext.vue +508 -504
  88. package/src/components/AppCompQuizNext.vue +515 -510
  89. package/src/components/AppCompQuizRecall.vue +355 -350
  90. package/src/components/AppCompSVGNext.vue +346 -346
  91. package/src/components/AppCompSettingsMenu.vue +177 -172
  92. package/src/components/AppCompTableOfContent.vue +433 -427
  93. package/src/components/AppCompVideoPlayer.vue +377 -377
  94. package/src/components/AppCompViewDisplay.vue +6 -6
  95. package/src/components/BaseModule.vue +55 -55
  96. package/src/composables/useIdleDetector.js +56 -56
  97. package/src/composables/useQuiz.js +89 -89
  98. package/src/composables/useTimer.js +172 -172
  99. package/src/directives/nvdaFix.js +53 -53
  100. package/src/externalComps/ModuleView.vue +22 -22
  101. package/src/externalComps/SummaryView.vue +91 -91
  102. package/src/main.js +493 -476
  103. package/src/module/stores/appStore.js +960 -947
  104. package/src/module/xapi/ADL.js +520 -520
  105. package/src/module/xapi/Crypto/Hasher.js +241 -241
  106. package/src/module/xapi/Crypto/WordArray.js +278 -278
  107. package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +103 -103
  108. package/src/module/xapi/Crypto/algorithms/C_algo.js +315 -315
  109. package/src/module/xapi/Crypto/algorithms/HMAC.js +9 -9
  110. package/src/module/xapi/Crypto/algorithms/SHA1.js +9 -9
  111. package/src/module/xapi/Crypto/encoders/Base.js +105 -105
  112. package/src/module/xapi/Crypto/encoders/Base64.js +99 -99
  113. package/src/module/xapi/Crypto/encoders/Hex.js +61 -61
  114. package/src/module/xapi/Crypto/encoders/Latin1.js +61 -61
  115. package/src/module/xapi/Crypto/encoders/Utf8.js +45 -45
  116. package/src/module/xapi/Crypto/index.js +53 -53
  117. package/src/module/xapi/Statement/activity.js +47 -47
  118. package/src/module/xapi/Statement/agent.js +55 -55
  119. package/src/module/xapi/Statement/group.js +26 -26
  120. package/src/module/xapi/Statement/index.js +259 -259
  121. package/src/module/xapi/Statement/statement.js +253 -253
  122. package/src/module/xapi/Statement/statementRef.js +23 -23
  123. package/src/module/xapi/Statement/substatement.js +22 -22
  124. package/src/module/xapi/Statement/verb.js +36 -36
  125. package/src/module/xapi/activitytypes.js +17 -17
  126. package/src/module/xapi/launch.js +157 -157
  127. package/src/module/xapi/utils.js +167 -167
  128. package/src/module/xapi/verbs.js +294 -294
  129. package/src/module/xapi/wrapper.js +1895 -1895
  130. package/src/module/xapi/xapiStatement.js +444 -444
  131. package/src/plugins/analytics.js +34 -34
  132. package/src/plugins/bus.js +12 -8
  133. package/src/plugins/gsap.js +17 -17
  134. package/src/plugins/helper.js +355 -358
  135. package/src/plugins/i18n.js +27 -26
  136. package/src/plugins/idb.js +227 -227
  137. package/src/plugins/save.js +37 -37
  138. package/src/plugins/scorm.js +287 -287
  139. package/src/plugins/xapi.js +11 -11
  140. package/src/public/index.html +33 -33
  141. package/src/router/index.js +57 -57
  142. package/src/router/routes.js +312 -312
  143. package/src/shared/generalfuncs.js +344 -344
  144. package/src/shared/validators.js +1018 -1018
  145. package/tests/component/AppBaseButton.spec.js +53 -0
  146. package/tests/component/pinia.spec.js +24 -0
  147. package/{src/components/tests__ → tests/unit}/AppBaseButton.spec.js +53 -53
  148. package/tests/unit/AppCompInputCheckBoxNx.spec.js +59 -0
  149. package/tests/unit/AppCompInputDropdownNx.spec.js +51 -0
  150. package/tests/unit/AppCompInputRadioNx.spec.js +59 -0
  151. package/tests/unit/AppCompInputTextNx.spec.js +44 -0
  152. package/tests/unit/AppCompInputTextTableNx.spec.js +77 -0
  153. package/tests/unit/AppCompInputTextToFillDropdownNx.spec.js +60 -0
  154. package/tests/unit/AppCompInputTextToFillNx.spec.js +45 -0
  155. package/tests/unit/AppCompQuizNext.spec.js +114 -0
  156. package/tests/unit/AppCompVideoPlayer.spec.js +177 -0
  157. package/{src/components/tests__ → tests/unit}/useTimer.spec.js +91 -91
  158. package/vitest.config.js +28 -19
  159. package/vitest.setup.js +28 -0
  160. package/src/components/AppBaseButton.test.js +0 -21
@@ -1,438 +1,438 @@
1
- <!--
2
- @ Description: This component is used to display error message in the application
3
-
4
- -->
5
-
6
- <template>
7
- <div>
8
- <!------------------------ ERRORS APPLICATION ------------------->
9
- <div v-if="errorGroup === 'application'" class="fd_Error-type">
10
- <div class="box-error">
11
- <!--------------------------- Module --------------------->
12
- <template v-if="errorType === 'errorModule'">
13
- <div class="red-box">
14
- <div class="box">
15
- <h2>
16
- Cette page est affichée parce que le fichier ModuleView n'existe
17
- pas où est mal configuré
18
- </h2>
19
-
20
- <p>Pour la vue du Module</p>
21
- <ol type="number">
22
- <li>
23
- Créez un fichier
24
- <i>.vue</i>
25
- avec pour nom
26
- <strong>ModuleView.vue</strong>
27
- dans le dossier
28
- <strong>views</strong>
29
- </li>
30
-
31
- <li>
32
- Referez-vous wnauirw à la documentation pour la création et la
33
- configuration de la vue du Module
34
- </li>
35
- </ol>
36
- </div>
37
- </div>
38
- <div class="box">
39
- <p class="doc">
40
- Visitez
41
- <a :href="docLink" target="blank">la documentation</a>
42
- pour plus de details ...
43
- </p>
44
- </div>
45
- </template>
46
- <!---------------------------- Menu ---------------------->
47
- <template v-if="errorType === 'errorMenu'">
48
- <div class="red-box">
49
- <div class="box">
50
- <h2>
51
- Cette page est affichée parce que le fichier SummaryView
52
- n'existe pas où est mal configuré
53
- </h2>
54
-
55
- <p>Pour la vue du Sommaire (page de MENU)</p>
56
- <ol type="number">
57
- <li>
58
- Créez un fichier
59
- <i>.vue</i>
60
- avec pour nom
61
- <strong>SummaryView.vue</strong>
62
- dans le dossier
63
- <strong>views</strong>
64
- </li>
65
- <li>
66
- Referez-vous ensuite à la documentation pour la création et la
67
- configuration de la vue du sommaire
68
- </li>
69
- </ol>
70
- </div>
71
- </div>
72
- <div class="box">
73
- <p class="doc">
74
- Visitez
75
- <a :href="docLink" target="blank">la documentation</a>
76
- pour plus de details ...
77
- </p>
78
- </div>
79
- </template>
80
- <!---------------------------- Page ---------------------->
81
- <template v-if="errorType === 'errorPage'">
82
- <div class="red-box">
83
- <div class="box">
84
- <h2>
85
- Cette page est affichée parce que vous n'avez pas encore de page
86
- d'activité pour votre module.
87
- </h2>
88
-
89
- <p>Pour créer une page</p>
90
- <ol type="number">
91
- <li>
92
- Ajoutez un dossier pour votre activité avec un nom de type
93
- <strong>Axx</strong>
94
- dans le dossier
95
- <strong>module</strong>
96
- <i>( exemple A00 )</i>
97
- </li>
98
- <li>
99
- Ajoutez un fichier pour votre page avec un nom de type
100
- <strong>Pxx.vue</strong>
101
- dans le dossier
102
- <strong>Axx</strong>
103
- <i>( exemple P01.vue )</i>
104
- </li>
105
- <li>
106
- Definissez le
107
- <strong>$data</strong>
108
- de la page
109
- </li>
110
- </ol>
111
- </div>
112
- </div>
113
- <div class="box">
114
- <p class="doc">
115
- Visitez
116
- <a :href="docLink" target="blank">la documentation</a>
117
- pour plus de details ...
118
- </p>
119
- </div>
120
- </template>
121
- <!----------------------- Branching ---------------------->
122
- <template v-if="errorType === 'errorMenuBranching'">
123
- <div class="red-box">
124
- <div class="box">
125
- <h2>Erreur d'embranchement.</h2>
126
-
127
- <p>
128
- Vous ne pouvez pas avoir de pages d'embranchement(s) dans le
129
- dossier A00
130
- </p>
131
- </div>
132
- </div>
133
- <div class="box">
134
- <p class="doc">
135
- Visitez
136
- <a
137
- :href="`https://fcaddocumentation.netlify.app/guide/structure.html#pages-d-embranchements-dans-un-dossier`"
138
- target="blank"
139
- >
140
- la documentation
141
- </a>
142
- pour plus de details ...
143
- </p>
144
- </div>
145
- </template>
146
- <!------------------------- 404 -------------------------->
147
- <template v-if="errorType === '404'">
148
- <div class="red-box">
149
- <div class="box">
150
- <h2>404 OOPSSS!</h2>
151
- <p>Il semble que la page que vous cherchez n'existe pas.</p>
152
- </div>
153
- </div>
154
- <div class="box">
155
- <p class="doc">
156
- Retrourner à la
157
- <router-link :to="{ name: 'menu' }">page d'accueil</router-link>
158
- </p>
159
- </div>
160
- </template>
161
- </div>
162
- </div>
163
- <!------------------- END ERRORS COMPONENTS -------------------->
164
- <v-row v-if="errorGroup === 'component'" class="warning-error">
165
- <v-col class="box-error">
166
- <div class="yellow-box">
167
- <h2>
168
- {{ errorTitle || 'Attention erreur dans le composant' }}
169
- </h2>
170
- <p>{{ errorText }}</p>
171
- <br />
172
- <p>Veuillez corriger:</p>
173
- <template
174
- v-if="
175
- errorsList.constructor == Array ||
176
- errorsList.constructor == Object
177
- "
178
- >
179
- <ul>
180
- <li
181
- v-for="err in errorsList"
182
- :key="`error_type_${err}`"
183
- v-html="err"
184
- ></li>
185
- </ul>
186
- </template>
187
- <template v-if="errorsList.constructor == String">
188
- <ul>
189
- <li v-html="errorsList"></li>
190
- </ul>
191
- </template>
192
- </div>
193
- <div class="box">
194
- <p class="doc">
195
- Visitez
196
- <a href="https://fcaddocumentation.netlify.app/" target="blank">
197
- la documentation
198
- </a>
199
- pour plus de details
200
- </p>
201
- </div>
202
- </v-col>
203
- </v-row>
204
-
205
- <!---------------------- END ERRORS COMPONENTS ------------------->
206
- </div>
207
- </template>
208
-
209
- <script>
210
- export default {
211
- name: 'AppBaseErrorDisplay',
212
- props: {
213
- errorGroup: { type: String, default: 'application' }, //group can be: application or component
214
- errorType: { type: String, note: 'Error Message', default: '' },
215
- errorTitle: {
216
- type: String,
217
- note: 'Title to display for the error',
218
- default: ''
219
- },
220
- errorText: {
221
- type: String,
222
- note: 'text to display for the error',
223
- default:
224
- 'Vous avez une/des erreure(s) qui empêche(ent) le bon rendu du composant'
225
- },
226
- errorsList: { type: Array, default: () => [] },
227
- docLink: {
228
- type: String,
229
- default: 'https://fcaddocumentation.netlify.com/guide/proceduries.html',
230
- note: 'Documentation link'
231
- }
232
- }
233
- }
234
- </script>
235
-
236
- <style lang="scss">
237
- //**** DO NOT TOUCHE ****/
238
- //**** ERROR ****/
239
- .fd_Error-type {
240
- display: flex;
241
- flex-direction: row;
242
- flex-wrap: wrap;
243
- justify-content: center;
244
- margin-top: 20%;
245
- padding-bottom: 30px;
246
- background-color: white;
247
- -webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
248
- -moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
249
- box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
250
-
251
- .box-error {
252
- width: 100%;
253
-
254
- .red-box {
255
- background: #cd5356;
256
- padding-top: 50px;
257
- padding-bottom: 20px;
258
- }
259
-
260
- .box {
261
- width: 60%;
262
- margin: 0 auto;
263
- }
264
-
265
- h2 {
266
- display: inline-block;
267
- color: white;
268
- margin-left: 10%;
269
- padding-bottom: 20px;
270
- border-bottom: 0.5px solid white;
271
- }
272
-
273
- p {
274
- color: white;
275
- margin-left: 10%;
276
- font-size: 1.5rem;
277
-
278
- &.doc {
279
- padding-top: 20px;
280
- color: #404040;
281
- }
282
- }
283
-
284
- ol {
285
- color: #fff;
286
- margin-left: 10%;
287
- font-size: 1.3rem;
288
- }
289
-
290
- a {
291
- color: #cd5357;
292
-
293
- &:hover {
294
- color: #404040;
295
- }
296
- }
297
- }
298
- }
299
-
300
- //**** WARNING ****/
301
- .warning {
302
- background: #f5d41b;
303
- padding: 20px 15px;
304
-
305
- .title {
306
- font-weight: 900;
307
- font-size: 1.25rem;
308
- text-transform: uppercase;
309
- color: #292929;
310
- padding-bottom: 20px;
311
- border-bottom: 0.5px solid #292929;
312
-
313
- .iL {
314
- margin-right: 15px;
315
- }
316
-
317
- .iR {
318
- margin-left: 10px;
319
- }
320
- }
321
-
322
- .info {
323
- font-size: 1.04rem;
324
- color: #292929;
325
- font-weight: 500;
326
- }
327
- }
328
-
329
- .warning-error {
330
- display: flex;
331
- flex-direction: row;
332
- flex-wrap: wrap;
333
- justify-content: center;
334
- margin-top: 10%;
335
- padding-bottom: 30px;
336
- background-color: white;
337
- -webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
338
- -moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
339
- box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
340
-
341
- .box-error {
342
- width: 100%;
343
- padding-left: 0;
344
- padding-right: 0;
345
-
346
- .yellow-box {
347
- background: #f5d41b;
348
- padding-top: 50px;
349
- padding-bottom: 20px;
350
- padding-right: 10%;
351
- padding-left: 10%;
352
-
353
- h2 {
354
- width: 100%;
355
- display: inline-block;
356
- color: #292929;
357
- padding-bottom: 20px;
358
- border-bottom: 0.5px solid #292929;
359
- }
360
-
361
- p {
362
- color: #292929;
363
- font-size: 1.3rem;
364
-
365
- &.doc {
366
- padding-top: 20px;
367
- color: #404040;
368
- }
369
- }
370
-
371
- ul {
372
- color: #292929;
373
- margin-left: 5%;
374
- font-size: 1.3rem;
375
- }
376
- }
377
-
378
- .box {
379
- padding-right: 10%;
380
- padding-left: 10%;
381
-
382
- .doc {
383
- color: #292929;
384
- font-size: 1.3rem;
385
- padding-top: 25px;
386
-
387
- a {
388
- color: #f5bc00;
389
-
390
- &:hover {
391
- color: #f5ac01;
392
- }
393
- }
394
- }
395
- }
396
- }
397
- }
398
-
399
- .pop-error {
400
- //display: block!important;
401
- position: fixed;
402
- top: 0;
403
- left: 0;
404
- width: 100%;
405
- height: 100%;
406
-
407
- .fd_Error-type {
408
- width: 100%;
409
- padding-bottom: 30px;
410
- background-color: white;
411
- -webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
412
- -moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
413
- box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
414
-
415
- .box-error {
416
- width: 100%;
417
-
418
- h2 {
419
- font-weight: 500;
420
- width: 100%;
421
-
422
- svg {
423
- margin-right: 20px;
424
- }
425
- }
426
-
427
- ul {
428
- color: #fff;
429
- margin-left: 12%;
430
-
431
- &.doc {
432
- color: #292929;
433
- }
434
- }
435
- }
436
- }
437
- }
438
- </style>
1
+ <!--
2
+ @ Description: This component is used to display error message in the application
3
+
4
+ -->
5
+
6
+ <template>
7
+ <div>
8
+ <!------------------------ ERRORS APPLICATION ------------------->
9
+ <div v-if="errorGroup === 'application'" class="fd_Error-type">
10
+ <div class="box-error">
11
+ <!--------------------------- Module --------------------->
12
+ <template v-if="errorType === 'errorModule'">
13
+ <div class="red-box">
14
+ <div class="box">
15
+ <h2>
16
+ Cette page est affichée parce que le fichier ModuleView n'existe
17
+ pas où est mal configuré
18
+ </h2>
19
+
20
+ <p>Pour la vue du Module</p>
21
+ <ol type="number">
22
+ <li>
23
+ Créez un fichier
24
+ <i>.vue</i>
25
+ avec pour nom
26
+ <strong>ModuleView.vue</strong>
27
+ dans le dossier
28
+ <strong>views</strong>
29
+ </li>
30
+
31
+ <li>
32
+ Referez-vous wnauirw à la documentation pour la création et la
33
+ configuration de la vue du Module
34
+ </li>
35
+ </ol>
36
+ </div>
37
+ </div>
38
+ <div class="box">
39
+ <p class="doc">
40
+ Visitez
41
+ <a :href="docLink" target="blank">la documentation</a>
42
+ pour plus de details ...
43
+ </p>
44
+ </div>
45
+ </template>
46
+ <!---------------------------- Menu ---------------------->
47
+ <template v-if="errorType === 'errorMenu'">
48
+ <div class="red-box">
49
+ <div class="box">
50
+ <h2>
51
+ Cette page est affichée parce que le fichier SummaryView
52
+ n'existe pas où est mal configuré
53
+ </h2>
54
+
55
+ <p>Pour la vue du Sommaire (page de MENU)</p>
56
+ <ol type="number">
57
+ <li>
58
+ Créez un fichier
59
+ <i>.vue</i>
60
+ avec pour nom
61
+ <strong>SummaryView.vue</strong>
62
+ dans le dossier
63
+ <strong>views</strong>
64
+ </li>
65
+ <li>
66
+ Referez-vous ensuite à la documentation pour la création et la
67
+ configuration de la vue du sommaire
68
+ </li>
69
+ </ol>
70
+ </div>
71
+ </div>
72
+ <div class="box">
73
+ <p class="doc">
74
+ Visitez
75
+ <a :href="docLink" target="blank">la documentation</a>
76
+ pour plus de details ...
77
+ </p>
78
+ </div>
79
+ </template>
80
+ <!---------------------------- Page ---------------------->
81
+ <template v-if="errorType === 'errorPage'">
82
+ <div class="red-box">
83
+ <div class="box">
84
+ <h2>
85
+ Cette page est affichée parce que vous n'avez pas encore de page
86
+ d'activité pour votre module.
87
+ </h2>
88
+
89
+ <p>Pour créer une page</p>
90
+ <ol type="number">
91
+ <li>
92
+ Ajoutez un dossier pour votre activité avec un nom de type
93
+ <strong>Axx</strong>
94
+ dans le dossier
95
+ <strong>module</strong>
96
+ <i>( exemple A00 )</i>
97
+ </li>
98
+ <li>
99
+ Ajoutez un fichier pour votre page avec un nom de type
100
+ <strong>Pxx.vue</strong>
101
+ dans le dossier
102
+ <strong>Axx</strong>
103
+ <i>( exemple P01.vue )</i>
104
+ </li>
105
+ <li>
106
+ Definissez le
107
+ <strong>$data</strong>
108
+ de la page
109
+ </li>
110
+ </ol>
111
+ </div>
112
+ </div>
113
+ <div class="box">
114
+ <p class="doc">
115
+ Visitez
116
+ <a :href="docLink" target="blank">la documentation</a>
117
+ pour plus de details ...
118
+ </p>
119
+ </div>
120
+ </template>
121
+ <!----------------------- Branching ---------------------->
122
+ <template v-if="errorType === 'errorMenuBranching'">
123
+ <div class="red-box">
124
+ <div class="box">
125
+ <h2>Erreur d'embranchement.</h2>
126
+
127
+ <p>
128
+ Vous ne pouvez pas avoir de pages d'embranchement(s) dans le
129
+ dossier A00
130
+ </p>
131
+ </div>
132
+ </div>
133
+ <div class="box">
134
+ <p class="doc">
135
+ Visitez
136
+ <a
137
+ :href="`https://fcaddocumentation.netlify.app/guide/structure.html#pages-d-embranchements-dans-un-dossier`"
138
+ target="blank"
139
+ >
140
+ la documentation
141
+ </a>
142
+ pour plus de details ...
143
+ </p>
144
+ </div>
145
+ </template>
146
+ <!------------------------- 404 -------------------------->
147
+ <template v-if="errorType === '404'">
148
+ <div class="red-box">
149
+ <div class="box">
150
+ <h2>404 OOPSSS!</h2>
151
+ <p>Il semble que la page que vous cherchez n'existe pas.</p>
152
+ </div>
153
+ </div>
154
+ <div class="box">
155
+ <p class="doc">
156
+ Retrourner à la
157
+ <router-link :to="{ name: 'menu' }">page d'accueil</router-link>
158
+ </p>
159
+ </div>
160
+ </template>
161
+ </div>
162
+ </div>
163
+ <!------------------- END ERRORS COMPONENTS -------------------->
164
+ <v-row v-if="errorGroup === 'component'" class="warning-error">
165
+ <v-col class="box-error">
166
+ <div class="yellow-box">
167
+ <h2>
168
+ {{ errorTitle || 'Attention erreur dans le composant' }}
169
+ </h2>
170
+ <p>{{ errorText }}</p>
171
+ <br />
172
+ <p>Veuillez corriger:</p>
173
+ <template
174
+ v-if="
175
+ errorsList.constructor == Array ||
176
+ errorsList.constructor == Object
177
+ "
178
+ >
179
+ <ul>
180
+ <li
181
+ v-for="err in errorsList"
182
+ :key="`error_type_${err}`"
183
+ v-html="err"
184
+ ></li>
185
+ </ul>
186
+ </template>
187
+ <template v-if="errorsList.constructor == String">
188
+ <ul>
189
+ <li v-html="errorsList"></li>
190
+ </ul>
191
+ </template>
192
+ </div>
193
+ <div class="box">
194
+ <p class="doc">
195
+ Visitez
196
+ <a href="https://fcaddocumentation.netlify.app/" target="blank">
197
+ la documentation
198
+ </a>
199
+ pour plus de details
200
+ </p>
201
+ </div>
202
+ </v-col>
203
+ </v-row>
204
+
205
+ <!---------------------- END ERRORS COMPONENTS ------------------->
206
+ </div>
207
+ </template>
208
+
209
+ <script>
210
+ export default {
211
+ name: 'AppBaseErrorDisplay',
212
+ props: {
213
+ errorGroup: { type: String, default: 'application' }, //group can be: application or component
214
+ errorType: { type: String, note: 'Error Message', default: '' },
215
+ errorTitle: {
216
+ type: String,
217
+ note: 'Title to display for the error',
218
+ default: ''
219
+ },
220
+ errorText: {
221
+ type: String,
222
+ note: 'text to display for the error',
223
+ default:
224
+ 'Vous avez une/des erreure(s) qui empêche(ent) le bon rendu du composant'
225
+ },
226
+ errorsList: { type: Array, default: () => [] },
227
+ docLink: {
228
+ type: String,
229
+ default: 'https://fcaddocumentation.netlify.com/guide/proceduries.html',
230
+ note: 'Documentation link'
231
+ }
232
+ }
233
+ }
234
+ </script>
235
+
236
+ <style lang="scss">
237
+ //**** DO NOT TOUCHE ****/
238
+ //**** ERROR ****/
239
+ .fd_Error-type {
240
+ display: flex;
241
+ flex-direction: row;
242
+ flex-wrap: wrap;
243
+ justify-content: center;
244
+ margin-top: 20%;
245
+ padding-bottom: 30px;
246
+ background-color: white;
247
+ -webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
248
+ -moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
249
+ box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
250
+
251
+ .box-error {
252
+ width: 100%;
253
+
254
+ .red-box {
255
+ background: #cd5356;
256
+ padding-top: 50px;
257
+ padding-bottom: 20px;
258
+ }
259
+
260
+ .box {
261
+ width: 60%;
262
+ margin: 0 auto;
263
+ }
264
+
265
+ h2 {
266
+ display: inline-block;
267
+ color: white;
268
+ margin-left: 10%;
269
+ padding-bottom: 20px;
270
+ border-bottom: 0.5px solid white;
271
+ }
272
+
273
+ p {
274
+ color: white;
275
+ margin-left: 10%;
276
+ font-size: 1.5rem;
277
+
278
+ &.doc {
279
+ padding-top: 20px;
280
+ color: #404040;
281
+ }
282
+ }
283
+
284
+ ol {
285
+ color: #fff;
286
+ margin-left: 10%;
287
+ font-size: 1.3rem;
288
+ }
289
+
290
+ a {
291
+ color: #cd5357;
292
+
293
+ &:hover {
294
+ color: #404040;
295
+ }
296
+ }
297
+ }
298
+ }
299
+
300
+ //**** WARNING ****/
301
+ .warning {
302
+ background: #f5d41b;
303
+ padding: 20px 15px;
304
+
305
+ .title {
306
+ font-weight: 900;
307
+ font-size: 1.25rem;
308
+ text-transform: uppercase;
309
+ color: #292929;
310
+ padding-bottom: 20px;
311
+ border-bottom: 0.5px solid #292929;
312
+
313
+ .iL {
314
+ margin-right: 15px;
315
+ }
316
+
317
+ .iR {
318
+ margin-left: 10px;
319
+ }
320
+ }
321
+
322
+ .info {
323
+ font-size: 1.04rem;
324
+ color: #292929;
325
+ font-weight: 500;
326
+ }
327
+ }
328
+
329
+ .warning-error {
330
+ display: flex;
331
+ flex-direction: row;
332
+ flex-wrap: wrap;
333
+ justify-content: center;
334
+ margin-top: 10%;
335
+ padding-bottom: 30px;
336
+ background-color: white;
337
+ -webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
338
+ -moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
339
+ box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
340
+
341
+ .box-error {
342
+ width: 100%;
343
+ padding-left: 0;
344
+ padding-right: 0;
345
+
346
+ .yellow-box {
347
+ background: #f5d41b;
348
+ padding-top: 50px;
349
+ padding-bottom: 20px;
350
+ padding-right: 10%;
351
+ padding-left: 10%;
352
+
353
+ h2 {
354
+ width: 100%;
355
+ display: inline-block;
356
+ color: #292929;
357
+ padding-bottom: 20px;
358
+ border-bottom: 0.5px solid #292929;
359
+ }
360
+
361
+ p {
362
+ color: #292929;
363
+ font-size: 1.3rem;
364
+
365
+ &.doc {
366
+ padding-top: 20px;
367
+ color: #404040;
368
+ }
369
+ }
370
+
371
+ ul {
372
+ color: #292929;
373
+ margin-left: 5%;
374
+ font-size: 1.3rem;
375
+ }
376
+ }
377
+
378
+ .box {
379
+ padding-right: 10%;
380
+ padding-left: 10%;
381
+
382
+ .doc {
383
+ color: #292929;
384
+ font-size: 1.3rem;
385
+ padding-top: 25px;
386
+
387
+ a {
388
+ color: #f5bc00;
389
+
390
+ &:hover {
391
+ color: #f5ac01;
392
+ }
393
+ }
394
+ }
395
+ }
396
+ }
397
+ }
398
+
399
+ .pop-error {
400
+ //display: block!important;
401
+ position: fixed;
402
+ top: 0;
403
+ left: 0;
404
+ width: 100%;
405
+ height: 100%;
406
+
407
+ .fd_Error-type {
408
+ width: 100%;
409
+ padding-bottom: 30px;
410
+ background-color: white;
411
+ -webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
412
+ -moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
413
+ box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
414
+
415
+ .box-error {
416
+ width: 100%;
417
+
418
+ h2 {
419
+ font-weight: 500;
420
+ width: 100%;
421
+
422
+ svg {
423
+ margin-right: 20px;
424
+ }
425
+ }
426
+
427
+ ul {
428
+ color: #fff;
429
+ margin-left: 12%;
430
+
431
+ &.doc {
432
+ color: #292929;
433
+ }
434
+ }
435
+ }
436
+ }
437
+ }
438
+ </style>