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

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 (118) hide show
  1. package/.editorconfig +33 -33
  2. package/.eslintignore +29 -29
  3. package/{.eslintrc.js → .eslintrc.cjs} +81 -86
  4. package/CHANGELOG +364 -364
  5. package/README.md +71 -71
  6. package/bk.scss +117 -0
  7. package/package.json +61 -63
  8. package/src/$locales/en.json +143 -179
  9. package/src/$locales/fr.json +105 -181
  10. package/src/assets/data/onboardingMessages.json +47 -47
  11. package/src/components/AppBase.vue +1054 -614
  12. package/src/components/AppBaseButton.vue +87 -63
  13. package/src/components/AppBaseErrorDisplay.vue +438 -420
  14. package/src/components/AppBaseFlipCard.vue +84 -83
  15. package/src/components/AppBaseModule.vue +1673 -1842
  16. package/src/components/AppBasePage.vue +779 -312
  17. package/src/components/AppBasePopover.vue +41 -0
  18. package/src/components/AppCompAudio.vue +234 -0
  19. package/src/components/AppCompBranchButtons.vue +552 -582
  20. package/src/components/AppCompButtonProgress.vue +126 -147
  21. package/src/components/AppCompCarousel.vue +298 -192
  22. package/src/components/AppCompInputCheckBoxNext.vue +195 -0
  23. package/src/components/AppCompInputDropdownNext.vue +159 -0
  24. package/src/components/AppCompInputRadioNext.vue +152 -0
  25. package/src/components/{AppCompInputTextBox.vue → AppCompInputTextNext.vue} +106 -91
  26. package/src/components/AppCompInputTextTableNext.vue +141 -0
  27. package/src/components/AppCompInputTextToFillDropdownNext.vue +230 -0
  28. package/src/components/{AppCompInputTextToFillText.vue → AppCompInputTextToFillNext.vue} +171 -164
  29. package/src/components/AppCompJauge.vue +74 -55
  30. package/src/components/AppCompMenu.vue +413 -209
  31. package/src/components/AppCompMenuItem.vue +228 -174
  32. package/src/components/AppCompNavigation.vue +960 -949
  33. package/src/components/AppCompNoteCall.vue +133 -126
  34. package/src/components/AppCompNoteCredit.vue +292 -164
  35. package/src/components/AppCompPlayBar.vue +1218 -1319
  36. package/src/components/AppCompPlayBarNext.vue +2052 -0
  37. package/src/components/AppCompPlayBarProgress.vue +82 -0
  38. package/src/components/AppCompPopUpNext.vue +503 -0
  39. package/src/components/{AppCompQuiz.vue → AppCompQuizNext.vue} +2904 -2989
  40. package/src/components/AppCompQuizRecall.vue +276 -250
  41. package/src/components/AppCompSVGNext.vue +347 -0
  42. package/src/components/AppCompSettingsMenu.vue +172 -171
  43. package/src/components/AppCompTableOfContent.vue +387 -264
  44. package/src/components/AppCompTranscript.vue +24 -19
  45. package/src/components/AppCompVideoPlayer.vue +368 -336
  46. package/src/components/AppCompViewDisplay.vue +6 -6
  47. package/src/components/BaseModule.vue +72 -67
  48. package/src/composables/useQuiz.js +206 -0
  49. package/src/externalComps/ModuleView.vue +22 -0
  50. package/src/externalComps/SummaryView.vue +91 -0
  51. package/src/main.js +272 -227
  52. package/src/mixins/$mediaMixins.js +819 -0
  53. package/src/mixins/timerMixin.js +155 -156
  54. package/src/module/stores/appStore.js +893 -0
  55. package/src/module/xapi/ADL.js +376 -339
  56. package/src/module/xapi/Crypto/Hasher.js +241 -241
  57. package/src/module/xapi/Crypto/WordArray.js +278 -278
  58. package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +103 -103
  59. package/src/module/xapi/Crypto/algorithms/C_algo.js +315 -319
  60. package/src/module/xapi/Crypto/algorithms/HMAC.js +9 -9
  61. package/src/module/xapi/Crypto/algorithms/SHA1.js +9 -9
  62. package/src/module/xapi/Crypto/encoders/Base.js +105 -105
  63. package/src/module/xapi/Crypto/encoders/Base64.js +99 -99
  64. package/src/module/xapi/Crypto/encoders/Hex.js +61 -61
  65. package/src/module/xapi/Crypto/encoders/Latin1.js +61 -61
  66. package/src/module/xapi/Crypto/encoders/Utf8.js +45 -45
  67. package/src/module/xapi/Crypto/index.js +53 -53
  68. package/src/module/xapi/Statement/activity.js +47 -47
  69. package/src/module/xapi/Statement/agent.js +55 -55
  70. package/src/module/xapi/Statement/group.js +26 -26
  71. package/src/module/xapi/Statement/index.js +259 -259
  72. package/src/module/xapi/Statement/statement.js +253 -253
  73. package/src/module/xapi/Statement/statementRef.js +23 -23
  74. package/src/module/xapi/Statement/substatement.js +22 -22
  75. package/src/module/xapi/Statement/verb.js +36 -36
  76. package/src/module/xapi/activitytypes.js +17 -17
  77. package/src/module/xapi/launch.js +157 -157
  78. package/src/module/xapi/utils.js +167 -167
  79. package/src/module/xapi/verbs.js +294 -294
  80. package/src/module/xapi/wrapper.js +1963 -1890
  81. package/src/module/xapi/xapiStatement.js +444 -444
  82. package/src/plugins/bus.js +8 -3
  83. package/src/plugins/gsap.js +14 -17
  84. package/src/plugins/helper.js +308 -295
  85. package/src/plugins/i18n.js +44 -31
  86. package/src/plugins/idb.js +219 -212
  87. package/src/plugins/save.js +37 -37
  88. package/src/plugins/scorm.js +287 -287
  89. package/src/plugins/xapi.js +11 -11
  90. package/src/public/index.html +33 -21
  91. package/src/router/index.js +43 -41
  92. package/src/router/routes.js +312 -337
  93. package/src/shared/generalfuncs.js +210 -188
  94. package/src/shared/validators.js +1069 -249
  95. package/vite.config.js +27 -0
  96. package/.prettierrc.js +0 -5
  97. package/babel.config.js +0 -3
  98. package/src/components/AppBaseDragChoice.vue +0 -91
  99. package/src/components/AppBaseDropZone.vue +0 -112
  100. package/src/components/AppCompBif.vue +0 -120
  101. package/src/components/AppCompDragAndDrop.vue +0 -339
  102. package/src/components/AppCompInputAssociation.vue +0 -332
  103. package/src/components/AppCompInputCheckBox.vue +0 -227
  104. package/src/components/AppCompInputDropdown.vue +0 -184
  105. package/src/components/AppCompInputRadio.vue +0 -169
  106. package/src/components/AppCompInputTextTable.vue +0 -155
  107. package/src/components/AppCompInputTextToFillDropdown.vue +0 -255
  108. package/src/components/AppCompMediaPlayer.vue +0 -397
  109. package/src/components/AppCompPopUp.vue +0 -522
  110. package/src/components/AppCompPopover.vue +0 -27
  111. package/src/components/AppCompSVG.vue +0 -309
  112. package/src/mixins/$pageMixins.js +0 -459
  113. package/src/mixins/$quizMixins.js +0 -456
  114. package/src/module/store.js +0 -895
  115. package/src/plugins/timeManager.js +0 -77
  116. package/src/routes_bckp.js +0 -313
  117. package/src/routes_static.js +0 -344
  118. package/vue.config.js +0 -83
