@pocketprep/ui-kit 3.4.64 → 3.4.66
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 +809 -795
- package/dist/@pocketprep/ui-kit.js.map +1 -1
- package/dist/@pocketprep/ui-kit.umd.cjs +5 -5
- package/dist/@pocketprep/ui-kit.umd.cjs.map +1 -1
- package/dist/style.css +1 -1
- package/lib/components/Messaging/InfoMessage.vue +41 -0
- package/lib/components/Quiz/Question/MobileMatrixChoicesContainer.vue +28 -23
- package/lib/index.ts +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { dark as vDark } from '@/directives'
|
|
3
|
+
defineProps<{
|
|
4
|
+
isDarkMode?: boolean
|
|
5
|
+
}>()
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<div v-dark="isDarkMode" class="info-message">
|
|
10
|
+
<div v-dark="isDarkMode" class="info-message__content">
|
|
11
|
+
<slot></slot>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
</template>
|
|
15
|
+
|
|
16
|
+
<style lang="scss" scoped>
|
|
17
|
+
@import '../../styles/breakpoints';
|
|
18
|
+
@import '../../styles/colors';
|
|
19
|
+
|
|
20
|
+
.info-message {
|
|
21
|
+
padding: 11px 16px;
|
|
22
|
+
background-color: $barely-blue;
|
|
23
|
+
border: 1px solid rgba($brand-blue, 0.4);
|
|
24
|
+
border-radius: 6px;
|
|
25
|
+
|
|
26
|
+
&__content {
|
|
27
|
+
font-size: 15px;
|
|
28
|
+
line-height: 20px;
|
|
29
|
+
color: $brand-black;
|
|
30
|
+
|
|
31
|
+
&--dark {
|
|
32
|
+
color: $white;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
&--dark {
|
|
37
|
+
background-color: rgba($brand-blue, 0.2);
|
|
38
|
+
border-color: rgba($baby-blue, 0.4);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
</style>
|
|
@@ -396,6 +396,19 @@ export default class MobileMatrixChoicesContainer extends Vue {
|
|
|
396
396
|
|
|
397
397
|
convertSelectedMatrixChoiceToCheckboxGrid () {
|
|
398
398
|
const checkboxGrid = this.defaultCheckboxGrid
|
|
399
|
+
|
|
400
|
+
// Reset this.selectedColumnHeaders string[][] in case in headers are still in the arrays
|
|
401
|
+
// Let selectedMatrixChoices set those columns
|
|
402
|
+
const columnMatrixLabels = this.question.matrixLabels?.rows
|
|
403
|
+
const defaultSelectedColumnLabels: string[][] = []
|
|
404
|
+
if (columnMatrixLabels) {
|
|
405
|
+
columnMatrixLabels.forEach(() => {
|
|
406
|
+
defaultSelectedColumnLabels.push([])
|
|
407
|
+
})
|
|
408
|
+
|
|
409
|
+
this.selectedColumnHeaders = defaultSelectedColumnLabels
|
|
410
|
+
}
|
|
411
|
+
|
|
399
412
|
this.selectedMatrixChoices.forEach(choice => {
|
|
400
413
|
const rowIndex = Number(choice.substring(1, choice.indexOf('_'))) - 1
|
|
401
414
|
const columnIndex = Number(choice.split('_').pop()) - 1
|
|
@@ -417,6 +430,9 @@ export default class MobileMatrixChoicesContainer extends Vue {
|
|
|
417
430
|
const columnIndex = Number(choice.split('_').pop()) - 1
|
|
418
431
|
if (this.selectedColumnHeaders[rowIndex] && this.question.matrixLabels?.columns[columnIndex]) {
|
|
419
432
|
const columnHeader = this.question.matrixLabels?.columns[columnIndex]
|
|
433
|
+
// In case a column header is still in selectedColumnHeaders, remove it first and let
|
|
434
|
+
// selectedMatrixChoices add selected column header based on selected choices
|
|
435
|
+
this.selectedColumnHeaders[rowIndex].pop()
|
|
420
436
|
this.selectedColumnHeaders[rowIndex].push(columnHeader)
|
|
421
437
|
}
|
|
422
438
|
if (radioBtnGrid && radioBtnGrid[rowIndex]) {
|
|
@@ -429,6 +445,18 @@ export default class MobileMatrixChoicesContainer extends Vue {
|
|
|
429
445
|
checkboxRowClicked (rowIndex: number, columnIndex: number) {
|
|
430
446
|
if (this.matrixCheckboxGrid && this.matrixCheckboxGrid[rowIndex]) {
|
|
431
447
|
this.matrixCheckboxGrid[rowIndex][columnIndex] = !this.matrixCheckboxGrid[rowIndex][columnIndex]
|
|
448
|
+
const columnHeader = this.question.matrixLabels?.columns[columnIndex]
|
|
449
|
+
|
|
450
|
+
if (this.selectedColumnHeaders && this.selectedColumnHeaders[rowIndex] && columnHeader) {
|
|
451
|
+
if (this.selectedColumnHeaders[rowIndex].includes(columnHeader)) {
|
|
452
|
+
const columnHeaderIndex = this.selectedColumnHeaders[rowIndex].indexOf(columnHeader)
|
|
453
|
+
if (columnHeaderIndex !== -1) {
|
|
454
|
+
this.selectedColumnHeaders[rowIndex].splice(columnHeaderIndex, 1)
|
|
455
|
+
}
|
|
456
|
+
} else {
|
|
457
|
+
this.selectedColumnHeaders[rowIndex].push(columnHeader)
|
|
458
|
+
}
|
|
459
|
+
}
|
|
432
460
|
}
|
|
433
461
|
}
|
|
434
462
|
|
|
@@ -469,29 +497,6 @@ export default class MobileMatrixChoicesContainer extends Vue {
|
|
|
469
497
|
}
|
|
470
498
|
}
|
|
471
499
|
|
|
472
|
-
@Watch('matrixCheckboxGrid', { deep: true })
|
|
473
|
-
addRemoveCheckboxColumnHeaders () {
|
|
474
|
-
if (this.matrixCheckboxGrid) {
|
|
475
|
-
const selectedCheckboxColumnLabels: string[][] = []
|
|
476
|
-
this.matrixCheckboxGrid.forEach((row, rowIndex) => {
|
|
477
|
-
selectedCheckboxColumnLabels.push([])
|
|
478
|
-
row.forEach((choice, choiceIndex) => {
|
|
479
|
-
if (
|
|
480
|
-
choice
|
|
481
|
-
&& this.question.matrixLabels?.columns
|
|
482
|
-
&& this.question.matrixLabels?.columns[choiceIndex]
|
|
483
|
-
) {
|
|
484
|
-
const columnLabel = this.question.matrixLabels?.columns[choiceIndex]
|
|
485
|
-
if (selectedCheckboxColumnLabels[rowIndex]) {
|
|
486
|
-
selectedCheckboxColumnLabels[rowIndex].push(columnLabel)
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
})
|
|
490
|
-
this.selectedColumnHeaders = selectedCheckboxColumnLabels
|
|
491
|
-
})
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
|
|
495
500
|
@Watch('matrixRadioGrid', { deep: true })
|
|
496
501
|
matrixRadioGridChange () {
|
|
497
502
|
if (this.matrixChoiceLayout && this.matrixRadioGrid && (!this.reviewMode || !this.showMatrixAnswers)) {
|
package/lib/index.ts
CHANGED
|
@@ -53,6 +53,7 @@ import PremiumPill from './components/Bundles/PremiumPill.vue'
|
|
|
53
53
|
import Toast from './components/Toasts/Toast.vue'
|
|
54
54
|
import EmptyState from './components/EmptyStates/EmptyState.vue'
|
|
55
55
|
import Tag from './components/Tags/Tag.vue'
|
|
56
|
+
import InfoMessage from './components/Messaging/InfoMessage.vue'
|
|
56
57
|
|
|
57
58
|
export * as directives from './directives'
|
|
58
59
|
export * as utils from './utils'
|
|
@@ -111,6 +112,7 @@ const components = {
|
|
|
111
112
|
Toast,
|
|
112
113
|
EmptyState,
|
|
113
114
|
Tag,
|
|
115
|
+
InfoMessage,
|
|
114
116
|
}
|
|
115
117
|
|
|
116
118
|
export default components
|