@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.
Files changed (137) hide show
  1. package/components/content/CrudTable.vue +2 -2
  2. package/components/content/blocks/crosswordPuzzle/CrosswordClues.vue +4 -2
  3. package/components/content/blocks/crosswordPuzzle/CrosswordPuzzle.vue +14 -12
  4. package/components/content/blocks/dragDrop/BucketGame.vue +54 -101
  5. package/components/content/blocks/dragDrop/SortingGame.vue +47 -33
  6. package/components/content/blocks/flashcards/CardFace.vue +38 -39
  7. package/components/content/blocks/flashcards/Flashcard.vue +109 -28
  8. package/components/content/blocks/flashcards/FlashcardSlides.vue +3 -2
  9. package/components/content/blocks/matchingGame/MatchingGame.vue +105 -61
  10. package/components/content/blocks/multipleChoice/MultipleChoice.vue +186 -225
  11. package/components/content/blocks/multipleChoice/QuestionDialog.vue +7 -7
  12. package/components/content/blocks/quizshowGame/AnswerPanel.vue +31 -24
  13. package/components/content/blocks/quizshowGame/Gridview.vue +20 -24
  14. package/components/content/blocks/quizshowGame/QuizShow.vue +22 -9
  15. package/components/content/blocks/quizshowGame/feedbackIcons.vue +4 -2
  16. package/components/content/blocks/sevenStrikes/SevenStikes.vue +153 -108
  17. package/components/content/blocks/sevenStrikes/keyboard.vue +9 -2
  18. package/components/content/blocks/slideshow/SlideShow.vue +5 -3
  19. package/components/content/blocks/wordJumble/Jumble.vue +4 -4
  20. package/components/content/blocks/wordJumble/WordJumble.vue +128 -62
  21. package/components/settings/BucketGameSettingsManager.vue +185 -359
  22. package/components/settings/CrosswordPuzzleSettingsManager.vue +114 -181
  23. package/components/settings/FlashCardSlidesManager.vue +323 -419
  24. package/components/settings/MatchingGameManager.vue +357 -618
  25. package/components/settings/MultipleChoiceSettingsManager.vue +130 -140
  26. package/components/settings/QuizShowSettingsManager.vue +17 -17
  27. package/components/settings/SevenStrikesSettingsManager.vue +131 -193
  28. package/components/settings/SlideShowManager.vue +91 -129
  29. package/components/settings/SortingGameSettingsManager.vue +41 -153
  30. package/components/settings/WordJumbleSettingsManager.vue +84 -150
  31. package/i18n/en-US/components/content/blocks/bucket_game.ts +1 -0
  32. package/i18n/en-US/components/content/blocks/flashcard.ts +3 -0
  33. package/i18n/en-US/components/content/blocks/word_jumble.ts +2 -0
  34. package/i18n/en-US/components/settings/bucket_game.ts +3 -2
  35. package/i18n/en-US/components/settings/flashcard.ts +1 -0
  36. package/i18n/en-US/components/settings/matching_game.ts +1 -1
  37. package/i18n/en-US/components/settings/quizshow_game.ts +1 -1
  38. package/i18n/en-US/components/settings/seven_strikes.ts +1 -1
  39. package/i18n/en-US/components/settings/slideshow.ts +2 -0
  40. package/i18n/en-US/index.ts +2 -1
  41. package/i18n/es-ES/components/content/blocks/bucket_game.ts +40 -0
  42. package/i18n/es-ES/components/content/blocks/crossword.ts +25 -0
  43. package/i18n/es-ES/components/content/blocks/flashcard.ts +8 -0
  44. package/i18n/es-ES/components/content/blocks/index.ts +23 -0
  45. package/i18n/es-ES/components/content/blocks/matching_game.ts +26 -0
  46. package/i18n/es-ES/components/content/blocks/multiple_choice.ts +9 -0
  47. package/i18n/es-ES/components/content/blocks/quizshow_game.ts +35 -0
  48. package/i18n/es-ES/components/content/blocks/seven_strikes.ts +6 -0
  49. package/i18n/es-ES/components/content/blocks/slideshow.ts +13 -0
  50. package/i18n/es-ES/components/content/blocks/sorting_game.ts +5 -0
  51. package/i18n/es-ES/components/content/blocks/word_jumble.ts +11 -0
  52. package/i18n/es-ES/components/content/crud_table.ts +6 -0
  53. package/i18n/es-ES/components/content/index.ts +7 -0
  54. package/i18n/es-ES/components/index.ts +9 -0
  55. package/i18n/es-ES/components/navigation/index.ts +5 -0
  56. package/i18n/es-ES/components/settings/bucket_game.ts +39 -0
  57. package/i18n/es-ES/components/settings/crossword.ts +7 -0
  58. package/i18n/es-ES/components/settings/flashcard.ts +29 -0
  59. package/i18n/es-ES/components/settings/index.ts +23 -0
  60. package/i18n/es-ES/components/settings/matching_game.ts +15 -0
  61. package/i18n/es-ES/components/settings/multiple_choice.ts +17 -0
  62. package/i18n/es-ES/components/settings/quizshow_game.ts +20 -0
  63. package/i18n/es-ES/components/settings/seven_strikes.ts +8 -0
  64. package/i18n/es-ES/components/settings/slideshow.ts +13 -0
  65. package/i18n/es-ES/components/settings/sorting_game.ts +5 -0
  66. package/i18n/es-ES/components/settings/word_jumble.ts +11 -0
  67. package/i18n/es-ES/index.ts +16 -0
  68. package/i18n/es-ES/modules/index.ts +5 -0
  69. package/i18n/es-ES/pages/index.ts +5 -0
  70. package/i18n/es-ES/shared/content_blocks.ts +18 -0
  71. package/i18n/es-ES/shared/index.ts +7 -0
  72. package/i18n/es-ES/shared/settings.ts +14 -0
  73. package/i18n/index.ts +11 -0
  74. package/i18n/sv-SE/components/content/blocks/bucket_game.ts +40 -0
  75. package/i18n/sv-SE/components/content/blocks/crossword.ts +20 -0
  76. package/i18n/sv-SE/components/content/blocks/flashcard.ts +8 -0
  77. package/i18n/sv-SE/components/content/blocks/index.ts +23 -0
  78. package/i18n/sv-SE/components/content/blocks/matching_game.ts +25 -0
  79. package/i18n/sv-SE/components/content/blocks/multiple_choice.ts +9 -0
  80. package/i18n/sv-SE/components/content/blocks/quizshow_game.ts +35 -0
  81. package/i18n/sv-SE/components/content/blocks/seven_strikes.ts +6 -0
  82. package/i18n/sv-SE/components/content/blocks/slideshow.ts +13 -0
  83. package/i18n/sv-SE/components/content/blocks/sorting_game.ts +5 -0
  84. package/i18n/sv-SE/components/content/blocks/word_jumble.ts +11 -0
  85. package/i18n/sv-SE/components/content/crud_table.ts +6 -0
  86. package/i18n/sv-SE/components/content/index.ts +7 -0
  87. package/i18n/sv-SE/components/index.ts +9 -0
  88. package/i18n/sv-SE/components/navigation/index.ts +5 -0
  89. package/i18n/sv-SE/components/settings/bucket_game.ts +38 -0
  90. package/i18n/sv-SE/components/settings/crossword.ts +7 -0
  91. package/i18n/sv-SE/components/settings/flashcard.ts +29 -0
  92. package/i18n/sv-SE/components/settings/index.ts +23 -0
  93. package/i18n/sv-SE/components/settings/matching_game.ts +15 -0
  94. package/i18n/sv-SE/components/settings/multiple_choice.ts +16 -0
  95. package/i18n/sv-SE/components/settings/quizshow_game.ts +20 -0
  96. package/i18n/sv-SE/components/settings/seven_strikes.ts +8 -0
  97. package/i18n/sv-SE/components/settings/slideshow.ts +13 -0
  98. package/i18n/sv-SE/components/settings/sorting_game.ts +5 -0
  99. package/i18n/sv-SE/components/settings/word_jumble.ts +11 -0
  100. package/i18n/sv-SE/index.ts +16 -0
  101. package/i18n/sv-SE/modules/index.ts +5 -0
  102. package/i18n/sv-SE/pages/index.ts +5 -0
  103. package/i18n/sv-SE/shared/content_blocks.ts +18 -0
  104. package/i18n/sv-SE/shared/index.ts +7 -0
  105. package/i18n/sv-SE/shared/settings.ts +14 -0
  106. package/package.json +1 -1
  107. package/plugin.js +33 -34
  108. package/test/Feature/LocaleKeys.spec.js +11 -0
  109. package/test/__mocks__/componentsMock.js +12 -0
  110. package/test/__mocks__/fileMock.js +1 -0
  111. package/test/__mocks__/modelMock.js +88 -0
  112. package/test/__mocks__/styleMock.js +1 -0
  113. package/test/blocks/crossword/CrosswordPuzzle.spec.js +1 -1
  114. package/test/blocks/dragDrop/BucketGame.spec.js +1 -1
  115. package/test/blocks/dragDrop/SortingGame.spec.js +1 -1
  116. package/test/blocks/flashcards/CardFace.spec.js +1 -1
  117. package/test/blocks/flashcards/FlashCardSlides.spec.js +1 -1
  118. package/test/blocks/flashcards/Flashcard.spec.js +1 -1
  119. package/test/blocks/matchingGame/MatchingGame.spec.js +1 -1
  120. package/test/blocks/multipleChoice/MultipleChoice.spec.js +1 -1
  121. package/test/blocks/multipleChoice/QuestionDialog.spec.js +1 -1
  122. package/test/blocks/quizShow/quizShow.spec.js +1 -1
  123. package/test/blocks/sevenStrikes/sevenStrikes.spec.js +1 -1
  124. package/test/blocks/slideshow/slideshow.spec.js +1 -1
  125. package/test/blocks/wordJumble/Jumble.spec.js +1 -1
  126. package/test/blocks/wordJumble/WordJumble.spec.js +1 -1
  127. package/test/mocks.js +8 -2
  128. package/test/settings/BucketGameManager.spec.js +4 -4
  129. package/test/settings/CrosswordPuzzleManager.spec.js +6 -11
  130. package/test/settings/FlashCardSlidesManager.spec.js +1 -1
  131. package/test/settings/MatchingGameManager.spec.js +1 -1
  132. package/test/settings/MultipleChoiceGameManager.spec.js +1 -1
  133. package/test/settings/SevenStrikesManager.spec.js +1 -1
  134. package/test/settings/SlideShowManager.spec.js +1 -1
  135. package/test/settings/SortingGameManager.spec.js +1 -1
  136. package/test/settings/WordJumbleManager.spec.js +1 -4
  137. package/i18n/en-US.ts +0 -5
