commons-assessment 12.1.1 → 12.1.2-dev.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 (56) hide show
  1. package/bundles/commons-assessment.umd.js +989 -114
  2. package/bundles/commons-assessment.umd.js.map +1 -1
  3. package/esm2015/lib/modules/assessment-maker/assessment-maker.component.js +148 -5
  4. package/esm2015/lib/modules/assessment-maker/assessment-maker.module.js +10 -5
  5. package/esm2015/lib/modules/assessment-maker/components/add-edit-section-introduction/add-edit-section-introduction.component.js +1 -1
  6. package/esm2015/lib/modules/assessment-maker/components/assessment-builder/assessment-builder.component.js +64 -20
  7. package/esm2015/lib/modules/assessment-maker/components/question-bank-picker/question-bank-picker.component.js +276 -0
  8. package/esm2015/lib/modules/assessment-maker/components/question-details/question-details.component.js +12 -2
  9. package/esm2015/lib/modules/assessment-maker/services/assessment-builder.service.js +7 -2
  10. package/esm2015/lib/modules/assessment-maker/services/assessment-maker.service.js +30 -19
  11. package/esm2015/lib/modules/assessment-taker/assessment-taker.component.js +2 -7
  12. package/esm2015/lib/modules/assessment-taker/components/proctoring-consent/proctoring-consent.component.js +2 -14
  13. package/esm2015/lib/modules/assessment-taker/components/proctoring-result/proctoring-result.component.js +2 -2
  14. package/esm2015/lib/modules/assessment-taker/components/question-type-date-picker/question-type-date-picker.component.js +1 -1
  15. package/esm2015/lib/modules/assessment-taker/components/question-type-editor/question-type-editor.component.js +1 -1
  16. package/esm2015/lib/modules/assessment-taker/components/question-type-file-upload/question-type-file-upload.component.js +1 -1
  17. package/esm2015/lib/modules/assessment-taker/components/question-type-long/question-type-long.component.js +1 -1
  18. package/esm2015/lib/modules/assessment-taker/components/question-type-multiselect/question-type-multiselect.component.js +1 -1
  19. package/esm2015/lib/modules/assessment-taker/components/question-type-objective/question-type-objective.component.js +1 -1
  20. package/esm2015/lib/modules/assessment-taker/components/question-type-preference/question-type-preference.component.js +1 -1
  21. package/esm2015/lib/modules/assessment-taker/components/question-type-short/question-type-short.component.js +1 -1
  22. package/esm2015/lib/modules/assessment-taker/components/section-instructions/section-instructions.component.js +1 -1
  23. package/esm2015/lib/modules/assessment-taker/services/assessment-taker.service.js +2 -15
  24. package/esm2015/lib/modules/question-bank/question-bank.component.js +313 -0
  25. package/esm2015/lib/modules/question-bank/question-bank.module.js +45 -0
  26. package/esm2015/lib/shared/components/confirmation-dialog/confirmation-dialog.component.js +1 -1
  27. package/esm2015/lib/shared/components/skill-allocation/skill-allocation.component.js +1 -1
  28. package/esm2015/lib/shared/controllers.js +5 -1
  29. package/esm2015/lib/shared/interfaces/assessment.interface.js +1 -1
  30. package/esm2015/lib/shared/pipes/order-by.pipe.js +3 -4
  31. package/esm2015/lib/shared/utils.js +19 -1
  32. package/esm2015/public-api.js +4 -1
  33. package/fesm2015/commons-assessment.js +904 -93
  34. package/fesm2015/commons-assessment.js.map +1 -1
  35. package/lib/modules/assessment-maker/assessment-maker.component.d.ts +11 -2
  36. package/lib/modules/assessment-maker/assessment-maker.module.d.ts +6 -5
  37. package/lib/modules/assessment-maker/components/assessment-builder/assessment-builder.component.d.ts +3 -0
  38. package/lib/modules/assessment-maker/components/question-bank-picker/question-bank-picker.component.d.ts +81 -0
  39. package/lib/modules/assessment-maker/components/question-details/question-details.component.d.ts +3 -1
  40. package/lib/modules/assessment-maker/services/assessment-maker.service.d.ts +3 -2
  41. package/lib/modules/assessment-taker/services/assessment-taker.service.d.ts +16 -18
  42. package/lib/modules/question-bank/question-bank.component.d.ts +65 -0
  43. package/lib/modules/question-bank/question-bank.module.d.ts +12 -0
  44. package/lib/shared/controllers.d.ts +4 -0
  45. package/lib/shared/interfaces/assessment.interface.d.ts +5 -0
  46. package/lib/shared/utils.d.ts +4 -0
  47. package/package.json +1 -1
  48. package/public-api.d.ts +3 -0
  49. package/src/lib/assets/images/arrow-down-blue.svg +3 -0
  50. package/src/lib/assets/images/arrow-up-blue.svg +3 -0
  51. package/src/lib/assets/images/file-import.svg +11 -0
  52. package/src/lib/assets/images/plus-white.svg +1 -0
  53. package/src/lib/assets/json/imageConfig.json +5 -1
  54. package/src/lib/assets/json/labelConfig.json +35 -4
  55. package/src/lib/assets/theme/_theme.global.scss +0 -1
  56. package/src/lib/assets/theme/styles.global.scss +0 -12
