commons-assessment 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +191 -0
  2. package/bundles/commons-assessment.umd.js +3968 -0
  3. package/bundles/commons-assessment.umd.js.map +1 -0
  4. package/commons-assessment.d.ts +5 -0
  5. package/esm2015/commons-assessment.js +5 -0
  6. package/esm2015/lib/commons-assessment.module.js +28 -0
  7. package/esm2015/lib/configuration.js +4 -0
  8. package/esm2015/lib/modules/assessment-maker/assessment-maker.component.js +409 -0
  9. package/esm2015/lib/modules/assessment-maker/assessment-maker.module.js +52 -0
  10. package/esm2015/lib/modules/assessment-maker/components/add-edit-section-introduction/add-edit-section-introduction.component.js +55 -0
  11. package/esm2015/lib/modules/assessment-maker/components/assessment-builder/assessment-builder.component.js +551 -0
  12. package/esm2015/lib/modules/assessment-maker/components/question-details/question-details.component.js +75 -0
  13. package/esm2015/lib/modules/assessment-maker/services/assessment-builder.service.js +150 -0
  14. package/esm2015/lib/modules/assessment-maker/services/assessment-maker.service.js +55 -0
  15. package/esm2015/lib/modules/assessment-taker/assessment-taker.component.js +618 -0
  16. package/esm2015/lib/modules/assessment-taker/assessment-taker.module.js +70 -0
  17. package/esm2015/lib/modules/assessment-taker/components/question-type-editor/question-type-editor.component.js +70 -0
  18. package/esm2015/lib/modules/assessment-taker/components/question-type-file-upload/question-type-file-upload.component.js +153 -0
  19. package/esm2015/lib/modules/assessment-taker/components/question-type-long/question-type-long.component.js +74 -0
  20. package/esm2015/lib/modules/assessment-taker/components/question-type-multiselect/question-type-multiselect.component.js +105 -0
  21. package/esm2015/lib/modules/assessment-taker/components/question-type-number/question-type-number.component.js +47 -0
  22. package/esm2015/lib/modules/assessment-taker/components/question-type-objective/question-type-objective.component.js +91 -0
  23. package/esm2015/lib/modules/assessment-taker/components/question-type-preference/question-type-preference.component.js +105 -0
  24. package/esm2015/lib/modules/assessment-taker/components/question-type-short/question-type-short.component.js +98 -0
  25. package/esm2015/lib/modules/assessment-taker/components/section-instructions/section-instructions.component.js +61 -0
  26. package/esm2015/lib/modules/assessment-taker/services/assessment-taker.service.js +58 -0
  27. package/esm2015/lib/modules/assessment-taker/services/response-builder.service.js +202 -0
  28. package/esm2015/lib/shared/components/text-editor/text-editor.component.js +119 -0
  29. package/esm2015/lib/shared/controllers.js +21 -0
  30. package/esm2015/lib/shared/interfaces/assessment.interface.js +2 -0
  31. package/esm2015/lib/shared/interfaces/question-paper.interface.js +2 -0
  32. package/esm2015/lib/shared/interfaces/question.interface.js +2 -0
  33. package/esm2015/lib/shared/material-modules.js +74 -0
  34. package/esm2015/lib/shared/pipes/order-by.pipe.js +25 -0
  35. package/esm2015/lib/shared/shared.module.js +48 -0
  36. package/esm2015/lib/shared/utils.js +16 -0
  37. package/esm2015/public-api.js +13 -0
  38. package/fesm2015/commons-assessment.js +3278 -0
  39. package/fesm2015/commons-assessment.js.map +1 -0
  40. package/lib/commons-assessment.module.d.ts +10 -0
  41. package/lib/configuration.d.ts +5 -0
  42. package/lib/modules/assessment-maker/assessment-maker.component.d.ts +64 -0
  43. package/lib/modules/assessment-maker/assessment-maker.module.d.ts +14 -0
  44. package/lib/modules/assessment-maker/components/add-edit-section-introduction/add-edit-section-introduction.component.d.ts +24 -0
  45. package/lib/modules/assessment-maker/components/assessment-builder/assessment-builder.component.d.ts +70 -0
  46. package/lib/modules/assessment-maker/components/question-details/question-details.component.d.ts +36 -0
  47. package/lib/modules/assessment-maker/services/assessment-builder.service.d.ts +43 -0
  48. package/lib/modules/assessment-maker/services/assessment-maker.service.d.ts +22 -0
  49. package/lib/modules/assessment-taker/assessment-taker.component.d.ts +81 -0
  50. package/lib/modules/assessment-taker/assessment-taker.module.d.ts +20 -0
  51. package/lib/modules/assessment-taker/components/question-type-editor/question-type-editor.component.d.ts +22 -0
  52. package/lib/modules/assessment-taker/components/question-type-file-upload/question-type-file-upload.component.d.ts +38 -0
  53. package/lib/modules/assessment-taker/components/question-type-long/question-type-long.component.d.ts +23 -0
  54. package/lib/modules/assessment-taker/components/question-type-multiselect/question-type-multiselect.component.d.ts +25 -0
  55. package/lib/modules/assessment-taker/components/question-type-number/question-type-number.component.d.ts +13 -0
  56. package/lib/modules/assessment-taker/components/question-type-objective/question-type-objective.component.d.ts +23 -0
  57. package/lib/modules/assessment-taker/components/question-type-preference/question-type-preference.component.d.ts +25 -0
  58. package/lib/modules/assessment-taker/components/question-type-short/question-type-short.component.d.ts +25 -0
  59. package/lib/modules/assessment-taker/components/section-instructions/section-instructions.component.d.ts +24 -0
  60. package/lib/modules/assessment-taker/services/assessment-taker.service.d.ts +20 -0
  61. package/lib/modules/assessment-taker/services/response-builder.service.d.ts +16 -0
  62. package/lib/shared/components/text-editor/text-editor.component.d.ts +24 -0
  63. package/lib/shared/controllers.d.ts +19 -0
  64. package/lib/shared/interfaces/assessment.interface.d.ts +133 -0
  65. package/lib/shared/interfaces/question-paper.interface.d.ts +73 -0
  66. package/lib/shared/interfaces/question.interface.d.ts +82 -0
  67. package/lib/shared/material-modules.d.ts +18 -0
  68. package/lib/shared/pipes/order-by.pipe.d.ts +7 -0
  69. package/lib/shared/shared.module.d.ts +12 -0
  70. package/lib/shared/utils.d.ts +2 -0
  71. package/package.json +22 -0
  72. package/public-api.d.ts +9 -0
  73. package/src/lib/assets/images/action-dots.svg +5 -0
  74. package/src/lib/assets/images/add-section.svg +4 -0
  75. package/src/lib/assets/images/arrow-down-black.svg +3 -0
  76. package/src/lib/assets/images/arrow-ramp-left.svg +3 -0
  77. package/src/lib/assets/images/close.svg +3 -0
  78. package/src/lib/assets/images/copy.svg +3 -0
  79. package/src/lib/assets/images/delete.svg +1 -0
  80. package/src/lib/assets/images/drag-drop.svg +8 -0
  81. package/src/lib/assets/images/file.svg +5 -0
  82. package/src/lib/assets/images/go-back.svg +3 -0
  83. package/src/lib/assets/images/info.svg +3 -0
  84. package/src/lib/assets/images/jpeg.svg +5 -0
  85. package/src/lib/assets/images/jpg.svg +5 -0
  86. package/src/lib/assets/images/keyboard.svg +3 -0
  87. package/src/lib/assets/images/no-questions.svg +14 -0
  88. package/src/lib/assets/images/pdf.svg +5 -0
  89. package/src/lib/assets/images/pencil.svg +3 -0
  90. package/src/lib/assets/images/plus-primary.svg +3 -0
  91. package/src/lib/assets/images/png.svg +5 -0
  92. package/src/lib/assets/images/svg.svg +5 -0
  93. package/src/lib/assets/json/imageConfig.json +22 -0
  94. package/src/lib/assets/json/labelConfig.json +96 -0
  95. package/src/lib/assets/json/question-builder-rules.json +97 -0
  96. package/src/lib/assets/json/questionTypes.json +50 -0
  97. package/src/lib/assets/theme/_theme.global.scss +63 -0
  98. package/src/lib/assets/theme/_theme.scss +568 -0
  99. package/src/lib/assets/theme/styles.global.scss +191 -0
  100. package/src/lib/assets/theme/styles.scss +63 -0
@@ -0,0 +1,3278 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, Inject, InjectionToken, Injectable, Optional, Self, Input, EventEmitter, Output, Pipe, ViewChild, NgModule, forwardRef } from '@angular/core';
3
+ import * as i3 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i1$2 from '@angular/forms';
6
+ import { FormControl, Validators, FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
7
+ import { forkJoin } from 'rxjs';
8
+ import * as i1 from '@angular/material/dialog';
9
+ import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
10
+ import * as i2 from '@angular/platform-browser';
11
+ import * as i1$1 from '@angular/common/http';
12
+ import { HttpParams } from '@angular/common/http';
13
+ import * as i6 from '@angular/material/tabs';
14
+ import { MatTabsModule } from '@angular/material/tabs';
15
+ import * as i7 from '@angular/material/expansion';
16
+ import { MatExpansionModule } from '@angular/material/expansion';
17
+ import * as i8 from '@angular/material/progress-spinner';
18
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
19
+ import * as i9 from '@angular/material/form-field';
20
+ import { MatFormFieldModule } from '@angular/material/form-field';
21
+ import * as i10 from '@angular/material/select';
22
+ import { MatSelectModule } from '@angular/material/select';
23
+ import * as i11 from '@angular/material/core';
24
+ import * as i1$3 from '@kolkov/angular-editor';
25
+ import { AngularEditorModule } from '@kolkov/angular-editor';
26
+ import * as i2$1 from '@angular/material/radio';
27
+ import { MatRadioModule } from '@angular/material/radio';
28
+ import * as i2$2 from '@angular/material/checkbox';
29
+ import { MatCheckboxModule } from '@angular/material/checkbox';
30
+ import * as i20 from '@angular/cdk/overlay';
31
+ import { OverlayModule } from '@angular/cdk/overlay';
32
+ import * as i9$1 from '@angular/cdk/drag-drop';
33
+ import { DragDropModule, moveItemInArray } from '@angular/cdk/drag-drop';
34
+ import * as i1$4 from '@angular/material/menu';
35
+ import { MatMenuModule } from '@angular/material/menu';
36
+ import * as i11$1 from '@angular/material/tooltip';
37
+ import { MatTooltipModule } from '@angular/material/tooltip';
38
+ import { __awaiter } from 'tslib';
39
+
40
+ function deepClone(data) {
41
+ return JSON.parse(JSON.stringify(data));
42
+ }
43
+ function generateUuid() {
44
+ const cryptoObj = window.crypto;
45
+ if (cryptoObj === null || cryptoObj === void 0 ? void 0 : cryptoObj.randomUUID) {
46
+ return cryptoObj.randomUUID();
47
+ }
48
+ // fallback
49
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
50
+ const r = Math.random() * 16 | 0;
51
+ const v = c === 'x' ? r : (r & 0x3 | 0x8);
52
+ return v.toString(16);
53
+ });
54
+ }
55
+
56
+ class SectionInstructionsComponent {
57
+ constructor(dialogRef, dialogData, sanitizer) {
58
+ this.dialogRef = dialogRef;
59
+ this.dialogData = dialogData;
60
+ this.sanitizer = sanitizer;
61
+ this.imageConfig = {};
62
+ this.labelConfig = {};
63
+ this.sectionDetails = null;
64
+ }
65
+ ngOnInit() {
66
+ var _a, _b, _c;
67
+ this.imageConfig = ((_a = this.dialogData) === null || _a === void 0 ? void 0 : _a.imageConfig) || {};
68
+ this.labelConfig = ((_b = this.dialogData) === null || _b === void 0 ? void 0 : _b.labelConfig) || {};
69
+ this.sectionDetails = deepClone((_c = this.dialogData) === null || _c === void 0 ? void 0 : _c.sectionDetails);
70
+ }
71
+ addYoutubeIframeSrc(videoUrl) {
72
+ const videoId = this.getVideoId(videoUrl);
73
+ const youtubeUrl = `https://www.youtube.com/embed/${videoId}`;
74
+ return this.sanitizer.bypassSecurityTrustResourceUrl(youtubeUrl);
75
+ }
76
+ getVideoId(videoUrl) {
77
+ let pattern = null;
78
+ if (videoUrl.includes('youtube.com')) {
79
+ pattern = /(?:\?v=|&v=|youtu\.be\/|\/embed\/|\/\d\/|\/vi\/|\/v\/|https?:\/\/(?:www\.)?youtube\.com\/(?:v\/|embed\/|watch\?(?:\S+&)?v=|watch\?(?:\S+&)?vi=|\S+\/))([a-zA-Z0-9_-]{11})/;
80
+ }
81
+ else if (videoUrl.includes('youtu.be')) {
82
+ pattern = /youtu\.be\/([a-zA-Z0-9_-]{11})/;
83
+ }
84
+ if (pattern) {
85
+ const match = videoUrl.match(pattern);
86
+ if (match && match[1]) {
87
+ return match[1];
88
+ }
89
+ }
90
+ return null;
91
+ }
92
+ imageErrorHandler(event, filePath) {
93
+ event.target.src = filePath;
94
+ }
95
+ }
96
+ SectionInstructionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SectionInstructionsComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
97
+ SectionInstructionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SectionInstructionsComponent, selector: "lib-section-instructions", ngImport: i0, template: "<div class=\"col-12\">\r\n <header class=\"p-3 d-flex align-items-center justify-content-between col-12 assessment-bg-grey-one\">\r\n <p class=\"mb-0 assessment-text-semibold-18\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.INSTRUCTIONS']}}\r\n </p>\r\n <img mat-dialog-close [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.CLOSE']\" class=\"cursor-pointer\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/close.svg')\" />\r\n </header>\r\n\r\n <div class=\"col-12 px-md-4 px-3 my-4\">\r\n <p *ngIf=\"sectionDetails?.qpsDesc?.[0]?.text\" class=\"assessment-text-medium-14 assessment-grey-ten mb-0\"\r\n [innerHtml]=\"sectionDetails?.qpsDesc?.[0]?.text\"></p>\r\n <div class=\"mt-3 col-12\" *ngIf=\"sectionDetails?.mediaUrl\">\r\n <ng-container *ngTemplateOutlet=\"VideoTemplate; context:{videoUrl:sectionDetails?.mediaUrl}\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n <footer class=\"mt-auto p-3 d-flex align-items-center justify-content-end gap-3 col-12 border-top\">\r\n <button mat-dialog-close\r\n class=\"assessment-text-white assessment-bg-grey-ten assessment-border-radius-two border-0 assessment-zoom-animation assessment-button-padding-large assessment-text-medium-13\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.GOT_IT']}}\r\n </button>\r\n </footer>\r\n</div>\r\n\r\n<!-- video preview -->\r\n<ng-template let-videoUrl=\"videoUrl\" #VideoTemplate>\r\n <div class=\"assessment-border-radius-two overflow-hidden col-md-10 col-12 mx-auto\">\r\n <video *ngIf=\"videoUrl?.includes('.mp4') else youtubeVideo\" width=\"400\" controls class=\"mw-100 d-block mx-auto\">\r\n <source [src]=\"videoUrl\" type=\"video/mp4\">\r\n </video>\r\n <ng-template #youtubeVideo>\r\n <div class=\"youtube-video position-relative h-100\">\r\n <iframe [src]=\"addYoutubeIframeSrc(videoUrl)\" title=\"YouTube video player\" frameborder=\"0\"\r\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\r\n allowfullscreen class=\"position-absolute top-0 start-0 w-100 h-100 d-block\">\r\n </iframe>\r\n </div>\r\n </ng-template>\r\n </div>\r\n</ng-template>", styles: [".assessment-text-grey-ten{color:var(--assessment-grey-ten)!important}.assessment-bg-grey-ten{background-color:var(--assessment-grey-ten)!important}.assessment-text-grey-nine{color:var(--assessment-grey-nine)!important}.assessment-bg-grey-nine{background-color:var(--assessment-grey-nine)!important}.assessment-text-grey-eight{color:var(--assessment-grey-eight)!important}.assessment-bg-grey-eight{background-color:var(--assessment-grey-eight)!important}.assessment-text-grey-seven{color:var(--assessment-grey-seven)!important}.assessment-bg-grey-seven{background-color:var(--assessment-grey-seven)!important}.assessment-text-grey-six{color:var(--assessment-grey-six)!important}.assessment-bg-grey-six{background-color:var(--assessment-grey-six)!important}.assessment-text-grey-five{color:var(--assessment-grey-five)!important}.assessment-bg-grey-five{background-color:var(--assessment-grey-five)!important}.assessment-text-grey-four{color:var(--assessment-grey-four)!important}.assessment-bg-grey-four{background-color:var(--assessment-grey-four)!important}.assessment-text-grey-three{color:var(--assessment-grey-three)!important}.assessment-bg-grey-three{background-color:var(--assessment-grey-three)!important}.assessment-text-grey-two{color:var(--assessment-grey-two)!important}.assessment-bg-grey-two{background-color:var(--assessment-grey-two)!important}.assessment-text-grey-one{color:var(--assessment-grey-one)!important}.assessment-bg-grey-one{background-color:var(--assessment-grey-one)!important}.assessment-text-white{color:var(--assessment-white)!important}.assessment-bg-white{background-color:var(--assessment-white)!important}.assessment-text-black{color:var(--assessment-black)!important}.assessment-bg-black{background-color:var(--assessment-black)!important}.assessment-text-danger{color:var(--assessment-danger)!important}.assessment-bg-danger{background-color:var(--assessment-danger)!important}.assessment-text-primary-one{color:var(--assessment-primary-one)!important}.assessment-bg-primary-one{background-color:var(--assessment-primary-one)!important}.assessment-text-primary-four{color:var(--assessment-primary-four)!important}.assessment-bg-primary-four{background-color:var(--assessment-primary-four)!important}.assessment-text-palette-EDF3FD{color:var(--assessment-palette-EDF3FD)!important}.assessment-bg-palette-EDF3FD{background-color:var(--assessment-palette-EDF3FD)!important}.assessment-text-palette-C8DAF9{color:var(--assessment-palette-C8DAF9)!important}.assessment-bg-palette-C8DAF9{background-color:var(--assessment-palette-C8DAF9)!important}.assessment-text-palette-ADC9F6{color:var(--assessment-palette-ADC9F6)!important}.assessment-bg-palette-ADC9F6{background-color:var(--assessment-palette-ADC9F6)!important}.assessment-text-palette-FEF9F1{color:var(--assessment-palette-FEF9F1)!important}.assessment-bg-palette-FEF9F1{background-color:var(--assessment-palette-FEF9F1)!important}.assessment-text-palette-F9DAA6{color:var(--assessment-palette-F9DAA6)!important}.assessment-bg-palette-F9DAA6{background-color:var(--assessment-palette-F9DAA6)!important}.assessment-text-palette-E8F7F0{color:var(--assessment-palette-E8F7F0)!important}.assessment-bg-palette-E8F7F0{background-color:var(--assessment-palette-E8F7F0)!important}.assessment-text-palette-B7E7CF{color:var(--assessment-palette-B7E7CF)!important}.assessment-bg-palette-B7E7CF{background-color:var(--assessment-palette-B7E7CF)!important}.assessment-box-shadow-one{box-shadow:var(--assessment-box-shadow-one)!important}.assessment-border-radius-one{border-radius:var(--assessment-border-radius-one)!important}.assessment-border-radius-two{border-radius:var(--assessment-border-radius-two)!important}.assessment-border-radius-three{border-radius:var(--assessment-border-radius-three)!important}.assessment-border-radius-four{border-radius:var(--assessment-border-radius-four)!important}.assessment-border-radius-five{border-radius:var(--assessment-border-radius-five)!important}.assessment-border-radius-six{border-radius:var(--assessment-border-radius-six)!important}.assessment-input-border-one{border:var(--assessment-input-border-one)!important}.assessment-input-border-invalid{border:var(--assessment-input-border-invalid)!important}.assessment-input-focus-border{border:var(--assessment-input-focus-border)!important}.assessment-border-two{border:var(--assessment-border-two)!important}.assessment-card-border{border:var(--assessment-card-border)!important}.assessment-tooltip-border{border:var(--assessment-tooltip-border)!important}.assessment-box-shadow-tooltip{box-shadow:var(--assessment-box-shadow-tooltip)!important}.assessment-button-padding{padding:var(--assessment-button-padding)!important}.assessment-button-padding-large{padding:var(--assessment-button-padding-large)!important}.assessment-input-padding{padding:var(--assessment-input-padding)!important}.assessment-text-font-family{color:var(--assessment-font-family)!important}.assessment-bg-font-family{background-color:var(--assessment-font-family)!important}.assessment-text-regular-12{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-bold-12{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-11{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-11{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-regular-11{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-12{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-regular-13{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-bold-13{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-semibold-13{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-medium-13{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-regular-14{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-bold-14{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-medium-14{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw)!important;line-height:calc(1.2rem + .2vw)!important}.assessment-text-semibold-14{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-semibold-10{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw);line-height:calc(1rem + .1vw)}.assessment-text-regular-10{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw)!important;line-height:calc(1rem + .1vw)}.assessment-text-regular-15{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.4rem + .1vw)}.assessment-text-medium-15{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-semibold-15{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-bold-15{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-regular-16{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-semibold-16{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-bold-16{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-medium-16{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-regular-20{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-bold-20{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-semibold-20{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-20{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-18{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-regular-18{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .3vw)!important}.assessment-text-bold-18{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw);line-height:calc(1.5rem + .1vw)}.assessment-text-semibold-18{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-bold-34{overflow-wrap:break-word;font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-medium-34{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-bold-32{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.3rem + .75vw);line-height:calc(1.625rem + .5vw)}.assessment-text-bold-22{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-regular-22{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-semibold-22{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-medium-22{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-24{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-regular-24{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-semibold-24{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-medium-24{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(1.2rem + .75vw)}.assessment-text-regular-26{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-medium-26{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-bold-26{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-semibold-26{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-regular-28{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-medium-28{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-semibold-28{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw);letter-spacing:1}.assessment-text-bold-28{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-regular-30{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw)}.assessment-text-medium-30{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-30{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(2rem + .4vw)}.assessment-text-semibold-30{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw);letter-spacing:.5}.assessment-text-bold-36{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}.assessment-text-semibold-36{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-bold-34{font-size:calc(1.8rem + .15vh);line-height:calc(2.2rem + .15vh)}.assessment-text-bold-32{font-size:calc(1.3rem + 1vh);line-height:calc(1.5rem + 1vh)}.assessment-text-semibold-30{font-size:calc(1.5rem + .4vh);line-height:calc(1.8rem + .4vh)}.assessment-text-medium-24{line-height:2.188rem}.assessment-text-medium-24,.assessment-text-regular-24,.assessment-text-semibold-24,.assessment-text-bold-24,.assessment-text-light-24{font-size:calc(1.3rem + .5vh);line-height:calc(1.8rem + .5vh)}.assessment-text-medium-18,.assessment-text-regular-18,.assessment-text-bold-18,.assessment-text-semibold-18,.assessment-text-light-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-light-16,.assessment-text-bold-16{font-size:calc(.9rem + .3vh)!important;line-height:calc(1.2rem + .3vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16,.assessment-text-regular-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15,.assessment-text-bold-15,.assessment-text-light-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12,.assessment-text-bold-12,.assessment-text-medium-upper-12,.assessment-text-light-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-regular-14,.assessment-text-light-14,.assessment-text-medium-upper-14,.assessment-text-semibold-14,.assessment-text-bold-14{font-size:calc(.8rem + .1vh)!important;line-height:calc(1.2rem + .2vh)!important}.assessment-text-regular-13,.assessment-text-medium-13,.assessment-text-semibold-13,.assessment-text-bold-13,.assessment-text-light-13{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11,.assessment-text-semibold-11,.assessment-text-bold-11,.assessment-text-light-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}}.assessment-btn-primary{background-color:var(--assessment-primary-one);color:var(--assessment-white);border:.064rem solid var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two)}.assessment-btn-primary-transparent{background-color:var(--assessment-white);color:var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two);border:.064rem solid var(--assessment-primary-one)}.assessment-zoom-animation{transition:transform .2s ease;transform:translateZ(0);text-rendering:optimizeLegibility}.assessment-zoom-animation:hover{transform:scale(1.03)}.assessment-zoom-animation:active{transform:scale(1)}.assessment-zoom-animation:disabled{transform:none!important}.change-direction{transform:rotate(180deg);transition:.3s ease-out}.change-direction-reverse{transform:rotate(0);transition:.3s ease-out}.outline-0{outline:none}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.action-icon{width:1.2rem}.mat-menu-item{height:inherit}.youtube-video{aspect-ratio:16/9}\n"], directives: [{ type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SectionInstructionsComponent, decorators: [{
99
+ type: Component,
100
+ args: [{
101
+ selector: 'lib-section-instructions',
102
+ templateUrl: './section-instructions.component.html',
103
+ styleUrls: ['./section-instructions.component.scss']
104
+ }]
105
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
106
+ type: Inject,
107
+ args: [MAT_DIALOG_DATA]
108
+ }] }, { type: i2.DomSanitizer }]; } });
109
+
110
+ // configuration.ts
111
+ const LIBRARY_CONFIG = new InjectionToken('LIBRARY_CONFIG');
112
+
113
+ const COMMONS_ASSESSMENT_SERVICE = '/gateway/commons-assessment-service';
114
+ const assessmentMakerController = {
115
+ assessmentAndQuestionPaper: COMMONS_ASSESSMENT_SERVICE + '/api/v1/assessments/bundled',
116
+ createQuestion: COMMONS_ASSESSMENT_SERVICE + '/api/v2/questions',
117
+ patchQuestion: COMMONS_ASSESSMENT_SERVICE + '/api/v2/questions',
118
+ getAssessmentContext: COMMONS_ASSESSMENT_SERVICE + '/api/v2/assessments/context/$AssessmentId',
119
+ getQuestionsByIds: COMMONS_ASSESSMENT_SERVICE + '/api/v2/questions/questionids',
120
+ duplicateQuestion: COMMONS_ASSESSMENT_SERVICE + '/api/v1/assessmentQuestionPapers/questionPaperSection/$SectionId/sectionQuestions/$SectionQuestionId/duplicate',
121
+ duplicateSection: COMMONS_ASSESSMENT_SERVICE + '/api/v1/assessmentQuestionPapers/$AssessmentQuestionPaperId/questionPaperSection/$SectionId/duplicate',
122
+ createAssessmentInstance: COMMONS_ASSESSMENT_SERVICE + '/api/v1/assessmentinstances'
123
+ };
124
+ const assessmentTakerController = {
125
+ getAssessmentContextById: COMMONS_ASSESSMENT_SERVICE + '/api/v1/assessments/context/$AssessmentId',
126
+ getAssessmentQuestionPaper: COMMONS_ASSESSMENT_SERVICE + '/api/v2/assessmentQuestionPapers?',
127
+ getAssessmentQuestions: COMMONS_ASSESSMENT_SERVICE + '/api/v3/questions/questions/instance?',
128
+ getChildQuestionsWithIdList: COMMONS_ASSESSMENT_SERVICE + '/api/v3/questions/childquestion/instance?',
129
+ uploadAttachment: COMMONS_ASSESSMENT_SERVICE + '/api/v1/attachments?',
130
+ submitAssessment: COMMONS_ASSESSMENT_SERVICE + '/api/v2/assessmentInstanceAssesses',
131
+ getAnswersByAiaId: COMMONS_ASSESSMENT_SERVICE + '/api/v2/assessmentInstanceAssesses/',
132
+ };
133
+
134
+ class AssessmentTakerService {
135
+ constructor(config, http) {
136
+ this.config = config;
137
+ this.http = http;
138
+ }
139
+ createParams(params) {
140
+ let param = new HttpParams();
141
+ for (const key of Object.keys(params)) {
142
+ param = param.set(key, params[key]);
143
+ }
144
+ return param;
145
+ }
146
+ getConfigJSON(fileName) {
147
+ return this.http.get(`/assets/commons-assessment/${fileName}.json`);
148
+ }
149
+ getAssessmentContextById(assessmentId) {
150
+ return this.http.get(this.config.baseURL + assessmentTakerController.getAssessmentContextById.replace('$AssessmentId', assessmentId.toString()));
151
+ }
152
+ getAssessmentQuestionPaper(instanceId) {
153
+ return this.http.get(this.config.baseURL + assessmentTakerController.getAssessmentQuestionPaper + this.createParams({ instanceId }));
154
+ }
155
+ getAssessmentQuestions(instanceId, questionIds) {
156
+ return this.http.get(this.config.baseURL + assessmentTakerController.getAssessmentQuestions + this.createParams({ instanceId, questionIds }));
157
+ }
158
+ getChildQuestionsWithIdList(instanceId, questionIds) {
159
+ return this.http.get(this.config.baseURL + assessmentTakerController.getChildQuestionsWithIdList + this.createParams({ instanceId, questionIds }));
160
+ }
161
+ uploadAttachment(fileUploadPayload, params) {
162
+ return this.http.post(this.config.baseURL + assessmentTakerController.uploadAttachment + this.createParams(params), fileUploadPayload);
163
+ }
164
+ submitAssessment(payload) {
165
+ return this.http.post(this.config.baseURL + assessmentTakerController.submitAssessment, payload);
166
+ }
167
+ patchAssessment(payload) {
168
+ return this.http.patch(this.config.baseURL + assessmentTakerController.submitAssessment, payload);
169
+ }
170
+ getAnswersByAiaId(aiaId) {
171
+ return this.http.get(this.config.baseURL + assessmentTakerController.getAnswersByAiaId + aiaId);
172
+ }
173
+ }
174
+ AssessmentTakerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentTakerService, deps: [{ token: LIBRARY_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
175
+ AssessmentTakerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentTakerService, providedIn: 'root' });
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentTakerService, decorators: [{
177
+ type: Injectable,
178
+ args: [{
179
+ providedIn: 'root'
180
+ }]
181
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
182
+ type: Inject,
183
+ args: [LIBRARY_CONFIG]
184
+ }] }, { type: i1$1.HttpClient }]; } });
185
+
186
+ class ResponseBuilderService {
187
+ constructor() { }
188
+ buildResponsePayload(assesseeResponse, assessmentData, sectionFormGroups, questionBank, tenant) {
189
+ var _a;
190
+ const requestPayload = deepClone(assesseeResponse);
191
+ requestPayload.aiadefaultResponseList = [];
192
+ (_a = assessmentData === null || assessmentData === void 0 ? void 0 : assessmentData.questionPaperSectionList) === null || _a === void 0 ? void 0 : _a.forEach((section) => {
193
+ var _a;
194
+ const sectionFormGroupWrapper = sectionFormGroups.find((s) => s.sectionId === section.id);
195
+ if (sectionFormGroupWrapper) {
196
+ const formGroup = sectionFormGroupWrapper.formGroup;
197
+ (_a = section.sectionQuestionsList) === null || _a === void 0 ? void 0 : _a.forEach((sectionQuestion) => {
198
+ var _a, _b, _c, _d, _e;
199
+ const ques = questionBank[(sectionQuestion === null || sectionQuestion === void 0 ? void 0 : sectionQuestion.questionId) || -1];
200
+ if (!ques)
201
+ return;
202
+ const quesResObj = this.getQuestionResponseObj(formGroup, ques === null || ques === void 0 ? void 0 : ques.id, questionBank);
203
+ const questionResponseObj = quesResObj.questionResponseObj;
204
+ if (questionResponseObj) {
205
+ let reqObj = Object.assign({}, questionResponseObj);
206
+ delete reqObj.defaultOption;
207
+ const existingAns = (_a = assesseeResponse.aiadefaultResponseList) === null || _a === void 0 ? void 0 : _a.find((a) => { var _a; return ((_a = a.sectionQuestion) === null || _a === void 0 ? void 0 : _a.questionId) === sectionQuestion.questionId && !a.childQuestionId; });
208
+ this.mergeExistingIds(reqObj, existingAns);
209
+ (_b = requestPayload.aiadefaultResponseList) === null || _b === void 0 ? void 0 : _b.push(Object.assign(Object.assign({}, reqObj), { id: (existingAns === null || existingAns === void 0 ? void 0 : existingAns.id) || 0, isActive: true, sectionQuestion,
210
+ tenant, marks: ((_c = formGroup.get(`${ques.id}_marks`)) === null || _c === void 0 ? void 0 : _c.value) != null ? Number((_d = formGroup.get(`${ques.id}_marks`)) === null || _d === void 0 ? void 0 : _d.value) : null }));
211
+ if ((_e = quesResObj.childQuesResObj) === null || _e === void 0 ? void 0 : _e.length) {
212
+ quesResObj.childQuesResObj.forEach((childData) => {
213
+ var _a, _b, _c, _d;
214
+ const childObj = childData === null || childData === void 0 ? void 0 : childData.questionResponseObj;
215
+ const childDetails = childData === null || childData === void 0 ? void 0 : childData.childQuestionDetails;
216
+ if (!childObj || !childDetails)
217
+ return;
218
+ let specificChildReqObj = Object.assign({}, childObj);
219
+ delete specificChildReqObj.defaultOption;
220
+ const existingChildAns = (_a = assesseeResponse.aiadefaultResponseList) === null || _a === void 0 ? void 0 : _a.find((a) => a.childQuestionId === childDetails.id &&
221
+ a.childQuestionParentQuestionId === sectionQuestion.questionId);
222
+ this.mergeExistingIds(specificChildReqObj, existingChildAns);
223
+ (_b = requestPayload.aiadefaultResponseList) === null || _b === void 0 ? void 0 : _b.push(Object.assign(Object.assign({ childQuestionId: childDetails.id, childQuestionParentQuestionId: sectionQuestion.questionId, childDefaultOptionId: childData.parentOptionId }, specificChildReqObj), { id: (existingChildAns === null || existingChildAns === void 0 ? void 0 : existingChildAns.id) || 0, isActive: true, sectionQuestion,
224
+ tenant, marks: ((_c = formGroup.get(`${childDetails.id}_marks`)) === null || _c === void 0 ? void 0 : _c.value) != null ? Number((_d = formGroup.get(`${childDetails.id}_marks`)) === null || _d === void 0 ? void 0 : _d.value) : null }));
225
+ });
226
+ }
227
+ }
228
+ });
229
+ }
230
+ });
231
+ return requestPayload;
232
+ }
233
+ mergeExistingIds(newAns, existingAns) {
234
+ if (!existingAns)
235
+ return;
236
+ if (newAns.drsubjectiveresponseList && existingAns.drsubjectiveresponseList) {
237
+ newAns.drsubjectiveresponseList.forEach((nItem, idx) => {
238
+ if (existingAns.drsubjectiveresponseList[idx]) {
239
+ nItem.id = existingAns.drsubjectiveresponseList[idx].id;
240
+ }
241
+ });
242
+ }
243
+ if (newAns.drobjectiveresponseList && existingAns.drobjectiveresponseList) {
244
+ newAns.drobjectiveresponseList.forEach((nItem, idx) => {
245
+ const existingItem = existingAns.drobjectiveresponseList.find((eItem) => { var _a, _b, _c, _d; return ((_b = (_a = eItem.defaultOption) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.id) === ((_d = (_c = nItem.defaultOption) === null || _c === void 0 ? void 0 : _c.options) === null || _d === void 0 ? void 0 : _d.id); });
246
+ if (existingItem) {
247
+ nItem.id = existingItem.id;
248
+ }
249
+ else if (existingAns.drobjectiveresponseList[idx]) {
250
+ nItem.id = existingAns.drobjectiveresponseList[idx].id;
251
+ }
252
+ });
253
+ }
254
+ }
255
+ getQuestionResponseObj(formGroup, quesId = -1, questionBank) {
256
+ var _a;
257
+ const questionDetails = questionBank[quesId];
258
+ if (!questionDetails)
259
+ return { questionResponseObj: null, childQuesResObj: [] };
260
+ let questionResponseObj = {};
261
+ let childQuesResObj = [];
262
+ const rawValues = (formGroup === null || formGroup === void 0 ? void 0 : formGroup.getRawValue) ? formGroup.getRawValue() : ((formGroup === null || formGroup === void 0 ? void 0 : formGroup.value) || {});
263
+ const val = rawValues[quesId];
264
+ if (!val) {
265
+ return { questionResponseObj: null, childQuesResObj: [] };
266
+ }
267
+ const qType = (_a = questionDetails.questionType) === null || _a === void 0 ? void 0 : _a.code;
268
+ if (qType === 'QUESTION_TYPE.OBJECTIVE') {
269
+ const defaultOptions = questionDetails.defaultOptionsList || [];
270
+ const selectedOption = defaultOptions.find((i) => i.options.id === val.id);
271
+ if (selectedOption) {
272
+ questionResponseObj = {
273
+ optionId: selectedOption.options,
274
+ defaultOption: selectedOption
275
+ };
276
+ if (selectedOption.remarksRequired) {
277
+ const remarksVal = rawValues[`${quesId}_remarks_${selectedOption.id}`];
278
+ if (remarksVal) {
279
+ questionResponseObj.remarks = remarksVal;
280
+ }
281
+ }
282
+ const childQuesIds = selectedOption.childQuestionList || [];
283
+ childQuesIds.forEach((childId) => {
284
+ var _a;
285
+ const childResponse = this.getQuestionResponseObj(formGroup, childId, questionBank);
286
+ if (childResponse === null || childResponse === void 0 ? void 0 : childResponse.questionResponseObj) {
287
+ childQuesResObj.push({
288
+ questionResponseObj: childResponse.questionResponseObj,
289
+ childQuestionDetails: questionBank[childId],
290
+ parentOptionId: selectedOption.options.id
291
+ });
292
+ if ((_a = childResponse.childQuesResObj) === null || _a === void 0 ? void 0 : _a.length) {
293
+ childQuesResObj = childQuesResObj.concat(childResponse.childQuesResObj);
294
+ }
295
+ }
296
+ });
297
+ }
298
+ else {
299
+ questionResponseObj = null;
300
+ }
301
+ }
302
+ else if (qType === 'QUESTION_TYPE.MULTI_SELECT' || qType === 'QUESTION_TYPE.PREFERENCE') {
303
+ const defaultOptions = questionDetails.defaultOptionsList || [];
304
+ const drobjectiveresponseList = [];
305
+ let valArray = Array.isArray(val) ? val : [val];
306
+ valArray.forEach((opt, index) => {
307
+ const selectedOption = defaultOptions.find((i) => { var _a; return ((_a = i.options) === null || _a === void 0 ? void 0 : _a.id) === opt.id; });
308
+ if (selectedOption) {
309
+ const obj = {
310
+ id: 0,
311
+ defaultOption: selectedOption
312
+ };
313
+ if (qType === 'QUESTION_TYPE.PREFERENCE') {
314
+ obj.orderNo = index + 1;
315
+ }
316
+ if (selectedOption.remarksRequired) {
317
+ const remarksVal = rawValues[`${quesId}_remarks_${selectedOption.id}`];
318
+ if (remarksVal) {
319
+ obj.remarks = remarksVal;
320
+ }
321
+ }
322
+ drobjectiveresponseList.push(obj);
323
+ const childQuesIds = selectedOption.childQuestionList || [];
324
+ childQuesIds.forEach((childId) => {
325
+ var _a;
326
+ const childResponse = this.getQuestionResponseObj(formGroup, childId, questionBank);
327
+ if (childResponse === null || childResponse === void 0 ? void 0 : childResponse.questionResponseObj) {
328
+ childQuesResObj.push({
329
+ questionResponseObj: childResponse.questionResponseObj,
330
+ childQuestionDetails: questionBank[childId],
331
+ parentOptionId: selectedOption.options.id
332
+ });
333
+ if ((_a = childResponse.childQuesResObj) === null || _a === void 0 ? void 0 : _a.length) {
334
+ childQuesResObj = childQuesResObj.concat(childResponse.childQuesResObj);
335
+ }
336
+ }
337
+ });
338
+ }
339
+ });
340
+ if (drobjectiveresponseList.length > 0) {
341
+ questionResponseObj = { drobjectiveresponseList };
342
+ }
343
+ else {
344
+ questionResponseObj = null;
345
+ }
346
+ }
347
+ else if (qType === 'QUESTION_TYPE.FILE_UPLOAD') {
348
+ const drsubjectiveresponseList = [];
349
+ let valArray = Array.isArray(val) ? val : [val];
350
+ valArray.forEach((opt) => {
351
+ drsubjectiveresponseList.push({
352
+ id: 0,
353
+ responseText: opt === null || opt === void 0 ? void 0 : opt.id
354
+ });
355
+ });
356
+ if (drsubjectiveresponseList.length > 0) {
357
+ questionResponseObj = { drsubjectiveresponseList };
358
+ }
359
+ else {
360
+ questionResponseObj = null;
361
+ }
362
+ }
363
+ else {
364
+ questionResponseObj = {
365
+ drsubjectiveresponseList: [
366
+ {
367
+ id: 0,
368
+ responseText: val
369
+ }
370
+ ]
371
+ };
372
+ }
373
+ return { questionResponseObj, childQuesResObj };
374
+ }
375
+ }
376
+ ResponseBuilderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResponseBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
377
+ ResponseBuilderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResponseBuilderService, providedIn: 'root' });
378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResponseBuilderService, decorators: [{
379
+ type: Injectable,
380
+ args: [{
381
+ providedIn: 'root'
382
+ }]
383
+ }], ctorParameters: function () { return []; } });
384
+
385
+ class QuestionTypeShortComponent {
386
+ constructor(ngControl) {
387
+ this.ngControl = ngControl;
388
+ this.previewMode = false;
389
+ this.labelConfig = {};
390
+ this.formControl = new FormControl('');
391
+ this.onTouched = () => { };
392
+ if (this.ngControl != null) {
393
+ this.ngControl.valueAccessor = this;
394
+ }
395
+ }
396
+ checkFormControlValid() {
397
+ var _a, _b, _c, _d;
398
+ if (((_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.touched) && ((_d = (_c = this.ngControl) === null || _c === void 0 ? void 0 : _c.control) === null || _d === void 0 ? void 0 : _d.invalid)) {
399
+ return 'assessment-input-border-invalid';
400
+ }
401
+ return '';
402
+ }
403
+ writeValue(value) {
404
+ if (value !== undefined && value !== null) {
405
+ this.formControl.setValue(value, { emitEvent: false });
406
+ }
407
+ else {
408
+ this.formControl.setValue('', { emitEvent: false });
409
+ }
410
+ }
411
+ registerOnChange(fn) {
412
+ this.formControl.valueChanges.subscribe((val) => fn(val));
413
+ }
414
+ registerOnTouched(fn) {
415
+ this.onTouched = fn;
416
+ }
417
+ setDisabledState(isDisabled) {
418
+ if (isDisabled) {
419
+ this.formControl.disable({ emitEvent: false });
420
+ }
421
+ else {
422
+ this.formControl.enable({ emitEvent: false });
423
+ }
424
+ }
425
+ get maxCharCount() {
426
+ var _a, _b;
427
+ const config = (_b = (_a = this.question) === null || _a === void 0 ? void 0 : _a.questionConfigs) === null || _b === void 0 ? void 0 : _b.find(c => c.configKey === 'maxCharacterCount');
428
+ return config ? Number(config.configValue) : 0;
429
+ }
430
+ get inputType() {
431
+ var _a, _b;
432
+ switch ((_b = (_a = this.question) === null || _a === void 0 ? void 0 : _a.questionType) === null || _b === void 0 ? void 0 : _b.code) {
433
+ case 'QUESTION_TYPE.NUMBER':
434
+ return 'number';
435
+ case 'QUESTION_TYPE.EMAIL':
436
+ return 'email';
437
+ case 'QUESTION_TYPE.CONTACT_NUMBER':
438
+ return 'tel';
439
+ case 'QUESTION_TYPE.URL':
440
+ return 'url';
441
+ default:
442
+ return 'text';
443
+ }
444
+ }
445
+ restrictNumberOnly(event) {
446
+ var _a, _b, _c, _d;
447
+ if (((_b = (_a = this.question) === null || _a === void 0 ? void 0 : _a.questionType) === null || _b === void 0 ? void 0 : _b.code) === 'QUESTION_TYPE.NUMBER' || ((_d = (_c = this.question) === null || _c === void 0 ? void 0 : _c.questionType) === null || _d === void 0 ? void 0 : _d.code) === 'QUESTION_TYPE.CONTACT_NUMBER') {
448
+ const allowedKeys = ['Backspace', 'ArrowLeft', 'ArrowRight', 'Tab', 'Delete'];
449
+ if (!/^[0-9]$/.test(event.key) && !allowedKeys.includes(event.key)) {
450
+ event.preventDefault();
451
+ }
452
+ }
453
+ }
454
+ }
455
+ QuestionTypeShortComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypeShortComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
456
+ QuestionTypeShortComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionTypeShortComponent, selector: "lib-question-type-short", inputs: { required: "required", question: "question", previewMode: "previewMode", labelConfig: "labelConfig" }, ngImport: i0, template: "<input *ngIf=\"!previewMode else previewModeTemplate\" [type]=\"inputType\" [ngClass]=\"checkFormControlValid()\"\r\n [id]=\"question.id\" [formControl]=\"formControl\"\r\n class=\"col-12 assessment-text-regular-13 assessment-input-border-one assessment-border-radius-two assessment-input-padding outline-0 assessment-bg-grey-one\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.ANSWER']\" [required]=\"required\" (blur)=\"onTouched()\"\r\n [attr.maxlength]=\"maxCharCount || null\" (keydown)=\"restrictNumberOnly($event)\">\r\n\r\n<ng-template #previewModeTemplate>\r\n <span class=\"assessment-text-regular-13 assessment-text-grey-nine\">{{ formControl.value }}</span>\r\n</ng-template>", styles: [".assessment-text-grey-ten{color:var(--assessment-grey-ten)!important}.assessment-bg-grey-ten{background-color:var(--assessment-grey-ten)!important}.assessment-text-grey-nine{color:var(--assessment-grey-nine)!important}.assessment-bg-grey-nine{background-color:var(--assessment-grey-nine)!important}.assessment-text-grey-eight{color:var(--assessment-grey-eight)!important}.assessment-bg-grey-eight{background-color:var(--assessment-grey-eight)!important}.assessment-text-grey-seven{color:var(--assessment-grey-seven)!important}.assessment-bg-grey-seven{background-color:var(--assessment-grey-seven)!important}.assessment-text-grey-six{color:var(--assessment-grey-six)!important}.assessment-bg-grey-six{background-color:var(--assessment-grey-six)!important}.assessment-text-grey-five{color:var(--assessment-grey-five)!important}.assessment-bg-grey-five{background-color:var(--assessment-grey-five)!important}.assessment-text-grey-four{color:var(--assessment-grey-four)!important}.assessment-bg-grey-four{background-color:var(--assessment-grey-four)!important}.assessment-text-grey-three{color:var(--assessment-grey-three)!important}.assessment-bg-grey-three{background-color:var(--assessment-grey-three)!important}.assessment-text-grey-two{color:var(--assessment-grey-two)!important}.assessment-bg-grey-two{background-color:var(--assessment-grey-two)!important}.assessment-text-grey-one{color:var(--assessment-grey-one)!important}.assessment-bg-grey-one{background-color:var(--assessment-grey-one)!important}.assessment-text-white{color:var(--assessment-white)!important}.assessment-bg-white{background-color:var(--assessment-white)!important}.assessment-text-black{color:var(--assessment-black)!important}.assessment-bg-black{background-color:var(--assessment-black)!important}.assessment-text-danger{color:var(--assessment-danger)!important}.assessment-bg-danger{background-color:var(--assessment-danger)!important}.assessment-text-primary-one{color:var(--assessment-primary-one)!important}.assessment-bg-primary-one{background-color:var(--assessment-primary-one)!important}.assessment-text-primary-four{color:var(--assessment-primary-four)!important}.assessment-bg-primary-four{background-color:var(--assessment-primary-four)!important}.assessment-text-palette-EDF3FD{color:var(--assessment-palette-EDF3FD)!important}.assessment-bg-palette-EDF3FD{background-color:var(--assessment-palette-EDF3FD)!important}.assessment-text-palette-C8DAF9{color:var(--assessment-palette-C8DAF9)!important}.assessment-bg-palette-C8DAF9{background-color:var(--assessment-palette-C8DAF9)!important}.assessment-text-palette-ADC9F6{color:var(--assessment-palette-ADC9F6)!important}.assessment-bg-palette-ADC9F6{background-color:var(--assessment-palette-ADC9F6)!important}.assessment-text-palette-FEF9F1{color:var(--assessment-palette-FEF9F1)!important}.assessment-bg-palette-FEF9F1{background-color:var(--assessment-palette-FEF9F1)!important}.assessment-text-palette-F9DAA6{color:var(--assessment-palette-F9DAA6)!important}.assessment-bg-palette-F9DAA6{background-color:var(--assessment-palette-F9DAA6)!important}.assessment-text-palette-E8F7F0{color:var(--assessment-palette-E8F7F0)!important}.assessment-bg-palette-E8F7F0{background-color:var(--assessment-palette-E8F7F0)!important}.assessment-text-palette-B7E7CF{color:var(--assessment-palette-B7E7CF)!important}.assessment-bg-palette-B7E7CF{background-color:var(--assessment-palette-B7E7CF)!important}.assessment-box-shadow-one{box-shadow:var(--assessment-box-shadow-one)!important}.assessment-border-radius-one{border-radius:var(--assessment-border-radius-one)!important}.assessment-border-radius-two{border-radius:var(--assessment-border-radius-two)!important}.assessment-border-radius-three{border-radius:var(--assessment-border-radius-three)!important}.assessment-border-radius-four{border-radius:var(--assessment-border-radius-four)!important}.assessment-border-radius-five{border-radius:var(--assessment-border-radius-five)!important}.assessment-border-radius-six{border-radius:var(--assessment-border-radius-six)!important}.assessment-input-border-one{border:var(--assessment-input-border-one)!important}.assessment-input-border-invalid{border:var(--assessment-input-border-invalid)!important}.assessment-input-focus-border{border:var(--assessment-input-focus-border)!important}.assessment-border-two{border:var(--assessment-border-two)!important}.assessment-card-border{border:var(--assessment-card-border)!important}.assessment-tooltip-border{border:var(--assessment-tooltip-border)!important}.assessment-box-shadow-tooltip{box-shadow:var(--assessment-box-shadow-tooltip)!important}.assessment-button-padding{padding:var(--assessment-button-padding)!important}.assessment-button-padding-large{padding:var(--assessment-button-padding-large)!important}.assessment-input-padding{padding:var(--assessment-input-padding)!important}.assessment-text-font-family{color:var(--assessment-font-family)!important}.assessment-bg-font-family{background-color:var(--assessment-font-family)!important}.assessment-text-regular-12{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-bold-12{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-11{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-11{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-regular-11{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-12{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-regular-13{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-bold-13{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-semibold-13{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-medium-13{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-regular-14{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-bold-14{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-medium-14{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw)!important;line-height:calc(1.2rem + .2vw)!important}.assessment-text-semibold-14{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-semibold-10{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw);line-height:calc(1rem + .1vw)}.assessment-text-regular-10{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw)!important;line-height:calc(1rem + .1vw)}.assessment-text-regular-15{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.4rem + .1vw)}.assessment-text-medium-15{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-semibold-15{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-bold-15{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-regular-16{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-semibold-16{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-bold-16{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-medium-16{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-regular-20{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-bold-20{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-semibold-20{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-20{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-18{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-regular-18{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .3vw)!important}.assessment-text-bold-18{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw);line-height:calc(1.5rem + .1vw)}.assessment-text-semibold-18{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-bold-34{overflow-wrap:break-word;font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-medium-34{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-bold-32{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.3rem + .75vw);line-height:calc(1.625rem + .5vw)}.assessment-text-bold-22{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-regular-22{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-semibold-22{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-medium-22{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-24{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-regular-24{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-semibold-24{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-medium-24{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(1.2rem + .75vw)}.assessment-text-regular-26{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-medium-26{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-bold-26{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-semibold-26{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-regular-28{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-medium-28{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-semibold-28{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw);letter-spacing:1}.assessment-text-bold-28{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-regular-30{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw)}.assessment-text-medium-30{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-30{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(2rem + .4vw)}.assessment-text-semibold-30{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw);letter-spacing:.5}.assessment-text-bold-36{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}.assessment-text-semibold-36{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-bold-34{font-size:calc(1.8rem + .15vh);line-height:calc(2.2rem + .15vh)}.assessment-text-bold-32{font-size:calc(1.3rem + 1vh);line-height:calc(1.5rem + 1vh)}.assessment-text-semibold-30{font-size:calc(1.5rem + .4vh);line-height:calc(1.8rem + .4vh)}.assessment-text-medium-24{line-height:2.188rem}.assessment-text-medium-24,.assessment-text-regular-24,.assessment-text-semibold-24,.assessment-text-bold-24,.assessment-text-light-24{font-size:calc(1.3rem + .5vh);line-height:calc(1.8rem + .5vh)}.assessment-text-medium-18,.assessment-text-regular-18,.assessment-text-bold-18,.assessment-text-semibold-18,.assessment-text-light-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-light-16,.assessment-text-bold-16{font-size:calc(.9rem + .3vh)!important;line-height:calc(1.2rem + .3vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16,.assessment-text-regular-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15,.assessment-text-bold-15,.assessment-text-light-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12,.assessment-text-bold-12,.assessment-text-medium-upper-12,.assessment-text-light-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-regular-14,.assessment-text-light-14,.assessment-text-medium-upper-14,.assessment-text-semibold-14,.assessment-text-bold-14{font-size:calc(.8rem + .1vh)!important;line-height:calc(1.2rem + .2vh)!important}.assessment-text-regular-13,.assessment-text-medium-13,.assessment-text-semibold-13,.assessment-text-bold-13,.assessment-text-light-13{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11,.assessment-text-semibold-11,.assessment-text-bold-11,.assessment-text-light-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}}.assessment-btn-primary{background-color:var(--assessment-primary-one);color:var(--assessment-white);border:.064rem solid var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two)}.assessment-btn-primary-transparent{background-color:var(--assessment-white);color:var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two);border:.064rem solid var(--assessment-primary-one)}.assessment-zoom-animation{transition:transform .2s ease;transform:translateZ(0);text-rendering:optimizeLegibility}.assessment-zoom-animation:hover{transform:scale(1.03)}.assessment-zoom-animation:active{transform:scale(1)}.assessment-zoom-animation:disabled{transform:none!important}.change-direction{transform:rotate(180deg);transition:.3s ease-out}.change-direction-reverse{transform:rotate(0);transition:.3s ease-out}.outline-0{outline:none}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.action-icon{width:1.2rem}.mat-menu-item{height:inherit}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }] });
457
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypeShortComponent, decorators: [{
458
+ type: Component,
459
+ args: [{
460
+ selector: 'lib-question-type-short',
461
+ templateUrl: './question-type-short.component.html',
462
+ styleUrls: ['./question-type-short.component.scss']
463
+ }]
464
+ }], ctorParameters: function () { return [{ type: i1$2.NgControl, decorators: [{
465
+ type: Optional
466
+ }, {
467
+ type: Self
468
+ }] }]; }, propDecorators: { required: [{
469
+ type: Input
470
+ }], question: [{
471
+ type: Input
472
+ }], previewMode: [{
473
+ type: Input
474
+ }], labelConfig: [{
475
+ type: Input
476
+ }] } });
477
+
478
+ class QuestionTypeLongComponent {
479
+ constructor(ngControl) {
480
+ this.ngControl = ngControl;
481
+ this.previewMode = false;
482
+ this.labelConfig = {};
483
+ this.formControl = new FormControl('');
484
+ this.onTouched = () => { };
485
+ if (this.ngControl != null) {
486
+ this.ngControl.valueAccessor = this;
487
+ }
488
+ }
489
+ checkFormControlValid() {
490
+ var _a, _b, _c, _d;
491
+ if (((_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.touched) && ((_d = (_c = this.ngControl) === null || _c === void 0 ? void 0 : _c.control) === null || _d === void 0 ? void 0 : _d.invalid)) {
492
+ return 'assessment-input-border-invalid';
493
+ }
494
+ return '';
495
+ }
496
+ writeValue(value) {
497
+ if (value !== undefined && value !== null) {
498
+ this.formControl.setValue(value, { emitEvent: false });
499
+ }
500
+ else {
501
+ this.formControl.setValue('', { emitEvent: false });
502
+ }
503
+ }
504
+ registerOnChange(fn) {
505
+ this.formControl.valueChanges.subscribe((val) => fn(val));
506
+ }
507
+ registerOnTouched(fn) {
508
+ this.onTouched = fn;
509
+ }
510
+ setDisabledState(isDisabled) {
511
+ if (isDisabled) {
512
+ this.formControl.disable({ emitEvent: false });
513
+ }
514
+ else {
515
+ this.formControl.enable({ emitEvent: false });
516
+ }
517
+ }
518
+ get maxCharCount() {
519
+ var _a, _b;
520
+ const config = (_b = (_a = this.question) === null || _a === void 0 ? void 0 : _a.questionConfigs) === null || _b === void 0 ? void 0 : _b.find(c => c.configKey === 'maxCharacterCount');
521
+ return config ? Number(config.configValue) : 0;
522
+ }
523
+ }
524
+ QuestionTypeLongComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypeLongComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
525
+ QuestionTypeLongComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionTypeLongComponent, selector: "lib-question-type-long", inputs: { required: "required", question: "question", previewMode: "previewMode", labelConfig: "labelConfig" }, ngImport: i0, template: "<textarea *ngIf=\"!previewMode else previewModeTemplate\" [ngClass]=\"checkFormControlValid()\" [id]=\"question.id\"\r\n [formControl]=\"formControl\"\r\n class=\"col-12 assessment-text-regular-13 assessment-input-border-one assessment-border-radius-two assessment-input-padding outline-0 assessment-bg-grey-one\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.ANSWER']\" [required]=\"required\" (blur)=\"onTouched()\" rows=\"4\"\r\n [attr.maxlength]=\"maxCharCount || null\"></textarea>\r\n\r\n<ng-template #previewModeTemplate>\r\n <span class=\"assessment-text-regular-13 assessment-text-grey-nine\">{{ formControl.value }}</span>\r\n</ng-template>", styles: [".assessment-text-grey-ten{color:var(--assessment-grey-ten)!important}.assessment-bg-grey-ten{background-color:var(--assessment-grey-ten)!important}.assessment-text-grey-nine{color:var(--assessment-grey-nine)!important}.assessment-bg-grey-nine{background-color:var(--assessment-grey-nine)!important}.assessment-text-grey-eight{color:var(--assessment-grey-eight)!important}.assessment-bg-grey-eight{background-color:var(--assessment-grey-eight)!important}.assessment-text-grey-seven{color:var(--assessment-grey-seven)!important}.assessment-bg-grey-seven{background-color:var(--assessment-grey-seven)!important}.assessment-text-grey-six{color:var(--assessment-grey-six)!important}.assessment-bg-grey-six{background-color:var(--assessment-grey-six)!important}.assessment-text-grey-five{color:var(--assessment-grey-five)!important}.assessment-bg-grey-five{background-color:var(--assessment-grey-five)!important}.assessment-text-grey-four{color:var(--assessment-grey-four)!important}.assessment-bg-grey-four{background-color:var(--assessment-grey-four)!important}.assessment-text-grey-three{color:var(--assessment-grey-three)!important}.assessment-bg-grey-three{background-color:var(--assessment-grey-three)!important}.assessment-text-grey-two{color:var(--assessment-grey-two)!important}.assessment-bg-grey-two{background-color:var(--assessment-grey-two)!important}.assessment-text-grey-one{color:var(--assessment-grey-one)!important}.assessment-bg-grey-one{background-color:var(--assessment-grey-one)!important}.assessment-text-white{color:var(--assessment-white)!important}.assessment-bg-white{background-color:var(--assessment-white)!important}.assessment-text-black{color:var(--assessment-black)!important}.assessment-bg-black{background-color:var(--assessment-black)!important}.assessment-text-danger{color:var(--assessment-danger)!important}.assessment-bg-danger{background-color:var(--assessment-danger)!important}.assessment-text-primary-one{color:var(--assessment-primary-one)!important}.assessment-bg-primary-one{background-color:var(--assessment-primary-one)!important}.assessment-text-primary-four{color:var(--assessment-primary-four)!important}.assessment-bg-primary-four{background-color:var(--assessment-primary-four)!important}.assessment-text-palette-EDF3FD{color:var(--assessment-palette-EDF3FD)!important}.assessment-bg-palette-EDF3FD{background-color:var(--assessment-palette-EDF3FD)!important}.assessment-text-palette-C8DAF9{color:var(--assessment-palette-C8DAF9)!important}.assessment-bg-palette-C8DAF9{background-color:var(--assessment-palette-C8DAF9)!important}.assessment-text-palette-ADC9F6{color:var(--assessment-palette-ADC9F6)!important}.assessment-bg-palette-ADC9F6{background-color:var(--assessment-palette-ADC9F6)!important}.assessment-text-palette-FEF9F1{color:var(--assessment-palette-FEF9F1)!important}.assessment-bg-palette-FEF9F1{background-color:var(--assessment-palette-FEF9F1)!important}.assessment-text-palette-F9DAA6{color:var(--assessment-palette-F9DAA6)!important}.assessment-bg-palette-F9DAA6{background-color:var(--assessment-palette-F9DAA6)!important}.assessment-text-palette-E8F7F0{color:var(--assessment-palette-E8F7F0)!important}.assessment-bg-palette-E8F7F0{background-color:var(--assessment-palette-E8F7F0)!important}.assessment-text-palette-B7E7CF{color:var(--assessment-palette-B7E7CF)!important}.assessment-bg-palette-B7E7CF{background-color:var(--assessment-palette-B7E7CF)!important}.assessment-box-shadow-one{box-shadow:var(--assessment-box-shadow-one)!important}.assessment-border-radius-one{border-radius:var(--assessment-border-radius-one)!important}.assessment-border-radius-two{border-radius:var(--assessment-border-radius-two)!important}.assessment-border-radius-three{border-radius:var(--assessment-border-radius-three)!important}.assessment-border-radius-four{border-radius:var(--assessment-border-radius-four)!important}.assessment-border-radius-five{border-radius:var(--assessment-border-radius-five)!important}.assessment-border-radius-six{border-radius:var(--assessment-border-radius-six)!important}.assessment-input-border-one{border:var(--assessment-input-border-one)!important}.assessment-input-border-invalid{border:var(--assessment-input-border-invalid)!important}.assessment-input-focus-border{border:var(--assessment-input-focus-border)!important}.assessment-border-two{border:var(--assessment-border-two)!important}.assessment-card-border{border:var(--assessment-card-border)!important}.assessment-tooltip-border{border:var(--assessment-tooltip-border)!important}.assessment-box-shadow-tooltip{box-shadow:var(--assessment-box-shadow-tooltip)!important}.assessment-button-padding{padding:var(--assessment-button-padding)!important}.assessment-button-padding-large{padding:var(--assessment-button-padding-large)!important}.assessment-input-padding{padding:var(--assessment-input-padding)!important}.assessment-text-font-family{color:var(--assessment-font-family)!important}.assessment-bg-font-family{background-color:var(--assessment-font-family)!important}.assessment-text-regular-12{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-bold-12{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-11{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-11{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-regular-11{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-12{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-regular-13{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-bold-13{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-semibold-13{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-medium-13{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-regular-14{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-bold-14{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-medium-14{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw)!important;line-height:calc(1.2rem + .2vw)!important}.assessment-text-semibold-14{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-semibold-10{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw);line-height:calc(1rem + .1vw)}.assessment-text-regular-10{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw)!important;line-height:calc(1rem + .1vw)}.assessment-text-regular-15{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.4rem + .1vw)}.assessment-text-medium-15{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-semibold-15{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-bold-15{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-regular-16{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-semibold-16{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-bold-16{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-medium-16{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-regular-20{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-bold-20{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-semibold-20{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-20{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-18{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-regular-18{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .3vw)!important}.assessment-text-bold-18{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw);line-height:calc(1.5rem + .1vw)}.assessment-text-semibold-18{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-bold-34{overflow-wrap:break-word;font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-medium-34{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-bold-32{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.3rem + .75vw);line-height:calc(1.625rem + .5vw)}.assessment-text-bold-22{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-regular-22{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-semibold-22{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-medium-22{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-24{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-regular-24{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-semibold-24{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-medium-24{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(1.2rem + .75vw)}.assessment-text-regular-26{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-medium-26{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-bold-26{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-semibold-26{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-regular-28{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-medium-28{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-semibold-28{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw);letter-spacing:1}.assessment-text-bold-28{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-regular-30{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw)}.assessment-text-medium-30{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-30{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(2rem + .4vw)}.assessment-text-semibold-30{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw);letter-spacing:.5}.assessment-text-bold-36{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}.assessment-text-semibold-36{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-bold-34{font-size:calc(1.8rem + .15vh);line-height:calc(2.2rem + .15vh)}.assessment-text-bold-32{font-size:calc(1.3rem + 1vh);line-height:calc(1.5rem + 1vh)}.assessment-text-semibold-30{font-size:calc(1.5rem + .4vh);line-height:calc(1.8rem + .4vh)}.assessment-text-medium-24{line-height:2.188rem}.assessment-text-medium-24,.assessment-text-regular-24,.assessment-text-semibold-24,.assessment-text-bold-24,.assessment-text-light-24{font-size:calc(1.3rem + .5vh);line-height:calc(1.8rem + .5vh)}.assessment-text-medium-18,.assessment-text-regular-18,.assessment-text-bold-18,.assessment-text-semibold-18,.assessment-text-light-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-light-16,.assessment-text-bold-16{font-size:calc(.9rem + .3vh)!important;line-height:calc(1.2rem + .3vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16,.assessment-text-regular-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15,.assessment-text-bold-15,.assessment-text-light-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12,.assessment-text-bold-12,.assessment-text-medium-upper-12,.assessment-text-light-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-regular-14,.assessment-text-light-14,.assessment-text-medium-upper-14,.assessment-text-semibold-14,.assessment-text-bold-14{font-size:calc(.8rem + .1vh)!important;line-height:calc(1.2rem + .2vh)!important}.assessment-text-regular-13,.assessment-text-medium-13,.assessment-text-semibold-13,.assessment-text-bold-13,.assessment-text-light-13{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11,.assessment-text-semibold-11,.assessment-text-bold-11,.assessment-text-light-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}}.assessment-btn-primary{background-color:var(--assessment-primary-one);color:var(--assessment-white);border:.064rem solid var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two)}.assessment-btn-primary-transparent{background-color:var(--assessment-white);color:var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two);border:.064rem solid var(--assessment-primary-one)}.assessment-zoom-animation{transition:transform .2s ease;transform:translateZ(0);text-rendering:optimizeLegibility}.assessment-zoom-animation:hover{transform:scale(1.03)}.assessment-zoom-animation:active{transform:scale(1)}.assessment-zoom-animation:disabled{transform:none!important}.change-direction{transform:rotate(180deg);transition:.3s ease-out}.change-direction-reverse{transform:rotate(0);transition:.3s ease-out}.outline-0{outline:none}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.action-icon{width:1.2rem}.mat-menu-item{height:inherit}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }] });
526
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypeLongComponent, decorators: [{
527
+ type: Component,
528
+ args: [{
529
+ selector: 'lib-question-type-long',
530
+ templateUrl: './question-type-long.component.html',
531
+ styleUrls: ['./question-type-long.component.scss']
532
+ }]
533
+ }], ctorParameters: function () { return [{ type: i1$2.NgControl, decorators: [{
534
+ type: Optional
535
+ }, {
536
+ type: Self
537
+ }] }]; }, propDecorators: { required: [{
538
+ type: Input
539
+ }], question: [{
540
+ type: Input
541
+ }], previewMode: [{
542
+ type: Input
543
+ }], labelConfig: [{
544
+ type: Input
545
+ }] } });
546
+
547
+ class TextEditorComponent {
548
+ constructor() {
549
+ this.height = 'auto';
550
+ this.placeholder = '';
551
+ this.subject = '';
552
+ this.preText = '';
553
+ this.maxLength = 100;
554
+ this.disabled = false;
555
+ this.showToolbar = true;
556
+ this.inputChange = new EventEmitter();
557
+ this.editorConfig = {
558
+ editable: true,
559
+ spellcheck: true,
560
+ height: 'auto',
561
+ translate: 'yes',
562
+ enableToolbar: true,
563
+ showToolbar: true,
564
+ placeholder: this.placeholder,
565
+ defaultParagraphSeparator: '',
566
+ sanitize: false,
567
+ toolbarPosition: 'top',
568
+ toolbarHiddenButtons: [
569
+ [
570
+ 'undo',
571
+ 'redo',
572
+ 'strikeThrough',
573
+ 'subscript',
574
+ 'superscript',
575
+ 'indent',
576
+ 'outdent',
577
+ 'insertOrderedList',
578
+ 'heading',
579
+ 'fontName',
580
+ 'textColor',
581
+ 'backgroundColor',
582
+ ],
583
+ [
584
+ 'fontSize',
585
+ 'insertImage',
586
+ 'insertVideo',
587
+ 'customClasses',
588
+ 'toggleEditorMode',
589
+ ],
590
+ ],
591
+ };
592
+ this.inputLength = 0;
593
+ }
594
+ ngOnChanges(changes) {
595
+ var _a;
596
+ if (changes.disabled && !changes.disabled.firstChange) {
597
+ this.updateDisabledState();
598
+ }
599
+ if ((_a = changes === null || changes === void 0 ? void 0 : changes.preText) === null || _a === void 0 ? void 0 : _a.currentValue) {
600
+ this.onValueChange(changes.preText.currentValue);
601
+ }
602
+ this.editorConfig.showToolbar = this.showToolbar;
603
+ }
604
+ ngOnInit() {
605
+ this.editorConfig.height = this.height;
606
+ this.updateDisabledState();
607
+ }
608
+ updateDisabledState() {
609
+ this.editorConfig.editable = !this.disabled;
610
+ }
611
+ onValueChange(event) {
612
+ if (event) {
613
+ let textAfterRemovingTags = event;
614
+ textAfterRemovingTags = textAfterRemovingTags.replace(/<\/?[^>]+(>|$)/g, '');
615
+ textAfterRemovingTags = textAfterRemovingTags.replace(/\&nbsp;/g, ' ');
616
+ this.inputLength = textAfterRemovingTags.length;
617
+ }
618
+ this.inputChange.emit(event);
619
+ }
620
+ onPaste(event) {
621
+ event.preventDefault();
622
+ const clipboardData = event.clipboardData;
623
+ if (!clipboardData)
624
+ return;
625
+ let pastedText = clipboardData.getData('text/plain');
626
+ pastedText = this.sanitizeText(pastedText);
627
+ document.execCommand('insertText', false, pastedText);
628
+ }
629
+ sanitizeText(text) {
630
+ return text;
631
+ }
632
+ }
633
+ TextEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TextEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
634
+ TextEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TextEditorComponent, selector: "app-text-editor", inputs: { height: "height", placeholder: "placeholder", subject: "subject", preText: "preText", maxLength: "maxLength", disabled: "disabled", showToolbar: "showToolbar", editorConfig: "editorConfig" }, outputs: { inputChange: "inputChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"assessment-custom-scrollbar-thumb\">\r\n <angular-editor [placeholder]=\"placeholder\" [(ngModel)]=\"preText\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"onValueChange($event)\" [config]=\"editorConfig\" (paste)=\"onPaste($event)\">\r\n </angular-editor>\r\n</div>", styles: [""], components: [{ type: i1$3.AngularEditorComponent, selector: "angular-editor", inputs: ["id", "config", "placeholder", "tabIndex"], outputs: ["html", "viewMode", "blur", "focus"] }], directives: [{ type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TextEditorComponent, decorators: [{
636
+ type: Component,
637
+ args: [{
638
+ selector: 'app-text-editor',
639
+ templateUrl: './text-editor.component.html',
640
+ styleUrls: ['./text-editor.component.scss']
641
+ }]
642
+ }], ctorParameters: function () { return []; }, propDecorators: { height: [{
643
+ type: Input
644
+ }], placeholder: [{
645
+ type: Input
646
+ }], subject: [{
647
+ type: Input
648
+ }], preText: [{
649
+ type: Input
650
+ }], maxLength: [{
651
+ type: Input
652
+ }], disabled: [{
653
+ type: Input
654
+ }], showToolbar: [{
655
+ type: Input
656
+ }], inputChange: [{
657
+ type: Output
658
+ }], editorConfig: [{
659
+ type: Input
660
+ }] } });
661
+
662
+ class QuestionTypeEditorComponent {
663
+ constructor(ngControl) {
664
+ this.ngControl = ngControl;
665
+ this.previewMode = false;
666
+ this.labelConfig = {};
667
+ this.formControl = new FormControl('');
668
+ this.onTouched = () => { };
669
+ if (this.ngControl != null) {
670
+ this.ngControl.valueAccessor = this;
671
+ }
672
+ }
673
+ checkFormControlValid() {
674
+ var _a, _b, _c, _d;
675
+ if (((_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.touched) && ((_d = (_c = this.ngControl) === null || _c === void 0 ? void 0 : _c.control) === null || _d === void 0 ? void 0 : _d.invalid)) {
676
+ return 'assessment-input-border-invalid';
677
+ }
678
+ return '';
679
+ }
680
+ writeValue(value) {
681
+ if (value !== undefined && value !== null) {
682
+ this.formControl.setValue(value, { emitEvent: false });
683
+ }
684
+ else {
685
+ this.formControl.setValue('', { emitEvent: false });
686
+ }
687
+ }
688
+ registerOnChange(fn) {
689
+ this.formControl.valueChanges.subscribe((val) => fn(val));
690
+ }
691
+ registerOnTouched(fn) {
692
+ this.onTouched = fn;
693
+ }
694
+ setDisabledState(isDisabled) {
695
+ if (isDisabled) {
696
+ this.formControl.disable({ emitEvent: false });
697
+ }
698
+ else {
699
+ this.formControl.enable({ emitEvent: false });
700
+ }
701
+ }
702
+ }
703
+ QuestionTypeEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypeEditorComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
704
+ QuestionTypeEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionTypeEditorComponent, selector: "lib-question-type-editor", inputs: { required: "required", question: "question", previewMode: "previewMode", labelConfig: "labelConfig" }, ngImport: i0, template: "<div *ngIf=\"!previewMode else previewModeTemplate\" [ngClass]=\"checkFormControlValid() ? checkFormControlValid() : 'assessment-input-border-one'\" class=\"col-12 assessment-border-radius-two overflow-hidden mb-1\" (focusout)=\"onTouched()\">\r\n <app-text-editor [preText]=\"formControl.value\"\r\n (inputChange)=\"formControl.setValue($event); formControl.markAsTouched()\" [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.ANSWER']\"\r\n class=\"assessment-custom-angular-editor-white assessment-text-regular-13 assessment-text-grey-ten\" [height]=\"'10rem'\">\r\n </app-text-editor>\r\n</div>\r\n\r\n<ng-template #previewModeTemplate>\r\n <span class=\"assessment-text-regular-13 assessment-text-grey-nine\" [innerHTML]=\"formControl.value\"></span>\r\n</ng-template>", styles: [".assessment-text-grey-ten{color:var(--assessment-grey-ten)!important}.assessment-bg-grey-ten{background-color:var(--assessment-grey-ten)!important}.assessment-text-grey-nine{color:var(--assessment-grey-nine)!important}.assessment-bg-grey-nine{background-color:var(--assessment-grey-nine)!important}.assessment-text-grey-eight{color:var(--assessment-grey-eight)!important}.assessment-bg-grey-eight{background-color:var(--assessment-grey-eight)!important}.assessment-text-grey-seven{color:var(--assessment-grey-seven)!important}.assessment-bg-grey-seven{background-color:var(--assessment-grey-seven)!important}.assessment-text-grey-six{color:var(--assessment-grey-six)!important}.assessment-bg-grey-six{background-color:var(--assessment-grey-six)!important}.assessment-text-grey-five{color:var(--assessment-grey-five)!important}.assessment-bg-grey-five{background-color:var(--assessment-grey-five)!important}.assessment-text-grey-four{color:var(--assessment-grey-four)!important}.assessment-bg-grey-four{background-color:var(--assessment-grey-four)!important}.assessment-text-grey-three{color:var(--assessment-grey-three)!important}.assessment-bg-grey-three{background-color:var(--assessment-grey-three)!important}.assessment-text-grey-two{color:var(--assessment-grey-two)!important}.assessment-bg-grey-two{background-color:var(--assessment-grey-two)!important}.assessment-text-grey-one{color:var(--assessment-grey-one)!important}.assessment-bg-grey-one{background-color:var(--assessment-grey-one)!important}.assessment-text-white{color:var(--assessment-white)!important}.assessment-bg-white{background-color:var(--assessment-white)!important}.assessment-text-black{color:var(--assessment-black)!important}.assessment-bg-black{background-color:var(--assessment-black)!important}.assessment-text-danger{color:var(--assessment-danger)!important}.assessment-bg-danger{background-color:var(--assessment-danger)!important}.assessment-text-primary-one{color:var(--assessment-primary-one)!important}.assessment-bg-primary-one{background-color:var(--assessment-primary-one)!important}.assessment-text-primary-four{color:var(--assessment-primary-four)!important}.assessment-bg-primary-four{background-color:var(--assessment-primary-four)!important}.assessment-text-palette-EDF3FD{color:var(--assessment-palette-EDF3FD)!important}.assessment-bg-palette-EDF3FD{background-color:var(--assessment-palette-EDF3FD)!important}.assessment-text-palette-C8DAF9{color:var(--assessment-palette-C8DAF9)!important}.assessment-bg-palette-C8DAF9{background-color:var(--assessment-palette-C8DAF9)!important}.assessment-text-palette-ADC9F6{color:var(--assessment-palette-ADC9F6)!important}.assessment-bg-palette-ADC9F6{background-color:var(--assessment-palette-ADC9F6)!important}.assessment-text-palette-FEF9F1{color:var(--assessment-palette-FEF9F1)!important}.assessment-bg-palette-FEF9F1{background-color:var(--assessment-palette-FEF9F1)!important}.assessment-text-palette-F9DAA6{color:var(--assessment-palette-F9DAA6)!important}.assessment-bg-palette-F9DAA6{background-color:var(--assessment-palette-F9DAA6)!important}.assessment-text-palette-E8F7F0{color:var(--assessment-palette-E8F7F0)!important}.assessment-bg-palette-E8F7F0{background-color:var(--assessment-palette-E8F7F0)!important}.assessment-text-palette-B7E7CF{color:var(--assessment-palette-B7E7CF)!important}.assessment-bg-palette-B7E7CF{background-color:var(--assessment-palette-B7E7CF)!important}.assessment-box-shadow-one{box-shadow:var(--assessment-box-shadow-one)!important}.assessment-border-radius-one{border-radius:var(--assessment-border-radius-one)!important}.assessment-border-radius-two{border-radius:var(--assessment-border-radius-two)!important}.assessment-border-radius-three{border-radius:var(--assessment-border-radius-three)!important}.assessment-border-radius-four{border-radius:var(--assessment-border-radius-four)!important}.assessment-border-radius-five{border-radius:var(--assessment-border-radius-five)!important}.assessment-border-radius-six{border-radius:var(--assessment-border-radius-six)!important}.assessment-input-border-one{border:var(--assessment-input-border-one)!important}.assessment-input-border-invalid{border:var(--assessment-input-border-invalid)!important}.assessment-input-focus-border{border:var(--assessment-input-focus-border)!important}.assessment-border-two{border:var(--assessment-border-two)!important}.assessment-card-border{border:var(--assessment-card-border)!important}.assessment-tooltip-border{border:var(--assessment-tooltip-border)!important}.assessment-box-shadow-tooltip{box-shadow:var(--assessment-box-shadow-tooltip)!important}.assessment-button-padding{padding:var(--assessment-button-padding)!important}.assessment-button-padding-large{padding:var(--assessment-button-padding-large)!important}.assessment-input-padding{padding:var(--assessment-input-padding)!important}.assessment-text-font-family{color:var(--assessment-font-family)!important}.assessment-bg-font-family{background-color:var(--assessment-font-family)!important}.assessment-text-regular-12{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-bold-12{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-11{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-11{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-regular-11{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-12{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-regular-13{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-bold-13{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-semibold-13{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-medium-13{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-regular-14{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-bold-14{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-medium-14{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw)!important;line-height:calc(1.2rem + .2vw)!important}.assessment-text-semibold-14{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-semibold-10{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw);line-height:calc(1rem + .1vw)}.assessment-text-regular-10{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw)!important;line-height:calc(1rem + .1vw)}.assessment-text-regular-15{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.4rem + .1vw)}.assessment-text-medium-15{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-semibold-15{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-bold-15{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-regular-16{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-semibold-16{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-bold-16{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-medium-16{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-regular-20{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-bold-20{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-semibold-20{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-20{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-18{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-regular-18{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .3vw)!important}.assessment-text-bold-18{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw);line-height:calc(1.5rem + .1vw)}.assessment-text-semibold-18{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-bold-34{overflow-wrap:break-word;font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-medium-34{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-bold-32{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.3rem + .75vw);line-height:calc(1.625rem + .5vw)}.assessment-text-bold-22{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-regular-22{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-semibold-22{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-medium-22{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-24{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-regular-24{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-semibold-24{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-medium-24{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(1.2rem + .75vw)}.assessment-text-regular-26{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-medium-26{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-bold-26{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-semibold-26{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-regular-28{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-medium-28{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-semibold-28{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw);letter-spacing:1}.assessment-text-bold-28{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-regular-30{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw)}.assessment-text-medium-30{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-30{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(2rem + .4vw)}.assessment-text-semibold-30{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw);letter-spacing:.5}.assessment-text-bold-36{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}.assessment-text-semibold-36{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-bold-34{font-size:calc(1.8rem + .15vh);line-height:calc(2.2rem + .15vh)}.assessment-text-bold-32{font-size:calc(1.3rem + 1vh);line-height:calc(1.5rem + 1vh)}.assessment-text-semibold-30{font-size:calc(1.5rem + .4vh);line-height:calc(1.8rem + .4vh)}.assessment-text-medium-24{line-height:2.188rem}.assessment-text-medium-24,.assessment-text-regular-24,.assessment-text-semibold-24,.assessment-text-bold-24,.assessment-text-light-24{font-size:calc(1.3rem + .5vh);line-height:calc(1.8rem + .5vh)}.assessment-text-medium-18,.assessment-text-regular-18,.assessment-text-bold-18,.assessment-text-semibold-18,.assessment-text-light-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-light-16,.assessment-text-bold-16{font-size:calc(.9rem + .3vh)!important;line-height:calc(1.2rem + .3vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16,.assessment-text-regular-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15,.assessment-text-bold-15,.assessment-text-light-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12,.assessment-text-bold-12,.assessment-text-medium-upper-12,.assessment-text-light-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-regular-14,.assessment-text-light-14,.assessment-text-medium-upper-14,.assessment-text-semibold-14,.assessment-text-bold-14{font-size:calc(.8rem + .1vh)!important;line-height:calc(1.2rem + .2vh)!important}.assessment-text-regular-13,.assessment-text-medium-13,.assessment-text-semibold-13,.assessment-text-bold-13,.assessment-text-light-13{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11,.assessment-text-semibold-11,.assessment-text-bold-11,.assessment-text-light-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}}.assessment-btn-primary{background-color:var(--assessment-primary-one);color:var(--assessment-white);border:.064rem solid var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two)}.assessment-btn-primary-transparent{background-color:var(--assessment-white);color:var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two);border:.064rem solid var(--assessment-primary-one)}.assessment-zoom-animation{transition:transform .2s ease;transform:translateZ(0);text-rendering:optimizeLegibility}.assessment-zoom-animation:hover{transform:scale(1.03)}.assessment-zoom-animation:active{transform:scale(1)}.assessment-zoom-animation:disabled{transform:none!important}.change-direction{transform:rotate(180deg);transition:.3s ease-out}.change-direction-reverse{transform:rotate(0);transition:.3s ease-out}.outline-0{outline:none}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.action-icon{width:1.2rem}.mat-menu-item{height:inherit}\n"], components: [{ type: TextEditorComponent, selector: "app-text-editor", inputs: ["height", "placeholder", "subject", "preText", "maxLength", "disabled", "showToolbar", "editorConfig"], outputs: ["inputChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
705
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypeEditorComponent, decorators: [{
706
+ type: Component,
707
+ args: [{
708
+ selector: 'lib-question-type-editor',
709
+ templateUrl: './question-type-editor.component.html',
710
+ styleUrls: ['./question-type-editor.component.scss']
711
+ }]
712
+ }], ctorParameters: function () { return [{ type: i1$2.NgControl, decorators: [{
713
+ type: Optional
714
+ }, {
715
+ type: Self
716
+ }] }]; }, propDecorators: { required: [{
717
+ type: Input
718
+ }], question: [{
719
+ type: Input
720
+ }], previewMode: [{
721
+ type: Input
722
+ }], labelConfig: [{
723
+ type: Input
724
+ }] } });
725
+
726
+ class OrderByPipe {
727
+ transform(array, field = 'orderNo') {
728
+ if (!Array.isArray(array)) {
729
+ return array || [];
730
+ }
731
+ return [...array].sort((a, b) => {
732
+ var _a, _b;
733
+ const valA = (_a = a === null || a === void 0 ? void 0 : a[field]) !== null && _a !== void 0 ? _a : 0;
734
+ const valB = (_b = b === null || b === void 0 ? void 0 : b[field]) !== null && _b !== void 0 ? _b : 0;
735
+ return valA - valB;
736
+ });
737
+ }
738
+ }
739
+ OrderByPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: OrderByPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
740
+ OrderByPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: OrderByPipe, name: "orderBy" });
741
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: OrderByPipe, decorators: [{
742
+ type: Pipe,
743
+ args: [{
744
+ name: 'orderBy',
745
+ pure: true
746
+ }]
747
+ }] });
748
+
749
+ class QuestionTypeObjectiveComponent {
750
+ constructor(ngControl) {
751
+ this.ngControl = ngControl;
752
+ this.viewChild = new EventEmitter();
753
+ this.formControl = new FormControl();
754
+ this.onTouchedFn = () => { };
755
+ if (this.ngControl != null) {
756
+ this.ngControl.valueAccessor = this;
757
+ }
758
+ }
759
+ writeValue(value) {
760
+ var _a, _b, _c, _d, _e;
761
+ if (value) {
762
+ let selectedOption = (_c = (_b = (_a = this.question) === null || _a === void 0 ? void 0 : _a.defaultOptionsList) === null || _b === void 0 ? void 0 : _b.find((o) => o.options.id === value)) === null || _c === void 0 ? void 0 : _c.options;
763
+ let option = (_e = (_d = this.question) === null || _d === void 0 ? void 0 : _d.defaultOptionsList) === null || _e === void 0 ? void 0 : _e.find((o) => o.options.id === value);
764
+ if (selectedOption) {
765
+ setTimeout(() => {
766
+ this.formControl.patchValue(selectedOption);
767
+ this.optionDetection(option, true);
768
+ }, 1000);
769
+ }
770
+ }
771
+ else {
772
+ this.formControl.setValue(value);
773
+ }
774
+ }
775
+ registerOnChange(fn) {
776
+ this.formControl.valueChanges.subscribe((val) => fn(val));
777
+ }
778
+ registerOnTouched(fn) {
779
+ this.onTouchedFn = fn;
780
+ }
781
+ setDisabledState(isDisabled) {
782
+ if (isDisabled) {
783
+ this.formControl.disable({ emitEvent: false });
784
+ }
785
+ else {
786
+ this.formControl.enable({ emitEvent: false });
787
+ }
788
+ }
789
+ onChildDataChanged(data) {
790
+ this.viewChild.emit(data);
791
+ }
792
+ optionDetection(obj, detectFromEdit) {
793
+ let data = {
794
+ question: this.question,
795
+ list: obj['childQuestionList'],
796
+ detectFrom: detectFromEdit
797
+ };
798
+ this.viewChild.emit(data);
799
+ return;
800
+ }
801
+ onTouched() {
802
+ this.onTouchedFn();
803
+ }
804
+ checkFormControlValid() {
805
+ var _a, _b, _c, _d;
806
+ if (((_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.touched) && ((_d = (_c = this.ngControl) === null || _c === void 0 ? void 0 : _c.control) === null || _d === void 0 ? void 0 : _d.invalid)) {
807
+ return 'assessment-error-text assessment-text-danger';
808
+ }
809
+ return '';
810
+ }
811
+ }
812
+ QuestionTypeObjectiveComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypeObjectiveComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
813
+ QuestionTypeObjectiveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionTypeObjectiveComponent, selector: "lib-question-type-objective", inputs: { required: "required", question: "question" }, outputs: { viewChild: "viewChild" }, ngImport: i0, template: "<mat-radio-group [formControl]=\"formControl\" class=\"d-flex flex-column gap-3 assessment-radio-buttons mt-3\" (blur)=\"onTouched()\">\r\n <ng-container *ngFor=\"let option of question.defaultOptionsList | orderBy\">\r\n <mat-radio-button class=\"assessment-text-medium-13\" (change)=\"optionDetection(option, false)\"\r\n (viewChild)=\"onChildDataChanged($event)\" [value]=\"option.options\" [required]=\"required\">\r\n <span class=\"text-wrap assessment-text-grey-ten\" [innerHtml]=\"option.options.optionName[0]?.text\"></span>\r\n </mat-radio-button>\r\n </ng-container>\r\n</mat-radio-group>", styles: [".assessment-text-grey-ten{color:var(--assessment-grey-ten)!important}.assessment-bg-grey-ten{background-color:var(--assessment-grey-ten)!important}.assessment-text-grey-nine{color:var(--assessment-grey-nine)!important}.assessment-bg-grey-nine{background-color:var(--assessment-grey-nine)!important}.assessment-text-grey-eight{color:var(--assessment-grey-eight)!important}.assessment-bg-grey-eight{background-color:var(--assessment-grey-eight)!important}.assessment-text-grey-seven{color:var(--assessment-grey-seven)!important}.assessment-bg-grey-seven{background-color:var(--assessment-grey-seven)!important}.assessment-text-grey-six{color:var(--assessment-grey-six)!important}.assessment-bg-grey-six{background-color:var(--assessment-grey-six)!important}.assessment-text-grey-five{color:var(--assessment-grey-five)!important}.assessment-bg-grey-five{background-color:var(--assessment-grey-five)!important}.assessment-text-grey-four{color:var(--assessment-grey-four)!important}.assessment-bg-grey-four{background-color:var(--assessment-grey-four)!important}.assessment-text-grey-three{color:var(--assessment-grey-three)!important}.assessment-bg-grey-three{background-color:var(--assessment-grey-three)!important}.assessment-text-grey-two{color:var(--assessment-grey-two)!important}.assessment-bg-grey-two{background-color:var(--assessment-grey-two)!important}.assessment-text-grey-one{color:var(--assessment-grey-one)!important}.assessment-bg-grey-one{background-color:var(--assessment-grey-one)!important}.assessment-text-white{color:var(--assessment-white)!important}.assessment-bg-white{background-color:var(--assessment-white)!important}.assessment-text-black{color:var(--assessment-black)!important}.assessment-bg-black{background-color:var(--assessment-black)!important}.assessment-text-danger{color:var(--assessment-danger)!important}.assessment-bg-danger{background-color:var(--assessment-danger)!important}.assessment-text-primary-one{color:var(--assessment-primary-one)!important}.assessment-bg-primary-one{background-color:var(--assessment-primary-one)!important}.assessment-text-primary-four{color:var(--assessment-primary-four)!important}.assessment-bg-primary-four{background-color:var(--assessment-primary-four)!important}.assessment-text-palette-EDF3FD{color:var(--assessment-palette-EDF3FD)!important}.assessment-bg-palette-EDF3FD{background-color:var(--assessment-palette-EDF3FD)!important}.assessment-text-palette-C8DAF9{color:var(--assessment-palette-C8DAF9)!important}.assessment-bg-palette-C8DAF9{background-color:var(--assessment-palette-C8DAF9)!important}.assessment-text-palette-ADC9F6{color:var(--assessment-palette-ADC9F6)!important}.assessment-bg-palette-ADC9F6{background-color:var(--assessment-palette-ADC9F6)!important}.assessment-text-palette-FEF9F1{color:var(--assessment-palette-FEF9F1)!important}.assessment-bg-palette-FEF9F1{background-color:var(--assessment-palette-FEF9F1)!important}.assessment-text-palette-F9DAA6{color:var(--assessment-palette-F9DAA6)!important}.assessment-bg-palette-F9DAA6{background-color:var(--assessment-palette-F9DAA6)!important}.assessment-text-palette-E8F7F0{color:var(--assessment-palette-E8F7F0)!important}.assessment-bg-palette-E8F7F0{background-color:var(--assessment-palette-E8F7F0)!important}.assessment-text-palette-B7E7CF{color:var(--assessment-palette-B7E7CF)!important}.assessment-bg-palette-B7E7CF{background-color:var(--assessment-palette-B7E7CF)!important}.assessment-box-shadow-one{box-shadow:var(--assessment-box-shadow-one)!important}.assessment-border-radius-one{border-radius:var(--assessment-border-radius-one)!important}.assessment-border-radius-two{border-radius:var(--assessment-border-radius-two)!important}.assessment-border-radius-three{border-radius:var(--assessment-border-radius-three)!important}.assessment-border-radius-four{border-radius:var(--assessment-border-radius-four)!important}.assessment-border-radius-five{border-radius:var(--assessment-border-radius-five)!important}.assessment-border-radius-six{border-radius:var(--assessment-border-radius-six)!important}.assessment-input-border-one{border:var(--assessment-input-border-one)!important}.assessment-input-border-invalid{border:var(--assessment-input-border-invalid)!important}.assessment-input-focus-border{border:var(--assessment-input-focus-border)!important}.assessment-border-two{border:var(--assessment-border-two)!important}.assessment-card-border{border:var(--assessment-card-border)!important}.assessment-tooltip-border{border:var(--assessment-tooltip-border)!important}.assessment-box-shadow-tooltip{box-shadow:var(--assessment-box-shadow-tooltip)!important}.assessment-button-padding{padding:var(--assessment-button-padding)!important}.assessment-button-padding-large{padding:var(--assessment-button-padding-large)!important}.assessment-input-padding{padding:var(--assessment-input-padding)!important}.assessment-text-font-family{color:var(--assessment-font-family)!important}.assessment-bg-font-family{background-color:var(--assessment-font-family)!important}.assessment-text-regular-12{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-bold-12{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-11{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-11{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-regular-11{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-12{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-regular-13{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-bold-13{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-semibold-13{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-medium-13{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-regular-14{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-bold-14{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-medium-14{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw)!important;line-height:calc(1.2rem + .2vw)!important}.assessment-text-semibold-14{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-semibold-10{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw);line-height:calc(1rem + .1vw)}.assessment-text-regular-10{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw)!important;line-height:calc(1rem + .1vw)}.assessment-text-regular-15{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.4rem + .1vw)}.assessment-text-medium-15{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-semibold-15{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-bold-15{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-regular-16{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-semibold-16{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-bold-16{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-medium-16{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-regular-20{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-bold-20{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-semibold-20{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-20{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-18{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-regular-18{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .3vw)!important}.assessment-text-bold-18{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw);line-height:calc(1.5rem + .1vw)}.assessment-text-semibold-18{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-bold-34{overflow-wrap:break-word;font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-medium-34{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-bold-32{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.3rem + .75vw);line-height:calc(1.625rem + .5vw)}.assessment-text-bold-22{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-regular-22{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-semibold-22{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-medium-22{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-24{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-regular-24{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-semibold-24{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-medium-24{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(1.2rem + .75vw)}.assessment-text-regular-26{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-medium-26{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-bold-26{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-semibold-26{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-regular-28{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-medium-28{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-semibold-28{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw);letter-spacing:1}.assessment-text-bold-28{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-regular-30{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw)}.assessment-text-medium-30{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-30{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(2rem + .4vw)}.assessment-text-semibold-30{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw);letter-spacing:.5}.assessment-text-bold-36{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}.assessment-text-semibold-36{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-bold-34{font-size:calc(1.8rem + .15vh);line-height:calc(2.2rem + .15vh)}.assessment-text-bold-32{font-size:calc(1.3rem + 1vh);line-height:calc(1.5rem + 1vh)}.assessment-text-semibold-30{font-size:calc(1.5rem + .4vh);line-height:calc(1.8rem + .4vh)}.assessment-text-medium-24{line-height:2.188rem}.assessment-text-medium-24,.assessment-text-regular-24,.assessment-text-semibold-24,.assessment-text-bold-24,.assessment-text-light-24{font-size:calc(1.3rem + .5vh);line-height:calc(1.8rem + .5vh)}.assessment-text-medium-18,.assessment-text-regular-18,.assessment-text-bold-18,.assessment-text-semibold-18,.assessment-text-light-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-light-16,.assessment-text-bold-16{font-size:calc(.9rem + .3vh)!important;line-height:calc(1.2rem + .3vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16,.assessment-text-regular-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15,.assessment-text-bold-15,.assessment-text-light-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12,.assessment-text-bold-12,.assessment-text-medium-upper-12,.assessment-text-light-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-regular-14,.assessment-text-light-14,.assessment-text-medium-upper-14,.assessment-text-semibold-14,.assessment-text-bold-14{font-size:calc(.8rem + .1vh)!important;line-height:calc(1.2rem + .2vh)!important}.assessment-text-regular-13,.assessment-text-medium-13,.assessment-text-semibold-13,.assessment-text-bold-13,.assessment-text-light-13{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11,.assessment-text-semibold-11,.assessment-text-bold-11,.assessment-text-light-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}}.assessment-btn-primary{background-color:var(--assessment-primary-one);color:var(--assessment-white);border:.064rem solid var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two)}.assessment-btn-primary-transparent{background-color:var(--assessment-white);color:var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two);border:.064rem solid var(--assessment-primary-one)}.assessment-zoom-animation{transition:transform .2s ease;transform:translateZ(0);text-rendering:optimizeLegibility}.assessment-zoom-animation:hover{transform:scale(1.03)}.assessment-zoom-animation:active{transform:scale(1)}.assessment-zoom-animation:disabled{transform:none!important}.change-direction{transform:rotate(180deg);transition:.3s ease-out}.change-direction-reverse{transform:rotate(0);transition:.3s ease-out}.outline-0{outline:none}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.action-icon{width:1.2rem}.mat-menu-item{height:inherit}\n"], components: [{ type: i2$1.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }], directives: [{ type: i2$1.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "orderBy": OrderByPipe } });
814
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypeObjectiveComponent, decorators: [{
815
+ type: Component,
816
+ args: [{
817
+ selector: 'lib-question-type-objective',
818
+ templateUrl: './question-type-objective.component.html',
819
+ styleUrls: ['./question-type-objective.component.scss']
820
+ }]
821
+ }], ctorParameters: function () { return [{ type: i1$2.NgControl, decorators: [{
822
+ type: Optional
823
+ }, {
824
+ type: Self
825
+ }] }]; }, propDecorators: { required: [{
826
+ type: Input
827
+ }], question: [{
828
+ type: Input
829
+ }], viewChild: [{
830
+ type: Output
831
+ }] } });
832
+
833
+ class QuestionTypeMultiselectComponent {
834
+ constructor(ngControl) {
835
+ this.ngControl = ngControl;
836
+ this.viewChild = new EventEmitter();
837
+ this.selectData = [];
838
+ this.formControl = new FormControl();
839
+ this.onTouchedFn = () => { };
840
+ if (this.ngControl != null) {
841
+ this.ngControl.valueAccessor = this;
842
+ }
843
+ }
844
+ toggleSelection(event, data) {
845
+ if (event.checked) {
846
+ this.selectData.push(data);
847
+ }
848
+ else {
849
+ const i = this.selectData.findIndex(value => value.id == data.id);
850
+ if (i > -1) {
851
+ this.selectData.splice(i, 1);
852
+ }
853
+ }
854
+ this.formControl.patchValue(this.selectData.length ? [...this.selectData] : null);
855
+ this.optionDetection(data, false);
856
+ }
857
+ writeValue(value) {
858
+ if (value && Array.isArray(value)) {
859
+ this.selectData = [...value];
860
+ this.formControl.setValue(this.selectData, { emitEvent: false });
861
+ }
862
+ else {
863
+ this.selectData = [];
864
+ this.formControl.setValue(null, { emitEvent: false });
865
+ }
866
+ }
867
+ getSelection(option) {
868
+ var _a;
869
+ if (this.selectData) {
870
+ return ((_a = this.selectData) === null || _a === void 0 ? void 0 : _a.findIndex((s) => s.id && s.id === option.id)) !== -1;
871
+ }
872
+ else
873
+ return false;
874
+ }
875
+ registerOnChange(fn) {
876
+ this.formControl.valueChanges.subscribe((val) => fn(val));
877
+ }
878
+ registerOnTouched(fn) {
879
+ this.onTouchedFn = fn;
880
+ }
881
+ setDisabledState(isDisabled) {
882
+ if (isDisabled) {
883
+ this.formControl.disable({ emitEvent: false });
884
+ }
885
+ else {
886
+ this.formControl.enable({ emitEvent: false });
887
+ }
888
+ }
889
+ onTouched() {
890
+ this.onTouchedFn();
891
+ }
892
+ checkFormControlValid() {
893
+ var _a, _b, _c, _d;
894
+ if (((_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.touched) && ((_d = (_c = this.ngControl) === null || _c === void 0 ? void 0 : _c.control) === null || _d === void 0 ? void 0 : _d.invalid)) {
895
+ return 'assessment-error-text assessment-text-danger';
896
+ }
897
+ return '';
898
+ }
899
+ optionDetection(obj, detectFromEdit) {
900
+ var _a, _b;
901
+ let option = (_b = (_a = this.question) === null || _a === void 0 ? void 0 : _a.defaultOptionsList) === null || _b === void 0 ? void 0 : _b.find((o) => o.options.id === obj.id);
902
+ let data = {
903
+ question: this.question,
904
+ list: option === null || option === void 0 ? void 0 : option.childQuestionList,
905
+ detectFrom: detectFromEdit
906
+ };
907
+ this.viewChild.emit(data);
908
+ }
909
+ }
910
+ QuestionTypeMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypeMultiselectComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
911
+ QuestionTypeMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionTypeMultiselectComponent, selector: "lib-question-type-multiselect", inputs: { required: "required", question: "question" }, outputs: { viewChild: "viewChild" }, ngImport: i0, template: "<div class=\"d-flex flex-column gap-3 assessment-checkboxes mt-3\" (focusout)=\"onTouched()\">\r\n <ng-container *ngFor=\"let option of question.defaultOptionsList | orderBy\">\r\n <mat-checkbox class=\"assessment-text-medium-13\" [checked]=\"getSelection(option.options)\" [disabled]=\"formControl.disabled\"\r\n (change)=\"toggleSelection($event, option.options)\" [value]=\"option.options\" [required]=\"required\">\r\n <span class=\"text-wrap assessment-text-grey-ten\" [innerHtml]=\"option.options.optionName[0]?.text\"></span>\r\n </mat-checkbox>\r\n </ng-container>\r\n</div>", styles: [".assessment-text-grey-ten{color:var(--assessment-grey-ten)!important}.assessment-bg-grey-ten{background-color:var(--assessment-grey-ten)!important}.assessment-text-grey-nine{color:var(--assessment-grey-nine)!important}.assessment-bg-grey-nine{background-color:var(--assessment-grey-nine)!important}.assessment-text-grey-eight{color:var(--assessment-grey-eight)!important}.assessment-bg-grey-eight{background-color:var(--assessment-grey-eight)!important}.assessment-text-grey-seven{color:var(--assessment-grey-seven)!important}.assessment-bg-grey-seven{background-color:var(--assessment-grey-seven)!important}.assessment-text-grey-six{color:var(--assessment-grey-six)!important}.assessment-bg-grey-six{background-color:var(--assessment-grey-six)!important}.assessment-text-grey-five{color:var(--assessment-grey-five)!important}.assessment-bg-grey-five{background-color:var(--assessment-grey-five)!important}.assessment-text-grey-four{color:var(--assessment-grey-four)!important}.assessment-bg-grey-four{background-color:var(--assessment-grey-four)!important}.assessment-text-grey-three{color:var(--assessment-grey-three)!important}.assessment-bg-grey-three{background-color:var(--assessment-grey-three)!important}.assessment-text-grey-two{color:var(--assessment-grey-two)!important}.assessment-bg-grey-two{background-color:var(--assessment-grey-two)!important}.assessment-text-grey-one{color:var(--assessment-grey-one)!important}.assessment-bg-grey-one{background-color:var(--assessment-grey-one)!important}.assessment-text-white{color:var(--assessment-white)!important}.assessment-bg-white{background-color:var(--assessment-white)!important}.assessment-text-black{color:var(--assessment-black)!important}.assessment-bg-black{background-color:var(--assessment-black)!important}.assessment-text-danger{color:var(--assessment-danger)!important}.assessment-bg-danger{background-color:var(--assessment-danger)!important}.assessment-text-primary-one{color:var(--assessment-primary-one)!important}.assessment-bg-primary-one{background-color:var(--assessment-primary-one)!important}.assessment-text-primary-four{color:var(--assessment-primary-four)!important}.assessment-bg-primary-four{background-color:var(--assessment-primary-four)!important}.assessment-text-palette-EDF3FD{color:var(--assessment-palette-EDF3FD)!important}.assessment-bg-palette-EDF3FD{background-color:var(--assessment-palette-EDF3FD)!important}.assessment-text-palette-C8DAF9{color:var(--assessment-palette-C8DAF9)!important}.assessment-bg-palette-C8DAF9{background-color:var(--assessment-palette-C8DAF9)!important}.assessment-text-palette-ADC9F6{color:var(--assessment-palette-ADC9F6)!important}.assessment-bg-palette-ADC9F6{background-color:var(--assessment-palette-ADC9F6)!important}.assessment-text-palette-FEF9F1{color:var(--assessment-palette-FEF9F1)!important}.assessment-bg-palette-FEF9F1{background-color:var(--assessment-palette-FEF9F1)!important}.assessment-text-palette-F9DAA6{color:var(--assessment-palette-F9DAA6)!important}.assessment-bg-palette-F9DAA6{background-color:var(--assessment-palette-F9DAA6)!important}.assessment-text-palette-E8F7F0{color:var(--assessment-palette-E8F7F0)!important}.assessment-bg-palette-E8F7F0{background-color:var(--assessment-palette-E8F7F0)!important}.assessment-text-palette-B7E7CF{color:var(--assessment-palette-B7E7CF)!important}.assessment-bg-palette-B7E7CF{background-color:var(--assessment-palette-B7E7CF)!important}.assessment-box-shadow-one{box-shadow:var(--assessment-box-shadow-one)!important}.assessment-border-radius-one{border-radius:var(--assessment-border-radius-one)!important}.assessment-border-radius-two{border-radius:var(--assessment-border-radius-two)!important}.assessment-border-radius-three{border-radius:var(--assessment-border-radius-three)!important}.assessment-border-radius-four{border-radius:var(--assessment-border-radius-four)!important}.assessment-border-radius-five{border-radius:var(--assessment-border-radius-five)!important}.assessment-border-radius-six{border-radius:var(--assessment-border-radius-six)!important}.assessment-input-border-one{border:var(--assessment-input-border-one)!important}.assessment-input-border-invalid{border:var(--assessment-input-border-invalid)!important}.assessment-input-focus-border{border:var(--assessment-input-focus-border)!important}.assessment-border-two{border:var(--assessment-border-two)!important}.assessment-card-border{border:var(--assessment-card-border)!important}.assessment-tooltip-border{border:var(--assessment-tooltip-border)!important}.assessment-box-shadow-tooltip{box-shadow:var(--assessment-box-shadow-tooltip)!important}.assessment-button-padding{padding:var(--assessment-button-padding)!important}.assessment-button-padding-large{padding:var(--assessment-button-padding-large)!important}.assessment-input-padding{padding:var(--assessment-input-padding)!important}.assessment-text-font-family{color:var(--assessment-font-family)!important}.assessment-bg-font-family{background-color:var(--assessment-font-family)!important}.assessment-text-regular-12{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-bold-12{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-11{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-11{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-regular-11{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-12{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-regular-13{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-bold-13{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-semibold-13{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-medium-13{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-regular-14{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-bold-14{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-medium-14{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw)!important;line-height:calc(1.2rem + .2vw)!important}.assessment-text-semibold-14{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-semibold-10{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw);line-height:calc(1rem + .1vw)}.assessment-text-regular-10{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw)!important;line-height:calc(1rem + .1vw)}.assessment-text-regular-15{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.4rem + .1vw)}.assessment-text-medium-15{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-semibold-15{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-bold-15{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-regular-16{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-semibold-16{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-bold-16{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-medium-16{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-regular-20{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-bold-20{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-semibold-20{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-20{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-18{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-regular-18{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .3vw)!important}.assessment-text-bold-18{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw);line-height:calc(1.5rem + .1vw)}.assessment-text-semibold-18{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-bold-34{overflow-wrap:break-word;font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-medium-34{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-bold-32{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.3rem + .75vw);line-height:calc(1.625rem + .5vw)}.assessment-text-bold-22{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-regular-22{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-semibold-22{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-medium-22{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-24{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-regular-24{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-semibold-24{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-medium-24{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(1.2rem + .75vw)}.assessment-text-regular-26{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-medium-26{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-bold-26{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-semibold-26{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-regular-28{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-medium-28{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-semibold-28{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw);letter-spacing:1}.assessment-text-bold-28{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-regular-30{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw)}.assessment-text-medium-30{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-30{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(2rem + .4vw)}.assessment-text-semibold-30{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw);letter-spacing:.5}.assessment-text-bold-36{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}.assessment-text-semibold-36{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-bold-34{font-size:calc(1.8rem + .15vh);line-height:calc(2.2rem + .15vh)}.assessment-text-bold-32{font-size:calc(1.3rem + 1vh);line-height:calc(1.5rem + 1vh)}.assessment-text-semibold-30{font-size:calc(1.5rem + .4vh);line-height:calc(1.8rem + .4vh)}.assessment-text-medium-24{line-height:2.188rem}.assessment-text-medium-24,.assessment-text-regular-24,.assessment-text-semibold-24,.assessment-text-bold-24,.assessment-text-light-24{font-size:calc(1.3rem + .5vh);line-height:calc(1.8rem + .5vh)}.assessment-text-medium-18,.assessment-text-regular-18,.assessment-text-bold-18,.assessment-text-semibold-18,.assessment-text-light-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-light-16,.assessment-text-bold-16{font-size:calc(.9rem + .3vh)!important;line-height:calc(1.2rem + .3vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16,.assessment-text-regular-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15,.assessment-text-bold-15,.assessment-text-light-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12,.assessment-text-bold-12,.assessment-text-medium-upper-12,.assessment-text-light-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-regular-14,.assessment-text-light-14,.assessment-text-medium-upper-14,.assessment-text-semibold-14,.assessment-text-bold-14{font-size:calc(.8rem + .1vh)!important;line-height:calc(1.2rem + .2vh)!important}.assessment-text-regular-13,.assessment-text-medium-13,.assessment-text-semibold-13,.assessment-text-bold-13,.assessment-text-light-13{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11,.assessment-text-semibold-11,.assessment-text-bold-11,.assessment-text-light-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}}.assessment-btn-primary{background-color:var(--assessment-primary-one);color:var(--assessment-white);border:.064rem solid var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two)}.assessment-btn-primary-transparent{background-color:var(--assessment-white);color:var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two);border:.064rem solid var(--assessment-primary-one)}.assessment-zoom-animation{transition:transform .2s ease;transform:translateZ(0);text-rendering:optimizeLegibility}.assessment-zoom-animation:hover{transform:scale(1.03)}.assessment-zoom-animation:active{transform:scale(1)}.assessment-zoom-animation:disabled{transform:none!important}.change-direction{transform:rotate(180deg);transition:.3s ease-out}.change-direction-reverse{transform:rotate(0);transition:.3s ease-out}.outline-0{outline:none}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.action-icon{width:1.2rem}.mat-menu-item{height:inherit}\n"], components: [{ type: i2$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "orderBy": OrderByPipe } });
912
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypeMultiselectComponent, decorators: [{
913
+ type: Component,
914
+ args: [{
915
+ selector: 'lib-question-type-multiselect',
916
+ templateUrl: './question-type-multiselect.component.html',
917
+ styleUrls: ['./question-type-multiselect.component.scss']
918
+ }]
919
+ }], ctorParameters: function () { return [{ type: i1$2.NgControl, decorators: [{
920
+ type: Optional
921
+ }, {
922
+ type: Self
923
+ }] }]; }, propDecorators: { required: [{
924
+ type: Input
925
+ }], question: [{
926
+ type: Input
927
+ }], viewChild: [{
928
+ type: Output
929
+ }] } });
930
+
931
+ class QuestionTypePreferenceComponent {
932
+ constructor(ngControl) {
933
+ this.ngControl = ngControl;
934
+ this.viewChild = new EventEmitter();
935
+ this.selectData = [];
936
+ this.formControl = new FormControl();
937
+ this.onTouchedFn = () => { };
938
+ if (this.ngControl != null) {
939
+ this.ngControl.valueAccessor = this;
940
+ }
941
+ }
942
+ toggleSelection(data) {
943
+ if (this.formControl.disabled)
944
+ return;
945
+ const index = this.getSelectionIndex(data);
946
+ if (index === -1) {
947
+ this.selectData.push(data);
948
+ }
949
+ else {
950
+ this.selectData.splice(index, 1);
951
+ }
952
+ this.formControl.patchValue(this.selectData.length ? [...this.selectData] : null);
953
+ this.optionDetection(data, false);
954
+ this.onTouched();
955
+ }
956
+ writeValue(value) {
957
+ if (value && Array.isArray(value)) {
958
+ this.selectData = [...value];
959
+ this.formControl.setValue(this.selectData, { emitEvent: false });
960
+ }
961
+ else {
962
+ this.selectData = [];
963
+ this.formControl.setValue(null, { emitEvent: false });
964
+ }
965
+ }
966
+ getSelectionIndex(option) {
967
+ if (this.selectData) {
968
+ return this.selectData.findIndex((s) => s.id && s.id === option.id);
969
+ }
970
+ else {
971
+ return -1;
972
+ }
973
+ }
974
+ registerOnChange(fn) {
975
+ this.formControl.valueChanges.subscribe((val) => fn(val));
976
+ }
977
+ registerOnTouched(fn) {
978
+ this.onTouchedFn = fn;
979
+ }
980
+ setDisabledState(isDisabled) {
981
+ if (isDisabled) {
982
+ this.formControl.disable({ emitEvent: false });
983
+ }
984
+ else {
985
+ this.formControl.enable({ emitEvent: false });
986
+ }
987
+ }
988
+ onTouched() {
989
+ this.onTouchedFn();
990
+ }
991
+ checkFormControlValid() {
992
+ var _a, _b, _c, _d;
993
+ if (((_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.touched) && ((_d = (_c = this.ngControl) === null || _c === void 0 ? void 0 : _c.control) === null || _d === void 0 ? void 0 : _d.invalid)) {
994
+ return 'assessment-error-text assessment-text-danger';
995
+ }
996
+ return '';
997
+ }
998
+ optionDetection(obj, detectFromEdit) {
999
+ var _a, _b;
1000
+ let option = (_b = (_a = this.question) === null || _a === void 0 ? void 0 : _a.defaultOptionsList) === null || _b === void 0 ? void 0 : _b.find((o) => o.options.id === obj.id);
1001
+ let data = {
1002
+ question: this.question,
1003
+ list: option === null || option === void 0 ? void 0 : option.childQuestionList,
1004
+ detectFrom: detectFromEdit
1005
+ };
1006
+ this.viewChild.emit(data);
1007
+ }
1008
+ }
1009
+ QuestionTypePreferenceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypePreferenceComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
1010
+ QuestionTypePreferenceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionTypePreferenceComponent, selector: "lib-question-type-preference", inputs: { required: "required", question: "question" }, outputs: { viewChild: "viewChild" }, ngImport: i0, template: "<div class=\"d-flex flex-column gap-3 assessment-checkboxes mt-3\" (focusout)=\"onTouched()\">\n <ng-container *ngFor=\"let option of question.defaultOptionsList | orderBy\">\n <div class=\"d-flex align-items-center gap-3 cursor-pointer\" [class.assessment-text-grey]=\"formControl.disabled\"\n (click)=\"toggleSelection(option.options)\">\n\n <div class=\"preference-box assessment-bg-white flex-shrink-0 assessment-input-border-one assessment-border-radius-two d-flex align-items-center justify-content-center p-1\"\n [ngClass]=\"{\n 'selected assessment-bg-primary-one assessment-text-white': getSelectionIndex(option.options) > -1,\n 'disabled': formControl.disabled\n }\">\n <span class=\"assessment-text-semibold-12\" *ngIf=\"getSelectionIndex(option.options) > -1\">\n {{getSelectionIndex(option.options) + 1}}\n </span>\n </div>\n\n <span class=\"text-wrap assessment-text-medium-14\" [innerHtml]=\"option.options.optionName[0]?.text\"></span>\n </div>\n </ng-container>\n</div>", styles: [".assessment-text-grey-ten{color:var(--assessment-grey-ten)!important}.assessment-bg-grey-ten{background-color:var(--assessment-grey-ten)!important}.assessment-text-grey-nine{color:var(--assessment-grey-nine)!important}.assessment-bg-grey-nine{background-color:var(--assessment-grey-nine)!important}.assessment-text-grey-eight{color:var(--assessment-grey-eight)!important}.assessment-bg-grey-eight{background-color:var(--assessment-grey-eight)!important}.assessment-text-grey-seven{color:var(--assessment-grey-seven)!important}.assessment-bg-grey-seven{background-color:var(--assessment-grey-seven)!important}.assessment-text-grey-six{color:var(--assessment-grey-six)!important}.assessment-bg-grey-six{background-color:var(--assessment-grey-six)!important}.assessment-text-grey-five{color:var(--assessment-grey-five)!important}.assessment-bg-grey-five{background-color:var(--assessment-grey-five)!important}.assessment-text-grey-four{color:var(--assessment-grey-four)!important}.assessment-bg-grey-four{background-color:var(--assessment-grey-four)!important}.assessment-text-grey-three{color:var(--assessment-grey-three)!important}.assessment-bg-grey-three{background-color:var(--assessment-grey-three)!important}.assessment-text-grey-two{color:var(--assessment-grey-two)!important}.assessment-bg-grey-two{background-color:var(--assessment-grey-two)!important}.assessment-text-grey-one{color:var(--assessment-grey-one)!important}.assessment-bg-grey-one{background-color:var(--assessment-grey-one)!important}.assessment-text-white{color:var(--assessment-white)!important}.assessment-bg-white{background-color:var(--assessment-white)!important}.assessment-text-black{color:var(--assessment-black)!important}.assessment-bg-black{background-color:var(--assessment-black)!important}.assessment-text-danger{color:var(--assessment-danger)!important}.assessment-bg-danger{background-color:var(--assessment-danger)!important}.assessment-text-primary-one{color:var(--assessment-primary-one)!important}.assessment-bg-primary-one{background-color:var(--assessment-primary-one)!important}.assessment-text-primary-four{color:var(--assessment-primary-four)!important}.assessment-bg-primary-four{background-color:var(--assessment-primary-four)!important}.assessment-text-palette-EDF3FD{color:var(--assessment-palette-EDF3FD)!important}.assessment-bg-palette-EDF3FD{background-color:var(--assessment-palette-EDF3FD)!important}.assessment-text-palette-C8DAF9{color:var(--assessment-palette-C8DAF9)!important}.assessment-bg-palette-C8DAF9{background-color:var(--assessment-palette-C8DAF9)!important}.assessment-text-palette-ADC9F6{color:var(--assessment-palette-ADC9F6)!important}.assessment-bg-palette-ADC9F6{background-color:var(--assessment-palette-ADC9F6)!important}.assessment-text-palette-FEF9F1{color:var(--assessment-palette-FEF9F1)!important}.assessment-bg-palette-FEF9F1{background-color:var(--assessment-palette-FEF9F1)!important}.assessment-text-palette-F9DAA6{color:var(--assessment-palette-F9DAA6)!important}.assessment-bg-palette-F9DAA6{background-color:var(--assessment-palette-F9DAA6)!important}.assessment-text-palette-E8F7F0{color:var(--assessment-palette-E8F7F0)!important}.assessment-bg-palette-E8F7F0{background-color:var(--assessment-palette-E8F7F0)!important}.assessment-text-palette-B7E7CF{color:var(--assessment-palette-B7E7CF)!important}.assessment-bg-palette-B7E7CF{background-color:var(--assessment-palette-B7E7CF)!important}.assessment-box-shadow-one{box-shadow:var(--assessment-box-shadow-one)!important}.assessment-border-radius-one{border-radius:var(--assessment-border-radius-one)!important}.assessment-border-radius-two{border-radius:var(--assessment-border-radius-two)!important}.assessment-border-radius-three{border-radius:var(--assessment-border-radius-three)!important}.assessment-border-radius-four{border-radius:var(--assessment-border-radius-four)!important}.assessment-border-radius-five{border-radius:var(--assessment-border-radius-five)!important}.assessment-border-radius-six{border-radius:var(--assessment-border-radius-six)!important}.assessment-input-border-one{border:var(--assessment-input-border-one)!important}.assessment-input-border-invalid{border:var(--assessment-input-border-invalid)!important}.assessment-input-focus-border{border:var(--assessment-input-focus-border)!important}.assessment-border-two{border:var(--assessment-border-two)!important}.assessment-card-border{border:var(--assessment-card-border)!important}.assessment-tooltip-border{border:var(--assessment-tooltip-border)!important}.assessment-box-shadow-tooltip{box-shadow:var(--assessment-box-shadow-tooltip)!important}.assessment-button-padding{padding:var(--assessment-button-padding)!important}.assessment-button-padding-large{padding:var(--assessment-button-padding-large)!important}.assessment-input-padding{padding:var(--assessment-input-padding)!important}.assessment-text-font-family{color:var(--assessment-font-family)!important}.assessment-bg-font-family{background-color:var(--assessment-font-family)!important}.assessment-text-regular-12{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-bold-12{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-11{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-11{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-regular-11{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-12{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-regular-13{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-bold-13{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-semibold-13{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-medium-13{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-regular-14{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-bold-14{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-medium-14{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw)!important;line-height:calc(1.2rem + .2vw)!important}.assessment-text-semibold-14{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-semibold-10{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw);line-height:calc(1rem + .1vw)}.assessment-text-regular-10{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw)!important;line-height:calc(1rem + .1vw)}.assessment-text-regular-15{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.4rem + .1vw)}.assessment-text-medium-15{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-semibold-15{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-bold-15{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-regular-16{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-semibold-16{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-bold-16{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-medium-16{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-regular-20{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-bold-20{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-semibold-20{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-20{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-18{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-regular-18{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .3vw)!important}.assessment-text-bold-18{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw);line-height:calc(1.5rem + .1vw)}.assessment-text-semibold-18{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-bold-34{overflow-wrap:break-word;font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-medium-34{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-bold-32{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.3rem + .75vw);line-height:calc(1.625rem + .5vw)}.assessment-text-bold-22{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-regular-22{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-semibold-22{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-medium-22{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-24{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-regular-24{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-semibold-24{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-medium-24{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(1.2rem + .75vw)}.assessment-text-regular-26{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-medium-26{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-bold-26{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-semibold-26{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-regular-28{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-medium-28{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-semibold-28{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw);letter-spacing:1}.assessment-text-bold-28{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-regular-30{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw)}.assessment-text-medium-30{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-30{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(2rem + .4vw)}.assessment-text-semibold-30{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw);letter-spacing:.5}.assessment-text-bold-36{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}.assessment-text-semibold-36{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-bold-34{font-size:calc(1.8rem + .15vh);line-height:calc(2.2rem + .15vh)}.assessment-text-bold-32{font-size:calc(1.3rem + 1vh);line-height:calc(1.5rem + 1vh)}.assessment-text-semibold-30{font-size:calc(1.5rem + .4vh);line-height:calc(1.8rem + .4vh)}.assessment-text-medium-24{line-height:2.188rem}.assessment-text-medium-24,.assessment-text-regular-24,.assessment-text-semibold-24,.assessment-text-bold-24,.assessment-text-light-24{font-size:calc(1.3rem + .5vh);line-height:calc(1.8rem + .5vh)}.assessment-text-medium-18,.assessment-text-regular-18,.assessment-text-bold-18,.assessment-text-semibold-18,.assessment-text-light-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-light-16,.assessment-text-bold-16{font-size:calc(.9rem + .3vh)!important;line-height:calc(1.2rem + .3vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16,.assessment-text-regular-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15,.assessment-text-bold-15,.assessment-text-light-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12,.assessment-text-bold-12,.assessment-text-medium-upper-12,.assessment-text-light-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-regular-14,.assessment-text-light-14,.assessment-text-medium-upper-14,.assessment-text-semibold-14,.assessment-text-bold-14{font-size:calc(.8rem + .1vh)!important;line-height:calc(1.2rem + .2vh)!important}.assessment-text-regular-13,.assessment-text-medium-13,.assessment-text-semibold-13,.assessment-text-bold-13,.assessment-text-light-13{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11,.assessment-text-semibold-11,.assessment-text-bold-11,.assessment-text-light-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}}.assessment-btn-primary{background-color:var(--assessment-primary-one);color:var(--assessment-white);border:.064rem solid var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two)}.assessment-btn-primary-transparent{background-color:var(--assessment-white);color:var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two);border:.064rem solid var(--assessment-primary-one)}.assessment-zoom-animation{transition:transform .2s ease;transform:translateZ(0);text-rendering:optimizeLegibility}.assessment-zoom-animation:hover{transform:scale(1.03)}.assessment-zoom-animation:active{transform:scale(1)}.assessment-zoom-animation:disabled{transform:none!important}.change-direction{transform:rotate(180deg);transition:.3s ease-out}.change-direction-reverse{transform:rotate(0);transition:.3s ease-out}.outline-0{outline:none}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.action-icon{width:1.2rem}.mat-menu-item{height:inherit}.preference-box{width:1.5rem;height:1.5rem;transition:all .2s ease-in-out}.preference-box.selected{border-color:var(--assessment-primary-one)}.preference-box.disabled{opacity:.8}\n"], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "orderBy": OrderByPipe } });
1011
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypePreferenceComponent, decorators: [{
1012
+ type: Component,
1013
+ args: [{
1014
+ selector: 'lib-question-type-preference',
1015
+ templateUrl: './question-type-preference.component.html',
1016
+ styleUrls: ['./question-type-preference.component.scss']
1017
+ }]
1018
+ }], ctorParameters: function () { return [{ type: i1$2.NgControl, decorators: [{
1019
+ type: Optional
1020
+ }, {
1021
+ type: Self
1022
+ }] }]; }, propDecorators: { required: [{
1023
+ type: Input
1024
+ }], question: [{
1025
+ type: Input
1026
+ }], viewChild: [{
1027
+ type: Output
1028
+ }] } });
1029
+
1030
+ class QuestionTypeFileUploadComponent {
1031
+ constructor(ngControl, assessmentService) {
1032
+ this.ngControl = ngControl;
1033
+ this.assessmentService = assessmentService;
1034
+ this.labelConfig = {};
1035
+ this.imageConfig = {};
1036
+ this.files = [];
1037
+ this.formControl = new FormControl([]);
1038
+ this.onTouched = () => { };
1039
+ if (this.ngControl != null) {
1040
+ this.ngControl.valueAccessor = this;
1041
+ }
1042
+ }
1043
+ writeValue(value) {
1044
+ if (value && Array.isArray(value)) {
1045
+ this.files = value;
1046
+ this.formControl.setValue(value, { emitEvent: false });
1047
+ }
1048
+ else {
1049
+ this.files = [];
1050
+ this.formControl.setValue([], { emitEvent: false });
1051
+ }
1052
+ }
1053
+ registerOnChange(fn) {
1054
+ this.formControl.valueChanges.subscribe((val) => fn(val));
1055
+ }
1056
+ registerOnTouched(fn) {
1057
+ this.onTouched = fn;
1058
+ }
1059
+ setDisabledState(isDisabled) {
1060
+ if (isDisabled) {
1061
+ this.formControl.disable({ emitEvent: false });
1062
+ }
1063
+ else {
1064
+ this.formControl.enable({ emitEvent: false });
1065
+ }
1066
+ }
1067
+ get maxFiles() {
1068
+ var _a, _b;
1069
+ const config = (_b = (_a = this.question) === null || _a === void 0 ? void 0 : _a.questionConfigs) === null || _b === void 0 ? void 0 : _b.find(c => c.configKey === 'maxNoOfFiles');
1070
+ return config ? Number(config.configValue) : 1;
1071
+ }
1072
+ get maxFileSize() {
1073
+ var _a, _b;
1074
+ const config = (_b = (_a = this.question) === null || _a === void 0 ? void 0 : _a.questionConfigs) === null || _b === void 0 ? void 0 : _b.find(c => c.configKey === 'maxFileSize');
1075
+ // maxFileSize config is in MB, convert to bytes for comparison
1076
+ return config ? Number(config.configValue) * 1024 * 1024 : 0;
1077
+ }
1078
+ get allowMultiple() {
1079
+ return this.maxFiles > 1;
1080
+ }
1081
+ onFileChange(event) {
1082
+ const inputFiles = event.target.files;
1083
+ if (inputFiles && inputFiles.length > 0) {
1084
+ const newFiles = Array.from(inputFiles);
1085
+ const limit = this.maxFileSize;
1086
+ const validFiles = newFiles.filter(f => limit === 0 || f.size <= limit);
1087
+ if (validFiles.length < newFiles.length) {
1088
+ // this.matSnackBar.open('One or more selected files exceed the maximum allowed size.', 'OK', { duration: 4000 });
1089
+ }
1090
+ validFiles.forEach(file => {
1091
+ this.uploadFile(file);
1092
+ });
1093
+ }
1094
+ if (this.fileInput) {
1095
+ this.fileInput.nativeElement.value = '';
1096
+ }
1097
+ }
1098
+ uploadFile(file) {
1099
+ const formData = new FormData();
1100
+ formData.append('file', file);
1101
+ this.assessmentService.uploadAttachment(formData, { entityType: 'ENTITY_TYPE.ASSESSMENT_QUESTION' }).subscribe({
1102
+ next: (data) => {
1103
+ // this.matSnackBar.open('File uploaded successfully!', 'OK', { duration: 4000 });
1104
+ if (this.allowMultiple) {
1105
+ this.files = [...this.files, data];
1106
+ }
1107
+ else {
1108
+ this.files = [data];
1109
+ }
1110
+ this.formControl.setValue(this.files);
1111
+ this.onTouched();
1112
+ },
1113
+ error: (error) => {
1114
+ // this.matSnackBar.open('Failed to upload the file!', 'OK', { duration: 4000 });
1115
+ }
1116
+ });
1117
+ }
1118
+ removeFile(index) {
1119
+ this.files.splice(index, 1);
1120
+ this.formControl.setValue([...this.files]);
1121
+ this.onTouched();
1122
+ }
1123
+ imageErrorHandler(event, filePath) {
1124
+ event.target.src = filePath;
1125
+ }
1126
+ getFileIcon(attachment) {
1127
+ const mimeTypeMap = {
1128
+ 'pdf': 'COMMONS_ASSESSMENT.ICON.PDF',
1129
+ 'image/jpeg': 'COMMONS_ASSESSMENT.ICON.JPEG',
1130
+ 'image/jpg': 'COMMONS_ASSESSMENT.ICON.JPG',
1131
+ 'image/png': 'COMMONS_ASSESSMENT.ICON.PNG',
1132
+ 'image/svg': 'COMMONS_ASSESSMENT.ICON.SVG'
1133
+ };
1134
+ const mimeType = attachment.mimeType;
1135
+ if (mimeType) {
1136
+ const mimeTypeLower = mimeType.toLowerCase();
1137
+ for (const key in mimeTypeMap) {
1138
+ if (mimeTypeLower.includes(key)) {
1139
+ return this.imageConfig[mimeTypeMap[key]] || this.imageConfig['COMMONS_ASSESSMENT.ICON.DEFAULT_FILE'];
1140
+ }
1141
+ }
1142
+ }
1143
+ return this.imageConfig['COMMONS_ASSESSMENT.ICON.DEFAULT_FILE'];
1144
+ }
1145
+ viewFile(url) {
1146
+ if (url) {
1147
+ window.open(url, '_blank');
1148
+ }
1149
+ }
1150
+ }
1151
+ QuestionTypeFileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypeFileUploadComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }, { token: AssessmentTakerService }], target: i0.ɵɵFactoryTarget.Component });
1152
+ QuestionTypeFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionTypeFileUploadComponent, selector: "lib-question-type-file-upload", inputs: { required: "required", question: "question", labelConfig: "labelConfig", imageConfig: "imageConfig" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div class=\"file-upload-container col-12\">\n <input type=\"file\" #fileInput (change)=\"onFileChange($event)\" [multiple]=\"allowMultiple\" class=\"d-none\"\n [id]=\"question.id + '_file'\" [disabled]=\"formControl.disabled\" (blur)=\"onTouched()\">\n\n <div class=\"my-3 row mx-0 row-gap-3\" *ngIf=\"files.length > 0\">\n <div *ngFor=\"let file of files; let i = index\" class=\"col-lg-4 col-md-6 col-12\">\n <div\n class=\"col-12 d-flex align-items-center gap-3 assessment-border-radius-two assessment-bg-grey-one p-3 assessment-card-border cursor-pointer\">\n <img [src]=\"getFileIcon(file)\"\n (error)=\"imageErrorHandler($event, imageConfig['COMMONS_ASSESSMENT.ICON.DEFAULT_FILE'])\" class=\"file-icon\"\n alt=\"file icon\">\n <div class=\"flex-grow-1 cursor-pointer\" (click)=\"viewFile(file.completeURL)\">\n <p class=\"assessment-text-medium-15 mb-0 assessment-text-grey-ten\">\n {{ file.name }}</p>\n <p class=\"mb-0 assessment-text-medium-12 assessment-text-grey-eight\">\n {{file.fileSizeInBytes < 1024 ? (file.fileSizeInBytes | number: '1.1-1' ) + ' Kb' : file.fileSizeInBytes <\n 1000000 ? (file.fileSizeInBytes / 1024 | number: '1.1-1' ) + ' Kb' : (file.fileSizeInBytes / 1000000 |\n number: '1.1-1' ) + ' Mb' }} </p>\n </div>\n <img *ngIf=\"!formControl.disabled\" (click)=\"removeFile(i)\" [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.DELETE']\"\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/delete.svg')\"\n class=\"icon cursor-pointer\" alt=\"delete\">\n </div>\n </div>\n </div>\n\n <button *ngIf=\"!formControl.disabled\" type=\"button\"\n class=\"assessment-zoom-animation assessment-border-radius-two assessment-button-padding-large assessment-btn-primary-transparent assessment-text-semibold-13 mt-2\"\n (click)=\"fileInput.click()\">\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.UPLOAD']}}\n </button>", styles: [".assessment-text-grey-ten{color:var(--assessment-grey-ten)!important}.assessment-bg-grey-ten{background-color:var(--assessment-grey-ten)!important}.assessment-text-grey-nine{color:var(--assessment-grey-nine)!important}.assessment-bg-grey-nine{background-color:var(--assessment-grey-nine)!important}.assessment-text-grey-eight{color:var(--assessment-grey-eight)!important}.assessment-bg-grey-eight{background-color:var(--assessment-grey-eight)!important}.assessment-text-grey-seven{color:var(--assessment-grey-seven)!important}.assessment-bg-grey-seven{background-color:var(--assessment-grey-seven)!important}.assessment-text-grey-six{color:var(--assessment-grey-six)!important}.assessment-bg-grey-six{background-color:var(--assessment-grey-six)!important}.assessment-text-grey-five{color:var(--assessment-grey-five)!important}.assessment-bg-grey-five{background-color:var(--assessment-grey-five)!important}.assessment-text-grey-four{color:var(--assessment-grey-four)!important}.assessment-bg-grey-four{background-color:var(--assessment-grey-four)!important}.assessment-text-grey-three{color:var(--assessment-grey-three)!important}.assessment-bg-grey-three{background-color:var(--assessment-grey-three)!important}.assessment-text-grey-two{color:var(--assessment-grey-two)!important}.assessment-bg-grey-two{background-color:var(--assessment-grey-two)!important}.assessment-text-grey-one{color:var(--assessment-grey-one)!important}.assessment-bg-grey-one{background-color:var(--assessment-grey-one)!important}.assessment-text-white{color:var(--assessment-white)!important}.assessment-bg-white{background-color:var(--assessment-white)!important}.assessment-text-black{color:var(--assessment-black)!important}.assessment-bg-black{background-color:var(--assessment-black)!important}.assessment-text-danger{color:var(--assessment-danger)!important}.assessment-bg-danger{background-color:var(--assessment-danger)!important}.assessment-text-primary-one{color:var(--assessment-primary-one)!important}.assessment-bg-primary-one{background-color:var(--assessment-primary-one)!important}.assessment-text-primary-four{color:var(--assessment-primary-four)!important}.assessment-bg-primary-four{background-color:var(--assessment-primary-four)!important}.assessment-text-palette-EDF3FD{color:var(--assessment-palette-EDF3FD)!important}.assessment-bg-palette-EDF3FD{background-color:var(--assessment-palette-EDF3FD)!important}.assessment-text-palette-C8DAF9{color:var(--assessment-palette-C8DAF9)!important}.assessment-bg-palette-C8DAF9{background-color:var(--assessment-palette-C8DAF9)!important}.assessment-text-palette-ADC9F6{color:var(--assessment-palette-ADC9F6)!important}.assessment-bg-palette-ADC9F6{background-color:var(--assessment-palette-ADC9F6)!important}.assessment-text-palette-FEF9F1{color:var(--assessment-palette-FEF9F1)!important}.assessment-bg-palette-FEF9F1{background-color:var(--assessment-palette-FEF9F1)!important}.assessment-text-palette-F9DAA6{color:var(--assessment-palette-F9DAA6)!important}.assessment-bg-palette-F9DAA6{background-color:var(--assessment-palette-F9DAA6)!important}.assessment-text-palette-E8F7F0{color:var(--assessment-palette-E8F7F0)!important}.assessment-bg-palette-E8F7F0{background-color:var(--assessment-palette-E8F7F0)!important}.assessment-text-palette-B7E7CF{color:var(--assessment-palette-B7E7CF)!important}.assessment-bg-palette-B7E7CF{background-color:var(--assessment-palette-B7E7CF)!important}.assessment-box-shadow-one{box-shadow:var(--assessment-box-shadow-one)!important}.assessment-border-radius-one{border-radius:var(--assessment-border-radius-one)!important}.assessment-border-radius-two{border-radius:var(--assessment-border-radius-two)!important}.assessment-border-radius-three{border-radius:var(--assessment-border-radius-three)!important}.assessment-border-radius-four{border-radius:var(--assessment-border-radius-four)!important}.assessment-border-radius-five{border-radius:var(--assessment-border-radius-five)!important}.assessment-border-radius-six{border-radius:var(--assessment-border-radius-six)!important}.assessment-input-border-one{border:var(--assessment-input-border-one)!important}.assessment-input-border-invalid{border:var(--assessment-input-border-invalid)!important}.assessment-input-focus-border{border:var(--assessment-input-focus-border)!important}.assessment-border-two{border:var(--assessment-border-two)!important}.assessment-card-border{border:var(--assessment-card-border)!important}.assessment-tooltip-border{border:var(--assessment-tooltip-border)!important}.assessment-box-shadow-tooltip{box-shadow:var(--assessment-box-shadow-tooltip)!important}.assessment-button-padding{padding:var(--assessment-button-padding)!important}.assessment-button-padding-large{padding:var(--assessment-button-padding-large)!important}.assessment-input-padding{padding:var(--assessment-input-padding)!important}.assessment-text-font-family{color:var(--assessment-font-family)!important}.assessment-bg-font-family{background-color:var(--assessment-font-family)!important}.assessment-text-regular-12{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-bold-12{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-11{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-11{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-regular-11{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-12{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-regular-13{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-bold-13{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-semibold-13{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-medium-13{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-regular-14{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-bold-14{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-medium-14{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw)!important;line-height:calc(1.2rem + .2vw)!important}.assessment-text-semibold-14{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-semibold-10{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw);line-height:calc(1rem + .1vw)}.assessment-text-regular-10{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw)!important;line-height:calc(1rem + .1vw)}.assessment-text-regular-15{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.4rem + .1vw)}.assessment-text-medium-15{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-semibold-15{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-bold-15{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-regular-16{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-semibold-16{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-bold-16{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-medium-16{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-regular-20{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-bold-20{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-semibold-20{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-20{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-18{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-regular-18{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .3vw)!important}.assessment-text-bold-18{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw);line-height:calc(1.5rem + .1vw)}.assessment-text-semibold-18{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-bold-34{overflow-wrap:break-word;font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-medium-34{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-bold-32{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.3rem + .75vw);line-height:calc(1.625rem + .5vw)}.assessment-text-bold-22{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-regular-22{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-semibold-22{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-medium-22{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-24{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-regular-24{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-semibold-24{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-medium-24{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(1.2rem + .75vw)}.assessment-text-regular-26{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-medium-26{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-bold-26{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-semibold-26{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-regular-28{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-medium-28{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-semibold-28{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw);letter-spacing:1}.assessment-text-bold-28{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-regular-30{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw)}.assessment-text-medium-30{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-30{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(2rem + .4vw)}.assessment-text-semibold-30{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw);letter-spacing:.5}.assessment-text-bold-36{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}.assessment-text-semibold-36{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-bold-34{font-size:calc(1.8rem + .15vh);line-height:calc(2.2rem + .15vh)}.assessment-text-bold-32{font-size:calc(1.3rem + 1vh);line-height:calc(1.5rem + 1vh)}.assessment-text-semibold-30{font-size:calc(1.5rem + .4vh);line-height:calc(1.8rem + .4vh)}.assessment-text-medium-24{line-height:2.188rem}.assessment-text-medium-24,.assessment-text-regular-24,.assessment-text-semibold-24,.assessment-text-bold-24,.assessment-text-light-24{font-size:calc(1.3rem + .5vh);line-height:calc(1.8rem + .5vh)}.assessment-text-medium-18,.assessment-text-regular-18,.assessment-text-bold-18,.assessment-text-semibold-18,.assessment-text-light-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-light-16,.assessment-text-bold-16{font-size:calc(.9rem + .3vh)!important;line-height:calc(1.2rem + .3vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16,.assessment-text-regular-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15,.assessment-text-bold-15,.assessment-text-light-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12,.assessment-text-bold-12,.assessment-text-medium-upper-12,.assessment-text-light-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-regular-14,.assessment-text-light-14,.assessment-text-medium-upper-14,.assessment-text-semibold-14,.assessment-text-bold-14{font-size:calc(.8rem + .1vh)!important;line-height:calc(1.2rem + .2vh)!important}.assessment-text-regular-13,.assessment-text-medium-13,.assessment-text-semibold-13,.assessment-text-bold-13,.assessment-text-light-13{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11,.assessment-text-semibold-11,.assessment-text-bold-11,.assessment-text-light-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}}.assessment-btn-primary{background-color:var(--assessment-primary-one);color:var(--assessment-white);border:.064rem solid var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two)}.assessment-btn-primary-transparent{background-color:var(--assessment-white);color:var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two);border:.064rem solid var(--assessment-primary-one)}.assessment-zoom-animation{transition:transform .2s ease;transform:translateZ(0);text-rendering:optimizeLegibility}.assessment-zoom-animation:hover{transform:scale(1.03)}.assessment-zoom-animation:active{transform:scale(1)}.assessment-zoom-animation:disabled{transform:none!important}.change-direction{transform:rotate(180deg);transition:.3s ease-out}.change-direction-reverse{transform:rotate(0);transition:.3s ease-out}.outline-0{outline:none}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.action-icon{width:1.2rem}.mat-menu-item{height:inherit}.icon{width:1.5rem}.file-icon{width:2rem}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "number": i3.DecimalPipe } });
1153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypeFileUploadComponent, decorators: [{
1154
+ type: Component,
1155
+ args: [{
1156
+ selector: 'lib-question-type-file-upload',
1157
+ templateUrl: './question-type-file-upload.component.html',
1158
+ styleUrls: ['./question-type-file-upload.component.scss']
1159
+ }]
1160
+ }], ctorParameters: function () { return [{ type: i1$2.NgControl, decorators: [{
1161
+ type: Optional
1162
+ }, {
1163
+ type: Self
1164
+ }] }, { type: AssessmentTakerService }]; }, propDecorators: { required: [{
1165
+ type: Input
1166
+ }], question: [{
1167
+ type: Input
1168
+ }], labelConfig: [{
1169
+ type: Input
1170
+ }], imageConfig: [{
1171
+ type: Input
1172
+ }], fileInput: [{
1173
+ type: ViewChild,
1174
+ args: ['fileInput']
1175
+ }] } });
1176
+
1177
+ class AssessmentTakerComponent {
1178
+ constructor(assessmentTakerService, fb, responseBuilderService, sanitizer, dialog) {
1179
+ this.assessmentTakerService = assessmentTakerService;
1180
+ this.fb = fb;
1181
+ this.responseBuilderService = responseBuilderService;
1182
+ this.sanitizer = sanitizer;
1183
+ this.dialog = dialog;
1184
+ this.labelConfig = {};
1185
+ this.imageConfig = {};
1186
+ this.showFooter = false;
1187
+ this.assesseeData = { id: 0, actorId: 0, actorType: 'ACTOR_TYPE.BRIDGE_USER' };
1188
+ this.assessorData = { id: 0, actorId: 0, actorType: 'TENANT' };
1189
+ this.disabled = false;
1190
+ this.previewMode = false;
1191
+ this.verticalView = false;
1192
+ this.enableMarks = false;
1193
+ this.snackbarMessage = new EventEmitter();
1194
+ this.submitAssessment = new EventEmitter();
1195
+ this.showLoader = false;
1196
+ this.questionBank = {};
1197
+ this.assessmentQuestionPaperData = {};
1198
+ this.assessmentData = {};
1199
+ this.assesseeResponse = {};
1200
+ this.configsLoaded = false;
1201
+ this.isSubmitting = false;
1202
+ this.sectionFormGroups = [];
1203
+ this.selectedTabIndex = 0;
1204
+ this.sectionErrors = [];
1205
+ this.tenantId = 0;
1206
+ this.tooltipState = {};
1207
+ this.expandedState = [];
1208
+ }
1209
+ ngOnInit() {
1210
+ this.getConfigsFromJSON();
1211
+ if (this.previewMode) {
1212
+ this.disabled = true;
1213
+ }
1214
+ if (this.assessmentInstanceId) {
1215
+ this.showLoader = true;
1216
+ this.loadAssessmentData();
1217
+ }
1218
+ }
1219
+ getConfigsFromJSON() {
1220
+ forkJoin({
1221
+ labelConfig: this.assessmentTakerService.getConfigJSON('json/labelConfig'),
1222
+ imageConfig: this.assessmentTakerService.getConfigJSON('json/imageConfig')
1223
+ }).subscribe((res) => {
1224
+ this.labelConfig = Object.assign({}, res === null || res === void 0 ? void 0 : res.labelConfig, this.labelConfig);
1225
+ this.imageConfig = Object.assign({}, res === null || res === void 0 ? void 0 : res.imageConfig, this.imageConfig);
1226
+ this.configsLoaded = true;
1227
+ });
1228
+ }
1229
+ loadAssessmentData() {
1230
+ var _a;
1231
+ const apiCalls = Object.assign({ assessmentData: this.assessmentTakerService.getAssessmentContextById(this.assessmentId) }, (((_a = this.assesseeData) === null || _a === void 0 ? void 0 : _a.id) && {
1232
+ assesseeResponse: this.assessmentTakerService.getAnswersByAiaId(this.assesseeData.id)
1233
+ }));
1234
+ forkJoin(apiCalls).subscribe({
1235
+ next: (data) => {
1236
+ var _a, _b, _c, _d, _e;
1237
+ this.assessmentQuestionPaperData = (_a = data === null || data === void 0 ? void 0 : data.assessmentData) === null || _a === void 0 ? void 0 : _a.assessmentQuestionPaperDTO;
1238
+ this.assessmentData = (_b = data === null || data === void 0 ? void 0 : data.assessmentData) === null || _b === void 0 ? void 0 : _b.assessment;
1239
+ this.questionBank = (_c = data === null || data === void 0 ? void 0 : data.assessmentData) === null || _c === void 0 ? void 0 : _c.questionDTOMap;
1240
+ this.tenantId = (_e = (_d = data === null || data === void 0 ? void 0 : data.assessmentData) === null || _d === void 0 ? void 0 : _d.assessment) === null || _e === void 0 ? void 0 : _e.tenantId;
1241
+ if (data === null || data === void 0 ? void 0 : data.assesseeResponse) {
1242
+ this.assesseeResponse = data === null || data === void 0 ? void 0 : data.assesseeResponse;
1243
+ }
1244
+ else {
1245
+ this.assesseeResponse = {
1246
+ id: 0,
1247
+ assessmentInstance: { id: this.assessmentInstanceId },
1248
+ assessee: this.assesseeData,
1249
+ assessor: this.assessorData,
1250
+ aiadefaultResponseList: [],
1251
+ tenant: this.tenantId
1252
+ };
1253
+ }
1254
+ this.formSetup();
1255
+ this.showLoader = false;
1256
+ },
1257
+ error: error => {
1258
+ this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.ERROR_DEFAULT'], type: 'error' });
1259
+ throw { error, method: 'GET' };
1260
+ }
1261
+ });
1262
+ }
1263
+ formSetup() {
1264
+ var _a, _b;
1265
+ this.sectionFormGroups = [];
1266
+ (_b = (_a = this.assessmentQuestionPaperData) === null || _a === void 0 ? void 0 : _a.questionPaperSectionList) === null || _b === void 0 ? void 0 : _b.forEach(section => {
1267
+ var _a, _b;
1268
+ const group = {};
1269
+ (_a = section === null || section === void 0 ? void 0 : section.sectionQuestionsList) === null || _a === void 0 ? void 0 : _a.forEach(sq => {
1270
+ var _a;
1271
+ const qId = sq.questionId;
1272
+ if (!qId || !this.questionBank[qId])
1273
+ return;
1274
+ const question = this.questionBank[qId];
1275
+ this.addControlForQuestion(group, question, question === null || question === void 0 ? void 0 : question.isMandatory);
1276
+ if ((_a = question.defaultOptionsList) === null || _a === void 0 ? void 0 : _a.length) {
1277
+ question.defaultOptionsList.forEach((option) => {
1278
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
1279
+ if (option.remarksRequired) {
1280
+ // Pre-populate remarks if we have answers matching this option.
1281
+ let remarkVal = null;
1282
+ const prefilledOptions = this.getPrefilledAnswer(qId);
1283
+ if (prefilledOptions) {
1284
+ const ansObj = (_b = (_a = this.assesseeResponse) === null || _a === void 0 ? void 0 : _a.aiadefaultResponseList) === null || _b === void 0 ? void 0 : _b.find((a) => { var _a; return ((_a = a.sectionQuestion) === null || _a === void 0 ? void 0 : _a.questionId) === qId && (!a.childQuestionId || a.childQuestionId === 0); });
1285
+ if (ansObj) {
1286
+ if (((_c = question.questionType) === null || _c === void 0 ? void 0 : _c.code) === 'QUESTION_TYPE.OBJECTIVE' && prefilledOptions.id === ((_e = (_d = option.options) === null || _d === void 0 ? void 0 : _d.id) !== null && _e !== void 0 ? _e : option.id)) {
1287
+ remarkVal = ansObj.remarks || null;
1288
+ }
1289
+ else if (Array.isArray(prefilledOptions)) {
1290
+ const matchingObj = (_f = ansObj.drobjectiveresponseList) === null || _f === void 0 ? void 0 : _f.find((r) => { var _a, _b, _c, _d; return ((_b = (_a = r.defaultOption) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.id) === ((_d = (_c = option.options) === null || _c === void 0 ? void 0 : _c.id) !== null && _d !== void 0 ? _d : option.id); });
1291
+ if (matchingObj) {
1292
+ remarkVal = matchingObj.remarks || null;
1293
+ }
1294
+ }
1295
+ }
1296
+ }
1297
+ const remarkCtrl = new FormControl(remarkVal);
1298
+ if (((_h = (_g = this.assesseeResponse) === null || _g === void 0 ? void 0 : _g.assessmentTaken) === null || _h === void 0 ? void 0 : _h.code) === 'ASSESSMENT_TAKEN.COMPLETED' || this.disabled)
1299
+ remarkCtrl.disable();
1300
+ group[`${qId}_remarks_${option.id}`] = remarkCtrl;
1301
+ }
1302
+ (_j = option.childQuestionList) === null || _j === void 0 ? void 0 : _j.forEach((childId) => {
1303
+ var _a, _b;
1304
+ const childQues = this.questionBank[childId];
1305
+ if (childQues) {
1306
+ this.addControlForQuestion(group, childQues, false, true, qId, (_b = (_a = option.options) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : option.id);
1307
+ }
1308
+ });
1309
+ });
1310
+ }
1311
+ });
1312
+ const fg = this.fb.group(group);
1313
+ (_b = section === null || section === void 0 ? void 0 : section.sectionQuestionsList) === null || _b === void 0 ? void 0 : _b.forEach(sq => {
1314
+ var _a, _b;
1315
+ const qId = sq.questionId;
1316
+ if (!qId || !this.questionBank[qId])
1317
+ return;
1318
+ const question = this.questionBank[qId];
1319
+ if ((_a = question.defaultOptionsList) === null || _a === void 0 ? void 0 : _a.length) {
1320
+ (_b = fg.get(qId.toString())) === null || _b === void 0 ? void 0 : _b.valueChanges.subscribe(val => {
1321
+ var _a;
1322
+ (_a = question.defaultOptionsList) === null || _a === void 0 ? void 0 : _a.forEach((option) => {
1323
+ var _a, _b;
1324
+ const isSelected = this.isOptionSelected(fg, question, (_a = option.options) === null || _a === void 0 ? void 0 : _a.id);
1325
+ if (option.remarksRequired) {
1326
+ const remarkCtrl = fg.get(`${qId}_remarks_${option.id}`);
1327
+ if (isSelected) {
1328
+ remarkCtrl === null || remarkCtrl === void 0 ? void 0 : remarkCtrl.setValidators([Validators.required]);
1329
+ }
1330
+ else {
1331
+ remarkCtrl === null || remarkCtrl === void 0 ? void 0 : remarkCtrl.clearValidators();
1332
+ remarkCtrl === null || remarkCtrl === void 0 ? void 0 : remarkCtrl.setValue(null);
1333
+ }
1334
+ remarkCtrl === null || remarkCtrl === void 0 ? void 0 : remarkCtrl.updateValueAndValidity();
1335
+ }
1336
+ if ((_b = option.childQuestionList) === null || _b === void 0 ? void 0 : _b.length) {
1337
+ option.childQuestionList.forEach((childId) => {
1338
+ const childQues = this.questionBank[childId];
1339
+ if (childQues === null || childQues === void 0 ? void 0 : childQues.id) {
1340
+ const childCtrl = fg.get(childQues.id.toString());
1341
+ if (isSelected) {
1342
+ const validators = this.getValidatorsForQuestion(childQues, childQues.isMandatory || false);
1343
+ childCtrl === null || childCtrl === void 0 ? void 0 : childCtrl.setValidators(validators);
1344
+ }
1345
+ else {
1346
+ childCtrl === null || childCtrl === void 0 ? void 0 : childCtrl.clearValidators();
1347
+ childCtrl === null || childCtrl === void 0 ? void 0 : childCtrl.setValue(null);
1348
+ }
1349
+ childCtrl === null || childCtrl === void 0 ? void 0 : childCtrl.updateValueAndValidity();
1350
+ }
1351
+ });
1352
+ }
1353
+ });
1354
+ });
1355
+ }
1356
+ });
1357
+ this.sectionFormGroups.push({
1358
+ sectionId: section.id,
1359
+ formGroup: fg
1360
+ });
1361
+ this.sectionErrors.push(false);
1362
+ });
1363
+ }
1364
+ addControlForQuestion(group, question, isMandatory = false, isChild = false, parentId, parentOptionId) {
1365
+ var _a, _b;
1366
+ const qId = question.id;
1367
+ if (!qId)
1368
+ return;
1369
+ const validators = this.getValidatorsForQuestion(question, isMandatory);
1370
+ let prefilledValue = this.getPrefilledAnswer(qId, isChild, parentId, parentOptionId);
1371
+ const control = new FormControl(prefilledValue, validators);
1372
+ // Disable if assessment is completed
1373
+ if (((_b = (_a = this.assesseeResponse) === null || _a === void 0 ? void 0 : _a.assessmentTaken) === null || _b === void 0 ? void 0 : _b.code) === 'ASSESSMENT_TAKEN.COMPLETED' || this.disabled) {
1374
+ control.disable();
1375
+ }
1376
+ group[qId] = control;
1377
+ // Attach mark assignment control if required
1378
+ if (this.enableMarks && this.shouldShowMarksDropdown(question)) {
1379
+ let markValue = this.getPrefilledMark(qId, isChild, parentId, parentOptionId);
1380
+ group[`${qId}_marks`] = new FormControl(markValue);
1381
+ }
1382
+ }
1383
+ getPrefilledMark(qId, isChild = false, parentId, parentOptionId) {
1384
+ var _a, _b;
1385
+ if (!((_a = this.assesseeResponse) === null || _a === void 0 ? void 0 : _a.aiadefaultResponseList))
1386
+ return null;
1387
+ const answerObj = this.assesseeResponse.aiadefaultResponseList.find((a) => {
1388
+ var _a;
1389
+ if (isChild) {
1390
+ return a.childQuestionId === qId && a.childQuestionParentQuestionId === parentId && a.childDefaultOptionId === parentOptionId;
1391
+ }
1392
+ else {
1393
+ return ((_a = a.sectionQuestion) === null || _a === void 0 ? void 0 : _a.questionId) === qId && (!a.childQuestionId || a.childQuestionId === 0);
1394
+ }
1395
+ });
1396
+ return (_b = answerObj === null || answerObj === void 0 ? void 0 : answerObj.marks) !== null && _b !== void 0 ? _b : null;
1397
+ }
1398
+ getQuestionWeight(qId) {
1399
+ var _a;
1400
+ return ((_a = this.questionBank[qId]) === null || _a === void 0 ? void 0 : _a.weight) || 0;
1401
+ }
1402
+ getMarksRange(qId) {
1403
+ const max = this.getQuestionWeight(qId);
1404
+ if (max === 0)
1405
+ return [];
1406
+ return Array.from({ length: Math.floor(max) + 1 }, (_, i) => i);
1407
+ }
1408
+ shouldShowMarksDropdown(question) {
1409
+ var _a;
1410
+ const autoAssignedTypes = [
1411
+ 'QUESTION_TYPE.OBJECTIVE',
1412
+ 'QUESTION_TYPE.MULTI_SELECT',
1413
+ 'QUESTION_TYPE.SCALE_RATING',
1414
+ 'QUESTION_TYPE.CONSENT',
1415
+ 'QUESTION_TYPE.MULTISELECT_HIERARCHY',
1416
+ 'QUESTION_TYPE.MULTISELECT_OPTION_RICHTEXT_REMARKS',
1417
+ 'QUESTION_TYPE.PREFERENCE'
1418
+ ];
1419
+ const hasWeight = this.getQuestionWeight(question.id || 0) > 0;
1420
+ return !autoAssignedTypes.includes(((_a = question.questionType) === null || _a === void 0 ? void 0 : _a.code) || '') && hasWeight;
1421
+ }
1422
+ getPrefilledAnswer(qId, isChild = false, parentId, parentOptionId) {
1423
+ var _a, _b, _c, _d, _e, _f, _g;
1424
+ if (!((_a = this.assesseeResponse) === null || _a === void 0 ? void 0 : _a.aiadefaultResponseList))
1425
+ return null;
1426
+ const answerObj = this.assesseeResponse.aiadefaultResponseList.find((a) => {
1427
+ var _a;
1428
+ if (isChild) {
1429
+ return a.childQuestionId === qId && a.childQuestionParentQuestionId === parentId && a.childDefaultOptionId === parentOptionId;
1430
+ }
1431
+ else {
1432
+ return ((_a = a.sectionQuestion) === null || _a === void 0 ? void 0 : _a.questionId) === qId && (!a.childQuestionId || a.childQuestionId === 0);
1433
+ }
1434
+ });
1435
+ if (!answerObj)
1436
+ return null;
1437
+ const question = this.questionBank[qId];
1438
+ if (!question)
1439
+ return null;
1440
+ const qType = (_b = question.questionType) === null || _b === void 0 ? void 0 : _b.code;
1441
+ if (qType === 'QUESTION_TYPE.OBJECTIVE') {
1442
+ return (_c = answerObj.optionId) === null || _c === void 0 ? void 0 : _c.id;
1443
+ }
1444
+ else if (qType === 'QUESTION_TYPE.MULTI_SELECT' || qType === 'QUESTION_TYPE.PREFERENCE') {
1445
+ let sortedList = [...(answerObj.drobjectiveresponseList || [])];
1446
+ if (qType === 'QUESTION_TYPE.PREFERENCE') {
1447
+ sortedList.sort((a, b) => (a.orderNo || 0) - (b.orderNo || 0));
1448
+ }
1449
+ return sortedList.map((r) => { var _a; return (_a = r.defaultOption) === null || _a === void 0 ? void 0 : _a.options; }) || [];
1450
+ }
1451
+ else if (qType === 'QUESTION_TYPE.FILE_UPLOAD') {
1452
+ // Fallback parsing if we only have responseText
1453
+ return ((_d = answerObj.drsubjectiveresponseList) === null || _d === void 0 ? void 0 : _d.map((r) => {
1454
+ try {
1455
+ return JSON.parse(r.responseText);
1456
+ }
1457
+ catch (e) {
1458
+ return { id: r.responseText }; // basic fallback
1459
+ }
1460
+ })) || [];
1461
+ }
1462
+ else {
1463
+ return (_g = (_f = (_e = answerObj.drsubjectiveresponseList) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.responseText) !== null && _g !== void 0 ? _g : null;
1464
+ }
1465
+ }
1466
+ getValidatorsForQuestion(question, isMandatory) {
1467
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
1468
+ const validators = [];
1469
+ if (isMandatory) {
1470
+ validators.push(Validators.required);
1471
+ }
1472
+ if (question.responseValidation) {
1473
+ validators.push(Validators.pattern(question.responseValidation));
1474
+ }
1475
+ else {
1476
+ if (((_a = question.questionType) === null || _a === void 0 ? void 0 : _a.code) === 'QUESTION_TYPE.EMAIL') {
1477
+ validators.push(Validators.pattern(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/));
1478
+ }
1479
+ else if (((_b = question.questionType) === null || _b === void 0 ? void 0 : _b.code) === 'QUESTION_TYPE.URL') {
1480
+ validators.push(Validators.pattern(/^(https?:\/\/)?([\w\-]+(\.[\w\-]+)+)([\/?#].*)?$/i));
1481
+ }
1482
+ else if (((_c = question.questionType) === null || _c === void 0 ? void 0 : _c.code) === 'QUESTION_TYPE.CONTACT_NUMBER') {
1483
+ validators.push(Validators.pattern(/^[0-9]{10}$/));
1484
+ }
1485
+ else if (((_d = question.questionType) === null || _d === void 0 ? void 0 : _d.code) === 'QUESTION_TYPE.NUMBER') {
1486
+ validators.push(Validators.pattern(/^[0-9]+$/));
1487
+ }
1488
+ }
1489
+ if (question.questionConfigs && question.questionConfigs.length > 0) {
1490
+ const minChar = (_e = question.questionConfigs.find(c => c.configKey === 'minCharacterCount')) === null || _e === void 0 ? void 0 : _e.configValue;
1491
+ if (minChar)
1492
+ validators.push(Validators.minLength(Number(minChar)));
1493
+ const maxChar = (_f = question.questionConfigs.find(c => c.configKey === 'maxCharacterCount')) === null || _f === void 0 ? void 0 : _f.configValue;
1494
+ if (maxChar)
1495
+ validators.push(Validators.maxLength(Number(maxChar)));
1496
+ const minOpt = (_g = question.questionConfigs.find(c => c.configKey === 'minimumNumberOfOption')) === null || _g === void 0 ? void 0 : _g.configValue;
1497
+ if (minOpt) {
1498
+ validators.push((control) => {
1499
+ var _a;
1500
+ if (!control.value || control.value.length < Number(minOpt)) {
1501
+ return { minOptions: { required: Number(minOpt), actual: ((_a = control.value) === null || _a === void 0 ? void 0 : _a.length) || 0 } };
1502
+ }
1503
+ return null;
1504
+ });
1505
+ }
1506
+ const maxOpt = (_h = question.questionConfigs.find(c => c.configKey === 'maximumNumberOfOption')) === null || _h === void 0 ? void 0 : _h.configValue;
1507
+ if (maxOpt) {
1508
+ validators.push((control) => {
1509
+ var _a;
1510
+ if (control.value && control.value.length > Number(maxOpt)) {
1511
+ return { maxOptions: { required: Number(maxOpt), actual: ((_a = control.value) === null || _a === void 0 ? void 0 : _a.length) || 0 } };
1512
+ }
1513
+ return null;
1514
+ });
1515
+ }
1516
+ const maxFiles = (_j = question.questionConfigs.find(c => c.configKey === 'maxNoOfFiles')) === null || _j === void 0 ? void 0 : _j.configValue;
1517
+ if (maxFiles) {
1518
+ validators.push((control) => {
1519
+ var _a;
1520
+ if (control.value && control.value.length > Number(maxFiles)) {
1521
+ return { maxFiles: { required: Number(maxFiles), actual: ((_a = control.value) === null || _a === void 0 ? void 0 : _a.length) || 0 } };
1522
+ }
1523
+ return null;
1524
+ });
1525
+ }
1526
+ const maxFileSize = (_k = question.questionConfigs.find(c => c.configKey === 'maxFileSize')) === null || _k === void 0 ? void 0 : _k.configValue;
1527
+ if (maxFileSize) {
1528
+ validators.push((control) => {
1529
+ if (control.value && Array.isArray(control.value)) {
1530
+ const hasLargeFile = control.value.some((file) => (file === null || file === void 0 ? void 0 : file.size) && file.size > (Number(maxFileSize) * 1024 * 1024));
1531
+ if (hasLargeFile) {
1532
+ return { maxFileSize: { requiredSize: Number(maxFileSize) } };
1533
+ }
1534
+ }
1535
+ return null;
1536
+ });
1537
+ }
1538
+ }
1539
+ return validators;
1540
+ }
1541
+ imageErrorHandler(event, filePath) {
1542
+ event.target.src = filePath;
1543
+ }
1544
+ isOptionSelected(formGroup, question, optionId) {
1545
+ var _a;
1546
+ if (!optionId)
1547
+ return false;
1548
+ let controlName = (_a = question.id) === null || _a === void 0 ? void 0 : _a.toString();
1549
+ if (!controlName)
1550
+ return false;
1551
+ const control = formGroup.get(controlName);
1552
+ if (!control || control.value == null)
1553
+ return false;
1554
+ // Multi-select deals with an array of values
1555
+ if (Array.isArray(control.value)) {
1556
+ return control.value.includes(optionId) || control.value.some((val) => (val === null || val === void 0 ? void 0 : val.id) === optionId);
1557
+ }
1558
+ // Objective / Single select deals with a single value (could be integer ID or object)
1559
+ if (typeof control.value === 'object' && control.value.id) {
1560
+ return control.value.id === optionId;
1561
+ }
1562
+ return control.value === optionId;
1563
+ }
1564
+ getMaxCharCount(question) {
1565
+ var _a;
1566
+ const config = (_a = question === null || question === void 0 ? void 0 : question.questionConfigs) === null || _a === void 0 ? void 0 : _a.find(c => c.configKey === 'maxCharacterCount');
1567
+ return config ? Number(config.configValue) : 0;
1568
+ }
1569
+ getRemainingChars(question, control) {
1570
+ const max = this.getMaxCharCount(question);
1571
+ const currentLength = control.value ? control.value.length : 0;
1572
+ return max - currentLength;
1573
+ }
1574
+ goBack() {
1575
+ if (this.selectedTabIndex > 0) {
1576
+ this.selectedTabIndex--;
1577
+ }
1578
+ }
1579
+ shouldDisableTab(index) {
1580
+ var _a, _b;
1581
+ for (let j = 0; j < index; j++) {
1582
+ if ((_b = (_a = this.sectionFormGroups[j]) === null || _a === void 0 ? void 0 : _a.formGroup) === null || _b === void 0 ? void 0 : _b.invalid) {
1583
+ return true;
1584
+ }
1585
+ }
1586
+ return false;
1587
+ }
1588
+ goNext(markAsCompleted = true) {
1589
+ var _a, _b, _c;
1590
+ const save = ((_c = (_b = (_a = this.assessmentData) === null || _a === void 0 ? void 0 : _a.assessmentConfigs) === null || _b === void 0 ? void 0 : _b.find(c => c.configKey == 'assesment.config.allowed-partial-response')) === null || _c === void 0 ? void 0 : _c.configValue) == '1';
1591
+ const currentSection = this.sectionFormGroups[this.selectedTabIndex];
1592
+ if (!currentSection)
1593
+ return;
1594
+ currentSection.formGroup.markAllAsTouched();
1595
+ if (currentSection.formGroup.invalid) {
1596
+ this.sectionErrors[this.selectedTabIndex] = true;
1597
+ return;
1598
+ }
1599
+ this.sectionErrors[this.selectedTabIndex] = false;
1600
+ if (this.selectedTabIndex < this.sectionFormGroups.length - 1) {
1601
+ save ? this.save() : this.selectedTabIndex++;
1602
+ }
1603
+ else {
1604
+ this.processSubmit(markAsCompleted);
1605
+ }
1606
+ }
1607
+ processSubmit(markAsCompleted = true) {
1608
+ let firstInvalidIndex = -1;
1609
+ this.sectionFormGroups.forEach((group, index) => {
1610
+ group.formGroup.markAllAsTouched();
1611
+ if (group.formGroup.invalid) {
1612
+ this.sectionErrors[index] = true;
1613
+ if (firstInvalidIndex === -1)
1614
+ firstInvalidIndex = index;
1615
+ }
1616
+ else {
1617
+ this.sectionErrors[index] = false;
1618
+ }
1619
+ });
1620
+ if (firstInvalidIndex !== -1) {
1621
+ if (!this.verticalView) {
1622
+ this.selectedTabIndex = firstInvalidIndex;
1623
+ }
1624
+ else {
1625
+ this.expandedState[firstInvalidIndex] = true;
1626
+ }
1627
+ this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.FIX_ERRORS'], type: 'error' });
1628
+ this.scrollToFirstInvalidField(firstInvalidIndex);
1629
+ return;
1630
+ }
1631
+ this.save(true, markAsCompleted);
1632
+ }
1633
+ scrollToFirstInvalidField(sectionIndex) {
1634
+ setTimeout(() => {
1635
+ const formGroup = this.sectionFormGroups[sectionIndex].formGroup;
1636
+ for (const controlName in formGroup.controls) {
1637
+ if (formGroup.controls[controlName].invalid) {
1638
+ let qId = controlName;
1639
+ if (controlName.includes('_remarks_') || controlName.includes('_marks')) {
1640
+ qId = controlName.split('_')[0];
1641
+ }
1642
+ const element = document.getElementById(`question-container-${qId}`);
1643
+ if (element) {
1644
+ element.scrollIntoView({ behavior: 'smooth', block: 'center' });
1645
+ break;
1646
+ }
1647
+ }
1648
+ }
1649
+ }, 100);
1650
+ }
1651
+ save(goNext = true, markAsCompleted = true) {
1652
+ var _a;
1653
+ this.isSubmitting = true;
1654
+ if (markAsCompleted && this.selectedTabIndex == this.sectionFormGroups.length - 1) {
1655
+ this.assesseeResponse.assessmentTaken = { code: 'ASSESSMENT_TAKEN.COMPLETED' };
1656
+ }
1657
+ else {
1658
+ this.assesseeResponse.assessmentTaken = { code: 'ASSESSMENT_TAKEN.INCOMPLETE' };
1659
+ }
1660
+ const payload = this.responseBuilderService.buildResponsePayload(this.assesseeResponse, this.assessmentQuestionPaperData, this.sectionFormGroups, this.questionBank, this.tenantId);
1661
+ const apiCall = ((_a = this.assesseeResponse) === null || _a === void 0 ? void 0 : _a.id) ? this.assessmentTakerService.patchAssessment(payload) : this.assessmentTakerService.submitAssessment(payload);
1662
+ apiCall.subscribe({
1663
+ next: (res) => {
1664
+ var _a, _b;
1665
+ if (!((_a = this.assesseeResponse) === null || _a === void 0 ? void 0 : _a.id)) {
1666
+ this.getAnswersByAiaId(res);
1667
+ }
1668
+ else {
1669
+ this.assesseeResponse = res;
1670
+ }
1671
+ this.isSubmitting = false;
1672
+ this.submitAssessment.emit({ assesseeId: ((_b = res === null || res === void 0 ? void 0 : res.assessee) === null || _b === void 0 ? void 0 : _b.id) || res, completed: goNext && (this.selectedTabIndex == this.sectionFormGroups.length - 1 || this.verticalView) });
1673
+ if (goNext && this.selectedTabIndex < this.sectionFormGroups.length - 1) {
1674
+ this.selectedTabIndex++;
1675
+ }
1676
+ },
1677
+ error: error => {
1678
+ var _a;
1679
+ this.isSubmitting = false;
1680
+ this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.SAVE_FAILED'], type: 'error' });
1681
+ throw { error, method: ((_a = this.assesseeResponse) === null || _a === void 0 ? void 0 : _a.id) ? 'PATCH' : 'POST', payload };
1682
+ }
1683
+ });
1684
+ }
1685
+ getAnswersByAiaId(assesseeId) {
1686
+ this.assessmentTakerService.getAnswersByAiaId(assesseeId).subscribe({
1687
+ next: (res) => {
1688
+ this.assesseeResponse = res;
1689
+ },
1690
+ error: error => {
1691
+ this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.GET_FAILED'], type: 'error' });
1692
+ throw { error, method: 'GET' };
1693
+ }
1694
+ });
1695
+ }
1696
+ addYoutubeIframeSrc(videoUrl) {
1697
+ const videoId = this.getVideoId(videoUrl);
1698
+ const youtubeUrl = `https://www.youtube.com/embed/${videoId}`;
1699
+ return this.sanitizer.bypassSecurityTrustResourceUrl(youtubeUrl);
1700
+ }
1701
+ getVideoId(videoUrl) {
1702
+ let pattern = null;
1703
+ if (videoUrl.includes('youtube.com')) {
1704
+ pattern = /(?:\?v=|&v=|youtu\.be\/|\/embed\/|\/\d\/|\/vi\/|\/v\/|https?:\/\/(?:www\.)?youtube\.com\/(?:v\/|embed\/|watch\?(?:\S+&)?v=|watch\?(?:\S+&)?vi=|\S+\/))([a-zA-Z0-9_-]{11})/;
1705
+ }
1706
+ else if (videoUrl.includes('youtu.be')) {
1707
+ pattern = /youtu\.be\/([a-zA-Z0-9_-]{11})/;
1708
+ }
1709
+ if (pattern) {
1710
+ const match = videoUrl.match(pattern);
1711
+ if (match && match[1]) {
1712
+ return match[1];
1713
+ }
1714
+ }
1715
+ return null;
1716
+ }
1717
+ openInstructionsDialog(section) {
1718
+ this.dialog.open(SectionInstructionsComponent, {
1719
+ autoFocus: false,
1720
+ maxWidth: '95%',
1721
+ width: 'calc(20rem + 500px)',
1722
+ maxHeight: '95dvh',
1723
+ panelClass: ['assessment-dialog'],
1724
+ data: {
1725
+ imageConfig: this.imageConfig,
1726
+ labelConfig: this.labelConfig,
1727
+ sectionDetails: section
1728
+ },
1729
+ });
1730
+ }
1731
+ }
1732
+ AssessmentTakerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentTakerComponent, deps: [{ token: AssessmentTakerService }, { token: i1$2.FormBuilder }, { token: ResponseBuilderService }, { token: i2.DomSanitizer }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
1733
+ AssessmentTakerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AssessmentTakerComponent, selector: "lib-assessment-taker", inputs: { labelConfig: "labelConfig", imageConfig: "imageConfig", showFooter: "showFooter", assessmentId: "assessmentId", assessmentInstanceId: "assessmentInstanceId", assesseeData: "assesseeData", assessorData: "assessorData", disabled: "disabled", previewMode: "previewMode", verticalView: "verticalView", enableMarks: "enableMarks" }, outputs: { snackbarMessage: "snackbarMessage", submitAssessment: "submitAssessment" }, ngImport: i0, template: "<div *ngIf=\"configsLoaded && !showLoader; else loader\" class=\"col-12 h-100\">\r\n <div class=\"col-12 h-100 py-4\" [class.height-without-footer]=\"showFooter\">\r\n <ng-container *ngIf=\"assessmentQuestionPaperData?.questionPaperSectionList?.length\">\r\n <mat-tab-group *ngIf=\"!verticalView\" animationDuration=\"0ms\" class=\"assessment-mat-custom-tabs\"\r\n [(selectedIndex)]=\"selectedTabIndex\">\r\n <mat-tab\r\n *ngFor=\"let section of assessmentQuestionPaperData.questionPaperSectionList | orderBy; let i = index\"\r\n [disabled]=\"shouldDisableTab(i)\">\r\n <ng-template mat-tab-label>\r\n <span class=\"assessment-text-semibold-16\"\r\n [ngClass]=\"sectionErrors[i] ? 'assessment-text-danger' : ''\">{{section.qpsName?.[0]?.text}}</span>\r\n </ng-template>\r\n <div class=\"mt-4\">\r\n <ng-container\r\n *ngTemplateOutlet=\"sectionContent; context: { section: section, i: i }\"></ng-container>\r\n </div>\r\n </mat-tab>\r\n </mat-tab-group>\r\n\r\n <mat-accordion *ngIf=\"verticalView\" multi=\"true\" class=\"d-flex flex-column gap-4 mb-4\">\r\n <mat-expansion-panel\r\n *ngFor=\"let section of assessmentQuestionPaperData.questionPaperSectionList | orderBy; let i = index\"\r\n [expanded]=\"expandedState[i] !== false\" (opened)=\"expandedState[i] = true\"\r\n (closed)=\"expandedState[i] = false\"\r\n class=\"assessment-border-radius-two shadow-none m-0 assessment-panel\">\r\n <mat-expansion-panel-header class=\"assessment-bg-grey-two h-auto py-3 bg-transparent\">\r\n <mat-panel-title>\r\n <span class=\"assessment-text-semibold-16\"\r\n [ngClass]=\"sectionErrors[i] ? 'assessment-text-danger' : ''\">{{section.qpsName?.[0]?.text}}</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div class=\"mt-4 px-md-3\">\r\n <ng-container\r\n *ngTemplateOutlet=\"sectionContent; context: { section: section, i: i }\"></ng-container>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </ng-container>\r\n\r\n <div *ngIf=\"!assessmentQuestionPaperData?.questionPaperSectionList?.length\"\r\n class=\"h-100 d-flex flex-column align-items-center justify-content-center gap-3\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.NO_QUESTIONS']\" class=\"col-sm-auto col-6\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/no-questions.svg')\" />\r\n <div class=\"text-center\">\r\n <p class=\"mb-1 assessment-text-medium-18\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.NO_QUESTIONS']}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showFooter\"\r\n class=\"bg-white p-3 position-sticky bottom-0 d-flex align-items-center justify-content-end border-top gap-3 z-index-1\">\r\n <button\r\n class=\"assessment-zoom-animation assessment-border-radius-two assessment-button-padding-large assessment-btn-primary-transparent assessment-text-semibold-13\"\r\n (click)=\"goBack()\" *ngIf=\"selectedTabIndex > 0 && !verticalView\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.GO_BACK']}}</button>\r\n <button [disabled]=\"isSubmitting\" (click)=\"verticalView ? processSubmit(true) : goNext()\"\r\n class=\"assessment-zoom-animation assessment-border-radius-two assessment-button-padding-large assessment-btn-primary assessment-text-semibold-13 position-relative\">\r\n <span [ngClass]=\"{'opacity-0': isSubmitting}\">\r\n {{ (verticalView || selectedTabIndex === sectionFormGroups.length - 1) ?\r\n labelConfig['COMMONS_ASSESSMENT.LABEL.SUBMIT'] : labelConfig['COMMONS_ASSESSMENT.LABEL.NEXT'] }}\r\n </span>\r\n <mat-spinner *ngIf=\"isSubmitting\" [diameter]=\"20\"\r\n class=\"position-absolute top-50 start-50 translate-middle assessment-spinner-white\"></mat-spinner>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #loader>\r\n <div class=\"h-100 col-12 d-flex align-items-center justify-content-center py-5\">\r\n <mat-spinner diameter=\"60\" class=\"assessment-spinner-primary\"></mat-spinner>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Recursive Template for Questions & Child Questions -->\r\n<ng-template #questionTemplate let-questionId=\"questionId\" let-isMandatory=\"isMandatory\" let-groupIndex=\"groupIndex\"\r\n let-parentOptionId=\"parentOptionId\" let-questionIndex=\"questionIndex\">\r\n <div [formGroup]=\"sectionFormGroups[groupIndex].formGroup\" [id]=\"'question-container-' + questionId\">\r\n <div class=\"assessment-border-radius-two mb-3\" [ngClass]=\"parentOptionId? '' : 'p-3 assessment-card-border'\"\r\n *ngIf=\"questionBank[questionId] as question\">\r\n <div\r\n class=\"d-flex flex-column flex-md-row justify-content-between gap-2 gap-md-3 align-items-md-start mb-3\">\r\n <div class=\"d-flex gap-md-3 gap-2 align-items-start flex-grow-1\">\r\n <div class=\"flex-grow-1\">\r\n <p class=\"assessment-text-medium-15 mb-0 d-flex gap-1 gap-md-2\">\r\n {{questionIndex + 1}}.\r\n <span [innerHtml]=\"question.questionText?.[0]?.text\"></span>\r\n </p>\r\n <div class=\"mt-3 col-12\" *ngIf=\"question?.mediaUrl\">\r\n <ng-container\r\n *ngTemplateOutlet=\"VideoTemplate; context:{videoUrl:question?.mediaUrl}\"></ng-container>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"question.hintText && !previewMode\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.INFO']\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/info.svg')\"\r\n cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\"\r\n (mouseenter)=\"tooltipState[question.id!] = true\"\r\n (mouseleave)=\"tooltipState[question.id!] = false\" class=\"cursor-pointer\" />\r\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"tooltipState[question.id!] || false\"\r\n [cdkConnectedOverlayPositions]=\"[{ originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center', offsetX: -8, offsetY: 0 }, { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center', offsetX: 8, offsetY: 0 }]\">\r\n <div class=\"assessment-bg-grey-two assessment-tooltip-border p-3 assessment-border-radius-two assessment-box-shadow-tooltip question-info assessment-text-regular-13\"\r\n (mouseenter)=\"tooltipState[question.id!] = true\"\r\n (mouseleave)=\"tooltipState[question.id!] = false\" [innerHTML]=\"question.hintText\">\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Assessor Marks Dropdown Logic -->\r\n <ng-container\r\n *ngIf=\"enableMarks && shouldShowMarksDropdown(question) && sectionFormGroups[groupIndex].formGroup.get(question.id + '_marks')\">\r\n <mat-form-field appearance=\"outline\"\r\n class=\"mb-0 assessment-marks-dropdown assessment-text-medium-12\">\r\n <mat-label\r\n class=\"assessment-text-medium-12\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.MARKS']}}</mat-label>\r\n <mat-select [formControlName]=\"question.id + '_marks'\">\r\n <mat-option class=\"assessment-text-medium-12\"\r\n *ngFor=\"let mark of getMarksRange(question.id!)\" [value]=\"mark\">\r\n {{mark}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container [ngSwitch]=\"question.questionType?.code\">\r\n\r\n <div class=\"col-12\" *ngSwitchCase=\"'QUESTION_TYPE.SUBJECTIVE_SHORT'\">\r\n <lib-question-type-short [question]=\"question\" [formControlName]=\"question.id!\"\r\n [required]=\"isMandatory\" [previewMode]=\"previewMode\"\r\n [labelConfig]=\"labelConfig\"></lib-question-type-short>\r\n </div>\r\n\r\n <div class=\"col-12\" *ngSwitchCase=\"'QUESTION_TYPE.SUBJECTIVE_LONG'\">\r\n <lib-question-type-long [question]=\"question\" [formControlName]=\"question.id!\"\r\n [required]=\"isMandatory\" [previewMode]=\"previewMode\"\r\n [labelConfig]=\"labelConfig\"></lib-question-type-long>\r\n </div>\r\n\r\n <div class=\"col-12\" *ngSwitchCase=\"'QUESTION_TYPE.SUBJECTIVE_RICH_TEXT'\">\r\n <lib-question-type-editor [question]=\"question\" [formControlName]=\"question.id!\"\r\n [required]=\"isMandatory\" [previewMode]=\"previewMode\"\r\n [labelConfig]=\"labelConfig\"></lib-question-type-editor>\r\n </div>\r\n\r\n <div class=\"col-12\" *ngSwitchCase=\"'QUESTION_TYPE.OBJECTIVE'\">\r\n <lib-question-type-objective [question]=\"question\" [formControlName]=\"question.id!\"\r\n [required]=\"isMandatory\"></lib-question-type-objective>\r\n </div>\r\n\r\n <div class=\"col-12\" *ngSwitchCase=\"'QUESTION_TYPE.MULTI_SELECT'\">\r\n <lib-question-type-multiselect [question]=\"question\" [formControlName]=\"question.id!\"\r\n [required]=\"isMandatory\"></lib-question-type-multiselect>\r\n </div>\r\n\r\n <div class=\"col-12\" *ngSwitchCase=\"'QUESTION_TYPE.PREFERENCE'\">\r\n <lib-question-type-preference [question]=\"question\" [formControlName]=\"question.id!\"\r\n [required]=\"isMandatory\"></lib-question-type-preference>\r\n </div>\r\n\r\n <div class=\"col-12\" *ngSwitchCase=\"'QUESTION_TYPE.NUMBER'\">\r\n <lib-question-type-short [question]=\"question\" [formControlName]=\"question.id!\"\r\n [required]=\"isMandatory\" [previewMode]=\"previewMode\"\r\n [labelConfig]=\"labelConfig\"></lib-question-type-short>\r\n </div>\r\n\r\n <div class=\"col-12\" *ngSwitchCase=\"'QUESTION_TYPE.EMAIL'\">\r\n <lib-question-type-short [question]=\"question\" [formControlName]=\"question.id!\"\r\n [required]=\"isMandatory\" [previewMode]=\"previewMode\"\r\n [labelConfig]=\"labelConfig\"></lib-question-type-short>\r\n </div>\r\n\r\n <div class=\"col-12\" *ngSwitchCase=\"'QUESTION_TYPE.CONTACT_NUMBER'\">\r\n <lib-question-type-short [question]=\"question\" [formControlName]=\"question.id!\"\r\n [required]=\"isMandatory\" [previewMode]=\"previewMode\"\r\n [labelConfig]=\"labelConfig\"></lib-question-type-short>\r\n </div>\r\n\r\n <div class=\"col-12\" *ngSwitchCase=\"'QUESTION_TYPE.URL'\">\r\n <lib-question-type-short [question]=\"question\" [formControlName]=\"question.id!\"\r\n [required]=\"isMandatory\" [previewMode]=\"previewMode\"\r\n [labelConfig]=\"labelConfig\"></lib-question-type-short>\r\n </div>\r\n\r\n <div class=\"col-12\" *ngSwitchCase=\"'QUESTION_TYPE.FILE_UPLOAD'\">\r\n <lib-question-type-file-upload [question]=\"question\" [formControlName]=\"question.id!\"\r\n [required]=\"isMandatory\" [labelConfig]=\"labelConfig\"\r\n [imageConfig]=\"imageConfig\"></lib-question-type-file-upload>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Error Messages and Character Count Container -->\r\n <ng-container *ngIf=\"sectionFormGroups[groupIndex].formGroup.get(question.id?.toString() || '') as control\">\r\n <div class=\"d-flex justify-content-between align-items-start mt-1\">\r\n <span>\r\n <mat-error class=\"assessment-text-regular-12 assessment-text-danger\"\r\n *ngIf=\"control.touched && control.errors?.['required']\">\r\n {{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED_RESPONSE']}}\r\n </mat-error>\r\n\r\n <mat-error class=\"assessment-text-regular-12 assessment-text-danger mt-1\"\r\n *ngIf=\"control.touched && control.errors?.['pattern']\">\r\n {{question?.validationMessage || labelConfig['COMMONS_ASSESSMENT.ERROR.INVALID_FORMAT']}}\r\n </mat-error>\r\n\r\n <mat-error class=\"assessment-text-regular-12 assessment-text-danger mt-1\"\r\n *ngIf=\"control.touched && control.errors?.['minlength']\">\r\n {{labelConfig['COMMONS_ASSESSMENT.ERROR.MIN_CHARS']?.replace('{{length}}',\r\n control.errors?.['minlength'].requiredLength + '')}}\r\n </mat-error>\r\n\r\n <mat-error class=\"assessment-text-regular-12 assessment-text-danger mt-1\"\r\n *ngIf=\"control.touched && control.errors?.['maxlength']\">\r\n {{labelConfig['COMMONS_ASSESSMENT.ERROR.MAX_CHARS']?.replace('{{length}}',\r\n control.errors?.['maxlength'].requiredLength + '')}}\r\n </mat-error>\r\n\r\n <mat-error class=\"assessment-text-regular-12 assessment-text-danger mt-1\"\r\n *ngIf=\"control.touched && control.errors?.['minOptions']\">\r\n {{labelConfig['COMMONS_ASSESSMENT.ERROR.MIN_OPTIONS']?.replace('{{count}}',\r\n control.errors?.['minOptions'].required + '')}}\r\n </mat-error>\r\n\r\n <mat-error class=\"assessment-text-regular-12 assessment-text-danger mt-1\"\r\n *ngIf=\"control.touched && control.errors?.['maxOptions']\">\r\n {{labelConfig['COMMONS_ASSESSMENT.ERROR.MAX_OPTIONS']?.replace('{{count}}',\r\n control.errors?.['maxOptions'].required + '')}}\r\n </mat-error>\r\n\r\n <mat-error class=\"assessment-text-regular-12 assessment-text-danger mt-1\"\r\n *ngIf=\"control.touched && control.errors?.['maxFiles']\">\r\n {{labelConfig['COMMONS_ASSESSMENT.ERROR.MAX_FILES']?.replace('{{count}}',\r\n control.errors?.['maxFiles'].required + '')}}\r\n </mat-error>\r\n\r\n <mat-error class=\"assessment-text-regular-12 assessment-text-danger mt-1\"\r\n *ngIf=\"control.touched && control.errors?.['maxFileSize']\">\r\n {{labelConfig['COMMONS_ASSESSMENT.ERROR.MAX_FILE_SIZE']?.replace('{{size}}',\r\n control.errors?.['maxFileSize'].requiredSize + '')}}\r\n </mat-error>\r\n </span>\r\n\r\n <div class=\"assessment-text-regular-12 assessment-text-grey-seven white-space-nowrap ms-2\"\r\n *ngIf=\"getMaxCharCount(question) > 0\">\r\n {{ getRemainingChars(question, control) }}\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.CHARACTER']}}{{getRemainingChars(question, control) !==\r\n 1\r\n ? 's' : ''}} {{labelConfig['COMMONS_ASSESSMENT.LABEL.REMAINING']}}\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n\r\n <!-- Child Questions and Remarks Rendering Logic based on checked form state -->\r\n <ng-container *ngIf=\"question.defaultOptionsList?.length\">\r\n <ng-container *ngFor=\"let option of question.defaultOptionsList\">\r\n\r\n <ng-container\r\n *ngIf=\"isOptionSelected(sectionFormGroups[groupIndex].formGroup, question, option.options?.id)\">\r\n\r\n <!-- REMARKS FIELD -->\r\n <div class=\"mt-3\"\r\n *ngIf=\"option.remarksRequired && sectionFormGroups[groupIndex].formGroup.get(question.id + '_remarks_' + option.id) as remarksControl\">\r\n <p class=\"assessment-text-regular-15 mb-2\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.REMARKS']}}</p>\r\n <textarea formControlName=\"{{question.id}}_remarks_{{option.id}}\" rows=\"2\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.REMARKS']\"\r\n [ngClass]=\"remarksControl.invalid && remarksControl.touched ? 'assessment-input-border-invalid' : ''\"\r\n class=\"col-12 assessment-text-regular-13 assessment-input-border-one assessment-border-radius-two assessment-input-padding outline-0 assessment-bg-grey-one\"></textarea>\r\n <mat-error class=\"assessment-text-regular-12 assessment-text-danger mt-1\"\r\n *ngIf=\"remarksControl.invalid && remarksControl.touched\">\r\n {{labelConfig['COMMONS_ASSESSMENT.ERROR.FIELD_REQUIRED']}}\r\n </mat-error>\r\n </div>\r\n\r\n <!-- CHILD QUESTIONS RECURSION -->\r\n <div class=\"col-12 mt-3\" *ngIf=\"option.childQuestionList?.length\">\r\n <ng-container *ngFor=\"let childId of option.childQuestionList; let childIndex = index\">\r\n <ng-container *ngTemplateOutlet=\"questionTemplate; context: {\r\n questionId: childId,\r\n isMandatory: questionBank[childId]?.isMandatory,\r\n groupIndex: groupIndex,\r\n parentOptionId: option.id,\r\n questionIndex: childIndex\r\n }\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Reusable Section Form Template -->\r\n<ng-template #sectionContent let-section=\"section\" let-i=\"i\">\r\n <form class=\"w-100\" [formGroup]=\"sectionFormGroups[i].formGroup\" [name]=\"'sectionfrm-' + i\" novalidate>\r\n <div class=\"d-flex justify-content-between align-items-center mb-4\">\r\n <span class=\"assessment-text-semibold-14 assessment-text-grey-ten\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.TOTAL_QUESTIONS']}}{{ section?.totalQuestions || 0 }}\r\n </span>\r\n <button (click)=\"openInstructionsDialog(section)\"\r\n *ngIf=\"!previewMode && (section?.qpsDesc?.[0]?.text || section?.mediaUrl)\"\r\n class=\"assessment-zoom-animation assessment-button-padding assessment-text-medium-13 assessment-btn-primary-transparent\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.VIEW_INSTRUCTIONS']}}\r\n </button>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let sq of section.sectionQuestionsList | orderBy; let j = index\">\r\n <ng-container *ngTemplateOutlet=\"questionTemplate; context: {\r\n questionId: sq.questionId,\r\n isMandatory: questionBank[sq.questionId]?.isMandatory,\r\n groupIndex: i,\r\n parentOptionId: null,\r\n questionIndex: j\r\n }\">\r\n </ng-container>\r\n </ng-container>\r\n </form>\r\n</ng-template>\r\n\r\n<!-- video preview -->\r\n<ng-template let-videoUrl=\"videoUrl\" #VideoTemplate>\r\n <div class=\"assessment-border-radius-two overflow-hidden col-md-10 col-12\">\r\n <video *ngIf=\"videoUrl?.includes('.mp4') else youtubeVideo\" width=\"400\" controls class=\"mw-100 d-block mx-auto\">\r\n <source [src]=\"videoUrl\" type=\"video/mp4\">\r\n </video>\r\n <ng-template #youtubeVideo>\r\n <div class=\"youtube-video position-relative h-100\">\r\n <iframe [src]=\"addYoutubeIframeSrc(videoUrl)\" title=\"YouTube video player\" frameborder=\"0\"\r\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\r\n allowfullscreen class=\"position-absolute top-0 start-0 w-100 h-100 d-block\">\r\n </iframe>\r\n </div>\r\n </ng-template>\r\n </div>\r\n</ng-template>", styles: [".assessment-text-grey-ten{color:var(--assessment-grey-ten)!important}.assessment-bg-grey-ten{background-color:var(--assessment-grey-ten)!important}.assessment-text-grey-nine{color:var(--assessment-grey-nine)!important}.assessment-bg-grey-nine{background-color:var(--assessment-grey-nine)!important}.assessment-text-grey-eight{color:var(--assessment-grey-eight)!important}.assessment-bg-grey-eight{background-color:var(--assessment-grey-eight)!important}.assessment-text-grey-seven{color:var(--assessment-grey-seven)!important}.assessment-bg-grey-seven{background-color:var(--assessment-grey-seven)!important}.assessment-text-grey-six{color:var(--assessment-grey-six)!important}.assessment-bg-grey-six{background-color:var(--assessment-grey-six)!important}.assessment-text-grey-five{color:var(--assessment-grey-five)!important}.assessment-bg-grey-five{background-color:var(--assessment-grey-five)!important}.assessment-text-grey-four{color:var(--assessment-grey-four)!important}.assessment-bg-grey-four{background-color:var(--assessment-grey-four)!important}.assessment-text-grey-three{color:var(--assessment-grey-three)!important}.assessment-bg-grey-three{background-color:var(--assessment-grey-three)!important}.assessment-text-grey-two{color:var(--assessment-grey-two)!important}.assessment-bg-grey-two{background-color:var(--assessment-grey-two)!important}.assessment-text-grey-one{color:var(--assessment-grey-one)!important}.assessment-bg-grey-one{background-color:var(--assessment-grey-one)!important}.assessment-text-white{color:var(--assessment-white)!important}.assessment-bg-white{background-color:var(--assessment-white)!important}.assessment-text-black{color:var(--assessment-black)!important}.assessment-bg-black{background-color:var(--assessment-black)!important}.assessment-text-danger{color:var(--assessment-danger)!important}.assessment-bg-danger{background-color:var(--assessment-danger)!important}.assessment-text-primary-one{color:var(--assessment-primary-one)!important}.assessment-bg-primary-one{background-color:var(--assessment-primary-one)!important}.assessment-text-primary-four{color:var(--assessment-primary-four)!important}.assessment-bg-primary-four{background-color:var(--assessment-primary-four)!important}.assessment-text-palette-EDF3FD{color:var(--assessment-palette-EDF3FD)!important}.assessment-bg-palette-EDF3FD{background-color:var(--assessment-palette-EDF3FD)!important}.assessment-text-palette-C8DAF9{color:var(--assessment-palette-C8DAF9)!important}.assessment-bg-palette-C8DAF9{background-color:var(--assessment-palette-C8DAF9)!important}.assessment-text-palette-ADC9F6{color:var(--assessment-palette-ADC9F6)!important}.assessment-bg-palette-ADC9F6{background-color:var(--assessment-palette-ADC9F6)!important}.assessment-text-palette-FEF9F1{color:var(--assessment-palette-FEF9F1)!important}.assessment-bg-palette-FEF9F1{background-color:var(--assessment-palette-FEF9F1)!important}.assessment-text-palette-F9DAA6{color:var(--assessment-palette-F9DAA6)!important}.assessment-bg-palette-F9DAA6{background-color:var(--assessment-palette-F9DAA6)!important}.assessment-text-palette-E8F7F0{color:var(--assessment-palette-E8F7F0)!important}.assessment-bg-palette-E8F7F0{background-color:var(--assessment-palette-E8F7F0)!important}.assessment-text-palette-B7E7CF{color:var(--assessment-palette-B7E7CF)!important}.assessment-bg-palette-B7E7CF{background-color:var(--assessment-palette-B7E7CF)!important}.assessment-box-shadow-one{box-shadow:var(--assessment-box-shadow-one)!important}.assessment-border-radius-one{border-radius:var(--assessment-border-radius-one)!important}.assessment-border-radius-two{border-radius:var(--assessment-border-radius-two)!important}.assessment-border-radius-three{border-radius:var(--assessment-border-radius-three)!important}.assessment-border-radius-four{border-radius:var(--assessment-border-radius-four)!important}.assessment-border-radius-five{border-radius:var(--assessment-border-radius-five)!important}.assessment-border-radius-six{border-radius:var(--assessment-border-radius-six)!important}.assessment-input-border-one{border:var(--assessment-input-border-one)!important}.assessment-input-border-invalid{border:var(--assessment-input-border-invalid)!important}.assessment-input-focus-border{border:var(--assessment-input-focus-border)!important}.assessment-border-two{border:var(--assessment-border-two)!important}.assessment-card-border{border:var(--assessment-card-border)!important}.assessment-tooltip-border{border:var(--assessment-tooltip-border)!important}.assessment-box-shadow-tooltip{box-shadow:var(--assessment-box-shadow-tooltip)!important}.assessment-button-padding{padding:var(--assessment-button-padding)!important}.assessment-button-padding-large{padding:var(--assessment-button-padding-large)!important}.assessment-input-padding{padding:var(--assessment-input-padding)!important}.assessment-text-font-family{color:var(--assessment-font-family)!important}.assessment-bg-font-family{background-color:var(--assessment-font-family)!important}.assessment-text-regular-12{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-bold-12{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-11{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-11{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-regular-11{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-12{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-regular-13{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-bold-13{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-semibold-13{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-medium-13{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-regular-14{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-bold-14{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-medium-14{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw)!important;line-height:calc(1.2rem + .2vw)!important}.assessment-text-semibold-14{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-semibold-10{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw);line-height:calc(1rem + .1vw)}.assessment-text-regular-10{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw)!important;line-height:calc(1rem + .1vw)}.assessment-text-regular-15{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.4rem + .1vw)}.assessment-text-medium-15{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-semibold-15{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-bold-15{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-regular-16{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-semibold-16{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-bold-16{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-medium-16{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-regular-20{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-bold-20{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-semibold-20{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-20{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-18{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-regular-18{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .3vw)!important}.assessment-text-bold-18{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw);line-height:calc(1.5rem + .1vw)}.assessment-text-semibold-18{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-bold-34{overflow-wrap:break-word;font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-medium-34{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-bold-32{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.3rem + .75vw);line-height:calc(1.625rem + .5vw)}.assessment-text-bold-22{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-regular-22{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-semibold-22{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-medium-22{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-24{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-regular-24{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-semibold-24{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-medium-24{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(1.2rem + .75vw)}.assessment-text-regular-26{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-medium-26{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-bold-26{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-semibold-26{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-regular-28{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-medium-28{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-semibold-28{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw);letter-spacing:1}.assessment-text-bold-28{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-regular-30{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw)}.assessment-text-medium-30{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-30{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(2rem + .4vw)}.assessment-text-semibold-30{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw);letter-spacing:.5}.assessment-text-bold-36{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}.assessment-text-semibold-36{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-bold-34{font-size:calc(1.8rem + .15vh);line-height:calc(2.2rem + .15vh)}.assessment-text-bold-32{font-size:calc(1.3rem + 1vh);line-height:calc(1.5rem + 1vh)}.assessment-text-semibold-30{font-size:calc(1.5rem + .4vh);line-height:calc(1.8rem + .4vh)}.assessment-text-medium-24{line-height:2.188rem}.assessment-text-medium-24,.assessment-text-regular-24,.assessment-text-semibold-24,.assessment-text-bold-24,.assessment-text-light-24{font-size:calc(1.3rem + .5vh);line-height:calc(1.8rem + .5vh)}.assessment-text-medium-18,.assessment-text-regular-18,.assessment-text-bold-18,.assessment-text-semibold-18,.assessment-text-light-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-light-16,.assessment-text-bold-16{font-size:calc(.9rem + .3vh)!important;line-height:calc(1.2rem + .3vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16,.assessment-text-regular-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15,.assessment-text-bold-15,.assessment-text-light-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12,.assessment-text-bold-12,.assessment-text-medium-upper-12,.assessment-text-light-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-regular-14,.assessment-text-light-14,.assessment-text-medium-upper-14,.assessment-text-semibold-14,.assessment-text-bold-14{font-size:calc(.8rem + .1vh)!important;line-height:calc(1.2rem + .2vh)!important}.assessment-text-regular-13,.assessment-text-medium-13,.assessment-text-semibold-13,.assessment-text-bold-13,.assessment-text-light-13{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11,.assessment-text-semibold-11,.assessment-text-bold-11,.assessment-text-light-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}}.assessment-btn-primary{background-color:var(--assessment-primary-one);color:var(--assessment-white);border:.064rem solid var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two)}.assessment-btn-primary-transparent{background-color:var(--assessment-white);color:var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two);border:.064rem solid var(--assessment-primary-one)}.assessment-zoom-animation{transition:transform .2s ease;transform:translateZ(0);text-rendering:optimizeLegibility}.assessment-zoom-animation:hover{transform:scale(1.03)}.assessment-zoom-animation:active{transform:scale(1)}.assessment-zoom-animation:disabled{transform:none!important}.change-direction{transform:rotate(180deg);transition:.3s ease-out}.change-direction-reverse{transform:rotate(0);transition:.3s ease-out}.outline-0{outline:none}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.action-icon{width:1.2rem}.mat-menu-item{height:inherit}.height-without-footer{height:calc(100% - 4.4rem)!important}.z-index-1{z-index:1}.question-info{min-width:15rem;max-width:40vw}@media screen and (max-width: 768px){.question-info{max-width:75vw}}@media screen and (min-width: 768px){.assessment-marks-dropdown{width:6rem}}.youtube-video{aspect-ratio:16/9}\n"], components: [{ type: i6.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i6.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby"], exportAs: ["matTab"] }, { type: i7.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i7.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i8.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i9.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i10.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i11.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: QuestionTypeShortComponent, selector: "lib-question-type-short", inputs: ["required", "question", "previewMode", "labelConfig"] }, { type: QuestionTypeLongComponent, selector: "lib-question-type-long", inputs: ["required", "question", "previewMode", "labelConfig"] }, { type: QuestionTypeEditorComponent, selector: "lib-question-type-editor", inputs: ["required", "question", "previewMode", "labelConfig"] }, { type: QuestionTypeObjectiveComponent, selector: "lib-question-type-objective", inputs: ["required", "question"], outputs: ["viewChild"] }, { type: QuestionTypeMultiselectComponent, selector: "lib-question-type-multiselect", inputs: ["required", "question"], outputs: ["viewChild"] }, { type: QuestionTypePreferenceComponent, selector: "lib-question-type-preference", inputs: ["required", "question"], outputs: ["viewChild"] }, { type: QuestionTypeFileUploadComponent, selector: "lib-question-type-file-upload", inputs: ["required", "question", "labelConfig", "imageConfig"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.MatAccordion, selector: "mat-accordion", inputs: ["multi", "displayMode", "togglePosition", "hideToggle"], exportAs: ["matAccordion"] }, { type: i7.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i20.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { type: i20.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayPositions", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayTransformOriginOn"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { type: i9.MatLabel, selector: "mat-label" }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i9.MatError, selector: "mat-error", inputs: ["id"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }], pipes: { "orderBy": OrderByPipe } });
1734
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentTakerComponent, decorators: [{
1735
+ type: Component,
1736
+ args: [{
1737
+ selector: 'lib-assessment-taker',
1738
+ templateUrl: './assessment-taker.component.html',
1739
+ styleUrls: ['./assessment-taker.component.scss']
1740
+ }]
1741
+ }], ctorParameters: function () { return [{ type: AssessmentTakerService }, { type: i1$2.FormBuilder }, { type: ResponseBuilderService }, { type: i2.DomSanitizer }, { type: i1.MatDialog }]; }, propDecorators: { labelConfig: [{
1742
+ type: Input
1743
+ }], imageConfig: [{
1744
+ type: Input
1745
+ }], showFooter: [{
1746
+ type: Input
1747
+ }], assessmentId: [{
1748
+ type: Input
1749
+ }], assessmentInstanceId: [{
1750
+ type: Input
1751
+ }], assesseeData: [{
1752
+ type: Input
1753
+ }], assessorData: [{
1754
+ type: Input
1755
+ }], disabled: [{
1756
+ type: Input
1757
+ }], previewMode: [{
1758
+ type: Input
1759
+ }], verticalView: [{
1760
+ type: Input
1761
+ }], enableMarks: [{
1762
+ type: Input
1763
+ }], snackbarMessage: [{
1764
+ type: Output
1765
+ }], submitAssessment: [{
1766
+ type: Output
1767
+ }] } });
1768
+
1769
+ const MATERIAL_MODULES = [
1770
+ MatProgressSpinnerModule,
1771
+ MatExpansionModule,
1772
+ MatSelectModule,
1773
+ DragDropModule,
1774
+ MatMenuModule,
1775
+ MatDialogModule,
1776
+ MatTooltipModule,
1777
+ MatFormFieldModule,
1778
+ MatTabsModule,
1779
+ MatRadioModule,
1780
+ MatCheckboxModule,
1781
+ OverlayModule,
1782
+ ];
1783
+ class MaterialModules {
1784
+ }
1785
+ MaterialModules.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MaterialModules, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1786
+ MaterialModules.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MaterialModules, imports: [MatProgressSpinnerModule,
1787
+ MatExpansionModule,
1788
+ MatSelectModule,
1789
+ DragDropModule,
1790
+ MatMenuModule,
1791
+ MatDialogModule,
1792
+ MatTooltipModule,
1793
+ MatFormFieldModule,
1794
+ MatTabsModule,
1795
+ MatRadioModule,
1796
+ MatCheckboxModule,
1797
+ OverlayModule], exports: [MatProgressSpinnerModule,
1798
+ MatExpansionModule,
1799
+ MatSelectModule,
1800
+ DragDropModule,
1801
+ MatMenuModule,
1802
+ MatDialogModule,
1803
+ MatTooltipModule,
1804
+ MatFormFieldModule,
1805
+ MatTabsModule,
1806
+ MatRadioModule,
1807
+ MatCheckboxModule,
1808
+ OverlayModule] });
1809
+ MaterialModules.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MaterialModules, imports: [MATERIAL_MODULES, MatProgressSpinnerModule,
1810
+ MatExpansionModule,
1811
+ MatSelectModule,
1812
+ DragDropModule,
1813
+ MatMenuModule,
1814
+ MatDialogModule,
1815
+ MatTooltipModule,
1816
+ MatFormFieldModule,
1817
+ MatTabsModule,
1818
+ MatRadioModule,
1819
+ MatCheckboxModule,
1820
+ OverlayModule] });
1821
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MaterialModules, decorators: [{
1822
+ type: NgModule,
1823
+ args: [{
1824
+ imports: MATERIAL_MODULES,
1825
+ exports: MATERIAL_MODULES
1826
+ }]
1827
+ }] });
1828
+
1829
+ class SharedModule {
1830
+ }
1831
+ SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1832
+ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SharedModule, declarations: [TextEditorComponent,
1833
+ OrderByPipe], imports: [CommonModule,
1834
+ FormsModule,
1835
+ ReactiveFormsModule,
1836
+ MaterialModules,
1837
+ AngularEditorModule], exports: [TextEditorComponent,
1838
+ MaterialModules,
1839
+ OrderByPipe] });
1840
+ SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SharedModule, imports: [[
1841
+ CommonModule,
1842
+ FormsModule,
1843
+ ReactiveFormsModule,
1844
+ MaterialModules,
1845
+ AngularEditorModule
1846
+ ], MaterialModules] });
1847
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SharedModule, decorators: [{
1848
+ type: NgModule,
1849
+ args: [{
1850
+ declarations: [
1851
+ TextEditorComponent,
1852
+ OrderByPipe
1853
+ ],
1854
+ imports: [
1855
+ CommonModule,
1856
+ FormsModule,
1857
+ ReactiveFormsModule,
1858
+ MaterialModules,
1859
+ AngularEditorModule
1860
+ ],
1861
+ exports: [
1862
+ TextEditorComponent,
1863
+ MaterialModules,
1864
+ OrderByPipe
1865
+ ]
1866
+ }]
1867
+ }] });
1868
+
1869
+ class QuestionTypeNumberComponent {
1870
+ constructor() {
1871
+ this.formControl = new FormControl();
1872
+ }
1873
+ writeValue(value) {
1874
+ this.formControl.setValue(value);
1875
+ }
1876
+ registerOnChange(fn) {
1877
+ this.formControl.valueChanges.subscribe((val) => fn(val));
1878
+ }
1879
+ registerOnTouched(fn) {
1880
+ this.formControl.valueChanges.subscribe((val) => fn(val));
1881
+ }
1882
+ }
1883
+ QuestionTypeNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypeNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1884
+ QuestionTypeNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionTypeNumberComponent, selector: "lib-question-type-number", inputs: { required: "required", optionsList: "optionsList" }, providers: [
1885
+ {
1886
+ provide: NG_VALUE_ACCESSOR,
1887
+ useExisting: forwardRef(() => QuestionTypeNumberComponent),
1888
+ multi: true,
1889
+ },
1890
+ ], ngImport: i0, template: "<mat-form-field class=\"example-full-width\">\r\n <!-- <input matInput type=\"number\" [formControl]=\"formControl\" class=\"form-check-input\" placeholder=\"Enter number\" value=\"\" min=\"1\" oninput=\"validity.valid||(value='');\" [required]=\"required\"> -->\r\n <input matInput [formControl]=\"formControl\" class=\"form-check-input\" placeholder=\"Enter number\" value=\"\" [required]=\"required\">\r\n </mat-form-field>\r\n", styles: [".assessment-text-grey-ten{color:var(--assessment-grey-ten)!important}.assessment-bg-grey-ten{background-color:var(--assessment-grey-ten)!important}.assessment-text-grey-nine{color:var(--assessment-grey-nine)!important}.assessment-bg-grey-nine{background-color:var(--assessment-grey-nine)!important}.assessment-text-grey-eight{color:var(--assessment-grey-eight)!important}.assessment-bg-grey-eight{background-color:var(--assessment-grey-eight)!important}.assessment-text-grey-seven{color:var(--assessment-grey-seven)!important}.assessment-bg-grey-seven{background-color:var(--assessment-grey-seven)!important}.assessment-text-grey-six{color:var(--assessment-grey-six)!important}.assessment-bg-grey-six{background-color:var(--assessment-grey-six)!important}.assessment-text-grey-five{color:var(--assessment-grey-five)!important}.assessment-bg-grey-five{background-color:var(--assessment-grey-five)!important}.assessment-text-grey-four{color:var(--assessment-grey-four)!important}.assessment-bg-grey-four{background-color:var(--assessment-grey-four)!important}.assessment-text-grey-three{color:var(--assessment-grey-three)!important}.assessment-bg-grey-three{background-color:var(--assessment-grey-three)!important}.assessment-text-grey-two{color:var(--assessment-grey-two)!important}.assessment-bg-grey-two{background-color:var(--assessment-grey-two)!important}.assessment-text-grey-one{color:var(--assessment-grey-one)!important}.assessment-bg-grey-one{background-color:var(--assessment-grey-one)!important}.assessment-text-white{color:var(--assessment-white)!important}.assessment-bg-white{background-color:var(--assessment-white)!important}.assessment-text-black{color:var(--assessment-black)!important}.assessment-bg-black{background-color:var(--assessment-black)!important}.assessment-text-danger{color:var(--assessment-danger)!important}.assessment-bg-danger{background-color:var(--assessment-danger)!important}.assessment-text-primary-one{color:var(--assessment-primary-one)!important}.assessment-bg-primary-one{background-color:var(--assessment-primary-one)!important}.assessment-text-primary-four{color:var(--assessment-primary-four)!important}.assessment-bg-primary-four{background-color:var(--assessment-primary-four)!important}.assessment-text-palette-EDF3FD{color:var(--assessment-palette-EDF3FD)!important}.assessment-bg-palette-EDF3FD{background-color:var(--assessment-palette-EDF3FD)!important}.assessment-text-palette-C8DAF9{color:var(--assessment-palette-C8DAF9)!important}.assessment-bg-palette-C8DAF9{background-color:var(--assessment-palette-C8DAF9)!important}.assessment-text-palette-ADC9F6{color:var(--assessment-palette-ADC9F6)!important}.assessment-bg-palette-ADC9F6{background-color:var(--assessment-palette-ADC9F6)!important}.assessment-text-palette-FEF9F1{color:var(--assessment-palette-FEF9F1)!important}.assessment-bg-palette-FEF9F1{background-color:var(--assessment-palette-FEF9F1)!important}.assessment-text-palette-F9DAA6{color:var(--assessment-palette-F9DAA6)!important}.assessment-bg-palette-F9DAA6{background-color:var(--assessment-palette-F9DAA6)!important}.assessment-text-palette-E8F7F0{color:var(--assessment-palette-E8F7F0)!important}.assessment-bg-palette-E8F7F0{background-color:var(--assessment-palette-E8F7F0)!important}.assessment-text-palette-B7E7CF{color:var(--assessment-palette-B7E7CF)!important}.assessment-bg-palette-B7E7CF{background-color:var(--assessment-palette-B7E7CF)!important}.assessment-box-shadow-one{box-shadow:var(--assessment-box-shadow-one)!important}.assessment-border-radius-one{border-radius:var(--assessment-border-radius-one)!important}.assessment-border-radius-two{border-radius:var(--assessment-border-radius-two)!important}.assessment-border-radius-three{border-radius:var(--assessment-border-radius-three)!important}.assessment-border-radius-four{border-radius:var(--assessment-border-radius-four)!important}.assessment-border-radius-five{border-radius:var(--assessment-border-radius-five)!important}.assessment-border-radius-six{border-radius:var(--assessment-border-radius-six)!important}.assessment-input-border-one{border:var(--assessment-input-border-one)!important}.assessment-input-border-invalid{border:var(--assessment-input-border-invalid)!important}.assessment-input-focus-border{border:var(--assessment-input-focus-border)!important}.assessment-border-two{border:var(--assessment-border-two)!important}.assessment-card-border{border:var(--assessment-card-border)!important}.assessment-tooltip-border{border:var(--assessment-tooltip-border)!important}.assessment-box-shadow-tooltip{box-shadow:var(--assessment-box-shadow-tooltip)!important}.assessment-button-padding{padding:var(--assessment-button-padding)!important}.assessment-button-padding-large{padding:var(--assessment-button-padding-large)!important}.assessment-input-padding{padding:var(--assessment-input-padding)!important}.assessment-text-font-family{color:var(--assessment-font-family)!important}.assessment-bg-font-family{background-color:var(--assessment-font-family)!important}.assessment-text-regular-12{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-bold-12{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-11{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-11{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-regular-11{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-12{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-regular-13{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-bold-13{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-semibold-13{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-medium-13{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-regular-14{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-bold-14{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-medium-14{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw)!important;line-height:calc(1.2rem + .2vw)!important}.assessment-text-semibold-14{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-semibold-10{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw);line-height:calc(1rem + .1vw)}.assessment-text-regular-10{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw)!important;line-height:calc(1rem + .1vw)}.assessment-text-regular-15{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.4rem + .1vw)}.assessment-text-medium-15{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-semibold-15{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-bold-15{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-regular-16{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-semibold-16{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-bold-16{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-medium-16{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-regular-20{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-bold-20{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-semibold-20{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-20{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-18{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-regular-18{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .3vw)!important}.assessment-text-bold-18{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw);line-height:calc(1.5rem + .1vw)}.assessment-text-semibold-18{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-bold-34{overflow-wrap:break-word;font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-medium-34{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-bold-32{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.3rem + .75vw);line-height:calc(1.625rem + .5vw)}.assessment-text-bold-22{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-regular-22{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-semibold-22{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-medium-22{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-24{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-regular-24{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-semibold-24{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-medium-24{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(1.2rem + .75vw)}.assessment-text-regular-26{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-medium-26{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-bold-26{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-semibold-26{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-regular-28{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-medium-28{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-semibold-28{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw);letter-spacing:1}.assessment-text-bold-28{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-regular-30{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw)}.assessment-text-medium-30{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-30{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(2rem + .4vw)}.assessment-text-semibold-30{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw);letter-spacing:.5}.assessment-text-bold-36{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}.assessment-text-semibold-36{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-bold-34{font-size:calc(1.8rem + .15vh);line-height:calc(2.2rem + .15vh)}.assessment-text-bold-32{font-size:calc(1.3rem + 1vh);line-height:calc(1.5rem + 1vh)}.assessment-text-semibold-30{font-size:calc(1.5rem + .4vh);line-height:calc(1.8rem + .4vh)}.assessment-text-medium-24{line-height:2.188rem}.assessment-text-medium-24,.assessment-text-regular-24,.assessment-text-semibold-24,.assessment-text-bold-24,.assessment-text-light-24{font-size:calc(1.3rem + .5vh);line-height:calc(1.8rem + .5vh)}.assessment-text-medium-18,.assessment-text-regular-18,.assessment-text-bold-18,.assessment-text-semibold-18,.assessment-text-light-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-light-16,.assessment-text-bold-16{font-size:calc(.9rem + .3vh)!important;line-height:calc(1.2rem + .3vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16,.assessment-text-regular-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15,.assessment-text-bold-15,.assessment-text-light-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12,.assessment-text-bold-12,.assessment-text-medium-upper-12,.assessment-text-light-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-regular-14,.assessment-text-light-14,.assessment-text-medium-upper-14,.assessment-text-semibold-14,.assessment-text-bold-14{font-size:calc(.8rem + .1vh)!important;line-height:calc(1.2rem + .2vh)!important}.assessment-text-regular-13,.assessment-text-medium-13,.assessment-text-semibold-13,.assessment-text-bold-13,.assessment-text-light-13{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11,.assessment-text-semibold-11,.assessment-text-bold-11,.assessment-text-light-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}}.assessment-btn-primary{background-color:var(--assessment-primary-one);color:var(--assessment-white);border:.064rem solid var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two)}.assessment-btn-primary-transparent{background-color:var(--assessment-white);color:var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two);border:.064rem solid var(--assessment-primary-one)}.assessment-zoom-animation{transition:transform .2s ease;transform:translateZ(0);text-rendering:optimizeLegibility}.assessment-zoom-animation:hover{transform:scale(1.03)}.assessment-zoom-animation:active{transform:scale(1)}.assessment-zoom-animation:disabled{transform:none!important}.change-direction{transform:rotate(180deg);transition:.3s ease-out}.change-direction-reverse{transform:rotate(0);transition:.3s ease-out}.outline-0{outline:none}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.action-icon{width:1.2rem}.mat-menu-item{height:inherit}\n"], components: [{ type: i9.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }], directives: [{ type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
1891
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionTypeNumberComponent, decorators: [{
1892
+ type: Component,
1893
+ args: [{
1894
+ selector: 'lib-question-type-number',
1895
+ templateUrl: './question-type-number.component.html',
1896
+ styleUrls: ['./question-type-number.component.scss'],
1897
+ providers: [
1898
+ {
1899
+ provide: NG_VALUE_ACCESSOR,
1900
+ useExisting: forwardRef(() => QuestionTypeNumberComponent),
1901
+ multi: true,
1902
+ },
1903
+ ],
1904
+ }]
1905
+ }], ctorParameters: function () { return []; }, propDecorators: { required: [{
1906
+ type: Input
1907
+ }], optionsList: [{
1908
+ type: Input
1909
+ }] } });
1910
+
1911
+ class AssessmentTakerModule {
1912
+ }
1913
+ AssessmentTakerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentTakerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1914
+ AssessmentTakerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentTakerModule, declarations: [AssessmentTakerComponent,
1915
+ QuestionTypeEditorComponent,
1916
+ QuestionTypeFileUploadComponent,
1917
+ QuestionTypeLongComponent,
1918
+ QuestionTypeMultiselectComponent,
1919
+ QuestionTypeNumberComponent,
1920
+ QuestionTypeObjectiveComponent,
1921
+ QuestionTypePreferenceComponent,
1922
+ QuestionTypeShortComponent,
1923
+ SectionInstructionsComponent], imports: [CommonModule,
1924
+ SharedModule,
1925
+ MaterialModules,
1926
+ FormsModule,
1927
+ ReactiveFormsModule], exports: [AssessmentTakerComponent] });
1928
+ AssessmentTakerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentTakerModule, providers: [AssessmentTakerService], imports: [[
1929
+ CommonModule,
1930
+ SharedModule,
1931
+ MaterialModules,
1932
+ FormsModule,
1933
+ ReactiveFormsModule
1934
+ ]] });
1935
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentTakerModule, decorators: [{
1936
+ type: NgModule,
1937
+ args: [{
1938
+ declarations: [
1939
+ AssessmentTakerComponent,
1940
+ QuestionTypeEditorComponent,
1941
+ QuestionTypeFileUploadComponent,
1942
+ QuestionTypeLongComponent,
1943
+ QuestionTypeMultiselectComponent,
1944
+ QuestionTypeNumberComponent,
1945
+ QuestionTypeObjectiveComponent,
1946
+ QuestionTypePreferenceComponent,
1947
+ QuestionTypeShortComponent,
1948
+ SectionInstructionsComponent
1949
+ ],
1950
+ imports: [
1951
+ CommonModule,
1952
+ SharedModule,
1953
+ MaterialModules,
1954
+ FormsModule,
1955
+ ReactiveFormsModule
1956
+ ],
1957
+ exports: [
1958
+ AssessmentTakerComponent
1959
+ ],
1960
+ providers: [AssessmentTakerService]
1961
+ }]
1962
+ }] });
1963
+
1964
+ class AddEditSectionIntroductionComponent {
1965
+ constructor(dialogRef, dialogData) {
1966
+ this.dialogRef = dialogRef;
1967
+ this.dialogData = dialogData;
1968
+ this.imageConfig = {};
1969
+ this.labelConfig = {};
1970
+ this.sectionDescription = '';
1971
+ this.sectionDetails = null;
1972
+ this.videoUrl = '';
1973
+ }
1974
+ ngOnInit() {
1975
+ var _a, _b, _c, _d;
1976
+ this.imageConfig = ((_a = this.dialogData) === null || _a === void 0 ? void 0 : _a.imageConfig) || {};
1977
+ this.labelConfig = ((_b = this.dialogData) === null || _b === void 0 ? void 0 : _b.labelConfig) || {};
1978
+ this.sectionDetails = deepClone((_c = this.dialogData) === null || _c === void 0 ? void 0 : _c.sectionDetails);
1979
+ if (this.sectionDetails && this.sectionDetails.qpsDesc && this.sectionDetails.qpsDesc.length > 0) {
1980
+ this.sectionDescription = this.sectionDetails.qpsDesc[0].text || '';
1981
+ }
1982
+ this.videoUrl = ((_d = this.sectionDetails) === null || _d === void 0 ? void 0 : _d.mediaUrl) || '';
1983
+ }
1984
+ imageErrorHandler(event, filePath) {
1985
+ event.target.src = filePath;
1986
+ }
1987
+ get isVideoUrlValid() {
1988
+ if (!this.videoUrl)
1989
+ return true;
1990
+ const urlPattern = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?(\?[^\s]*)?$/i;
1991
+ return urlPattern.test(this.videoUrl);
1992
+ }
1993
+ onSubmit() {
1994
+ this.dialogRef.close({ update: true, description: this.sectionDescription, mediaUrl: this.videoUrl });
1995
+ }
1996
+ }
1997
+ AddEditSectionIntroductionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AddEditSectionIntroductionComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
1998
+ AddEditSectionIntroductionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AddEditSectionIntroductionComponent, selector: "lib-add-edit-section-introduction", ngImport: i0, template: "<div class=\"col-12\">\r\n <header class=\"p-3 d-flex align-items-center justify-content-between col-12 assessment-bg-grey-one pb-4\">\r\n <p class=\"mb-0 assessment-text-semibold-18\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.ADD_INSTRUCTIONS_HEADER']}}\r\n </p>\r\n <img mat-dialog-close [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.CLOSE']\" class=\"cursor-pointer\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/close.svg')\" />\r\n </header>\r\n\r\n <div class=\"col-12 px-md-4 px-3\">\r\n <div class=\"col-12 my-4\">\r\n <app-text-editor [preText]=\"sectionDescription\" (inputChange)=\"sectionDescription = $event\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.ENTER_INSTRUCTIONS']\"\r\n class=\"assessment-custom-angular-editor-white assessment-text-regular-13 assessment-text-grey-ten\"\r\n [height]=\"'15rem'\">\r\n </app-text-editor>\r\n </div>\r\n <div class=\"col-12 my-4\">\r\n <input [(ngModel)]=\"videoUrl\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.ENTER_INSTRUCTIONS_MEDIA']\"\r\n class=\"col-12 assessment-input-padding assessment-border-radius-two outline-0 assessment-input-border-one assessment-text-medium-13 assessment-bg-grey-one\"\r\n [ngClass]=\"{'border-danger': !isVideoUrlValid}\">\r\n <div *ngIf=\"!isVideoUrlValid\" class=\"text-danger assessment-text-regular-12 mt-1\">\r\n {{labelConfig['COMMONS_ASSESSMENT.ERROR.INVALID_URL']}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <footer class=\"mt-auto p-3 pb-4 d-flex align-items-center justify-content-end gap-3 col-12\">\r\n <button mat-dialog-close\r\n class=\"assessment-btn-primary-transparent assessment-zoom-animation p-2 px-3 assessment-text-medium-13\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.DISCARD']}}\r\n </button>\r\n <button (click)=\"onSubmit()\" [disabled]=\"!isVideoUrlValid\"\r\n class=\"assessment-btn-primary assessment-zoom-animation p-2 px-3 assessment-text-medium-13\"\r\n [ngClass]=\"{'opacity-50': !isVideoUrlValid, 'cursor-not-allowed': !isVideoUrlValid}\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.SAVE_DETAILS']}}\r\n </button>\r\n </footer>\r\n</div>", styles: [".assessment-text-grey-ten{color:var(--assessment-grey-ten)!important}.assessment-bg-grey-ten{background-color:var(--assessment-grey-ten)!important}.assessment-text-grey-nine{color:var(--assessment-grey-nine)!important}.assessment-bg-grey-nine{background-color:var(--assessment-grey-nine)!important}.assessment-text-grey-eight{color:var(--assessment-grey-eight)!important}.assessment-bg-grey-eight{background-color:var(--assessment-grey-eight)!important}.assessment-text-grey-seven{color:var(--assessment-grey-seven)!important}.assessment-bg-grey-seven{background-color:var(--assessment-grey-seven)!important}.assessment-text-grey-six{color:var(--assessment-grey-six)!important}.assessment-bg-grey-six{background-color:var(--assessment-grey-six)!important}.assessment-text-grey-five{color:var(--assessment-grey-five)!important}.assessment-bg-grey-five{background-color:var(--assessment-grey-five)!important}.assessment-text-grey-four{color:var(--assessment-grey-four)!important}.assessment-bg-grey-four{background-color:var(--assessment-grey-four)!important}.assessment-text-grey-three{color:var(--assessment-grey-three)!important}.assessment-bg-grey-three{background-color:var(--assessment-grey-three)!important}.assessment-text-grey-two{color:var(--assessment-grey-two)!important}.assessment-bg-grey-two{background-color:var(--assessment-grey-two)!important}.assessment-text-grey-one{color:var(--assessment-grey-one)!important}.assessment-bg-grey-one{background-color:var(--assessment-grey-one)!important}.assessment-text-white{color:var(--assessment-white)!important}.assessment-bg-white{background-color:var(--assessment-white)!important}.assessment-text-black{color:var(--assessment-black)!important}.assessment-bg-black{background-color:var(--assessment-black)!important}.assessment-text-danger{color:var(--assessment-danger)!important}.assessment-bg-danger{background-color:var(--assessment-danger)!important}.assessment-text-primary-one{color:var(--assessment-primary-one)!important}.assessment-bg-primary-one{background-color:var(--assessment-primary-one)!important}.assessment-text-primary-four{color:var(--assessment-primary-four)!important}.assessment-bg-primary-four{background-color:var(--assessment-primary-four)!important}.assessment-text-palette-EDF3FD{color:var(--assessment-palette-EDF3FD)!important}.assessment-bg-palette-EDF3FD{background-color:var(--assessment-palette-EDF3FD)!important}.assessment-text-palette-C8DAF9{color:var(--assessment-palette-C8DAF9)!important}.assessment-bg-palette-C8DAF9{background-color:var(--assessment-palette-C8DAF9)!important}.assessment-text-palette-ADC9F6{color:var(--assessment-palette-ADC9F6)!important}.assessment-bg-palette-ADC9F6{background-color:var(--assessment-palette-ADC9F6)!important}.assessment-text-palette-FEF9F1{color:var(--assessment-palette-FEF9F1)!important}.assessment-bg-palette-FEF9F1{background-color:var(--assessment-palette-FEF9F1)!important}.assessment-text-palette-F9DAA6{color:var(--assessment-palette-F9DAA6)!important}.assessment-bg-palette-F9DAA6{background-color:var(--assessment-palette-F9DAA6)!important}.assessment-text-palette-E8F7F0{color:var(--assessment-palette-E8F7F0)!important}.assessment-bg-palette-E8F7F0{background-color:var(--assessment-palette-E8F7F0)!important}.assessment-text-palette-B7E7CF{color:var(--assessment-palette-B7E7CF)!important}.assessment-bg-palette-B7E7CF{background-color:var(--assessment-palette-B7E7CF)!important}.assessment-box-shadow-one{box-shadow:var(--assessment-box-shadow-one)!important}.assessment-border-radius-one{border-radius:var(--assessment-border-radius-one)!important}.assessment-border-radius-two{border-radius:var(--assessment-border-radius-two)!important}.assessment-border-radius-three{border-radius:var(--assessment-border-radius-three)!important}.assessment-border-radius-four{border-radius:var(--assessment-border-radius-four)!important}.assessment-border-radius-five{border-radius:var(--assessment-border-radius-five)!important}.assessment-border-radius-six{border-radius:var(--assessment-border-radius-six)!important}.assessment-input-border-one{border:var(--assessment-input-border-one)!important}.assessment-input-border-invalid{border:var(--assessment-input-border-invalid)!important}.assessment-input-focus-border{border:var(--assessment-input-focus-border)!important}.assessment-border-two{border:var(--assessment-border-two)!important}.assessment-card-border{border:var(--assessment-card-border)!important}.assessment-tooltip-border{border:var(--assessment-tooltip-border)!important}.assessment-box-shadow-tooltip{box-shadow:var(--assessment-box-shadow-tooltip)!important}.assessment-button-padding{padding:var(--assessment-button-padding)!important}.assessment-button-padding-large{padding:var(--assessment-button-padding-large)!important}.assessment-input-padding{padding:var(--assessment-input-padding)!important}.assessment-text-font-family{color:var(--assessment-font-family)!important}.assessment-bg-font-family{background-color:var(--assessment-font-family)!important}.assessment-text-regular-12{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-bold-12{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-11{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-11{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-regular-11{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-12{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-regular-13{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-bold-13{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-semibold-13{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-medium-13{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-regular-14{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-bold-14{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-medium-14{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw)!important;line-height:calc(1.2rem + .2vw)!important}.assessment-text-semibold-14{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-semibold-10{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw);line-height:calc(1rem + .1vw)}.assessment-text-regular-10{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw)!important;line-height:calc(1rem + .1vw)}.assessment-text-regular-15{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.4rem + .1vw)}.assessment-text-medium-15{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-semibold-15{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-bold-15{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-regular-16{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-semibold-16{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-bold-16{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-medium-16{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-regular-20{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-bold-20{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-semibold-20{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-20{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-18{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-regular-18{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .3vw)!important}.assessment-text-bold-18{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw);line-height:calc(1.5rem + .1vw)}.assessment-text-semibold-18{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-bold-34{overflow-wrap:break-word;font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-medium-34{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-bold-32{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.3rem + .75vw);line-height:calc(1.625rem + .5vw)}.assessment-text-bold-22{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-regular-22{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-semibold-22{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-medium-22{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-24{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-regular-24{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-semibold-24{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-medium-24{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(1.2rem + .75vw)}.assessment-text-regular-26{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-medium-26{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-bold-26{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-semibold-26{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-regular-28{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-medium-28{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-semibold-28{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw);letter-spacing:1}.assessment-text-bold-28{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-regular-30{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw)}.assessment-text-medium-30{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-30{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(2rem + .4vw)}.assessment-text-semibold-30{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw);letter-spacing:.5}.assessment-text-bold-36{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}.assessment-text-semibold-36{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-bold-34{font-size:calc(1.8rem + .15vh);line-height:calc(2.2rem + .15vh)}.assessment-text-bold-32{font-size:calc(1.3rem + 1vh);line-height:calc(1.5rem + 1vh)}.assessment-text-semibold-30{font-size:calc(1.5rem + .4vh);line-height:calc(1.8rem + .4vh)}.assessment-text-medium-24{line-height:2.188rem}.assessment-text-medium-24,.assessment-text-regular-24,.assessment-text-semibold-24,.assessment-text-bold-24,.assessment-text-light-24{font-size:calc(1.3rem + .5vh);line-height:calc(1.8rem + .5vh)}.assessment-text-medium-18,.assessment-text-regular-18,.assessment-text-bold-18,.assessment-text-semibold-18,.assessment-text-light-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-light-16,.assessment-text-bold-16{font-size:calc(.9rem + .3vh)!important;line-height:calc(1.2rem + .3vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16,.assessment-text-regular-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15,.assessment-text-bold-15,.assessment-text-light-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12,.assessment-text-bold-12,.assessment-text-medium-upper-12,.assessment-text-light-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-regular-14,.assessment-text-light-14,.assessment-text-medium-upper-14,.assessment-text-semibold-14,.assessment-text-bold-14{font-size:calc(.8rem + .1vh)!important;line-height:calc(1.2rem + .2vh)!important}.assessment-text-regular-13,.assessment-text-medium-13,.assessment-text-semibold-13,.assessment-text-bold-13,.assessment-text-light-13{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11,.assessment-text-semibold-11,.assessment-text-bold-11,.assessment-text-light-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}}.assessment-btn-primary{background-color:var(--assessment-primary-one);color:var(--assessment-white);border:.064rem solid var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two)}.assessment-btn-primary-transparent{background-color:var(--assessment-white);color:var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two);border:.064rem solid var(--assessment-primary-one)}.assessment-zoom-animation{transition:transform .2s ease;transform:translateZ(0);text-rendering:optimizeLegibility}.assessment-zoom-animation:hover{transform:scale(1.03)}.assessment-zoom-animation:active{transform:scale(1)}.assessment-zoom-animation:disabled{transform:none!important}.change-direction{transform:rotate(180deg);transition:.3s ease-out}.change-direction-reverse{transform:rotate(0);transition:.3s ease-out}.outline-0{outline:none}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.action-icon{width:1.2rem}.mat-menu-item{height:inherit}\n"], components: [{ type: TextEditorComponent, selector: "app-text-editor", inputs: ["height", "placeholder", "subject", "preText", "maxLength", "disabled", "showToolbar", "editorConfig"], outputs: ["inputChange"] }], directives: [{ type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1999
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AddEditSectionIntroductionComponent, decorators: [{
2000
+ type: Component,
2001
+ args: [{
2002
+ selector: 'lib-add-edit-section-introduction',
2003
+ templateUrl: './add-edit-section-introduction.component.html',
2004
+ styleUrls: ['./add-edit-section-introduction.component.scss']
2005
+ }]
2006
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
2007
+ type: Inject,
2008
+ args: [MAT_DIALOG_DATA]
2009
+ }] }]; } });
2010
+
2011
+ class AssessmentBuilderService {
2012
+ constructor() {
2013
+ this.defaultAssessmentDTO = {};
2014
+ }
2015
+ setDefaultAssessmentDTO(value) {
2016
+ this.defaultAssessmentDTO = value;
2017
+ }
2018
+ setQuestionDTO(formData, existingQuestion = {}) {
2019
+ var _a, _b, _c, _d, _e, _f, _g;
2020
+ const existingConfigsMap = ((existingQuestion === null || existingQuestion === void 0 ? void 0 : existingQuestion.questionConfigs) || [])
2021
+ .reduce((acc, config) => {
2022
+ acc[config.configKey] = config;
2023
+ return acc;
2024
+ }, {});
2025
+ const questionConfigs = [
2026
+ { configKey: 'minCharacterCount', configValue: formData.minCharacterCount ? String(formData.minCharacterCount) : null },
2027
+ { configKey: 'maxCharacterCount', configValue: formData.maxCharacterCount ? String(formData.maxCharacterCount) : null },
2028
+ { configKey: 'minimumNumberOfOption', configValue: formData.minimumNumberOfOption ? String(formData.minimumNumberOfOption) : null },
2029
+ { configKey: 'maximumNumberOfOption', configValue: formData.maximumNumberOfOption ? String(formData.maximumNumberOfOption) : null },
2030
+ { configKey: 'maxFileSize', configValue: formData.maxFileSize ? String(formData.maxFileSize) : null },
2031
+ { configKey: 'maxNoOfFiles', configValue: formData.maxNoOfFiles ? String(formData.maxNoOfFiles) : null },
2032
+ // { configKey: 'visibility', configValue: formData.visibility ? 'true' : 'false' }
2033
+ ].map(config => {
2034
+ var _a;
2035
+ return (Object.assign({ id: ((_a = existingConfigsMap[config.configKey]) === null || _a === void 0 ? void 0 : _a.id) || 0 }, config));
2036
+ }).filter(Boolean);
2037
+ return Object.assign(Object.assign(Object.assign({}, existingQuestion), { questionText: [{
2038
+ id: ((_b = (_a = existingQuestion === null || existingQuestion === void 0 ? void 0 : existingQuestion.questionText) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.id) || 0,
2039
+ language: { code: 'ENG' },
2040
+ text: formData.questionText || ''
2041
+ }], questionType: { code: formData.questionType || '' }, questionSubtype: { code: formData.questionSubtype || ((_c = formData.questionType) === null || _c === void 0 ? void 0 : _c.replace('QUESTION_TYPE', 'QUESTION_SUB_TYPE')) || '' }, isMandatory: formData.isMandatory || false, weight: Number(formData.totalMarks || 0), hintText: formData.hintText || null, mediaUrl: formData.questionMedia || null, responseValidation: formData.customRegex || null, questionConfigs, defaultOptionsList: (() => {
2042
+ const existingOptions = (existingQuestion === null || existingQuestion === void 0 ? void 0 : existingQuestion.defaultOptionsList) || [];
2043
+ const formOptions = formData.options || [];
2044
+ // 1. Process items from formData (new and updated)
2045
+ const processedOptions = formOptions.map((opt, index) => {
2046
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
2047
+ const existingOpt = existingOptions.find(eo => eo.id === opt.id && eo.id !== 0) || {};
2048
+ return Object.assign(Object.assign(Object.assign({}, existingOpt), { id: opt.id || 0, uuid: existingOpt.uuid || opt.uuid, orderNo: index + 1, weight: Number(opt.weight || 0), remarksRequired: opt.remarksRequired || false, isActive: opt.isActive !== false, options: Object.assign(Object.assign(Object.assign({}, (existingOpt.options || {})), { id: ((_a = opt === null || opt === void 0 ? void 0 : opt.options) === null || _a === void 0 ? void 0 : _a.id) || ((_b = existingOpt.options) === null || _b === void 0 ? void 0 : _b.id) || 0, optionName: [{
2049
+ id: ((_e = (_d = (_c = existingOpt.options) === null || _c === void 0 ? void 0 : _c.optionName) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.id) || 0,
2050
+ language: { code: 'ENG' },
2051
+ text: opt.optionLabel || ''
2052
+ }] }), (((_f = this.defaultAssessmentDTO) === null || _f === void 0 ? void 0 : _f.tenant) && { tenant: (_g = this.defaultAssessmentDTO) === null || _g === void 0 ? void 0 : _g.tenant })), childQuestionList: opt.childQuestionList || existingOpt.childQuestionList || [] }), (((_h = this.defaultAssessmentDTO) === null || _h === void 0 ? void 0 : _h.tenant) && { tenant: (_j = this.defaultAssessmentDTO) === null || _j === void 0 ? void 0 : _j.tenant }));
2053
+ });
2054
+ // 2. Identify existing options that are NOT in formData (removed by user) and mark them inactive
2055
+ const formOptionIds = new Set(processedOptions.map((o) => o.id).filter((id) => id !== 0));
2056
+ const removedOptions = existingOptions.filter(eo => eo.id && !formOptionIds.has(eo.id)).map(eo => (Object.assign(Object.assign({}, eo), { isActive: false })));
2057
+ return [...processedOptions, ...removedOptions];
2058
+ })() }), (!(existingQuestion === null || existingQuestion === void 0 ? void 0 : existingQuestion.id) && Object.assign(Object.assign({ id: 0 }, (((_d = this.defaultAssessmentDTO) === null || _d === void 0 ? void 0 : _d.domain) && { domain: (_e = this.defaultAssessmentDTO) === null || _e === void 0 ? void 0 : _e.domain })), (((_f = this.defaultAssessmentDTO) === null || _f === void 0 ? void 0 : _f.tenant) && { tenant: (_g = this.defaultAssessmentDTO) === null || _g === void 0 ? void 0 : _g.tenant }))));
2059
+ }
2060
+ getQuestionDTO(questionData) {
2061
+ var _a, _b, _c, _d;
2062
+ const getConfig = (key) => { var _a, _b; return (_b = (_a = questionData.questionConfigs) === null || _a === void 0 ? void 0 : _a.find(c => c.configKey === key)) === null || _b === void 0 ? void 0 : _b.configValue; };
2063
+ return {
2064
+ id: questionData.id,
2065
+ questionText: ((_b = (_a = questionData.questionText) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.text) || '',
2066
+ questionType: ((_c = questionData.questionType) === null || _c === void 0 ? void 0 : _c.code) || '',
2067
+ isMandatory: questionData.isMandatory || false,
2068
+ totalMarks: questionData.weight || 0,
2069
+ hintText: questionData.hintText || '',
2070
+ questionMedia: questionData.mediaUrl || '',
2071
+ minCharacterCount: getConfig('minCharacterCount') ? Number(getConfig('minCharacterCount')) : null,
2072
+ maxCharacterCount: getConfig('maxCharacterCount') ? Number(getConfig('maxCharacterCount')) : null,
2073
+ minimumNumberOfOption: getConfig('minimumNumberOfOption') ? Number(getConfig('minimumNumberOfOption')) : null,
2074
+ maximumNumberOfOption: getConfig('maximumNumberOfOption') ? Number(getConfig('maximumNumberOfOption')) : null,
2075
+ maxFileSize: getConfig('maxFileSize') ? Number(getConfig('maxFileSize')) : null,
2076
+ maxNoOfFiles: getConfig('maxNoOfFiles') ? Number(getConfig('maxNoOfFiles')) : null,
2077
+ // visibility: getConfig('visibility') === 'true',
2078
+ customRegex: questionData === null || questionData === void 0 ? void 0 : questionData.responseValidation,
2079
+ options: ((_d = questionData.defaultOptionsList) === null || _d === void 0 ? void 0 : _d.map(opt => {
2080
+ var _a, _b, _c;
2081
+ return ({
2082
+ id: opt.id,
2083
+ uuid: opt.uuid,
2084
+ optionLabel: ((_c = (_b = (_a = opt.options) === null || _a === void 0 ? void 0 : _a.optionName) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.text) || '',
2085
+ weight: opt.weight || 0,
2086
+ remarksRequired: opt.remarksRequired || false,
2087
+ isActive: opt.isActive !== false,
2088
+ childQuestionList: opt.childQuestionList || [],
2089
+ });
2090
+ })) || [],
2091
+ childQuestions: (questionData === null || questionData === void 0 ? void 0 : questionData.childQuestions) || []
2092
+ };
2093
+ }
2094
+ createNewSection(sequence) {
2095
+ var _a, _b;
2096
+ return Object.assign({ id: 0, qpsName: [{
2097
+ id: 0,
2098
+ language: { code: 'ENG' },
2099
+ text: `Section ${sequence}`
2100
+ }], orderNo: sequence, sectionQuestionsList: [], totalMarks: 0, totalQuestions: 0 }, (((_a = this.defaultAssessmentDTO) === null || _a === void 0 ? void 0 : _a.tenant) && { tenant: (_b = this.defaultAssessmentDTO) === null || _b === void 0 ? void 0 : _b.tenant }));
2101
+ }
2102
+ generateSectionQuestion(question, sectionQuestion = {}) {
2103
+ var _a, _b;
2104
+ return Object.assign({ id: (sectionQuestion === null || sectionQuestion === void 0 ? void 0 : sectionQuestion.id) || 0, question, isMandatory: question === null || question === void 0 ? void 0 : question.isMandatory }, (!(sectionQuestion === null || sectionQuestion === void 0 ? void 0 : sectionQuestion.id) && ((_a = this.defaultAssessmentDTO) === null || _a === void 0 ? void 0 : _a.tenant) && { tenant: (_b = this.defaultAssessmentDTO) === null || _b === void 0 ? void 0 : _b.tenant }));
2105
+ }
2106
+ generateQuestionPaperDTO(questionPaper, questionBank) {
2107
+ var _a, _b, _c;
2108
+ if (!questionPaper)
2109
+ return questionPaper;
2110
+ if (!(questionPaper === null || questionPaper === void 0 ? void 0 : questionPaper.id) && ((_a = this.defaultAssessmentDTO) === null || _a === void 0 ? void 0 : _a.tenant)) {
2111
+ questionPaper.tenant = (_b = this.defaultAssessmentDTO) === null || _b === void 0 ? void 0 : _b.tenant;
2112
+ }
2113
+ (_c = questionPaper.questionPaperSectionList) === null || _c === void 0 ? void 0 : _c.forEach((section, sIndex) => {
2114
+ var _a;
2115
+ section.orderNo = sIndex + 1;
2116
+ let sectionMarks = 0;
2117
+ let sectionQuestionsCount = 0;
2118
+ (_a = section.sectionQuestionsList) === null || _a === void 0 ? void 0 : _a.forEach((q, qIndex) => {
2119
+ q.orderNo = qIndex + 1;
2120
+ const question = (q === null || q === void 0 ? void 0 : q.question) || questionBank[(q === null || q === void 0 ? void 0 : q.questionId) || -1];
2121
+ if (question && q.isActive !== false) {
2122
+ sectionMarks += Number(question.weight) || 0;
2123
+ sectionQuestionsCount++;
2124
+ }
2125
+ });
2126
+ section.totalMarks = sectionMarks;
2127
+ section.totalQuestions = sectionQuestionsCount;
2128
+ });
2129
+ return questionPaper;
2130
+ }
2131
+ generateAssessmentDTO(assessmentId, questionPaper) {
2132
+ var _a;
2133
+ return Object.assign({ id: assessmentId, totallMarks: ((_a = questionPaper === null || questionPaper === void 0 ? void 0 : questionPaper.questionPaperSectionList) === null || _a === void 0 ? void 0 : _a.filter((section) => section.isActive !== false).reduce((acc, section) => acc + (section.totalMarks || 0), 0)) || 0 }, (!assessmentId && Object.assign({}, this.defaultAssessmentDTO)));
2134
+ }
2135
+ generateAssessmentInstanceDTO(assessmentId) {
2136
+ var _a, _b;
2137
+ let d = new Date();
2138
+ let year = d.getFullYear();
2139
+ let month = d.getMonth();
2140
+ let day = d.getDate();
2141
+ let endDate = new Date(year + 20, month, day);
2142
+ return {
2143
+ id: 0,
2144
+ endDate: endDate,
2145
+ startDate: new Date(),
2146
+ assessment: Object.assign({ id: assessmentId }, (((_a = this.defaultAssessmentDTO) === null || _a === void 0 ? void 0 : _a.tenant) && { tenant: (_b = this.defaultAssessmentDTO) === null || _b === void 0 ? void 0 : _b.tenant }))
2147
+ };
2148
+ }
2149
+ }
2150
+ AssessmentBuilderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2151
+ AssessmentBuilderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentBuilderService, providedIn: 'root' });
2152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentBuilderService, decorators: [{
2153
+ type: Injectable,
2154
+ args: [{
2155
+ providedIn: 'root'
2156
+ }]
2157
+ }], ctorParameters: function () { return []; } });
2158
+
2159
+ class AssessmentMakerService {
2160
+ constructor(config, http) {
2161
+ this.config = config;
2162
+ this.http = http;
2163
+ }
2164
+ getConfigJSON(fileName) {
2165
+ return this.http.get(`/assets/commons-assessment/${fileName}.json`);
2166
+ }
2167
+ createAssessmentAndQuestionPaper(payload) {
2168
+ return this.http.post(this.config.baseURL + assessmentMakerController.assessmentAndQuestionPaper, payload);
2169
+ }
2170
+ patchAssessmentAndQuestionPaper(payload) {
2171
+ return this.http.patch(this.config.baseURL + assessmentMakerController.assessmentAndQuestionPaper, payload);
2172
+ }
2173
+ createQuestion(payload) {
2174
+ return this.http.post(this.config.baseURL + assessmentMakerController.createQuestion, payload);
2175
+ }
2176
+ patchQuestion(payload) {
2177
+ return this.http.patch(this.config.baseURL + assessmentMakerController.patchQuestion, payload);
2178
+ }
2179
+ getQuestionsByIds(params) {
2180
+ return this.http.get(this.config.baseURL + assessmentMakerController.getQuestionsByIds, { params });
2181
+ }
2182
+ getAssessmentContext(assessmentId) {
2183
+ return this.http.get(this.config.baseURL + assessmentMakerController.getAssessmentContext.replace('$AssessmentId', assessmentId.toString()));
2184
+ }
2185
+ duplicateSection(questionPaperId, sectionId) {
2186
+ var _a, _b;
2187
+ return this.http.patch(this.config.baseURL + ((_b = (_a = assessmentMakerController.duplicateSection) === null || _a === void 0 ? void 0 : _a.replace('$AssessmentQuestionPaperId', questionPaperId === null || questionPaperId === void 0 ? void 0 : questionPaperId.toString())) === null || _b === void 0 ? void 0 : _b.replace('$SectionId', sectionId === null || sectionId === void 0 ? void 0 : sectionId.toString())), {});
2188
+ }
2189
+ duplicateQuestion(sectionId, sectionQuestionId) {
2190
+ var _a, _b;
2191
+ return this.http.patch(this.config.baseURL + ((_b = (_a = assessmentMakerController.duplicateQuestion) === null || _a === void 0 ? void 0 : _a.replace('$SectionId', sectionId === null || sectionId === void 0 ? void 0 : sectionId.toString())) === null || _b === void 0 ? void 0 : _b.replace('$SectionQuestionId', sectionQuestionId === null || sectionQuestionId === void 0 ? void 0 : sectionQuestionId.toString())), {});
2192
+ }
2193
+ createAssessmentInstance(payload) {
2194
+ return this.http.post(this.config.baseURL + assessmentMakerController.createAssessmentInstance, payload);
2195
+ }
2196
+ }
2197
+ AssessmentMakerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentMakerService, deps: [{ token: LIBRARY_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
2198
+ AssessmentMakerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentMakerService, providedIn: 'root' });
2199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentMakerService, decorators: [{
2200
+ type: Injectable,
2201
+ args: [{
2202
+ providedIn: 'root'
2203
+ }]
2204
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
2205
+ type: Inject,
2206
+ args: [LIBRARY_CONFIG]
2207
+ }] }, { type: i1$1.HttpClient }]; } });
2208
+
2209
+ class AssessmentBuilderComponent {
2210
+ constructor(formBuilder, assessmentBuilderService, assessmentMakerService, dialogRef, dialogData) {
2211
+ this.formBuilder = formBuilder;
2212
+ this.assessmentBuilderService = assessmentBuilderService;
2213
+ this.assessmentMakerService = assessmentMakerService;
2214
+ this.dialogRef = dialogRef;
2215
+ this.dialogData = dialogData;
2216
+ this.labelConfig = {};
2217
+ this.imageConfig = {};
2218
+ this.questionTypes = [];
2219
+ this.questionDetails = null;
2220
+ this.rules = {};
2221
+ this.questionStack = [];
2222
+ this.childQuestionGroups = [];
2223
+ this.questionBank = {};
2224
+ this.isChild = false;
2225
+ // parentQuestion: AssessmentQuestion | null = null;
2226
+ this.assessmentId = 0;
2227
+ this.isSubmitting = false;
2228
+ }
2229
+ ngOnInit() {
2230
+ var _a, _b, _c, _d, _e, _f, _g, _h;
2231
+ this.labelConfig = (_a = this.dialogData) === null || _a === void 0 ? void 0 : _a.labelConfig;
2232
+ this.imageConfig = (_b = this.dialogData) === null || _b === void 0 ? void 0 : _b.imageConfig;
2233
+ this.rules = (_c = this.dialogData) === null || _c === void 0 ? void 0 : _c.rules;
2234
+ this.questionTypes = (_d = this.dialogData) === null || _d === void 0 ? void 0 : _d.questionTypes;
2235
+ this.questionBank = (_e = this.dialogData) === null || _e === void 0 ? void 0 : _e.questionBank;
2236
+ this.isChild = (_f = this.dialogData) === null || _f === void 0 ? void 0 : _f.isChild;
2237
+ this.assessmentId = (_g = this.dialogData) === null || _g === void 0 ? void 0 : _g.assessmentId;
2238
+ if (this.dialogData.questionDetails) {
2239
+ this.questionDetails = deepClone((_h = this.dialogData) === null || _h === void 0 ? void 0 : _h.questionDetails);
2240
+ }
2241
+ this.setupFormGroup();
2242
+ this.applyDynamicValidators();
2243
+ }
2244
+ generateChildQuestionList() {
2245
+ var _a, _b, _c, _d;
2246
+ if (this.isChild) {
2247
+ return [];
2248
+ }
2249
+ const uniqueIds = new Set();
2250
+ (_b = (_a = this.questionDetails) === null || _a === void 0 ? void 0 : _a.defaultOptionsList) === null || _b === void 0 ? void 0 : _b.forEach(option => {
2251
+ var _a;
2252
+ (_a = option.childQuestionList) === null || _a === void 0 ? void 0 : _a.forEach(id => uniqueIds.add(id));
2253
+ });
2254
+ return (_d = (_c = Array.from(uniqueIds)) === null || _c === void 0 ? void 0 : _c.map(id => {
2255
+ return this.questionBank[id] ? deepClone(this.questionBank[id]) : null;
2256
+ })) === null || _d === void 0 ? void 0 : _d.filter(Boolean);
2257
+ }
2258
+ setupFormGroup() {
2259
+ var _a;
2260
+ this.questionsFormGroup = this.formBuilder.group({
2261
+ questionType: ['', Validators.required],
2262
+ questionText: ['', Validators.required],
2263
+ isMandatory: [false],
2264
+ // visibility: [true],
2265
+ totalMarks: [null],
2266
+ minCharacterCount: [null],
2267
+ maxCharacterCount: [null],
2268
+ maximumNumberOfOption: [null],
2269
+ minimumNumberOfOption: [null],
2270
+ maxFileSize: [null],
2271
+ maxNoOfFiles: [null],
2272
+ customRegex: [''],
2273
+ hintText: [''],
2274
+ questionMedia: [''],
2275
+ options: this.formBuilder.array([]),
2276
+ childQuestions: [[]]
2277
+ });
2278
+ (_a = this.questionsFormGroup.get('questionType')) === null || _a === void 0 ? void 0 : _a.valueChanges.subscribe(() => {
2279
+ this.applyDynamicValidators();
2280
+ });
2281
+ if (this.questionDetails) {
2282
+ this.populateForm(this.questionDetails, true);
2283
+ }
2284
+ else {
2285
+ this.buildChildQuestionGroups([]);
2286
+ }
2287
+ }
2288
+ populateForm(questionDetails, buildChildGroups = false) {
2289
+ var _a;
2290
+ if (!questionDetails)
2291
+ return;
2292
+ const childQuestions = (questionDetails === null || questionDetails === void 0 ? void 0 : questionDetails.childQuestions) || this.generateChildQuestionList();
2293
+ const formData = this.assessmentBuilderService.getQuestionDTO(Object.assign(Object.assign({}, questionDetails), { childQuestions }));
2294
+ this.questionsFormGroup.patchValue(formData);
2295
+ if ((_a = formData.options) === null || _a === void 0 ? void 0 : _a.length) {
2296
+ formData.options.forEach((opt) => {
2297
+ const optGroup = this.createOption();
2298
+ optGroup.patchValue(opt);
2299
+ this.options.push(optGroup);
2300
+ });
2301
+ }
2302
+ if (buildChildGroups) {
2303
+ this.buildChildQuestionGroups(childQuestions);
2304
+ }
2305
+ }
2306
+ onSubmit() {
2307
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
2308
+ return __awaiter(this, void 0, void 0, function* () {
2309
+ if (this.questionsFormGroup.invalid) {
2310
+ this.questionsFormGroup.markAllAsTouched();
2311
+ return;
2312
+ }
2313
+ this.isSubmitting = true;
2314
+ if (this.questionStack.length > 0) {
2315
+ // child question logic
2316
+ const state = this.questionStack[this.questionStack.length - 1];
2317
+ if ((state === null || state === void 0 ? void 0 : state.editingQuestionIndex) !== undefined) {
2318
+ if (!state.parentFormValue.childQuestions) {
2319
+ state.parentFormValue.childQuestions = [];
2320
+ }
2321
+ // Update existing child
2322
+ const childQuestion = state.parentFormValue.childQuestions[state.editingQuestionIndex];
2323
+ const payload = this.assessmentBuilderService.setQuestionDTO(this.questionsFormGroup.value, childQuestion);
2324
+ try {
2325
+ const question = yield this.updateQuestion(payload);
2326
+ state.parentFormValue.childQuestions[state.editingQuestionIndex] = question;
2327
+ if (question === null || question === void 0 ? void 0 : question.id) {
2328
+ this.questionBank[question.id] = question;
2329
+ }
2330
+ this.isSubmitting = false;
2331
+ }
2332
+ catch (error) {
2333
+ this.isSubmitting = false;
2334
+ console.error(error);
2335
+ (_b = (_a = this.dialogData) === null || _a === void 0 ? void 0 : _a.snackbarMessageEmitter) === null || _b === void 0 ? void 0 : _b.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.ERROR_DEFAULT'], type: 'error' });
2336
+ throw { error, method: 'PATCH', payload };
2337
+ }
2338
+ }
2339
+ else {
2340
+ // Add new child
2341
+ const payload = this.assessmentBuilderService.setQuestionDTO(this.questionsFormGroup.value);
2342
+ try {
2343
+ const question = yield this.createQuestion(payload);
2344
+ (_d = (_c = state === null || state === void 0 ? void 0 : state.parentFormValue) === null || _c === void 0 ? void 0 : _c.childQuestions) === null || _d === void 0 ? void 0 : _d.push(question);
2345
+ if (question === null || question === void 0 ? void 0 : question.id) {
2346
+ this.questionBank[question.id] = question;
2347
+ const grp = this.childQuestionGroups.find((g) => g.id === state.addingToGroupId);
2348
+ if (grp) {
2349
+ (_e = grp.questionIds) === null || _e === void 0 ? void 0 : _e.push(question === null || question === void 0 ? void 0 : question.id);
2350
+ if (grp.optionId) {
2351
+ const opt = (_g = (_f = state.parentFormValue) === null || _f === void 0 ? void 0 : _f.defaultOptionsList) === null || _g === void 0 ? void 0 : _g.find((o) => (o.id || o.uuid) == grp.optionId);
2352
+ if (opt) {
2353
+ opt.childQuestionList = opt.childQuestionList || [];
2354
+ opt.childQuestionList.push(question.id);
2355
+ }
2356
+ }
2357
+ }
2358
+ else {
2359
+ this.childQuestionGroups.push({
2360
+ id: generateUuid(),
2361
+ optionId: null,
2362
+ questionIds: [question === null || question === void 0 ? void 0 : question.id]
2363
+ });
2364
+ }
2365
+ }
2366
+ this.isSubmitting = false;
2367
+ }
2368
+ catch (error) {
2369
+ this.isSubmitting = false;
2370
+ console.error(error);
2371
+ (_j = (_h = this.dialogData) === null || _h === void 0 ? void 0 : _h.snackbarMessageEmitter) === null || _j === void 0 ? void 0 : _j.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.ERROR_DEFAULT'], type: 'error' });
2372
+ throw { error, method: 'POST', payload };
2373
+ }
2374
+ }
2375
+ this.questionStack.pop();
2376
+ // Re-populate parent form
2377
+ this.resetAndPopulate(state === null || state === void 0 ? void 0 : state.parentFormValue);
2378
+ }
2379
+ else {
2380
+ let questionDTO = this.assessmentBuilderService.setQuestionDTO(this.questionsFormGroup.value, this.questionDetails);
2381
+ // Update local template tree representation
2382
+ if ((_k = this.questionDetails) === null || _k === void 0 ? void 0 : _k.id) {
2383
+ try {
2384
+ questionDTO = yield this.updateQuestion(questionDTO);
2385
+ if (questionDTO === null || questionDTO === void 0 ? void 0 : questionDTO.id) {
2386
+ this.questionBank[questionDTO.id] = questionDTO;
2387
+ }
2388
+ (_m = (_l = this.dialogData) === null || _l === void 0 ? void 0 : _l.snackbarMessageEmitter) === null || _m === void 0 ? void 0 : _m.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.QUESTION_UPDATED_SUCCESS'], type: 'success' });
2389
+ this.dialogRef.close({ success: true });
2390
+ this.isSubmitting = false;
2391
+ }
2392
+ catch (error) {
2393
+ this.isSubmitting = false;
2394
+ console.error(error);
2395
+ (_p = (_o = this.dialogData) === null || _o === void 0 ? void 0 : _o.snackbarMessageEmitter) === null || _p === void 0 ? void 0 : _p.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.ERROR_DEFAULT'], type: 'error' });
2396
+ throw { error, method: 'PATCH', payload: questionDTO };
2397
+ }
2398
+ }
2399
+ else {
2400
+ this.createOrEditAssessmentAndQuestionPaper(questionDTO);
2401
+ }
2402
+ }
2403
+ });
2404
+ }
2405
+ createQuestion(payload) {
2406
+ return new Promise((resolve, reject) => {
2407
+ this.assessmentMakerService.createQuestion(payload).subscribe({
2408
+ next: (res) => resolve(res),
2409
+ error: (err) => reject(err)
2410
+ });
2411
+ });
2412
+ }
2413
+ updateQuestion(payload) {
2414
+ return new Promise((resolve, reject) => {
2415
+ this.assessmentMakerService.patchQuestion(payload).subscribe({
2416
+ next: (res) => resolve(res),
2417
+ error: (err) => reject(err)
2418
+ });
2419
+ });
2420
+ }
2421
+ createOrEditAssessmentAndQuestionPaper(question) {
2422
+ var _a, _b, _c, _d, _e, _f;
2423
+ const questionPaper = deepClone((_a = this.dialogData) === null || _a === void 0 ? void 0 : _a.assessmentQuestionPaperData);
2424
+ const sectionQuestion = this.assessmentBuilderService.generateSectionQuestion(question);
2425
+ if (!((_b = this.dialogData) === null || _b === void 0 ? void 0 : _b.sectionDetails)) {
2426
+ const list = questionPaper === null || questionPaper === void 0 ? void 0 : questionPaper.questionPaperSectionList;
2427
+ const lastSequence = (list === null || list === void 0 ? void 0 : list.length) ? list[list.length - 1].orderNo || 0 : 0;
2428
+ const newSection = this.assessmentBuilderService.createNewSection(lastSequence + 1);
2429
+ (_c = newSection === null || newSection === void 0 ? void 0 : newSection.sectionQuestionsList) === null || _c === void 0 ? void 0 : _c.push(sectionQuestion);
2430
+ (_d = questionPaper === null || questionPaper === void 0 ? void 0 : questionPaper.questionPaperSectionList) === null || _d === void 0 ? void 0 : _d.push(newSection);
2431
+ }
2432
+ else {
2433
+ const sectionRef = (_e = questionPaper === null || questionPaper === void 0 ? void 0 : questionPaper.questionPaperSectionList) === null || _e === void 0 ? void 0 : _e.find((section) => { var _a, _b; return (section === null || section === void 0 ? void 0 : section.id) == ((_b = (_a = this.dialogData) === null || _a === void 0 ? void 0 : _a.sectionDetails) === null || _b === void 0 ? void 0 : _b.id); });
2434
+ (_f = sectionRef === null || sectionRef === void 0 ? void 0 : sectionRef.sectionQuestionsList) === null || _f === void 0 ? void 0 : _f.push(sectionQuestion);
2435
+ }
2436
+ const questionPaperDTO = this.assessmentBuilderService.generateQuestionPaperDTO(questionPaper, this.questionBank);
2437
+ const assessmentDTO = this.assessmentBuilderService.generateAssessmentDTO(this.assessmentId, questionPaperDTO);
2438
+ const payload = {
2439
+ assessment: assessmentDTO,
2440
+ questionPaper: questionPaperDTO
2441
+ };
2442
+ const apiCall = this.assessmentId
2443
+ ? this.assessmentMakerService.patchAssessmentAndQuestionPaper(payload)
2444
+ : this.assessmentMakerService.createAssessmentAndQuestionPaper(payload);
2445
+ apiCall.subscribe({
2446
+ next: (res) => {
2447
+ var _a;
2448
+ this.isSubmitting = false;
2449
+ this.dialogRef.close({
2450
+ success: true,
2451
+ assessmentId: (_a = res === null || res === void 0 ? void 0 : res.assessment) === null || _a === void 0 ? void 0 : _a.id,
2452
+ questionPaper: res === null || res === void 0 ? void 0 : res.questionPaper,
2453
+ questionMap: res === null || res === void 0 ? void 0 : res.questionMap
2454
+ });
2455
+ },
2456
+ error: (error) => {
2457
+ var _a, _b;
2458
+ console.error(error);
2459
+ this.isSubmitting = false;
2460
+ (_b = (_a = this.dialogData) === null || _a === void 0 ? void 0 : _a.snackbarMessageEmitter) === null || _b === void 0 ? void 0 : _b.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.ERROR_DEFAULT'], type: 'error' });
2461
+ throw { error, method: this.assessmentId ? 'PATCH' : 'POST', payload };
2462
+ }
2463
+ });
2464
+ }
2465
+ applyDynamicValidators() {
2466
+ var _a;
2467
+ if (!this.rules || Object.keys(this.rules).length === 0)
2468
+ return;
2469
+ const form = this.questionsFormGroup;
2470
+ const qType = (_a = form.get('questionType')) === null || _a === void 0 ? void 0 : _a.value;
2471
+ const currentRules = this.rules[qType] || {};
2472
+ const excludedControls = new Set(['questionType', 'questionText', 'options', 'visibility', 'isMandatory']);
2473
+ // Handle normal controls
2474
+ Object.entries(form.controls).forEach(([key, control]) => {
2475
+ if (excludedControls.has(key))
2476
+ return;
2477
+ const rule = currentRules[key];
2478
+ if (rule === null || rule === void 0 ? void 0 : rule.visible) {
2479
+ const validators = (rule === null || rule === void 0 ? void 0 : rule.required) ? [Validators.required] : [];
2480
+ if (key === 'questionMedia') {
2481
+ validators.push(Validators.pattern(/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?(\?[^\s]*)?$/i));
2482
+ }
2483
+ control.setValidators(validators.length > 0 ? validators : null);
2484
+ }
2485
+ else {
2486
+ control.clearValidators();
2487
+ control.setValue(key === 'childQuestions' ? [] : null, { emitEvent: false });
2488
+ }
2489
+ control.updateValueAndValidity({ emitEvent: false });
2490
+ });
2491
+ // Handle options FormArray
2492
+ const optionsControl = form.get('options');
2493
+ const optionsRule = currentRules['options'];
2494
+ if (!(optionsRule === null || optionsRule === void 0 ? void 0 : optionsRule.visible)) {
2495
+ optionsControl.clearValidators();
2496
+ optionsControl.clear();
2497
+ optionsControl.updateValueAndValidity({ emitEvent: false });
2498
+ return;
2499
+ }
2500
+ const optionsValidator = (optionsRule === null || optionsRule === void 0 ? void 0 : optionsRule.required) ? (control) => {
2501
+ const activeOptions = (control.value || []).filter((opt) => opt.isActive !== false);
2502
+ return activeOptions.length > 0 ? null : { required: true };
2503
+ } : null;
2504
+ optionsControl.setValidators(optionsValidator);
2505
+ const showWeightage = optionsRule === null || optionsRule === void 0 ? void 0 : optionsRule.showWeightage;
2506
+ const showRemarks = optionsRule === null || optionsRule === void 0 ? void 0 : optionsRule.showRemarks;
2507
+ optionsControl.controls.forEach(optGroup => {
2508
+ const weightCtrl = optGroup.get('weight');
2509
+ const remarksCtrl = optGroup.get('remarksRequired');
2510
+ if (!showWeightage)
2511
+ weightCtrl === null || weightCtrl === void 0 ? void 0 : weightCtrl.setValue(0, { emitEvent: false });
2512
+ if (!showRemarks)
2513
+ remarksCtrl === null || remarksCtrl === void 0 ? void 0 : remarksCtrl.setValue(false, { emitEvent: false });
2514
+ weightCtrl === null || weightCtrl === void 0 ? void 0 : weightCtrl.updateValueAndValidity({ emitEvent: false });
2515
+ remarksCtrl === null || remarksCtrl === void 0 ? void 0 : remarksCtrl.updateValueAndValidity({ emitEvent: false });
2516
+ });
2517
+ optionsControl.updateValueAndValidity({ emitEvent: false });
2518
+ }
2519
+ showField(fieldName, nestedProp) {
2520
+ var _a, _b, _c;
2521
+ const questionType = (_b = (_a = this.questionsFormGroup) === null || _a === void 0 ? void 0 : _a.get('questionType')) === null || _b === void 0 ? void 0 : _b.value;
2522
+ if (!questionType || !this.rules[questionType] || !this.rules[questionType][fieldName]) {
2523
+ return false;
2524
+ }
2525
+ if (nestedProp) {
2526
+ return !!this.rules[questionType][fieldName][nestedProp];
2527
+ }
2528
+ return !!((_c = this.rules[questionType][fieldName]) === null || _c === void 0 ? void 0 : _c.visible);
2529
+ }
2530
+ get options() {
2531
+ return this.questionsFormGroup.get('options');
2532
+ }
2533
+ addOption() {
2534
+ this.options.push(this.createOption());
2535
+ }
2536
+ removeOption(index) {
2537
+ var _a, _b, _c;
2538
+ const removedOption = this.options.at(index);
2539
+ const removedOptionId = (_a = removedOption.get('id')) === null || _a === void 0 ? void 0 : _a.value;
2540
+ const removedOptionUuid = (_b = removedOption.get('uuid')) === null || _b === void 0 ? void 0 : _b.value;
2541
+ const uniqueId = removedOptionId || removedOptionUuid;
2542
+ if (removedOptionId) {
2543
+ (_c = removedOption.get('isActive')) === null || _c === void 0 ? void 0 : _c.setValue(false);
2544
+ }
2545
+ else {
2546
+ this.options.removeAt(index);
2547
+ }
2548
+ this.childQuestionGroups.forEach(g => {
2549
+ if (g.optionId === uniqueId) {
2550
+ g.optionId = null;
2551
+ }
2552
+ });
2553
+ }
2554
+ createOption() {
2555
+ return this.formBuilder.group({
2556
+ id: [0],
2557
+ uuid: [generateUuid()],
2558
+ optionLabel: ['', Validators.required],
2559
+ weight: [0],
2560
+ remarksRequired: [false],
2561
+ isActive: [true],
2562
+ childQuestionList: [[]]
2563
+ });
2564
+ }
2565
+ allowOnlyNumbers(event) {
2566
+ event.target.value = event.target.value.replace(/\D/g, '');
2567
+ }
2568
+ imageErrorHandler(event, filePath) {
2569
+ event.target.src = filePath;
2570
+ }
2571
+ addEditChildQuestion(childQuestion, index, groupId) {
2572
+ var _a;
2573
+ // Save current parent state
2574
+ const questionData = this.assessmentBuilderService.setQuestionDTO(this.questionsFormGroup.value, this.questionDetails);
2575
+ this.questionStack.push({
2576
+ parentFormValue: Object.assign(Object.assign({}, questionData), { childQuestions: (_a = this.questionsFormGroup.get('childQuestions')) === null || _a === void 0 ? void 0 : _a.value }),
2577
+ editingQuestionIndex: index,
2578
+ addingToGroupId: groupId
2579
+ });
2580
+ // Reset form for child
2581
+ this.questionsFormGroup.reset({
2582
+ questionType: '',
2583
+ questionText: '',
2584
+ isMandatory: false,
2585
+ // visibility: true,
2586
+ totalMarks: null,
2587
+ minCharacterCount: null,
2588
+ maxCharacterCount: null,
2589
+ maximumNumberOfOption: null,
2590
+ minimumNumberOfOption: null,
2591
+ maxFileSize: null,
2592
+ maxNoOfFiles: null,
2593
+ customRegex: '',
2594
+ hintText: '',
2595
+ questionMedia: '',
2596
+ childQuestions: [[]]
2597
+ });
2598
+ const optionsControl = this.questionsFormGroup.get('options');
2599
+ while (optionsControl.length !== 0) {
2600
+ optionsControl.removeAt(0);
2601
+ }
2602
+ this.applyDynamicValidators();
2603
+ if (childQuestion) {
2604
+ this.populateForm(childQuestion);
2605
+ }
2606
+ this.scrollToTop();
2607
+ }
2608
+ deleteChildQuestion(index, event) {
2609
+ var _a, _b;
2610
+ event.stopPropagation();
2611
+ const deletedChild = (_a = this.questionsFormGroup.get('childQuestions')) === null || _a === void 0 ? void 0 : _a.value[index];
2612
+ this.options.controls.forEach(opt => {
2613
+ var _a, _b;
2614
+ let childList = [...(((_a = opt.get('childQuestionList')) === null || _a === void 0 ? void 0 : _a.value) || [])];
2615
+ childList = childList.filter((id) => id !== deletedChild.id);
2616
+ (_b = opt.get('childQuestionList')) === null || _b === void 0 ? void 0 : _b.setValue(childList);
2617
+ });
2618
+ (_b = this.questionsFormGroup.get('childQuestions')) === null || _b === void 0 ? void 0 : _b.value.splice(index, 1);
2619
+ this.childQuestionGroups.forEach(g => {
2620
+ g.questionIds = g.questionIds.filter(qid => qid !== deletedChild.id);
2621
+ });
2622
+ this.childQuestionGroups = this.childQuestionGroups.filter(g => g.questionIds.length > 0);
2623
+ }
2624
+ getOptionId(opt) {
2625
+ var _a, _b, _c;
2626
+ return ((_a = opt.get('id')) === null || _a === void 0 ? void 0 : _a.value) ? (_b = opt.get('id')) === null || _b === void 0 ? void 0 : _b.value : (_c = opt.get('uuid')) === null || _c === void 0 ? void 0 : _c.value;
2627
+ }
2628
+ getChildQuestionById(id) {
2629
+ var _a, _b;
2630
+ return (_b = (_a = this.questionsFormGroup.get('childQuestions')) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.find((q) => q.id === id);
2631
+ }
2632
+ getChildQuestionIndex(id) {
2633
+ var _a, _b;
2634
+ return (_b = (_a = this.questionsFormGroup.get('childQuestions')) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.findIndex((q) => q.id === id);
2635
+ }
2636
+ deleteChildQuestionById(id, event) {
2637
+ event.stopPropagation();
2638
+ const index = this.getChildQuestionIndex(id);
2639
+ if (index > -1) {
2640
+ this.deleteChildQuestion(index, event);
2641
+ }
2642
+ }
2643
+ buildChildQuestionGroups(childQuestions) {
2644
+ this.childQuestionGroups = [];
2645
+ const processedQuestionIds = new Set();
2646
+ this.options.controls.forEach(opt => {
2647
+ var _a;
2648
+ const optionId = this.getOptionId(opt);
2649
+ const childList = ((_a = opt.get('childQuestionList')) === null || _a === void 0 ? void 0 : _a.value) || [];
2650
+ if (childList.length > 0) {
2651
+ this.childQuestionGroups.push({
2652
+ id: generateUuid(),
2653
+ optionId: optionId,
2654
+ questionIds: [...childList]
2655
+ });
2656
+ childList.forEach((id) => processedQuestionIds.add(id));
2657
+ }
2658
+ });
2659
+ childQuestions.forEach(cq => {
2660
+ if (cq.id && !processedQuestionIds.has(cq.id)) {
2661
+ this.childQuestionGroups.push({
2662
+ id: generateUuid(),
2663
+ optionId: null,
2664
+ questionIds: [cq.id]
2665
+ });
2666
+ }
2667
+ });
2668
+ }
2669
+ onGroupOptionChange(groupId, newOptionId) {
2670
+ var _a, _b, _c, _d;
2671
+ const groupIndex = this.childQuestionGroups.findIndex(g => g.id === groupId);
2672
+ if (groupIndex === -1)
2673
+ return;
2674
+ const group = this.childQuestionGroups[groupIndex];
2675
+ const oldOptionId = group.optionId;
2676
+ if (oldOptionId) {
2677
+ const oldOpt = this.options.controls.find(opt => this.getOptionId(opt) === oldOptionId);
2678
+ if (oldOpt) {
2679
+ let childList = [...(((_a = oldOpt.get('childQuestionList')) === null || _a === void 0 ? void 0 : _a.value) || [])];
2680
+ childList = childList.filter(id => !group.questionIds.includes(id));
2681
+ (_b = oldOpt.get('childQuestionList')) === null || _b === void 0 ? void 0 : _b.setValue(childList);
2682
+ }
2683
+ }
2684
+ const existingGroup = this.childQuestionGroups.find(g => g.id !== groupId && g.optionId === newOptionId);
2685
+ if (existingGroup && newOptionId) {
2686
+ existingGroup.questionIds.push(...group.questionIds);
2687
+ this.childQuestionGroups.splice(groupIndex, 1);
2688
+ }
2689
+ else {
2690
+ group.optionId = newOptionId;
2691
+ }
2692
+ if (newOptionId) {
2693
+ const newOpt = this.options.controls.find(opt => this.getOptionId(opt) === newOptionId);
2694
+ if (newOpt) {
2695
+ let childList = [...(((_c = newOpt.get('childQuestionList')) === null || _c === void 0 ? void 0 : _c.value) || [])];
2696
+ const set = new Set([...childList, ...group.questionIds]);
2697
+ (_d = newOpt.get('childQuestionList')) === null || _d === void 0 ? void 0 : _d.setValue(Array.from(set));
2698
+ }
2699
+ }
2700
+ }
2701
+ goBack() {
2702
+ if (this.questionStack.length === 0) {
2703
+ this.dialogRef.close();
2704
+ return;
2705
+ }
2706
+ const state = this.questionStack.pop();
2707
+ this.resetAndPopulate(state === null || state === void 0 ? void 0 : state.parentFormValue);
2708
+ this.scrollToTop();
2709
+ }
2710
+ resetAndPopulate(parentValue) {
2711
+ this.questionsFormGroup.reset();
2712
+ const optionsControl = this.questionsFormGroup.get('options');
2713
+ while (optionsControl.length !== 0) {
2714
+ optionsControl.removeAt(0);
2715
+ }
2716
+ this.populateForm(parentValue);
2717
+ }
2718
+ scrollToTop() {
2719
+ if (this.scrollContainer && this.scrollContainer.nativeElement) {
2720
+ setTimeout(() => {
2721
+ this.scrollContainer.nativeElement.scrollTop = 0;
2722
+ }, 0);
2723
+ }
2724
+ }
2725
+ }
2726
+ AssessmentBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentBuilderComponent, deps: [{ token: i1$2.FormBuilder }, { token: AssessmentBuilderService }, { token: AssessmentMakerService }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
2727
+ AssessmentBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AssessmentBuilderComponent, selector: "lib-app-assessment-builder", viewQueries: [{ propertyName: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true }], ngImport: i0, template: "<div class=\"d-flex vh-100 position-relative overflow-hidden\">\r\n <div *ngIf=\"questionStack.length > 0 || isChild\"\r\n class=\"p-3 px-2 col-auto assessment-bg-palette-C8DAF9 flex-column align-items-center justify-content-end d-md-flex d-none\">\r\n <p class=\"m-0 assessment-text-semibold-18 vertical-text\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.CHILD_QUESTION']}}\r\n </p>\r\n </div>\r\n <div class=\"flex-grow-1 h-100 d-flex flex-column position-relative\">\r\n <header\r\n class=\"p-3 d-flex align-items-center justify-content-between position-sticky top-0 col-12 border-bottom\">\r\n <p *ngIf=\"questionStack.length == 0\" class=\"mb-0 assessment-text-semibold-18 d-md-inline d-none\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.INPUT_FIELD_SETTINGS']}}\r\n </p>\r\n <button *ngIf=\"questionStack.length > 0\" (click)=\"goBack()\"\r\n class=\"d-flex align-items-center gap-2 assessment-text-grey-ten border-0 outline-0 assessment-text-medium-14 bg-transparent\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.GO_BACK']\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/go-back.svg')\" />\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.GO_BACK']}}\r\n </button>\r\n <div class=\"d-flex align-items-center justify-content-md-end justify-content-between gap-3 flex-grow-1\">\r\n <button (click)=\"onSubmit()\" [disabled]=\"isSubmitting\"\r\n class=\"assessment-btn-primary assessment-button-padding assessment-text-medium-13 assessment-zoom-animation assessment-button-padding position-relative\">\r\n <span [ngClass]=\"{'opacity-0': isSubmitting}\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.SAVE_QUESTION']}}\r\n </span>\r\n <mat-spinner *ngIf=\"isSubmitting\" [diameter]=\"20\"\r\n class=\"position-absolute top-50 start-50 translate-middle assessment-spinner-white\"></mat-spinner>\r\n </button>\r\n <img class=\"d-md-none\" *ngIf=\"questionStack.length == 0\" mat-dialog-close\r\n [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.CLOSE']\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/close.svg')\" />\r\n </div>\r\n </header>\r\n <div #scrollContainer class=\"col-12 py-4 px-md-4 px-3 flex-grow-1 overflow-y-auto form-container\"\r\n [formGroup]=\"questionsFormGroup\">\r\n <div class=\"pb-4 col-12\">\r\n <label\r\n class=\"mb-2 assessment-text-medium-16 assessment-text-grey-ten col-12\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.TYPE']}}</label>\r\n <mat-select formControlName=\"questionType\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.SELECT_QUESTION_TYPE']\"\r\n class=\"assessment-mat-select col-12 assessment-border-radius-two outline-0 assessment-input-border-one assessment-text-medium-13 assessment-bg-grey-one\">\r\n <mat-option class=\"assessment-text-medium-13\" *ngFor=\"let type of questionTypes\" [value]=\"type?.code\">\r\n {{type?.label}}\r\n </mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"questionsFormGroup.get('questionType')?.errors && questionsFormGroup.get('questionType')?.touched\"\r\n class=\"assessment-text-regular-12 assessment-text-danger\">{{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED']}}</mat-error>\r\n </div>\r\n <div class=\"pb-4 col-12\">\r\n <label class=\"mb-2 assessment-text-medium-16 assessment-text-grey-ten\">Question</label>\r\n <app-text-editor [preText]=\"questionsFormGroup?.get('questionText')?.value\"\r\n (inputChange)=\"questionsFormGroup?.get('questionText')?.patchValue($event)\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.ENTER_QUESTION']\"\r\n class=\"assessment-custom-angular-editor-white assessment-text-regular-13 assessment-text-grey-ten\"\r\n [height]=\"'8rem'\">\r\n </app-text-editor>\r\n <mat-error\r\n *ngIf=\"questionsFormGroup.get('questionText')?.errors && questionsFormGroup.get('questionText')?.touched\"\r\n class=\"assessment-text-regular-12 assessment-text-danger\">{{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED']}}</mat-error>\r\n <div class=\"col-12 position-relative mt-3\" *ngIf=\"showField('questionMedia')\">\r\n <input formControlName=\"questionMedia\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.ENTER_QUESTION_MEDIA']\"\r\n class=\"col-12 assessment-input-padding assessment-border-radius-two outline-0 assessment-input-border-one assessment-text-medium-13 assessment-bg-grey-one\"\r\n [ngClass]=\"{'border-danger': questionsFormGroup.get('questionMedia')?.invalid && questionsFormGroup.get('questionMedia')?.touched}\">\r\n <mat-error\r\n *ngIf=\"questionsFormGroup.get('questionMedia')?.hasError('pattern') && questionsFormGroup.get('questionMedia')?.touched\"\r\n class=\"assessment-text-regular-12 assessment-text-danger mt-1\">\r\n {{labelConfig['COMMONS_ASSESSMENT.ERROR.INVALID_URL']}}\r\n </mat-error>\r\n <mat-error\r\n *ngIf=\"questionsFormGroup.get('questionMedia')?.hasError('required') && questionsFormGroup.get('questionMedia')?.touched\"\r\n class=\"assessment-text-regular-12 assessment-text-danger mt-1\">{{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED']}}</mat-error>\r\n </div>\r\n </div>\r\n <div class=\"row mx-0 col-12 pb-4\" *ngIf=\"showField('minCharacterCount') || showField('maxCharacterCount')\">\r\n <div class=\"col-6 ps-0\" *ngIf=\"showField('minCharacterCount')\">\r\n <label\r\n class=\"mb-1 assessment-text-medium-13 assessment-text-grey-ten\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.MIN_CHARACTER_LIMIT']}}</label>\r\n <div class=\"col-12 d-flex align-items-center gap-2 position-relative\">\r\n <input formControlName=\"minCharacterCount\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.NOT_SET']\"\r\n (input)=\"allowOnlyNumbers($event)\"\r\n (blur)=\"questionsFormGroup.get('minCharacterCount')?.markAsTouched()\"\r\n class=\"col-12 assessment-input-padding assessment-border-radius-two outline-0 assessment-input-border-one assessment-text-medium-13 assessment-bg-grey-one\">\r\n <span\r\n class=\"assessment-text-regular-12 assessment-text-grey-seven position-absolute end-0 me-3\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.CHARACTERS']}}</span>\r\n </div>\r\n <mat-error\r\n *ngIf=\"questionsFormGroup.get('minCharacterCount')?.errors && questionsFormGroup.get('minCharacterCount')?.touched\"\r\n class=\"assessment-text-regular-12 assessment-text-danger\">{{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED']}}</mat-error>\r\n </div>\r\n <div class=\"col-6 pe-0\" *ngIf=\"showField('maxCharacterCount')\">\r\n <label\r\n class=\"mb-1 assessment-text-medium-13 assessment-text-grey-ten\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.MAX_CHARACTER_LIMIT']}}</label>\r\n <div class=\"col-12 d-flex align-items-center gap-2 position-relative\">\r\n <input formControlName=\"maxCharacterCount\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.NOT_SET']\"\r\n (input)=\"allowOnlyNumbers($event)\"\r\n (blur)=\"questionsFormGroup.get('maxCharacterCount')?.markAsTouched()\"\r\n class=\"col-12 assessment-input-padding assessment-border-radius-two outline-0 assessment-input-border-one assessment-text-medium-13 assessment-bg-grey-one\">\r\n <span\r\n class=\"assessment-text-regular-12 assessment-text-grey-seven position-absolute end-0 me-3\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.CHARACTERS']}}</span>\r\n </div>\r\n <mat-error\r\n *ngIf=\"questionsFormGroup.get('maxCharacterCount')?.errors && questionsFormGroup.get('maxCharacterCount')?.touched\"\r\n class=\"assessment-text-regular-12 assessment-text-danger\">{{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED']}}</mat-error>\r\n </div>\r\n </div>\r\n <div class=\"row mx-0 col-12 pb-4\" *ngIf=\"showField('maxFileSize') || showField('maxNoOfFiles')\">\r\n <div class=\"col-6 ps-0\" *ngIf=\"showField('maxFileSize')\">\r\n <label\r\n class=\"mb-1 assessment-text-medium-13 assessment-text-grey-ten\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.MAX_FILE_SIZE']}}</label>\r\n <div class=\"col-12 d-flex align-items-center gap-2 position-relative\">\r\n <input formControlName=\"maxFileSize\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.NOT_SET']\"\r\n (input)=\"allowOnlyNumbers($event)\"\r\n (blur)=\"questionsFormGroup.get('maxFileSize')?.markAsTouched()\"\r\n class=\"col-12 assessment-input-padding assessment-border-radius-two outline-0 assessment-input-border-one assessment-text-medium-13 assessment-bg-grey-one\">\r\n <span\r\n class=\"assessment-text-regular-12 assessment-text-grey-seven position-absolute end-0 me-3\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.MB']}}</span>\r\n </div>\r\n <mat-error\r\n *ngIf=\"questionsFormGroup.get('maxFileSize')?.errors && questionsFormGroup.get('maxFileSize')?.touched\"\r\n class=\"assessment-text-regular-12 assessment-text-danger\">{{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED']}}</mat-error>\r\n </div>\r\n <div class=\"col-6 pe-0\" *ngIf=\"showField('maxNoOfFiles')\">\r\n <label\r\n class=\"mb-1 assessment-text-medium-13 assessment-text-grey-ten\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.MAX_NO_OF_FILES']}}</label>\r\n <div class=\"col-12 d-flex align-items-center gap-2 position-relative\">\r\n <input formControlName=\"maxNoOfFiles\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.NOT_SET']\"\r\n (input)=\"allowOnlyNumbers($event)\"\r\n (blur)=\"questionsFormGroup.get('maxNoOfFiles')?.markAsTouched()\"\r\n class=\"col-12 assessment-input-padding assessment-border-radius-two outline-0 assessment-input-border-one assessment-text-medium-13 assessment-bg-grey-one\">\r\n <span\r\n class=\"assessment-text-regular-12 assessment-text-grey-seven position-absolute end-0 me-3\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.FILES']}}</span>\r\n </div>\r\n <mat-error\r\n *ngIf=\"questionsFormGroup.get('maxNoOfFiles')?.errors && questionsFormGroup.get('maxNoOfFiles')?.touched\"\r\n class=\"assessment-text-regular-12 assessment-text-danger\">{{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED']}}</mat-error>\r\n </div>\r\n </div>\r\n <div class=\"pb-4 col-12\" *ngIf=\"showField('customRegex')\">\r\n <label\r\n class=\"mb-1 assessment-text-medium-13 assessment-text-grey-ten\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.CUSTOM_REGEX']}}</label>\r\n <div class=\"col-12 d-flex align-items-center gap-2 position-relative\">\r\n <input formControlName=\"customRegex\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.ENTER_CUSTOM_REGEX']\"\r\n (blur)=\"questionsFormGroup.get('customRegex')?.markAsTouched()\"\r\n class=\"col-12 assessment-input-padding assessment-border-radius-two outline-0 assessment-input-border-one assessment-text-medium-13 assessment-bg-grey-one\">\r\n </div>\r\n <mat-error\r\n *ngIf=\"questionsFormGroup.get('customRegex')?.errors && questionsFormGroup.get('customRegex')?.touched\"\r\n class=\"assessment-text-regular-12 assessment-text-danger\">{{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED']}}</mat-error>\r\n </div>\r\n <div class=\"pb-4 col-12\" *ngIf=\"showField('totalMarks') && !isChild && questionStack.length == 0\">\r\n <label\r\n class=\"mb-1 assessment-text-medium-13 assessment-text-grey-ten\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.TOTAL_MARKS']}}</label>\r\n <div class=\"col-12 d-flex align-items-center gap-2 position-relative\">\r\n <input formControlName=\"totalMarks\" placeholder=\"0\" (input)=\"allowOnlyNumbers($event)\"\r\n (blur)=\"questionsFormGroup.get('totalMarks')?.markAsTouched()\"\r\n class=\"col-12 assessment-input-padding assessment-border-radius-two outline-0 assessment-input-border-one assessment-text-medium-13 assessment-bg-grey-one\">\r\n <span\r\n class=\"assessment-text-regular-12 assessment-text-grey-seven position-absolute end-0 me-3\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.MARKS']}}</span>\r\n </div>\r\n <mat-error\r\n *ngIf=\"questionsFormGroup.get('totalMarks')?.errors && questionsFormGroup.get('totalMarks')?.touched\"\r\n class=\"assessment-text-regular-12 assessment-text-danger\">{{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED']}}</mat-error>\r\n </div>\r\n\r\n <div class=\"row mx-0 col-12 pb-4\"\r\n *ngIf=\"showField('minimumNumberOfOption') || showField('maximumNumberOfOption')\">\r\n <div class=\"col-6 ps-0\" *ngIf=\"showField('minimumNumberOfOption')\">\r\n <label\r\n class=\"mb-1 assessment-text-medium-13 assessment-text-grey-ten\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.MIN_OPTION_SELECT_LIMIT']}}</label>\r\n <div class=\"col-12 d-flex align-items-center gap-2 position-relative\">\r\n <input formControlName=\"minimumNumberOfOption\" placeholder=\"0\"\r\n (input)=\"allowOnlyNumbers($event)\"\r\n (blur)=\"questionsFormGroup.get('minimumNumberOfOption')?.markAsTouched()\"\r\n class=\"col-12 assessment-input-padding assessment-border-radius-two outline-0 assessment-input-border-one assessment-text-medium-13 assessment-bg-grey-one\">\r\n <span\r\n class=\"assessment-text-regular-12 assessment-text-grey-seven position-absolute end-0 me-3\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.OPTIONS']}}</span>\r\n </div>\r\n <mat-error\r\n *ngIf=\"questionsFormGroup.get('minimumNumberOfOption')?.errors && questionsFormGroup.get('minimumNumberOfOption')?.touched\"\r\n class=\"assessment-text-regular-12 assessment-text-danger\">{{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED']}}</mat-error>\r\n </div>\r\n <div class=\"col-6 pe-0\" *ngIf=\"showField('maximumNumberOfOption')\">\r\n <label\r\n class=\"mb-1 assessment-text-medium-13 assessment-text-grey-ten\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.MAX_OPTION_SELECT_LIMIT']}}</label>\r\n <div class=\"col-12 d-flex align-items-center gap-2 position-relative\">\r\n <input formControlName=\"maximumNumberOfOption\" [placeholder]=\"options.length || 0\"\r\n (input)=\"allowOnlyNumbers($event)\"\r\n (blur)=\"questionsFormGroup.get('maximumNumberOfOption')?.markAsTouched()\"\r\n class=\"col-12 assessment-input-padding assessment-border-radius-two outline-0 assessment-input-border-one assessment-text-medium-13 assessment-bg-grey-one\">\r\n <span\r\n class=\"assessment-text-regular-12 assessment-text-grey-seven position-absolute end-0 me-3\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.OPTIONS']}}</span>\r\n </div>\r\n <mat-error\r\n *ngIf=\"questionsFormGroup.get('maximumNumberOfOption')?.errors && questionsFormGroup.get('maximumNumberOfOption')?.touched\"\r\n class=\"assessment-text-regular-12 assessment-text-danger\">{{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED']}}</mat-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"pb-4 col-12 mt-md-3\" *ngIf=\"showField('options')\">\r\n <div formArrayName=\"options\">\r\n <ng-container *ngFor=\"let option of options.controls; let i = index\">\r\n <div [formGroupName]=\"i\" *ngIf=\"option.get('isActive')?.value !== false\"\r\n class=\"py-md-0 py-3 border-bottom border-md-0 col-12 d-flex flex-wrap flex-md-nowrap align-items-md-start align-items-center justify-content-between gap-md-4 gap-3\">\r\n\r\n <div class=\"col-12 col-md flex-md-grow-1 d-flex flex-column justify-content-center mt-md-3\"\r\n [class.pt-md-3]=\"i == 0\">\r\n <div class=\"col-12 d-flex align-items-center justify-content-between gap-3\">\r\n <div class=\"flex-grow-1 d-flex align-items-center gap-2\">\r\n <div class=\"rounded-circle p-2 border-grey-ten-2 mt-1\"></div>\r\n <input formControlName=\"optionLabel\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.ENTER_OPTION']\"\r\n class=\"flex-grow-1 assessment-text-medium-13 border-0 outline-0 bg-transparent input-focus py-1\">\r\n </div>\r\n <img class=\"cursor-pointer d-md-none\"\r\n [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.CLOSE']\" (click)=\"removeOption(i)\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/close.svg')\" />\r\n </div>\r\n <mat-error\r\n *ngIf=\"option.get('optionLabel')?.invalid && option.get('optionLabel')?.touched\"\r\n class=\"assessment-text-regular-12 mt-1\">{{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED']}}</mat-error>\r\n </div>\r\n\r\n <div *ngIf=\"showField('options', 'showWeightage') && !isChild && questionStack.length == 0\"\r\n class=\"col-auto\">\r\n <p class=\"assessment-text-medium-12 assessment-text-grey-six mb-2 mb-md-3\"\r\n [ngClass]=\"{'hidden-label': i > 0}\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.WEIGHTAGE']}}\r\n </p>\r\n <input (input)=\"allowOnlyNumbers($event)\" formControlName=\"weight\"\r\n class=\"px-3 py-md-1 py-2 assessment-border-radius-two assessment-input-border-one outline-0 assessment-text-regular-12 assessment-marks-input assessment-bg-grey-one\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.LABEL.WEIGHTAGE']\">\r\n </div>\r\n\r\n <div *ngIf=\"showField('options', 'showRemarks')\" class=\"col-auto\">\r\n <p class=\"assessment-text-medium-12 assessment-text-grey-six mb-2 mb-md-3 pb-md-1\"\r\n [ngClass]=\"{'hidden-label': i > 0}\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.REMARKS']}}\r\n </p>\r\n <div class=\"form-check form-switch\">\r\n <input type=\"checkbox\" class=\"form-check-input cursor-pointer\"\r\n name=\"remarksRequired\" formControlName=\"remarksRequired\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-none d-md-block pt-3\" [class.custom-margin]=\"i == 0\">\r\n <img class=\"cursor-pointer\" [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.CLOSE']\"\r\n (click)=\"removeOption(i)\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/close.svg')\" />\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <button type=\"button\" (click)=\"addOption()\"\r\n class=\"assessment-border-radius-two d-flex align-items-center gap-2 bg-transparent assessment-text-primary-one assessment-text-medium-12 border-0 assessment-zoom-animation mt-4\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.PLUS_PRIMARY']\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/plus-primary.svg')\" />\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.ADD_OPTION']}}\r\n </button>\r\n <mat-error\r\n *ngIf=\"questionsFormGroup.get('options')?.errors && questionsFormGroup.get('options')?.touched\"\r\n class=\"assessment-text-regular-12 assessment-text-danger\">{{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED']}}</mat-error>\r\n </div>\r\n <div class=\"py-4 col-12 border-top\"\r\n *ngIf=\"showField('childQuestions') && questionStack.length == 0 && !isChild\">\r\n <div class=\"d-flex align-items-center justify-content-between mb-2\">\r\n <label\r\n class=\"assessment-text-medium-16 assessment-text-grey-ten\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.CHILD_QUESTIONS']}}</label>\r\n <img matTooltip=\"{{labelConfig['COMMONS_ASSESSMENT.LABEL.CHILD_QUESTIONS_INFO']}}\"\r\n matTooltipPosition=\"above\" matTooltipClass=\"assessment-tooltip\"\r\n [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.INFO']\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/info.svg')\" />\r\n </div>\r\n\r\n <div *ngFor=\"let group of childQuestionGroups; let groupIndex = index\"\r\n class=\"col-12 p-3 my-3 assessment-bg-grey-one assessment-border-radius-three assessment-input-border-one\">\r\n <div class=\"col-12 mb-3\" *ngIf=\"options.length > 0\">\r\n <label\r\n class=\"mb-1 assessment-text-medium-13 assessment-text-grey-ten\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.ASSIGNED_OPTION']}}</label>\r\n <mat-select [value]=\"group.optionId\"\r\n (selectionChange)=\"onGroupOptionChange(group.id, $event.value)\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.SELECT_OPTION_TO_LINK']\"\r\n class=\"col-12 assessment-mat-select assessment-border-radius-two assessment-bg-white outline-0 assessment-input-border-one assessment-text-medium-13\">\r\n <mat-option class=\"assessment-text-medium-13\" [value]=\"null\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.NONE']}}\r\n </mat-option>\r\n <ng-container *ngFor=\"let opt of options.controls; let opIndex = index\">\r\n <mat-option *ngIf=\"opt.get('isActive')?.value !== false\" class=\"assessment-text-medium-13\"\r\n [value]=\"getOptionId(opt)\">\r\n {{ opt.get('optionLabel')?.value || ('Option ' + (opIndex + 1)) }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let questionId of group.questionIds; let i = index\">\r\n <ng-container *ngIf=\"getChildQuestionById(questionId) as child\">\r\n <div class=\"d-flex align-items-center justify-content-between mb-1 mt-3\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <p class=\"mb-0 assessment-text-medium-14\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.QUESTION']}} {{i + 1}}</p>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.DELETE']\"\r\n class=\"action-icon cursor-pointer\"\r\n (click)=\"deleteChildQuestionById(child.id, $event)\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/delete.svg')\" />\r\n </div>\r\n </div>\r\n <div [innerHTML]=\"child?.questionText?.[0]?.text\"\r\n (click)=\"addEditChildQuestion(child, getChildQuestionIndex(child.id))\"\r\n class=\"col-12 assessment-button-padding assessment-border-radius-two assessment-bg-white assessment-input-border-one assessment-text-medium-12 cursor-pointer\">\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <button (click)=\"addEditChildQuestion(undefined, undefined, group.id)\"\r\n class=\"assessment-zoom-animation border-0 d-flex align-items-center justify-content-center gap-2 assessment-text-primary-one bg-transparent assessment-text-semibold-12 outline-0 mt-3\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.PLUS_PRIMARY']\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/plus-primary.svg')\" />\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.ADD_MORE']}}\r\n </button>\r\n </div>\r\n\r\n <button (click)=\"addEditChildQuestion()\"\r\n class=\"assessment-zoom-animation assessment-button-padding d-flex align-items-center justify-content-center gap-3 assessment-text-primary-one assessment-bg-palette-EDF3FD assessment-text-semibold-12 outline-0 col-12 assessment-border-radius-two mt-3 border-ADC9F6\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.PLUS_PRIMARY']\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/plus-primary.svg')\" />\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.ADD_CHILD_QUESTION']}}\r\n </button>\r\n </div>\r\n <div class=\"py-4 col-12 border-top\" *ngIf=\"showField('hintText')\">\r\n <label\r\n class=\"mb-2 assessment-text-medium-16 assessment-text-grey-ten\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.ADD_HINT']}}</label>\r\n <app-text-editor [preText]=\"questionsFormGroup?.get('hintText')?.value\"\r\n (inputChange)=\"questionsFormGroup?.get('hintText')?.patchValue($event)\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.PLACEHOLDER.ENTER_HINT']\"\r\n class=\"assessment-custom-angular-editor-white assessment-text-regular-13 assessment-text-grey-ten\"\r\n [height]=\"'8rem'\">\r\n </app-text-editor>\r\n <mat-error\r\n *ngIf=\"questionsFormGroup.get('hintText')?.errors && questionsFormGroup.get('hintText')?.touched\"\r\n class=\"assessment-text-regular-12 assessment-text-danger\">{{labelConfig['COMMONS_ASSESSMENT.ERROR.REQUIRED']}}</mat-error>\r\n </div>\r\n <div class=\"py-4 col-12 border-top\">\r\n <label class=\"mb-2 assessment-text-semibold-18 assessment-text-grey-ten col-12\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.FIELDS_SETTINGS']}}</label>\r\n <!-- <div class=\"my-3 d-flex align-items-center justify-content-between gap-2\">\r\n <div>\r\n <p class=\"mb-0 assessment-text-medium-13 assessment-text-grey-ten\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.SHOW_THIS_FIELD']}}</p>\r\n <p class=\"mb-0 assessment-text-regular-11 assessment-text-grey-eight\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.SHOW_THIS_FIELD_DESC']}}</p>\r\n </div>\r\n <div class=\"form-check form-switch\">\r\n <input type=\"checkbox\" class=\"form-check-input cursor-pointer\" name=\"visibility\"\r\n formControlName=\"visibility\">\r\n </div>\r\n </div> -->\r\n <div class=\"my-3 d-flex align-items-center justify-content-between gap-2\">\r\n <div>\r\n <p class=\"mb-0 assessment-text-medium-13 assessment-text-grey-ten\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.MANDATORY']}}</p>\r\n <p class=\"mb-0 assessment-text-regular-11 assessment-text-grey-eight\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.MANDATORY_DESC']}}</p>\r\n </div>\r\n <div class=\"form-check form-switch\">\r\n <input type=\"checkbox\" class=\"form-check-input cursor-pointer\" name=\"isMandatory\"\r\n formControlName=\"isMandatory\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".assessment-text-grey-ten{color:var(--assessment-grey-ten)!important}.assessment-bg-grey-ten{background-color:var(--assessment-grey-ten)!important}.assessment-text-grey-nine{color:var(--assessment-grey-nine)!important}.assessment-bg-grey-nine{background-color:var(--assessment-grey-nine)!important}.assessment-text-grey-eight{color:var(--assessment-grey-eight)!important}.assessment-bg-grey-eight{background-color:var(--assessment-grey-eight)!important}.assessment-text-grey-seven{color:var(--assessment-grey-seven)!important}.assessment-bg-grey-seven{background-color:var(--assessment-grey-seven)!important}.assessment-text-grey-six{color:var(--assessment-grey-six)!important}.assessment-bg-grey-six{background-color:var(--assessment-grey-six)!important}.assessment-text-grey-five{color:var(--assessment-grey-five)!important}.assessment-bg-grey-five{background-color:var(--assessment-grey-five)!important}.assessment-text-grey-four{color:var(--assessment-grey-four)!important}.assessment-bg-grey-four{background-color:var(--assessment-grey-four)!important}.assessment-text-grey-three{color:var(--assessment-grey-three)!important}.assessment-bg-grey-three{background-color:var(--assessment-grey-three)!important}.assessment-text-grey-two{color:var(--assessment-grey-two)!important}.assessment-bg-grey-two{background-color:var(--assessment-grey-two)!important}.assessment-text-grey-one{color:var(--assessment-grey-one)!important}.assessment-bg-grey-one{background-color:var(--assessment-grey-one)!important}.assessment-text-white{color:var(--assessment-white)!important}.assessment-bg-white{background-color:var(--assessment-white)!important}.assessment-text-black{color:var(--assessment-black)!important}.assessment-bg-black{background-color:var(--assessment-black)!important}.assessment-text-danger{color:var(--assessment-danger)!important}.assessment-bg-danger{background-color:var(--assessment-danger)!important}.assessment-text-primary-one{color:var(--assessment-primary-one)!important}.assessment-bg-primary-one{background-color:var(--assessment-primary-one)!important}.assessment-text-primary-four{color:var(--assessment-primary-four)!important}.assessment-bg-primary-four{background-color:var(--assessment-primary-four)!important}.assessment-text-palette-EDF3FD{color:var(--assessment-palette-EDF3FD)!important}.assessment-bg-palette-EDF3FD{background-color:var(--assessment-palette-EDF3FD)!important}.assessment-text-palette-C8DAF9{color:var(--assessment-palette-C8DAF9)!important}.assessment-bg-palette-C8DAF9{background-color:var(--assessment-palette-C8DAF9)!important}.assessment-text-palette-ADC9F6{color:var(--assessment-palette-ADC9F6)!important}.assessment-bg-palette-ADC9F6{background-color:var(--assessment-palette-ADC9F6)!important}.assessment-text-palette-FEF9F1{color:var(--assessment-palette-FEF9F1)!important}.assessment-bg-palette-FEF9F1{background-color:var(--assessment-palette-FEF9F1)!important}.assessment-text-palette-F9DAA6{color:var(--assessment-palette-F9DAA6)!important}.assessment-bg-palette-F9DAA6{background-color:var(--assessment-palette-F9DAA6)!important}.assessment-text-palette-E8F7F0{color:var(--assessment-palette-E8F7F0)!important}.assessment-bg-palette-E8F7F0{background-color:var(--assessment-palette-E8F7F0)!important}.assessment-text-palette-B7E7CF{color:var(--assessment-palette-B7E7CF)!important}.assessment-bg-palette-B7E7CF{background-color:var(--assessment-palette-B7E7CF)!important}.assessment-box-shadow-one{box-shadow:var(--assessment-box-shadow-one)!important}.assessment-border-radius-one{border-radius:var(--assessment-border-radius-one)!important}.assessment-border-radius-two{border-radius:var(--assessment-border-radius-two)!important}.assessment-border-radius-three{border-radius:var(--assessment-border-radius-three)!important}.assessment-border-radius-four{border-radius:var(--assessment-border-radius-four)!important}.assessment-border-radius-five{border-radius:var(--assessment-border-radius-five)!important}.assessment-border-radius-six{border-radius:var(--assessment-border-radius-six)!important}.assessment-input-border-one{border:var(--assessment-input-border-one)!important}.assessment-input-border-invalid{border:var(--assessment-input-border-invalid)!important}.assessment-input-focus-border{border:var(--assessment-input-focus-border)!important}.assessment-border-two{border:var(--assessment-border-two)!important}.assessment-card-border{border:var(--assessment-card-border)!important}.assessment-tooltip-border{border:var(--assessment-tooltip-border)!important}.assessment-box-shadow-tooltip{box-shadow:var(--assessment-box-shadow-tooltip)!important}.assessment-button-padding{padding:var(--assessment-button-padding)!important}.assessment-button-padding-large{padding:var(--assessment-button-padding-large)!important}.assessment-input-padding{padding:var(--assessment-input-padding)!important}.assessment-text-font-family{color:var(--assessment-font-family)!important}.assessment-bg-font-family{background-color:var(--assessment-font-family)!important}.assessment-text-regular-12{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-bold-12{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-11{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-11{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-regular-11{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-12{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-regular-13{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-bold-13{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-semibold-13{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-medium-13{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-regular-14{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-bold-14{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-medium-14{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw)!important;line-height:calc(1.2rem + .2vw)!important}.assessment-text-semibold-14{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-semibold-10{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw);line-height:calc(1rem + .1vw)}.assessment-text-regular-10{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw)!important;line-height:calc(1rem + .1vw)}.assessment-text-regular-15{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.4rem + .1vw)}.assessment-text-medium-15{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-semibold-15{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-bold-15{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-regular-16{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-semibold-16{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-bold-16{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-medium-16{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-regular-20{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-bold-20{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-semibold-20{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-20{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-18{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-regular-18{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .3vw)!important}.assessment-text-bold-18{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw);line-height:calc(1.5rem + .1vw)}.assessment-text-semibold-18{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-bold-34{overflow-wrap:break-word;font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-medium-34{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-bold-32{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.3rem + .75vw);line-height:calc(1.625rem + .5vw)}.assessment-text-bold-22{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-regular-22{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-semibold-22{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-medium-22{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-24{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-regular-24{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-semibold-24{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-medium-24{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(1.2rem + .75vw)}.assessment-text-regular-26{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-medium-26{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-bold-26{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-semibold-26{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-regular-28{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-medium-28{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-semibold-28{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw);letter-spacing:1}.assessment-text-bold-28{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-regular-30{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw)}.assessment-text-medium-30{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-30{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(2rem + .4vw)}.assessment-text-semibold-30{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw);letter-spacing:.5}.assessment-text-bold-36{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}.assessment-text-semibold-36{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-bold-34{font-size:calc(1.8rem + .15vh);line-height:calc(2.2rem + .15vh)}.assessment-text-bold-32{font-size:calc(1.3rem + 1vh);line-height:calc(1.5rem + 1vh)}.assessment-text-semibold-30{font-size:calc(1.5rem + .4vh);line-height:calc(1.8rem + .4vh)}.assessment-text-medium-24{line-height:2.188rem}.assessment-text-medium-24,.assessment-text-regular-24,.assessment-text-semibold-24,.assessment-text-bold-24,.assessment-text-light-24{font-size:calc(1.3rem + .5vh);line-height:calc(1.8rem + .5vh)}.assessment-text-medium-18,.assessment-text-regular-18,.assessment-text-bold-18,.assessment-text-semibold-18,.assessment-text-light-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-light-16,.assessment-text-bold-16{font-size:calc(.9rem + .3vh)!important;line-height:calc(1.2rem + .3vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16,.assessment-text-regular-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15,.assessment-text-bold-15,.assessment-text-light-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12,.assessment-text-bold-12,.assessment-text-medium-upper-12,.assessment-text-light-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-regular-14,.assessment-text-light-14,.assessment-text-medium-upper-14,.assessment-text-semibold-14,.assessment-text-bold-14{font-size:calc(.8rem + .1vh)!important;line-height:calc(1.2rem + .2vh)!important}.assessment-text-regular-13,.assessment-text-medium-13,.assessment-text-semibold-13,.assessment-text-bold-13,.assessment-text-light-13{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11,.assessment-text-semibold-11,.assessment-text-bold-11,.assessment-text-light-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}}.assessment-btn-primary{background-color:var(--assessment-primary-one);color:var(--assessment-white);border:.064rem solid var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two)}.assessment-btn-primary-transparent{background-color:var(--assessment-white);color:var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two);border:.064rem solid var(--assessment-primary-one)}.assessment-zoom-animation{transition:transform .2s ease;transform:translateZ(0);text-rendering:optimizeLegibility}.assessment-zoom-animation:hover{transform:scale(1.03)}.assessment-zoom-animation:active{transform:scale(1)}.assessment-zoom-animation:disabled{transform:none!important}.change-direction{transform:rotate(180deg);transition:.3s ease-out}.change-direction-reverse{transform:rotate(0);transition:.3s ease-out}.outline-0{outline:none}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.action-icon{width:1.2rem}.mat-menu-item{height:inherit}.form-container{max-height:calc(100dvh - 4rem)}.border-grey-ten-2{border:.12rem solid var(--assessment-grey-ten)}.input-focus{overflow:hidden;text-overflow:ellipsis}.input-focus:focus-visible{border-bottom:var(--assessment-input-focus-border)!important}.assessment-marks-input{width:4.5rem}header{z-index:1}.vertical-text{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);white-space:nowrap}@media (min-width: 768px){.hidden-label{visibility:hidden;line-height:0!important}}@media screen and (min-width: 768px){.border-md-0{border:0!important}}.primary-border{border:.064rem solid var(--assessment-primary-one)}.form-check-input:checked{background-color:var(--assessment-primary-one)!important;border-color:var(--assessment-primary-one)!important}.custom-margin{margin-top:1.3rem}.border-ADC9F6{border:.064rem solid var(--assessment-palette-ADC9F6)}\n"], components: [{ type: i8.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i10.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i11.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: TextEditorComponent, selector: "app-text-editor", inputs: ["height", "placeholder", "subject", "preText", "maxLength", "disabled", "showToolbar", "editorConfig"], outputs: ["inputChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.MatError, selector: "mat-error", inputs: ["id"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i1$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i11$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
2728
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentBuilderComponent, decorators: [{
2729
+ type: Component,
2730
+ args: [{
2731
+ selector: 'lib-app-assessment-builder',
2732
+ templateUrl: './assessment-builder.component.html',
2733
+ styleUrls: ['./assessment-builder.component.scss']
2734
+ }]
2735
+ }], ctorParameters: function () { return [{ type: i1$2.FormBuilder }, { type: AssessmentBuilderService }, { type: AssessmentMakerService }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
2736
+ type: Inject,
2737
+ args: [MAT_DIALOG_DATA]
2738
+ }] }]; }, propDecorators: { scrollContainer: [{
2739
+ type: ViewChild,
2740
+ args: ['scrollContainer']
2741
+ }] } });
2742
+
2743
+ class QuestionDetailsComponent {
2744
+ constructor() {
2745
+ this.labelConfig = {};
2746
+ this.imageConfig = {};
2747
+ this.editQuestion = new EventEmitter();
2748
+ this.duplicateQuestion = new EventEmitter();
2749
+ this.deleteParentQuestion = new EventEmitter();
2750
+ this.deleteChildQuestion = new EventEmitter();
2751
+ this.expanded = false;
2752
+ this.showToggle = false;
2753
+ }
2754
+ ngAfterViewInit() {
2755
+ setTimeout(() => this.checkOverflow());
2756
+ }
2757
+ toggleText() {
2758
+ this.expanded = !this.expanded;
2759
+ if (!this.expanded) {
2760
+ setTimeout(() => this.checkOverflow());
2761
+ }
2762
+ }
2763
+ checkOverflow() {
2764
+ const el = this.questionText.nativeElement;
2765
+ this.showToggle = el.scrollHeight > el.clientHeight;
2766
+ }
2767
+ capitalizeFirst(text) {
2768
+ if (!text)
2769
+ return '';
2770
+ return text.toLowerCase().split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
2771
+ }
2772
+ imageErrorHandler(event, filePath) {
2773
+ event.target.src = filePath;
2774
+ }
2775
+ childQuestionPresent(question) {
2776
+ var _a;
2777
+ return (_a = question === null || question === void 0 ? void 0 : question.defaultOptionsList) === null || _a === void 0 ? void 0 : _a.some(option => (option === null || option === void 0 ? void 0 : option.childQuestionList) && option.childQuestionList.length > 0);
2778
+ }
2779
+ }
2780
+ QuestionDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2781
+ QuestionDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionDetailsComponent, selector: "lib-question-details", inputs: { sectionQuestion: "sectionQuestion", question: "question", questionBank: "questionBank", labelConfig: "labelConfig", imageConfig: "imageConfig" }, outputs: { editQuestion: "editQuestion", duplicateQuestion: "duplicateQuestion", deleteParentQuestion: "deleteParentQuestion", deleteChildQuestion: "deleteChildQuestion" }, viewQueries: [{ propertyName: "questionText", first: true, predicate: ["questionText"], descendants: true }], ngImport: i0, template: "<div class=\"d-flex align-items-center justify-content-between mb-3\">\r\n <div class=\"d-flex flex-wrap gap-2\">\r\n <span\r\n class=\"assessment-border-radius-two p-2 assessment-bg-palette-FEF9F1 assessment-text-medium-12 border-palette-F9DAA6\">\r\n {{capitalizeFirst(question?.questionType?.labels?.[0]?.text)}}\r\n </span>\r\n <span *ngIf=\"question?.weight\"\r\n class=\"assessment-border-radius-two p-2 assessment-bg-palette-EDF3FD assessment-text-medium-12 border-palette-C8DAF9\">\r\n {{question?.weight}} {{labelConfig['COMMONS_ASSESSMENT.LABEL.MARKS']}}\r\n </span>\r\n <span *ngIf=\"question?.isMandatory\"\r\n class=\"assessment-border-radius-two p-2 assessment-bg-palette-E8F7F0 assessment-text-medium-12 border-palette-B7E7CF\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.MANDATORY']}}\r\n </span>\r\n </div>\r\n <button [matMenuTriggerFor]=\"questionsMenu\" (click)=\"$event.stopPropagation()\" class=\"border-0 bg-transparent py-2\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.ACTION_DOTS']\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/action-dots.svg')\" />\r\n </button>\r\n <mat-menu #questionsMenu=\"matMenu\" class=\"mat-menu assessment-border-radius-two assessment-border-grey-four-1\">\r\n <button (click)=\"duplicateQuestion.emit(sectionQuestion)\" mat-menu-item class=\"py-2 assessment-text-semibold-12\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.DUPLICATE']}}\r\n </button>\r\n <button (click)=\"deleteParentQuestion.emit(sectionQuestion)\" mat-menu-item\r\n class=\"py-2 assessment-text-semibold-12 assessment-text-danger\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.DELETE']}}\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<div class=\"col-12\">\r\n <div #questionText class=\"assessment-text-medium-15 question-text cursor-pointer\" [class.collapsed]=\"!expanded\"\r\n (click)=\"$event.stopPropagation(); editQuestion.emit({questionId: sectionQuestion?.questionId, isChildQuestion: false})\"\r\n [innerHTML]=\"question?.questionText?.[0]?.text\">\r\n </div>\r\n\r\n <span *ngIf=\"showToggle\" class=\"assessment-text-semibold-15 assessment-text-primary-one cursor-pointer\"\r\n (click)=\"$event.stopPropagation(); expanded = !expanded\">\r\n {{ labelConfig[expanded ? 'COMMONS_ASSESSMENT.LABEL.READ_LESS' : 'COMMONS_ASSESSMENT.LABEL.READ_MORE'] }}\r\n </span>\r\n</div>\r\n\r\n<!-- Child Questions -->\r\n<ng-container *ngIf=\"question?.defaultOptionsList?.length\">\r\n <div class=\"mt-4 col-12\">\r\n <div *ngFor=\"let option of question?.defaultOptionsList | orderBy\" class=\"my-3 d-flex align-items-start gap-2\">\r\n <div class=\"rounded-circle custom-padding border-grey-ten-2\"></div>\r\n <span class=\"assessment-text-medium-13\">{{option.options?.optionName?.[0]?.text}}</span>\r\n </div>\r\n </div>\r\n\r\n <mat-accordion *ngIf=\"childQuestionPresent(question)\">\r\n <mat-expansion-panel (click)=\"$event.stopPropagation()\" class=\"bg-transparent mt-4 col-12\">\r\n <mat-expansion-panel-header class=\"p-0 bg-transparent pe-1\">\r\n <div class=\"d-flex align-items-center gap-2 flex-grow-1 pe-2\">\r\n <span class=\"assessment-text-semibold-12 assessment-text-grey-eight\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.CHILD_QUESTIONS']}}</span>\r\n <div class=\"flex-grow-1 border-bottom\"></div>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <ng-container *ngFor=\"let option of question?.defaultOptionsList | orderBy\">\r\n <div *ngIf=\"option.childQuestionList?.length\" class=\"mt-3\">\r\n <p class=\"assessment-text-primary-one assessment-text-semibold-14 mb-0\">\r\n {{option.options?.optionName?.[0]?.text}}</p>\r\n <div class=\"position-relative overflow-hidden\">\r\n <div *ngFor=\"let childQuestionId of option.childQuestionList\"\r\n class=\"assessment-child-node position-relative mt-3 ms-md-4 ms-3\">\r\n <div *ngIf=\"questionBank[childQuestionId] as childQuestion\"\r\n class=\"d-flex align-items-start justify-content-between gap-3 ps-1\">\r\n <div (click)=\"$event.stopPropagation(); editQuestion.emit({questionId: childQuestionId, isChildQuestion: true})\"\r\n [innerHTML]=\"childQuestion?.questionText?.[0]?.text\"\r\n class=\"flex-grow-1 assessment-text-regular-13 question-text collapsed cursor-pointer\">\r\n </div>\r\n <span\r\n class=\"assessment-text-medium-12 assessment-text-grey-eight d-md-inline d-none text-nowrap\">\r\n {{capitalizeFirst(childQuestion?.questionType?.labels?.[0]?.text)}}\r\n </span>\r\n <img (click)=\"$event.stopPropagation(); deleteChildQuestion.emit({option: option, childQuestionId: childQuestionId})\"\r\n [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.DELETE']\"\r\n class=\"action-icon d-md-inline d-none cursor-pointer\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n</ng-container>", styles: [".assessment-text-grey-ten{color:var(--assessment-grey-ten)!important}.assessment-bg-grey-ten{background-color:var(--assessment-grey-ten)!important}.assessment-text-grey-nine{color:var(--assessment-grey-nine)!important}.assessment-bg-grey-nine{background-color:var(--assessment-grey-nine)!important}.assessment-text-grey-eight{color:var(--assessment-grey-eight)!important}.assessment-bg-grey-eight{background-color:var(--assessment-grey-eight)!important}.assessment-text-grey-seven{color:var(--assessment-grey-seven)!important}.assessment-bg-grey-seven{background-color:var(--assessment-grey-seven)!important}.assessment-text-grey-six{color:var(--assessment-grey-six)!important}.assessment-bg-grey-six{background-color:var(--assessment-grey-six)!important}.assessment-text-grey-five{color:var(--assessment-grey-five)!important}.assessment-bg-grey-five{background-color:var(--assessment-grey-five)!important}.assessment-text-grey-four{color:var(--assessment-grey-four)!important}.assessment-bg-grey-four{background-color:var(--assessment-grey-four)!important}.assessment-text-grey-three{color:var(--assessment-grey-three)!important}.assessment-bg-grey-three{background-color:var(--assessment-grey-three)!important}.assessment-text-grey-two{color:var(--assessment-grey-two)!important}.assessment-bg-grey-two{background-color:var(--assessment-grey-two)!important}.assessment-text-grey-one{color:var(--assessment-grey-one)!important}.assessment-bg-grey-one{background-color:var(--assessment-grey-one)!important}.assessment-text-white{color:var(--assessment-white)!important}.assessment-bg-white{background-color:var(--assessment-white)!important}.assessment-text-black{color:var(--assessment-black)!important}.assessment-bg-black{background-color:var(--assessment-black)!important}.assessment-text-danger{color:var(--assessment-danger)!important}.assessment-bg-danger{background-color:var(--assessment-danger)!important}.assessment-text-primary-one{color:var(--assessment-primary-one)!important}.assessment-bg-primary-one{background-color:var(--assessment-primary-one)!important}.assessment-text-primary-four{color:var(--assessment-primary-four)!important}.assessment-bg-primary-four{background-color:var(--assessment-primary-four)!important}.assessment-text-palette-EDF3FD{color:var(--assessment-palette-EDF3FD)!important}.assessment-bg-palette-EDF3FD{background-color:var(--assessment-palette-EDF3FD)!important}.assessment-text-palette-C8DAF9{color:var(--assessment-palette-C8DAF9)!important}.assessment-bg-palette-C8DAF9{background-color:var(--assessment-palette-C8DAF9)!important}.assessment-text-palette-ADC9F6{color:var(--assessment-palette-ADC9F6)!important}.assessment-bg-palette-ADC9F6{background-color:var(--assessment-palette-ADC9F6)!important}.assessment-text-palette-FEF9F1{color:var(--assessment-palette-FEF9F1)!important}.assessment-bg-palette-FEF9F1{background-color:var(--assessment-palette-FEF9F1)!important}.assessment-text-palette-F9DAA6{color:var(--assessment-palette-F9DAA6)!important}.assessment-bg-palette-F9DAA6{background-color:var(--assessment-palette-F9DAA6)!important}.assessment-text-palette-E8F7F0{color:var(--assessment-palette-E8F7F0)!important}.assessment-bg-palette-E8F7F0{background-color:var(--assessment-palette-E8F7F0)!important}.assessment-text-palette-B7E7CF{color:var(--assessment-palette-B7E7CF)!important}.assessment-bg-palette-B7E7CF{background-color:var(--assessment-palette-B7E7CF)!important}.assessment-box-shadow-one{box-shadow:var(--assessment-box-shadow-one)!important}.assessment-border-radius-one{border-radius:var(--assessment-border-radius-one)!important}.assessment-border-radius-two{border-radius:var(--assessment-border-radius-two)!important}.assessment-border-radius-three{border-radius:var(--assessment-border-radius-three)!important}.assessment-border-radius-four{border-radius:var(--assessment-border-radius-four)!important}.assessment-border-radius-five{border-radius:var(--assessment-border-radius-five)!important}.assessment-border-radius-six{border-radius:var(--assessment-border-radius-six)!important}.assessment-input-border-one{border:var(--assessment-input-border-one)!important}.assessment-input-border-invalid{border:var(--assessment-input-border-invalid)!important}.assessment-input-focus-border{border:var(--assessment-input-focus-border)!important}.assessment-border-two{border:var(--assessment-border-two)!important}.assessment-card-border{border:var(--assessment-card-border)!important}.assessment-tooltip-border{border:var(--assessment-tooltip-border)!important}.assessment-box-shadow-tooltip{box-shadow:var(--assessment-box-shadow-tooltip)!important}.assessment-button-padding{padding:var(--assessment-button-padding)!important}.assessment-button-padding-large{padding:var(--assessment-button-padding-large)!important}.assessment-input-padding{padding:var(--assessment-input-padding)!important}.assessment-text-font-family{color:var(--assessment-font-family)!important}.assessment-bg-font-family{background-color:var(--assessment-font-family)!important}.assessment-text-regular-12{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-bold-12{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-11{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-11{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-regular-11{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-12{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-regular-13{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-bold-13{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-semibold-13{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-medium-13{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-regular-14{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-bold-14{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-medium-14{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw)!important;line-height:calc(1.2rem + .2vw)!important}.assessment-text-semibold-14{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-semibold-10{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw);line-height:calc(1rem + .1vw)}.assessment-text-regular-10{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw)!important;line-height:calc(1rem + .1vw)}.assessment-text-regular-15{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.4rem + .1vw)}.assessment-text-medium-15{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-semibold-15{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-bold-15{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-regular-16{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-semibold-16{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-bold-16{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-medium-16{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-regular-20{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-bold-20{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-semibold-20{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-20{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-18{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-regular-18{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .3vw)!important}.assessment-text-bold-18{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw);line-height:calc(1.5rem + .1vw)}.assessment-text-semibold-18{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-bold-34{overflow-wrap:break-word;font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-medium-34{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-bold-32{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.3rem + .75vw);line-height:calc(1.625rem + .5vw)}.assessment-text-bold-22{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-regular-22{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-semibold-22{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-medium-22{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-24{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-regular-24{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-semibold-24{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-medium-24{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(1.2rem + .75vw)}.assessment-text-regular-26{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-medium-26{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-bold-26{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-semibold-26{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-regular-28{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-medium-28{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-semibold-28{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw);letter-spacing:1}.assessment-text-bold-28{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-regular-30{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw)}.assessment-text-medium-30{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-30{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(2rem + .4vw)}.assessment-text-semibold-30{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw);letter-spacing:.5}.assessment-text-bold-36{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}.assessment-text-semibold-36{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-bold-34{font-size:calc(1.8rem + .15vh);line-height:calc(2.2rem + .15vh)}.assessment-text-bold-32{font-size:calc(1.3rem + 1vh);line-height:calc(1.5rem + 1vh)}.assessment-text-semibold-30{font-size:calc(1.5rem + .4vh);line-height:calc(1.8rem + .4vh)}.assessment-text-medium-24{line-height:2.188rem}.assessment-text-medium-24,.assessment-text-regular-24,.assessment-text-semibold-24,.assessment-text-bold-24,.assessment-text-light-24{font-size:calc(1.3rem + .5vh);line-height:calc(1.8rem + .5vh)}.assessment-text-medium-18,.assessment-text-regular-18,.assessment-text-bold-18,.assessment-text-semibold-18,.assessment-text-light-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-light-16,.assessment-text-bold-16{font-size:calc(.9rem + .3vh)!important;line-height:calc(1.2rem + .3vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16,.assessment-text-regular-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15,.assessment-text-bold-15,.assessment-text-light-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12,.assessment-text-bold-12,.assessment-text-medium-upper-12,.assessment-text-light-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-regular-14,.assessment-text-light-14,.assessment-text-medium-upper-14,.assessment-text-semibold-14,.assessment-text-bold-14{font-size:calc(.8rem + .1vh)!important;line-height:calc(1.2rem + .2vh)!important}.assessment-text-regular-13,.assessment-text-medium-13,.assessment-text-semibold-13,.assessment-text-bold-13,.assessment-text-light-13{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11,.assessment-text-semibold-11,.assessment-text-bold-11,.assessment-text-light-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}}.assessment-btn-primary{background-color:var(--assessment-primary-one);color:var(--assessment-white);border:.064rem solid var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two)}.assessment-btn-primary-transparent{background-color:var(--assessment-white);color:var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two);border:.064rem solid var(--assessment-primary-one)}.assessment-zoom-animation{transition:transform .2s ease;transform:translateZ(0);text-rendering:optimizeLegibility}.assessment-zoom-animation:hover{transform:scale(1.03)}.assessment-zoom-animation:active{transform:scale(1)}.assessment-zoom-animation:disabled{transform:none!important}.change-direction{transform:rotate(180deg);transition:.3s ease-out}.change-direction-reverse{transform:rotate(0);transition:.3s ease-out}.outline-0{outline:none}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.action-icon{width:1.2rem}.mat-menu-item{height:inherit}.border-palette-F9DAA6{border:.064em solid var(--assessment-palette-F9DAA6)}.border-palette-C8DAF9{border:.064em solid var(--assessment-palette-C8DAF9)}.border-palette-B7E7CF{border:.064em solid var(--assessment-palette-B7E7CF)}.border-grey-ten-2{border:.12rem solid var(--assessment-grey-ten)}.custom-padding{padding:.4rem}.assessment-child-node:before{content:\"\";position:absolute;bottom:calc(100% - .7rem);top:-100vh;border-left:.064em solid var(--assessment-grey-five);border-bottom:.064em solid var(--assessment-grey-five);border-bottom-left-radius:.75rem;z-index:0;left:-1.5rem;width:1.5rem}@media screen and (max-width: 767px){.assessment-child-node:before{left:-1rem;width:1rem}}.question-text{word-break:break-word}.question-text.collapsed{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}\n"], components: [{ type: i1$4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i1$4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i7.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i7.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.MatAccordion, selector: "mat-accordion", inputs: ["multi", "displayMode", "togglePosition", "hideToggle"], exportAs: ["matAccordion"] }], pipes: { "orderBy": OrderByPipe } });
2782
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionDetailsComponent, decorators: [{
2783
+ type: Component,
2784
+ args: [{
2785
+ selector: 'lib-question-details',
2786
+ templateUrl: './question-details.component.html',
2787
+ styleUrls: ['./question-details.component.scss']
2788
+ }]
2789
+ }], propDecorators: { sectionQuestion: [{
2790
+ type: Input
2791
+ }], question: [{
2792
+ type: Input
2793
+ }], questionBank: [{
2794
+ type: Input
2795
+ }], labelConfig: [{
2796
+ type: Input
2797
+ }], imageConfig: [{
2798
+ type: Input
2799
+ }], editQuestion: [{
2800
+ type: Output
2801
+ }], duplicateQuestion: [{
2802
+ type: Output
2803
+ }], deleteParentQuestion: [{
2804
+ type: Output
2805
+ }], deleteChildQuestion: [{
2806
+ type: Output
2807
+ }], questionText: [{
2808
+ type: ViewChild,
2809
+ args: ['questionText']
2810
+ }] } });
2811
+
2812
+ class AssessmentMakerComponent {
2813
+ constructor(assessmentMakerService, assessmentBuilderService, dialog) {
2814
+ this.assessmentMakerService = assessmentMakerService;
2815
+ this.assessmentBuilderService = assessmentBuilderService;
2816
+ this.dialog = dialog;
2817
+ this.labelConfig = {};
2818
+ this.imageConfig = {};
2819
+ this.questionTypes = [];
2820
+ this.showFooter = false;
2821
+ this.assessmentId = 0;
2822
+ this.assessmentInstanceId = 0;
2823
+ this.defaultAssessmentDTO = {};
2824
+ this.assessmentIdChange = new EventEmitter();
2825
+ this.assessmentInstanceIdChange = new EventEmitter();
2826
+ this.snackbarMessage = new EventEmitter();
2827
+ this.showLoader = false;
2828
+ this.questionBank = {};
2829
+ this.assessmentQuestionPaperData = { id: 0, questionPaperSectionList: [] };
2830
+ this.configsLoaded = false;
2831
+ this.isSubmitting = false;
2832
+ }
2833
+ ngOnInit() {
2834
+ this.assessmentBuilderService.setDefaultAssessmentDTO(this.defaultAssessmentDTO);
2835
+ this.getConfigsFromJSON();
2836
+ if (this.assessmentId) {
2837
+ this.showLoader = true;
2838
+ this.loadAssessmentData();
2839
+ }
2840
+ }
2841
+ getConfigsFromJSON() {
2842
+ var _a;
2843
+ forkJoin(Object.assign({ labelConfig: this.assessmentMakerService.getConfigJSON('json/labelConfig'), imageConfig: this.assessmentMakerService.getConfigJSON('json/imageConfig'), rules: this.assessmentMakerService.getConfigJSON('json/question-builder-rules') }, (!((_a = this.questionTypes) === null || _a === void 0 ? void 0 : _a.length) && {
2844
+ questionTypes: this.assessmentMakerService.getConfigJSON('json/questionTypes')
2845
+ }))).subscribe((res) => {
2846
+ this.labelConfig = Object.assign({}, res === null || res === void 0 ? void 0 : res.labelConfig, this.labelConfig);
2847
+ this.imageConfig = Object.assign({}, res === null || res === void 0 ? void 0 : res.imageConfig, this.imageConfig);
2848
+ if (res === null || res === void 0 ? void 0 : res.questionTypes) {
2849
+ this.questionTypes = res === null || res === void 0 ? void 0 : res.questionTypes;
2850
+ }
2851
+ // Merge customRules per questionType over default rules
2852
+ this.rules = Object.assign({}, res === null || res === void 0 ? void 0 : res.rules);
2853
+ if (this.customRules) {
2854
+ Object.keys(this.customRules).forEach(qType => {
2855
+ if (!this.rules[qType]) {
2856
+ this.rules[qType] = Object.assign({}, this.customRules[qType]);
2857
+ }
2858
+ else {
2859
+ this.rules[qType] = Object.assign(Object.assign({}, this.rules[qType]), this.customRules[qType]);
2860
+ }
2861
+ });
2862
+ }
2863
+ this.configsLoaded = true;
2864
+ });
2865
+ }
2866
+ loadAssessmentData() {
2867
+ this.assessmentMakerService.getAssessmentContext(this.assessmentId).subscribe({
2868
+ next: (res) => {
2869
+ this.questionBank = Object.assign(Object.assign({}, this.questionBank), ((res === null || res === void 0 ? void 0 : res.questionDTOMap) || {}));
2870
+ this.updateAssessmentQuestionPaperData(res === null || res === void 0 ? void 0 : res.assessmentQuestionPaperDTO);
2871
+ this.showLoader = false;
2872
+ },
2873
+ error: (error) => {
2874
+ console.error(error);
2875
+ this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.ERROR_DEFAULT'], type: 'error' });
2876
+ throw { error, method: 'GET', payload: this.assessmentId };
2877
+ }
2878
+ });
2879
+ }
2880
+ generateQuestionBank() {
2881
+ var _a, _b;
2882
+ let childQuestionIds = [];
2883
+ (_b = (_a = this.assessmentQuestionPaperData) === null || _a === void 0 ? void 0 : _a.questionPaperSectionList) === null || _b === void 0 ? void 0 : _b.forEach((section) => {
2884
+ var _a;
2885
+ (_a = section === null || section === void 0 ? void 0 : section.sectionQuestionsList) === null || _a === void 0 ? void 0 : _a.forEach((q) => {
2886
+ var _a, _b, _c, _d, _e, _f;
2887
+ if ((_c = (_b = (_a = this.questionBank) === null || _a === void 0 ? void 0 : _a[q === null || q === void 0 ? void 0 : q.questionId]) === null || _b === void 0 ? void 0 : _b.defaultOptionsList) === null || _c === void 0 ? void 0 : _c.length) {
2888
+ (_f = (_e = (_d = this.questionBank) === null || _d === void 0 ? void 0 : _d[q === null || q === void 0 ? void 0 : q.questionId]) === null || _e === void 0 ? void 0 : _e.defaultOptionsList) === null || _f === void 0 ? void 0 : _f.forEach((option) => {
2889
+ var _a, _b;
2890
+ if ((_a = option === null || option === void 0 ? void 0 : option.childQuestionList) === null || _a === void 0 ? void 0 : _a.length) {
2891
+ (_b = option === null || option === void 0 ? void 0 : option.childQuestionList) === null || _b === void 0 ? void 0 : _b.forEach((ccq) => {
2892
+ childQuestionIds.push(ccq);
2893
+ });
2894
+ }
2895
+ });
2896
+ }
2897
+ });
2898
+ });
2899
+ // Remove duplicates and filter out ones we already have in the bank
2900
+ childQuestionIds = [...new Set(childQuestionIds)].filter(id => !this.questionBank[id]);
2901
+ if ((childQuestionIds === null || childQuestionIds === void 0 ? void 0 : childQuestionIds.length) > 0) {
2902
+ const params = { questionIds: childQuestionIds };
2903
+ this.assessmentMakerService.getQuestionsByIds(params).subscribe({
2904
+ next: (res) => {
2905
+ res === null || res === void 0 ? void 0 : res.forEach((question) => {
2906
+ this.questionBank[question.id] = question;
2907
+ });
2908
+ },
2909
+ error: (error) => {
2910
+ console.error(error);
2911
+ throw { error, method: 'GET', payload: params };
2912
+ }
2913
+ });
2914
+ }
2915
+ }
2916
+ imageErrorHandler(event, filePath) {
2917
+ event.target.src = filePath;
2918
+ }
2919
+ focusSectionInput(sectionIndex, event) {
2920
+ event.stopPropagation();
2921
+ const input = document.getElementById(`sectionNameInput_${sectionIndex}`);
2922
+ if (input) {
2923
+ input.focus();
2924
+ }
2925
+ }
2926
+ dropSection(event) {
2927
+ if (this.assessmentQuestionPaperData.questionPaperSectionList) {
2928
+ moveItemInArray(this.assessmentQuestionPaperData.questionPaperSectionList, event.previousIndex, event.currentIndex);
2929
+ }
2930
+ }
2931
+ dropQuestion(event) {
2932
+ moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
2933
+ }
2934
+ addInstruction(section) {
2935
+ const dialogRef = this.dialog.open(AddEditSectionIntroductionComponent, {
2936
+ autoFocus: false,
2937
+ maxWidth: '95%',
2938
+ width: '40rem',
2939
+ maxHeight: '100dvh',
2940
+ panelClass: ['assessment-dialog'],
2941
+ data: {
2942
+ imageConfig: this.imageConfig,
2943
+ labelConfig: this.labelConfig,
2944
+ sectionDetails: section
2945
+ },
2946
+ });
2947
+ dialogRef.afterClosed().subscribe((result) => {
2948
+ if (result === null || result === void 0 ? void 0 : result.update) {
2949
+ if (!section.qpsDesc)
2950
+ section.qpsDesc = [];
2951
+ if (!section.qpsDesc[0])
2952
+ section.qpsDesc[0] = { id: 0, language: { code: 'ENG' }, text: '' };
2953
+ section.qpsDesc[0].text = result === null || result === void 0 ? void 0 : result.description;
2954
+ section.mediaUrl = (result === null || result === void 0 ? void 0 : result.mediaUrl) || null;
2955
+ this.patchAssessmentAndQuestionPaper(this.labelConfig['COMMONS_ASSESSMENT.TOAST.SECTION_INSTRUCTIONS_UPDATED_SUCCESS']);
2956
+ }
2957
+ });
2958
+ }
2959
+ deleteChildQuestion(option, childIdToRemove) {
2960
+ if (option.childQuestionList) {
2961
+ const idToRemove = typeof childIdToRemove === 'object' ? childIdToRemove === null || childIdToRemove === void 0 ? void 0 : childIdToRemove.id : childIdToRemove;
2962
+ option.childQuestionList = option.childQuestionList.filter((ccq) => {
2963
+ const id = typeof ccq === 'object' ? ccq === null || ccq === void 0 ? void 0 : ccq.id : ccq;
2964
+ return id !== idToRemove;
2965
+ });
2966
+ }
2967
+ }
2968
+ deleteParentQuestion(sectionQuestion) {
2969
+ sectionQuestion.isActive = false;
2970
+ this.patchAssessmentAndQuestionPaper(this.labelConfig['COMMONS_ASSESSMENT.TOAST.QUESTION_DELETED_SUCCESS']);
2971
+ }
2972
+ deleteSection(section) {
2973
+ section.isActive = false;
2974
+ this.patchAssessmentAndQuestionPaper(this.labelConfig['COMMONS_ASSESSMENT.TOAST.SECTION_DELETED_SUCCESS']);
2975
+ }
2976
+ createEditQuestion(sectionDetails, sectionQuestionId, isChild) {
2977
+ const questionDetails = this.getQuestionFromBank(sectionQuestionId);
2978
+ const dialogRef = this.dialog.open(AssessmentBuilderComponent, {
2979
+ autoFocus: false,
2980
+ position: { right: '0' },
2981
+ maxWidth: '100%',
2982
+ width: '55rem',
2983
+ height: '100vh',
2984
+ panelClass: ['assessment-dialog', 'assessment-dialog-slider-animation'],
2985
+ hasBackdrop: true,
2986
+ data: {
2987
+ labelConfig: this.labelConfig,
2988
+ imageConfig: this.imageConfig,
2989
+ questionTypes: this.questionTypes,
2990
+ rules: this.rules,
2991
+ questionBank: this.questionBank,
2992
+ isChild: isChild,
2993
+ questionDetails,
2994
+ sectionDetails,
2995
+ assessmentQuestionPaperData: this.assessmentQuestionPaperData,
2996
+ assessmentId: this.assessmentId,
2997
+ snackbarMessageEmitter: this.snackbarMessage
2998
+ },
2999
+ });
3000
+ dialogRef.afterClosed().subscribe((res) => {
3001
+ if (res === null || res === void 0 ? void 0 : res.success) {
3002
+ if (res === null || res === void 0 ? void 0 : res.assessmentId) {
3003
+ if (!this.assessmentId) {
3004
+ this.assessmentId = res.assessmentId;
3005
+ this.assessmentIdChange.emit(this.assessmentId);
3006
+ }
3007
+ this.questionBank = Object.assign(Object.assign({}, this.questionBank), ((res === null || res === void 0 ? void 0 : res.questionMap) || {}));
3008
+ this.updateAssessmentQuestionPaperData(res.questionPaper);
3009
+ }
3010
+ else {
3011
+ this.patchAssessmentAndQuestionPaper();
3012
+ }
3013
+ }
3014
+ });
3015
+ }
3016
+ duplicateSection(sectionId) {
3017
+ var _a;
3018
+ if (!((_a = this.assessmentQuestionPaperData) === null || _a === void 0 ? void 0 : _a.id))
3019
+ return;
3020
+ this.assessmentMakerService.duplicateSection(this.assessmentQuestionPaperData.id, sectionId).subscribe({
3021
+ next: (res) => {
3022
+ this.questionBank = Object.assign(Object.assign({}, this.questionBank), ((res === null || res === void 0 ? void 0 : res.questionMap) || {}));
3023
+ this.updateAssessmentQuestionPaperData(res === null || res === void 0 ? void 0 : res.questionPaper);
3024
+ this.generateQuestionBank();
3025
+ this.patchAssessmentAndQuestionPaper();
3026
+ this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.SECTION_DUPLICATED_SUCCESS'], type: 'success' });
3027
+ },
3028
+ error: (error) => {
3029
+ this.showLoader = false;
3030
+ console.error(error);
3031
+ this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.ERROR_DEFAULT'], type: 'error' });
3032
+ throw { error, method: 'PATCH' };
3033
+ }
3034
+ });
3035
+ }
3036
+ duplicateQuestion(section, sectionQuestion) {
3037
+ if (!sectionQuestion.id)
3038
+ return;
3039
+ this.assessmentMakerService.duplicateQuestion(section.id, sectionQuestion.id).subscribe({
3040
+ next: (res) => {
3041
+ this.questionBank = Object.assign(Object.assign({}, this.questionBank), ((res === null || res === void 0 ? void 0 : res.questionMap) || {}));
3042
+ this.updateAssessmentQuestionPaperData(res === null || res === void 0 ? void 0 : res.questionPaper);
3043
+ this.generateQuestionBank();
3044
+ this.patchAssessmentAndQuestionPaper();
3045
+ this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.QUESTION_DUPLICATED_SUCCESS'], type: 'success' });
3046
+ },
3047
+ error: (error) => {
3048
+ this.showLoader = false;
3049
+ console.error(error);
3050
+ this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.ERROR_DEFAULT'], type: 'error' });
3051
+ throw { error, method: 'PATCH' };
3052
+ }
3053
+ });
3054
+ }
3055
+ patchAssessmentAndQuestionPaper(successMessage) {
3056
+ const payload = {
3057
+ questionPaper: this.assessmentBuilderService.generateQuestionPaperDTO(this.assessmentQuestionPaperData, this.questionBank),
3058
+ assessment: this.assessmentBuilderService.generateAssessmentDTO(this.assessmentId, this.assessmentQuestionPaperData)
3059
+ };
3060
+ this.assessmentMakerService.patchAssessmentAndQuestionPaper(payload).subscribe({
3061
+ next: (res) => {
3062
+ this.updateAssessmentQuestionPaperData(res === null || res === void 0 ? void 0 : res.questionPaper);
3063
+ this.generateQuestionBank();
3064
+ if (successMessage) {
3065
+ this.snackbarMessage.emit({ message: successMessage, type: 'success' });
3066
+ }
3067
+ },
3068
+ error: error => {
3069
+ this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.ERROR_DEFAULT'], type: 'error' });
3070
+ throw { error, method: 'PATCH', payload };
3071
+ }
3072
+ });
3073
+ }
3074
+ finalSubmit() {
3075
+ this.isSubmitting = true;
3076
+ const payload = {
3077
+ questionPaper: this.assessmentBuilderService.generateQuestionPaperDTO(this.assessmentQuestionPaperData, this.questionBank),
3078
+ assessment: this.assessmentBuilderService.generateAssessmentDTO(this.assessmentId, this.assessmentQuestionPaperData)
3079
+ };
3080
+ if (!this.assessmentId) {
3081
+ // returns null or 0 as assessment is not created yet. Handle the response in consumer app
3082
+ this.assessmentInstanceIdChange.emit(this.assessmentInstanceId);
3083
+ this.isSubmitting = false;
3084
+ return;
3085
+ }
3086
+ this.assessmentMakerService.patchAssessmentAndQuestionPaper(payload).subscribe({
3087
+ next: (res) => {
3088
+ this.updateAssessmentQuestionPaperData(res === null || res === void 0 ? void 0 : res.questionPaper);
3089
+ if (!this.assessmentInstanceId) {
3090
+ this.createAssessmentInstance();
3091
+ }
3092
+ else {
3093
+ this.assessmentInstanceIdChange.emit(this.assessmentInstanceId);
3094
+ this.isSubmitting = false;
3095
+ }
3096
+ },
3097
+ error: error => {
3098
+ this.isSubmitting = false;
3099
+ this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.ERROR_DEFAULT'], type: 'error' });
3100
+ throw { error, method: 'PATCH', payload };
3101
+ }
3102
+ });
3103
+ }
3104
+ createAssessmentInstance() {
3105
+ const payload = this.assessmentBuilderService.generateAssessmentInstanceDTO(this.assessmentId);
3106
+ this.assessmentMakerService.createAssessmentInstance(payload).subscribe({
3107
+ next: (res) => {
3108
+ this.assessmentInstanceId = res;
3109
+ this.assessmentInstanceIdChange.emit(res);
3110
+ this.isSubmitting = false;
3111
+ // this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.ASSESSMENT_PUBLISHED_SUCCESS'], type: 'success' });
3112
+ },
3113
+ error: error => {
3114
+ this.isSubmitting = false;
3115
+ this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.ERROR_DEFAULT'], type: 'error' });
3116
+ throw { error, method: 'POST', payload };
3117
+ }
3118
+ });
3119
+ }
3120
+ discardChanges() {
3121
+ if (this.assessmentId) {
3122
+ this.showLoader = true;
3123
+ this.loadAssessmentData();
3124
+ }
3125
+ else {
3126
+ // Reset fully to empty if no assessment existed yet
3127
+ this.assessmentQuestionPaperData = { id: 0, questionPaperSectionList: [] };
3128
+ }
3129
+ }
3130
+ getQuestionFromBank(questionId) {
3131
+ var _a;
3132
+ return (_a = this.questionBank) === null || _a === void 0 ? void 0 : _a[questionId || -1];
3133
+ }
3134
+ updateAssessmentQuestionPaperData(newData) {
3135
+ var _a, _b, _c, _d, _e;
3136
+ const expandedList = (_c = (_b = (_a = this.assessmentQuestionPaperData) === null || _a === void 0 ? void 0 : _a.questionPaperSectionList) === null || _b === void 0 ? void 0 : _b.filter((s) => s.isExpanded)) === null || _c === void 0 ? void 0 : _c.map((s, idx) => { var _a, _b; return s.id ? s.id.toString() : `${idx}_${(_b = (_a = s.qpsName) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.text}`; });
3137
+ this.assessmentQuestionPaperData = newData || { id: 0, questionPaperSectionList: [] };
3138
+ this.filterInactiveSectionsAndQuestions();
3139
+ if (expandedList === null || expandedList === void 0 ? void 0 : expandedList.length) {
3140
+ (_e = (_d = this.assessmentQuestionPaperData) === null || _d === void 0 ? void 0 : _d.questionPaperSectionList) === null || _e === void 0 ? void 0 : _e.forEach((s, idx) => {
3141
+ var _a, _b;
3142
+ const key = s.id ? s.id.toString() : `${idx}_${(_b = (_a = s.qpsName) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.text}`;
3143
+ if (expandedList.includes(key)) {
3144
+ s.isExpanded = true;
3145
+ }
3146
+ });
3147
+ }
3148
+ }
3149
+ filterInactiveSectionsAndQuestions() {
3150
+ var _a, _b, _c, _d;
3151
+ this.assessmentQuestionPaperData.questionPaperSectionList = (_b = (_a = this.assessmentQuestionPaperData) === null || _a === void 0 ? void 0 : _a.questionPaperSectionList) === null || _b === void 0 ? void 0 : _b.filter((section) => section.isActive !== false);
3152
+ (_d = (_c = this.assessmentQuestionPaperData) === null || _c === void 0 ? void 0 : _c.questionPaperSectionList) === null || _d === void 0 ? void 0 : _d.forEach((section) => {
3153
+ var _a;
3154
+ section.sectionQuestionsList = (_a = section.sectionQuestionsList) === null || _a === void 0 ? void 0 : _a.filter((question) => question.isActive !== false);
3155
+ });
3156
+ if (this.questionBank) {
3157
+ Object.keys(this.questionBank).forEach(key => {
3158
+ const question = this.questionBank[key];
3159
+ if (question === null || question === void 0 ? void 0 : question.defaultOptionsList) {
3160
+ question.defaultOptionsList = question.defaultOptionsList.filter((opt) => opt.isActive !== false);
3161
+ }
3162
+ });
3163
+ }
3164
+ }
3165
+ capitalizeFirst(text) {
3166
+ if (!text)
3167
+ return '';
3168
+ return text.toLowerCase().split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
3169
+ }
3170
+ }
3171
+ AssessmentMakerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentMakerComponent, deps: [{ token: AssessmentMakerService }, { token: AssessmentBuilderService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
3172
+ AssessmentMakerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AssessmentMakerComponent, selector: "lib-assessment-maker", inputs: { labelConfig: "labelConfig", imageConfig: "imageConfig", questionTypes: "questionTypes", showFooter: "showFooter", customRules: "customRules", assessmentId: "assessmentId", assessmentInstanceId: "assessmentInstanceId", defaultAssessmentDTO: "defaultAssessmentDTO" }, outputs: { assessmentIdChange: "assessmentIdChange", assessmentInstanceIdChange: "assessmentInstanceIdChange", snackbarMessage: "snackbarMessage" }, ngImport: i0, template: "<div *ngIf=\"configsLoaded && !showLoader; else loader\" class=\"col-12 h-100\">\r\n <div class=\"col-12 h-100 py-4\" [class.height-without-footer]=\"showFooter\">\r\n <ng-container *ngIf=\"assessmentQuestionPaperData?.questionPaperSectionList?.length\">\r\n <mat-accordion multi=\"true\" cdkDropList (cdkDropListDropped)=\"dropSection($event)\">\r\n <mat-expansion-panel [hideToggle]=\"true\" #panel=\"matExpansionPanel\" [expanded]=\"section.isExpanded\"\r\n (opened)=\"section.isExpanded = true\" (closed)=\"section.isExpanded = false\"\r\n class=\"mb-4 border-0 overflow-hidden assessment-panel shadow-none\" cdkDrag\r\n *ngFor=\"let section of assessmentQuestionPaperData?.questionPaperSectionList | orderBy; let sectionIndex = index\">\r\n <!-- Section Header -->\r\n <mat-expansion-panel-header class=\"col-12 p-0 h-auto bg-transparent\">\r\n <div class=\"d-flex col-12 align-items-center gap-md-3 gap-2\">\r\n <img cdkDragHandle [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.DRAG_DROP']\"\r\n class=\"cursor-grab\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/drag-drop.svg')\" />\r\n <div class=\"d-flex align-items-center gap-2 flex-grow-1 justify-content-between p-3 assessment-border-radius-two assessment-border-two\"\r\n [class.no-border]=\"section.isExpanded\">\r\n <div>\r\n <div class=\"d-flex align-items-center mb-1\">\r\n <input type=\"text\" [id]=\"'sectionNameInput_' + sectionIndex\"\r\n class=\"col-md-11 col-10 assessment-text-semibold-18 border-0 outline-0 bg-transparent p-0 input-focus\"\r\n [(ngModel)]=\"section.qpsName[0].text\"\r\n [attr.size]=\"(section.qpsName[0].text?.length || 1)\"\r\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.EDIT']\"\r\n class=\"action-icon cursor-pointer\"\r\n (click)=\"focusSectionInput(sectionIndex, $event)\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/pencil.svg')\" />\r\n </div>\r\n <p class=\"mb-0 assessment-text-medium-12 assessment-text-grey-seven\">\r\n {{section?.sectionQuestionsList?.length || 0}}\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.QUESTIONS']}}\r\n </p>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-md-4 gap-2\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.ARROW_DOWN_BLACK']\"\r\n [ngClass]=\"panel.expanded ? 'change-direction' : 'change-direction-reverse'\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/arrow-down-black.svg')\" />\r\n <button [matMenuTriggerFor]=\"menu\" (click)=\"$event.stopPropagation()\"\r\n class=\"border-0 bg-transparent py-2\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.ACTION_DOTS']\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/action-dots.svg')\" />\r\n </button>\r\n <mat-menu #menu=\"matMenu\"\r\n class=\"mat-menu assessment-border-radius-two assessment-border-grey-four-1\">\r\n <button (click)=\"addInstruction(section)\" mat-menu-item\r\n class=\"py-2 assessment-text-semibold-12\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.ADD_INSTRUCTIONS']}}\r\n </button>\r\n <button (click)=\"duplicateSection(section.id)\" mat-menu-item\r\n class=\"py-2 assessment-text-semibold-12\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.DUPLICATE']}}\r\n </button>\r\n <button (click)=\"deleteSection(section)\" mat-menu-item\r\n class=\"py-2 assessment-text-semibold-12 assessment-text-danger\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.DELETE']}}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel-header>\r\n\r\n <!-- Questions inside section -->\r\n\r\n <div cdkDropList [cdkDropListData]=\"section.sectionQuestionsList || []\"\r\n (cdkDropListDropped)=\"dropQuestion($event)\">\r\n <div cdkDrag *ngFor=\"let sectionQuestion of section.sectionQuestionsList | orderBy; let i = index\"\r\n class=\"d-flex align-items-start gap-md-3 gap-2 my-3\">\r\n <img cdkDragHandle [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.DRAG_DROP']\"\r\n class=\"cursor-grab mt-4\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/drag-drop.svg')\" />\r\n <div class=\"flex-grow-1 p-3 assessment-border-two assessment-border-radius-two question-container\">\r\n <lib-question-details [sectionQuestion]=\"sectionQuestion\"\r\n [question]=\"getQuestionFromBank(sectionQuestion.questionId) || {}\"\r\n [questionBank]=\"questionBank\" [imageConfig]=\"imageConfig\"\r\n [labelConfig]=\"labelConfig\"\r\n (editQuestion)=\"createEditQuestion(section, $event?.questionId, $event?.isChildQuestion)\"\r\n (duplicateQuestion)=\"duplicateQuestion(section, $event)\"\r\n (deleteParentQuestion)=\"deleteParentQuestion($event)\"\r\n (deleteChildQuestion)=\"deleteChildQuestion($event.option, $event.childQuestionId)\">\r\n </lib-question-details>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 ps-4 border-bottom pb-4\">\r\n <button (click)=\"createEditQuestion(section)\"\r\n class=\"assessment-zoom-animation assessment-button-padding d-flex align-items-center justify-content-center gap-3 assessment-text-primary-one assessment-bg-palette-EDF3FD assessment-text-semibold-12 outline-0 assessment-border-radius-two mt-3 border-ADC9F6\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.PLUS_PRIMARY']\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/plus-primary.svg')\" />\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.ADD_A_QUESTION']}}\r\n </button>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n <button (click)=\"createEditQuestion()\"\r\n class=\"assessment-zoom-animation assessment-button-padding d-flex align-items-center justify-content-center gap-3 assessment-text-primary-one assessment-bg-palette-EDF3FD assessment-text-semibold-12 outline-0 assessment-border-radius-two mt-3 border-ADC9F6 ms-4\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.ADD_SECTION']\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/add-section.svg')\" />\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.ADD_A_SECTION']}}\r\n </button>\r\n </ng-container>\r\n <div *ngIf=\"!assessmentQuestionPaperData?.questionPaperSectionList?.length\"\r\n class=\"h-100 d-flex flex-column align-items-center justify-content-center gap-3\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.NO_QUESTIONS']\" class=\"col-sm-auto col-6\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/no-questions.svg')\" />\r\n <div class=\"text-center\">\r\n <p class=\"mb-1 assessment-text-medium-18\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.ADD_CUSTOM_QUESTIONS']}}</p>\r\n <p class=\"mb-0 assessment-text-medium-12 assessment-text-grey-seven\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.ADD_QUESTION_DESC']}}</p>\r\n </div>\r\n <button (click)=\"createEditQuestion()\"\r\n class=\"assessment-button-padding assessment-border-radius-two d-flex align-items-center gap-2 assessment-bg-palette-EDF3FD assessment-text-primary-one assessment-text-semibold-12 border-0 assessment-zoom-animation\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.PLUS_PRIMARY']\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/plus-primary.svg')\" />\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.ADD_A_QUESTION']}}\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showFooter\"\r\n class=\"bg-white p-3 position-sticky bottom-0 d-flex align-items-center justify-content-end border-top gap-3\">\r\n <button (click)=\"discardChanges()\" [disabled]=\"isSubmitting\"\r\n class=\"assessment-zoom-animation assessment-border-radius-two assessment-button-padding-large assessment-btn-primary-transparent assessment-text-semibold-13\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.DISCARD']}}</button>\r\n <button (click)=\"finalSubmit()\" [disabled]=\"isSubmitting\"\r\n class=\"assessment-zoom-animation assessment-border-radius-two assessment-button-padding-large assessment-btn-primary assessment-text-semibold-13 position-relative\">\r\n <span [ngClass]=\"{'opacity-0': isSubmitting}\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.PUBLISH']}}\r\n </span>\r\n <mat-spinner *ngIf=\"isSubmitting\" [diameter]=\"20\"\r\n class=\"position-absolute top-50 start-50 translate-middle assessment-spinner-white\"></mat-spinner>\r\n </button>\r\n </div>\r\n</div>\r\n<ng-template #loader>\r\n <div class=\"h-100 col-12 d-flex align-items-center justify-content-center py-5\">\r\n <mat-spinner diameter=\"60\" class=\"assessment-spinner-primary\"></mat-spinner>\r\n </div>\r\n</ng-template>", styles: [".assessment-text-grey-ten{color:var(--assessment-grey-ten)!important}.assessment-bg-grey-ten{background-color:var(--assessment-grey-ten)!important}.assessment-text-grey-nine{color:var(--assessment-grey-nine)!important}.assessment-bg-grey-nine{background-color:var(--assessment-grey-nine)!important}.assessment-text-grey-eight{color:var(--assessment-grey-eight)!important}.assessment-bg-grey-eight{background-color:var(--assessment-grey-eight)!important}.assessment-text-grey-seven{color:var(--assessment-grey-seven)!important}.assessment-bg-grey-seven{background-color:var(--assessment-grey-seven)!important}.assessment-text-grey-six{color:var(--assessment-grey-six)!important}.assessment-bg-grey-six{background-color:var(--assessment-grey-six)!important}.assessment-text-grey-five{color:var(--assessment-grey-five)!important}.assessment-bg-grey-five{background-color:var(--assessment-grey-five)!important}.assessment-text-grey-four{color:var(--assessment-grey-four)!important}.assessment-bg-grey-four{background-color:var(--assessment-grey-four)!important}.assessment-text-grey-three{color:var(--assessment-grey-three)!important}.assessment-bg-grey-three{background-color:var(--assessment-grey-three)!important}.assessment-text-grey-two{color:var(--assessment-grey-two)!important}.assessment-bg-grey-two{background-color:var(--assessment-grey-two)!important}.assessment-text-grey-one{color:var(--assessment-grey-one)!important}.assessment-bg-grey-one{background-color:var(--assessment-grey-one)!important}.assessment-text-white{color:var(--assessment-white)!important}.assessment-bg-white{background-color:var(--assessment-white)!important}.assessment-text-black{color:var(--assessment-black)!important}.assessment-bg-black{background-color:var(--assessment-black)!important}.assessment-text-danger{color:var(--assessment-danger)!important}.assessment-bg-danger{background-color:var(--assessment-danger)!important}.assessment-text-primary-one{color:var(--assessment-primary-one)!important}.assessment-bg-primary-one{background-color:var(--assessment-primary-one)!important}.assessment-text-primary-four{color:var(--assessment-primary-four)!important}.assessment-bg-primary-four{background-color:var(--assessment-primary-four)!important}.assessment-text-palette-EDF3FD{color:var(--assessment-palette-EDF3FD)!important}.assessment-bg-palette-EDF3FD{background-color:var(--assessment-palette-EDF3FD)!important}.assessment-text-palette-C8DAF9{color:var(--assessment-palette-C8DAF9)!important}.assessment-bg-palette-C8DAF9{background-color:var(--assessment-palette-C8DAF9)!important}.assessment-text-palette-ADC9F6{color:var(--assessment-palette-ADC9F6)!important}.assessment-bg-palette-ADC9F6{background-color:var(--assessment-palette-ADC9F6)!important}.assessment-text-palette-FEF9F1{color:var(--assessment-palette-FEF9F1)!important}.assessment-bg-palette-FEF9F1{background-color:var(--assessment-palette-FEF9F1)!important}.assessment-text-palette-F9DAA6{color:var(--assessment-palette-F9DAA6)!important}.assessment-bg-palette-F9DAA6{background-color:var(--assessment-palette-F9DAA6)!important}.assessment-text-palette-E8F7F0{color:var(--assessment-palette-E8F7F0)!important}.assessment-bg-palette-E8F7F0{background-color:var(--assessment-palette-E8F7F0)!important}.assessment-text-palette-B7E7CF{color:var(--assessment-palette-B7E7CF)!important}.assessment-bg-palette-B7E7CF{background-color:var(--assessment-palette-B7E7CF)!important}.assessment-box-shadow-one{box-shadow:var(--assessment-box-shadow-one)!important}.assessment-border-radius-one{border-radius:var(--assessment-border-radius-one)!important}.assessment-border-radius-two{border-radius:var(--assessment-border-radius-two)!important}.assessment-border-radius-three{border-radius:var(--assessment-border-radius-three)!important}.assessment-border-radius-four{border-radius:var(--assessment-border-radius-four)!important}.assessment-border-radius-five{border-radius:var(--assessment-border-radius-five)!important}.assessment-border-radius-six{border-radius:var(--assessment-border-radius-six)!important}.assessment-input-border-one{border:var(--assessment-input-border-one)!important}.assessment-input-border-invalid{border:var(--assessment-input-border-invalid)!important}.assessment-input-focus-border{border:var(--assessment-input-focus-border)!important}.assessment-border-two{border:var(--assessment-border-two)!important}.assessment-card-border{border:var(--assessment-card-border)!important}.assessment-tooltip-border{border:var(--assessment-tooltip-border)!important}.assessment-box-shadow-tooltip{box-shadow:var(--assessment-box-shadow-tooltip)!important}.assessment-button-padding{padding:var(--assessment-button-padding)!important}.assessment-button-padding-large{padding:var(--assessment-button-padding-large)!important}.assessment-input-padding{padding:var(--assessment-input-padding)!important}.assessment-text-font-family{color:var(--assessment-font-family)!important}.assessment-bg-font-family{background-color:var(--assessment-font-family)!important}.assessment-text-regular-12{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-bold-12{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-semibold-11{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-11{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-regular-11{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.48rem + .25vw);line-height:calc(.8rem + .25vw)}.assessment-text-medium-12{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.assessment-text-regular-13{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-bold-13{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-semibold-13{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-medium-13{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.64rem + .2vw)!important;line-height:calc(.9rem + .2vw)!important}.assessment-text-regular-14{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-bold-14{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-medium-14{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw)!important;line-height:calc(1.2rem + .2vw)!important}.assessment-text-semibold-14{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.7rem + .2vw);line-height:calc(1.2rem + .2vw)}.assessment-text-semibold-10{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw);line-height:calc(1rem + .1vw)}.assessment-text-regular-10{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.55rem + .1vw)!important;line-height:calc(1rem + .1vw)}.assessment-text-regular-15{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.4rem + .1vw)}.assessment-text-medium-15{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-semibold-15{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-bold-15{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.85rem + .1vw);line-height:calc(1.25rem + .1vw)}.assessment-text-regular-16{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-semibold-16{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-bold-16{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-medium-16{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(.77rem + .25vw);line-height:calc(1.25rem + .2vw)}.assessment-text-regular-20{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-bold-20{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-semibold-20{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-20{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .3vw);line-height:calc(1.2rem + .3vw)}.assessment-text-medium-18{font-weight:500;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-regular-18{font-weight:400;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .3vw)!important}.assessment-text-bold-18{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw);line-height:calc(1.5rem + .1vw)}.assessment-text-semibold-18{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .125vw)!important;line-height:calc(1.5rem + .1vw)!important}.assessment-text-bold-34{overflow-wrap:break-word;font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-medium-34{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(2rem + .15vw);line-height:calc(2.5rem + .15vw)}.assessment-text-bold-32{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.3rem + .75vw);line-height:calc(1.625rem + .5vw)}.assessment-text-bold-22{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-regular-22{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-semibold-22{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-medium-22{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-24{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-regular-24{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-semibold-24{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.8rem + .75vw);line-height:calc(.9rem + .75vw)}.assessment-text-medium-24{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.8rem + .75vw);line-height:calc(1.2rem + .75vw)}.assessment-text-regular-26{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-medium-26{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-bold-26{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-semibold-26{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .1vw);line-height:calc(1.8rem + .1vw)}.assessment-text-regular-28{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-medium-28{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-semibold-28{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw);letter-spacing:1}.assessment-text-bold-28{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.55rem + .2vw);line-height:calc(2rem + .2vw)}.assessment-text-regular-30{font-weight:400;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw)}.assessment-text-medium-30{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw)}.assessment-text-bold-30{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(2rem + .4vw)}.assessment-text-semibold-30{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(1.5rem + .4vw);line-height:calc(1.5rem + .4vw);letter-spacing:.5}.assessment-text-bold-36{font-weight:700;font-family:var(--assessment-font-family)!important;font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}.assessment-text-semibold-36{font-weight:600;font-family:var(--assessment-font-family);font-size:calc(2rem + .25vw);line-height:calc(2.5rem + .3vw)}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-bold-34{font-size:calc(1.8rem + .15vh);line-height:calc(2.2rem + .15vh)}.assessment-text-bold-32{font-size:calc(1.3rem + 1vh);line-height:calc(1.5rem + 1vh)}.assessment-text-semibold-30{font-size:calc(1.5rem + .4vh);line-height:calc(1.8rem + .4vh)}.assessment-text-medium-24{line-height:2.188rem}.assessment-text-medium-24,.assessment-text-regular-24,.assessment-text-semibold-24,.assessment-text-bold-24,.assessment-text-light-24{font-size:calc(1.3rem + .5vh);line-height:calc(1.8rem + .5vh)}.assessment-text-medium-18,.assessment-text-regular-18,.assessment-text-bold-18,.assessment-text-semibold-18,.assessment-text-light-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-light-16,.assessment-text-bold-16{font-size:calc(.9rem + .3vh)!important;line-height:calc(1.2rem + .3vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16,.assessment-text-regular-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15,.assessment-text-bold-15,.assessment-text-light-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12,.assessment-text-bold-12,.assessment-text-medium-upper-12,.assessment-text-light-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-regular-14,.assessment-text-light-14,.assessment-text-medium-upper-14,.assessment-text-semibold-14,.assessment-text-bold-14{font-size:calc(.8rem + .1vh)!important;line-height:calc(1.2rem + .2vh)!important}.assessment-text-regular-13,.assessment-text-medium-13,.assessment-text-semibold-13,.assessment-text-bold-13,.assessment-text-light-13{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11,.assessment-text-semibold-11,.assessment-text-bold-11,.assessment-text-light-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}}.assessment-btn-primary{background-color:var(--assessment-primary-one);color:var(--assessment-white);border:.064rem solid var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two)}.assessment-btn-primary-transparent{background-color:var(--assessment-white);color:var(--assessment-primary-one);border-radius:var(--assessment-border-radius-two);border:.064rem solid var(--assessment-primary-one)}.assessment-zoom-animation{transition:transform .2s ease;transform:translateZ(0);text-rendering:optimizeLegibility}.assessment-zoom-animation:hover{transform:scale(1.03)}.assessment-zoom-animation:active{transform:scale(1)}.assessment-zoom-animation:disabled{transform:none!important}.change-direction{transform:rotate(180deg);transition:.3s ease-out}.change-direction-reverse{transform:rotate(0);transition:.3s ease-out}.outline-0{outline:none}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.action-icon{width:1.2rem}.mat-menu-item{height:inherit}.input-focus{overflow:hidden;text-overflow:ellipsis}.input-focus:focus-visible{border-bottom:var(--assessment-input-focus-border)!important}.one-line-truncate{display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.height-without-footer{height:calc(100% - 4.4rem)!important}.question-container{transition:all .3s ease}.question-container:hover{box-shadow:var(--assessment-box-shadow-one);background-color:var(--assessment-palette-EDF3FD);border-color:var(--assessment-palette-C8DAF9)!important}.border-ADC9F6{border:.064rem solid var(--assessment-palette-ADC9F6)}.no-border{border-color:transparent!important}\n"], components: [{ type: i7.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i7.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i1$4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i1$4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: QuestionDetailsComponent, selector: "lib-question-details", inputs: ["sectionQuestion", "question", "questionBank", "labelConfig", "imageConfig"], outputs: ["editQuestion", "duplicateQuestion", "deleteParentQuestion", "deleteChildQuestion"] }, { type: i8.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatAccordion, selector: "mat-accordion", inputs: ["multi", "displayMode", "togglePosition", "hideToggle"], exportAs: ["matAccordion"] }, { type: i9$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "id", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListAutoScrollDisabled", "cdkDropListOrientation", "cdkDropListLockAxis", "cdkDropListData", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragDisabled", "cdkDragStartDelay", "cdkDragLockAxis", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragBoundary", "cdkDragRootElement", "cdkDragPreviewContainer", "cdkDragData", "cdkDragFreeDragPosition"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i9$1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], pipes: { "orderBy": OrderByPipe } });
3173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentMakerComponent, decorators: [{
3174
+ type: Component,
3175
+ args: [{
3176
+ selector: 'lib-assessment-maker',
3177
+ templateUrl: './assessment-maker.component.html',
3178
+ styleUrls: ['./assessment-maker.component.scss']
3179
+ }]
3180
+ }], ctorParameters: function () { return [{ type: AssessmentMakerService }, { type: AssessmentBuilderService }, { type: i1.MatDialog }]; }, propDecorators: { labelConfig: [{
3181
+ type: Input
3182
+ }], imageConfig: [{
3183
+ type: Input
3184
+ }], questionTypes: [{
3185
+ type: Input
3186
+ }], showFooter: [{
3187
+ type: Input
3188
+ }], customRules: [{
3189
+ type: Input
3190
+ }], assessmentId: [{
3191
+ type: Input
3192
+ }], assessmentInstanceId: [{
3193
+ type: Input
3194
+ }], defaultAssessmentDTO: [{
3195
+ type: Input
3196
+ }], assessmentIdChange: [{
3197
+ type: Output
3198
+ }], assessmentInstanceIdChange: [{
3199
+ type: Output
3200
+ }], snackbarMessage: [{
3201
+ type: Output
3202
+ }] } });
3203
+
3204
+ class AssessmentMakerModule {
3205
+ }
3206
+ AssessmentMakerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentMakerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3207
+ AssessmentMakerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentMakerModule, declarations: [AssessmentMakerComponent,
3208
+ AddEditSectionIntroductionComponent,
3209
+ AssessmentBuilderComponent,
3210
+ QuestionDetailsComponent], imports: [CommonModule,
3211
+ SharedModule,
3212
+ MaterialModules,
3213
+ FormsModule,
3214
+ ReactiveFormsModule], exports: [AssessmentMakerComponent] });
3215
+ AssessmentMakerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentMakerModule, providers: [AssessmentMakerService], imports: [[
3216
+ CommonModule,
3217
+ SharedModule,
3218
+ MaterialModules,
3219
+ FormsModule,
3220
+ ReactiveFormsModule
3221
+ ]] });
3222
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AssessmentMakerModule, decorators: [{
3223
+ type: NgModule,
3224
+ args: [{
3225
+ declarations: [
3226
+ AssessmentMakerComponent,
3227
+ AddEditSectionIntroductionComponent,
3228
+ AssessmentBuilderComponent,
3229
+ QuestionDetailsComponent
3230
+ ],
3231
+ imports: [
3232
+ CommonModule,
3233
+ SharedModule,
3234
+ MaterialModules,
3235
+ FormsModule,
3236
+ ReactiveFormsModule
3237
+ ],
3238
+ exports: [
3239
+ AssessmentMakerComponent
3240
+ ],
3241
+ providers: [AssessmentMakerService]
3242
+ }]
3243
+ }] });
3244
+
3245
+ class CommonsAssessmentModule {
3246
+ static forRoot(config) {
3247
+ return {
3248
+ ngModule: CommonsAssessmentModule,
3249
+ providers: [
3250
+ { provide: LIBRARY_CONFIG, useValue: config }
3251
+ ],
3252
+ };
3253
+ }
3254
+ }
3255
+ CommonsAssessmentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CommonsAssessmentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3256
+ CommonsAssessmentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CommonsAssessmentModule, imports: [CommonModule] });
3257
+ CommonsAssessmentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CommonsAssessmentModule, imports: [[
3258
+ CommonModule
3259
+ ]] });
3260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CommonsAssessmentModule, decorators: [{
3261
+ type: NgModule,
3262
+ args: [{
3263
+ imports: [
3264
+ CommonModule
3265
+ ]
3266
+ }]
3267
+ }] });
3268
+
3269
+ /*
3270
+ * Public API Surface of assessment-maker
3271
+ */
3272
+
3273
+ /**
3274
+ * Generated bundle index. Do not edit.
3275
+ */
3276
+
3277
+ export { AssessmentMakerComponent, AssessmentMakerModule, AssessmentTakerComponent, AssessmentTakerModule, CommonsAssessmentModule, deepClone, generateUuid };
3278
+ //# sourceMappingURL=commons-assessment.js.map