@@ -1,420 +1,438 @@
1
- <!--
2
- @ Description: This component is used to display error message in the application
3
-
4
- -->
5
-
6
- <template>
7
- <div class="fd_Error-message">
8
- <div v-show="errorMessage === 'errorModule'" class="box-error">
9
- <div class="red-box">
10
- <div class="box">
11
- <h2>
12
- <b-icon icon="exclamation-triangle" />
13
- Cette page est affichée parce que vous n'avez pas encore créé le
14
- module.
15
- </h2>
16
- <br />
17
- <p>
18
- Pour créer le module
19
- <br />
20
- </p>
21
- <ol type="number">
22
- <li>
23
- Ajoutez un fichier
24
- <strong>module.vue</strong>
25
- dans le dossier
26
- <strong>views</strong>
27
- </li>
28
- <li>
29
- Définissez le
30
- <strong>$data</strong>
31
- du module.vue
32
- </li>
33
- </ol>
34
- </div>
35
- </div>
36
- <div class="box">
37
- <p class="doc">
38
- Visitez
39
- <a :href="docLink" target="blank">la documentation</a>
40
- pour plus de details
41
- </p>
42
- </div>
43
- </div>
44
- <!---------------------------------------------------->
45
- <div v-if="errorMessage === 'errorMenu'" class="box-error">
46
- <div class="red-box">
47
- <div class="box">
48
- <h2>
49
- <b-icon icon="exclamation-triangle" />
50
- Cette page est affichée parce que vous n'avez pas encore de page de
51
- MENU pour votre activité
52
- </h2>
53
-
54
- <p>Pour créer la PAGE DE MENU</p>
55
- <ol type="number">
56
- <li>
57
- Ajoutez un dossier avec le nom
58
- <strong>A00</strong>
59
- dans le dossier
60
- <strong>module</strong>
61
- </li>
62
- <li>
63
- Ajoutez un fichier pour votre page de MENU avec un nom de type
64
- <strong>Pxx.vue</strong>
65
- dans le dossier
66
- <strong>A00</strong>
67
- <i>( exemple P01.vue )</i>
68
- </li>
69
- <li>
70
- Dans le
71
- <strong>$data</strong>
72
- de ce la page, mettez la valeur de la variable
73
- <strong>type</strong>
74
- à
75
- <strong>"pg_menu"</strong>
76
- </li>
77
- </ol>
78
- </div>
79
- </div>
80
- <div class="box">
81
- <p class="doc">
82
- Visitez
83
- <a :href="docLink" target="blank">la documentation</a>
84
- pour plus de details ...
85
- </p>
86
- </div>
87
- </div>
88
- <!---------------------------------------------------->
89
- <div v-if="errorMessage === 'errorPage'" class="box-error">
90
- <div class="red-box">
91
- <div class="box">
92
- <h2>
93
- <b-icon icon="exclamation-triangle" />
94
- Cette page est affichée parce que vous n'avez pas encore de page
95
- d'activité pour votre module.
96
- </h2>
97
-
98
- <p>Pour créer une page</p>
99
- <ol type="number">
100
- <li>
101
- Ajoutez un dossier pour votre activité avec un nom de type
102
- <strong>Axx</strong>
103
- dans le dossier
104
- <strong>module</strong>
105
- <i>( exemple A00 )</i>
106
- </li>
107
- <li>
108
- Ajoutez un fichier pour votre page avec un nom de type
109
- <strong>Pxx.vue</strong>
110
- dans le dossier
111
- <strong>Axx</strong>
112
- <i>( exemple P01.vue )</i>
113
- </li>
114
- <li>
115
- Definissez le
116
- <strong>$data</strong>
117
- de la page
118
- </li>
119
- </ol>
120
- </div>
121
- </div>
122
- <div class="box">
123
- <p class="doc">
124
- Visitez
125
- <a :href="docLink" target="blank">la documentation</a>
126
- pour plus de details ...
127
- </p>
128
- </div>
129
- </div>
130
- <div v-if="errorMessage === 'errorMenuBranching'" class="box-error">
131
- <div class="red-box">
132
- <div class="box">
133
- <h2>
134
- <b-icon icon="exclamation-triangle" />
135
- Erreur d'embranchement.
136
- </h2>
137
-
138
- <p>
139
- Vous ne pouvez pas avoir de pages d'embranchement(s) dans le dossier
140
- A00
141
- </p>
142
- </div>
143
- </div>
144
- <div class="box">
145
- <p class="doc">
146
- Visitez
147
- <a
148
- :href="
149
- `https://fcaddocumentation.netlify.app/guide/structure.html#pages-d-embranchements-dans-un-dossier`
150
- "
151
- target="blank"
152
- >
153
- la documentation
154
- </a>
155
- pour plus de details ...
156
- </p>
157
- </div>
158
- </div>
159
- <div v-if="errorMessage === '404'" class="box-error">
160
- <div class="red-box">
161
- <div class="box">
162
- <h2>
163
- <b-icon icon="exclamation-triangle" />
164
- 404 OOPSSS!
165
- </h2>
166
- <p>Il semble que la page que vous cherchez n'existe pas.</p>
167
- </div>
168
- </div>
169
- <div class="box">
170
- <p class="doc">
171
- Retrourner à la
172
- <router-link :to="{ name: 'menu' }">
173
- page d'accueil
174
- </router-link>
175
- </p>
176
- </div>
177
- </div>
178
- <div v-if="errorsList.length > 0" class="box-error">
179
- <div class="red-box">
180
- <div class="box">
181
- <h2>
182
- <b-icon icon="exclamation-triangle" />
183
- Error: Creation de POPUP!
184
- </h2>
185
- <ul>
186
- <li v-for="(error, index) of errorsList" :key="`${error}_${index}`">
187
- {{ error }}
188
- </li>
189
- </ul>
190
- </div>
191
- </div>
192
- <div class="box">
193
- <p class="doc">
194
- Visitez
195
- <a :href="docLink" target="blank">la documentation</a>
196
- pour plus de details ...
197
- </p>
198
- </div>
199
- </div>
200
- </div>
201
- </template>
202
-
203
- <script>
204
- export default {
205
- name: 'AppBaseErrorDisplay',
206
- props: {
207
- errorMessage: { type: String, note: 'Error Message', default: '' },
208
- docLink: {
209
- type: String,
210
- default: 'https://fcaddocumentation.netlify.com/guide/proceduries.html',
211
- note: 'Documentation link'
212
- },
213
- errorsList: { type: Array, default: () => [] }
214
- }
215
- }
216
- </script>
217
-
218
- <style lang="scss">
219
- //**** DO NOT TOUCHE ****/
220
- //**** ERROR ****/
221
- .fd_Error-message {
222
- display: flex;
223
- flex-direction: row;
224
- flex-wrap: wrap;
225
- justify-content: center;
226
- margin-top: 20%;
227
- padding-bottom: 30px;
228
- background-color: white;
229
- -webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
230
- -moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
231
- box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
232
-
233
- .box-error {
234
- width: 100%;
235
-
236
- .red-box {
237
- background: #cd5356;
238
- padding-top: 50px;
239
- padding-bottom: 20px;
240
- }
241
-
242
- .box {
243
- width: 60%;
244
- margin: 0 auto;
245
- }
246
-
247
- h2 {
248
- display: inline-block;
249
- color: white;
250
- margin-left: 10%;
251
- padding-bottom: 20px;
252
- border-bottom: 0.5px solid white;
253
- }
254
-
255
- p {
256
- color: white;
257
- margin-left: 10%;
258
- font-size: 1.5rem;
259
-
260
- &.doc {
261
- padding-top: 20px;
262
- color: #404040;
263
- }
264
- }
265
-
266
- ol {
267
- color: #fff;
268
- margin-left: 10%;
269
- font-size: 1.3rem;
270
- }
271
-
272
- a {
273
- color: #cd5357;
274
-
275
- &:hover {
276
- color: #404040;
277
- }
278
- }
279
- }
280
- }
281
-
282
- //**** WARNING ****/
283
- .warning {
284
- background: #f5d41b;
285
- padding: 20px 15px;
286
-
287
- .title {
288
- font-weight: 900;
289
- font-size: 1.25rem;
290
- text-transform: uppercase;
291
- color: #292929;
292
- padding-bottom: 20px;
293
- border-bottom: 0.5px solid #292929;
294
-
295
- .iL {
296
- margin-right: 15px;
297
- }
298
-
299
- .iR {
300
- margin-left: 10px;
301
- }
302
- }
303
-
304
- .info {
305
- font-size: 1.04rem;
306
- color: #292929;
307
- font-weight: 500;
308
- }
309
- }
310
-
311
- .warning-error {
312
- display: flex;
313
- flex-direction: row;
314
- flex-wrap: wrap;
315
- justify-content: center;
316
- margin-top: 10%;
317
- padding-bottom: 30px;
318
- background-color: white;
319
- -webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
320
- -moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
321
- box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
322
-
323
- .box-error {
324
- width: 100%;
325
- padding-left: 0;
326
- padding-right: 0;
327
-
328
- .yellow-box {
329
- background: #f5d41b;
330
- padding-top: 50px;
331
- padding-bottom: 20px;
332
- padding-right: 10%;
333
- padding-left: 10%;
334
-
335
- h2 {
336
- width: 100%;
337
- display: inline-block;
338
- color: #292929;
339
- padding-bottom: 20px;
340
- border-bottom: 0.5px solid #292929;
341
- }
342
-
343
- p {
344
- color: #292929;
345
- font-size: 1.3rem;
346
-
347
- &.doc {
348
- padding-top: 20px;
349
- color: #404040;
350
- }
351
- }
352
-
353
- ul {
354
- color: #292929;
355
- margin-left: 5%;
356
- font-size: 1.3rem;
357
- }
358
- }
359
-
360
- .box {
361
- padding-right: 10%;
362
- padding-left: 10%;
363
-
364
- .doc {
365
- color: #292929;
366
- font-size: 1.3rem;
367
- padding-top: 25px;
368
-
369
- a {
370
- color: #f5bc00;
371
-
372
- &:hover {
373
- color: #f5ac01;
374
- }
375
- }
376
- }
377
- }
378
- }
379
- }
380
-
381
- .pop-error {
382
- //display: block!important;
383
- position: fixed;
384
- top: 0;
385
- left: 0;
386
- width: 100%;
387
- height: 100%;
388
-
389
- .fd_Error-message {
390
- width: 100%;
391
- padding-bottom: 30px;
392
- background-color: white;
393
- -webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
394
- -moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
395
- box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
396
-
397
- .box-error {
398
- width: 100%;
399
-
400
- h2 {
401
- font-weight: 500;
402
- width: 100%;
403
-
404
- svg {
405
- margin-right: 20px;
406
- }
407
- }
408
-
409
- ul {
410
- color: #fff;
411
- margin-left: 12%;
412
-
413
- &.doc {
414
- color: #292929;
415
- }
416
- }
417
- }
418
- }
419
- }
420
- </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>