@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,683 @@
1
+ <template>
2
+ <div>
3
+ <br />
4
+ <v-form ref="form" v-model="valid" v-if="!loading">
5
+ <v-text-field
6
+ v-model="block.metadata.config.title"
7
+ :counter="50"
8
+ :label="
9
+ $t(
10
+ 'plugin.games.components.settings.bucket_game.form.title'
11
+ )
12
+ "
13
+ ref="title"
14
+ ></v-text-field>
15
+ <br />
16
+ <v-textarea
17
+ outlined
18
+ auto-grow
19
+ v-model="block.metadata.config.instructions"
20
+ :counter="255"
21
+ :label="
22
+ $t(
23
+ 'plugin.games.components.settings.bucket_game.form.instructions'
24
+ )
25
+ "
26
+ ></v-textarea>
27
+ <br />
28
+ <v-container class="background pa-0">
29
+ <v-expansion-panels flat>
30
+ <v-expansion-panel>
31
+ <v-expansion-panel-header class="pa-0">
32
+ <h3>
33
+ {{
34
+ $t(
35
+ 'plugin.games.components.settings.bucket_game.form.buckets'
36
+ )
37
+ }}
38
+ </h3>
39
+ </v-expansion-panel-header>
40
+ <v-expansion-panel-content>
41
+ <v-container
42
+ v-for="(item, index) in block.metadata.config
43
+ .bucket_titles"
44
+ :key="'bucket_' + index"
45
+ fluid
46
+ grid-list
47
+ class="cardOutline"
48
+ elevation="0"
49
+ outlined
50
+ tile
51
+ >
52
+ <v-layout row wrap outlined>
53
+ <v-flex xs10 :class="bottomBorder(index)">
54
+ <p
55
+ class="text-truncate pa-0 ma-0 pTagContainer"
56
+ @click="onOpenEditor(index)"
57
+ v-on:keyup.enter="
58
+ onOpenEditor(index)
59
+ "
60
+ @mouseover="onHover"
61
+ @mouseleave="onHoverLeave"
62
+ :class="cursor"
63
+ tabindex="0"
64
+ >
65
+ <v-icon class="pl-2"
66
+ >mdi-drag-vertical</v-icon
67
+ >
68
+ <span class="ellipsisText">
69
+ {{
70
+ item.title
71
+ ? block.metadata.config
72
+ .bucket_titles[
73
+ index
74
+ ].title
75
+ : $t(
76
+ 'plugin.games.components.settings.bucket_game.form.click_here'
77
+ )
78
+ }}
79
+ </span>
80
+ </p>
81
+ </v-flex>
82
+ <v-flex
83
+ xs2
84
+ class="sideBorder d-flex justify-center"
85
+ :class="bottomBorder(index)"
86
+ >
87
+ <v-icon
88
+ @click="
89
+ onConfirmDeleteBucket(index)
90
+ "
91
+ >mdi-delete-outline</v-icon
92
+ >
93
+ </v-flex>
94
+ <v-container v-if="item.expand">
95
+ <v-flex xs12 class="pt-4">
96
+ <p
97
+ color="primary"
98
+ class="labelChanges"
99
+ >
100
+ {{
101
+ $t(
102
+ 'plugin.games.components.content.blocks.bucket_game.name'
103
+ )
104
+ }}
105
+ </p>
106
+ <v-text-field
107
+ v-if="item.expand"
108
+ outlined
109
+ :autofocus="true"
110
+ v-model="
111
+ block.metadata.config
112
+ .bucket_titles[index]
113
+ .title
114
+ "
115
+ ></v-text-field>
116
+ </v-flex>
117
+ <v-flex xs12 class="pt-4">
118
+ <p
119
+ color="primary"
120
+ class="labelChanges"
121
+ >
122
+ {{
123
+ $t(
124
+ 'plugin.games.components.settings.bucket_game.form.color'
125
+ )
126
+ }}
127
+ </p>
128
+ <v-color-picker
129
+ v-model="item.color"
130
+ hide-canvas
131
+ hide-inputs
132
+ hide-sliders
133
+ show-swatches
134
+ :swatches="swatches"
135
+ swatches-max-height="130"
136
+ ></v-color-picker>
137
+ </v-flex>
138
+ <v-flex xs12 class="pt-4">
139
+ <p
140
+ color="primary"
141
+ class="labelChanges"
142
+ >
143
+ {{
144
+ $t(
145
+ 'plugin.games.components.content.blocks.bucket_game.answers'
146
+ )
147
+ }}
148
+ </p>
149
+ </v-flex>
150
+ <template
151
+ v-for="(
152
+ bucket, indexBucket
153
+ ) in block.metadata.config
154
+ .bucket_answers[index]"
155
+ >
156
+ <v-container
157
+ :key="indexBucket"
158
+ class="pa-0 d-flex flex-wrap align-center cardOutline"
159
+ >
160
+ <v-flex
161
+ xs10
162
+ :class="
163
+ bottomBorder(
164
+ indexBucket,
165
+ true,
166
+ index
167
+ )
168
+ "
169
+ class="rightSideBorder"
170
+ >
171
+ <p
172
+ class="text-truncate pa-0 ma-0 pTagContainer"
173
+ @click="
174
+ onOpenEditor(
175
+ index,
176
+ indexBucket
177
+ )
178
+ "
179
+ v-on:keyup.enter="
180
+ onOpenEditor(
181
+ index,
182
+ indexBucket
183
+ )
184
+ "
185
+ @mouseover="onHover"
186
+ @mouseleave="
187
+ onHoverLeave
188
+ "
189
+ :class="cursor"
190
+ tabindex="0"
191
+ >
192
+ <v-icon class="pl-2"
193
+ >mdi-drag-vertical</v-icon
194
+ >
195
+ <span
196
+ class="ellipsisText"
197
+ >
198
+ {{
199
+ bucket.display
200
+ ? bucket.display
201
+ : $t(
202
+ 'plugin.games.components.settings.bucket_game.form.click_here'
203
+ )
204
+ }}
205
+ </span>
206
+ </p>
207
+ </v-flex>
208
+ <v-flex
209
+ xs2
210
+ class="d-flex justify-center setHeight"
211
+ :class="
212
+ bottomBorder(
213
+ indexBucket,
214
+ true,
215
+ index
216
+ )
217
+ "
218
+ >
219
+ <v-icon
220
+ @click="
221
+ onConfirmDelete(
222
+ indexBucket,
223
+ index
224
+ )
225
+ "
226
+ >mdi-delete-outline</v-icon
227
+ >
228
+ </v-flex>
229
+ <v-flex
230
+ xs12
231
+ v-if="bucket.expand"
232
+ class="pa-4"
233
+ >
234
+ <v-row
235
+ class="ma-1 d-flex align-center justify-space-between"
236
+ >
237
+ <div
238
+ color="primary mb-0"
239
+ class="labelChanges d-flex align-center"
240
+ >
241
+ {{
242
+ $t(
243
+ 'plugin.games.components.content.blocks.bucket_game.form.answer'
244
+ )
245
+ }}
246
+ </div>
247
+ </v-row>
248
+ <v-text-field
249
+ outlined
250
+ :autofocus="true"
251
+ v-model="
252
+ block.metadata
253
+ .config
254
+ .bucket_answers[
255
+ index
256
+ ][indexBucket]
257
+ .display
258
+ "
259
+ ></v-text-field>
260
+ <v-row
261
+ class="ma-1 d-flex align-center justify-space-between"
262
+ >
263
+ <div
264
+ color="primary mb-0"
265
+ class="labelChanges d-flex align-center"
266
+ >
267
+ {{
268
+ $t(
269
+ 'plugin.games.components.content.blocks.bucket_game.form.value'
270
+ )
271
+ }}
272
+ </div>
273
+ </v-row>
274
+ <v-text-field
275
+ outlined
276
+ v-model="
277
+ block.metadata
278
+ .config
279
+ .bucket_answers[
280
+ index
281
+ ][indexBucket]
282
+ .display_value
283
+ "
284
+ ></v-text-field>
285
+ <v-row
286
+ class="ma-1 d-flex align-center justify-space-between"
287
+ >
288
+ <div
289
+ color="primary mb-0"
290
+ class="labelChanges d-flex align-center"
291
+ >
292
+ {{
293
+ $t(
294
+ 'plugin.games.components.content.blocks.bucket_game.form.feedback.feedback'
295
+ )
296
+ }}
297
+ </div>
298
+ </v-row>
299
+ <v-text-field
300
+ outlined
301
+ v-model="
302
+ block.metadata
303
+ .config
304
+ .bucket_answers[
305
+ index
306
+ ][indexBucket]
307
+ .feedback
308
+ "
309
+ ></v-text-field>
310
+ </v-flex>
311
+ </v-container>
312
+ </template>
313
+ <p
314
+ @mouseover="onHover"
315
+ @mouseleave="onHoverLeave"
316
+ @click="onAddBucketAnswer(index)"
317
+ v-on:keyup.enter="
318
+ onAddBucketAnswer(index)
319
+ "
320
+ class="fullWidth"
321
+ :class="cursor"
322
+ tabindex="0"
323
+ >
324
+ <v-icon class="primary mr-2"
325
+ >mdi-plus</v-icon
326
+ >
327
+ {{
328
+ $t(
329
+ 'plugin.games.components.settings.bucket_game.form.add_answer'
330
+ )
331
+ }}
332
+ </p>
333
+ </v-container>
334
+ </v-layout>
335
+ </v-container>
336
+ <p
337
+ @mouseover="onHover"
338
+ @mouseleave="onHoverLeave"
339
+ @click="onAddBucket"
340
+ v-on:keyup.enter="onAddBucket"
341
+ class="fullWidth"
342
+ :class="cursor"
343
+ tabindex="0"
344
+ >
345
+ <v-icon class="primary mr-2">mdi-plus</v-icon>
346
+ {{
347
+ $t(
348
+ 'plugin.games.components.settings.bucket_game.form.add_bucket'
349
+ )
350
+ }}
351
+ </p>
352
+ <br />
353
+ </v-expansion-panel-content>
354
+ </v-expansion-panel>
355
+ </v-expansion-panels>
356
+ </v-container>
357
+ <v-textarea
358
+ class="pt-4"
359
+ outlined
360
+ auto-grow
361
+ v-model="block.metadata.config.feedback_correct"
362
+ :counter="255"
363
+ :label="
364
+ $t(
365
+ 'plugin.games.components.settings.bucket_game.form.feedback.correct'
366
+ )
367
+ "
368
+ ></v-textarea>
369
+ <v-textarea
370
+ outlined
371
+ auto-grow
372
+ v-model="block.metadata.config.feedback_incorrect"
373
+ :counter="255"
374
+ :label="
375
+ $t(
376
+ 'plugin.games.components.settings.bucket_game.form.feedback.incorrect'
377
+ )
378
+ "
379
+ ></v-textarea>
380
+ </v-form>
381
+ <div v-if="loading" class="text-center">
382
+ <v-progress-circular
383
+ :size="70"
384
+ :width="7"
385
+ color="primary"
386
+ indeterminate
387
+ ></v-progress-circular>
388
+ </div>
389
+ </div>
390
+ </template>
391
+
392
+ <script>
393
+ import _ from 'lodash'
394
+ import {
395
+ MathExpressionEditor,
396
+ MathLiveWrapper,
397
+ ContentViewer,
398
+ } from '@windward/core/utils'
399
+ import colors from 'vuetify/lib/util/colors'
400
+ import BaseContentSettings from '~/components/Content/Tool/BaseContentSettings.js'
401
+ export default {
402
+ name: 'BucketGameSettingsManager',
403
+ extends: BaseContentSettings,
404
+ components: {
405
+ MathExpressionEditor,
406
+ MathLiveWrapper,
407
+ ContentViewer,
408
+ },
409
+ beforeMount() {
410
+ if (_.isEmpty(this.block)) {
411
+ this.block = {}
412
+ }
413
+ if (_.isEmpty(this.block.metadata)) {
414
+ this.block.metadata = {}
415
+ }
416
+ if (_.isEmpty(this.block.metadata.config)) {
417
+ this.block.metadata.config = {}
418
+ }
419
+ if (_.isEmpty(this.block.metadata.config.title)) {
420
+ this.block.metadata.config.title = ''
421
+ }
422
+ if (_.isEmpty(this.block.metadata.config.instructions)) {
423
+ this.block.metadata.config.instructions = ''
424
+ }
425
+ if (_.isEmpty(this.block.metadata.config.feedback_correct)) {
426
+ this.block.metadata.config.feedback_correct = ''
427
+ }
428
+ if (_.isEmpty(this.block.metadata.config.feedback_incorrect)) {
429
+ this.block.metadata.config.feedback_incorrect = ''
430
+ }
431
+ if (_.isEmpty(this.block.metadata.config.bucket_titles)) {
432
+ this.block.metadata.config.bucket_titles = []
433
+ this.onAddBucket()
434
+ }
435
+ if (_.isEmpty(this.block.metadata.config.bucket_answers)) {
436
+ this.block.metadata.config.bucket_answers = []
437
+ }
438
+ if (_.isEmpty(this.block.body)) {
439
+ this.block.body = this.$t(
440
+ 'plugin.games.components.content.blocks.bucket_game.game_title'
441
+ )
442
+ }
443
+ },
444
+ data() {
445
+ return {
446
+ valid: true,
447
+ dialog: false,
448
+ loading: false,
449
+ cursor: '',
450
+ swatches: [
451
+ [colors.grey.lighten1, colors.blueGrey.lighten5],
452
+ [colors.brown.lighten3, colors.red.lighten3],
453
+ [colors.orange.lighten3, colors.yellow.lighten4],
454
+ [colors.lightGreen.lighten4, colors.teal.lighten4],
455
+ [colors.lightBlue.lighten4, colors.deepPurple.lighten3],
456
+ ],
457
+ }
458
+ },
459
+ methods: {
460
+ onAddBucket() {
461
+ this.block.metadata.config.bucket_titles.forEach((element) => {
462
+ element.expand = false
463
+ })
464
+ let emptyString = {
465
+ title: '',
466
+ color: '',
467
+ expand: true,
468
+ }
469
+ this.block.metadata.config.bucket_titles.push(emptyString)
470
+ },
471
+ onAddBucketAnswer(mainBucketIndex) {
472
+ if (
473
+ this.block.metadata.config.bucket_answers[mainBucketIndex] ===
474
+ undefined
475
+ ) {
476
+ this.block.metadata.config.bucket_answers.push([])
477
+ } else if (
478
+ this.block.metadata.config.bucket_answers[mainBucketIndex]
479
+ .length > 0
480
+ ) {
481
+ this.block.metadata.config.bucket_answers[
482
+ mainBucketIndex
483
+ ].forEach((element) => {
484
+ element.expand = false
485
+ })
486
+ }
487
+ const answerObject = {
488
+ bucket_index: mainBucketIndex,
489
+ display: '',
490
+ display_value: '',
491
+ feedback: '',
492
+ expand: true,
493
+ id: this.block.metadata.config.bucket_answers.length + 1,
494
+ }
495
+ this.block.metadata.config.bucket_answers[mainBucketIndex].push(
496
+ answerObject
497
+ )
498
+ },
499
+ onHover(index) {
500
+ this.cursor = 'changePointer'
501
+ },
502
+ onHoverLeave() {
503
+ this.cursor = ''
504
+ },
505
+ bottomBorder(index, bucketAnswer = null, mainIndex = null) {
506
+ if (bucketAnswer !== null) {
507
+ if (
508
+ this.block.metadata.config.bucket_answers[mainIndex][index]
509
+ .expand === true
510
+ ) {
511
+ return 'bottomBorder'
512
+ } else {
513
+ return null
514
+ }
515
+ } else {
516
+ if (
517
+ this.block.metadata.config.bucket_titles[index].expand ===
518
+ true
519
+ ) {
520
+ return 'bottomBorder'
521
+ } else {
522
+ return null
523
+ }
524
+ }
525
+ },
526
+ onOpenEditor(bucketIndex, answerIndex = null) {
527
+ if (answerIndex !== null) {
528
+ this.block.metadata.config.bucket_answers[bucketIndex][
529
+ answerIndex
530
+ ].expand =
531
+ !this.block.metadata.config.bucket_answers[bucketIndex][
532
+ answerIndex
533
+ ].expand
534
+ this.block.metadata.config.bucket_answers[bucketIndex].forEach(
535
+ (element) => {
536
+ let getIndex =
537
+ this.block.metadata.config.bucket_answers[
538
+ bucketIndex
539
+ ].indexOf(element)
540
+ if (answerIndex !== getIndex) {
541
+ element.expand = false
542
+ }
543
+ }
544
+ )
545
+ } else {
546
+ this.block.metadata.config.bucket_titles[bucketIndex].expand =
547
+ !this.block.metadata.config.bucket_titles[bucketIndex]
548
+ .expand
549
+ if (this.block.metadata.config.bucket_answers[bucketIndex]) {
550
+ this.block.metadata.config.bucket_answers[
551
+ bucketIndex
552
+ ].forEach((element) => {
553
+ element.expand = false
554
+ })
555
+ }
556
+ this.block.metadata.config.bucket_titles.forEach((element) => {
557
+ let getIndex =
558
+ this.block.metadata.config.bucket_titles.indexOf(
559
+ element
560
+ )
561
+ if (bucketIndex !== getIndex) {
562
+ element.expand = false
563
+ }
564
+ })
565
+ }
566
+ },
567
+ onConfirmDeleteBucket(index) {
568
+ this.$toast.info(this.$t('shared.forms.confirm_delete_subject'), {
569
+ icon: 'mdi-help',
570
+ duration: null,
571
+ action: [
572
+ {
573
+ text: this.$t('shared.forms.cancel'),
574
+ onClick: (e, toastObject) => {
575
+ toastObject.goAway(0)
576
+ },
577
+ },
578
+ {
579
+ text: this.$t('shared.forms.confirm'),
580
+ // router navigation
581
+ onClick: (e, toastObject) => {
582
+ this.block.metadata.config.bucket_titles.splice(
583
+ index,
584
+ 1
585
+ )
586
+ this.block.metadata.config.bucket_answers.splice(
587
+ index,
588
+ 1
589
+ )
590
+ toastObject.goAway(0)
591
+ },
592
+ },
593
+ ],
594
+ })
595
+ },
596
+ onConfirmDelete(answerIndex, bucketIndex) {
597
+ this.$toast.info(this.$t('shared.forms.confirm_delete_text'), {
598
+ icon: 'mdi-help',
599
+ duration: null,
600
+ action: [
601
+ {
602
+ text: this.$t('shared.forms.cancel'),
603
+ onClick: (e, toastObject) => {
604
+ toastObject.goAway(0)
605
+ },
606
+ },
607
+ {
608
+ text: this.$t('shared.forms.confirm'),
609
+ // router navigation
610
+ onClick: (e, toastObject) => {
611
+ this.block.metadata.config.bucket_answers[
612
+ bucketIndex
613
+ ].splice(answerIndex, 1)
614
+ toastObject.goAway(0)
615
+ },
616
+ },
617
+ ],
618
+ })
619
+ },
620
+ },
621
+ }
622
+ </script>
623
+
624
+ <style scoped>
625
+ .v-progress-circular {
626
+ margin: 1rem;
627
+ }
628
+ .changePointer {
629
+ cursor: pointer !important;
630
+ }
631
+ .v-expansion-panel-content >>> .v-expansion-panel-content__wrap {
632
+ padding: 0 !important;
633
+ }
634
+ .pTagContainer {
635
+ height: 45px;
636
+ display: flex;
637
+ align-items: center;
638
+ }
639
+ #contentBlockAsset {
640
+ max-width: 251px;
641
+ }
642
+ .customButton {
643
+ min-width: 34px !important;
644
+ }
645
+ .itemHeight {
646
+ display: flex;
647
+ align-content: center;
648
+ justify-content: space-between;
649
+ }
650
+ .bottomBorder {
651
+ border-bottom: 2px solid var(--v-primary-base);
652
+ }
653
+ .setHeight {
654
+ height: 47px;
655
+ }
656
+ .fullWidth {
657
+ display: flex;
658
+ justify-content: center;
659
+ align-items: center;
660
+ font-weight: bold;
661
+ font-size: 16px;
662
+ }
663
+ .cardOutline {
664
+ border: solid 2px var(--v-primary-base);
665
+ border-radius: 3px !important;
666
+ margin-bottom: 8px;
667
+ }
668
+ .sideBorder {
669
+ border-left: 2px solid var(--v-primary-base);
670
+ }
671
+ .rightSideBorder {
672
+ border-right: 2px solid var(--v-primary-base);
673
+ }
674
+ .labelChanges {
675
+ font-size: 16px;
676
+ font-weight: 500;
677
+ }
678
+ .ellipsisText {
679
+ white-space: nowrap;
680
+ overflow: hidden;
681
+ text-overflow: ellipsis;
682
+ }
683
+ </style>