@@ -6,7 +6,7 @@
6
6
  block.metadata.config.title
7
7
  ? block.metadata.config.title
8
8
  : $t(
9
- 'plugin.games.components.content.blocks.seven_strikes.title'
9
+ 'windward.games.components.content.blocks.seven_strikes.title'
10
10
  )
11
11
  }}
12
12
  </h3>
@@ -23,107 +23,139 @@
23
23
  :key="index"
24
24
  >
25
25
  <v-row class="d-flex justify-center ma-2">
26
- <p class="pa-3 mb-0 clueAndJumble">
26
+ <p class="pa-3 mb-0 p-clue-jumble">
27
27
  {{ word.hint }}
28
28
  </p>
29
29
  </v-row>
30
30
  <v-container
31
31
  v-if="showFeedback"
32
+ fluid
32
33
  :key="'feedback'"
33
34
  :class="feedbackStatus"
34
- class="mb-8"
35
35
  >
36
- <v-row class="d-flex" align="center">
37
- <v-col cols="4"></v-col>
38
- <v-col cols="4" class="d-flex justify-center">
39
- <p class="">{{ feedback }}</p>
40
- </v-col>
41
- <v-col cols="4" class="d-flex justify-end">
42
- <v-icon @click="onHideFeedback">
43
- mdi-alpha-x-circle-outline</v-icon
44
- >
36
+ <v-row class="pa-4">
37
+ <v-col></v-col>
38
+ <v-col
39
+ class="d-flex justify-center align-center"
40
+ >{{
41
+ feedback
42
+ ? feedback
43
+ : $t(
44
+ 'windward.games.components.content.blocks.bucket_game.form.feedback.feedback_here'
45
+ )
46
+ }}</v-col
47
+ >
48
+ <v-col class="d-flex justify-end pl-4">
49
+ <v-btn
50
+ v-if="
51
+ feedbackStatus === 'successOutline'
52
+ "
53
+ class="mr-5"
54
+ color="success"
55
+ @click="onChangeSlide(index + 1)"
56
+ >{{ $t('shared.forms.continue') }}
57
+ </v-btn>
58
+ <v-container
59
+ v-if="feedbackStatus === 'errorOutline'"
60
+ class="d-flex justify-end"
61
+ @click="onHideFeedback"
62
+ ><v-icon
63
+ class="icon--error"
64
+ color="error"
65
+ >mdi-close-circle</v-icon
66
+ >
67
+ </v-container>
45
68
  </v-col>