@@ -0,0 +1,313 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { forkJoin, of, Subject } from 'rxjs';
3
+ import { catchError, debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
4
+ import { AssessmentBuilderComponent } from '../assessment-maker/components/assessment-builder/assessment-builder.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../assessment-maker/services/assessment-maker.service";
7
+ import * as i2 from "../assessment-maker/services/assessment-builder.service";
8
+ import * as i3 from "@angular/material/dialog";
9
+ import * as i4 from "@angular/material/select";
10
+ import * as i5 from "@angular/material/core";
11
+ import * as i6 from "@angular/material/progress-spinner";
12
+ import * as i7 from "@angular/common";
13
+ import * as i8 from "@angular/forms";
14
+ export class QuestionBankComponent {
15
+ constructor(assessmentMakerService, assessmentBuilderService, dialog) {
16
+ this.assessmentMakerService = assessmentMakerService;
17
+ this.assessmentBuilderService = assessmentBuilderService;
18
+ this.dialog = dialog;
19
+ this.labelConfig = {};
20
+ this.imageConfig = {};
21
+ this.questionTypes = [];
22
+ this.questionBankConfig = {};
23
+ this.enableSkillsToQuestionMapping = false;
24
+ this.fetchQuestionsList = false;
25
+ this.autoOpenBuilder = false;
26
+ this.headless = false;
27
+ this.questionCreated = new EventEmitter();
28
+ this.questionUpdated = new EventEmitter();
29
+ this.snackbarMessage = new EventEmitter();
30
+ this.questionsList = [];
31
+ this.questionBank = {};
32
+ this.configsLoaded = false;
33
+ this.showLoader = false;
34
+ this.skillsList = [];
35
+ // Server-side search & filtering state
36
+ this.searchTerm = '';
37
+ this.selectedTypeCode = '';
38
+ this.currentPage = 0;
39
+ this.pageSize = 20;
40
+ this.totalElements = 0;
41
+ this.hasNext = false;
42
+ this.isLoadingMore = false;
43
+ this.lockedQuestionsMap = {};
44
+ this.searchSubject$ = new Subject();
45
+ this.destroy$ = new Subject();
46
+ }
47
+ ngOnInit() {
48
+ if (this.questionBankConfig) {
49
+ this.assessmentBuilderService.setDefaultAssessmentDTO({
50
+ domain: this.questionBankConfig.domain,
51
+ tenant: this.questionBankConfig.tenant
52
+ });
53
+ }
54
+ this.getConfigsFromJSON();
55
+ if (this.fetchQuestionsList) {
56
+ this.searchSubject$.pipe(debounceTime(350), distinctUntilChanged(), takeUntil(this.destroy$)).subscribe(term => {
57
+ this.searchTerm = term;
58
+ this.currentPage = 0;
59
+ this.loadQuestions(0, false);
60
+ });
61
+ this.loadQuestions(0, false);
62
+ }
63
+ if (this.enableSkillsToQuestionMapping) {
64
+ this.getSkillsList();
65
+ }
66
+ }
67
+ ngOnDestroy() {
68
+ this.destroy$.next();
69
+ this.destroy$.complete();
70
+ }
71
+ getConfigsFromJSON() {
72
+ var _a;
73
+ 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) && {
74
+ questionTypes: this.assessmentMakerService.getConfigJSON('json/questionTypes')
75
+ }))).subscribe({
76
+ next: (res) => {
77
+ this.labelConfig = Object.assign({}, res === null || res === void 0 ? void 0 : res.labelConfig, this.labelConfig);
78
+ this.imageConfig = Object.assign({}, res === null || res === void 0 ? void 0 : res.imageConfig, this.imageConfig);
79
+ if (res === null || res === void 0 ? void 0 : res.questionTypes) {
80
+ this.questionTypes = res === null || res === void 0 ? void 0 : res.questionTypes;
81
+ }
82
+ this.rules = Object.assign({}, res === null || res === void 0 ? void 0 : res.rules);
83
+ if (this.customRules) {
84
+ Object.keys(this.customRules).forEach(qType => {
85
+ this.rules[qType] = Object.assign(Object.assign({}, (this.rules[qType] || {})), this.customRules[qType]);
86
+ });
87
+ }
88
+ this.configsLoaded = true;
89
+ if (this.autoOpenBuilder) {
90
+ this.createEditQuestion();
91
+ }
92
+ },
93
+ error: (err) => {
94
+ console.error('Failed to load JSON configs', err);
95
+ this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.ERROR_DEFAULT'] || 'Failed to load configurations.', type: 'error' });
96
+ }
97
+ });
98
+ }
99
+ loadQuestions(page = 0, append = false) {
100
+ var _a, _b, _c;
101
+ if (append) {
102
+ this.isLoadingMore = true;
103
+ }
104
+ else {
105
+ this.showLoader = true;
106
+ }
107
+ const params = {
108
+ page,
109
+ size: this.pageSize
110
+ };
111
+ if ((_a = this.questionBankConfig) === null || _a === void 0 ? void 0 : _a.domain) {
112
+ params.domain = this.questionBankConfig.domain;
113
+ }
114
+ if ((_b = this.questionBankConfig) === null || _b === void 0 ? void 0 : _b.tenant) {
115
+ params.tenant = this.questionBankConfig.tenant;
116
+ }
117
+ if ((_c = this.searchTerm) === null || _c === void 0 ? void 0 : _c.trim()) {
118
+ params.questionText = this.searchTerm.trim();
119
+ }
120
+ if (this.selectedTypeCode) {
121
+ params.questionType = this.selectedTypeCode;
122
+ }
123
+ this.assessmentMakerService.getQuestionBankQuestions(params).subscribe({
124
+ next: (res) => {
125
+ var _a;
126
+ const elements = (res === null || res === void 0 ? void 0 : res.content) || (res === null || res === void 0 ? void 0 : res.elements) || (Array.isArray(res) ? res : []);
127
+ this.totalElements = (_a = res === null || res === void 0 ? void 0 : res.totalElements) !== null && _a !== void 0 ? _a : (append ? this.questionsList.length + elements.length : elements.length);
128
+ this.hasNext = (res === null || res === void 0 ? void 0 : res.hasNext) !== undefined ? !!res.hasNext : (elements.length === this.pageSize);
129
+ this.currentPage = page;
130
+ if (append) {
131
+ this.questionsList = [...this.questionsList, ...elements];
132
+ }
133
+ else {
134
+ this.questionsList = elements;
135
+ }
136
+ this.questionsList.forEach(q => {
137
+ if (q.id)
138
+ this.questionBank[q.id] = q;
139
+ });
140
+ // Batch check lock status for questions
141
+ const questionIds = elements.map(q => q.id).filter(Boolean);
142
+ if (questionIds.length > 0) {
143
+ this.assessmentMakerService.checkQuestionsLocked(questionIds, 'ASSESSMENT_INSTANCE')
144
+ .pipe(catchError(() => of({})))
145
+ .subscribe((lockedMap) => {
146
+ Object.keys(lockedMap || {}).forEach(k => {
147
+ this.lockedQuestionsMap[Number(k)] = !!lockedMap[k];
148
+ });
149
+ this.questionsList.forEach(q => {
150
+ if (q.id && this.lockedQuestionsMap[q.id] !== undefined) {
151
+ q.isLocked = this.lockedQuestionsMap[q.id];
152
+ }
153
+ });
154
+ });
155
+ }
156
+ this.showLoader = false;
157
+ this.isLoadingMore = false;
158
+ },
159
+ error: (err) => {
160
+ this.showLoader = false;
161
+ this.isLoadingMore = false;
162
+ console.error('Failed to load question bank questions', err);
163
+ this.snackbarMessage.emit({ message: this.labelConfig['COMMONS_ASSESSMENT.TOAST.ERROR_DEFAULT'] || 'Failed to load questions.', type: 'error' });
164
+ }
165
+ });
166
+ }
167
+ onSearchChange(term) {
168
+ this.searchSubject$.next(term || '');
169
+ }
170
+ clearSearch() {
171
+ this.searchTerm = '';
172
+ this.currentPage = 0;
173
+ this.loadQuestions(0, false);
174
+ }
175
+ onTypeFilterChange(typeCode) {
176
+ this.selectedTypeCode = typeCode || '';
177
+ this.currentPage = 0;
178
+ this.loadQuestions(0, false);
179
+ }
180
+ loadMore() {
181
+ if (this.hasNext && !this.isLoadingMore && !this.showLoader) {
182
+ this.loadQuestions(this.currentPage + 1, true);
183
+ }
184
+ }
185
+ onQuestionCardClick(question) {
186
+ if (this.isQuestionLocked(question)) {
187
+ this.snackbarMessage.emit({
188
+ message: this.labelConfig['COMMONS_ASSESSMENT.WARNING.QUESTION_LOCKED'] || 'This question is part of a published assessment and cannot be edited.',
189
+ type: 'info'
190
+ });
191
+ return;
192
+ }
193
+ this.createEditQuestion(question);
194
+ }
195
+ isQuestionLocked(question) {
196
+ var _a;
197
+ if (!(question === null || question === void 0 ? void 0 : question.id))
198
+ return false;
199
+ if (((_a = question) === null || _a === void 0 ? void 0 : _a.isLocked) !== undefined) {
200
+ return !!question.isLocked;
201
+ }
202
+ return !!this.lockedQuestionsMap[question.id];
203
+ }
204
+ createEditQuestion(questionDetails) {
205
+ if (questionDetails === null || questionDetails === void 0 ? void 0 : questionDetails.id) {
206
+ if (this.isQuestionLocked(questionDetails)) {
207
+ this.snackbarMessage.emit({
208
+ message: this.labelConfig['COMMONS_ASSESSMENT.WARNING.QUESTION_LOCKED'] || 'This question is part of a published assessment and cannot be edited.',
209
+ type: 'info'
210
+ });
211
+ return;
212
+ }
213
+ }
214
+ this.openBuilderDialog(questionDetails);
215
+ }
216
+ openBuilderDialog(questionDetails) {
217
+ const dialogRef = this.dialog.open(AssessmentBuilderComponent, {
218
+ autoFocus: false,
219
+ position: { right: '0' },
220
+ maxWidth: '100%',
221
+ width: '55rem',
222
+ height: '100vh',
223
+ panelClass: ['assessment-dialog', 'assessment-dialog-slider-animation'],
224
+ hasBackdrop: true,
225
+ data: {
226
+ labelConfig: this.labelConfig,
227
+ imageConfig: this.imageConfig,
228
+ questionTypes: this.questionTypes,
229
+ rules: this.rules,
230
+ questionBank: this.questionBank,
231
+ questionDetails,
232
+ standaloneMode: true,
233
+ skillsList: this.skillsList,
234
+ snackbarMessageEmitter: this.snackbarMessage,
235
+ isLocked: this.isQuestionLocked(questionDetails)
236
+ },
237
+ });
238
+ dialogRef.afterClosed().subscribe((res) => {
239
+ if (res === null || res === void 0 ? void 0 : res.success) {
240
+ if (this.fetchQuestionsList) {
241
+ this.loadQuestions(0, false);
242
+ }
243
+ if (res === null || res === void 0 ? void 0 : res.question) {
244
+ if (questionDetails === null || questionDetails === void 0 ? void 0 : questionDetails.id) {
245
+ this.questionUpdated.emit(res.question);
246
+ }
247
+ else {
248
+ this.questionCreated.emit(res.question);
249
+ }
250
+ }
251
+ }
252
+ });
253
+ }
254
+ capitalizeFirst(text) {
255
+ if (!text)
256
+ return '';
257
+ return text.toLowerCase().split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
258
+ }
259
+ imageErrorHandler(event, filePath) {
260
+ event.target.src = filePath;
261
+ }
262
+ getSkillsList() {
263
+ const params = {
264
+ fetchContextDataOnly: false,
265
+ page: 0,
266
+ size: 20,
267
+ direction: 'ASC'
268
+ };
269
+ this.assessmentMakerService.getRefDataByCode('REF.ASSESSMENT_QUESTION_SKILL', params).subscribe({
270
+ next: (res) => {
271
+ this.skillsList = (res === null || res === void 0 ? void 0 : res.elements) || [];
272
+ },
273
+ error: (error) => {
274
+ console.error(error);
275
+ }
276
+ });
277
+ }
278
+ }
279
+ QuestionBankComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionBankComponent, deps: [{ token: i1.AssessmentMakerService }, { token: i2.AssessmentBuilderService }, { token: i3.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
280
+ QuestionBankComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionBankComponent, selector: "lib-question-bank", inputs: { labelConfig: "labelConfig", imageConfig: "imageConfig", questionTypes: "questionTypes", customRules: "customRules", questionBankConfig: "questionBankConfig", enableSkillsToQuestionMapping: "enableSkillsToQuestionMapping", fetchQuestionsList: "fetchQuestionsList", autoOpenBuilder: "autoOpenBuilder", headless: "headless" }, outputs: { questionCreated: "questionCreated", questionUpdated: "questionUpdated", snackbarMessage: "snackbarMessage" }, ngImport: i0, template: "<ng-container *ngIf=\"!headless\">\r\n<div *ngIf=\"configsLoaded && !showLoader; else loader\" class=\"d-flex flex-column w-100 h-100 py-3 px-3 assessment-question-bank-wrapper\">\r\n \r\n <!-- Mode 1: Create Question Standalone Banner / Action View (Default when fetchQuestionsList = false) -->\r\n <ng-container *ngIf=\"!fetchQuestionsList\">\r\n <div class=\"d-flex flex-column align-items-center justify-content-center text-center p-5 assessment-border-two assessment-border-radius-two assessment-bg-white shadow-sm my-auto\">\r\n <div class=\"mb-3 p-3 rounded-circle assessment-bg-palette-EDF3FD\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.PLUS_PRIMARY']\" class=\"icon-lg\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/plus-primary.svg')\" />\r\n </div>\r\n <h3 class=\"mb-2 assessment-text-semibold-20 assessment-text-grey-ten\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.CREATE_QUESTION'] || 'Create Standalone Question'}}\r\n </h3>\r\n <p class=\"mb-4 assessment-text-medium-14 assessment-text-grey-seven max-w-md\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.QUESTION_BANK_DESC'] || 'Create independent questions that can be stored in the question repository and mapped to any assessment later.'}}\r\n </p>\r\n <button (click)=\"createEditQuestion()\"\r\n class=\"assessment-button-padding assessment-border-radius-two d-flex align-items-center gap-2 assessment-bg-primary-one assessment-text-white assessment-text-semibold-14 border-0 shadow-sm assessment-zoom-animation\">\r\n <img [src]=\"imageConfig['COMMONS_ASSESSMENT.ICON.PLUS_WHITE']\"\r\n (error)=\"imageErrorHandler($event, 'assets/commons-assessment/images/plus-white.svg')\" />\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.CREATE_QUESTION'] || 'Create Question'}}\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Mode 2: Questions List View (Only rendered if fetchQuestionsList = true) -->\r\n <ng-container *ngIf=\"fetchQuestionsList\">\r\n <!-- Header bar -->\r\n <div class=\"d-flex align-items-center justify-content-between mb-3 w-100\">\r\n <div>\r\n <h4 class=\"mb-1 assessment-text-semibold-18 assessment-text-grey-ten\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.QUESTION_BANK'] || 'Question Bank'}}\r\n </h4>\r\n <p class=\"mb-0 assessment-text-medium-12 assessment-text-grey-seven\">\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.QUESTION_BANK_DESC'] || 'Create and manage independent questions to map to assessments'}}\r\n </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.CREATE_QUESTION'] || 'Create Question'}}\r\n </button>\r\n </div>\r\n\r\n <!-- Search & Filter Deck -->\r\n <div class=\"d-flex align-items-center gap-3 mb-3 w-100 flex-wrap flex-md-nowrap qb-toolbar\">\r\n <!-- Search Box -->\r\n <div class=\"search-input-wrapper flex-grow-1 position-relative\">\r\n <span class=\"search-icon-prefix\">\r\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\r\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line>\r\n </svg>\r\n </span>\r\n <input type=\"text\"\r\n class=\"search-input\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.LABEL.SEARCH_QUESTIONS'] || 'Search questions by text...'\"\r\n [ngModel]=\"searchTerm\"\r\n (ngModelChange)=\"onSearchChange($event)\">\r\n <button *ngIf=\"searchTerm\" (click)=\"clearSearch()\" class=\"search-clear-btn\" aria-label=\"Clear Search\">\r\n \u2715\r\n </button>\r\n </div>\r\n\r\n <!-- Question Type Dropdown Filter -->\r\n <div class=\"type-filter-wrapper\">\r\n <mat-select [ngModel]=\"selectedTypeCode\"\r\n (ngModelChange)=\"onTypeFilterChange($event)\"\r\n class=\"custom-mat-select\"\r\n [placeholder]=\"labelConfig['COMMONS_ASSESSMENT.LABEL.ALL_TYPES'] || 'All Question Types'\">\r\n <mat-option value=\"\">{{labelConfig['COMMONS_ASSESSMENT.LABEL.ALL_TYPES'] || 'All Question Types'}}</mat-option>\r\n <mat-option *ngFor=\"let type of questionTypes\" [value]=\"type.code\">\r\n {{type.label || type.code}}\r\n </mat-option>\r\n </mat-select>\r\n </div>\r\n </div>\r\n\r\n <!-- Questions List Cards -->\r\n <div *ngIf=\"questionsList?.length\" class=\"d-flex flex-column gap-3 w-100\">\r\n <div *ngFor=\"let question of questionsList\" \r\n class=\"p-3 assessment-border-two assessment-border-radius-two question-container assessment-bg-white\"\r\n [class.cursor-pointer]=\"!isQuestionLocked(question)\"\r\n [class.question-locked-card]=\"isQuestionLocked(question)\"\r\n (click)=\"onQuestionCardClick(question)\">\r\n <div class=\"d-flex align-items-center justify-content-between mb-2\">\r\n <div class=\"d-flex flex-wrap gap-2 align-items-center\">\r\n <span 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 || question?.questionType?.code)}}\r\n </span>\r\n <span *ngIf=\"question?.weight\" 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'] || 'Marks'}}\r\n </span>\r\n <span *ngIf=\"question?.isMandatory\" 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'] || 'Mandatory'}}\r\n </span>\r\n <span *ngIf=\"isQuestionLocked(question)\" class=\"badge-locked-pill d-inline-flex align-items-center gap-1\">\r\n <svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\">\r\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"></rect>\r\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"></path>\r\n </svg>\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.LOCKED'] || 'Locked'}}\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"assessment-text-medium-15 question-text text-break\" [innerHTML]=\"question?.questionText?.[0]?.text\"></div>\r\n \r\n <!-- Skill mapping badges -->\r\n <div *ngIf=\"(question?.skillCodes?.length ?? 0) > 0\" class=\"mt-2\">\r\n <div class=\"d-flex flex-wrap gap-2\">\r\n <span *ngFor=\"let skill of question?.skillCodes\"\r\n class=\"assessment-text-medium-12 assessment-text-grey-ten rounded-2 skill-chip px-2 py-1\">\r\n {{skill?.labels?.[0]?.text || skill?.name || skill?.code}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Load More button -->\r\n <div *ngIf=\"hasNext\" class=\"d-flex justify-content-center py-3 w-100\">\r\n <button (click)=\"loadMore()\"\r\n [disabled]=\"isLoadingMore\"\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 <mat-spinner *ngIf=\"isLoadingMore\" diameter=\"16\" class=\"assessment-spinner-primary\"></mat-spinner>\r\n {{labelConfig['COMMONS_ASSESSMENT.LABEL.LOAD_MORE'] || 'Load More'}}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <!-- Empty state when fetchQuestionsList = true but 0 results returned -->\r\n <div *ngIf=\"!questionsList?.length\" class=\"h-100 d-flex flex-column align-items-center justify-content-center gap-3 py-5\">\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\">\r\n {{(searchTerm || selectedTypeCode) ? (labelConfig['COMMONS_ASSESSMENT.LABEL.NO_QUESTIONS_FOUND'] || 'No matching questions found') : (labelConfig['COMMONS_ASSESSMENT.LABEL.NO_QUESTIONS_IN_BANK'] || 'No Questions in Bank!')}}\r\n </p>\r\n <p class=\"mb-0 assessment-text-medium-12 assessment-text-grey-seven\">\r\n {{(searchTerm || selectedTypeCode) ? 'Try adjusting your search term or filter' : (labelConfig['COMMONS_ASSESSMENT.LABEL.NO_QUESTIONS_IN_BANK_DESC'] || 'Create standalone questions to reuse across assessments')}}\r\n </p>\r\n </div>\r\n <button *ngIf=\"!searchTerm && !selectedTypeCode\" (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.CREATE_QUESTION'] || 'Create Question'}}\r\n </button>\r\n <button *ngIf=\"searchTerm || selectedTypeCode\" (click)=\"clearSearch(); onTypeFilterChange('')\"\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 Clear Filters\r\n </button>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #loader>\r\n <div class=\"h-100 w-100 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</ng-container>\r\n", styles: ["@charset \"UTF-8\";.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-danger-bg{color:var(--assessment-danger-bg)!important}.assessment-bg-danger-bg{background-color:var(--assessment-danger-bg)!important}.assessment-text-success{color:var(--assessment-success)!important}.assessment-bg-success{background-color:var(--assessment-success)!important}.assessment-text-success-bg{color:var(--assessment-success-bg)!important}.assessment-bg-success-bg{background-color:var(--assessment-success-bg)!important}.assessment-text-warning{color:var(--assessment-warning)!important}.assessment-bg-warning{background-color:var(--assessment-warning)!important}.assessment-text-warning-bg{color:var(--assessment-warning-bg)!important}.assessment-bg-warning-bg{background-color:var(--assessment-warning-bg)!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-text-palette-FEF1E8{color:var(--assessment-palette-FEF1E8)!important}.assessment-bg-palette-FEF1E8{background-color:var(--assessment-palette-FEF1E8)!important}.assessment-text-palette-FAD2B9{color:var(--assessment-palette-FAD2B9)!important}.assessment-bg-palette-FAD2B9{background-color:var(--assessment-palette-FAD2B9)!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-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.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-medium-10{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.42rem + .2vw);line-height:calc(.72rem + .2vw)}.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-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-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-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-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-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-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-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}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-medium-18,.assessment-text-semibold-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.82rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-semibold-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{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}.assessment-text-medium-10{font-size:calc(.45rem + .2vh)!important;line-height:calc(.72rem + .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,.mat-mdc-menu-item{height:inherit;min-height:unset;--mat-menu-item-label-text-font: var(--assessment-font-family) !important;--mat-menu-item-label-text-size: 14px !important;--mat-menu-item-label-text-weight: 600 !important;--mat-menu-item-label-text-line-height: inherit !important}.skill-chip{width:-moz-fit-content;width:fit-content;background:var(--assessment-palette-EDF3FD);border:.064rem solid var(--assessment-palette-C8DAF9)}.assessment-form-check-input-primary-one{min-height:unset}.assessment-form-check-input-primary-one .form-check-input{width:1rem;height:1rem}.assessment-form-check-input-primary-one .form-check-input:checked{background-color:var(--assessment-primary-one);color:var(--assessment-primary-one)}.assessment-form-check-input-primary-one .form-check-input:disabled{opacity:.8}.form-check-input:checked{background-color:var(--assessment-primary-one);border-color:var(--assessment-primary-one)}.form-check-input:focus{border-color:var(--assessment-primary-one);box-shadow:none}.assessment-question-bank-wrapper{box-sizing:border-box;width:100%}.assessment-question-bank-wrapper .max-w-md{max-width:28rem}.assessment-question-bank-wrapper .icon-lg{width:2rem;height:2rem}.assessment-question-bank-wrapper .question-container{transition:all .3s ease;word-break:break-word;overflow-wrap:anywhere}.assessment-question-bank-wrapper .question-container:hover{box-shadow:var(--assessment-box-shadow-one);background-color:var(--assessment-palette-EDF3FD);border-color:var(--assessment-palette-C8DAF9)!important}.assessment-question-bank-wrapper .skill-chip{background-color:var(--assessment-palette-EDF3FD);border:1px solid var(--assessment-palette-C8DAF9)}.assessment-question-bank-wrapper .qb-toolbar .search-input-wrapper{display:flex;align-items:center;position:relative;min-width:220px}.assessment-question-bank-wrapper .qb-toolbar .search-input-wrapper .search-icon-prefix{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--assessment-text-grey-seven, #6b7280);display:flex;align-items:center;pointer-events:none}.assessment-question-bank-wrapper .qb-toolbar .search-input-wrapper .search-input{width:100%;height:2.35rem;padding:.4rem 2.2rem .4rem 2.4rem;font-size:.875rem;color:var(--assessment-text-grey-ten, #111827);background-color:var(--assessment-bg-white, #fff);border:1px solid var(--assessment-border-grey-four, #e5e7eb);border-radius:var(--assessment-border-radius-two, 6px);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.assessment-question-bank-wrapper .qb-toolbar .search-input-wrapper .search-input:focus{border-color:var(--assessment-primary-one, #2563eb);box-shadow:0 0 0 2px #2563eb1f}.assessment-question-bank-wrapper .qb-toolbar .search-input-wrapper .search-input::placeholder{color:var(--assessment-text-grey-six, #9ca3af)}.assessment-question-bank-wrapper .qb-toolbar .search-input-wrapper .search-clear-btn{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--assessment-text-grey-six, #9ca3af);font-size:.875rem;cursor:pointer;padding:.2rem;line-height:1}.assessment-question-bank-wrapper .qb-toolbar .search-input-wrapper .search-clear-btn:hover{color:var(--assessment-text-grey-nine, #1f2937)}.assessment-question-bank-wrapper .qb-toolbar .type-filter-wrapper{min-width:200px}.assessment-question-bank-wrapper .qb-toolbar .type-filter-wrapper .custom-mat-select{width:100%;height:2.35rem;padding:.4rem .75rem;font-size:.875rem;color:var(--assessment-text-grey-ten, #111827);background-color:var(--assessment-bg-white, #fff);border:1px solid var(--assessment-border-grey-four, #e5e7eb);border-radius:var(--assessment-border-radius-two, 6px);display:flex;align-items:center;box-sizing:border-box}.assessment-question-bank-wrapper .qb-toolbar .type-filter-wrapper .custom-mat-select:focus,.assessment-question-bank-wrapper .qb-toolbar .type-filter-wrapper .custom-mat-select.mat-select-focused{border-color:var(--assessment-primary-one, #2563eb)}.assessment-question-bank-wrapper .badge-locked-pill{padding:.25rem .6rem;font-size:.75rem;font-weight:500;border-radius:var(--assessment-border-radius-two, 6px);background-color:var(--assessment-palette-FEF9F1, #fef3c7);color:#92400e;border:1px solid #fcd34d}.assessment-question-bank-wrapper .question-locked-card{opacity:.92;border-left:3px solid #f59e0b!important;cursor:not-allowed!important}.assessment-question-bank-wrapper .question-locked-card:hover{box-shadow:0 1px 3px #00000014;background-color:var(--assessment-bg-white, #fff)!important;border-color:var(--assessment-border-grey-four, #e5e7eb)!important;border-left-color:#f59e0b!important}\n"], components: [{ type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
281
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionBankComponent, decorators: [{
282
+ type: Component,
283
+ args: [{
284
+ selector: 'lib-question-bank',
285
+ templateUrl: './question-bank.component.html',
286
+ styleUrls: ['./question-bank.component.scss']
287
+ }]
288
+ }], ctorParameters: function () { return [{ type: i1.AssessmentMakerService }, { type: i2.AssessmentBuilderService }, { type: i3.MatDialog }]; }, propDecorators: { labelConfig: [{
289
+ type: Input
290
+ }], imageConfig: [{
291
+ type: Input
292
+ }], questionTypes: [{
293
+ type: Input
294
+ }], customRules: [{
295
+ type: Input
296
+ }], questionBankConfig: [{
297
+ type: Input
298
+ }], enableSkillsToQuestionMapping: [{
299
+ type: Input
300
+ }], fetchQuestionsList: [{
301
+ type: Input
302
+ }], autoOpenBuilder: [{
303
+ type: Input
304
+ }], headless: [{
305
+ type: Input
306
+ }], questionCreated: [{
307
+ type: Output
308
+ }], questionUpdated: [{
309
+ type: Output
310
+ }], snackbarMessage: [{
311
+ type: Output
312
+ }] } });
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYmFuay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb25zLWFzc2Vzc21lbnQvc3JjL2xpYi9tb2R1bGVzL3F1ZXN0aW9uLWJhbmsvcXVlc3Rpb24tYmFuay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb25zLWFzc2Vzc21lbnQvc3JjL2xpYi9tb2R1bGVzL3F1ZXN0aW9uLWJhbmsvcXVlc3Rpb24tYmFuay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0YsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7Ozs7Ozs7Ozs7QUFTNUgsTUFBTSxPQUFPLHFCQUFxQjtJQW1DaEMsWUFDVSxzQkFBOEMsRUFDOUMsd0JBQWtELEVBQ2xELE1BQWlCO1FBRmpCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBckNsQixnQkFBVyxHQUE4QixFQUFFLENBQUM7UUFDNUMsZ0JBQVcsR0FBOEIsRUFBRSxDQUFDO1FBQzVDLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyx1QkFBa0IsR0FBdUIsRUFBRSxDQUFDO1FBQzVDLGtDQUE2QixHQUFZLEtBQUssQ0FBQztRQUMvQyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7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RyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLFFBQVEsS0FBSSxFQUFFLENBQUM7WUFDeEMsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzttSEF6U1UscUJBQXFCO3VHQUFyQixxQkFBcUIsZ2dCQ2hCbEMsaTFYQWtLQTs0RkRsSmEscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2lCQUM5Qzs0S0FFVSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkJhbmtDb25maWcsIFF1ZXN0aW9uVHlwZSwgUmVmRGF0YSB9IGZyb20gJy4uLy4uL3NoYXJlZC9pbnRlcmZhY2VzL2Fzc2Vzc21lbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQXNzZXNzbWVudFF1ZXN0aW9uIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2ludGVyZmFjZXMvcXVlc3Rpb24uaW50ZXJmYWNlJztcclxuXHJcbmltcG9ydCB7IEFzc2Vzc21lbnRCdWlsZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYXNzZXNzbWVudC1tYWtlci9jb21wb25lbnRzL2Fzc2Vzc21lbnQtYnVpbGRlci9hc3Nlc3NtZW50LWJ1aWxkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzZXNzbWVudEJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vYXNzZXNzbWVudC1tYWtlci9zZXJ2aWNlcy9hc3Nlc3NtZW50LWJ1aWxkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFzc2Vzc21lbnRNYWtlclNlcnZpY2UgfSBmcm9tICcuLi9hc3Nlc3NtZW50LW1ha2VyL3NlcnZpY2VzL2Fzc2Vzc21lbnQtbWFrZXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1iYW5rJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb24tYmFuay5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tYmFuay5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkJhbmtDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgbGFiZWxDb25maWc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICBASW5wdXQoKSBpbWFnZUNvbmZpZzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gIEBJbnB1dCgpIHF1ZXN0aW9uVHlwZXM6IFF1ZXN0aW9uVHlwZVtdID0gW107XHJcbiAgQElucHV0KCkgY3VzdG9tUnVsZXM/OiBhbnk7XHJcbiAgQElucHV0KCkgcXVlc3Rpb25CYW5rQ29uZmlnOiBRdWVzdGlvbkJhbmtDb25maWcgPSB7fTtcclxuICBASW5wdXQoKSBlbmFibGVTa2lsbHNUb1F1ZXN0aW9uTWFwcGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZldGNoUXVlc3Rpb25zTGlzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGF1dG9PcGVuQnVpbGRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhlYWRsZXNzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBxdWVzdGlvbkNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFzc2Vzc21lbnRRdWVzdGlvbj4oKTtcclxuICBAT3V0cHV0KCkgcXVlc3Rpb25VcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxBc3Nlc3NtZW50UXVlc3Rpb24+KCk7XHJcbiAgQE91dHB1dCgpIHNuYWNrYmFyTWVzc2FnZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBtZXNzYWdlOiBzdHJpbmcsIHR5cGU6ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnaW5mbycgfT4oKTtcclxuXHJcbiAgcXVlc3Rpb25zTGlzdDogQXNzZXNzbWVudFF1ZXN0aW9uW10gPSBbXTtcclxuICBxdWVzdGlvbkJhbms6IFJlY29yZDxudW1iZXIsIEFzc2Vzc21lbnRRdWVzdGlvbj4gPSB7fTtcclxuICBjb25maWdzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHJ1bGVzOiBhbnk7XHJcbiAgc2tpbGxzTGlzdDogUmVmRGF0YVtdID0gW107XHJcblxyXG4gIC8vIFNlcnZlci1zaWRlIHNlYXJjaCAmIGZpbHRlcmluZyBzdGF0ZVxyXG4gIHNlYXJjaFRlcm06IHN0cmluZyA9ICcnO1xyXG4gIHNlbGVjdGVkVHlwZUNvZGU6IHN0cmluZyA9ICcnO1xyXG4gIGN1cnJlbnRQYWdlOiBudW1iZXIgPSAwO1xyXG4gIHBhZ2VTaXplOiBudW1iZXIgPSAyMDtcclxuICB0b3RhbEVsZW1lbnRzOiBudW1iZXIgPSAwO1xyXG4gIGhhc05leHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0xvYWRpbmdNb3JlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9ja2VkUXVlc3Rpb25zTWFwOiBSZWNvcmQ8bnVtYmVyLCBib29sZWFuPiA9IHt9O1xyXG5cclxuICBwcml2YXRlIHNlYXJjaFN1YmplY3QkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXNzZXNzbWVudE1ha2VyU2VydmljZTogQXNzZXNzbWVudE1ha2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgYXNzZXNzbWVudEJ1aWxkZXJTZXJ2aWNlOiBBc3Nlc3NtZW50QnVpbGRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbkJhbmtDb25maWcpIHtcclxuICAgICAgdGhpcy5hc3Nlc3NtZW50QnVpbGRlclNlcnZpY2Uuc2V0RGVmYXVsdEFzc2Vzc21lbnREVE8oe1xyXG4gICAgICAgIGRvbWFpbjogdGhpcy5xdWVzdGlvbkJhbmtDb25maWcuZG9tYWluLFxyXG4gICAgICAgIHRlbmFudDogdGhpcy5xdWVzdGlvbkJhbmtDb25maWcudGVuYW50XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRDb25maWdzRnJvbUpTT04oKTtcclxuXHJcbiAgICBpZiAodGhpcy5mZXRjaFF1ZXN0aW9uc0xpc3QpIHtcclxuICAgICAgdGhpcy5zZWFyY2hTdWJqZWN0JC5waXBlKFxyXG4gICAgICAgIGRlYm91bmNlVGltZSgzNTApLFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcbiAgICAgICkuc3Vic2NyaWJlKHRlcm0gPT4ge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVGVybSA9IHRlcm07XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDA7XHJcbiAgICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKDAsIGZhbHNlKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmxvYWRRdWVzdGlvbnMoMCwgZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmVuYWJsZVNraWxsc1RvUXVlc3Rpb25NYXBwaW5nKSB7XHJcbiAgICAgIHRoaXMuZ2V0U2tpbGxzTGlzdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRDb25maWdzRnJvbUpTT04oKSB7XHJcbiAgICBmb3JrSm9pbih7XHJcbiAgICAgIGxhYmVsQ29uZmlnOiB0aGlzLmFzc2Vzc21lbnRNYWtlclNlcnZpY2UuZ2V0Q29uZmlnSlNPTignanNvbi9sYWJlbENvbmZpZycpLFxyXG4gICAgICBpbWFnZUNvbmZpZzogdGhpcy5hc3Nlc3NtZW50TWFrZXJTZXJ2aWNlLmdldENvbmZpZ0pTT04oJ2pzb24vaW1hZ2VDb25maWcnKSxcclxuICAgICAgcnVsZXM6IHRoaXMuYXNzZXNzbWVudE1ha2VyU2VydmljZS5nZXRDb25maWdKU09OKCdqc29uL3F1ZXN0aW9uLWJ1aWxkZXItcnVsZXMnKSxcclxuICAgICAgLi4uKCF0aGlzLnF1ZXN0aW9uVHlwZXM/Lmxlbmd0aCAmJiB7XHJcbiAgICAgICAgcXVlc3Rpb25UeXBlczogdGhpcy5hc3Nlc3NtZW50TWFrZXJTZXJ2aWNlLmdldENvbmZpZ0pTT04oJ2pzb24vcXVlc3Rpb25UeXBlcycpXHJcbiAgICAgIH0pXHJcbiAgICB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxhYmVsQ29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgcmVzPy5sYWJlbENvbmZpZywgdGhpcy5sYWJlbENvbmZpZyk7XHJcbiAgICAgICAgdGhpcy5pbWFnZUNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIHJlcz8uaW1hZ2VDb25maWcsIHRoaXMuaW1hZ2VDb25maWcpO1xyXG4gICAgICAgIGlmIChyZXM/LnF1ZXN0aW9uVHlwZXMpIHtcclxuICAgICAgICAgIHRoaXMucXVlc3Rpb25UeXBlcyA9IHJlcz8ucXVlc3Rpb25UeXBlcztcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ydWxlcyA9IHsgLi4ucmVzPy5ydWxlcyB9O1xyXG4gICAgICAgIGlmICh0aGlzLmN1c3RvbVJ1bGVzKSB7XHJcbiAgICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmN1c3RvbVJ1bGVzKS5mb3JFYWNoKHFUeXBlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ydWxlc1txVHlwZV0gPSB7IC4uLih0aGlzLnJ1bGVzW3FUeXBlXSB8fCB7fSksIC4uLnRoaXMuY3VzdG9tUnVsZXNbcVR5cGVdIH07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb25maWdzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5hdXRvT3BlbkJ1aWxkZXIpIHtcclxuICAgICAgICAgIHRoaXMuY3JlYXRlRWRpdFF1ZXN0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIEpTT04gY29uZmlncycsIGVycik7XHJcbiAgICAgICAgdGhpcy5zbmFja2Jhck1lc3NhZ2UuZW1pdCh7IG1lc3NhZ2U6IHRoaXMubGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5UT0FTVC5FUlJPUl9ERUZBVUxUJ10gfHwgJ0ZhaWxlZCB0byBsb2FkIGNvbmZpZ3VyYXRpb25zLicsIHR5cGU6ICdlcnJvcicgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZFF1ZXN0aW9ucyhwYWdlOiBudW1iZXIgPSAwLCBhcHBlbmQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKGFwcGVuZCkge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZ01vcmUgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93TG9hZGVyID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwYXJhbXM6IGFueSA9IHtcclxuICAgICAgcGFnZSxcclxuICAgICAgc2l6ZTogdGhpcy5wYWdlU2l6ZVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLnF1ZXN0aW9uQmFua0NvbmZpZz8uZG9tYWluKSB7XHJcbiAgICAgIHBhcmFtcy5kb21haW4gPSB0aGlzLnF1ZXN0aW9uQmFua0NvbmZpZy5kb21haW47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbkJhbmtDb25maWc/LnRlbmFudCkge1xyXG4gICAgICBwYXJhbXMudGVuYW50ID0gdGhpcy5xdWVzdGlvbkJhbmtDb25maWcudGVuYW50O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VhcmNoVGVybT8udHJpbSgpKSB7XHJcbiAgICAgIHBhcmFtcy5xdWVzdGlvblRleHQgPSB0aGlzLnNlYXJjaFRlcm0udHJpbSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUeXBlQ29kZSkge1xyXG4gICAgICBwYXJhbXMucXVlc3Rpb25UeXBlID0gdGhpcy5zZWxlY3RlZFR5cGVDb2RlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXNzZXNzbWVudE1ha2VyU2VydmljZS5nZXRRdWVzdGlvbkJhbmtRdWVzdGlvbnMocGFyYW1zKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBlbGVtZW50czogQXNzZXNzbWVudFF1ZXN0aW9uW10gPSByZXM/LmNvbnRlbnQgfHwgcmVzPy5lbGVtZW50cyB8fCAoQXJyYXkuaXNBcnJheShyZXMpID8gcmVzIDogW10pO1xyXG4gICAgICAgIHRoaXMudG90YWxFbGVtZW50cyA9IHJlcz8udG90YWxFbGVtZW50cyA/PyAoYXBwZW5kID8gdGhpcy5xdWVzdGlvbnNMaXN0Lmxlbmd0aCArIGVsZW1lbnRzLmxlbmd0aCA6IGVsZW1lbnRzLmxlbmd0aCk7XHJcbiAgICAgICAgdGhpcy5oYXNOZXh0ID0gcmVzPy5oYXNOZXh0ICE9PSB1bmRlZmluZWQgPyAhIXJlcy5oYXNOZXh0IDogKGVsZW1lbnRzLmxlbmd0aCA9PT0gdGhpcy5wYWdlU2l6ZSk7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XHJcblxyXG4gICAgICAgIGlmIChhcHBlbmQpIHtcclxuICAgICAgICAgIHRoaXMucXVlc3Rpb25zTGlzdCA9IFsuLi50aGlzLnF1ZXN0aW9uc0xpc3QsIC4uLmVsZW1lbnRzXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5xdWVzdGlvbnNMaXN0ID0gZWxlbWVudHM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnF1ZXN0aW9uc0xpc3QuZm9yRWFjaChxID0+IHtcclxuICAgICAgICAgIGlmIChxLmlkKSB0aGlzLnF1ZXN0aW9uQmFua1txLmlkXSA9IHE7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEJhdGNoIGNoZWNrIGxvY2sgc3RhdHVzIGZvciBxdWVzdGlvbnNcclxuICAgICAgICBjb25zdCBxdWVzdGlvbklkcyA9IGVsZW1lbnRzLm1hcChxID0+IHEuaWQpLmZpbHRlcihCb29sZWFuKSBhcyBudW1iZXJbXTtcclxuICAgICAgICBpZiAocXVlc3Rpb25JZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5hc3Nlc3NtZW50TWFrZXJTZXJ2aWNlLmNoZWNrUXVlc3Rpb25zTG9ja2VkKHF1ZXN0aW9uSWRzLCAnQVNTRVNTTUVOVF9JTlNUQU5DRScpXHJcbiAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2Yoe30pKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgobG9ja2VkTWFwOiBSZWNvcmQ8c3RyaW5nIHwgbnVtYmVyLCBib29sZWFuPikgPT4ge1xyXG4gICAgICAgICAgICAgIE9iamVjdC5rZXlzKGxvY2tlZE1hcCB8fCB7fSkuZm9yRWFjaChrID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9ja2VkUXVlc3Rpb25zTWFwW051bWJlcihrKV0gPSAhIWxvY2tlZE1hcFtrXTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLnF1ZXN0aW9uc0xpc3QuZm9yRWFjaChxID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChxLmlkICYmIHRoaXMubG9ja2VkUXVlc3Rpb25zTWFwW3EuaWRdICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgKHEgYXMgYW55KS5pc0xvY2tlZCA9IHRoaXMubG9ja2VkUXVlc3Rpb25zTWFwW3EuaWRdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZSA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZSA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIHF1ZXN0aW9uIGJhbmsgcXVlc3Rpb25zJywgZXJyKTtcclxuICAgICAgICB0aGlzLnNuYWNrYmFyTWVzc2FnZS5lbWl0KHsgbWVzc2FnZTogdGhpcy5sYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULlRPQVNULkVSUk9SX0RFRkFVTFQnXSB8fCAnRmFpbGVkIHRvIGxvYWQgcXVlc3Rpb25zLicsIHR5cGU6ICdlcnJvcicgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hDaGFuZ2UodGVybTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFN1YmplY3QkLm5leHQodGVybSB8fCAnJyk7XHJcbiAgfVxyXG5cclxuICBjbGVhclNlYXJjaCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDA7XHJcbiAgICB0aGlzLmxvYWRRdWVzdGlvbnMoMCwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgb25UeXBlRmlsdGVyQ2hhbmdlKHR5cGVDb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUeXBlQ29kZSA9IHR5cGVDb2RlIHx8ICcnO1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDA7XHJcbiAgICB0aGlzLmxvYWRRdWVzdGlvbnMoMCwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgbG9hZE1vcmUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5oYXNOZXh0ICYmICF0aGlzLmlzTG9hZGluZ01vcmUgJiYgIXRoaXMuc2hvd0xvYWRlcikge1xyXG4gICAgICB0aGlzLmxvYWRRdWVzdGlvbnModGhpcy5jdXJyZW50UGFnZSArIDEsIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25RdWVzdGlvbkNhcmRDbGljayhxdWVzdGlvbjogQXNzZXNzbWVudFF1ZXN0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc1F1ZXN0aW9uTG9ja2VkKHF1ZXN0aW9uKSkge1xyXG4gICAgICB0aGlzLnNuYWNrYmFyTWVzc2FnZS5lbWl0KHtcclxuICAgICAgICBtZXNzYWdlOiB0aGlzLmxhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuV0FSTklORy5RVUVTVElPTl9MT0NLRUQnXSB8fCAnVGhpcyBxdWVzdGlvbiBpcyBwYXJ0IG9mIGEgcHVibGlzaGVkIGFzc2Vzc21lbnQgYW5kIGNhbm5vdCBiZSBlZGl0ZWQuJyxcclxuICAgICAgICB0eXBlOiAnaW5mbydcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY3JlYXRlRWRpdFF1ZXN0aW9uKHF1ZXN0aW9uKTtcclxuICB9XHJcblxyXG4gIGlzUXVlc3Rpb25Mb2NrZWQocXVlc3Rpb24/OiBBc3Nlc3NtZW50UXVlc3Rpb24pOiBib29sZWFuIHtcclxuICAgIGlmICghcXVlc3Rpb24/LmlkKSByZXR1cm4gZmFsc2U7XHJcbiAgICBpZiAoKHF1ZXN0aW9uIGFzIGFueSk/LmlzTG9ja2VkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuICEhKHF1ZXN0aW9uIGFzIGFueSkuaXNMb2NrZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gISF0aGlzLmxvY2tlZFF1ZXN0aW9uc01hcFtxdWVzdGlvbi5pZF07XHJcbiAgfVxyXG5cclxuICBjcmVhdGVFZGl0UXVlc3Rpb24ocXVlc3Rpb25EZXRhaWxzPzogQXNzZXNzbWVudFF1ZXN0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAocXVlc3Rpb25EZXRhaWxzPy5pZCkge1xyXG4gICAgICBpZiAodGhpcy5pc1F1ZXN0aW9uTG9ja2VkKHF1ZXN0aW9uRGV0YWlscykpIHtcclxuICAgICAgICB0aGlzLnNuYWNrYmFyTWVzc2FnZS5lbWl0KHtcclxuICAgICAgICAgIG1lc3NhZ2U6IHRoaXMubGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5XQVJOSU5HLlFVRVNUSU9OX0xPQ0tFRCddIHx8ICdUaGlzIHF1ZXN0aW9uIGlzIHBhcnQgb2YgYSBwdWJsaXNoZWQgYXNzZXNzbWVudCBhbmQgY2Fubm90IGJlIGVkaXRlZC4nLFxyXG4gICAgICAgICAgdHlwZTogJ2luZm8nXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vcGVuQnVpbGRlckRpYWxvZyhxdWVzdGlvbkRldGFpbHMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvcGVuQnVpbGRlckRpYWxvZyhxdWVzdGlvbkRldGFpbHM/OiBBc3Nlc3NtZW50UXVlc3Rpb24pOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQXNzZXNzbWVudEJ1aWxkZXJDb21wb25lbnQsIHtcclxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcclxuICAgICAgcG9zaXRpb246IHsgcmlnaHQ6ICcwJyB9LFxyXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxyXG4gICAgICB3aWR0aDogJzU1cmVtJyxcclxuICAgICAgaGVpZ2h0OiAnMTAwdmgnLFxyXG4gICAgICBwYW5lbENsYXNzOiBbJ2Fzc2Vzc21lbnQtZGlhbG9nJywgJ2Fzc2Vzc21lbnQtZGlhbG9nLXNsaWRlci1hbmltYXRpb24nXSxcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbENvbmZpZzogdGhpcy5sYWJlbENvbmZpZyxcclxuICAgICAgICBpbWFnZUNvbmZpZzogdGhpcy5pbWFnZUNvbmZpZyxcclxuICAgICAgICBxdWVzdGlvblR5cGVzOiB0aGlzLnF1ZXN0aW9uVHlwZXMsXHJcbiAgICAgICAgcnVsZXM6IHRoaXMucnVsZXMsXHJcbiAgICAgICAgcXVlc3Rpb25CYW5rOiB0aGlzLnF1ZXN0aW9uQmFuayxcclxuICAgICAgICBxdWVzdGlvbkRldGFpbHMsXHJcbiAgICAgICAgc3RhbmRhbG9uZU1vZGU6IHRydWUsXHJcbiAgICAgICAgc2tpbGxzTGlzdDogdGhpcy5za2lsbHNMaXN0LFxyXG4gICAgICAgIHNuYWNrYmFyTWVzc2FnZUVtaXR0ZXI6IHRoaXMuc25hY2tiYXJNZXNzYWdlLFxyXG4gICAgICAgIGlzTG9ja2VkOiB0aGlzLmlzUXVlc3Rpb25Mb2NrZWQocXVlc3Rpb25EZXRhaWxzKVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzPy5zdWNjZXNzKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmV0Y2hRdWVzdGlvbnNMaXN0KSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRRdWVzdGlvbnMoMCwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVzPy5xdWVzdGlvbikge1xyXG4gICAgICAgICAgaWYgKHF1ZXN0aW9uRGV0YWlscz8uaWQpIHtcclxuICAgICAgICAgICAgdGhpcy5xdWVzdGlvblVwZGF0ZWQuZW1pdChyZXMucXVlc3Rpb24pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5xdWVzdGlvbkNyZWF0ZWQuZW1pdChyZXMucXVlc3Rpb24pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2FwaXRhbGl6ZUZpcnN0KHRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRleHQpIHJldHVybiAnJztcclxuICAgIHJldHVybiB0ZXh0LnRvTG93ZXJDYXNlKCkuc3BsaXQoJyAnKS5tYXAod29yZCA9PiB3b3JkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKSkuam9pbignICcpO1xyXG4gIH1cclxuXHJcbiAgaW1hZ2VFcnJvckhhbmRsZXIoZXZlbnQ6IGFueSwgZmlsZVBhdGg6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgZXZlbnQudGFyZ2V0LnNyYyA9IGZpbGVQYXRoO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2tpbGxzTGlzdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgZmV0Y2hDb250ZXh0RGF0YU9ubHk6IGZhbHNlLFxyXG4gICAgICBwYWdlOiAwLFxyXG4gICAgICBzaXplOiAyMCxcclxuICAgICAgZGlyZWN0aW9uOiAnQVNDJ1xyXG4gICAgfTtcclxuICAgIHRoaXMuYXNzZXNzbWVudE1ha2VyU2VydmljZS5nZXRSZWZEYXRhQnlDb2RlKCdSRUYuQVNTRVNTTUVOVF9RVUVTVElPTl9TS0lMTCcsIHBhcmFtcykuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5za2lsbHNMaXN0ID0gcmVzPy5lbGVtZW50cyB8fCBbXTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWhlYWRsZXNzXCI+XHJcbjxkaXYgKm5nSWY9XCJjb25maWdzTG9hZGVkICYmICFzaG93TG9hZGVyOyBlbHNlIGxvYWRlclwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHctMTAwIGgtMTAwIHB5LTMgcHgtMyBhc3Nlc3NtZW50LXF1ZXN0aW9uLWJhbmstd3JhcHBlclwiPlxyXG4gICAgXHJcbiAgICA8IS0tIE1vZGUgMTogQ3JlYXRlIFF1ZXN0aW9uIFN0YW5kYWxvbmUgQmFubmVyIC8gQWN0aW9uIFZpZXcgKERlZmF1bHQgd2hlbiBmZXRjaFF1ZXN0aW9uc0xpc3QgPSBmYWxzZSkgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZldGNoUXVlc3Rpb25zTGlzdFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgdGV4dC1jZW50ZXIgcC01IGFzc2Vzc21lbnQtYm9yZGVyLXR3byBhc3Nlc3NtZW50LWJvcmRlci1yYWRpdXMtdHdvIGFzc2Vzc21lbnQtYmctd2hpdGUgc2hhZG93LXNtIG15LWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgcC0zIHJvdW5kZWQtY2lyY2xlIGFzc2Vzc21lbnQtYmctcGFsZXR0ZS1FREYzRkRcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbWFnZUNvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULklDT04uUExVU19QUklNQVJZJ11cIiBjbGFzcz1cImljb24tbGdcIlxyXG4gICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJpbWFnZUVycm9ySGFuZGxlcigkZXZlbnQsICdhc3NldHMvY29tbW9ucy1hc3Nlc3NtZW50L2ltYWdlcy9wbHVzLXByaW1hcnkuc3ZnJylcIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwibWItMiBhc3Nlc3NtZW50LXRleHQtc2VtaWJvbGQtMjAgYXNzZXNzbWVudC10ZXh0LWdyZXktdGVuXCI+XHJcbiAgICAgICAgICAgICAgICB7e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuQ1JFQVRFX1FVRVNUSU9OJ10gfHwgJ0NyZWF0ZSBTdGFuZGFsb25lIFF1ZXN0aW9uJ319XHJcbiAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwibWItNCBhc3Nlc3NtZW50LXRleHQtbWVkaXVtLTE0IGFzc2Vzc21lbnQtdGV4dC1ncmV5LXNldmVuIG1heC13LW1kXCI+XHJcbiAgICAgICAgICAgICAgICB7e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuUVVFU1RJT05fQkFOS19ERVNDJ10gfHwgJ0NyZWF0ZSBpbmRlcGVuZGVudCBxdWVzdGlvbnMgdGhhdCBjYW4gYmUgc3RvcmVkIGluIHRoZSBxdWVzdGlvbiByZXBvc2l0b3J5IGFuZCBtYXBwZWQgdG8gYW55IGFzc2Vzc21lbnQgbGF0ZXIuJ319XHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY3JlYXRlRWRpdFF1ZXN0aW9uKClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhc3Nlc3NtZW50LWJ1dHRvbi1wYWRkaW5nIGFzc2Vzc21lbnQtYm9yZGVyLXJhZGl1cy10d28gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBhc3Nlc3NtZW50LWJnLXByaW1hcnktb25lIGFzc2Vzc21lbnQtdGV4dC13aGl0ZSBhc3Nlc3NtZW50LXRleHQtc2VtaWJvbGQtMTQgYm9yZGVyLTAgc2hhZG93LXNtIGFzc2Vzc21lbnQtem9vbS1hbmltYXRpb25cIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbWFnZUNvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULklDT04uUExVU19XSElURSddXCJcclxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwiaW1hZ2VFcnJvckhhbmRsZXIoJGV2ZW50LCAnYXNzZXRzL2NvbW1vbnMtYXNzZXNzbWVudC9pbWFnZXMvcGx1cy13aGl0ZS5zdmcnKVwiIC8+XHJcbiAgICAgICAgICAgICAgICB7e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuQ1JFQVRFX1FVRVNUSU9OJ10gfHwgJ0NyZWF0ZSBRdWVzdGlvbid9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gTW9kZSAyOiBRdWVzdGlvbnMgTGlzdCBWaWV3IChPbmx5IHJlbmRlcmVkIGlmIGZldGNoUXVlc3Rpb25zTGlzdCA9IHRydWUpIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZldGNoUXVlc3Rpb25zTGlzdFwiPlxyXG4gICAgICAgIDwhLS0gSGVhZGVyIGJhciAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0zIHctMTAwXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJtYi0xIGFzc2Vzc21lbnQtdGV4dC1zZW1pYm9sZC0xOCBhc3Nlc3NtZW50LXRleHQtZ3JleS10ZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuUVVFU1RJT05fQkFOSyddIHx8ICdRdWVzdGlvbiBCYW5rJ319XHJcbiAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wIGFzc2Vzc21lbnQtdGV4dC1tZWRpdW0tMTIgYXNzZXNzbWVudC10ZXh0LWdyZXktc2V2ZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuUVVFU1RJT05fQkFOS19ERVNDJ10gfHwgJ0NyZWF0ZSBhbmQgbWFuYWdlIGluZGVwZW5kZW50IHF1ZXN0aW9ucyB0byBtYXAgdG8gYXNzZXNzbWVudHMnfX1cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNyZWF0ZUVkaXRRdWVzdGlvbigpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXNzZXNzbWVudC1idXR0b24tcGFkZGluZyBhc3Nlc3NtZW50LWJvcmRlci1yYWRpdXMtdHdvIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgYXNzZXNzbWVudC1iZy1wYWxldHRlLUVERjNGRCBhc3Nlc3NtZW50LXRleHQtcHJpbWFyeS1vbmUgYXNzZXNzbWVudC10ZXh0LXNlbWlib2xkLTEyIGJvcmRlci0wIGFzc2Vzc21lbnQtem9vbS1hbmltYXRpb25cIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbWFnZUNvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULklDT04uUExVU19QUklNQVJZJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJpbWFnZUVycm9ySGFuZGxlcigkZXZlbnQsICdhc3NldHMvY29tbW9ucy1hc3Nlc3NtZW50L2ltYWdlcy9wbHVzLXByaW1hcnkuc3ZnJylcIiAvPlxyXG4gICAgICAgICAgICAgICAge3tsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLkNSRUFURV9RVUVTVElPTiddIHx8ICdDcmVhdGUgUXVlc3Rpb24nfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gU2VhcmNoICYgRmlsdGVyIERlY2sgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTMgbWItMyB3LTEwMCBmbGV4LXdyYXAgZmxleC1tZC1ub3dyYXAgcWItdG9vbGJhclwiPlxyXG4gICAgICAgICAgICA8IS0tIFNlYXJjaCBCb3ggLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtd3JhcHBlciBmbGV4LWdyb3ctMSBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWFyY2gtaWNvbi1wcmVmaXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjIuMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTFcIiBjeT1cIjExXCIgcj1cIjhcIj48L2NpcmNsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9XCIyMVwiIHkxPVwiMjFcIiB4Mj1cIjE2LjY1XCIgeTI9XCIxNi42NVwiPjwvbGluZT5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLlNFQVJDSF9RVUVTVElPTlMnXSB8fCAnU2VhcmNoIHF1ZXN0aW9ucyBieSB0ZXh0Li4uJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwic2VhcmNoVGVybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2hDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNlYXJjaFRlcm1cIiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiIGNsYXNzPVwic2VhcmNoLWNsZWFyLWJ0blwiIGFyaWEtbGFiZWw9XCJDbGVhciBTZWFyY2hcIj5cclxuICAgICAgICAgICAgICAgICAgICDinJVcclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gUXVlc3Rpb24gVHlwZSBEcm9wZG93biBGaWx0ZXIgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eXBlLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBbbmdNb2RlbF09XCJzZWxlY3RlZFR5cGVDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHlwZUZpbHRlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLW1hdC1zZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImxhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuQUxMX1RZUEVTJ10gfHwgJ0FsbCBRdWVzdGlvbiBUeXBlcydcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlwiPnt7bGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5MQUJFTC5BTExfVFlQRVMnXSB8fCAnQWxsIFF1ZXN0aW9uIFR5cGVzJ319PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB0eXBlIG9mIHF1ZXN0aW9uVHlwZXNcIiBbdmFsdWVdPVwidHlwZS5jb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7dHlwZS5sYWJlbCB8fCB0eXBlLmNvZGV9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gUXVlc3Rpb25zIExpc3QgQ2FyZHMgLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uc0xpc3Q/Lmxlbmd0aFwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0zIHctMTAwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIHF1ZXN0aW9uc0xpc3RcIiBcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC0zIGFzc2Vzc21lbnQtYm9yZGVyLXR3byBhc3Nlc3NtZW50LWJvcmRlci1yYWRpdXMtdHdvIHF1ZXN0aW9uLWNvbnRhaW5lciBhc3Nlc3NtZW50LWJnLXdoaXRlXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5jdXJzb3ItcG9pbnRlcl09XCIhaXNRdWVzdGlvbkxvY2tlZChxdWVzdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLnF1ZXN0aW9uLWxvY2tlZC1jYXJkXT1cImlzUXVlc3Rpb25Mb2NrZWQocXVlc3Rpb24pXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblF1ZXN0aW9uQ2FyZENsaWNrKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwIGdhcC0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFzc2Vzc21lbnQtYm9yZGVyLXJhZGl1cy10d28gcC0yIGFzc2Vzc21lbnQtYmctcGFsZXR0ZS1GRUY5RjEgYXNzZXNzbWVudC10ZXh0LW1lZGl1bS0xMiBib3JkZXItcGFsZXR0ZS1GOURBQTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2FwaXRhbGl6ZUZpcnN0KHF1ZXN0aW9uPy5xdWVzdGlvblR5cGU/LmxhYmVscz8uWzBdPy50ZXh0IHx8IHF1ZXN0aW9uPy5xdWVzdGlvblR5cGU/LmNvZGUpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInF1ZXN0aW9uPy53ZWlnaHRcIiBjbGFzcz1cImFzc2Vzc21lbnQtYm9yZGVyLXJhZGl1cy10d28gcC0yIGFzc2Vzc21lbnQtYmctcGFsZXR0ZS1FREYzRkQgYXNzZXNzbWVudC10ZXh0LW1lZGl1bS0xMiBib3JkZXItcGFsZXR0ZS1DOERBRjlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24/LndlaWdodH19IHt7bGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5MQUJFTC5NQVJLUyddIHx8ICdNYXJrcyd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicXVlc3Rpb24/LmlzTWFuZGF0b3J5XCIgY2xhc3M9XCJhc3Nlc3NtZW50LWJvcmRlci1yYWRpdXMtdHdvIHAtMiBhc3Nlc3NtZW50LWJnLXBhbGV0dGUtRThGN0YwIGFzc2Vzc21lbnQtdGV4dC1tZWRpdW0tMTIgYm9yZGVyLXBhbGV0dGUtQjdFN0NGXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuTUFOREFUT1JZJ10gfHwgJ01hbmRhdG9yeSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNRdWVzdGlvbkxvY2tlZChxdWVzdGlvbilcIiBjbGFzcz1cImJhZGdlLWxvY2tlZC1waWxsIGQtaW5saW5lLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTFcIiBoZWlnaHQ9XCIxMVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjIuMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjExXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjExXCIgcng9XCIyXCIgcnk9XCIyXCI+PC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNyAxMVY3YTUgNSAwIDAgMSAxMCAwdjRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7bGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5MQUJFTC5MT0NLRUQnXSB8fCAnTG9ja2VkJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFzc2Vzc21lbnQtdGV4dC1tZWRpdW0tMTUgcXVlc3Rpb24tdGV4dCB0ZXh0LWJyZWFrXCIgW2lubmVySFRNTF09XCJxdWVzdGlvbj8ucXVlc3Rpb25UZXh0Py5bMF0/LnRleHRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPCEtLSBTa2lsbCBtYXBwaW5nIGJhZGdlcyAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIocXVlc3Rpb24/LnNraWxsQ29kZXM/Lmxlbmd0aCA/PyAwKSA+IDBcIiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgc2tpbGwgb2YgcXVlc3Rpb24/LnNraWxsQ29kZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhc3Nlc3NtZW50LXRleHQtbWVkaXVtLTEyIGFzc2Vzc21lbnQtdGV4dC1ncmV5LXRlbiByb3VuZGVkLTIgc2tpbGwtY2hpcCBweC0yIHB5LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2tpbGw/LmxhYmVscz8uWzBdPy50ZXh0IHx8IHNraWxsPy5uYW1lIHx8IHNraWxsPy5jb2RlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBMb2FkIE1vcmUgYnV0dG9uIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzTmV4dFwiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgcHktMyB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibG9hZE1vcmUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvYWRpbmdNb3JlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhc3Nlc3NtZW50LWJ1dHRvbi1wYWRkaW5nIGFzc2Vzc21lbnQtYm9yZGVyLXJhZGl1cy10d28gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBhc3Nlc3NtZW50LWJnLXBhbGV0dGUtRURGM0ZEIGFzc2Vzc21lbnQtdGV4dC1wcmltYXJ5LW9uZSBhc3Nlc3NtZW50LXRleHQtc2VtaWJvbGQtMTIgYm9yZGVyLTAgYXNzZXNzbWVudC16b29tLWFuaW1hdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc3Bpbm5lciAqbmdJZj1cImlzTG9hZGluZ01vcmVcIiBkaWFtZXRlcj1cIjE2XCIgY2xhc3M9XCJhc3Nlc3NtZW50LXNwaW5uZXItcHJpbWFyeVwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLkxPQURfTU9SRSddIHx8ICdMb2FkIE1vcmUnfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBFbXB0eSBzdGF0ZSB3aGVuIGZldGNoUXVlc3Rpb25zTGlzdCA9IHRydWUgYnV0IDAgcmVzdWx0cyByZXR1cm5lZCAtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXF1ZXN0aW9uc0xpc3Q/Lmxlbmd0aFwiIGNsYXNzPVwiaC0xMDAgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGdhcC0zIHB5LTVcIj5cclxuICAgICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuSUNPTi5OT19RVUVTVElPTlMnXVwiIGNsYXNzPVwiY29sLXNtLWF1dG8gY29sLTZcIlxyXG4gICAgICAgICAgICAgICAgKGVycm9yKT1cImltYWdlRXJyb3JIYW5kbGVyKCRldmVudCwgJ2Fzc2V0cy9jb21tb25zLWFzc2Vzc21lbnQvaW1hZ2VzL25vLXF1ZXN0aW9ucy5zdmcnKVwiIC8+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0xIGFzc2Vzc21lbnQtdGV4dC1tZWRpdW0tMThcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyhzZWFyY2hUZXJtIHx8IHNlbGVjdGVkVHlwZUNvZGUpID8gKGxhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuTk9fUVVFU1RJT05TX0ZPVU5EJ10gfHwgJ05vIG1hdGNoaW5nIHF1ZXN0aW9ucyBmb3VuZCcpIDogKGxhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuTk9fUVVFU1RJT05TX0lOX0JBTksnXSB8fCAnTm8gUXVlc3Rpb25zIGluIEJhbmshJyl9fVxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wIGFzc2Vzc21lbnQtdGV4dC1tZWRpdW0tMTIgYXNzZXNzbWVudC10ZXh0LWdyZXktc2V2ZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyhzZWFyY2hUZXJtIHx8IHNlbGVjdGVkVHlwZUNvZGUpID8gJ1RyeSBhZGp1c3RpbmcgeW91ciBzZWFyY2ggdGVybSBvciBmaWx0ZXInIDogKGxhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuTk9fUVVFU1RJT05TX0lOX0JBTktfREVTQyddIHx8ICdDcmVhdGUgc3RhbmRhbG9uZSBxdWVzdGlvbnMgdG8gcmV1c2UgYWNyb3NzIGFzc2Vzc21lbnRzJyl9fVxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFzZWFyY2hUZXJtICYmICFzZWxlY3RlZFR5cGVDb2RlXCIgKGNsaWNrKT1cImNyZWF0ZUVkaXRRdWVzdGlvbigpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXNzZXNzbWVudC1idXR0b24tcGFkZGluZyBhc3Nlc3NtZW50LWJvcmRlci1yYWRpdXMtdHdvIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgYXNzZXNzbWVudC1iZy1wYWxldHRlLUVERjNGRCBhc3Nlc3NtZW50LXRleHQtcHJpbWFyeS1vbmUgYXNzZXNzbWVudC10ZXh0LXNlbWlib2xkLTEyIGJvcmRlci0wIGFzc2Vzc21lbnQtem9vbS1hbmltYXRpb25cIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbWFnZUNvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULklDT04uUExVU19QUklNQVJZJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJpbWFnZUVycm9ySGFuZGxlcigkZXZlbnQsICdhc3NldHMvY29tbW9ucy1hc3Nlc3NtZW50L2ltYWdlcy9wbHVzLXByaW1hcnkuc3ZnJylcIiAvPlxyXG4gICAgICAgICAgICAgICAge3tsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLkNSRUFURV9RVUVTVElPTiddIHx8ICdDcmVhdGUgUXVlc3Rpb24nfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzZWFyY2hUZXJtIHx8IHNlbGVjdGVkVHlwZUNvZGVcIiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKTsgb25UeXBlRmlsdGVyQ2hhbmdlKCcnKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFzc2Vzc21lbnQtYnV0dG9uLXBhZGRpbmcgYXNzZXNzbWVudC1ib3JkZXItcmFkaXVzLXR3byBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIGFzc2Vzc21lbnQtYmctcGFsZXR0ZS1FREYzRkQgYXNzZXNzbWVudC10ZXh0LXByaW1hcnktb25lIGFzc2Vzc21lbnQtdGV4dC1zZW1pYm9sZC0xMiBib3JkZXItMCBhc3Nlc3NtZW50LXpvb20tYW5pbWF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICBDbGVhciBGaWx0ZXJzXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNsb2FkZXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaC0xMDAgdy0xMDAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHB5LTVcIj5cclxuICAgICAgICA8bWF0LXNwaW5uZXIgZGlhbWV0ZXI9XCI2MFwiIGNsYXNzPVwiYXNzZXNzbWVudC1zcGlubmVyLXByaW1hcnlcIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -0,0 +1,45 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { MaterialModules } from '../../shared/material-modules';
5
+ import { SharedModule } from '../../shared/shared.module';
6
+ import { AssessmentMakerModule } from '../assessment-maker/assessment-maker.module';
7
+ import { QuestionBankComponent } from './question-bank.component';
8
+ import * as i0 from "@angular/core";
9
+ export class QuestionBankModule {
10
+ }
11
+ QuestionBankModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionBankModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ QuestionBankModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionBankModule, declarations: [QuestionBankComponent], imports: [CommonModule,
13
+ SharedModule,
14
+ MaterialModules,
15
+ FormsModule,
16
+ ReactiveFormsModule,
17
+ AssessmentMakerModule], exports: [QuestionBankComponent] });
18
+ QuestionBankModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionBankModule, imports: [[
19
+ CommonModule,
20
+ SharedModule,
21
+ MaterialModules,
22
+ FormsModule,
23
+ ReactiveFormsModule,
24
+ AssessmentMakerModule
25
+ ]] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionBankModule, decorators: [{
27
+ type: NgModule,
28
+ args: [{
29
+ declarations: [
30
+ QuestionBankComponent
31
+ ],
32
+ imports: [
33
+ CommonModule,
34
+ SharedModule,
35
+ MaterialModules,
36
+ FormsModule,
37
+ ReactiveFormsModule,
38
+ AssessmentMakerModule
39
+ ],
40
+ exports: [
41
+ QuestionBankComponent
42
+ ]
43
+ }]
44
+ }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYmFuay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb25zLWFzc2Vzc21lbnQvc3JjL2xpYi9tb2R1bGVzL3F1ZXN0aW9uLWJhbmsvcXVlc3Rpb24tYmFuay5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBa0JsRSxNQUFNLE9BQU8sa0JBQWtCOztnSEFBbEIsa0JBQWtCO2lIQUFsQixrQkFBa0IsaUJBZDNCLHFCQUFxQixhQUdyQixZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWU7UUFDZixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLHFCQUFxQixhQUdyQixxQkFBcUI7aUhBR1osa0JBQWtCLFlBWnBCO1lBQ1AsWUFBWTtZQUNaLFlBQVk7WUFDWixlQUFlO1lBQ2YsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixxQkFBcUI7U0FDdEI7NEZBS1Usa0JBQWtCO2tCQWhCOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLHFCQUFxQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjtxQkFDdEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGVzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21hdGVyaWFsLW1vZHVsZXMnO1xyXG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFzc2Vzc21lbnRNYWtlck1vZHVsZSB9IGZyb20gJy4uL2Fzc2Vzc21lbnQtbWFrZXIvYXNzZXNzbWVudC1tYWtlci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkJhbmtDb21wb25lbnQgfSBmcm9tICcuL3F1ZXN0aW9uLWJhbmsuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBRdWVzdGlvbkJhbmtDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFNoYXJlZE1vZHVsZSxcclxuICAgIE1hdGVyaWFsTW9kdWxlcyxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEFzc2Vzc21lbnRNYWtlck1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgUXVlc3Rpb25CYW5rQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25CYW5rTW9kdWxlIHsgfVxyXG4iXX0=
@@ -41,7 +41,7 @@ export class ConfirmationDialogComponent {
41
41
  }
42
42
  }
