fcad-core-dragon 2.5.0-test.2 → 2.5.0-test.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # [2.5.0-test.3](https://git.crosemont.qc.ca/fcad/core/fcad-core-2/compare/v2.5.0-test.2...v2.5.0-test.3) (2026-06-15)
2
+
3
+
4
+ ### Features
5
+
6
+ * **fix:** correction du calcul du pourcentage de completion ([98b98ab](https://git.crosemont.qc.ca/fcad/core/fcad-core-2/commit/98b98ab6e55d15211d0bb58b7851cd63ce15ad25))
7
+
1
8
  # [2.5.0-test.2](https://git.crosemont.qc.ca/fcad/core/fcad-core-2/compare/v2.5.0-test.1...v2.5.0-test.2) (2026-06-09)
2
9
 
3
10
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fcad-core-dragon",
3
- "version": "2.5.0-test.2",
3
+ "version": "2.5.0-test.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./src/main.js",
@@ -0,0 +1,201 @@
1
+
2
+ {
3
+ "wordBank":[
4
+ {
5
+ "word": "Apple",
6
+ "categorie": ["fruit", "tech", "food"]
7
+ },
8
+ {
9
+ "word": "Orange",
10
+ "categorie": ["fruit", "color", "food"]
11
+ },
12
+ {
13
+ "word": "Mouse",
14
+ "categorie": ["animal", "computer"]
15
+ },
16
+ {
17
+ "word": "Bat",
18
+ "categorie": ["animal", "sport"]
19
+ },
20
+ {
21
+ "word": "Bank",
22
+ "categorie": ["money", "river"]
23
+ },
24
+ {
25
+ "word": "Light",
26
+ "categorie": ["physics", "lamp", "nightlife", "lightning"]
27
+ },
28
+ {
29
+ "word": "Spring",
30
+ "categorie": ["season", "object"]
31
+ },
32
+ {
33
+ "word": "Star",
34
+ "categorie": ["space", "celebrity"]
35
+ },
36
+ {
37
+ "word": "Cell",
38
+ "categorie": ["biology", "prison", "body"]
39
+ },
40
+ {
41
+ "word": "Train",
42
+ "categorie": ["transport", "action"]
43
+ },
44
+ {
45
+ "word": "Match",
46
+ "categorie": ["sport", "fire"]
47
+ },
48
+ {
49
+ "word": "Ring",
50
+ "categorie": ["jewelry", "sound"]
51
+ },
52
+ {
53
+ "word": "Rock",
54
+ "categorie": ["music", "stone", "material", "nightlife"]
55
+ },
56
+ {
57
+ "word": "Pen",
58
+ "categorie": ["writing", "animal enclosure", "tool"]
59
+ },
60
+ {
61
+ "word": "Club",
62
+ "categorie": ["sport", "nightlife"]
63
+ },
64
+ {
65
+ "word": "Glass",
66
+ "categorie": ["sport", "drinkware"]
67
+ },
68
+ {
69
+ "word": "Key",
70
+ "categorie": ["music", "lock"]
71
+ },
72
+ {
73
+ "word": "Wave",
74
+ "categorie": ["ocean", "gesture"]
75
+ },
76
+ {
77
+ "word": "File",
78
+ "categorie": ["office", "tool"]
79
+ },
80
+ {
81
+ "word": "Plate",
82
+ "categorie": ["food", "tectonic"]
83
+ },
84
+ {
85
+ "word": "Code",
86
+ "categorie": ["computer", "secret", "math", "argument"]
87
+ },
88
+ {
89
+ "word": "Bug",
90
+ "categorie": ["insect", "error", "computer"]
91
+ },
92
+ {
93
+ "word": "Jam",
94
+ "categorie": ["food", "error", "traffic"]
95
+ },
96
+ {
97
+ "word": "Nail",
98
+ "categorie": ["body", "tool", "biology"]
99
+ },
100
+ {
101
+ "word": "Watch",
102
+ "categorie": ["time", "observe"]
103
+ },
104
+ {
105
+ "word": "Park",
106
+ "categorie": ["place", "action", "nature", "wood"]
107
+ },
108
+ {
109
+ "word": "Leaf",
110
+ "categorie": ["nature", "book"]
111
+ },
112
+ {
113
+ "word": "Seal",
114
+ "categorie": ["animal", "stamp"]
115
+ },
116
+ {
117
+ "word": "Bolt",
118
+ "categorie": ["tool", "lightning"]
119
+ },
120
+ {
121
+ "word": "Can",
122
+ "categorie": ["container", "ability"]
123
+ },
124
+ {
125
+ "word": "Cross",
126
+ "categorie": ["religion", "action"]
127
+ },
128
+ {
129
+ "word": "Stick",
130
+ "categorie": ["object", "action", "tool"]
131
+ },
132
+ {
133
+ "word": "Charge",
134
+ "categorie": ["energy", "legal"]
135
+ },
136
+ {
137
+ "word": "Block",
138
+ "categorie": ["object", "obstacle"]
139
+ },
140
+ {
141
+ "word": "Draft",
142
+ "categorie": ["wind", "document"]
143
+ },
144
+ {
145
+ "word": "Board",
146
+ "categorie": ["wood", "management", "wood"]
147
+ },
148
+ {
149
+ "word": "Point",
150
+ "categorie": ["math", "argument"]
151
+ },
152
+ {
153
+ "word": "Current",
154
+ "categorie": ["electricity", "water"]
155
+ },
156
+ {
157
+ "word": "Scale",
158
+ "categorie": ["music", "size"]
159
+ },
160
+ {
161
+ "word": "Model",
162
+ "categorie": ["fashion", "example"]
163
+ },
164
+ {
165
+ "word": "Track",
166
+ "categorie": ["music", "path"]
167
+ },
168
+ {
169
+ "word": "Field",
170
+ "categorie": ["sport", "science"]
171
+ },
172
+ {
173
+ "word": "Spot",
174
+ "categorie": ["place", "stain"]
175
+ },
176
+ {
177
+ "word": "Tape",
178
+ "categorie": ["music", "adhesive"]
179
+ },
180
+ {
181
+ "word": "Trip",
182
+ "categorie": ["travel", "fall"]
183
+ },
184
+ {
185
+ "word": "Crash",
186
+ "categorie": ["accident", "computer"]
187
+ },
188
+ {
189
+ "word": "Fan",
190
+ "categorie": ["cooling", "sports"]
191
+ },
192
+ {
193
+ "word": "Brush",
194
+ "categorie": ["tool", "action"]
195
+ },
196
+ {
197
+ "word": "Screen",
198
+ "categorie": ["display", "hide"]
199
+ }
200
+ ]
201
+ }
@@ -528,7 +528,6 @@ export default {
528
528
  )
529
529
  return
530
530
 
531
-
532
531
  this.state = 'completed'
533
532
  this.userInteraction.state = this.state
534
533
  },
@@ -156,7 +156,9 @@ export default {
156
156
  completed = this.getAllCompleted[idActivity] //get all completed page for the activity
157
157
  }
158
158
 
159
- return completed.length
159
+ let noBranch = completed.filter(item => !Object.keys(item)[0].includes("_"))
160
+
161
+ return noBranch.length
160
162
  }