46
69
  </v-row>
47
70
  </v-container>
48
- <v-row class="justify-center">
49
- <div
50
- v-for="(
51
- strike, strikeIndex
52
- ) in sevenStrikesCounter"
53
- :key="strikeIndex"
71
+ <v-container>
72
+ <v-row
73
+ class="justify-center mt-2"
74
+ v-if="word.splitWord"
54
75
  >
55
76
  <div
56
- v-if="strike.strike === false"
57
- :ref="'strike' + strikeIndex"
58
- class="strikeArea ml-1 mr-1 d-flex justify-center align-center"
59
- maxlength="1"
60
- ></div>
61
- <div
62
- class="strike"
63
- v-if="strike.strike === true"
77
+ v-for="(
78
+ letter, splitIndex
79
+ ) in word.splitWord"
80
+ :key="splitIndex"
64
81
  >
65
- X
82
+ <div
83
+ :ref="'input' + splitIndex"
84
+ class="container-text-area ml-1 mr-1"
85
+ maxlength="1"
86
+ >
87
+ <div v-if="letter.show === true">
88
+ {{ letter.letter }}
89
+ </div>
90
+ </div>
66
91
  </div>
67
- </div>
68
- </v-row>
69
- <v-row
70
- class="justify-center mt-12"
71
- v-if="word.splitWord"
72
- >
73
- <div
74
- v-for="(letter, splitIndex) in word.splitWord"
75
- :key="splitIndex"
76
- >
92
+ </v-row>
93
+ <v-row class="justify-center mt-8">
77
94
  <div
