@windward/games 0.0.1

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 (68) hide show
  1. package/.editorconfig +13 -0
  2. package/.eslintrc.js +11 -0
  3. package/.prettierrc +4 -0
  4. package/README.md +43 -0
  5. package/babel.config.js +1 -0
  6. package/components/content/CrudTable.vue +295 -0
  7. package/components/content/DataTableRowHandler.vue +113 -0
  8. package/components/content/DatableEditor.vue +223 -0
  9. package/components/content/blocks/BaseContentBlock.vue +8 -0
  10. package/components/content/blocks/dragDrop/BucketGame.vue +520 -0
  11. package/components/content/blocks/dragDrop/SortingGame.vue +303 -0
  12. package/components/content/blocks/flashcards/CardFace.vue +112 -0
  13. package/components/content/blocks/flashcards/Flashcard.vue +150 -0
  14. package/components/content/blocks/flashcards/FlashcardSlides.vue +121 -0
  15. package/components/content/blocks/matchingGame/MatchingGame.vue +545 -0
  16. package/components/content/blocks/quizshowGame/AnswerPanel.vue +338 -0
  17. package/components/content/blocks/quizshowGame/Gridview.vue +260 -0
  18. package/components/content/blocks/quizshowGame/QuizShow.vue +516 -0
  19. package/components/content/blocks/quizshowGame/feedbackIcons.vue +41 -0
  20. package/components/content/blocks/slideshow/SlideShow.vue +175 -0
  21. package/components/settings/BucketGameSettingsManager.vue +683 -0
  22. package/components/settings/FlashCardSlidesManager.vue +489 -0
  23. package/components/settings/MatchingGameManager.vue +775 -0
  24. package/components/settings/QuizShowSettingsManager.vue +408 -0
  25. package/components/settings/SlideShowManager.vue +248 -0
  26. package/components/settings/SortingGameSettingsManager.vue +286 -0
  27. package/i18n/en-US/components/content/blocks/bucket_game.ts +39 -0
  28. package/i18n/en-US/components/content/blocks/flashcard.ts +5 -0
  29. package/i18n/en-US/components/content/blocks/index.ts +15 -0
  30. package/i18n/en-US/components/content/blocks/matching_game.ts +26 -0
  31. package/i18n/en-US/components/content/blocks/quizshow_game.ts +35 -0
  32. package/i18n/en-US/components/content/blocks/slideshow.ts +13 -0
  33. package/i18n/en-US/components/content/blocks/sorting_game.ts +5 -0
  34. package/i18n/en-US/components/content/crud_table.ts +6 -0
  35. package/i18n/en-US/components/content/index.ts +7 -0
  36. package/i18n/en-US/components/index.ts +9 -0
  37. package/i18n/en-US/components/navigation/index.ts +5 -0
  38. package/i18n/en-US/components/settings/bucket_game.ts +35 -0
  39. package/i18n/en-US/components/settings/flashcard.ts +26 -0
  40. package/i18n/en-US/components/settings/index.ts +13 -0
  41. package/i18n/en-US/components/settings/matching_game.ts +15 -0
  42. package/i18n/en-US/components/settings/quizshow_game.ts +14 -0
  43. package/i18n/en-US/components/settings/slideshow.ts +11 -0
  44. package/i18n/en-US/index.ts +15 -0
  45. package/i18n/en-US/modules/index.ts +5 -0
  46. package/i18n/en-US/pages/index.ts +5 -0
  47. package/i18n/en-US/shared/content_blocks.ts +14 -0
  48. package/i18n/en-US/shared/index.ts +7 -0
  49. package/i18n/en-US/shared/settings.ts +10 -0
  50. package/i18n/en-US.ts +5 -0
  51. package/jest.config.js +18 -0
  52. package/package.json +51 -0
  53. package/plugin.js +150 -0
  54. package/test/blocks/dragDrop/BucketGame.spec.js +26 -0
  55. package/test/blocks/dragDrop/SortingGame.spec.js +47 -0
  56. package/test/blocks/flashcards/CardFace.spec.js +21 -0
  57. package/test/blocks/flashcards/FlashCardSlides.spec.js +24 -0
  58. package/test/blocks/flashcards/Flashcard.spec.js +24 -0
  59. package/test/blocks/matchingGame/MatchingGame.spec.js +26 -0
  60. package/test/blocks/quizShow/quizShow.spec.js +31 -0
  61. package/test/blocks/slideshow/slideshow.spec.js +24 -0
  62. package/test/mocks.js +2 -0
  63. package/test/settings/BucketGameManager.spec.js +125 -0
  64. package/test/settings/FlashCardSlidesManager.spec.js +24 -0
  65. package/test/settings/MatchingGameManager.spec.js +30 -0
  66. package/test/settings/SlideShowManager.spec.js +30 -0
  67. package/test/settings/SortingGameManager.spec.js +71 -0
  68. package/tsconfig.json +20 -0
