@pocketprep/ui-kit 3.4.64 → 3.4.65

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.
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pocketprep/ui-kit",
3
- "version": "3.4.64",
3
+ "version": "3.4.65",
4
4
  "description": "Pocket Prep UI Kit",
5
5
  "author": "pocketprep",
6
6
  "scripts": {