43
43
  ConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
44
- ConfirmationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ConfirmationDialogComponent, selector: "lib-confirmation-dialog", ngImport: i0, template: "<div class=\"p-3 px-md-4\">\r\n <h2 *ngIf=\"title\" class=\"assessment-text-semibold-16 assessment-text-grey-ten mb-3\">{{ title }}</h2>\r\n <p class=\"assessment-text-regular-13 assessment-text-grey-ten\" [class.mb-4]=\"!note\" [class.mb-2]=\"note\">{{ message }}</p>\r\n <p *ngIf=\"note\" class=\"assessment-text-regular-13 assessment-text-grey-seven mb-4\">{{ note }}</p>\r\n <p *ngIf=\"errorMessage\" class=\"assessment-text-regular-12 assessment-text-danger mb-3\">{{ errorMessage }}</p>\r\n <div class=\"d-flex justify-content-end gap-2\">\r\n <button *ngIf=\"!hideCancel\" type=\"button\" (click)=\"onCancel()\" [disabled]=\"loading\"\r\n class=\"assessment-zoom-animation assessment-btn-primary-transparent assessment-border-radius-two assessment-text-semibold-13 px-3 py-2\">\r\n {{ cancelLabel }}\r\n </button>\r\n <button type=\"button\" (click)=\"onConfirm()\" [disabled]=\"loading\"\r\n class=\"assessment-zoom-animation assessment-btn-primary assessment-border-radius-two assessment-text-semibold-13 px-3 py-2 d-inline-flex align-items-center gap-2\">\r\n <span *ngIf=\"loading\" class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\r\n {{ confirmLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.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-danger-bg{color:var(--assessment-danger-bg)!important}.assessment-bg-danger-bg{background-color:var(--assessment-danger-bg)!important}.assessment-text-success{color:var(--assessment-success)!important}.assessment-bg-success{background-color:var(--assessment-success)!important}.assessment-text-success-bg{color:var(--assessment-success-bg)!important}.assessment-bg-success-bg{background-color:var(--assessment-success-bg)!important}.assessment-text-warning{color:var(--assessment-warning)!important}.assessment-bg-warning{background-color:var(--assessment-warning)!important}.assessment-text-warning-bg{color:var(--assessment-warning-bg)!important}.assessment-bg-warning-bg{background-color:var(--assessment-warning-bg)!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-text-palette-FEF1E8{color:var(--assessment-palette-FEF1E8)!important}.assessment-bg-palette-FEF1E8{background-color:var(--assessment-palette-FEF1E8)!important}.assessment-text-palette-FAD2B9{color:var(--assessment-palette-FAD2B9)!important}.assessment-bg-palette-FAD2B9{background-color:var(--assessment-palette-FAD2B9)!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-input-focus-box-shadow{box-shadow:var(--assessment-input-focus-box-shadow)!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-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.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-medium-10{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.42rem + .2vw);line-height:calc(.72rem + .2vw)}.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-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-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-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-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-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-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-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}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-medium-18,.assessment-text-semibold-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.82rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-semibold-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{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}.assessment-text-medium-10{font-size:calc(.45rem + .2vh)!important;line-height:calc(.72rem + .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,.mat-mdc-menu-item{height:inherit;min-height:unset;--mat-menu-item-label-text-font: var(--assessment-font-family) !important;--mat-menu-item-label-text-size: 14px !important;--mat-menu-item-label-text-weight: 600 !important;--mat-menu-item-label-text-line-height: inherit !important}.skill-chip{width:-moz-fit-content;width:fit-content;background:var(--assessment-palette-EDF3FD);border:.064rem solid var(--assessment-palette-C8DAF9)}.assessment-form-check-input-primary-one{min-height:unset}.assessment-form-check-input-primary-one .form-check-input{width:1rem;height:1rem}.assessment-form-check-input-primary-one .form-check-input:checked{background-color:var(--assessment-primary-one);color:var(--assessment-primary-one)}.assessment-form-check-input-primary-one .form-check-input:disabled{opacity:.8}.form-check-input:checked{background-color:var(--assessment-primary-one);border-color:var(--assessment-primary-one)}.form-check-input:focus{border-color:var(--assessment-primary-one);box-shadow:none}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
44
+ ConfirmationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ConfirmationDialogComponent, selector: "lib-confirmation-dialog", ngImport: i0, template: "<div class=\"p-3 px-md-4\">\r\n <h2 *ngIf=\"title\" class=\"assessment-text-semibold-16 assessment-text-grey-ten mb-3\">{{ title }}</h2>\r\n <p class=\"assessment-text-regular-13 assessment-text-grey-ten\" [class.mb-4]=\"!note\" [class.mb-2]=\"note\">{{ message }}</p>\r\n <p *ngIf=\"note\" class=\"assessment-text-regular-13 assessment-text-grey-seven mb-4\">{{ note }}</p>\r\n <p *ngIf=\"errorMessage\" class=\"assessment-text-regular-12 assessment-text-danger mb-3\">{{ errorMessage }}</p>\r\n <div class=\"d-flex justify-content-end gap-2\">\r\n <button *ngIf=\"!hideCancel\" type=\"button\" (click)=\"onCancel()\" [disabled]=\"loading\"\r\n class=\"assessment-zoom-animation assessment-btn-primary-transparent assessment-border-radius-two assessment-text-semibold-13 px-3 py-2\">\r\n {{ cancelLabel }}\r\n </button>\r\n <button type=\"button\" (click)=\"onConfirm()\" [disabled]=\"loading\"\r\n class=\"assessment-zoom-animation assessment-btn-primary assessment-border-radius-two assessment-text-semibold-13 px-3 py-2 d-inline-flex align-items-center gap-2\">\r\n <span *ngIf=\"loading\" class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\r\n {{ confirmLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.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-danger-bg{color:var(--assessment-danger-bg)!important}.assessment-bg-danger-bg{background-color:var(--assessment-danger-bg)!important}.assessment-text-success{color:var(--assessment-success)!important}.assessment-bg-success{background-color:var(--assessment-success)!important}.assessment-text-success-bg{color:var(--assessment-success-bg)!important}.assessment-bg-success-bg{background-color:var(--assessment-success-bg)!important}.assessment-text-warning{color:var(--assessment-warning)!important}.assessment-bg-warning{background-color:var(--assessment-warning)!important}.assessment-text-warning-bg{color:var(--assessment-warning-bg)!important}.assessment-bg-warning-bg{background-color:var(--assessment-warning-bg)!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-text-palette-FEF1E8{color:var(--assessment-palette-FEF1E8)!important}.assessment-bg-palette-FEF1E8{background-color:var(--assessment-palette-FEF1E8)!important}.assessment-text-palette-FAD2B9{color:var(--assessment-palette-FAD2B9)!important}.assessment-bg-palette-FAD2B9{background-color:var(--assessment-palette-FAD2B9)!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-semibold-12{font-weight:600;font-family:var(--assessment-font-family)!important;font-size:calc(.48rem + .3vw);line-height:calc(.9rem + .3vw)}.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-medium-10{font-weight:500;font-family:var(--assessment-font-family);font-size:calc(.42rem + .2vw);line-height:calc(.72rem + .2vw)}.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-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-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-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-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-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-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-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}@media (min-height: 100vw) and (orientation: portrait){.assessment-text-medium-18,.assessment-text-semibold-18{font-size:calc(1rem + .1vh)!important;line-height:calc(1.6rem + .1vh)!important}.assessment-text-medium-16,.assessment-text-semibold-16{font-size:calc(.9rem + .2vh)!important;line-height:calc(1.4rem + .2vh)!important}.assessment-text-regular-15,.assessment-text-semibold-15{font-size:calc(.8rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-15{font-size:calc(.82rem + .2vh);line-height:calc(1.27rem + .2vh)}.assessment-text-medium-12,.assessment-text-regular-12,.assessment-text-semibold-12{font-size:calc(.5rem + .4vh);line-height:calc(.8rem + .4vh)}.assessment-text-medium-14,.assessment-text-semibold-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{font-size:calc(.7rem + .2vh)!important;line-height:calc(1rem + .3vh)!important}.assessment-text-regular-11,.assessment-text-medium-11{font-size:calc(.5rem + .2vh)!important;line-height:calc(.8rem + .2vh)!important}.assessment-text-medium-10{font-size:calc(.45rem + .2vh)!important;line-height:calc(.72rem + .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,.mat-mdc-menu-item{height:inherit;min-height:unset;--mat-menu-item-label-text-font: var(--assessment-font-family) !important;--mat-menu-item-label-text-size: 14px !important;--mat-menu-item-label-text-weight: 600 !important;--mat-menu-item-label-text-line-height: inherit !important}.skill-chip{width:-moz-fit-content;width:fit-content;background:var(--assessment-palette-EDF3FD);border:.064rem solid var(--assessment-palette-C8DAF9)}.assessment-form-check-input-primary-one{min-height:unset}.assessment-form-check-input-primary-one .form-check-input{width:1rem;height:1rem}.assessment-form-check-input-primary-one .form-check-input:checked{background-color:var(--assessment-primary-one);color:var(--assessment-primary-one)}.assessment-form-check-input-primary-one .form-check-input:disabled{opacity:.8}.form-check-input:checked{background-color:var(--assessment-primary-one);border-color:var(--assessment-primary-one)}.form-check-input:focus{border-color:var(--assessment-primary-one);box-shadow:none}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
45
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
46
46
  type: Component,
47
47
  args: [{