161
163
  },
162
164
  /**
@@ -174,10 +176,15 @@ export default {
174
176
  const allActivitiesState = JSON.parse(
175
177
  JSON.stringify(this.getAllActivitiesState)
176
178
  )
179
+
180
+ const actList = this.getAllActivities().list
181
+
177
182
  let size = allActivitiesState[activityID]
178
- ? allActivitiesState[activityID].size
183
+ ? actList.get(activityID).size
179
184
  : 0
180
185
 
186
+ // console.log(activityID,size)
187
+
181
188
  return size
182
189
  },
183
190
  createRoutes(data) {
@@ -11,7 +11,6 @@
11
11
  <div v-if="error" id="sidebar-submenu" :class="{ isOpen: isOpened }">
12
12
  <focus-trap :active="isOpened" :prevent-scroll="true">
13
13
  <div ref="target">
14
- <!-- <div class="submenu-header"> -->
15
14
  <app-base-button
16
15
  id="close-toc"
17
16
  class="btn-ghost"
@@ -22,9 +21,7 @@
22
21
  <use href="#close-square-icon" />
23
22
  </svg>
24
23
  </app-base-button>
25
- <!-- </div> -->
26
24
 
27
- <!-- <div class="submenu-content"> -->
28
25
  <p class="t-act" v-html="`${title}`"></p>
29
26
  <div class="box-prog-act">
30
27
  <p>
@@ -100,6 +97,7 @@ export default {
100
97
  'getAnchorsForActivity',
101
98
  'getBifChoice',
102
99
  'getAllCompleted',
100
+ 'getAllActivities',
103
101
  'getAllActivitiesState'
104
102
  ])
105
103
  },
@@ -249,15 +247,20 @@ export default {
249
247
  completed = this.getAllCompleted[idActivity] //get all completed page for the activity
250
248
  }
251
249
 
250
+ let noBranch = completed.filter(item => !Object.keys(item)[0].includes("_"))
251
+
252
252
  const allActivitiesState = JSON.parse(
253
253
  JSON.stringify(this.getAllActivitiesState)
254
254
  )
255
+
256
+ const actList = this.getAllActivities().list
257
+
255
258
  let size = allActivitiesState[idActivity]
256
- ? allActivitiesState[idActivity].size
259
+ ? actList.get(idActivity).size
257
260
  : 0
258
261
 
259
262
  // return pourcent of activity completion
260
- this.actProgress = `${Math.round((completed.length * 100) / size)} %`
263
+ this.actProgress = `${Math.round((noBranch.length * 100) / size)} %`
261
264
  }
262
265
  },
263
266
  close() {
@@ -284,12 +287,10 @@ export default {
284
287
  let tabcomplete = []
285
288
 
286
289
  if (nextIndex < menuInfo[this.activity].anchors.length) {
287
- //console.log('dans le premier if')
288
290
  nextSec = menuInfo[this.activity].anchors[nextIndex].pageRef
289
291
  }
290
292
 
291
293
  if (nextSec != undefined) {
292
- // console.log('dans le Deuxieme if')
293
294
  nb = parseInt(nextSec.substring(1))
294
295
 
295
296
  while (nb > parseInt(curSec.substring(1))) {
@@ -328,6 +329,7 @@ export default {
328
329
  tabcomplete.push(w[0])
329
330
  })
330
331
 
332
+ //console.log(completeActPage)
331
333
  const isSubset = (array1, array2) =>
332
334
  array2.every((element) => array1.includes(element))
333
335
 
package/src/main.js CHANGED
@@ -9,6 +9,7 @@ import AppBaseErrorDisplay from './components/AppBaseErrorDisplay.vue'
9
9
  import AppCompAudio from './components/AppCompAudio.vue'
10
10
  import AppCompBranchButtons from './components/AppCompBranchButtons.vue'
11
11
  import AppCompCarousel from './components/AppCompCarousel.vue'
12
+ //import AppCompCodeName from './components/AppCompCodeName.vue'
12
13
  import AppCompViewDisplay from './components/AppCompViewDisplay.vue'
13
14
  import AppCompTableOfContent from './components/AppCompTableOfContent.vue'
14
15
  import AppCompMenu from './components/AppCompMenu.vue'
@@ -80,6 +81,7 @@ export default {
80
81
  app.component('AppCompAudioPlayer', AppCompAudio)
81
82
  app.component('AppCompBranchButtons', AppCompBranchButtons)
82
83
  app.component('AppCompCarousel', AppCompCarousel)
84
+ //app.component('AppCompCodeName', AppCompCodeName)
83
85
  app.component('AppCompMenuItem', AppCompMenuItem)
84
86
  app.component('AppCompJauge', AppCompJauge)
85
87
  app.component('AppCompTableOfContent', AppCompTableOfContent)