78
- :ref="'input' + splitIndex"
79
- class="textArea ml-1 mr-1"
80
- maxlength="1"
95
+ v-for="(
96
+ strike, strikeIndex
97
+ ) in sevenStrikesCounter"
98
+ :key="strikeIndex"
81
99
  >
82
- <div v-if="letter.show === true">
83
- {{ letter.letter }}
100
+ <div
101
+ v-if="strike.strike === false"
102
+ :ref="'strike' + strikeIndex"
103
+ class="container-strike-area d-flex justify-center align-center"
104
+ maxlength="1"
105
+ >
106
+ X
107
+ </div>
108
+ <div
109
+ class="container-strike"
110
+ v-if="strike.strike === true"
111
+ >
112
+ X
84
113
  </div>
85
114
  </div>
115
+ </v-row>
116
+ <div>
117
+ <keyboard
118
+ v-if="!showFeedback"
119
+ :key="index"
120
+ :keyboardClass="keyBoardClass + index"
121
+ @onChange="onChange"
122
+ @onKeyPress="onKeyPress"
123
+ :input="input"
124
+ />
86
125
  </div>
87
- </v-row>
88
- <div>
89
- <keyboard
90
- v-if="!showFeedback"
91
- :key="index"
92
- :keyboardClass="keyBoardClass + index"
93
- @onChange="onChange"
94
- @onKeyPress="onKeyPress"
95
- :input="input"
96
- />
97
- </div>
98
- <v-row class="justify-center mt-12" v-if="showFeedback">
99
- <v-btn
100
- color="primary ml-4"
101
- @click="onRevealAnswer"
102
- >{{
103
- $t(
104
- 'plugin.games.components.content.blocks.seven_strikes.reveal'
105
- )
106
- }}</v-btn
107
- >
108
- <v-btn
109
- color="primary ml-4"
110
- @click="onSlideChanged(index)"
111
- >{{
112
- $t(
113
- 'plugin.games.components.content.blocks.seven_strikes.again'
114
- )
115
- }}</v-btn
116
- >
117
- <v-btn
118
- @click="onChangeSlide(index + 1)"
119
- color="primary ml-4"
120
- >{{
121
- $t(
122
- 'plugin.games.components.content.blocks.seven_strikes.next'
123
- )
124
- }}</v-btn
126
+ <v-row
127
+ class="justify-center mt-12"
128
+ v-if="showFeedback"
125
129
  >
