@windward/games 0.5.0 → 0.6.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/CHANGELOG.md +4 -0
- package/bitbucket-pipelines.yml +14 -0
- package/components/content/blocks/flashcards/FlashcardSlides.vue +35 -2
- package/components/content/blocks/matchingGame/MatchingGame.vue +31 -32
- package/components/content/blocks/multipleChoice/MultipleChoice.vue +30 -1
- package/components/content/blocks/sevenStrikes/SevenStikes.vue +33 -1
- package/components/content/blocks/slideshow/SlideShow.vue +41 -3
- package/components/content/blocks/wordJumble/WordJumble.vue +32 -0
- package/components/settings/BucketGameSettingsManager.vue +246 -233
- package/components/settings/CrosswordPuzzleSettingsManager.vue +139 -109
- package/components/settings/FlashCardSlidesManager.vue +319 -332
- package/components/settings/MatchingGameManager.vue +326 -321
- package/components/settings/MultipleChoiceSettingsManager.vue +83 -67
- package/components/settings/QuizShowSettingsManager.vue +215 -203
- package/components/settings/SevenStrikesSettingsManager.vue +171 -141
- package/components/settings/SlideShowManager.vue +153 -132
- package/components/settings/SortingGameSettingsManager.vue +137 -108
- package/components/settings/WordJumbleSettingsManager.vue +175 -145
- package/i18n/en-US/shared/settings.ts +3 -0
- package/i18n/es-ES/shared/settings.ts +3 -0
- package/i18n/sv-SE/shared/settings.ts +3 -0
- package/package.json +1 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
image: atlassian/default-image:3
|
|
2
|
+
|
|
3
|
+
pipelines:
|
|
4
|
+
custom:
|
|
5
|
+
create-release:
|
|
6
|
+
import: infrastructure-automation:master:create-release
|
|
7
|
+
publish-release:
|
|
8
|
+
import: infrastructure-automation:master:publish-release
|
|
9
|
+
|
|
10
|
+
branches:
|
|
11
|
+
"release/*":
|
|
12
|
+
import: infrastructure-automation:master:auto-update
|
|
13
|
+
"hotfix/*":
|
|
14
|
+
import: infrastructure-automation:master:auto-update
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
{{ block.metadata.config.instructions }}
|
|
9
9
|
</p>
|
|
10
10
|
<br />
|
|
11
|
-
<v-carousel
|
|
11
|
+
<v-carousel
|
|
12
|
+
:value="block.metadata.config.currentSlide"
|
|
13
|
+
:hide-delimiters="hideDeliminators"
|
|
14
|
+
>
|
|
12
15
|
<template #prev="{ on, attrs }">
|
|
13
16
|
<v-btn
|
|
14
17
|
variant="elevated"
|
|
@@ -39,7 +42,7 @@
|
|
|
39
42
|
v-for="(card, index) in block.metadata.config.cards"
|
|
40
43
|
:key="index"
|
|
41
44
|
>
|
|
42
|
-
<v-sheet height="
|
|
45
|
+
<v-sheet height="90%" tile>
|
|
43
46
|
<Flashcard
|
|
44
47
|
v-model="block.metadata.config.cards[index].side"
|
|
45
48
|
:options="card"
|
|
@@ -59,6 +62,7 @@ import Flashcard from './Flashcard'
|
|
|
59
62
|
import draggable from 'vuedraggable'
|
|
60
63
|
import BaseContentBlock from '~/components/Content/Blocks/BaseContentBlock'
|
|
61
64
|
import Crypto from '~/helpers/Crypto'
|
|
65
|
+
|
|
62
66
|
export default {
|
|
63
67
|
name: 'Flashcards',
|
|
64
68
|
components: { Flashcard, draggable },
|
|
@@ -101,6 +105,35 @@ export default {
|
|
|
101
105
|
}
|
|
102
106
|
return 0
|
|
103
107
|
},
|
|
108
|
+
hideDeliminators() {
|
|
109
|
+
const condition1 =
|
|
110
|
+
window.innerWidth <= 1483 ||
|
|
111
|
+
this.block.metadata.config.cards.length >= 13
|
|
112
|
+
const condition2 =
|
|
113
|
+
this.block.metadata.config.cards.length >= 12 &&
|
|
114
|
+
window.innerWidth <= 1692
|
|
115
|
+
const condition3 =
|
|
116
|
+
this.block.metadata.config.cards.length >= 11 &&
|
|
117
|
+
window.innerWidth <= 1634
|
|
118
|
+
const condition4 =
|
|
119
|
+
this.block.metadata.config.cards.length >= 10 &&
|
|
120
|
+
window.innerWidth <= 1571
|
|
121
|
+
const condition5 =
|
|
122
|
+
this.block.metadata.config.cards.length >= 9 &&
|
|
123
|
+
window.innerWidth <= 1518
|
|
124
|
+
|
|
125
|
+
if (
|
|
126
|
+
condition1 ||
|
|
127
|
+
condition2 ||
|
|
128
|
+
condition3 ||
|
|
129
|
+
condition4 ||
|
|
130
|
+
condition5
|
|
131
|
+
) {
|
|
132
|
+
return true
|
|
133
|
+
} else {
|
|
134
|
+
return false
|
|
135
|
+
}
|
|
136
|
+
},
|
|
104
137
|
},
|
|
105
138
|
methods: {
|
|
106
139
|
onActionPanelEdit() {
|
|
@@ -12,18 +12,17 @@
|
|
|
12
12
|
{{ block.metadata.config.title }}
|
|
13
13
|
</h2>
|
|
14
14
|
|
|
15
|
-
<p
|
|
15
|
+
<p>
|
|
16
16
|
{{ block.metadata.config.instructions }}
|
|
17
17
|
</p>
|
|
18
|
-
<p
|
|
18
|
+
<p>
|
|
19
19
|
{{
|
|
20
20
|
$t(
|
|
21
21
|
'windward.games.components.content.blocks.matching_game.description'
|
|
22
22
|
)
|
|
23
23
|
}}
|
|
24
24
|
</p>
|
|
25
|
-
|
|
26
|
-
<v-container fluid :class="status">
|
|
25
|
+
<v-container :class="status">
|
|
27
26
|
<v-row class="d-flex justify-center pa-2">{{
|
|
28
27
|
feedback
|
|
29
28
|
? feedback
|
|
@@ -47,34 +46,7 @@
|
|
|
47
46
|
</v-container>
|
|
48
47
|
</v-row>
|
|
49
48
|
</v-container>
|
|
50
|
-
<v-container class="
|
|
51
|
-
<v-row>
|
|
52
|
-
<draggable
|
|
53
|
-
v-bind="dragOptions"
|
|
54
|
-
class="d-flex justify-space-between flex-wrap col-md-12"
|
|
55
|
-
:list="block.metadata.config.answerObjects"
|
|
56
|
-
:disabled="!allowDrag"
|
|
57
|
-
:group="{
|
|
58
|
-
name: 'people',
|
|
59
|
-
pull: 'clone',
|
|
60
|
-
put: false,
|
|
61
|
-
}"
|
|
62
|
-
@end="onEnd"
|
|
63
|
-
>
|
|
64
|
-
<v-card
|
|
65
|
-
v-for="(answer, aindex) in block.metadata.config
|
|
66
|
-
.answerObjects"
|
|
67
|
-
:key="aindex"
|
|
68
|
-
class="pa-2 ma-2 answerCard container-outline"
|
|
69
|
-
outlined
|
|
70
|
-
>
|
|
71
|
-
<v-icon>mdi-drag-vertical</v-icon>
|
|
72
|
-
<span>
|
|
73
|
-
{{ answer.display }}
|
|
74
|
-
</span>
|
|
75
|
-
</v-card>
|
|
76
|
-
</draggable>
|
|
77
|
-
</v-row>
|
|
49
|
+
<v-container class="pl-0 pr-0 mt-2">
|
|
78
50
|
<v-row
|
|
79
51
|
v-if="render"
|
|
80
52
|
class="d-flex flex-wrap flex-row justify-center flex-fill"
|
|
@@ -267,6 +239,33 @@
|
|
|
267
239
|
</v-card>
|
|
268
240
|
</v-row>
|
|
269
241
|
</v-row>
|
|
242
|
+
<v-row>
|
|
243
|
+
<draggable
|
|
244
|
+
v-bind="dragOptions"
|
|
245
|
+
class="d-flex justify-space-between flex-wrap col-md-12"
|
|
246
|
+
:list="block.metadata.config.answerObjects"
|
|
247
|
+
:disabled="!allowDrag"
|
|
248
|
+
:group="{
|
|
249
|
+
name: 'people',
|
|
250
|
+
pull: 'clone',
|
|
251
|
+
put: false,
|
|
252
|
+
}"
|
|
253
|
+
@end="onEnd"
|
|
254
|
+
>
|
|
255
|
+
<v-card
|
|
256
|
+
v-for="(answer, aindex) in block.metadata.config
|
|
257
|
+
.answerObjects"
|
|
258
|
+
:key="aindex"
|
|
259
|
+
class="pa-2 ma-2 answerCard container-outline"
|
|
260
|
+
outlined
|
|
261
|
+
>
|
|
262
|
+
<v-icon>mdi-drag-vertical</v-icon>
|
|
263
|
+
<span>
|
|
264
|
+
{{ answer.display }}
|
|
265
|
+
</span>
|
|
266
|
+
</v-card>
|
|
267
|
+
</draggable>
|
|
268
|
+
</v-row>
|
|
270
269
|
<v-container
|
|
271
270
|
class="d-flex flex-wrap flex-row justify-center flex-fill"
|
|
272
271
|
align="end"
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<p class="mb-0">{{ block.metadata.config.instructions }}</p>
|
|
7
7
|
</v-col>
|
|
8
8
|
</v-row>
|
|
9
|
-
<v-carousel height="auto">
|
|
9
|
+
<v-carousel height="auto" :hide-delimiters="hideDeliminators">
|
|
10
10
|
<template #prev="{ on, attrs }">
|
|
11
11
|
<v-btn
|
|
12
12
|
variant="elevated"
|
|
@@ -285,6 +285,35 @@ export default {
|
|
|
285
285
|
}
|
|
286
286
|
return 0
|
|
287
287
|
},
|
|
288
|
+
hideDeliminators() {
|
|
289
|
+
const condition1 =
|
|
290
|
+
window.innerWidth <= 1483 ||
|
|
291
|
+
this.block.metadata.config.questions.length >= 13
|
|
292
|
+
const condition2 =
|
|
293
|
+
this.block.metadata.config.questions.length >= 12 &&
|
|
294
|
+
window.innerWidth <= 1692
|
|
295
|
+
const condition3 =
|
|
296
|
+
this.block.metadata.config.questions.length >= 11 &&
|
|
297
|
+
window.innerWidth <= 1634
|
|
298
|
+
const condition4 =
|
|
299
|
+
this.block.metadata.config.questions.length >= 10 &&
|
|
300
|
+
window.innerWidth <= 1571
|
|
301
|
+
const condition5 =
|
|
302
|
+
this.block.metadata.config.questions.length >= 9 &&
|
|
303
|
+
window.innerWidth <= 1518
|
|
304
|
+
|
|
305
|
+
if (
|
|
306
|
+
condition1 ||
|
|
307
|
+
condition2 ||
|
|
308
|
+
condition3 ||
|
|
309
|
+
condition4 ||
|
|
310
|
+
condition5
|
|
311
|
+
) {
|
|
312
|
+
return true
|
|
313
|
+
} else {
|
|
314
|
+
return false
|
|
315
|
+
}
|
|
316
|
+
},
|
|
288
317
|
},
|
|
289
318
|
watch: {
|
|
290
319
|
render(newValue) {
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
<template>
|
|
17
17
|
<v-carousel
|
|
18
18
|
v-model="block.metadata.config.currentWord"
|
|
19
|
+
:hide-delimiters="hideDeliminators"
|
|
19
20
|
@change="onSlideChanged($event)"
|
|
20
21
|
>
|
|
21
22
|
<template #prev="{ on, attrs }">
|
|
@@ -203,6 +204,7 @@ import draggable from 'vuedraggable'
|
|
|
203
204
|
import keyboard from './keyboard.vue'
|
|
204
205
|
import CrudTable from '../../CrudTable'
|
|
205
206
|
import BaseContentBlock from '~/components/Content/Blocks/BaseContentBlock'
|
|
207
|
+
import Crypto from '~/helpers/Crypto'
|
|
206
208
|
|
|
207
209
|
export default {
|
|
208
210
|
name: 'SevenStrikesGame',
|
|
@@ -265,6 +267,37 @@ export default {
|
|
|
265
267
|
onStrike: 0,
|
|
266
268
|
}
|
|
267
269
|
},
|
|
270
|
+
computed: {
|
|
271
|
+
hideDeliminators() {
|
|
272
|
+
const condition1 =
|
|
273
|
+
window.innerWidth <= 1483 ||
|
|
274
|
+
this.block.metadata.config.words.length >= 13
|
|
275
|
+
const condition2 =
|
|
276
|
+
this.block.metadata.config.words.length >= 12 &&
|
|
277
|
+
window.innerWidth <= 1692
|
|
278
|
+
const condition3 =
|
|
279
|
+
this.block.metadata.config.words.length >= 11 &&
|
|
280
|
+
window.innerWidth <= 1634
|
|
281
|
+
const condition4 =
|
|
282
|
+
this.block.metadata.config.words.length >= 10 &&
|
|
283
|
+
window.innerWidth <= 1571
|
|
284
|
+
const condition5 =
|
|
285
|
+
this.block.metadata.config.words.length >= 9 &&
|
|
286
|
+
window.innerWidth <= 1518
|
|
287
|
+
|
|
288
|
+
if (
|
|
289
|
+
condition1 ||
|
|
290
|
+
condition2 ||
|
|
291
|
+
condition3 ||
|
|
292
|
+
condition4 ||
|
|
293
|
+
condition5
|
|
294
|
+
) {
|
|
295
|
+
return true
|
|
296
|
+
} else {
|
|
297
|
+
return false
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
},
|
|
268
301
|
watch: {
|
|
269
302
|
render(newValue) {
|
|
270
303
|
if (newValue) {
|
|
@@ -272,7 +305,6 @@ export default {
|
|
|
272
305
|
}
|
|
273
306
|
},
|
|
274
307
|
},
|
|
275
|
-
mounted() {},
|
|
276
308
|
methods: {
|
|
277
309
|
onChangeSlide(newIndex) {
|
|
278
310
|
if (newIndex >= this.block.metadata.config.words.length) {
|
|
@@ -18,7 +18,10 @@
|
|
|
18
18
|
</div>
|
|
19
19
|
<div>
|
|
20
20
|
<template v-if="block.metadata.config.slides.length !== 0">
|
|
21
|
-
<v-carousel
|
|
21
|
+
<v-carousel
|
|
22
|
+
v-model="block.metadata.config.currentSlide"
|
|
23
|
+
:hide-delimiters="hideDeliminators"
|
|
24
|
+
>
|
|
22
25
|
<template #prev="{ on, attrs }">
|
|
23
26
|
<v-btn
|
|
24
27
|
variant="elevated"
|
|
@@ -51,7 +54,10 @@
|
|
|
51
54
|
:key="index"
|
|
52
55
|
>
|
|
53
56
|
<v-carousel-item>
|
|
54
|
-
<
|
|
57
|
+
<v-sheet
|
|
58
|
+
height="85%"
|
|
59
|
+
class="fill-height d-flex flex-column"
|
|
60
|
+
>
|
|
55
61
|
<div class="pa-0 ma-0">
|
|
56
62
|
<h4 class="header-description">
|
|
57
63
|
{{ slide['header'] }}
|
|
@@ -74,7 +80,7 @@
|
|
|
74
80
|
contain
|
|
75
81
|
/>
|
|
76
82
|
</div>
|
|
77
|
-
</
|
|
83
|
+
</v-sheet>
|
|
78
84
|
</v-carousel-item>
|
|
79
85
|
</v-container>
|
|
80
86
|
</v-carousel>
|
|
@@ -86,6 +92,7 @@
|
|
|
86
92
|
<script>
|
|
87
93
|
import _ from 'lodash'
|
|
88
94
|
import BaseContentBlock from '~/components/Content/Blocks/BaseContentBlock'
|
|
95
|
+
import Crypto from '~/helpers/Crypto'
|
|
89
96
|
|
|
90
97
|
export default {
|
|
91
98
|
name: 'SlideShow',
|
|
@@ -120,6 +127,37 @@ export default {
|
|
|
120
127
|
prev: {},
|
|
121
128
|
}
|
|
122
129
|
},
|
|
130
|
+
computed: {
|
|
131
|
+
hideDeliminators() {
|
|
132
|
+
const condition1 =
|
|
133
|
+
window.innerWidth <= 1483 ||
|
|
134
|
+
this.block.metadata.config.slides.length >= 13
|
|
135
|
+
const condition2 =
|
|
136
|
+
this.block.metadata.config.slides.length >= 12 &&
|
|
137
|
+
window.innerWidth <= 1692
|
|
138
|
+
const condition3 =
|
|
139
|
+
this.block.metadata.config.slides.length >= 11 &&
|
|
140
|
+
window.innerWidth <= 1634
|
|
141
|
+
const condition4 =
|
|
142
|
+
this.block.metadata.config.slides.length >= 10 &&
|
|
143
|
+
window.innerWidth <= 1571
|
|
144
|
+
const condition5 =
|
|
145
|
+
this.block.metadata.config.slides.length >= 9 &&
|
|
146
|
+
window.innerWidth <= 1518
|
|
147
|
+
|
|
148
|
+
if (
|
|
149
|
+
condition1 ||
|
|
150
|
+
condition2 ||
|
|
151
|
+
condition3 ||
|
|
152
|
+
condition4 ||
|
|
153
|
+
condition5
|
|
154
|
+
) {
|
|
155
|
+
return true
|
|
156
|
+
} else {
|
|
157
|
+
return false
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
},
|
|
123
161
|
watch: {
|
|
124
162
|
render(newValue) {
|
|
125
163
|
this.block.metadata.config.currentSlide = 0
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
<template>
|
|
17
17
|
<v-carousel
|
|
18
18
|
v-model="block.metadata.config.currentWord"
|
|
19
|
+
:hide-delimiters="hideDeliminators"
|
|
19
20
|
@change="onSlideChanged()"
|
|
20
21
|
>
|
|
21
22
|
<template #prev="{ on, attrs }">
|
|
@@ -220,6 +221,37 @@ export default {
|
|
|
220
221
|
shuffledWord: '',
|
|
221
222
|
}
|
|
222
223
|
},
|
|
224
|
+
computed: {
|
|
225
|
+
hideDeliminators() {
|
|
226
|
+
const condition1 =
|
|
227
|
+
window.innerWidth <= 1483 ||
|
|
228
|
+
this.block.metadata.config.words.length >= 13
|
|
229
|
+
const condition2 =
|
|
230
|
+
this.block.metadata.config.words.length >= 12 &&
|
|
231
|
+
window.innerWidth <= 1692
|
|
232
|
+
const condition3 =
|
|
233
|
+
this.block.metadata.config.words.length >= 11 &&
|
|
234
|
+
window.innerWidth <= 1634
|
|
235
|
+
const condition4 =
|
|
236
|
+
this.block.metadata.config.words.length >= 10 &&
|
|
237
|
+
window.innerWidth <= 1571
|
|
238
|
+
const condition5 =
|
|
239
|
+
this.block.metadata.config.words.length >= 9 &&
|
|
240
|
+
window.innerWidth <= 1518
|
|
241
|
+
|
|
242
|
+
if (
|
|
243
|
+
condition1 ||
|
|
244
|
+
condition2 ||
|
|
245
|
+
condition3 ||
|
|
246
|
+
condition4 ||
|
|
247
|
+
condition5
|
|
248
|
+
) {
|
|
249
|
+
return true
|
|
250
|
+
} else {
|
|
251
|
+
return false
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
},
|
|
223
255
|
watch: {
|
|
224
256
|
render(newValue) {
|
|
225
257
|
this.updateJumble = Crypto.id()
|