@windward/games 0.0.9 → 0.1.0
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/components/content/CrudTable.vue +2 -2
- package/components/content/blocks/crosswordPuzzle/CrosswordClues.vue +4 -2
- package/components/content/blocks/crosswordPuzzle/CrosswordPuzzle.vue +14 -12
- package/components/content/blocks/dragDrop/BucketGame.vue +54 -101
- package/components/content/blocks/dragDrop/SortingGame.vue +47 -33
- package/components/content/blocks/flashcards/CardFace.vue +38 -39
- package/components/content/blocks/flashcards/Flashcard.vue +109 -28
- package/components/content/blocks/flashcards/FlashcardSlides.vue +3 -2
- package/components/content/blocks/matchingGame/MatchingGame.vue +105 -61
- package/components/content/blocks/multipleChoice/MultipleChoice.vue +186 -225
- package/components/content/blocks/multipleChoice/QuestionDialog.vue +7 -7
- package/components/content/blocks/quizshowGame/AnswerPanel.vue +31 -24
- package/components/content/blocks/quizshowGame/Gridview.vue +20 -24
- package/components/content/blocks/quizshowGame/QuizShow.vue +22 -9
- package/components/content/blocks/quizshowGame/feedbackIcons.vue +4 -2
- package/components/content/blocks/sevenStrikes/SevenStikes.vue +153 -108
- package/components/content/blocks/sevenStrikes/keyboard.vue +9 -2
- package/components/content/blocks/slideshow/SlideShow.vue +5 -3
- package/components/content/blocks/wordJumble/Jumble.vue +4 -4
- package/components/content/blocks/wordJumble/WordJumble.vue +128 -62
- package/components/settings/BucketGameSettingsManager.vue +185 -359
- package/components/settings/CrosswordPuzzleSettingsManager.vue +114 -181
- package/components/settings/FlashCardSlidesManager.vue +323 -419
- package/components/settings/MatchingGameManager.vue +357 -618
- package/components/settings/MultipleChoiceSettingsManager.vue +130 -140
- package/components/settings/QuizShowSettingsManager.vue +17 -17
- package/components/settings/SevenStrikesSettingsManager.vue +131 -193
- package/components/settings/SlideShowManager.vue +91 -129
- package/components/settings/SortingGameSettingsManager.vue +41 -153
- package/components/settings/WordJumbleSettingsManager.vue +84 -150
- package/i18n/en-US/components/content/blocks/bucket_game.ts +1 -0
- package/i18n/en-US/components/content/blocks/flashcard.ts +3 -0
- package/i18n/en-US/components/content/blocks/word_jumble.ts +2 -0
- package/i18n/en-US/components/settings/bucket_game.ts +3 -2
- package/i18n/en-US/components/settings/flashcard.ts +1 -0
- package/i18n/en-US/components/settings/matching_game.ts +1 -1
- package/i18n/en-US/components/settings/quizshow_game.ts +1 -1
- package/i18n/en-US/components/settings/seven_strikes.ts +1 -1
- package/i18n/en-US/components/settings/slideshow.ts +2 -0
- package/i18n/en-US/index.ts +2 -1
- package/i18n/es-ES/components/content/blocks/bucket_game.ts +40 -0
- package/i18n/es-ES/components/content/blocks/crossword.ts +25 -0
- package/i18n/es-ES/components/content/blocks/flashcard.ts +8 -0
- package/i18n/es-ES/components/content/blocks/index.ts +23 -0
- package/i18n/es-ES/components/content/blocks/matching_game.ts +26 -0
- package/i18n/es-ES/components/content/blocks/multiple_choice.ts +9 -0
- package/i18n/es-ES/components/content/blocks/quizshow_game.ts +35 -0
- package/i18n/es-ES/components/content/blocks/seven_strikes.ts +6 -0
- package/i18n/es-ES/components/content/blocks/slideshow.ts +13 -0
- package/i18n/es-ES/components/content/blocks/sorting_game.ts +5 -0
- package/i18n/es-ES/components/content/blocks/word_jumble.ts +11 -0
- package/i18n/es-ES/components/content/crud_table.ts +6 -0
- package/i18n/es-ES/components/content/index.ts +7 -0
- package/i18n/es-ES/components/index.ts +9 -0
- package/i18n/es-ES/components/navigation/index.ts +5 -0
- package/i18n/es-ES/components/settings/bucket_game.ts +39 -0
- package/i18n/es-ES/components/settings/crossword.ts +7 -0
- package/i18n/es-ES/components/settings/flashcard.ts +29 -0
- package/i18n/es-ES/components/settings/index.ts +23 -0
- package/i18n/es-ES/components/settings/matching_game.ts +15 -0
- package/i18n/es-ES/components/settings/multiple_choice.ts +17 -0
- package/i18n/es-ES/components/settings/quizshow_game.ts +20 -0
- package/i18n/es-ES/components/settings/seven_strikes.ts +8 -0
- package/i18n/es-ES/components/settings/slideshow.ts +13 -0
- package/i18n/es-ES/components/settings/sorting_game.ts +5 -0
- package/i18n/es-ES/components/settings/word_jumble.ts +11 -0
- package/i18n/es-ES/index.ts +16 -0
- package/i18n/es-ES/modules/index.ts +5 -0
- package/i18n/es-ES/pages/index.ts +5 -0
- package/i18n/es-ES/shared/content_blocks.ts +18 -0
- package/i18n/es-ES/shared/index.ts +7 -0
- package/i18n/es-ES/shared/settings.ts +14 -0
- package/i18n/index.ts +11 -0
- package/i18n/sv-SE/components/content/blocks/bucket_game.ts +40 -0
- package/i18n/sv-SE/components/content/blocks/crossword.ts +20 -0
- package/i18n/sv-SE/components/content/blocks/flashcard.ts +8 -0
- package/i18n/sv-SE/components/content/blocks/index.ts +23 -0
- package/i18n/sv-SE/components/content/blocks/matching_game.ts +25 -0
- package/i18n/sv-SE/components/content/blocks/multiple_choice.ts +9 -0
- package/i18n/sv-SE/components/content/blocks/quizshow_game.ts +35 -0
- package/i18n/sv-SE/components/content/blocks/seven_strikes.ts +6 -0
- package/i18n/sv-SE/components/content/blocks/slideshow.ts +13 -0
- package/i18n/sv-SE/components/content/blocks/sorting_game.ts +5 -0
- package/i18n/sv-SE/components/content/blocks/word_jumble.ts +11 -0
- package/i18n/sv-SE/components/content/crud_table.ts +6 -0
- package/i18n/sv-SE/components/content/index.ts +7 -0
- package/i18n/sv-SE/components/index.ts +9 -0
- package/i18n/sv-SE/components/navigation/index.ts +5 -0
- package/i18n/sv-SE/components/settings/bucket_game.ts +38 -0
- package/i18n/sv-SE/components/settings/crossword.ts +7 -0
- package/i18n/sv-SE/components/settings/flashcard.ts +29 -0
- package/i18n/sv-SE/components/settings/index.ts +23 -0
- package/i18n/sv-SE/components/settings/matching_game.ts +15 -0
- package/i18n/sv-SE/components/settings/multiple_choice.ts +16 -0
- package/i18n/sv-SE/components/settings/quizshow_game.ts +20 -0
- package/i18n/sv-SE/components/settings/seven_strikes.ts +8 -0
- package/i18n/sv-SE/components/settings/slideshow.ts +13 -0
- package/i18n/sv-SE/components/settings/sorting_game.ts +5 -0
- package/i18n/sv-SE/components/settings/word_jumble.ts +11 -0
- package/i18n/sv-SE/index.ts +16 -0
- package/i18n/sv-SE/modules/index.ts +5 -0
- package/i18n/sv-SE/pages/index.ts +5 -0
- package/i18n/sv-SE/shared/content_blocks.ts +18 -0
- package/i18n/sv-SE/shared/index.ts +7 -0
- package/i18n/sv-SE/shared/settings.ts +14 -0
- package/package.json +1 -1
- package/plugin.js +33 -34
- package/test/Feature/LocaleKeys.spec.js +11 -0
- package/test/__mocks__/componentsMock.js +12 -0
- package/test/__mocks__/fileMock.js +1 -0
- package/test/__mocks__/modelMock.js +88 -0
- package/test/__mocks__/styleMock.js +1 -0
- package/test/blocks/crossword/CrosswordPuzzle.spec.js +1 -1
- package/test/blocks/dragDrop/BucketGame.spec.js +1 -1
- package/test/blocks/dragDrop/SortingGame.spec.js +1 -1
- package/test/blocks/flashcards/CardFace.spec.js +1 -1
- package/test/blocks/flashcards/FlashCardSlides.spec.js +1 -1
- package/test/blocks/flashcards/Flashcard.spec.js +1 -1
- package/test/blocks/matchingGame/MatchingGame.spec.js +1 -1
- package/test/blocks/multipleChoice/MultipleChoice.spec.js +1 -1
- package/test/blocks/multipleChoice/QuestionDialog.spec.js +1 -1
- package/test/blocks/quizShow/quizShow.spec.js +1 -1
- package/test/blocks/sevenStrikes/sevenStrikes.spec.js +1 -1
- package/test/blocks/slideshow/slideshow.spec.js +1 -1
- package/test/blocks/wordJumble/Jumble.spec.js +1 -1
- package/test/blocks/wordJumble/WordJumble.spec.js +1 -1
- package/test/mocks.js +8 -2
- package/test/settings/BucketGameManager.spec.js +4 -4
- package/test/settings/CrosswordPuzzleManager.spec.js +6 -11
- package/test/settings/FlashCardSlidesManager.spec.js +1 -1
- package/test/settings/MatchingGameManager.spec.js +1 -1
- package/test/settings/MultipleChoiceGameManager.spec.js +1 -1
- package/test/settings/SevenStrikesManager.spec.js +1 -1
- package/test/settings/SlideShowManager.spec.js +1 -1
- package/test/settings/SortingGameManager.spec.js +1 -1
- package/test/settings/WordJumbleManager.spec.js +1 -4
- package/i18n/en-US.ts +0 -5
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
2
|
+
<div>
|
|
3
3
|
<div>
|
|
4
4
|
<h3
|
|
5
5
|
:aria-label="
|
|
6
6
|
$t(
|
|
7
|
-
'
|
|
7
|
+
'windward.games.components.content.blocks.matching_game.match_game_title'
|
|
8
8
|
)
|
|
9
9
|
"
|
|
10
10
|
tabindex="0"
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
<p tabindex="0">
|
|
19
19
|
{{
|
|
20
20
|
$t(
|
|
21
|
-
'
|
|
21
|
+
'windward.games.components.content.blocks.matching_game.description'
|
|
22
22
|
)
|
|
23
23
|
}}
|
|
24
24
|
</p>
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
feedback
|
|
32
32
|
? feedback
|
|
33
33
|
: $t(
|
|
34
|
-
'
|
|
34
|
+
'windward.games.components.content.blocks.bucket_game.form.feedback.feedback_here'
|
|
35
35
|
)
|
|
36
36
|
}}</v-col>
|
|
37
37
|
<v-col class="d-flex justify-end pl-4">
|
|
@@ -40,8 +40,16 @@
|
|
|
40
40
|
class="success mr-5"
|
|
41
41
|
@click="onContinueGame"
|
|
42
42
|
>{{ $t('shared.forms.continue') }}
|
|
43
|
-
</v-btn
|
|
44
|
-
|
|
43
|
+
</v-btn>
|
|
44
|
+
<v-container
|
|
45
|
+
v-if="status === 'errorOutline'"
|
|
46
|
+
class="d-flex justify-end"
|
|
47
|
+
@click="onExitFeedback"
|
|
48
|
+
><v-icon class="icon--error"
|
|
49
|
+
>mdi-close-circle</v-icon
|
|
50
|
+
>
|
|
51
|
+
</v-container>
|
|
52
|
+
</v-col>
|
|
45
53
|
</v-row>
|
|
46
54
|
<br />
|
|
47
55
|
</v-container>
|
|
@@ -49,8 +57,8 @@
|
|
|
49
57
|
<v-container>
|
|
50
58
|
<v-row>
|
|
51
59
|
<draggable
|
|
52
|
-
class="d-flex justify-space-between flex-wrap col-md-12"
|
|
53
60
|
v-bind="dragOptions"
|
|
61
|
+
class="d-flex justify-space-between flex-wrap col-md-12"
|
|
54
62
|
:list="block.metadata.config.answerObjects"
|
|
55
63
|
:disabled="!allowDrag"
|
|
56
64
|
:group="{
|
|
@@ -69,7 +77,7 @@
|
|
|
69
77
|
tile
|
|
70
78
|
color="primary"
|
|
71
79
|
>
|
|
72
|
-
<v-icon>mdi-
|
|
80
|
+
<v-icon>mdi-drag-vertical</v-icon>
|
|
73
81
|
<span>
|
|
74
82
|
{{ answer.display }}
|
|
75
83
|
</span>
|
|
@@ -77,8 +85,8 @@
|
|
|
77
85
|
</draggable>
|
|
78
86
|
</v-row>
|
|
79
87
|
<v-row
|
|
80
|
-
class="d-flex flex-wrap flex-row justify-center flex-fill"
|
|
81
88
|
v-if="render"
|
|
89
|
+
class="d-flex flex-wrap flex-row justify-center flex-fill"
|
|
82
90
|
>
|
|
83
91
|
<v-row align="center" class="col-md-12">
|
|
84
92
|
<v-card
|
|
@@ -154,17 +162,17 @@
|
|
|
154
162
|
</v-row>
|
|
155
163
|
</v-row>
|
|
156
164
|
<v-row
|
|
157
|
-
class="d-flex flex-wrap flex-row justify-center flex-fill"
|
|
158
165
|
v-if="
|
|
159
166
|
!render && block.metadata.config.prompts.length > 0
|
|
160
167
|
"
|
|
168
|
+
class="d-flex flex-wrap flex-row justify-center flex-fill"
|
|
161
169
|
>
|
|
162
170
|
<v-row align="center" class="col-md-12">
|
|
163
171
|
<v-card
|
|
164
172
|
v-if="
|
|
165
173
|
!block.metadata.config.prompts[
|
|
166
174
|
startingIndex
|
|
167
|
-
][
|
|
175
|
+
][startingIndex].toggle
|
|
168
176
|
"
|
|
169
177
|
class="pa-2 flex-fill bucket"
|
|
170
178
|
min-height="5em"
|
|
@@ -174,13 +182,8 @@
|
|
|
174
182
|
>
|
|
175
183
|
<v-card-text class="text-center">
|
|
176
184
|
<draggable
|
|
177
|
-
class="dragArea list-group"
|
|
178
|
-
:key="
|
|
179
|
-
block.metadata.config.prompts[
|
|
180
|
-
startingIndex
|
|
181
|
-
]['prompt']
|
|
182
|
-
"
|
|
183
185
|
v-bind="dragOptions"
|
|
186
|
+
class="dragArea list-group"
|
|
184
187
|
disabled
|
|
185
188
|
group="people"
|
|
186
189
|
tabindex="0"
|
|
@@ -192,7 +195,7 @@
|
|
|
192
195
|
{{
|
|
193
196
|
block.metadata.config.prompts[
|
|
194
197
|
startingIndex
|
|
195
|
-
][
|
|
198
|
+
][startingIndex].prompt
|
|
196
199
|
}}
|
|
197
200
|
</div>
|
|
198
201
|
</draggable>
|
|
@@ -204,7 +207,10 @@
|
|
|
204
207
|
v-if="
|
|
205
208
|
block.metadata.config.prompts[
|
|
206
209
|
startingIndex
|
|
207
|
-
][
|
|
210
|
+
][startingIndex].toggle &&
|
|
211
|
+
block.metadata.config.prompts[
|
|
212
|
+
startingIndex
|
|
213
|
+
][startingIndex].file
|
|
208
214
|
"
|
|
209
215
|
class="pa-2 flex-fill bucket"
|
|
210
216
|
min-height="5em"
|
|
@@ -213,13 +219,13 @@
|
|
|
213
219
|
>
|
|
214
220
|
<v-card-text>
|
|
215
221
|
<draggable
|
|
222
|
+
v-bind="dragOptions"
|
|
216
223
|
class="dragArea list-group"
|
|
217
224
|
:key="
|
|
218
225
|
block.metadata.config.prompts[
|
|
219
226
|
startingIndex
|
|
220
227
|
]['prompt']
|
|
221
228
|
"
|
|
222
|
-
v-bind="dragOptions"
|
|
223
229
|
disabled
|
|
224
230
|
group="people"
|
|
225
231
|
tabindex="0"
|
|
@@ -228,33 +234,36 @@
|
|
|
228
234
|
:id="
|
|
229
235
|
block.metadata.config.prompts[
|
|
230
236
|
startingIndex
|
|
231
|
-
][
|
|
237
|
+
][startingIndex].file.asset
|
|
238
|
+
.public_url
|
|
232
239
|
"
|
|
233
240
|
>
|
|
234
241
|
<v-img
|
|
235
242
|
v-if="
|
|
236
243
|
block.metadata.config
|
|
237
244
|
.prompts[startingIndex][
|
|
238
|
-
|
|
239
|
-
]
|
|
245
|
+
startingIndex
|
|
246
|
+
]['file']
|
|
240
247
|
"
|
|
241
248
|
:aria-describedby="
|
|
242
249
|
block.metadata.config
|
|
243
250
|
.prompts[startingIndex][
|
|
244
|
-
|
|
245
|
-
]
|
|
251
|
+
startingIndex
|
|
252
|
+
]['ariaDescribedBy']
|
|
246
253
|
"
|
|
247
254
|
:alt="
|
|
248
255
|
block.metadata.config
|
|
249
256
|
.prompts[startingIndex][
|
|
250
|
-
|
|
251
|
-
]
|
|
257
|
+
startingIndex
|
|
258
|
+
]['altText']
|
|
252
259
|
"
|
|
253
260
|
:src="
|
|
254
261
|
block.metadata.config
|
|
255
262
|
.prompts[startingIndex][
|
|
256
|
-
|
|
257
|
-
]['
|
|
263
|
+
startingIndex
|
|
264
|
+
]['file']['asset'][
|
|
265
|
+
'public_url'
|
|
266
|
+
]
|
|
258
267
|
"
|
|
259
268
|
></v-img>
|
|
260
269
|
</div>
|
|
@@ -275,7 +284,7 @@
|
|
|
275
284
|
tabindex="0"
|
|
276
285
|
:aria-label="
|
|
277
286
|
$t(
|
|
278
|
-
'
|
|
287
|
+
'windward.games.components.content.blocks.matching_game.of_complete',
|
|
279
288
|
[
|
|
280
289
|
completedAmount,
|
|
281
290
|
totalAmountQuestions,
|
|
@@ -286,7 +295,7 @@
|
|
|
286
295
|
<v-col align="end" tabindex="0">
|
|
287
296
|
{{
|
|
288
297
|
$t(
|
|
289
|
-
'
|
|
298
|
+
'windward.games.components.content.blocks.matching_game.of_complete_text_area',
|
|
290
299
|
[
|
|
291
300
|
completedAmount,
|
|
292
301
|
totalAmountQuestions,
|
|
@@ -294,11 +303,12 @@
|
|
|
294
303
|
)
|
|
295
304
|
}}
|
|
296
305
|
<v-progress-linear
|
|
306
|
+
v-model="completedPercent"
|
|
297
307
|
color="primary"
|
|
298
308
|
outlined
|
|
299
|
-
v-model="completedPercent"
|
|
300
309
|
rounded
|
|
301
310
|
height="15"
|
|
311
|
+
style="pointer-events: none"
|
|
302
312
|
></v-progress-linear>
|
|
303
313
|
<br />
|
|
304
314
|
<v-btn
|
|
@@ -307,7 +317,7 @@
|
|
|
307
317
|
@click="onReset"
|
|
308
318
|
>{{
|
|
309
319
|
$t(
|
|
310
|
-
'
|
|
320
|
+
'windward.games.components.content.blocks.matching_game.reset'
|
|
311
321
|
)
|
|
312
322
|
}}
|
|
313
323
|
</v-btn>
|
|
@@ -342,16 +352,22 @@ export default {
|
|
|
342
352
|
this.block.metadata.config = {}
|
|
343
353
|
}
|
|
344
354
|
if (_.isEmpty(this.block.metadata.config.title)) {
|
|
345
|
-
this.block.metadata.config.title =
|
|
355
|
+
this.block.metadata.config.title = this.$t(
|
|
356
|
+
'windward.games.components.settings.matching_game.form.title'
|
|
357
|
+
)
|
|
346
358
|
}
|
|
347
359
|
if (_.isEmpty(this.block.metadata.config.instructions)) {
|
|
348
360
|
this.block.metadata.config.instructions = ''
|
|
349
361
|
}
|
|
350
362
|
if (_.isEmpty(this.block.metadata.config.feedback_correct)) {
|
|
351
|
-
this.block.metadata.config.feedback_correct =
|
|
363
|
+
this.block.metadata.config.feedback_correct = this.$t(
|
|
364
|
+
'windward.games.components.settings.bucket_game.form.feedback.correct_default'
|
|
365
|
+
)
|
|
352
366
|
}
|
|
353
367
|
if (_.isEmpty(this.block.metadata.config.feedback_incorrect)) {
|
|
354
|
-
this.block.metadata.config.feedback_incorrect =
|
|
368
|
+
this.block.metadata.config.feedback_incorrect = this.$t(
|
|
369
|
+
'windward.games.components.settings.bucket_game.form.feedback.incorrect_default'
|
|
370
|
+
)
|
|
355
371
|
}
|
|
356
372
|
if (_.isEmpty(this.block.metadata.config.prompts)) {
|
|
357
373
|
this.block.metadata.config.prompts = []
|
|
@@ -370,10 +386,10 @@ export default {
|
|
|
370
386
|
return _.flatten(this.solvedQuestions).length
|
|
371
387
|
},
|
|
372
388
|
completedPercent() {
|
|
373
|
-
if (this.
|
|
389
|
+
if (this.flattenedPrompts.length > 0) {
|
|
374
390
|
return (
|
|
375
391
|
(this.solvedQuestions.length /
|
|
376
|
-
this.
|
|
392
|
+
this.flattenedPrompts.length) *
|
|
377
393
|
100
|
|
378
394
|
)
|
|
379
395
|
}
|
|
@@ -386,9 +402,8 @@ export default {
|
|
|
386
402
|
data() {
|
|
387
403
|
return {
|
|
388
404
|
feedback: this.$t(
|
|
389
|
-
'
|
|
405
|
+
'windward.games.components.content.blocks.matching_game.default_feedback'
|
|
390
406
|
),
|
|
391
|
-
toggle: false,
|
|
392
407
|
gameCompleted: false,
|
|
393
408
|
shufflePrompts: [],
|
|
394
409
|
solvedQuestions: [],
|
|
@@ -404,9 +419,10 @@ export default {
|
|
|
404
419
|
name: '',
|
|
405
420
|
},
|
|
406
421
|
prompt: '',
|
|
422
|
+
toggle: false,
|
|
407
423
|
},
|
|
408
|
-
editedPrompt: {},
|
|
409
424
|
startingIndex: 0,
|
|
425
|
+
flattenedPrompts: '',
|
|
410
426
|
}
|
|
411
427
|
},
|
|
412
428
|
watch: {
|
|
@@ -415,8 +431,13 @@ export default {
|
|
|
415
431
|
this.onReset()
|
|
416
432
|
}
|
|
417
433
|
},
|
|
434
|
+
value(newValue) {
|
|
435
|
+
this.flattenedPrompts = _.flatten(newValue.metadata.config.prompts)
|
|
436
|
+
},
|
|
418
437
|
},
|
|
419
438
|
mounted() {
|
|
439
|
+
// flatten nested prompts
|
|
440
|
+
this.flattenedPrompts = _.flatten(this.block.metadata.config.prompts)
|
|
420
441
|
this.setMainPrompt()
|
|
421
442
|
},
|
|
422
443
|
methods: {
|
|
@@ -437,10 +458,9 @@ export default {
|
|
|
437
458
|
return array
|
|
438
459
|
},
|
|
439
460
|
setMainPrompt() {
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
)
|
|
461
|
+
const holder = this.block.metadata.config.prompts.flat(1)
|
|
462
|
+
if (holder !== 0 && !_.isEmpty(holder)) {
|
|
463
|
+
this.shufflePrompts = _.cloneDeep(holder)
|
|
444
464
|
this.shufflePrompts = this.shuffle(this.shufflePrompts)
|
|
445
465
|
this.mainPrompt = this.shufflePrompts.shift()
|
|
446
466
|
}
|
|
@@ -452,25 +472,40 @@ export default {
|
|
|
452
472
|
}
|
|
453
473
|
let draggedElement = ''
|
|
454
474
|
let target = ''
|
|
455
|
-
if (
|
|
475
|
+
if (
|
|
476
|
+
this.mainPrompt.toggle === false ||
|
|
477
|
+
!_.isBoolean(this.mainPrompt.toggle)
|
|
478
|
+
) {
|
|
456
479
|
draggedElement =
|
|
457
480
|
this.block.metadata.config.answerObjects[evt.oldIndex]
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
481
|
+
this.block.metadata.config.prompts.forEach((outerElement) => {
|
|
482
|
+
const getMain = outerElement.find((element) => {
|
|
483
|
+
return (
|
|
484
|
+
element.prompt ==
|
|
485
|
+
evt.to.firstChild.textContent.trim()
|
|
486
|
+
)
|
|
487
|
+
})
|
|
488
|
+
if (getMain) {
|
|
489
|
+
target = getMain
|
|
490
|
+
}
|
|
462
491
|
})
|
|
463
492
|
} else {
|
|
464
493
|
draggedElement =
|
|
465
494
|
this.block.metadata.config.answerObjects[evt.oldIndex]
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
495
|
+
this.block.metadata.config.prompts.forEach((outerElement) => {
|
|
496
|
+
const mainElement = outerElement.find((element) => {
|
|
497
|
+
return (
|
|
498
|
+
element.file?.asset.public_url ==
|
|
499
|
+
evt.to.firstElementChild.id
|
|
500
|
+
)
|
|
501
|
+
})
|
|
502
|
+
if (mainElement) {
|
|
503
|
+
target = mainElement
|
|
504
|
+
}
|
|
471
505
|
})
|
|
472
506
|
}
|
|
473
|
-
if (_.isUndefined(target)) {
|
|
507
|
+
if (_.isUndefined(target) || _.isEmpty(target)) {
|
|
508
|
+
console.log('dragged to nowhere')
|
|
474
509
|
} else if (draggedElement.id !== target.answer.id) {
|
|
475
510
|
this.feedback = this.block.metadata.config.feedback_incorrect
|
|
476
511
|
this.status = 'errorOutline'
|
|
@@ -480,17 +515,23 @@ export default {
|
|
|
480
515
|
this.status = 'successOutline'
|
|
481
516
|
this.allowDrag = false
|
|
482
517
|
if (
|
|
483
|
-
this.solvedQuestions.length ===
|
|
484
|
-
this.block.metadata.config.prompts.length
|
|
518
|
+
this.solvedQuestions.length === this.flattenedPrompts.length
|
|
485
519
|
) {
|
|
486
520
|
this.feedback = this.$t(
|
|
487
|
-
'
|
|
521
|
+
'windward.games.components.content.blocks.matching_game.congratulations_feedback'
|
|
488
522
|
)
|
|
489
523
|
this.gameCompleted = true
|
|
490
524
|
this.status = 'default'
|
|
491
525
|
}
|
|
492
526
|
}
|
|
493
527
|
},
|
|
528
|
+
onExitFeedback() {
|
|
529
|
+
this.status = 'default'
|
|
530
|
+
this.allowDrag = true
|
|
531
|
+
this.feedback = this.$t(
|
|
532
|
+
'windward.games.components.content.blocks.matching_game.default_feedback'
|
|
533
|
+
)
|
|
534
|
+
},
|
|
494
535
|
onContinueGame() {
|
|
495
536
|
if (!this.render) {
|
|
496
537
|
this.startingIndex = this.startingIndex + 1
|
|
@@ -499,7 +540,7 @@ export default {
|
|
|
499
540
|
this.mainPrompt = this.shufflePrompts.shift()
|
|
500
541
|
this.allowDrag = true
|
|
501
542
|
this.feedback = this.$t(
|
|
502
|
-
'
|
|
543
|
+
'windward.games.components.content.blocks.matching_game.default_feedback'
|
|
503
544
|
)
|
|
504
545
|
},
|
|
505
546
|
onReset() {
|
|
@@ -510,7 +551,7 @@ export default {
|
|
|
510
551
|
this.gameCompleted = false
|
|
511
552
|
this.allowDrag = true
|
|
512
553
|
this.feedback = this.$t(
|
|
513
|
-
'
|
|
554
|
+
'windward.games.components.content.blocks.matching_game.default_feedback'
|
|
514
555
|
)
|
|
515
556
|
this.setMainPrompt()
|
|
516
557
|
},
|
|
@@ -538,6 +579,9 @@ export default {
|
|
|
538
579
|
.answerCard {
|
|
539
580
|
min-width: 23%;
|
|
540
581
|
}
|
|
582
|
+
.icon--error {
|
|
583
|
+
color: var(--v-error-base);
|
|
584
|
+
}
|
|
541
585
|
@media (max-width: 1270px) {
|
|
542
586
|
.answerCard {
|
|
543
587
|
min-width: 30%;
|