@pocketprep/ui-kit 3.4.69 → 3.4.70
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/dist/@pocketprep/ui-kit.js +326 -317
- package/dist/@pocketprep/ui-kit.js.map +1 -1
- package/dist/@pocketprep/ui-kit.umd.cjs +4 -4
- package/dist/@pocketprep/ui-kit.umd.cjs.map +1 -1
- package/dist/style.css +1 -1
- package/lib/components/Quiz/Question/MatrixChoicesContainer.vue +46 -24
- package/lib/components/Quiz/Question/MatrixRadioGroup.vue +27 -13
- package/lib/components/Quiz/Question/MobileMatrixChoicesContainer.vue +8 -6
- package/lib/components/Quiz/Question/MobileMatrixRadioGroup.vue +1 -1
- package/lib/components/Quiz/Question/Summary.vue +2 -6
- package/lib/components/Quiz/Question.vue +5 -3
- package/package.json +1 -1
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
:class="{
|
|
17
17
|
'uikit-question-matrix-choices-container__column-row-header--two-columns':
|
|
18
18
|
numberOfMatrixColumnLabels === 2,
|
|
19
|
-
'uikit-question-matrix-choices-container__column-row-header--radio-btn
|
|
19
|
+
'uikit-question-matrix-choices-container__column-row-header--radio-btn-three-columns':
|
|
20
20
|
question.type === 'Matrix Radio Button' && numberOfMatrixColumnLabels === 3
|
|
21
21
|
}"
|
|
22
22
|
v-html="matrixColumnLabelsForRows"
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
:class="{
|
|
27
27
|
'uikit-question-matrix-choices-container__column-header--two-columns':
|
|
28
28
|
numberOfMatrixColumnLabels === 2,
|
|
29
|
-
'uikit-question-matrix-choices-container__column-header--radio-btn
|
|
29
|
+
'uikit-question-matrix-choices-container__column-header--radio-btn-three-columns':
|
|
30
30
|
question.type === 'Matrix Radio Button' && numberOfMatrixColumnLabels === 3
|
|
31
31
|
}"
|
|
32
32
|
lang="de"
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
'uikit-question-matrix-choices-container__choices--checkbox':
|
|
57
57
|
question.type === 'Matrix Checkbox',
|
|
58
58
|
'uikit-question-matrix-choices-container__choices--two-columns':
|
|
59
|
-
numberOfMatrixColumnLabels === 2
|
|
59
|
+
numberOfMatrixColumnLabels === 2,
|
|
60
60
|
}"
|
|
61
61
|
v-dark="isDarkMode"
|
|
62
62
|
v-breakpoint:questionEl="breakpoints"
|
|
@@ -69,7 +69,9 @@
|
|
|
69
69
|
'uikit-question-matrix-choices-container__choice-text--checkbox':
|
|
70
70
|
question.type === 'Matrix Checkbox',
|
|
71
71
|
'uikit-question-matrix-choices-container__choice-text--two-columns':
|
|
72
|
-
numberOfMatrixColumnLabels === 2
|
|
72
|
+
numberOfMatrixColumnLabels === 2,
|
|
73
|
+
'uikit-question-matrix-choices-container__choice-text--radio-btn-two-columns':
|
|
74
|
+
question.type === 'Matrix Radio Button' && numberOfMatrixColumnLabels === 2,
|
|
73
75
|
}"
|
|
74
76
|
v-dark="isDarkMode"
|
|
75
77
|
v-breakpoint:questionEl="breakpoints"
|
|
@@ -137,7 +139,7 @@
|
|
|
137
139
|
matrixRadioGrid[rowIndex]"
|
|
138
140
|
>
|
|
139
141
|
<MatrixRadioGroup
|
|
140
|
-
:
|
|
142
|
+
:model-value="getRadioRowSelection(rowIndex)"
|
|
141
143
|
:review-mode="reviewMode"
|
|
142
144
|
:show-answers="showMatrixAnswers"
|
|
143
145
|
class="uikit-question-matrix-choices-container__radio-btns"
|
|
@@ -154,13 +156,13 @@
|
|
|
154
156
|
v-if="optionIcon.isCorrect"
|
|
155
157
|
v-dark="isDarkMode"
|
|
156
158
|
type="correct"
|
|
157
|
-
class="uikit-question-matrix-choices-
|
|
159
|
+
class="uikit-question-matrix-choices-container__radio-btn-correct-answer-icon"
|
|
158
160
|
/>
|
|
159
161
|
<Icon
|
|
160
162
|
v-else
|
|
161
163
|
v-dark="isDarkMode"
|
|
162
164
|
type="incorrect"
|
|
163
|
-
class="uikit-question-matrix-choices-
|
|
165
|
+
class="uikit-question-matrix-choices-container__radio-btn-incorrect-answer-icon"
|
|
164
166
|
/>
|
|
165
167
|
</template>
|
|
166
168
|
</template>
|
|
@@ -230,7 +232,7 @@ export default class MatrixChoicesContainer extends Vue {
|
|
|
230
232
|
return this.matrixChoiceLayout?.map(row => {
|
|
231
233
|
return {
|
|
232
234
|
choices: row as TMatrixChoiceKey[],
|
|
233
|
-
value: null,
|
|
235
|
+
value: null as TMatrixChoiceKey | null,
|
|
234
236
|
}
|
|
235
237
|
})
|
|
236
238
|
}
|
|
@@ -253,11 +255,11 @@ export default class MatrixChoicesContainer extends Vue {
|
|
|
253
255
|
|
|
254
256
|
mounted () {
|
|
255
257
|
if (this.question.type === 'Matrix Checkbox') {
|
|
256
|
-
this.matrixCheckboxGrid = this.
|
|
258
|
+
this.matrixCheckboxGrid = this.convertSelectedMatrixChoiceToCheckboxGrid()
|
|
257
259
|
}
|
|
258
260
|
|
|
259
261
|
if (this.question.type === 'Matrix Radio Button') {
|
|
260
|
-
this.matrixRadioGrid = this.
|
|
262
|
+
this.matrixRadioGrid = this.convertSelectedMatrixChoiceToRadioBtnGrid()
|
|
261
263
|
}
|
|
262
264
|
}
|
|
263
265
|
|
|
@@ -274,7 +276,7 @@ export default class MatrixChoicesContainer extends Vue {
|
|
|
274
276
|
}
|
|
275
277
|
|
|
276
278
|
convertSelectedMatrixChoiceToRadioBtnGrid () {
|
|
277
|
-
const radioBtnGrid = this.
|
|
279
|
+
const radioBtnGrid = this.defaultRadioButtonGrid
|
|
278
280
|
this.selectedMatrixChoices.forEach(choice => {
|
|
279
281
|
const rowIndex = Number(choice.substring(1, choice.indexOf('_'))) - 1
|
|
280
282
|
if (radioBtnGrid && radioBtnGrid[rowIndex]) {
|
|
@@ -486,7 +488,7 @@ export default class MatrixChoicesContainer extends Vue {
|
|
|
486
488
|
}
|
|
487
489
|
|
|
488
490
|
&__column-row-header {
|
|
489
|
-
width:
|
|
491
|
+
width: 286px;
|
|
490
492
|
|
|
491
493
|
&--tablet-landscape {
|
|
492
494
|
width: 285px;
|
|
@@ -500,8 +502,8 @@ export default class MatrixChoicesContainer extends Vue {
|
|
|
500
502
|
width: 303px;
|
|
501
503
|
}
|
|
502
504
|
|
|
503
|
-
&--radio-btn
|
|
504
|
-
width:
|
|
505
|
+
&--radio-btn-three-columns {
|
|
506
|
+
width: 276px;
|
|
505
507
|
}
|
|
506
508
|
}
|
|
507
509
|
|
|
@@ -531,7 +533,7 @@ export default class MatrixChoicesContainer extends Vue {
|
|
|
531
533
|
}
|
|
532
534
|
}
|
|
533
535
|
|
|
534
|
-
&--radio-btn
|
|
536
|
+
&--radio-btn-three-columns {
|
|
535
537
|
&:not(:last-child) {
|
|
536
538
|
margin-right: 15px;
|
|
537
539
|
}
|
|
@@ -598,7 +600,7 @@ export default class MatrixChoicesContainer extends Vue {
|
|
|
598
600
|
background: $white;
|
|
599
601
|
box-shadow: 0px 1px 4px 0px rgba(71, 89, 103, 0.30);
|
|
600
602
|
display: flex;
|
|
601
|
-
padding: 12px 10px
|
|
603
|
+
padding: 12px 10px 0 14px;
|
|
602
604
|
position: relative;
|
|
603
605
|
transition: 0.1s padding ease;
|
|
604
606
|
align-items: flex-start;
|
|
@@ -617,10 +619,6 @@ export default class MatrixChoicesContainer extends Vue {
|
|
|
617
619
|
&--mobile {
|
|
618
620
|
display: none;
|
|
619
621
|
}
|
|
620
|
-
|
|
621
|
-
&--checkbox {
|
|
622
|
-
padding-bottom: 0;
|
|
623
|
-
}
|
|
624
622
|
}
|
|
625
623
|
|
|
626
624
|
&__choice-text {
|
|
@@ -631,12 +629,18 @@ export default class MatrixChoicesContainer extends Vue {
|
|
|
631
629
|
font-weight: 500;
|
|
632
630
|
line-height: 23px;
|
|
633
631
|
letter-spacing: -0.1px;
|
|
632
|
+
margin-bottom: 12px;
|
|
634
633
|
|
|
635
634
|
&--two-columns {
|
|
636
635
|
width: 279px;
|
|
637
636
|
margin-right: 24px;
|
|
638
637
|
}
|
|
639
638
|
|
|
639
|
+
&--radio-btn-two-columns {
|
|
640
|
+
width: 279px;
|
|
641
|
+
margin-right: 12px;
|
|
642
|
+
}
|
|
643
|
+
|
|
640
644
|
&--dark {
|
|
641
645
|
color: $barely-background;
|
|
642
646
|
}
|
|
@@ -653,10 +657,6 @@ export default class MatrixChoicesContainer extends Vue {
|
|
|
653
657
|
p {
|
|
654
658
|
margin: 0;
|
|
655
659
|
}
|
|
656
|
-
|
|
657
|
-
&--checkbox {
|
|
658
|
-
margin-bottom: 12px;
|
|
659
|
-
}
|
|
660
660
|
}
|
|
661
661
|
|
|
662
662
|
&__mobile-choices {
|
|
@@ -717,5 +717,27 @@ export default class MatrixChoicesContainer extends Vue {
|
|
|
717
717
|
color: $rosa;
|
|
718
718
|
}
|
|
719
719
|
}
|
|
720
|
+
|
|
721
|
+
&__radio-btn-correct-answer-icon {
|
|
722
|
+
margin-top: -10px;
|
|
723
|
+
width: 21px;
|
|
724
|
+
height: 22px;
|
|
725
|
+
color: $cadaverous;
|
|
726
|
+
|
|
727
|
+
&--dark {
|
|
728
|
+
color: $jungle-green;
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
&__radio-btn-incorrect-answer-icon {
|
|
733
|
+
margin-top: -10px;
|
|
734
|
+
width: 21px;
|
|
735
|
+
height: 22px;
|
|
736
|
+
color: $pepper;
|
|
737
|
+
|
|
738
|
+
&--dark {
|
|
739
|
+
color: $rosa;
|
|
740
|
+
}
|
|
741
|
+
}
|
|
720
742
|
}
|
|
721
743
|
</style>
|
|
@@ -36,19 +36,24 @@ const selectChoice = (choiceKey: string) => {
|
|
|
36
36
|
v-for="(choice) in choices"
|
|
37
37
|
:key="choice"
|
|
38
38
|
>
|
|
39
|
-
<
|
|
40
|
-
class="uikit-matrix-radio-group__radio-btn"
|
|
41
|
-
:selected="choice === selectedChoice"
|
|
42
|
-
:disabled="disabled"
|
|
43
|
-
:isDarkMode="isDarkMode"
|
|
44
|
-
:color="showAnswers
|
|
45
|
-
? selectedChoice?.startsWith('a')
|
|
46
|
-
? 'green'
|
|
47
|
-
: 'gray'
|
|
48
|
-
: 'blue'
|
|
49
|
-
"
|
|
39
|
+
<div
|
|
40
|
+
class="uikit-matrix-radio-group__radio-btn-div"
|
|
50
41
|
@click="!disabled && !showAnswers && selectChoice(choice)"
|
|
51
|
-
|
|
42
|
+
@keypress.enter="!disabled && !showAnswers && selectChoice(choice)"
|
|
43
|
+
>
|
|
44
|
+
<RadioButton
|
|
45
|
+
class="uikit-matrix-radio-group__radio-btn"
|
|
46
|
+
:selected="choice === selectedChoice"
|
|
47
|
+
:disabled="disabled"
|
|
48
|
+
:isDarkMode="isDarkMode"
|
|
49
|
+
:color="showAnswers
|
|
50
|
+
? selectedChoice?.startsWith('a')
|
|
51
|
+
? 'green'
|
|
52
|
+
: 'gray'
|
|
53
|
+
: 'blue'
|
|
54
|
+
"
|
|
55
|
+
/>
|
|
56
|
+
</div>
|
|
52
57
|
<div class="uikit-matrix-radio-group__option-icon">
|
|
53
58
|
<slot
|
|
54
59
|
name="optionIcon"
|
|
@@ -76,7 +81,6 @@ const selectChoice = (choiceKey: string) => {
|
|
|
76
81
|
list-style: none;
|
|
77
82
|
margin: 0;
|
|
78
83
|
padding: 0;
|
|
79
|
-
cursor: pointer;
|
|
80
84
|
|
|
81
85
|
&--disabled {
|
|
82
86
|
cursor: default;
|
|
@@ -100,5 +104,15 @@ const selectChoice = (choiceKey: string) => {
|
|
|
100
104
|
display: flex;
|
|
101
105
|
align-items: center;
|
|
102
106
|
}
|
|
107
|
+
|
|
108
|
+
&__radio-btn-div {
|
|
109
|
+
width: 40px;
|
|
110
|
+
height: 40px;
|
|
111
|
+
display: flex;
|
|
112
|
+
align-items: center;
|
|
113
|
+
justify-content: center;
|
|
114
|
+
margin-top: -10px;
|
|
115
|
+
cursor: pointer;
|
|
116
|
+
}
|
|
103
117
|
}
|
|
104
118
|
</style>
|
|
@@ -63,7 +63,6 @@
|
|
|
63
63
|
class="uikit-question-mobile-matrix-choices-container__selected-choice-labels-container"
|
|
64
64
|
>
|
|
65
65
|
<div
|
|
66
|
-
|
|
67
66
|
v-dark="isDarkMode"
|
|
68
67
|
v-for="(colHeader, colHeaderIndex) in selectedColumnHeaders"
|
|
69
68
|
:key="colHeaderIndex"
|
|
@@ -220,7 +219,7 @@ export default class MobileMatrixChoicesContainer extends Vue {
|
|
|
220
219
|
return this.matrixChoiceLayout?.map(row => {
|
|
221
220
|
return {
|
|
222
221
|
choices: row as TMatrixChoiceKey[],
|
|
223
|
-
value: null,
|
|
222
|
+
value: null as TMatrixChoiceKey | null,
|
|
224
223
|
}
|
|
225
224
|
})
|
|
226
225
|
}
|
|
@@ -235,11 +234,11 @@ export default class MobileMatrixChoicesContainer extends Vue {
|
|
|
235
234
|
|
|
236
235
|
mounted () {
|
|
237
236
|
if (this.question.type === 'Matrix Checkbox') {
|
|
238
|
-
this.matrixCheckboxGrid = this.
|
|
237
|
+
this.matrixCheckboxGrid = this.convertSelectedMatrixChoiceToCheckboxGrid()
|
|
239
238
|
}
|
|
240
239
|
|
|
241
240
|
if (this.question.type === 'Matrix Radio Button') {
|
|
242
|
-
this.matrixRadioGrid = this.
|
|
241
|
+
this.matrixRadioGrid = this.convertSelectedMatrixChoiceToRadioBtnGrid()
|
|
243
242
|
}
|
|
244
243
|
|
|
245
244
|
this.question.matrixChoiceLayout?.forEach(() => {
|
|
@@ -424,7 +423,7 @@ export default class MobileMatrixChoicesContainer extends Vue {
|
|
|
424
423
|
}
|
|
425
424
|
|
|
426
425
|
convertSelectedMatrixChoiceToRadioBtnGrid () {
|
|
427
|
-
const radioBtnGrid = this.
|
|
426
|
+
const radioBtnGrid = this.defaultRadioButtonGrid
|
|
428
427
|
this.selectedMatrixChoices.forEach(choice => {
|
|
429
428
|
const rowIndex = Number(choice.substring(1, choice.indexOf('_'))) - 1
|
|
430
429
|
const columnIndex = Number(choice.split('_').pop()) - 1
|
|
@@ -683,7 +682,6 @@ export default class MobileMatrixChoicesContainer extends Vue {
|
|
|
683
682
|
color: $ash;
|
|
684
683
|
font-size: 14px;
|
|
685
684
|
font-weight: 500;
|
|
686
|
-
height: 19px;
|
|
687
685
|
margin-right: 4px;
|
|
688
686
|
|
|
689
687
|
&--dark {
|
|
@@ -716,6 +714,10 @@ export default class MobileMatrixChoicesContainer extends Vue {
|
|
|
716
714
|
color: $barely-background;
|
|
717
715
|
}
|
|
718
716
|
|
|
717
|
+
.uikit-checkbox {
|
|
718
|
+
min-width: 18px;
|
|
719
|
+
}
|
|
720
|
+
|
|
719
721
|
.uikit-checkbox--disabled {
|
|
720
722
|
background: transparent;
|
|
721
723
|
}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
v-breakpoint:questionEl="breakpoints"
|
|
16
16
|
type="tertiary-small"
|
|
17
17
|
class="uikit-question-summary__summary-toggle-explanation"
|
|
18
|
-
:class="{ 'uikit-question-summary__summary-toggle-explanation': reviewMode }"
|
|
18
|
+
:class="{ 'uikit-question-summary__summary-toggle-explanation--review-mode': reviewMode }"
|
|
19
19
|
:is-dark-mode="isDarkMode"
|
|
20
20
|
:aria-expanded="showExplanation ? 'true' : 'false'"
|
|
21
21
|
@click="toggleSummaryExplanation"
|
|
@@ -229,11 +229,7 @@ export default class Summary extends Vue {
|
|
|
229
229
|
padding: 0;
|
|
230
230
|
|
|
231
231
|
&--review-mode {
|
|
232
|
-
display:
|
|
233
|
-
|
|
234
|
-
&.uikit-question-summary__summary-toggle-explanation--tablet-portrait {
|
|
235
|
-
display: block;
|
|
236
|
-
}
|
|
232
|
+
display: block;
|
|
237
233
|
}
|
|
238
234
|
}
|
|
239
235
|
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
"
|
|
155
155
|
>
|
|
156
156
|
<div
|
|
157
|
-
v-if="
|
|
157
|
+
v-if="showAnswers && !isMCR && !isMatrixQuestion && isUnanswered && !isCorrect && !isTeachReview"
|
|
158
158
|
v-dark="isDarkMode"
|
|
159
159
|
class="uikit-question__unanswered-label"
|
|
160
160
|
>
|
|
@@ -843,11 +843,11 @@ export default class Question extends Vue {
|
|
|
843
843
|
})
|
|
844
844
|
}
|
|
845
845
|
|
|
846
|
-
|
|
846
|
+
created () {
|
|
847
847
|
if (this.reviewMode) {
|
|
848
848
|
this.startReviewMode()
|
|
849
849
|
}
|
|
850
|
-
|
|
850
|
+
|
|
851
851
|
if (!this.isMatrixQuestion && this.previousChoices) {
|
|
852
852
|
this.updateSelectedChoices(this.previousChoices)
|
|
853
853
|
}
|
|
@@ -855,7 +855,9 @@ export default class Question extends Vue {
|
|
|
855
855
|
if (this.isMatrixQuestion && this.previousMatrixChoices) {
|
|
856
856
|
this.updateSelectedMatrixChoices(this.previousMatrixChoices)
|
|
857
857
|
}
|
|
858
|
+
}
|
|
858
859
|
|
|
860
|
+
mounted () {
|
|
859
861
|
if (this.initialShowAnswers) {
|
|
860
862
|
this.showAnswers = this.initialShowAnswers
|
|
861
863
|
this.showMatrixAnswers = this.initialShowAnswers
|