126
- </v-row>
130
+ <v-btn
131
+ color="primary ml-4"
132
+ @click="onRevealAnswer"
133
+ >{{
134
+ $t(
135
+ 'windward.games.components.content.blocks.seven_strikes.reveal'
136
+ )
137
+ }}</v-btn
138
+ >
139
+ <v-btn
140
+ color="primary ml-4"
141
+ @click="onSlideChanged(index)"
142
+ >{{
143
+ $t(
144
+ 'windward.games.components.content.blocks.seven_strikes.again'
145
+ )
146
+ }}</v-btn
147
+ >
148
+ <v-btn
149
+ @click="onChangeSlide(index + 1)"
150
+ color="primary ml-4"
151
+ >{{
152
+ $t(
153
+ 'windward.games.components.content.blocks.seven_strikes.next'
154
+ )
155
+ }}</v-btn
156
+ >
157
+ </v-row>
158
+ </v-container>
127
159
  </v-carousel-item>
128
160
  </v-carousel>
129
161
  </template>
@@ -152,6 +184,26 @@ export default {
152
184
  if (_.isEmpty(this.block.metadata.config)) {
153
185
  this.block.metadata.config = {}
154
186
  }
187
+ if (_.isEmpty(this.block.metadata.config.title)) {
188
+ this.block.metadata.config.title = this.$t(
189
+ 'windward.games.components.settings.seven_strikes.title'
190
+ )
191
+ }
192
+ if (_.isEmpty(this.block.metadata.config.instructions)) {
193
+ this.block.metadata.config.instructions = this.$t(
194
+ 'windward.games.components.settings.seven_strikes.instructions'
195
+ )
196
+ }
197
+ if (_.isEmpty(this.block.metadata.config.feedback_correct)) {
198
+ this.block.metadata.config.feedback_correct = this.$t(
199
+ 'windward.games.components.settings.bucket_game.form.feedback.correct_default'
200
+ )
201
+ }
202
+ if (_.isEmpty(this.block.metadata.config.feedback_correct)) {
203
+ this.block.metadata.config.feedback_incorrect = this.$t(
204
+ 'windward.games.components.settings.bucket_game.form.feedback.incorrect_default'
205
+ )
206
+ }
155
207
  if (_.isEmpty(this.block.metadata.config.words)) {
156
208
  this.block.metadata.config.words = []
157
209
  }
@@ -250,7 +302,7 @@ export default {
250
302
  thatIsIncorrect() {
251
303
  this.showFeedback = true
252
304
  // updates class
253
- this.feedbackStatus = 'error'
305
+ this.feedbackStatus = 'errorOutline'
254
306
  // gets custom or standard feedback
255
307
  if (
256
308
  !_.isEmpty(this.block.metadata.config.feedback_incorrect) &&
@@ -259,13 +311,13 @@ export default {
259
311
  this.feedback = this.block.metadata.config.feedback_incorrect
260
312
  } else {
261
313
  this.feedback = this.$t(
262
- 'plugin.games.components.content.blocks.word_jumble.incorrect'
314
+ 'windward.games.components.content.blocks.word_jumble.incorrect'
263
315
  )
264
316
  }
265
317
  },
266
318
  thatIsCorrect() {
267
319
  this.showFeedback = true
268
- this.feedbackStatus = 'success'
320
+ this.feedbackStatus = 'successOutline'
269
321
  if (
270
322
  !_.isEmpty(this.block.metadata.config.feedback_correct) &&
271
323
  this.block.metadata.config.feedback_correct !== ''
@@ -273,7 +325,7 @@ export default {
273
325
  this.feedback = this.block.metadata.config.feedback_correct
274
326
  } else {
275
327
  this.feedback = this.$t(
276
- 'plugin.games.components.content.blocks.word_jumble.correct'
328
+ 'windward.games.components.content.blocks.word_jumble.correct'
277
329
  )
278
330
  }
279
331
  },
@@ -296,7 +348,7 @@ export default {
296
348
  this.feedbackStatus = ''
297
349
  this.onStrike = 0
298
350
  this.feedback = this.$t(
299
- 'plugin.games.components.content.blocks.word_jumble.feedback'
351
+ 'windward.games.components.content.blocks.word_jumble.feedback'
300
352
  )
301
353
  // resets strikes
302
354
  this.sevenStrikesCounter.forEach((element) => {
@@ -329,39 +381,32 @@ export default {
329
381
  </script>
330
382
 
331
383
  <style scoped>
332
- .outline {
333
- border: 2px solid black;
334
- border-radius: 10px;
335
- }
336
- .clueAndJumble {
384
+ .p-clue-jumble {
337
385
  font-size: 20px;
338
386
  }
339
- .spanBold {
340
- font-weight: 900;
341
- }
342
- .error {
343
- border: dashed 2px #dc3d1a;
344
- background-color: #fff1f1;
387
+ .errorOutline {
388
+ border: 4px solid var(--v-error-base);
389
+ color: var(--v-error-base);
345
390
  }
346
- .success {
347
- border: dashed 2px #76b778;
348
- background-color: #f1fff3;
391
+ .successOutline {
392
+ border: 4px solid var(--v-success-base);
393
+ color: var(--v-success-base);
349
394
  }
350
- .textArea {
395
+ .container-text-area {
351
396
  width: 20px;
352
397
  height: 20px;
353
- border-bottom: 2px solid black;
398
+ border-bottom: 2px solid var(--v-primary-base);
354
399
  display: flex;
355
400
  justify-content: center;
356
401
  align-items: center;
357
402
  }
358
- .strikeArea {
359
- width: 40px;
360
- height: 40px;
361
- border: 2px solid black;
403
+ .container-strike-area {
404
+ color: gray;
405
+ font-size: 40px;
406
+ margin: 10px;
362
407
  }
363
- .strike {
364
- color: #dc3d1a;
408
+ .container-strike {
409
+ color: var(--v-error-base);
365
410
  font-size: 40px;
366
411
  margin: 10px;
367
412
  }
@@ -29,6 +29,13 @@ export default {
29
29
  'z x c v b n m',
30
30
  ],
31
31
  },
32
+ buttonTheme: [
33
+ {
34
+ class: 'primary',
35
+ buttons:
36
+ 'q w e r t y u i o p a s d f g h j k l z x c v b n m',
37
+ },
38
+ ],
32
39
  onChange: this.onChange,
33
40
  onKeyPress: this.onKeyPress,
34
41
  })
@@ -65,7 +72,7 @@ export default {
65
72
  <!-- Add "scoped" attribute to limit CSS to this component only -->
66
73
  <style scoped>
67
74
  .hg-theme-default {
68
- padding: 55px;
69
- margin-top: 25px;
75
+ padding: 25px 55px;
76
+ background-color: transparent !important;
70
77
  }
71
78
  </style>
@@ -4,7 +4,7 @@
4
4
  <h3
5
5
  :aria-label="
6
6
  $t(
7
- 'plugin.games.components.content.blocks.slideshow.slideshow_title'
7
+ 'windward.games.components.content.blocks.slideshow.slideshow_title'
8
8
  )
9
9
  "
10
10
  tabindex="0"
@@ -18,7 +18,7 @@
18
18
  <p tabindex="0">
19
19
  {{
20
20
  $t(
21
- 'plugin.games.components.content.blocks.slideshow.basic_instructions'
21
+ 'windward.games.components.content.blocks.slideshow.basic_instructions'
22
22
  )
23
23
  }}
24
24
  </p>
@@ -103,7 +103,9 @@ export default {
103
103
  this.block.metadata.config = {}
104
104
  }
105
105
  if (_.isEmpty(this.block.metadata.config.title)) {
106
- this.block.metadata.config.title = ''
106
+ this.block.metadata.config.title = this.$t(
107
+ 'windward.games.components.settings.slideshow.form.slideshow_title'
108
+ )
107
109
  }
108
110
 
109
111
  if (_.isEmpty(this.block.metadata.config.instructions)) {
@@ -29,8 +29,10 @@ export default {
29
29
  // reveals correct answer in input areas
30
30
  if (newValue === true) {
31
31
  for (let i = 0; i < this.value.value.length; i++) {
32
- const letter = this.answer.charAt(i)
33
- this.letterArray[i].value = letter
32
+ if (this.answer.length > 0) {
33
+ const letter = this.answer.charAt(i)
34
+ this.letterArray[i].value = letter
35
+ }
34
36
  }
35
37
  } else {
36
38
  this.splitUpWord()
@@ -74,8 +76,6 @@ export default {
74
76
  // handles focusing on next element after student enters a letter
75
77
  if (!_.isEmpty(event) && this.$refs['input' + (index + 1)]) {
76
78
  this.$refs['input' + (index + 1)][0].focus()
77
- } else if (index !== 0 && _.isEmpty(event)) {
78
- this.$refs['input' + (index - 1)][0].focus()
79
79
  }
80
80
  this.$emit('input', this.letterArray)
81
81
  },