diff --git a/projects/quml-library/package.json b/projects/quml-library/package.json index a857a02b..f150f9c9 100644 --- a/projects/quml-library/package.json +++ b/projects/quml-library/package.json @@ -1,6 +1,6 @@ { "name": "@tekdi/sunbird-quml-player", - "version": "9.0.0-beta.8", + "version": "9.0.0-beta.9", "schematics": "./schematics/collection.json", "ng-add": { "save": "dependencies" diff --git a/projects/quml-library/src/lib/asq/asq-options/asq-options.component.html b/projects/quml-library/src/lib/asq/asq-options/asq-options.component.html new file mode 100644 index 00000000..eab954ab --- /dev/null +++ b/projects/quml-library/src/lib/asq/asq-options/asq-options.component.html @@ -0,0 +1,18 @@ + +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+
+
diff --git a/projects/quml-library/src/lib/asq/asq-options/asq-options.component.scss b/projects/quml-library/src/lib/asq/asq-options/asq-options.component.scss new file mode 100644 index 00000000..41b0ccb6 --- /dev/null +++ b/projects/quml-library/src/lib/asq/asq-options/asq-options.component.scss @@ -0,0 +1,112 @@ +.asq-horizontal-box{ + display: flex; + align-items: center; + justify-content: space-between; + margin: 15px; + border:1px solid #b3a8a869; + cursor: move; + box-shadow: rgba(17, 17, 26, 0.1) 0px 4px 16px, rgba(17, 17, 26, 0.05) 0px 8px 32px; + padding: 15px 20px; + border-radius: 6px; +} +::ng-deep .asq-horizontal-box p{ + margin-top: 5px; + margin-bottom: 5px; +} +.cdk-drag-preview { + box-sizing: border-box; + border-radius: 4px; + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), + 0 8px 10px 1px rgba(0, 0, 0, 0.14), + 0 3px 14px 2px rgba(0, 0, 0, 0.12); +} +.cdk-drag-placeholder { + opacity: 0; +} + +.cdk-drag-animating { + transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); +} + +.cdk-drop-list-dragging .asq-horizontal-box:not(.cdk-drag-placeholder) { + transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); +} +::ng-deep .asq-horizontal-box img +{ + width: 70px; + height: 70px; + object-fit: contain; +} +//horizontal layout css +.horizontal-list { + display: flex; + justify-content: space-between; + flex-wrap: nowrap; + width: 100%; + padding: 10px; + box-sizing: border-box; +} + +.asq-vertical-box { + flex: 0 1 25%; + max-width: 25%; + position:relative; + padding: 0px 15px; + border: solid 1px #ccccccab; + color: rgba(0, 0, 0, 0.87); + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + box-sizing: border-box; + cursor: move; + background: white; + margin:10px; + border-radius: 4px; + min-height:150px; + margin-top:2%; + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +::ng-deep .asq-vertical-box img +{ + width: 70px; + height: 70px; + object-fit: contain; +} +::ng-deep .asq-vertical-box p{ +line-height: 20px; +margin-top: 5px; +margin-bottom: 5px; +} + +.horizontal-list.cdk-drop-list-dragging .asq-vertical-box:not(.cdk-drag-placeholder) { + transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); +} +.centered-align{ +display: flex; +align-items: center; +justify-content: center; +height: 100vh; +} +.drag-handle{ + position: absolute; + top: 5px; + right: 5px; + cursor: move; +} +@media screen and (max-width: 600px) { +::ng-deep .asq-vertical-box p { + line-height: 14px; + margin-top: 5px; + margin-bottom: 5px; + font-size: 10px; + padding: 7px; +} +.asq-vertical-box{ + margin: 0% 1px 10px; + padding:0px; +} +.horizontal-list{ + padding:0px; +} +} \ No newline at end of file diff --git a/projects/quml-library/src/lib/asq/asq-options/asq-options.component.spec.ts b/projects/quml-library/src/lib/asq/asq-options/asq-options.component.spec.ts new file mode 100644 index 00000000..2b866973 --- /dev/null +++ b/projects/quml-library/src/lib/asq/asq-options/asq-options.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AsqOptionsComponent } from './asq-options.component'; + +describe('AsqOptionsComponent', () => { + let component: AsqOptionsComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [AsqOptionsComponent] + }); + fixture = TestBed.createComponent(AsqOptionsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/quml-library/src/lib/asq/asq-options/asq-options.component.ts b/projects/quml-library/src/lib/asq/asq-options/asq-options.component.ts new file mode 100644 index 00000000..af8639c4 --- /dev/null +++ b/projects/quml-library/src/lib/asq/asq-options/asq-options.component.ts @@ -0,0 +1,62 @@ +import { Component, Input, Output, OnInit, OnChanges, SimpleChanges, EventEmitter } from '@angular/core'; +import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop'; +import { AsqOptions } from '../../interfaces/asq-interface'; +import * as _ from 'lodash-es'; + +@Component({ + selector: 'quml-asq-options', + templateUrl: './asq-options.component.html', + styleUrls: ['./asq-options.component.scss'], +}) +export class AsqOptionsComponent implements OnInit, OnChanges { + @Input() options: any[]; + @Input() layout: string; + @Input() shuffleOptions: boolean; + @Input() replayed: boolean; + @Input() tryAgain?: boolean; + @Output() reorderedOptions = new EventEmitter(); + shuffledOptions: any[]; + optionsShuffled = false; + isModalVisible: boolean = false; + selectedImageSrc: string = ''; + + constructor() { + this.shuffledOptions = []; + } + + ngOnInit() { + this.shuffleMTFOptions(); + + } + + ngOnChanges(): void { + if(this.replayed || this.tryAgain) { + this.shuffleMTFOptions(); + } + } + + shuffleMTFOptions() { + // Shuffle the options + this.shuffledOptions = _.shuffle(this.options); + this.optionsShuffled = true; + + // Ensure no item retains its original position + let isSameAsOriginal = this.shuffledOptions.some((item, index) => item.value === this.options[index].value); + while (isSameAsOriginal) { + this.shuffledOptions = _.shuffle(this.options); + isSameAsOriginal = this.shuffledOptions.some((item, index) => item.value === this.options[index].value); + } + } + + onDrop(event: CdkDragDrop) { + moveItemInArray(this.shuffledOptions, event.previousIndex, event.currentIndex); + this.reorderedOptions.emit(this.shuffledOptions); + } + + swapOptions(index1: number, index2: number) { + [this.shuffledOptions[index1], this.shuffledOptions[index2]] = [ + this.shuffledOptions[index2], + this.shuffledOptions[index1], + ]; + } +} diff --git a/projects/quml-library/src/lib/asq/asq.component.html b/projects/quml-library/src/lib/asq/asq.component.html new file mode 100644 index 00000000..72c5b948 --- /dev/null +++ b/projects/quml-library/src/lib/asq/asq.component.html @@ -0,0 +1,9 @@ +
+
+

+
+ + +
+ \ No newline at end of file diff --git a/projects/quml-library/src/lib/asq/asq.component.scss b/projects/quml-library/src/lib/asq/asq.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/projects/quml-library/src/lib/asq/asq.component.spec.ts b/projects/quml-library/src/lib/asq/asq.component.spec.ts new file mode 100644 index 00000000..21ea78a2 --- /dev/null +++ b/projects/quml-library/src/lib/asq/asq.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AsqComponent } from './asq.component'; + +describe('AsqComponent', () => { + let component: AsqComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [AsqComponent] + }); + fixture = TestBed.createComponent(AsqComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/quml-library/src/lib/asq/asq.component.ts b/projects/quml-library/src/lib/asq/asq.component.ts new file mode 100644 index 00000000..3359a14a --- /dev/null +++ b/projects/quml-library/src/lib/asq/asq.component.ts @@ -0,0 +1,44 @@ +import { Component,Input,Output,EventEmitter} from '@angular/core'; +import {AsqOptions,AsqInteractions} from '../interfaces/asq-interface'; + +@Component({ + selector: 'quml-asq', + templateUrl: './asq.component.html' +}) +export class AsqComponent { + @Input() question?: any; + @Input() shuffleOptions: boolean; + @Input() replayed: boolean; + @Input() tryAgain?: boolean; + @Output() optionsReordered = new EventEmitter(); + + public interactions?: AsqInteractions; + public questionBody?: string; + public layout: 'VERTICAL' | 'HORIZONTAL' | 'DEFAULT'; + + ngOnInit(): void { + this.initialize(); + } + + initialize(): void { + this.setLayout(); + this.interactions = this.question?.interactions; + this.questionBody = this.question?.body; + } + + setLayout(): void { + const templateId = this.question?.templateId; + if (templateId === 'asq-vertical') { + this.layout = 'VERTICAL'; + } else if (templateId === 'asq-horizontal') { + this.layout = 'HORIZONTAL'; + } else { + console.error('Invalid or undefined templateId'); + this.layout = 'DEFAULT'; + } + } + + handleReorderedOptions(reorderedOptions: AsqOptions) { + this.optionsReordered.emit(reorderedOptions); + } +} diff --git a/projects/quml-library/src/lib/icon/reorder/reorder.component.html b/projects/quml-library/src/lib/icon/reorder/reorder.component.html new file mode 100644 index 00000000..0e5f1ca1 --- /dev/null +++ b/projects/quml-library/src/lib/icon/reorder/reorder.component.html @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/projects/quml-library/src/lib/icon/reorder/reorder.component.spec.ts b/projects/quml-library/src/lib/icon/reorder/reorder.component.spec.ts new file mode 100644 index 00000000..7cd74f8f --- /dev/null +++ b/projects/quml-library/src/lib/icon/reorder/reorder.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ReorderComponent } from './reorder.component'; + +describe('ReorderComponent', () => { + let component: ReorderComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [ReorderComponent] + }); + fixture = TestBed.createComponent(ReorderComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/quml-library/src/lib/icon/reorder/reorder.component.ts b/projects/quml-library/src/lib/icon/reorder/reorder.component.ts new file mode 100644 index 00000000..fe5e17dc --- /dev/null +++ b/projects/quml-library/src/lib/icon/reorder/reorder.component.ts @@ -0,0 +1,9 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'quml-reorder', + templateUrl: './reorder.component.html' +}) +export class ReorderComponent { + +} diff --git a/projects/quml-library/src/lib/interfaces/asq-interface.ts b/projects/quml-library/src/lib/interfaces/asq-interface.ts new file mode 100644 index 00000000..cb0e0b98 --- /dev/null +++ b/projects/quml-library/src/lib/interfaces/asq-interface.ts @@ -0,0 +1,18 @@ +export interface AsqOptions { + label: string; + value: number; +} + +export interface AsqValidation { + required: string; +} + +export interface AsqResponse { + type: string; + options: AsqOptions []; + validation: AsqValidation; +} + +export interface AsqInteractions { + response1: AsqResponse; +} diff --git a/projects/quml-library/src/lib/quml-library.module.ts b/projects/quml-library/src/lib/quml-library.module.ts index b761474a..93ef97df 100644 --- a/projects/quml-library/src/lib/quml-library.module.ts +++ b/projects/quml-library/src/lib/quml-library.module.ts @@ -42,6 +42,9 @@ import { MtfComponent } from './mtf/mtf.component'; import { MtfOptionsComponent } from './mtf/mtf-options/mtf-options.component'; import { DragDropModule } from "@angular/cdk/drag-drop" import { CheckFigureDirective } from './mtf/check-figure.directive'; +import { AsqComponent } from './asq/asq.component'; +import { AsqOptionsComponent } from './asq/asq-options/asq-options.component'; +import { ReorderComponent } from './icon/reorder/reorder.component'; @NgModule({ declarations: [ QumlLibraryComponent, @@ -81,8 +84,10 @@ import { CheckFigureDirective } from './mtf/check-figure.directive'; ProgressIndicatorsComponent, MtfComponent, MtfOptionsComponent, - CheckFigureDirective - + CheckFigureDirective, + AsqComponent, + AsqOptionsComponent, + ReorderComponent ], imports: [ CommonModule, diff --git a/projects/quml-library/src/lib/section-player/section-player.component.html b/projects/quml-library/src/lib/section-player/section-player.component.html index eebdeef8..0f6bc505 100644 --- a/projects/quml-library/src/lib/section-player/section-player.component.html +++ b/projects/quml-library/src/lib/section-player/section-player.component.html @@ -46,6 +46,10 @@ +
+ +
diff --git a/projects/quml-library/src/lib/section-player/section-player.component.ts b/projects/quml-library/src/lib/section-player/section-player.component.ts index a71109f4..5df169b4 100644 --- a/projects/quml-library/src/lib/section-player/section-player.component.ts +++ b/projects/quml-library/src/lib/section-player/section-player.component.ts @@ -6,6 +6,7 @@ import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { QumlPlayerConfig, IParentConfig, IAttempts } from '../quml-library-interface'; import { MtfOptions } from '../interfaces/mtf-interface'; +import { AsqOptions } from '../interfaces/asq-interface'; import { ViewerService } from '../services/viewer-service/viewer-service'; import { eventName, pageId, TelemetryType, Cardinality, QuestionType } from '../telemetry-constants'; import { DEFAULT_SCORE, COMPATABILITY_LEVEL } from '../player-constants'; @@ -77,6 +78,7 @@ export class SectionPlayerComponent implements OnChanges, AfterViewInit { showSolution: any; optionSelectedObj: any; mtfReorderedOptionsMap: any; + asqReorderedOptionsMap:any; intervalRef: any; alertType: string; infoPopup: boolean; @@ -384,6 +386,7 @@ export class SectionPlayerComponent implements OnChanges, AfterViewInit { this.showAlert = false; this.optionSelectedObj = undefined; this.mtfReorderedOptionsMap = undefined; + this.asqReorderedOptionsMap=undefined; this.currentOptionSelected = undefined; this.currentQuestion = undefined; this.currentOptions = undefined; @@ -438,6 +441,19 @@ export class SectionPlayerComponent implements OnChanges, AfterViewInit { } this.prevSlide(); } + if ((this.optionSelectedObj || this.asqReorderedOptionsMap) && this.showFeedBack) { + this.stopAutoNavigation = false; + this.validateQuestionInteraction('previous'); + } else { + this.stopAutoNavigation = true; + if (this.currentSlideIndex === 0 && this.parentConfig.isSectionsAvailable && this.getCurrentSectionIndex() > 0) { + const previousSectionId = this.mainProgressBar[this.getCurrentSectionIndex() - 1].identifier; + this.jumpToSection(previousSectionId); + return; + } + this.prevSlide(); + } + } } @@ -474,6 +490,13 @@ export class SectionPlayerComponent implements OnChanges, AfterViewInit { this.stopAutoNavigation = true; this.goToSlide(this.jumpSlideIndex); } + if ((this.optionSelectedObj || this.asqReorderedOptionsMap) && this.showFeedBack) { + this.stopAutoNavigation = false; + this.validateQuestionInteraction('jump'); + } else { + this.stopAutoNavigation = true; + this.goToSlide(this.jumpSlideIndex); + } } onEnter(event, index) { @@ -574,6 +597,26 @@ export class SectionPlayerComponent implements OnChanges, AfterViewInit { } } + handleASQOptionsChange(rearrangedOptions: AsqOptions) { + this.focusOnNextButton(); + this.active = true; + const currentIndex = this.myCarousel.getCurrentSlideIndex() - 1; + this.viewerService.raiseHeartBeatEvent(eventName.optionsReordered, TelemetryType.interact, this.myCarousel.getCurrentSlideIndex()); + const currentQuestion = this.questions[currentIndex]; + if (_.isEmpty(rearrangedOptions)) { + this.updateScoreBoard(currentIndex, 'skipped'); + } else { + this.asqReorderedOptionsMap = rearrangedOptions; + this.isAssessEventRaised = false; + this.currentSolutions = !_.isEmpty(currentQuestion.solutions) ? currentQuestion.solutions : undefined; + } + this.currentQuestionIndetifier = currentQuestion.identifier; + this.media = _.get(currentQuestion, 'media', []); + if (!this.showFeedBack) { + this.validateQuestionInteraction(); + } + } + durationEnds() { this.showSolution = false; this.showAlert = false; @@ -674,6 +717,8 @@ export class SectionPlayerComponent implements OnChanges, AfterViewInit { } if ( (questionType === QuestionType.mtf && !this.mtfReorderedOptionsMap) || + + (questionType === QuestionType.asq && !this.asqReorderedOptionsMap) || ((questionType === QuestionType.mcq || questionType === QuestionType.mmcq) && !this.optionSelectedObj) && this.allowSkip) { return true; @@ -699,6 +744,11 @@ export class SectionPlayerComponent implements OnChanges, AfterViewInit { this.handleMTFInteraction(selectedQuestion, edataItem, currentIndex, type); this.mtfReorderedOptionsMap = undefined; } + + if (this.asqReorderedOptionsMap && selectedQuestion.qType === QuestionType.asq) { + this.handleASQInteraction(selectedQuestion, edataItem, currentIndex, type); + this.asqReorderedOptionsMap = undefined; + } } handleMCQInteraction(selectedQuestion: any, edataItem: any, currentIndex: number, isMultipleChoice: boolean, type ?: string) { @@ -736,6 +786,21 @@ export class SectionPlayerComponent implements OnChanges, AfterViewInit { } } + handleASQInteraction(selectedQuestion, edataItem, currentIndex, type) { + const responseDeclaration = selectedQuestion.responseDeclaration; + const outcomeDeclaration = selectedQuestion.outcomeDeclaration; + const userResponse = this.asqReorderedOptionsMap; + + const currentScore = this.utilService.getASQScore(userResponse, responseDeclaration, this.isShuffleQuestions, outcomeDeclaration,selectedQuestion); + if (currentScore === 0) { + this.handleWrongAnswer(currentScore, edataItem, currentIndex, userResponse, type); + } else { + this.handleCorrectAnswer(currentScore, edataItem, currentIndex, userResponse, type); + } + } + + + handleCorrectAnswer(currentScore, edataItem: any, currentIndex: number, userResponse: any, type ?: string) { if (!this.isAssessEventRaised) { this.isAssessEventRaised = true; @@ -819,6 +884,7 @@ export class SectionPlayerComponent implements OnChanges, AfterViewInit { if (index === 0) { this.optionSelectedObj = undefined; this.mtfReorderedOptionsMap = undefined; + this.asqReorderedOptionsMap = undefined; this.myCarousel.selectSlide(0); this.active = this.currentSlideIndex === 0 && this.sectionIndex === 0 && this.showStartPage; this.showRootInstruction = true; diff --git a/projects/quml-library/src/lib/telemetry-constants.ts b/projects/quml-library/src/lib/telemetry-constants.ts index ed7186f3..adfeb98e 100644 --- a/projects/quml-library/src/lib/telemetry-constants.ts +++ b/projects/quml-library/src/lib/telemetry-constants.ts @@ -54,5 +54,6 @@ export enum QuestionType { mcq = 'MCQ', mmcq = 'MMCQ', sa = 'SA', - mtf = 'MTF' + mtf = 'MTF', + asq = 'ASQ' } \ No newline at end of file diff --git a/projects/quml-library/src/lib/util-service.ts b/projects/quml-library/src/lib/util-service.ts index 04ac9759..4bb5b6af 100644 --- a/projects/quml-library/src/lib/util-service.ts +++ b/projects/quml-library/src/lib/util-service.ts @@ -2,7 +2,9 @@ import { Injectable } from '@angular/core'; import * as _ from 'lodash-es'; import { DEFAULT_SCORE } from './player-constants' import { MtfOptions } from './interfaces/mtf-interface'; +import {AsqOptions} from './interfaces/asq-interface'; import { eventName, pageId, TelemetryType, Cardinality, QuestionType } from './telemetry-constants'; + @Injectable({ providedIn: 'root' }) @@ -107,6 +109,38 @@ export class UtilService { return totalScore; } + getASQScore( + rearrangedOptions: AsqOptions[], + responseDeclaration, + isShuffleQuestions: boolean, + outcomeDeclaration, + selectedQuestion + ) { + let key: any = this.getKeyValue(Object.keys(responseDeclaration)); + const correctResponse = responseDeclaration[key]['correctResponse']['value']; + const mapping = responseDeclaration[key]['mapping']; + + if (isShuffleQuestions) { + const scoreForEachMapping = _.round(outcomeDeclaration.maxScore.defaultValue / mapping.length, 2); + _.forEach(mapping, (map) => { + map.score = scoreForEachMapping; + }); + } + + let totalScore = 0; + rearrangedOptions.forEach((option, index) => { + const correctIndex = correctResponse[index]; + if (option.label === selectedQuestion.interactions.response1.options[correctIndex].label) { + const scoreMapping = mapping.find(map => map.value === index); + if (scoreMapping) { + totalScore += scoreMapping.score || 0; + } + } + }); + + return totalScore; + } + hasDuplicates(selectedOptions, option) { let duplicate = selectedOptions.find((o) => { return o.value === option.value }); return duplicate; diff --git a/web-component/package.json b/web-component/package.json index 8a09ed5e..a5942e55 100644 --- a/web-component/package.json +++ b/web-component/package.json @@ -1,6 +1,6 @@ { "name": "@tekdi/sunbird-quml-player-web-component", - "version": "5.0.0-beta.0", + "version": "5.0.0-beta.1", "description": "The web component package for the sunbird QuML player", "main": "sunbird-quml-player.js", "scripts": { diff --git a/web-component/sunbird-quml-player.js b/web-component/sunbird-quml-player.js index 342605dc..6cf255e2 100644 --- a/web-component/sunbird-quml-player.js +++ b/web-component/sunbird-quml-player.js @@ -102896,12 +102896,12 @@ function SectionPlayerComponent_div_0_div_6_Template(rf, ctx) { } function SectionPlayerComponent_div_0_slide_12_div_3_Template(rf, ctx) { if (rf & 1) { - const _r24 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); + const _r25 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](0, "div")(1, "quml-mcq", 35); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("optionSelected", function SectionPlayerComponent_div_0_slide_12_div_3_Template_quml_mcq_optionSelected_1_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r24); - const ctx_r23 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r23.getOptionSelected($event)); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r25); + const ctx_r24 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r24.getOptionSelected($event)); }); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"]()(); } @@ -102914,13 +102914,13 @@ function SectionPlayerComponent_div_0_slide_12_div_3_Template(rf, ctx) { } function SectionPlayerComponent_div_0_slide_12_div_4_Template(rf, ctx) { if (rf & 1) { - const _r28 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); + const _r29 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](0, "div")(1, "quml-sa", 36); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("showAnswerClicked", function SectionPlayerComponent_div_0_slide_12_div_4_Template_quml_sa_showAnswerClicked_1_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r28); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r29); const question_r17 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"]().$implicit; - const ctx_r26 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r26.showAnswerClicked($event, question_r17)); + const ctx_r27 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r27.showAnswerClicked($event, question_r17)); }); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"]()(); } @@ -102933,12 +102933,12 @@ function SectionPlayerComponent_div_0_slide_12_div_4_Template(rf, ctx) { } function SectionPlayerComponent_div_0_slide_12_div_5_Template(rf, ctx) { if (rf & 1) { - const _r31 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); + const _r32 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](0, "div", 37)(1, "quml-mtf", 38); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("optionsReordered", function SectionPlayerComponent_div_0_slide_12_div_5_Template_quml_mtf_optionsReordered_1_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r31); - const ctx_r30 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r30.handleMTFOptionsChange($event)); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r32); + const ctx_r31 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r31.handleMTFOptionsChange($event)); }); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"]()(); } @@ -102949,12 +102949,31 @@ function SectionPlayerComponent_div_0_slide_12_div_5_Template(rf, ctx) { _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("shuffleOptions", ctx_r22.shuffleOptions)("question", question_r17)("replayed", ctx_r22.parentConfig == null ? null : ctx_r22.parentConfig.isReplayed)("tryAgain", ctx_r22.tryAgainClicked); } } +function SectionPlayerComponent_div_0_slide_12_div_6_Template(rf, ctx) { + if (rf & 1) { + const _r35 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](0, "div", 37)(1, "quml-asq", 38); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("optionsReordered", function SectionPlayerComponent_div_0_slide_12_div_6_Template_quml_asq_optionsReordered_1_listener($event) { + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r35); + const ctx_r34 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r34.handleASQOptionsChange($event)); + }); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"]()(); + } + if (rf & 2) { + const question_r17 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"]().$implicit; + const ctx_r23 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("shuffleOptions", ctx_r23.shuffleOptions)("question", question_r17)("replayed", ctx_r23.parentConfig == null ? null : ctx_r23.parentConfig.isReplayed)("tryAgain", ctx_r23.tryAgainClicked); + } +} function SectionPlayerComponent_div_0_slide_12_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](0, "slide", null, 32)(2, "div", 33); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtemplate"](3, SectionPlayerComponent_div_0_slide_12_div_3_Template, 2, 5, "div", 2); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtemplate"](4, SectionPlayerComponent_div_0_slide_12_div_4_Template, 2, 3, "div", 2); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtemplate"](5, SectionPlayerComponent_div_0_slide_12_div_5_Template, 2, 4, "div", 34); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtemplate"](6, SectionPlayerComponent_div_0_slide_12_div_6_Template, 2, 4, "div", 34); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"]()(); } if (rf & 2) { @@ -102967,35 +102986,37 @@ function SectionPlayerComponent_div_0_slide_12_Template(rf, ctx) { _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngIf", (question_r17 == null ? null : question_r17.primaryCategory.toLowerCase()) === "subjective question"); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngIf", (question_r17 == null ? null : question_r17.primaryCategory.toLowerCase()) === "match the following question"); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngIf", (question_r17 == null ? null : question_r17.primaryCategory.toLowerCase()) === "arrange sequence question"); } } function SectionPlayerComponent_div_0_ul_19_li_1_ul_3_li_1_Template(rf, ctx) { if (rf & 1) { - const _r42 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); + const _r46 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](0, "li", 45); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("click", function SectionPlayerComponent_div_0_ul_19_li_1_ul_3_li_1_Template_li_click_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r42); - const question_r39 = restoredCtx.$implicit; - const ctx_r41 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](5); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r41.goToSlideClicked($event, question_r39 == null ? null : question_r39.index)); + const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r46); + const question_r43 = restoredCtx.$implicit; + const ctx_r45 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](5); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r45.goToSlideClicked($event, question_r43 == null ? null : question_r43.index)); })("keydown", function SectionPlayerComponent_div_0_ul_19_li_1_ul_3_li_1_Template_li_keydown_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r42); - const question_r39 = restoredCtx.$implicit; - const ctx_r43 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](5); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r43.onEnter($event, question_r39 == null ? null : question_r39.index)); + const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r46); + const question_r43 = restoredCtx.$implicit; + const ctx_r47 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](5); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r47.onEnter($event, question_r43 == null ? null : question_r43.index)); }); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"](); } if (rf & 2) { - const question_r39 = ctx.$implicit; - const j_r40 = ctx.index; + const question_r43 = ctx.$implicit; + const j_r44 = ctx.index; _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](4); const _r6 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵreference"](9); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵattributeInterpolate1"]("aria-label", "question number ", question_r39 == null ? null : question_r39.index, ""); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngClass", j_r40 + 1 === _r6.getCurrentSlideIndex() ? question_r39.class === "skipped" ? "progressBar-border" : "progressBar-border " + question_r39.class : question_r39.class); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵattributeInterpolate1"]("aria-label", "question number ", question_r43 == null ? null : question_r43.index, ""); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngClass", j_r44 + 1 === _r6.getCurrentSlideIndex() ? question_r43.class === "skipped" ? "progressBar-border" : "progressBar-border " + question_r43.class : question_r43.class); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtextInterpolate1"](" ", question_r39 == null ? null : question_r39.index, " "); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtextInterpolate1"](" ", question_r43 == null ? null : question_r43.index, " "); } } function SectionPlayerComponent_div_0_ul_19_li_1_ul_3_Template(rf, ctx) { @@ -103005,38 +103026,38 @@ function SectionPlayerComponent_div_0_ul_19_li_1_ul_3_Template(rf, ctx) { _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"](); } if (rf & 2) { - const ctx_r36 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](4); + const ctx_r40 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](4); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngForOf", ctx_r36.progressBarClass); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngForOf", ctx_r40.progressBarClass); } } function SectionPlayerComponent_div_0_ul_19_li_1_ul_4_li_1_Template(rf, ctx) { if (rf & 1) { - const _r48 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); + const _r52 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](0, "li", 45); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("click", function SectionPlayerComponent_div_0_ul_19_li_1_ul_4_li_1_Template_li_click_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r48); - const question_r45 = restoredCtx.$implicit; - const ctx_r47 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](5); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r47.goToSlideClicked($event, question_r45 == null ? null : question_r45.index)); + const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r52); + const question_r49 = restoredCtx.$implicit; + const ctx_r51 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](5); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r51.goToSlideClicked($event, question_r49 == null ? null : question_r49.index)); })("keydown", function SectionPlayerComponent_div_0_ul_19_li_1_ul_4_li_1_Template_li_keydown_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r48); - const question_r45 = restoredCtx.$implicit; - const ctx_r49 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](5); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r49.onEnter($event, question_r45 == null ? null : question_r45.index)); + const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r52); + const question_r49 = restoredCtx.$implicit; + const ctx_r53 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](5); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r53.onEnter($event, question_r49 == null ? null : question_r49.index)); }); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"](); } if (rf & 2) { - const question_r45 = ctx.$implicit; - const j_r46 = ctx.index; + const question_r49 = ctx.$implicit; + const j_r50 = ctx.index; _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](4); const _r6 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵreference"](9); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵattributeInterpolate1"]("aria-label", "question number ", question_r45 == null ? null : question_r45.index, ""); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngClass", j_r46 + 1 === _r6.getCurrentSlideIndex() ? question_r45.class === "skipped" ? "progressBar-border" : "att-color progressBar-border" : question_r45.class === "skipped" ? question_r45.class : question_r45.class === "unattempted" ? "" : "att-color"); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵattributeInterpolate1"]("aria-label", "question number ", question_r49 == null ? null : question_r49.index, ""); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngClass", j_r50 + 1 === _r6.getCurrentSlideIndex() ? question_r49.class === "skipped" ? "progressBar-border" : "att-color progressBar-border" : question_r49.class === "skipped" ? question_r49.class : question_r49.class === "unattempted" ? "" : "att-color"); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtextInterpolate1"](" ", question_r45 == null ? null : question_r45.index, " "); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtextInterpolate1"](" ", question_r49 == null ? null : question_r49.index, " "); } } function SectionPlayerComponent_div_0_ul_19_li_1_ul_4_Template(rf, ctx) { @@ -103046,9 +103067,9 @@ function SectionPlayerComponent_div_0_ul_19_li_1_ul_4_Template(rf, ctx) { _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"](); } if (rf & 2) { - const ctx_r37 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](4); + const ctx_r41 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](4); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngForOf", ctx_r37.progressBarClass); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngForOf", ctx_r41.progressBarClass); } } const _c3 = function (a0, a1) { @@ -103064,18 +103085,18 @@ const _c4 = function (a0) { }; function SectionPlayerComponent_div_0_ul_19_li_1_Template(rf, ctx) { if (rf & 1) { - const _r51 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); + const _r55 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](0, "li", 41); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("click", function SectionPlayerComponent_div_0_ul_19_li_1_Template_li_click_0_listener() { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r51); - const section_r34 = restoredCtx.$implicit; - const ctx_r50 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r50.jumpToSection(section_r34 == null ? null : section_r34.identifier)); + const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r55); + const section_r38 = restoredCtx.$implicit; + const ctx_r54 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r54.jumpToSection(section_r38 == null ? null : section_r38.identifier)); })("keydown", function SectionPlayerComponent_div_0_ul_19_li_1_Template_li_keydown_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r51); - const section_r34 = restoredCtx.$implicit; - const ctx_r52 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r52.onSectionEnter($event, section_r34 == null ? null : section_r34.identifier)); + const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r55); + const section_r38 = restoredCtx.$implicit; + const ctx_r56 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r56.onSectionEnter($event, section_r38 == null ? null : section_r38.identifier)); }); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](1, "label", 42); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtext"](2); @@ -103085,20 +103106,20 @@ function SectionPlayerComponent_div_0_ul_19_li_1_Template(rf, ctx) { _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"](); } if (rf & 2) { - const section_r34 = ctx.$implicit; - const i_r35 = ctx.index; - const ctx_r33 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵattributeInterpolate1"]("aria-label", "section ", section_r34 == null ? null : section_r34.index, ""); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngClass", _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵpureFunction2"](7, _c3, section_r34.class === "attempted", section_r34.class === "partial")); + const section_r38 = ctx.$implicit; + const i_r39 = ctx.index; + const ctx_r37 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵattributeInterpolate1"]("aria-label", "section ", section_r38 == null ? null : section_r38.index, ""); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngClass", _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵpureFunction2"](7, _c3, section_r38.class === "attempted", section_r38.class === "partial")); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵpropertyInterpolate1"]("for", "list-item-", i_r35, ""); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngClass", _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵpureFunction1"](10, _c4, (section_r34 == null ? null : section_r34.isActive) && !ctx_r33.showRootInstruction && section_r34.class !== "attempted")); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵpropertyInterpolate1"]("for", "list-item-", i_r39, ""); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngClass", _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵpureFunction1"](10, _c4, (section_r38 == null ? null : section_r38.isActive) && !ctx_r37.showRootInstruction && section_r38.class !== "attempted")); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtextInterpolate"](section_r34 == null ? null : section_r34.index); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtextInterpolate"](section_r38 == null ? null : section_r38.index); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngIf", (section_r34 == null ? null : section_r34.isActive) && ctx_r33.showFeedBack); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngIf", (section_r38 == null ? null : section_r38.isActive) && ctx_r37.showFeedBack); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngIf", (section_r34 == null ? null : section_r34.isActive) && !ctx_r33.showFeedBack); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngIf", (section_r38 == null ? null : section_r38.isActive) && !ctx_r37.showFeedBack); } } function SectionPlayerComponent_div_0_ul_19_Template(rf, ctx) { @@ -103115,31 +103136,31 @@ function SectionPlayerComponent_div_0_ul_19_Template(rf, ctx) { } function SectionPlayerComponent_div_0_ul_21_li_1_Template(rf, ctx) { if (rf & 1) { - const _r57 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); + const _r61 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](0, "li", 49); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("click", function SectionPlayerComponent_div_0_ul_21_li_1_Template_li_click_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r57); - const question_r54 = restoredCtx.$implicit; - const ctx_r56 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r56.goToSlideClicked($event, question_r54 == null ? null : question_r54.index)); + const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r61); + const question_r58 = restoredCtx.$implicit; + const ctx_r60 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r60.goToSlideClicked($event, question_r58 == null ? null : question_r58.index)); })("keydown", function SectionPlayerComponent_div_0_ul_21_li_1_Template_li_keydown_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r57); - const question_r54 = restoredCtx.$implicit; - const ctx_r58 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r58.onEnter($event, question_r54 == null ? null : question_r54.index)); + const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r61); + const question_r58 = restoredCtx.$implicit; + const ctx_r62 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r62.onEnter($event, question_r58 == null ? null : question_r58.index)); }); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"](); } if (rf & 2) { - const question_r54 = ctx.$implicit; - const j_r55 = ctx.index; + const question_r58 = ctx.$implicit; + const j_r59 = ctx.index; _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); const _r6 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵreference"](9); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵattributeInterpolate1"]("aria-label", "question number ", question_r54 == null ? null : question_r54.index, ""); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngClass", j_r55 + 1 === _r6.getCurrentSlideIndex() ? question_r54.class === "skipped" ? "progressBar-border" : "progressBar-border " + question_r54.class : question_r54.class); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵattributeInterpolate1"]("aria-label", "question number ", question_r58 == null ? null : question_r58.index, ""); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngClass", j_r59 + 1 === _r6.getCurrentSlideIndex() ? question_r58.class === "skipped" ? "progressBar-border" : "progressBar-border " + question_r58.class : question_r58.class); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtextInterpolate1"](" ", question_r54 == null ? null : question_r54.index, " "); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtextInterpolate1"](" ", question_r58 == null ? null : question_r58.index, " "); } } function SectionPlayerComponent_div_0_ul_21_Template(rf, ctx) { @@ -103156,31 +103177,31 @@ function SectionPlayerComponent_div_0_ul_21_Template(rf, ctx) { } function SectionPlayerComponent_div_0_ul_23_li_1_Template(rf, ctx) { if (rf & 1) { - const _r63 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); + const _r67 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](0, "li", 49); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("click", function SectionPlayerComponent_div_0_ul_23_li_1_Template_li_click_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r63); - const question_r60 = restoredCtx.$implicit; - const ctx_r62 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r62.goToSlideClicked($event, question_r60 == null ? null : question_r60.index)); + const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r67); + const question_r64 = restoredCtx.$implicit; + const ctx_r66 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r66.goToSlideClicked($event, question_r64 == null ? null : question_r64.index)); })("keydown", function SectionPlayerComponent_div_0_ul_23_li_1_Template_li_keydown_0_listener($event) { - const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r63); - const question_r60 = restoredCtx.$implicit; - const ctx_r64 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r64.onEnter($event, question_r60 == null ? null : question_r60.index)); + const restoredCtx = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r67); + const question_r64 = restoredCtx.$implicit; + const ctx_r68 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](3); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r68.onEnter($event, question_r64 == null ? null : question_r64.index)); }); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"](); } if (rf & 2) { - const question_r60 = ctx.$implicit; - const j_r61 = ctx.index; + const question_r64 = ctx.$implicit; + const j_r65 = ctx.index; _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); const _r6 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵreference"](9); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵattributeInterpolate1"]("aria-label", "question number ", question_r60 == null ? null : question_r60.index, ""); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngClass", j_r61 + 1 === _r6.getCurrentSlideIndex() ? question_r60.class === "skipped" ? "progressBar-border" : "att-color progressBar-border" : question_r60.class === "skipped" ? question_r60.class : question_r60.class === "unattempted" ? "" : "att-color"); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵattributeInterpolate1"]("aria-label", "question number ", question_r64 == null ? null : question_r64.index, ""); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵproperty"]("ngClass", j_r65 + 1 === _r6.getCurrentSlideIndex() ? question_r64.class === "skipped" ? "progressBar-border" : "att-color progressBar-border" : question_r64.class === "skipped" ? question_r64.class : question_r64.class === "unattempted" ? "" : "att-color"); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtextInterpolate1"](" ", question_r60 == null ? null : question_r60.index, " "); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtextInterpolate1"](" ", question_r64 == null ? null : question_r64.index, " "); } } function SectionPlayerComponent_div_0_ul_23_Template(rf, ctx) { @@ -103197,17 +103218,17 @@ function SectionPlayerComponent_div_0_ul_23_Template(rf, ctx) { } function SectionPlayerComponent_div_0_li_24_Template(rf, ctx) { if (rf & 1) { - const _r66 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); + const _r70 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](0, "li", 51); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("click", function SectionPlayerComponent_div_0_li_24_Template_li_click_0_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r66); - const ctx_r65 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); - ctx_r65.disableNext = true; - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r65.onScoreBoardClicked()); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r70); + const ctx_r69 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); + ctx_r69.disableNext = true; + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r69.onScoreBoardClicked()); })("keydown", function SectionPlayerComponent_div_0_li_24_Template_li_keydown_0_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r66); - const ctx_r67 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r67.onScoreBoardEnter($event)); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r70); + const ctx_r71 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r71.onScoreBoardEnter($event)); }); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelement"](1, "img", 52); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"](); @@ -103215,20 +103236,20 @@ function SectionPlayerComponent_div_0_li_24_Template(rf, ctx) { } function SectionPlayerComponent_div_0_quml_alert_25_Template(rf, ctx) { if (rf & 1) { - const _r69 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); + const _r73 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](0, "quml-alert", 53); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("showSolution", function SectionPlayerComponent_div_0_quml_alert_25_Template_quml_alert_showSolution_0_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r69); - const ctx_r68 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r68.viewSolution()); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r73); + const ctx_r72 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r72.viewSolution()); })("showHint", function SectionPlayerComponent_div_0_quml_alert_25_Template_quml_alert_showHint_0_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r69); - const ctx_r70 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r70.viewHint()); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r73); + const ctx_r74 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r74.viewHint()); })("closeAlert", function SectionPlayerComponent_div_0_quml_alert_25_Template_quml_alert_closeAlert_0_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r69); - const ctx_r71 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r71.closeAlertBox($event)); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r73); + const ctx_r75 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r75.closeAlertBox($event)); }); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"](); } @@ -103239,12 +103260,12 @@ function SectionPlayerComponent_div_0_quml_alert_25_Template(rf, ctx) { } function SectionPlayerComponent_div_0_quml_mcq_solutions_26_Template(rf, ctx) { if (rf & 1) { - const _r73 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); + const _r77 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](0, "quml-mcq-solutions", 54); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("close", function SectionPlayerComponent_div_0_quml_mcq_solutions_26_Template_quml_mcq_solutions_close_0_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r73); - const ctx_r72 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r72.closeSolution()); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r77); + const ctx_r76 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](2); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r76.closeSolution()); }); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"](); } @@ -103255,28 +103276,28 @@ function SectionPlayerComponent_div_0_quml_mcq_solutions_26_Template(rf, ctx) { } function SectionPlayerComponent_div_0_Template(rf, ctx) { if (rf & 1) { - const _r75 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); + const _r79 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](0, "div", 11)(1, "div", 12)(2, "quml-header", 13); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("durationEnds", function SectionPlayerComponent_div_0_Template_quml_header_durationEnds_2_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r75); - const ctx_r74 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r74.durationEnds()); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r79); + const ctx_r78 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r78.durationEnds()); })("nextSlideClicked", function SectionPlayerComponent_div_0_Template_quml_header_nextSlideClicked_2_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r75); - const ctx_r76 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r76.nextSlideClicked($event)); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r79); + const ctx_r80 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r80.nextSlideClicked($event)); })("prevSlideClicked", function SectionPlayerComponent_div_0_Template_quml_header_prevSlideClicked_2_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r75); - const ctx_r77 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r77.previousSlideClicked($event)); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r79); + const ctx_r81 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r81.previousSlideClicked($event)); })("showSolution", function SectionPlayerComponent_div_0_Template_quml_header_showSolution_2_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r75); - const ctx_r78 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r78.viewSolution()); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r79); + const ctx_r82 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r82.viewSolution()); })("toggleScreenRotate", function SectionPlayerComponent_div_0_Template_quml_header_toggleScreenRotate_2_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r75); - const ctx_r79 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r79.toggleScreenRotate()); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r79); + const ctx_r83 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r83.toggleScreenRotate()); }); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](3, "div", 14)(4, "div", 15); @@ -103285,26 +103306,26 @@ function SectionPlayerComponent_div_0_Template(rf, ctx) { _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](7, "div", 17)(8, "carousel", 18, 19); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("activeSlideChange", function SectionPlayerComponent_div_0_Template_carousel_activeSlideChange_8_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r75); - const ctx_r80 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r80.activeSlideChange($event)); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r79); + const ctx_r84 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r84.activeSlideChange($event)); }); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](10, "slide"); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelement"](11, "quml-startpage", 20); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtemplate"](12, SectionPlayerComponent_div_0_slide_12_Template, 6, 4, "slide", 21); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtemplate"](12, SectionPlayerComponent_div_0_slide_12_Template, 7, 5, "slide", 21); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"]()(); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](13, "div", 22)(14, "ul"); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementContainerStart"](15); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementStart"](16, "li", 23); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵlistener"]("keydown", function SectionPlayerComponent_div_0_Template_li_keydown_16_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r75); - const ctx_r81 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r81.onEnter($event, 0)); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r79); + const ctx_r85 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r85.onEnter($event, 0)); })("click", function SectionPlayerComponent_div_0_Template_li_click_16_listener($event) { - _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r75); - const ctx_r82 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r82.goToSlideClicked($event, 0)); + _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵrestoreView"](_r79); + const ctx_r86 = _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵnextContext"](); + return _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵresetView"](ctx_r86.goToSlideClicked($event, 0)); }); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵtext"](17, "i "); _angular_core__WEBPACK_IMPORTED_MODULE_12__["ɵɵelementEnd"](); @@ -103643,6 +103664,7 @@ class SectionPlayerComponent { this.showAlert = false; this.optionSelectedObj = undefined; this.mtfReorderedOptionsMap = undefined; + this.asqReorderedOptionsMap = undefined; this.currentOptionSelected = undefined; this.currentQuestion = undefined; this.currentOptions = undefined; @@ -103691,6 +103713,18 @@ class SectionPlayerComponent { } this.prevSlide(); } + if ((this.optionSelectedObj || this.asqReorderedOptionsMap) && this.showFeedBack) { + this.stopAutoNavigation = false; + this.validateQuestionInteraction('previous'); + } else { + this.stopAutoNavigation = true; + if (this.currentSlideIndex === 0 && this.parentConfig.isSectionsAvailable && this.getCurrentSectionIndex() > 0) { + const previousSectionId = this.mainProgressBar[this.getCurrentSectionIndex() - 1].identifier; + this.jumpToSection(previousSectionId); + return; + } + this.prevSlide(); + } } } updateScoreForShuffledQuestion() { @@ -103723,6 +103757,13 @@ class SectionPlayerComponent { this.stopAutoNavigation = true; this.goToSlide(this.jumpSlideIndex); } + if ((this.optionSelectedObj || this.asqReorderedOptionsMap) && this.showFeedBack) { + this.stopAutoNavigation = false; + this.validateQuestionInteraction('jump'); + } else { + this.stopAutoNavigation = true; + this.goToSlide(this.jumpSlideIndex); + } } onEnter(event, index) { /* istanbul ignore else */ @@ -103814,6 +103855,25 @@ class SectionPlayerComponent { this.validateQuestionInteraction(); } } + handleASQOptionsChange(rearrangedOptions) { + this.focusOnNextButton(); + this.active = true; + const currentIndex = this.myCarousel.getCurrentSlideIndex() - 1; + this.viewerService.raiseHeartBeatEvent(_telemetry_constants__WEBPACK_IMPORTED_MODULE_0__.eventName.optionsReordered, _telemetry_constants__WEBPACK_IMPORTED_MODULE_0__.TelemetryType.interact, this.myCarousel.getCurrentSlideIndex()); + const currentQuestion = this.questions[currentIndex]; + if (lodash_es__WEBPACK_IMPORTED_MODULE_22__["default"](rearrangedOptions)) { + this.updateScoreBoard(currentIndex, 'skipped'); + } else { + this.asqReorderedOptionsMap = rearrangedOptions; + this.isAssessEventRaised = false; + this.currentSolutions = !lodash_es__WEBPACK_IMPORTED_MODULE_22__["default"](currentQuestion.solutions) ? currentQuestion.solutions : undefined; + } + this.currentQuestionIndetifier = currentQuestion.identifier; + this.media = lodash_es__WEBPACK_IMPORTED_MODULE_20__["default"](currentQuestion, 'media', []); + if (!this.showFeedBack) { + this.validateQuestionInteraction(); + } + } durationEnds() { this.showSolution = false; this.showAlert = false; @@ -103904,7 +103964,7 @@ class SectionPlayerComponent { if (questionType === _telemetry_constants__WEBPACK_IMPORTED_MODULE_0__.QuestionType.sa) { return true; } - if (questionType === _telemetry_constants__WEBPACK_IMPORTED_MODULE_0__.QuestionType.mtf && !this.mtfReorderedOptionsMap || (questionType === _telemetry_constants__WEBPACK_IMPORTED_MODULE_0__.QuestionType.mcq || questionType === _telemetry_constants__WEBPACK_IMPORTED_MODULE_0__.QuestionType.mmcq) && !this.optionSelectedObj && this.allowSkip) { + if (questionType === _telemetry_constants__WEBPACK_IMPORTED_MODULE_0__.QuestionType.mtf && !this.mtfReorderedOptionsMap || questionType === _telemetry_constants__WEBPACK_IMPORTED_MODULE_0__.QuestionType.asq && !this.asqReorderedOptionsMap || (questionType === _telemetry_constants__WEBPACK_IMPORTED_MODULE_0__.QuestionType.mcq || questionType === _telemetry_constants__WEBPACK_IMPORTED_MODULE_0__.QuestionType.mmcq) && !this.optionSelectedObj && this.allowSkip) { return true; } return false; @@ -103925,6 +103985,10 @@ class SectionPlayerComponent { this.handleMTFInteraction(selectedQuestion, edataItem, currentIndex, type); this.mtfReorderedOptionsMap = undefined; } + if (this.asqReorderedOptionsMap && selectedQuestion.qType === _telemetry_constants__WEBPACK_IMPORTED_MODULE_0__.QuestionType.asq) { + this.handleASQInteraction(selectedQuestion, edataItem, currentIndex, type); + this.asqReorderedOptionsMap = undefined; + } } handleMCQInteraction(selectedQuestion, edataItem, currentIndex, isMultipleChoice, type) { const responseDeclaration = selectedQuestion.responseDeclaration; @@ -103956,6 +104020,17 @@ class SectionPlayerComponent { this.handleCorrectAnswer(currentScore, edataItem, currentIndex, userResponse, type); } } + handleASQInteraction(selectedQuestion, edataItem, currentIndex, type) { + const responseDeclaration = selectedQuestion.responseDeclaration; + const outcomeDeclaration = selectedQuestion.outcomeDeclaration; + const userResponse = this.asqReorderedOptionsMap; + const currentScore = this.utilService.getASQScore(userResponse, responseDeclaration, this.isShuffleQuestions, outcomeDeclaration, selectedQuestion); + if (currentScore === 0) { + this.handleWrongAnswer(currentScore, edataItem, currentIndex, userResponse, type); + } else { + this.handleCorrectAnswer(currentScore, edataItem, currentIndex, userResponse, type); + } + } handleCorrectAnswer(currentScore, edataItem, currentIndex, userResponse, type) { if (!this.isAssessEventRaised) { this.isAssessEventRaised = true; @@ -104028,6 +104103,7 @@ class SectionPlayerComponent { if (index === 0) { this.optionSelectedObj = undefined; this.mtfReorderedOptionsMap = undefined; + this.asqReorderedOptionsMap = undefined; this.myCarousel.selectSlide(0); this.active = this.currentSlideIndex === 0 && this.sectionIndex === 0 && this.showStartPage; this.showRootInstruction = true; @@ -105230,6 +105306,7 @@ var QuestionType; QuestionType["mmcq"] = "MMCQ"; QuestionType["sa"] = "SA"; QuestionType["mtf"] = "MTF"; + QuestionType["asq"] = "ASQ"; })(QuestionType || (QuestionType = {})); /***/ }), @@ -105349,6 +105426,28 @@ class UtilService { }); return totalScore; } + getASQScore(rearrangedOptions, responseDeclaration, isShuffleQuestions, outcomeDeclaration, selectedQuestion) { + let key = this.getKeyValue(Object.keys(responseDeclaration)); + const correctResponse = responseDeclaration[key]['correctResponse']['value']; + const mapping = responseDeclaration[key]['mapping']; + if (isShuffleQuestions) { + const scoreForEachMapping = lodash_es__WEBPACK_IMPORTED_MODULE_2__["default"](outcomeDeclaration.maxScore.defaultValue / mapping.length, 2); + lodash_es__WEBPACK_IMPORTED_MODULE_3__["default"](mapping, map => { + map.score = scoreForEachMapping; + }); + } + let totalScore = 0; + rearrangedOptions.forEach((option, index) => { + const correctIndex = correctResponse[index]; + if (option.label === selectedQuestion.interactions.response1.options[correctIndex].label) { + const scoreMapping = mapping.find(map => map.value === index); + if (scoreMapping) { + totalScore += scoreMapping.score || 0; + } + } + }); + return totalScore; + } hasDuplicates(selectedOptions, option) { let duplicate = selectedOptions.find(o => { return o.value === option.value;