@@ -0,0 +1,175 @@
1
+ <template>
2
+ <div>
3
+ <div class="header-description">
4
+ <h1
5
+ :aria-label="
6
+ $t(
7
+ 'plugin.games.components.content.blocks.slideshow.slideshow_title'
8
+ )
9
+ "
10
+ tabindex="0"
11
+ >
12
+ {{ block.metadata.config.title }}
13
+ </h1>
14
+
15
+ <p tabindex="0" class="pt-3">
16
+ {{ block.metadata.config.instructions }}
17
+ </p>
18
+ <p tabindex="0">
19
+ {{
20
+ $t(
21
+ 'plugin.games.components.content.blocks.slideshow.basic_instructions'
22
+ )
23
+ }}
24
+ </p>
25
+ </div>
26
+ <div>
27
+ <template v-if="block.metadata.config.slides.length !== 0">
28
+ <v-carousel v-model="model">
29
+ <template #prev="{ on, attrs }">
30
+ <v-btn
31
+ variant="elevated"
32
+ color="primary"
33
+ fab
34
+ class="nav-buttons"
35
+ v-bind="attrs"
36
+ v-on="on"
37
+ ><v-icon>mdi-chevron-left</v-icon></v-btn
38
+ >
39
+ </template>
40
+ <template #next="{ on, attrs }">
41
+ <v-btn
42
+ variant="elevated"
43
+ color="primary"
44
+ fab
45
+ class="nav-buttons"
46
+ v-bind="attrs"
47
+ v-on="on"
48
+ ><v-icon>mdi-chevron-right</v-icon></v-btn
49
+ >
50
+ </template>
51
+ <v-container
52
+ class="pa-0 ma-0"
53
+ v-for="(slide, index) in block.metadata.config.slides"
54
+ :key="index"
55
+ >
56
+ <v-carousel-item>
57
+ <div class="fill-height d-flex flex-column">
58
+ <div>
59
+ <h3 class="header-description">
60
+ {{ slide['header'] }} :
61
+ </h3>
62
+ <p class="header-description">
63
+ {{ slide['description'] }}
64
+ </p>
65
+ </div>
66
+ <div style="overflow: auto">
67
+ <v-img
68
+ v-if="slide['image']"
69
+ :src="
70
+ slide['image']['asset'][
71
+ 'public_url'
72
+ ]
73
+ "
74
+ :alt="slide['image_alt']"
75
+ height="100%"
76
+ contain
77
+ />
78
+ </div>
79
+ </div>
80
+ </v-carousel-item>
81
+ </v-container>
82
+ </v-carousel>
83
+ </template>
84
+ </div>
85
+ </div>
86
+ </template>
87
+
88
+ <script>
89
+ import _ from 'lodash'
90
+ import BaseContentBlock from '~/components/Content/Blocks/BaseContentBlock'
91
+
92
+ export default {
93
+ name: 'SlideShow',
94
+ extends: BaseContentBlock,
95
+ beforeMount() {
96
+ if (_.isEmpty(this.block)) {
97
+ this.block = {}
98
+ }
99
+ if (_.isEmpty(this.block.metadata)) {
100
+ this.block.metadata = {}
101
+ }
102
+ if (_.isEmpty(this.block.metadata.config)) {
103
+ this.block.metadata.config = {}
104
+ }
105
+ if (_.isEmpty(this.block.metadata.config.title)) {
106
+ this.block.metadata.config.title = ''
107
+ }
108
+
109
+ if (_.isEmpty(this.block.metadata.config.instructions)) {
110
+ this.block.metadata.config.instructions = ''
111
+ }
112
+
113
+ if (_.isEmpty(this.block.metadata.config.slides)) {
114
+ this.block.metadata.config.slides = []
115
+ }
116
+ },
117
+ data() {
118
+ return {
119
+ next: {},
120
+ prev: {},
121
+ model: null,
122
+ }
123
+ },
124
+ methods: {},
125
+ }
126
+ </script>
127
+ <style scoped>
128
+ .img-sizing {
129
+ height: 100% !important;
130
+ width: 100% !important;
131
+ object-fit: contain;
132
+ max-width: 87%;
133
+ }
134
+ .sheet-height {
135
+ height: 100%;
136
+ position: relative;
137
+ }
138
+ .fullHeight {
139
+ height: 75% !important;
140
+ }
141
+ .seventy {
142
+ height: 70% !important;
143
+ }
144
+ .sixty {
145
+ height: 60% !important;
146
+ }
147
+ .fifty {
148
+ height: 50% !important;
149
+ }
150
+ .forty {
151
+ height: 40% !important;
152
+ }
153
+ .thirty {
154
+ height: 30% !important;
155
+ }
156
+ .twenty {
157
+ height: 20% !important;
158
+ }
159
+ .ten {
160
+ height: 10% !important;
161
+ }
162
+ .nav-buttons {
163
+ font-size: 34px;
164
+ font-weight: 340;
165
+ }
166
+ </style>
167
+ <style>
168
+ .v-carousel__controls {
169
+ background: var(--v-primary-base) !important;
170
+ }
171
+ .header-description {
172
+ padding-left: 75px;
173
+ padding-right: 75px;
174
+ }
175
+ </style>