pcf-assessment-taker 0.1.13

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 (93) hide show
  1. package/README.md +24 -0
  2. package/assessment-taker.d.ts +5 -0
  3. package/esm2020/assessment-taker.mjs +5 -0
  4. package/esm2020/lib/assessment-taker.component.mjs +24 -0
  5. package/esm2020/lib/assessment-taker.module.mjs +44 -0
  6. package/esm2020/lib/assessment-taker.routing.module.mjs +23 -0
  7. package/esm2020/lib/assessment-taker.service.mjs +46 -0
  8. package/esm2020/lib/components/feature/feature-routing.module.mjs +29 -0
  9. package/esm2020/lib/components/feature/feature.module.mjs +57 -0
  10. package/esm2020/lib/components/feature/quest-success/quest-success/quest-success.component.mjs +26 -0
  11. package/esm2020/lib/components/feature/quest-wizard/quest-wizard.component.mjs +437 -0
  12. package/esm2020/lib/configuration.mjs +4 -0
  13. package/esm2020/lib/shared/interceptor/lib-interceptor.interceptor.mjs +26 -0
  14. package/esm2020/lib/shared/pipe/order-by.pipe.mjs +22 -0
  15. package/esm2020/lib/shared/services/assessment-id.service.mjs +21 -0
  16. package/esm2020/lib/shared/shared-components/question-type-add-dialog/question-type-add-dialog.component.mjs +97 -0
  17. package/esm2020/lib/shared/shared-components/question-type-date/question-type-date.component.mjs +42 -0
  18. package/esm2020/lib/shared/shared-components/question-type-editor/question-type-editor.component.mjs +48 -0
  19. package/esm2020/lib/shared/shared-components/question-type-long/question-type-long.component.mjs +47 -0
  20. package/esm2020/lib/shared/shared-components/question-type-multiselect/question-type-multiselect.component.mjs +55 -0
  21. package/esm2020/lib/shared/shared-components/question-type-multiselect-sub/question-type-multiselect-sub.component.mjs +58 -0
  22. package/esm2020/lib/shared/shared-components/question-type-number/question-type-number.component.mjs +43 -0
  23. package/esm2020/lib/shared/shared-components/question-type-objective/question-type-objective.component.mjs +59 -0
  24. package/esm2020/lib/shared/shared-components/question-type-objective-sub/question-type-objective-sub.component.mjs +60 -0
  25. package/esm2020/lib/shared/shared-components/question-type-rating/question-type-rating.component.mjs +49 -0
  26. package/esm2020/lib/shared/shared-components/question-type-searchable-tag/question-type-searchable-tag.component.mjs +103 -0
  27. package/esm2020/lib/shared/shared-components/question-type-short/question-type-short.component.mjs +43 -0
  28. package/esm2020/lib/shared/shared-components/question-type-upload-file/question-type-upload-file.component.mjs +48 -0
  29. package/esm2020/lib/shared/shared-components/shared-components.module.mjs +143 -0
  30. package/esm2020/pcf-assessment-taker.mjs +5 -0
  31. package/esm2020/public-api.mjs +25 -0
  32. package/fesm2015/assessment-taker.mjs +1481 -0
  33. package/fesm2015/assessment-taker.mjs.map +1 -0
  34. package/fesm2015/pcf-assessment-taker.mjs +1481 -0
  35. package/fesm2015/pcf-assessment-taker.mjs.map +1 -0
  36. package/fesm2020/assessment-taker.mjs +1468 -0
  37. package/fesm2020/assessment-taker.mjs.map +1 -0
  38. package/fesm2020/pcf-assessment-taker.mjs +1468 -0
  39. package/fesm2020/pcf-assessment-taker.mjs.map +1 -0
  40. package/lib/assessment-taker.component.d.ts +13 -0
  41. package/lib/assessment-taker.module.d.ts +11 -0
  42. package/lib/assessment-taker.routing.module.d.ts +7 -0
  43. package/lib/assessment-taker.service.d.ts +18 -0
  44. package/lib/components/feature/feature-routing.module.d.ts +7 -0
  45. package/lib/components/feature/feature.module.d.ts +15 -0
  46. package/lib/components/feature/quest-success/quest-success/quest-success.component.d.ts +12 -0
  47. package/lib/components/feature/quest-wizard/quest-wizard.component.d.ts +51 -0
  48. package/lib/configuration.d.ts +6 -0
  49. package/lib/shared/interceptor/lib-interceptor.interceptor.d.ts +11 -0
  50. package/lib/shared/pipe/order-by.pipe.d.ts +7 -0
  51. package/lib/shared/services/assessment-id.service.d.ts +9 -0
  52. package/lib/shared/shared-components/question-type-add-dialog/question-type-add-dialog.component.d.ts +35 -0
  53. package/lib/shared/shared-components/question-type-date/question-type-date.component.d.ts +12 -0
  54. package/lib/shared/shared-components/question-type-editor/question-type-editor.component.d.ts +16 -0
  55. package/lib/shared/shared-components/question-type-long/question-type-long.component.d.ts +15 -0
  56. package/lib/shared/shared-components/question-type-multiselect/question-type-multiselect.component.d.ts +15 -0
  57. package/lib/shared/shared-components/question-type-multiselect-sub/question-type-multiselect-sub.component.d.ts +15 -0
  58. package/lib/shared/shared-components/question-type-number/question-type-number.component.d.ts +13 -0
  59. package/lib/shared/shared-components/question-type-objective/question-type-objective.component.d.ts +17 -0
  60. package/lib/shared/shared-components/question-type-objective-sub/question-type-objective-sub.component.d.ts +16 -0
  61. package/lib/shared/shared-components/question-type-rating/question-type-rating.component.d.ts +14 -0
  62. package/lib/shared/shared-components/question-type-searchable-tag/question-type-searchable-tag.component.d.ts +35 -0
  63. package/lib/shared/shared-components/question-type-short/question-type-short.component.d.ts +13 -0
  64. package/lib/shared/shared-components/question-type-upload-file/question-type-upload-file.component.d.ts +14 -0
  65. package/lib/shared/shared-components/shared-components.module.d.ts +34 -0
  66. package/package.json +32 -0
  67. package/pcf-assessment-taker.d.ts +5 -0
  68. package/public-api.d.ts +20 -0
  69. package/src/lib/assets/images/assessment-placeholder-2.png +0 -0
  70. package/src/lib/assets/images/new_tooltip.jpg +0 -0
  71. package/src/lib/assets/images/tooltip.png +0 -0
  72. package/src/lib/assets/images/tooltipimg.jpg +0 -0
  73. package/src/lib/assets/theme/_theme.scss +1077 -0
  74. package/src/lib/assets/theme/font.css +36 -0
  75. package/src/lib/assets/theme/fonts/halant/Halant-Bold.ttf +0 -0
  76. package/src/lib/assets/theme/fonts/halant/Halant-Light.ttf +0 -0
  77. package/src/lib/assets/theme/fonts/halant/Halant-Medium.ttf +0 -0
  78. package/src/lib/assets/theme/fonts/halant/Halant-Regular.ttf +0 -0
  79. package/src/lib/assets/theme/fonts/halant/Halant-SemiBold.ttf +0 -0
  80. package/src/lib/assets/theme/fonts/poppins/Poppins-Bold.ttf +0 -0
  81. package/src/lib/assets/theme/fonts/poppins/Poppins-ExtraBold.ttf +0 -0
  82. package/src/lib/assets/theme/fonts/poppins/Poppins-ExtraLight.ttf +0 -0
  83. package/src/lib/assets/theme/fonts/poppins/Poppins-Light.ttf +0 -0
  84. package/src/lib/assets/theme/fonts/poppins/Poppins-Medium.ttf +0 -0
  85. package/src/lib/assets/theme/fonts/poppins/Poppins-Regular.ttf +0 -0
  86. package/src/lib/assets/theme/fonts/poppins/Poppins-SemiBold.ttf +0 -0
  87. package/src/lib/assets/theme/fonts/poppins/Poppins-Thin.ttf +0 -0
  88. package/src/lib/assets/theme/fonts/roboto/Roboto-Bold.ttf +0 -0
  89. package/src/lib/assets/theme/fonts/roboto/Roboto-Light.ttf +0 -0
  90. package/src/lib/assets/theme/fonts/roboto/Roboto-Medium.ttf +0 -0
  91. package/src/lib/assets/theme/fonts/roboto/Roboto-Regular.ttf +0 -0
  92. package/src/lib/assets/theme/fonts/roboto/Roboto-Thin.ttf +0 -0
  93. package/src/lib/assets/theme/variables.css +392 -0
@@ -0,0 +1,59 @@
1
+ import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';
2
+ import { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/radio";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "../../pipe/order-by.pipe";
8
+ export class QuestionTypeObjectiveComponent {
9
+ constructor() {
10
+ this.viewChild = new EventEmitter();
11
+ this.formControl = new FormControl();
12
+ }
13
+ writeValue(value) {
14
+ this.formControl.setValue(value);
15
+ }
16
+ registerOnChange(fn) {
17
+ this.formControl.valueChanges.subscribe((val) => fn(val));
18
+ }
19
+ registerOnTouched(fn) {
20
+ this.formControl.valueChanges.subscribe((val) => fn(val));
21
+ }
22
+ onChildDataChanged(data) {
23
+ this.viewChild.emit(data);
24
+ }
25
+ optionDetection(obj) {
26
+ console.log("the object is " + JSON.stringify(obj));
27
+ let data = {
28
+ question: this.optionsList,
29
+ list: obj['childQuestionList']
30
+ };
31
+ console.log("the childList is " + JSON.stringify(data));
32
+ obj['childQuestionList']?.length ? this.viewChild.emit(data) : null;
33
+ }
34
+ }
35
+ QuestionTypeObjectiveComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestionTypeObjectiveComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
+ QuestionTypeObjectiveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: QuestionTypeObjectiveComponent, selector: "lib-question-type-objective", inputs: { required: "required", optionsList: "optionsList" }, outputs: { viewChild: "viewChild" }, providers: [
37
+ {
38
+ provide: NG_VALUE_ACCESSOR,
39
+ useExisting: forwardRef(() => QuestionTypeObjectiveComponent),
40
+ multi: true,
41
+ },
42
+ ], ngImport: i0, template: "<!-- <div class=\"question-parent-container\">\r\n <div *ngFor=\"let question of assessmentQuestionsList; let i=index\">\r\n <div class=\"question-num-text me-4\">\r\n <p class=\"assessment-text-grey-nine assessment-text-semibold-18\">\r\n {{i+1}}.&nbsp;{{question.questionText[0]?.text}}\r\n <span class=\"mandatory\" *ngIf=\"question['isMandatory']\">*</span>\r\n </p>\r\n </div> -->\r\n <!-- <span class=\"question-sub-text opacity-7\"\r\n *ngIf=\"question.questionSubText[0].text!==''\" [innerHTML]=\"question.questionSubText[0].text\">\r\n </span> -->\r\n <!-- <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.OBJECTIVE'\">\r\n <div class=\"radio-group\">\r\n <label *ngFor=\"let option of question.defaultOptionsList\">\r\n <input\r\n type=\"radio\"\r\n [name]=\"question.id\" \r\n [value]=\"option.options.id\"\r\n />\r\n <span class=\"assessment-text-regular-18 mt-5\">{{ option.options.optionName[0]?.text }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_SHORT'\">\r\n <input *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_SHORT'\" \r\n [id]=\"'question_' + i\"\r\n rows=\"4\" class=\"input-tag\" placeholder=\"Enter your answer here\"/>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.DATE'\">\r\n <div class=\"form-field content dpicker\">\r\n <label for=\"datePickerInput\" class=\"sr-only\">Select Date</label>\r\n <input \r\n type=\"date\" \r\n id=\"datePickerInput\"\r\n class=\"answer-box-border p-3 dpickerInput\"\r\n [placeholder]=\"'DATE-FORMAT'\" \r\n />\r\n </div> \r\n </div>\r\n <div class=\"divider\"></div>\r\n </div>\r\n</div> -->\r\n\r\n<!-- <div class=\"radio-group\">\r\n <label *ngFor=\"let option of optionsList.defaultOptionsList\">\r\n <input\r\n type=\"radio\" \r\n [value]=\"option.options.id\"\r\n [name]=\"optionsList.id\"\r\n />\r\n <span class=\"assessment-text-regular-18 mt-5\">{{ option.options.optionName[0]?.text }}</span>\r\n </label>\r\n</div> -->\r\n<mat-radio-group\r\n aria-labelledby=\"example-radio-group-label\"\r\n [formControl]=\"formControl\" class=\"example-radio-group\">\r\n <ng-container *ngFor=\"let option of optionsList.defaultOptionsList | orderBy\">\r\n <mat-radio-button class=\"example-radio-button\" (change)=\"optionDetection(option)\"\r\n (viewChild)=\"onChildDataChanged($event)\" [value]=\"option.options\" \r\n [required]=\"required\">{{ option.options.optionName[0]?.text }}</mat-radio-button>\r\n </ng-container>\r\n</mat-radio-group>\r\n", styles: [""], components: [{ type: i1.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }], directives: [{ type: i1.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "orderBy": i4.OrderByPipe } });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestionTypeObjectiveComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: 'lib-question-type-objective', providers: [
46
+ {
47
+ provide: NG_VALUE_ACCESSOR,
48
+ useExisting: forwardRef(() => QuestionTypeObjectiveComponent),
49
+ multi: true,
50
+ },
51
+ ], template: "<!-- <div class=\"question-parent-container\">\r\n <div *ngFor=\"let question of assessmentQuestionsList; let i=index\">\r\n <div class=\"question-num-text me-4\">\r\n <p class=\"assessment-text-grey-nine assessment-text-semibold-18\">\r\n {{i+1}}.&nbsp;{{question.questionText[0]?.text}}\r\n <span class=\"mandatory\" *ngIf=\"question['isMandatory']\">*</span>\r\n </p>\r\n </div> -->\r\n <!-- <span class=\"question-sub-text opacity-7\"\r\n *ngIf=\"question.questionSubText[0].text!==''\" [innerHTML]=\"question.questionSubText[0].text\">\r\n </span> -->\r\n <!-- <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.OBJECTIVE'\">\r\n <div class=\"radio-group\">\r\n <label *ngFor=\"let option of question.defaultOptionsList\">\r\n <input\r\n type=\"radio\"\r\n [name]=\"question.id\" \r\n [value]=\"option.options.id\"\r\n />\r\n <span class=\"assessment-text-regular-18 mt-5\">{{ option.options.optionName[0]?.text }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_SHORT'\">\r\n <input *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_SHORT'\" \r\n [id]=\"'question_' + i\"\r\n rows=\"4\" class=\"input-tag\" placeholder=\"Enter your answer here\"/>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.DATE'\">\r\n <div class=\"form-field content dpicker\">\r\n <label for=\"datePickerInput\" class=\"sr-only\">Select Date</label>\r\n <input \r\n type=\"date\" \r\n id=\"datePickerInput\"\r\n class=\"answer-box-border p-3 dpickerInput\"\r\n [placeholder]=\"'DATE-FORMAT'\" \r\n />\r\n </div> \r\n </div>\r\n <div class=\"divider\"></div>\r\n </div>\r\n</div> -->\r\n\r\n<!-- <div class=\"radio-group\">\r\n <label *ngFor=\"let option of optionsList.defaultOptionsList\">\r\n <input\r\n type=\"radio\" \r\n [value]=\"option.options.id\"\r\n [name]=\"optionsList.id\"\r\n />\r\n <span class=\"assessment-text-regular-18 mt-5\">{{ option.options.optionName[0]?.text }}</span>\r\n </label>\r\n</div> -->\r\n<mat-radio-group\r\n aria-labelledby=\"example-radio-group-label\"\r\n [formControl]=\"formControl\" class=\"example-radio-group\">\r\n <ng-container *ngFor=\"let option of optionsList.defaultOptionsList | orderBy\">\r\n <mat-radio-button class=\"example-radio-button\" (change)=\"optionDetection(option)\"\r\n (viewChild)=\"onChildDataChanged($event)\" [value]=\"option.options\" \r\n [required]=\"required\">{{ option.options.optionName[0]?.text }}</mat-radio-button>\r\n </ng-container>\r\n</mat-radio-group>\r\n", styles: [""] }]
52
+ }], ctorParameters: function () { return []; }, propDecorators: { required: [{
53
+ type: Input
54
+ }], optionsList: [{
55
+ type: Input
56
+ }], viewChild: [{
57
+ type: Output
58
+ }] } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tdHlwZS1vYmplY3RpdmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNzZXNzbWVudC10YWtlci9zcmMvbGliL3NoYXJlZC9zaGFyZWQtY29tcG9uZW50cy9xdWVzdGlvbi10eXBlLW9iamVjdGl2ZS9xdWVzdGlvbi10eXBlLW9iamVjdGl2ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Nlc3NtZW50LXRha2VyL3NyYy9saWIvc2hhcmVkL3NoYXJlZC1jb21wb25lbnRzL3F1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlL3F1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBbUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQWNqRyxNQUFNLE9BQU8sOEJBQThCO0lBTXpDO1FBSFUsY0FBUyxHQUFDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsZ0JBQVcsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUduRCxDQUFDO0lBR0YsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQVk7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBWTtRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFTO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBUTtRQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixHQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRCxJQUFJLElBQUksR0FBQztZQUNQLFFBQVEsRUFBQyxJQUFJLENBQUMsV0FBVztZQUN6QixJQUFJLEVBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO1NBQzlCLENBQUE7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixHQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RCxHQUFHLENBQUMsbUJBQW1CLENBQUMsRUFBRSxNQUFNLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUE7SUFDakUsQ0FBQzs7NEhBbENVLDhCQUE4QjtnSEFBOUIsOEJBQThCLHlKQVI5QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDO1lBQzdELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwwQkNiSCxvbUdBOERBOzRGRC9DYSw4QkFBOEI7a0JBWjFDLFNBQVM7K0JBQ0UsNkJBQTZCLGFBRzVCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLCtCQUErQixDQUFDOzRCQUM3RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjswRUFHUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcXVlc3Rpb24tdHlwZS1vYmplY3RpdmUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi10eXBlLW9iamVjdGl2ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tdHlwZS1vYmplY3RpdmUuY29tcG9uZW50LmNzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUXVlc3Rpb25UeXBlT2JqZWN0aXZlQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRdWVzdGlvblR5cGVPYmplY3RpdmVDb21wb25lbnQgIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOmFueTtcclxuICBASW5wdXQoKSBvcHRpb25zTGlzdDphbnk7XHJcbiAgQE91dHB1dCgpIHZpZXdDaGlsZD1uZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcHVibGljIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgfVxyXG5cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKSB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCkgPT4gZm4odmFsKSk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogRnVuY3Rpb24pIHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsKSA9PiBmbih2YWwpKTtcclxuICB9XHJcblxyXG4gIG9uQ2hpbGREYXRhQ2hhbmdlZChkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMudmlld0NoaWxkLmVtaXQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBvcHRpb25EZXRlY3Rpb24ob2JqOiBhbnkpe1xyXG4gICAgY29uc29sZS5sb2coXCJ0aGUgb2JqZWN0IGlzIFwiK0pTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gICAgbGV0IGRhdGE9e1xyXG4gICAgICBxdWVzdGlvbjp0aGlzLm9wdGlvbnNMaXN0LFxyXG4gICAgICBsaXN0Om9ialsnY2hpbGRRdWVzdGlvbkxpc3QnXVxyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coXCJ0aGUgY2hpbGRMaXN0IGlzIFwiK0pTT04uc3RyaW5naWZ5KGRhdGEpKTtcclxuICAgIG9ialsnY2hpbGRRdWVzdGlvbkxpc3QnXT8ubGVuZ3RoP3RoaXMudmlld0NoaWxkLmVtaXQoZGF0YSk6bnVsbFxyXG4gIH1cclxufVxyXG4iLCI8IS0tIDxkaXYgY2xhc3M9XCJxdWVzdGlvbi1wYXJlbnQtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBhc3Nlc3NtZW50UXVlc3Rpb25zTGlzdDsgbGV0IGk9aW5kZXhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb24tbnVtLXRleHQgbWUtNFwiPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJhc3Nlc3NtZW50LXRleHQtZ3JleS1uaW5lIGFzc2Vzc21lbnQtdGV4dC1zZW1pYm9sZC0xOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7aSsxfX0uJm5ic3A7e3txdWVzdGlvbi5xdWVzdGlvblRleHRbMF0/LnRleHR9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFuZGF0b3J5XCIgKm5nSWY9XCJxdWVzdGlvblsnaXNNYW5kYXRvcnknXVwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJxdWVzdGlvbi1zdWItdGV4dCBvcGFjaXR5LTdcIlxyXG4gICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uU3ViVGV4dFswXS50ZXh0IT09JydcIiBbaW5uZXJIVE1MXT1cInF1ZXN0aW9uLnF1ZXN0aW9uU3ViVGV4dFswXS50ZXh0XCI+XHJcbiAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJhbnN3ZXItaW5wdXRcIiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZS5jb2RlID09PSAnUVVFU1RJT05fVFlQRS5PQkpFQ1RJVkUnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcXVlc3Rpb24uZGVmYXVsdE9wdGlvbnNMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInF1ZXN0aW9uLmlkXCIgIFxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24ub3B0aW9ucy5pZFwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhc3Nlc3NtZW50LXRleHQtcmVndWxhci0xOCBtdC01XCI+e3sgb3B0aW9uLm9wdGlvbnMub3B0aW9uTmFtZVswXT8udGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbnN3ZXItaW5wdXRcIiAqbmdJZj1cInF1ZXN0aW9uPy5xdWVzdGlvblR5cGU/LmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLlNVQkpFQ1RJVkVfU0hPUlQnXCI+XHJcbiAgICAgICAgICAgICA8aW5wdXQgKm5nSWY9XCJxdWVzdGlvbj8ucXVlc3Rpb25UeXBlPy5jb2RlID09PSAnUVVFU1RJT05fVFlQRS5TVUJKRUNUSVZFX1NIT1JUJ1wiIFxyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCIncXVlc3Rpb25fJyArIGlcIlxyXG4gICAgICAgICAgICAgICAgICAgIHJvd3M9XCI0XCIgY2xhc3M9XCJpbnB1dC10YWdcIiBwbGFjZWhvbGRlcj1cIkVudGVyIHlvdXIgYW5zd2VyIGhlcmVcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci1pbnB1dFwiICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlLmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLkRBVEUnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkIGNvbnRlbnQgZHBpY2tlclwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImRhdGVQaWNrZXJJbnB1dFwiIGNsYXNzPVwic3Itb25seVwiPlNlbGVjdCBEYXRlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJkYXRlXCIgXHJcbiAgICAgICAgICAgICAgICBpZD1cImRhdGVQaWNrZXJJbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFuc3dlci1ib3gtYm9yZGVyIHAtMyBkcGlja2VySW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidEQVRFLUZPUk1BVCdcIiAgXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj4gIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+IC0tPlxyXG5cclxuPCEtLSA8ZGl2IGNsYXNzPVwicmFkaW8tZ3JvdXBcIj5cclxuICAgIDxsYWJlbCAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNMaXN0LmRlZmF1bHRPcHRpb25zTGlzdFwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgICAgdHlwZT1cInJhZGlvXCIgXHJcbiAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi5vcHRpb25zLmlkXCJcclxuICAgICAgICBbbmFtZV09XCJvcHRpb25zTGlzdC5pZFwiXHJcbiAgICAvPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJhc3Nlc3NtZW50LXRleHQtcmVndWxhci0xOCBtdC01XCI+e3sgb3B0aW9uLm9wdGlvbnMub3B0aW9uTmFtZVswXT8udGV4dCB9fTwvc3Bhbj5cclxuICAgIDwvbGFiZWw+XHJcbjwvZGl2PiAtLT5cclxuPG1hdC1yYWRpby1ncm91cFxyXG4gIGFyaWEtbGFiZWxsZWRieT1cImV4YW1wbGUtcmFkaW8tZ3JvdXAtbGFiZWxcIlxyXG4gIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIGNsYXNzPVwiZXhhbXBsZS1yYWRpby1ncm91cFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNMaXN0LmRlZmF1bHRPcHRpb25zTGlzdCB8IG9yZGVyQnlcIj5cclxuICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cImV4YW1wbGUtcmFkaW8tYnV0dG9uXCIgKGNoYW5nZSk9XCJvcHRpb25EZXRlY3Rpb24ob3B0aW9uKVwiXHJcbiAgICAgICAgKHZpZXdDaGlsZCk9XCJvbkNoaWxkRGF0YUNoYW5nZWQoJGV2ZW50KVwiIFt2YWx1ZV09XCJvcHRpb24ub3B0aW9uc1wiIFxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiPnt7IG9wdGlvbi5vcHRpb25zLm9wdGlvbk5hbWVbMF0/LnRleHQgfX08L21hdC1yYWRpby1idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiJdfQ==
@@ -0,0 +1,60 @@
1
+ import { Component, forwardRef, Input } from '@angular/core';
2
+ import { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/radio";
5
+ import * as i2 from "@angular/material/form-field";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "@angular/forms";
8
+ import * as i5 from "@angular/material/input";
9
+ import * as i6 from "../../pipe/order-by.pipe";
10
+ export class QuestionTypeObjectiveSubComponent {
11
+ constructor() {
12
+ this.formControl = new FormControl();
13
+ }
14
+ writeValue(value) {
15
+ this.formControl.setValue(value);
16
+ }
17
+ registerOnChange(fn) {
18
+ this.formControl.valueChanges.subscribe((val) => fn(val));
19
+ }
20
+ registerOnTouched(fn) {
21
+ this.formControl.valueChanges.subscribe((val) => fn(val));
22
+ }
23
+ SubjectiveInputOnChange(event) {
24
+ const val = this.formControl.value || {};
25
+ val.subjective = event.target.value;
26
+ this.formControl.patchValue(val);
27
+ }
28
+ ;
29
+ ObjectiveOnChange(event, data) {
30
+ const val = this.formControl.value || {};
31
+ val.objective = data.id;
32
+ this.formControl.patchValue(val);
33
+ }
34
+ ;
35
+ }
36
+ QuestionTypeObjectiveSubComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestionTypeObjectiveSubComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
+ QuestionTypeObjectiveSubComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: QuestionTypeObjectiveSubComponent, selector: "lib-question-type-objective-sub", inputs: { required: "required", optionsList: "optionsList", fieldAttributes: "fieldAttributes" }, providers: [
38
+ {
39
+ provide: NG_VALUE_ACCESSOR,
40
+ useExisting: forwardRef(() => QuestionTypeObjectiveSubComponent),
41
+ multi: true,
42
+ },
43
+ ], ngImport: i0, template: "<!-- <mat-radio-group aria-labelledby=\"example-radio-group-label\" class=\"example-radio-group\">\r\n <ng-container *ngFor=\"let option of optionsList.defaultOptionsList | orderBy\">\r\n <mat-radio-button [formControl]=\"formControl\" class=\"example-radio-button\" [value]=\"option.options\">{{ option.options.optionName[0]?.text\r\n }}</mat-radio-button>\r\n </ng-container>\r\n</mat-radio-group> -->\r\n<mat-radio-group\r\n aria-labelledby=\"example-radio-group-label\"\r\n \r\n name=\"{{fieldAttributes.id}}[objective]\"\r\n class=\"example-radio-group\">\r\n <ng-container *ngFor=\"let option of optionsList.defaultOptionsList | orderBy\">\r\n <mat-radio-button formControlName=\"objective\" class=\"example-radio-button\" (change)=\"ObjectiveOnChange($event, option.options)\" [value]=\"option.options\" [required]=\"required\">{{ option.options.optionName[0]?.text }}</mat-radio-button>\r\n </ng-container>\r\n</mat-radio-group>\r\n<mat-form-field class=\"example-full-width radimatc\">\r\n <input matInput formControlName=\"subjective\"\r\n name=\"{{fieldAttributes.id}}[subjective]\" class=\"form-check-input\" placeholder=\"Enter your answer here\" [required]=\"required\" (change)=\"SubjectiveInputOnChange($event)\">\r\n</mat-form-field>\r\n", styles: [""], components: [{ type: i1.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }], directives: [{ type: i1.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], pipes: { "orderBy": i6.OrderByPipe } });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestionTypeObjectiveSubComponent, decorators: [{
45
+ type: Component,
46
+ args: [{ selector: 'lib-question-type-objective-sub', providers: [
47
+ {
48
+ provide: NG_VALUE_ACCESSOR,
49
+ useExisting: forwardRef(() => QuestionTypeObjectiveSubComponent),
50
+ multi: true,
51
+ },
52
+ ], template: "<!-- <mat-radio-group aria-labelledby=\"example-radio-group-label\" class=\"example-radio-group\">\r\n <ng-container *ngFor=\"let option of optionsList.defaultOptionsList | orderBy\">\r\n <mat-radio-button [formControl]=\"formControl\" class=\"example-radio-button\" [value]=\"option.options\">{{ option.options.optionName[0]?.text\r\n }}</mat-radio-button>\r\n </ng-container>\r\n</mat-radio-group> -->\r\n<mat-radio-group\r\n aria-labelledby=\"example-radio-group-label\"\r\n \r\n name=\"{{fieldAttributes.id}}[objective]\"\r\n class=\"example-radio-group\">\r\n <ng-container *ngFor=\"let option of optionsList.defaultOptionsList | orderBy\">\r\n <mat-radio-button formControlName=\"objective\" class=\"example-radio-button\" (change)=\"ObjectiveOnChange($event, option.options)\" [value]=\"option.options\" [required]=\"required\">{{ option.options.optionName[0]?.text }}</mat-radio-button>\r\n </ng-container>\r\n</mat-radio-group>\r\n<mat-form-field class=\"example-full-width radimatc\">\r\n <input matInput formControlName=\"subjective\"\r\n name=\"{{fieldAttributes.id}}[subjective]\" class=\"form-check-input\" placeholder=\"Enter your answer here\" [required]=\"required\" (change)=\"SubjectiveInputOnChange($event)\">\r\n</mat-form-field>\r\n", styles: [""] }]
53
+ }], ctorParameters: function () { return []; }, propDecorators: { required: [{
54
+ type: Input
55
+ }], optionsList: [{
56
+ type: Input
57
+ }], fieldAttributes: [{
58
+ type: Input
59
+ }] } });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tdHlwZS1vYmplY3RpdmUtc3ViLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2Vzc21lbnQtdGFrZXIvc3JjL2xpYi9zaGFyZWQvc2hhcmVkLWNvbXBvbmVudHMvcXVlc3Rpb24tdHlwZS1vYmplY3RpdmUtc3ViL3F1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlLXN1Yi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Nlc3NtZW50LXRha2VyL3NyYy9saWIvc2hhcmVkL3NoYXJlZC1jb21wb25lbnRzL3F1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlLXN1Yi9xdWVzdGlvbi10eXBlLW9iamVjdGl2ZS1zdWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBY3RGLE1BQU0sT0FBTyxpQ0FBaUM7SUFLNUM7UUFETyxnQkFBVyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFakIsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQVk7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBWTtRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxLQUFVO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUN6QyxHQUFHLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFBQSxDQUFDO0lBR0YsaUJBQWlCLENBQUMsS0FBVSxFQUFFLElBQVM7UUFDckMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3pDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQUEsQ0FBQzs7K0hBOUJTLGlDQUFpQzttSEFBakMsaUNBQWlDLDRKQVJqQztRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO1lBQ2hFLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwwQkNiSCx1eENBbUJBOzRGREphLGlDQUFpQztrQkFaN0MsU0FBUzsrQkFDRSxpQ0FBaUMsYUFHaEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0NBQWtDLENBQUM7NEJBQ2hFLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzBFQUdRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi10eXBlLW9iamVjdGl2ZS1zdWInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi10eXBlLW9iamVjdGl2ZS1zdWIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlLXN1Yi5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBRdWVzdGlvblR5cGVPYmplY3RpdmVTdWJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uVHlwZU9iamVjdGl2ZVN1YkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBASW5wdXQoKSByZXF1aXJlZDphbnk7XHJcbiAgQElucHV0KCkgb3B0aW9uc0xpc3Q6YW55O1xyXG4gIEBJbnB1dCgpIGZpZWxkQXR0cmlidXRlczogYW55O1xyXG4gIHB1YmxpYyBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogRnVuY3Rpb24pIHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsKSA9PiBmbih2YWwpKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbikge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWwpID0+IGZuKHZhbCkpO1xyXG4gIH1cclxuXHJcbiAgU3ViamVjdGl2ZUlucHV0T25DaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgdmFsID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSB8fCB7fTtcclxuICAgIHZhbC5zdWJqZWN0aXZlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKHZhbCk7XHJcbiAgfTtcclxuXHJcbiAgXHJcbiAgT2JqZWN0aXZlT25DaGFuZ2UoZXZlbnQ6IGFueSwgZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCB2YWwgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlIHx8IHt9O1xyXG4gICAgdmFsLm9iamVjdGl2ZSA9IGRhdGEuaWQ7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUodmFsKTtcclxuICB9O1xyXG5cclxuXHJcbn1cclxuIiwiPCEtLSA8bWF0LXJhZGlvLWdyb3VwIGFyaWEtbGFiZWxsZWRieT1cImV4YW1wbGUtcmFkaW8tZ3JvdXAtbGFiZWxcIiBjbGFzcz1cImV4YW1wbGUtcmFkaW8tZ3JvdXBcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zTGlzdC5kZWZhdWx0T3B0aW9uc0xpc3QgfCBvcmRlckJ5XCI+XHJcbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgY2xhc3M9XCJleGFtcGxlLXJhZGlvLWJ1dHRvblwiIFt2YWx1ZV09XCJvcHRpb24ub3B0aW9uc1wiPnt7IG9wdGlvbi5vcHRpb25zLm9wdGlvbk5hbWVbMF0/LnRleHRcclxuICAgICAgICAgICAgfX08L21hdC1yYWRpby1idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9tYXQtcmFkaW8tZ3JvdXA+IC0tPlxyXG48bWF0LXJhZGlvLWdyb3VwXHJcbiAgYXJpYS1sYWJlbGxlZGJ5PVwiZXhhbXBsZS1yYWRpby1ncm91cC1sYWJlbFwiXHJcbiBcclxuICBuYW1lPVwie3tmaWVsZEF0dHJpYnV0ZXMuaWR9fVtvYmplY3RpdmVdXCJcclxuICBjbGFzcz1cImV4YW1wbGUtcmFkaW8tZ3JvdXBcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zTGlzdC5kZWZhdWx0T3B0aW9uc0xpc3QgfCBvcmRlckJ5XCI+XHJcbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gIGZvcm1Db250cm9sTmFtZT1cIm9iamVjdGl2ZVwiIGNsYXNzPVwiZXhhbXBsZS1yYWRpby1idXR0b25cIiAoY2hhbmdlKT1cIk9iamVjdGl2ZU9uQ2hhbmdlKCRldmVudCwgb3B0aW9uLm9wdGlvbnMpXCIgW3ZhbHVlXT1cIm9wdGlvbi5vcHRpb25zXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCI+e3sgb3B0aW9uLm9wdGlvbnMub3B0aW9uTmFtZVswXT8udGV4dCB9fTwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L21hdC1yYWRpby1ncm91cD5cclxuPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZXhhbXBsZS1mdWxsLXdpZHRoIHJhZGltYXRjXCI+XHJcbiAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic3ViamVjdGl2ZVwiXHJcbiAgICBuYW1lPVwie3tmaWVsZEF0dHJpYnV0ZXMuaWR9fVtzdWJqZWN0aXZlXVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgeW91ciBhbnN3ZXIgaGVyZVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIChjaGFuZ2UpPVwiU3ViamVjdGl2ZUlucHV0T25DaGFuZ2UoJGV2ZW50KVwiPlxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { Component, Input, forwardRef } from '@angular/core';
2
+ import { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/button-toggle";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "../../pipe/order-by.pipe";
7
+ export class QuestionTypeRatingComponent {
8
+ constructor() {
9
+ this.formControl = new FormControl();
10
+ }
11
+ toggleSelection(data) {
12
+ //data.selected = !data.selected;
13
+ console.log(data);
14
+ this.formControl.patchValue(data);
15
+ }
16
+ ;
17
+ writeValue(value) {
18
+ this.formControl.setValue(value);
19
+ }
20
+ registerOnChange(fn) {
21
+ this.formControl.valueChanges.subscribe((val) => fn(val));
22
+ }
23
+ registerOnTouched(fn) {
24
+ this.formControl.valueChanges.subscribe((val) => fn(val));
25
+ }
26
+ }
27
+ QuestionTypeRatingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestionTypeRatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
+ QuestionTypeRatingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: QuestionTypeRatingComponent, selector: "lib-question-type-rating", inputs: { required: "required", optionsList: "optionsList" }, providers: [
29
+ {
30
+ provide: NG_VALUE_ACCESSOR,
31
+ useExisting: forwardRef(() => QuestionTypeRatingComponent),
32
+ multi: true,
33
+ },
34
+ ], ngImport: i0, template: "<mat-button-toggle-group\r\n appearance=\"legacy\" class=\"custmattog\">\r\n <ng-container *ngFor=\"let option of optionsList.defaultOptionsList | orderBy\">\r\n <mat-button-toggle (change)=\"toggleSelection(option.options)\" value=\"{{option.options.id}}\">\r\n {{ option.options.optionName[0]?.text }}</mat-button-toggle>\r\n </ng-container>\r\n</mat-button-toggle-group>", styles: [""], components: [{ type: i1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }], directives: [{ type: i1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "orderBy": i3.OrderByPipe } });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestionTypeRatingComponent, decorators: [{
36
+ type: Component,
37
+ args: [{ selector: 'lib-question-type-rating', providers: [
38
+ {
39
+ provide: NG_VALUE_ACCESSOR,
40
+ useExisting: forwardRef(() => QuestionTypeRatingComponent),
41
+ multi: true,
42
+ },
43
+ ], template: "<mat-button-toggle-group\r\n appearance=\"legacy\" class=\"custmattog\">\r\n <ng-container *ngFor=\"let option of optionsList.defaultOptionsList | orderBy\">\r\n <mat-button-toggle (change)=\"toggleSelection(option.options)\" value=\"{{option.options.id}}\">\r\n {{ option.options.optionName[0]?.text }}</mat-button-toggle>\r\n </ng-container>\r\n</mat-button-toggle-group>", styles: [""] }]
44
+ }], ctorParameters: function () { return []; }, propDecorators: { required: [{
45
+ type: Input
46
+ }], optionsList: [{
47
+ type: Input
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tdHlwZS1yYXRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNzZXNzbWVudC10YWtlci9zcmMvbGliL3NoYXJlZC9zaGFyZWQtY29tcG9uZW50cy9xdWVzdGlvbi10eXBlLXJhdGluZy9xdWVzdGlvbi10eXBlLXJhdGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Nlc3NtZW50LXRha2VyL3NyYy9saWIvc2hhcmVkL3NoYXJlZC1jb21wb25lbnRzL3F1ZXN0aW9uLXR5cGUtcmF0aW5nL3F1ZXN0aW9uLXR5cGUtcmF0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQWN0RixNQUFNLE9BQU8sMkJBQTJCO0lBS3RDO1FBRk8sZ0JBQVcsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUVwQyxDQUFDO0lBRWpCLGVBQWUsQ0FBQyxJQUFTO1FBQ3ZCLGlDQUFpQztRQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFBQSxDQUFDO0lBRUYsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQVk7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBWTtRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7O3lIQXZCVSwyQkFBMkI7NkdBQTNCLDJCQUEyQixpSEFSM0I7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztZQUMxRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMEJDYkgsa1pBTTBCOzRGRFNiLDJCQUEyQjtrQkFadkMsU0FBUzsrQkFDRSwwQkFBMEIsYUFHekI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7NEJBQzFELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzBFQUdRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcXVlc3Rpb24tdHlwZS1yYXRpbmcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi10eXBlLXJhdGluZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tdHlwZS1yYXRpbmcuY29tcG9uZW50LmNzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUXVlc3Rpb25UeXBlUmF0aW5nQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRdWVzdGlvblR5cGVSYXRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQ6YW55O1xyXG4gIEBJbnB1dCgpIG9wdGlvbnNMaXN0OiBhbnk7XHJcbiAgcHVibGljIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICB0b2dnbGVTZWxlY3Rpb24oZGF0YTogYW55KSB7XHJcbiAgICAvL2RhdGEuc2VsZWN0ZWQgPSAhZGF0YS5zZWxlY3RlZDtcclxuICAgIGNvbnNvbGUubG9nKGRhdGEpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKGRhdGEpO1xyXG4gIH07XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBGdW5jdGlvbikge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWwpID0+IGZuKHZhbCkpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKSB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCkgPT4gZm4odmFsKSk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXBcclxuICAgIGFwcGVhcmFuY2U9XCJsZWdhY3lcIiBjbGFzcz1cImN1c3RtYXR0b2dcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zTGlzdC5kZWZhdWx0T3B0aW9uc0xpc3QgfCBvcmRlckJ5XCI+XHJcbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIChjaGFuZ2UpPVwidG9nZ2xlU2VsZWN0aW9uKG9wdGlvbi5vcHRpb25zKVwiIHZhbHVlPVwie3tvcHRpb24ub3B0aW9ucy5pZH19XCI+XHJcbiAgICAgICAgICAgIHt7IG9wdGlvbi5vcHRpb25zLm9wdGlvbk5hbWVbMF0/LnRleHQgfX08L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+Il19
@@ -0,0 +1,103 @@
1
+ import { COMMA, ENTER, SEMICOLON } from "@angular/cdk/keycodes";
2
+ import { Component, Input, ViewChild, forwardRef } from "@angular/core";
3
+ import { FormControl, NG_VALUE_ACCESSOR } from "@angular/forms";
4
+ import { map, startWith } from "rxjs/operators";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/dialog";
7
+ import * as i2 from "@angular/material/form-field";
8
+ import * as i3 from "@angular/material/chips";
9
+ import * as i4 from "@angular/material/icon";
10
+ import * as i5 from "@angular/material/autocomplete";
11
+ import * as i6 from "@angular/material/core";
12
+ import * as i7 from "@angular/common";
13
+ import * as i8 from "@angular/forms";
14
+ export class QuestionTypeSearchableTagComponent {
15
+ constructor(dialog) {
16
+ this.dialog = dialog;
17
+ this.visible = true;
18
+ this.selectable = true;
19
+ this.removable = true;
20
+ this.separatorKeysCodes = [ENTER, COMMA, SEMICOLON, 188];
21
+ this.formControl = new FormControl();
22
+ this.options = [];
23
+ this.allOptions = ["Lemon", "Lime", "Orange", "Strawberry"];
24
+ this.filteredOptions = this.formControl.valueChanges.pipe(startWith(null), map((option) => option ? this._filter(option) : this.allOptions.slice()));
25
+ }
26
+ writeValue(value) {
27
+ this.formControl.setValue(value);
28
+ }
29
+ registerOnChange(fn) {
30
+ this.formControl.valueChanges.subscribe((val) => fn(val));
31
+ }
32
+ registerOnTouched(fn) {
33
+ this.formControl.valueChanges.subscribe((val) => fn(val));
34
+ }
35
+ add(event) {
36
+ const input = event.input;
37
+ const value = event.value;
38
+ // Add our option
39
+ if ((value || "").trim()) {
40
+ this.options.push(value.trim());
41
+ }
42
+ // Reset the input value
43
+ if (input) {
44
+ input.value = "";
45
+ }
46
+ this.formControl.setValue(null);
47
+ this.updateControlValue();
48
+ }
49
+ remove(option) {
50
+ const index = this.options.indexOf(option);
51
+ if (index >= 0) {
52
+ this.options.splice(index, 1);
53
+ }
54
+ this.updateControlValue();
55
+ }
56
+ selected(event) {
57
+ this.options.push(event.option.viewValue);
58
+ this.optionInput.nativeElement.value = "";
59
+ this.formControl.setValue(null);
60
+ this.updateControlValue();
61
+ }
62
+ updateControlValue() {
63
+ this.formControl.patchValue(this.options);
64
+ }
65
+ openDialog(templateRef) {
66
+ this.dialog.open(templateRef);
67
+ }
68
+ _filter(value) {
69
+ const filterValue = value.toLowerCase();
70
+ return this.allOptions.filter(option => option.toLowerCase().indexOf(filterValue) === 0);
71
+ }
72
+ }
73
+ QuestionTypeSearchableTagComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestionTypeSearchableTagComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
74
+ QuestionTypeSearchableTagComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: QuestionTypeSearchableTagComponent, selector: "lib-question-type-searchable-tag", inputs: { required: "required", optionsList: "optionsList", fieldAttributes: "fieldAttributes" }, providers: [
75
+ {
76
+ provide: NG_VALUE_ACCESSOR,
77
+ useExisting: forwardRef(() => QuestionTypeSearchableTagComponent),
78
+ multi: true,
79
+ },
80
+ ], viewQueries: [{ propertyName: "optionInput", first: true, predicate: ["optionInput"], descendants: true }, { propertyName: "matAutocomplete", first: true, predicate: ["auto"], descendants: true }], ngImport: i0, template: "<mat-form-field class=\"example-chip-list\">\r\n <mat-chip-list #chipList>\r\n <mat-chip *ngFor=\"let option of options\" [selectable]=\"selectable\" [removable]=\"removable\"\r\n (removed)=\"remove(option)\">\r\n {{option}}\r\n <mat-icon matChipRemove *ngIf=\"removable\">cancel</mat-icon>\r\n </mat-chip>\r\n <input placeholder=\"\" #optionInput [formControl]=\"formControl\" [required]=\"required\" [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n (matChipInputTokenEnd)=\"add($event)\">\r\n </mat-chip-list>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n</mat-form-field>\r\n\r\n\r\n", styles: [""], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatChipRemove, selector: "[matChipRemove]" }, { 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: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i7.AsyncPipe } });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestionTypeSearchableTagComponent, decorators: [{
82
+ type: Component,
83
+ args: [{ selector: 'lib-question-type-searchable-tag', providers: [
84
+ {
85
+ provide: NG_VALUE_ACCESSOR,
86
+ useExisting: forwardRef(() => QuestionTypeSearchableTagComponent),
87
+ multi: true,
88
+ },
89
+ ], template: "<mat-form-field class=\"example-chip-list\">\r\n <mat-chip-list #chipList>\r\n <mat-chip *ngFor=\"let option of options\" [selectable]=\"selectable\" [removable]=\"removable\"\r\n (removed)=\"remove(option)\">\r\n {{option}}\r\n <mat-icon matChipRemove *ngIf=\"removable\">cancel</mat-icon>\r\n </mat-chip>\r\n <input placeholder=\"\" #optionInput [formControl]=\"formControl\" [required]=\"required\" [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n (matChipInputTokenEnd)=\"add($event)\">\r\n </mat-chip-list>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n</mat-form-field>\r\n\r\n\r\n", styles: [""] }]
90
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { required: [{
91
+ type: Input
92
+ }], optionsList: [{
93
+ type: Input
94
+ }], fieldAttributes: [{
95
+ type: Input
96
+ }], optionInput: [{
97
+ type: ViewChild,
98
+ args: ["optionInput"]
99
+ }], matAutocomplete: [{
100
+ type: ViewChild,
101
+ args: ["auto"]
102
+ }] } });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tdHlwZS1zZWFyY2hhYmxlLXRhZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Nlc3NtZW50LXRha2VyL3NyYy9saWIvc2hhcmVkL3NoYXJlZC1jb21wb25lbnRzL3F1ZXN0aW9uLXR5cGUtc2VhcmNoYWJsZS10YWcvcXVlc3Rpb24tdHlwZS1zZWFyY2hhYmxlLXRhZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Nlc3NtZW50LXRha2VyL3NyYy9saWIvc2hhcmVkL3NoYXJlZC1jb21wb25lbnRzL3F1ZXN0aW9uLXR5cGUtc2VhcmNoYWJsZS10YWcvcXVlc3Rpb24tdHlwZS1zZWFyY2hhYmxlLXRhZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBdUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQXdCLFdBQVcsRUFBQyxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT3JGLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFlaEQsTUFBTSxPQUFPLGtDQUFrQztJQWU3QyxZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBWHJDLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsdUJBQWtCLEdBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2RCxnQkFBVyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRXBELFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsZUFBVSxHQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFLL0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3ZELFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixHQUFHLENBQUMsQ0FBQyxNQUFxQixFQUFFLEVBQUUsQ0FDNUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUN4RCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQVk7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBWTtRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxHQUFHLENBQUMsS0FBd0I7UUFDMUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMxQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBRTFCLGlCQUFpQjtRQUNqQixJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ2pDO1FBRUQsd0JBQXdCO1FBQ3hCLElBQUksS0FBSyxFQUFFO1lBQ1QsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDbEI7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQWM7UUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0MsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFtQztRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFVBQVUsQ0FBQyxXQUE2QjtRQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQWE7UUFDM0IsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXhDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQzNCLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQzFELENBQUM7SUFDSixDQUFDOztnSUFuRlUsa0NBQWtDO29IQUFsQyxrQ0FBa0MsNkpBUmxDO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0NBQWtDLENBQUM7WUFDakUsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLGdPQ3RCSCxnNEJBbUJBOzRGREthLGtDQUFrQztrQkFaOUMsU0FBUzsrQkFDRSxrQ0FBa0MsYUFHakM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUNBQW1DLENBQUM7NEJBQ2pFLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2dHQUdRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQVVvQixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0wsZUFBZTtzQkFBakMsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ09NTUEsIEVOVEVSLCBTRU1JQ09MT04gfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2tleWNvZGVzXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgZm9yd2FyZFJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCxOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1xyXG4gIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsXHJcbiAgTWF0QXV0b2NvbXBsZXRlXHJcbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZVwiO1xyXG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGlwc1wiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXF1ZXN0aW9uLXR5cGUtc2VhcmNoYWJsZS10YWcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi10eXBlLXNlYXJjaGFibGUtdGFnLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9xdWVzdGlvbi10eXBlLXNlYXJjaGFibGUtdGFnLmNvbXBvbmVudC5jc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFF1ZXN0aW9uVHlwZVNlYXJjaGFibGVUYWdDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uVHlwZVNlYXJjaGFibGVUYWdDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQ6YW55O1xyXG4gIEBJbnB1dCgpIG9wdGlvbnNMaXN0OmFueTtcclxuICBASW5wdXQoKSBmaWVsZEF0dHJpYnV0ZXM6IGFueTtcclxuICB2aXNpYmxlID0gdHJ1ZTtcclxuICBzZWxlY3RhYmxlID0gdHJ1ZTtcclxuICByZW1vdmFibGUgPSB0cnVlO1xyXG4gIHNlcGFyYXRvcktleXNDb2RlczogbnVtYmVyW10gPSBbRU5URVIsIENPTU1BLCBTRU1JQ09MT04sIDE4OF07XHJcbiAgcHVibGljIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIGZpbHRlcmVkT3B0aW9uczogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XHJcbiAgb3B0aW9uczogc3RyaW5nW10gPSBbXTtcclxuICBhbGxPcHRpb25zOiBzdHJpbmdbXSA9IFtcIkxlbW9uXCIsIFwiTGltZVwiLCBcIk9yYW5nZVwiLCBcIlN0cmF3YmVycnlcIl07XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJvcHRpb25JbnB1dFwiKSBvcHRpb25JbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZChcImF1dG9cIikgbWF0QXV0b2NvbXBsZXRlITogTWF0QXV0b2NvbXBsZXRlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2cpIHsgXHJcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgIHN0YXJ0V2l0aChudWxsKSxcclxuICAgICAgbWFwKChvcHRpb246IHN0cmluZyB8IG51bGwpID0+XHJcbiAgICAgICAgb3B0aW9uID8gdGhpcy5fZmlsdGVyKG9wdGlvbikgOiB0aGlzLmFsbE9wdGlvbnMuc2xpY2UoKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKSB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCkgPT4gZm4odmFsKSk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogRnVuY3Rpb24pIHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsKSA9PiBmbih2YWwpKTtcclxuICB9XHJcblxyXG4gIGFkZChldmVudDogTWF0Q2hpcElucHV0RXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQuaW5wdXQ7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnZhbHVlO1xyXG5cclxuICAgIC8vIEFkZCBvdXIgb3B0aW9uXHJcbiAgICBpZiAoKHZhbHVlIHx8IFwiXCIpLnRyaW0oKSkge1xyXG4gICAgICB0aGlzLm9wdGlvbnMucHVzaCh2YWx1ZS50cmltKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlc2V0IHRoZSBpbnB1dCB2YWx1ZVxyXG4gICAgaWYgKGlucHV0KSB7XHJcbiAgICAgIGlucHV0LnZhbHVlID0gXCJcIjtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICB0aGlzLnVwZGF0ZUNvbnRyb2xWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKG9wdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMub3B0aW9ucy5pbmRleE9mKG9wdGlvbik7XHJcblxyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy5vcHRpb25zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZUNvbnRyb2xWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMub3B0aW9ucy5wdXNoKGV2ZW50Lm9wdGlvbi52aWV3VmFsdWUpO1xyXG4gICAgdGhpcy5vcHRpb25JbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICB0aGlzLnVwZGF0ZUNvbnRyb2xWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ29udHJvbFZhbHVlKCl7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUodGhpcy5vcHRpb25zKTtcclxuICB9XHJcblxyXG4gIG9wZW5EaWFsb2codGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIHRoaXMuZGlhbG9nLm9wZW4odGVtcGxhdGVSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmlsdGVyKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYWxsT3B0aW9ucy5maWx0ZXIoXHJcbiAgICAgIG9wdGlvbiA9PiBvcHRpb24udG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlclZhbHVlKSA9PT0gMFxyXG4gICAgKTtcclxuICB9XHJcbiAgXHJcblxyXG59XHJcbiIsIjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImV4YW1wbGUtY2hpcC1saXN0XCI+XHJcbiAgPG1hdC1jaGlwLWxpc3QgI2NoaXBMaXN0PlxyXG4gICAgPG1hdC1jaGlwICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFtzZWxlY3RhYmxlXT1cInNlbGVjdGFibGVcIiBbcmVtb3ZhYmxlXT1cInJlbW92YWJsZVwiXHJcbiAgICAgIChyZW1vdmVkKT1cInJlbW92ZShvcHRpb24pXCI+XHJcbiAgICAgIHt7b3B0aW9ufX1cclxuICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmUgKm5nSWY9XCJyZW1vdmFibGVcIj5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgPC9tYXQtY2hpcD5cclxuICAgIDxpbnB1dCBwbGFjZWhvbGRlcj1cIlwiICNvcHRpb25JbnB1dCBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxyXG4gICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBMaXN0XCIgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiXHJcbiAgICAgIChtYXRDaGlwSW5wdXRUb2tlbkVuZCk9XCJhZGQoJGV2ZW50KVwiPlxyXG4gIDwvbWF0LWNoaXAtbGlzdD5cclxuICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJzZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9ucyB8IGFzeW5jXCIgW3ZhbHVlXT1cIm9wdGlvblwiPlxyXG4gICAgICB7e29wdGlvbn19XHJcbiAgICA8L21hdC1vcHRpb24+XHJcbiAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuXHJcbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { Component, forwardRef, Input } from '@angular/core';
2
+ import { ControlContainer, FormControl, NG_VALUE_ACCESSOR, NgForm } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/form-field";
5
+ import * as i2 from "@angular/material/input";
6
+ import * as i3 from "@angular/forms";
7
+ export class QuestionTypeShortComponent {
8
+ constructor() {
9
+ this.formControl = new FormControl();
10
+ }
11
+ writeValue(value) {
12
+ this.formControl.setValue(value);
13
+ }
14
+ registerOnChange(fn) {
15
+ this.formControl.valueChanges.subscribe((val) => fn(val));
16
+ }
17
+ registerOnTouched(fn) {
18
+ this.formControl.valueChanges.subscribe((val) => fn(val));
19
+ }
20
+ }
21
+ QuestionTypeShortComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestionTypeShortComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
+ QuestionTypeShortComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: QuestionTypeShortComponent, selector: "lib-question-type-short", inputs: { optionsList: "optionsList", required: "required" }, providers: [
23
+ {
24
+ provide: NG_VALUE_ACCESSOR,
25
+ useExisting: forwardRef(() => QuestionTypeShortComponent),
26
+ multi: true,
27
+ },
28
+ ], ngImport: i0, template: " <!-- <input \r\n [id]=\"'question_'\"\r\n rows=\"4\" class=\"input-tag\" placeholder=\"Enter your answer here!\" tooltip=\"FDFD FDS D AF \" title=\"Enter your answer here\" matTooltip='Permissions \"Disk\"'/> -->\r\n <mat-form-field class=\"example-full-width\">\r\n <input matInput [id]=\"optionsList.id\" [formControl]=\"formControl\" class=\"form-control\" placeholder=\"Enter your answer here\" [required]=\"required\">\r\n <!-- <p *ngIf=\"f.shortAns.errors && (f.shortAns.touched || f.shortAns.dirty)\" class=\"text-danger\">\r\n {{f.username.errors | json}}\r\n </p> -->\r\n <!-- <mat-hint style=\"color: red;\" *ngIf=\"!parentForm.controls['shortAns'].valid\">\r\n Short answer is required\r\n </mat-hint> -->\r\n <!-- <div *ngIf=\"parentForm.controls['shortAns'].enabled === true && !parentForm.controls['shortAns'].valid\" class=\"validation-message\">\r\n not valid\r\n </div> -->\r\n </mat-form-field>\r\n", styles: [".input-tag{font-family:assessment-Medium;font-size:14px;width:75%;border-left:none;border-right:none;border-top:none;outline:none;padding:.75rem}.input-tag:focus{border-color:#007bff}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }], directives: [{ type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestionTypeShortComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'lib-question-type-short', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], providers: [
32
+ {
33
+ provide: NG_VALUE_ACCESSOR,
34
+ useExisting: forwardRef(() => QuestionTypeShortComponent),
35
+ multi: true,
36
+ },
37
+ ], template: " <!-- <input \r\n [id]=\"'question_'\"\r\n rows=\"4\" class=\"input-tag\" placeholder=\"Enter your answer here!\" tooltip=\"FDFD FDS D AF \" title=\"Enter your answer here\" matTooltip='Permissions \"Disk\"'/> -->\r\n <mat-form-field class=\"example-full-width\">\r\n <input matInput [id]=\"optionsList.id\" [formControl]=\"formControl\" class=\"form-control\" placeholder=\"Enter your answer here\" [required]=\"required\">\r\n <!-- <p *ngIf=\"f.shortAns.errors && (f.shortAns.touched || f.shortAns.dirty)\" class=\"text-danger\">\r\n {{f.username.errors | json}}\r\n </p> -->\r\n <!-- <mat-hint style=\"color: red;\" *ngIf=\"!parentForm.controls['shortAns'].valid\">\r\n Short answer is required\r\n </mat-hint> -->\r\n <!-- <div *ngIf=\"parentForm.controls['shortAns'].enabled === true && !parentForm.controls['shortAns'].valid\" class=\"validation-message\">\r\n not valid\r\n </div> -->\r\n </mat-form-field>\r\n", styles: [".input-tag{font-family:assessment-Medium;font-size:14px;width:75%;border-left:none;border-right:none;border-top:none;outline:none;padding:.75rem}.input-tag:focus{border-color:#007bff}\n"] }]
38
+ }], ctorParameters: function () { return []; }, propDecorators: { optionsList: [{
39
+ type: Input
40
+ }], required: [{
41
+ type: Input
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tdHlwZS1zaG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Nlc3NtZW50LXRha2VyL3NyYy9saWIvc2hhcmVkL3NoYXJlZC1jb21wb25lbnRzL3F1ZXN0aW9uLXR5cGUtc2hvcnQvcXVlc3Rpb24tdHlwZS1zaG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Nlc3NtZW50LXRha2VyL3NyYy9saWIvc2hhcmVkL3NoYXJlZC1jb21wb25lbnRzL3F1ZXN0aW9uLXR5cGUtc2hvcnQvcXVlc3Rpb24tdHlwZS1zaG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFxQyxXQUFXLEVBQWlDLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQWU1SixNQUFNLE9BQU8sMEJBQTBCO0lBSXJDO1FBRE8sZ0JBQVcsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRWpCLFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFZO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQVk7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDOzt3SEFoQlUsMEJBQTBCOzRHQUExQiwwQkFBMEIsZ0hBUjFCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7WUFDekQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLDBCQ2RILHk5QkFlQSw4NENEVmlCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDOzRGQVd4RCwwQkFBMEI7a0JBYnRDLFNBQVM7K0JBQ0UseUJBQXlCLGlCQUNwQixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxhQUd4RDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7MEVBR1EsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcXVlc3Rpb24tdHlwZS1zaG9ydCcsXHJcbiAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybSB9XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb24tdHlwZS1zaG9ydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tdHlwZS1zaG9ydC5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBRdWVzdGlvblR5cGVTaG9ydENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25UeXBlU2hvcnRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQElucHV0KCkgb3B0aW9uc0xpc3Q6YW55O1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOmFueTtcclxuICBwdWJsaWMgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKSB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCkgPT4gZm4odmFsKSk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogRnVuY3Rpb24pIHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsKSA9PiBmbih2YWwpKTtcclxuICB9XHJcbiAgXHJcblxyXG59XHJcbiIsIiA8IS0tIDxpbnB1dCBcclxuICAgIFtpZF09XCIncXVlc3Rpb25fJ1wiXHJcbiAgICByb3dzPVwiNFwiIGNsYXNzPVwiaW5wdXQtdGFnXCIgcGxhY2Vob2xkZXI9XCJFbnRlciB5b3VyIGFuc3dlciBoZXJlIVwiIHRvb2x0aXA9XCJGREZEIEZEUyBEIEFGIFwiIHRpdGxlPVwiRW50ZXIgeW91ciBhbnN3ZXIgaGVyZVwiIG1hdFRvb2x0aXA9J1Blcm1pc3Npb25zIFwiRGlza1wiJy8+IC0tPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZXhhbXBsZS1mdWxsLXdpZHRoXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBbaWRdPVwib3B0aW9uc0xpc3QuaWRcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgeW91ciBhbnN3ZXIgaGVyZVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiPlxyXG4gICAgICA8IS0tIDxwICpuZ0lmPVwiZi5zaG9ydEFucy5lcnJvcnMgJiYgKGYuc2hvcnRBbnMudG91Y2hlZCB8fCBmLnNob3J0QW5zLmRpcnR5KVwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICB7e2YudXNlcm5hbWUuZXJyb3JzIHwganNvbn19XHJcbiAgICAgIDwvcD4gLS0+XHJcbiAgICAgIDwhLS0gPG1hdC1oaW50IHN0eWxlPVwiY29sb3I6IHJlZDtcIiAqbmdJZj1cIiFwYXJlbnRGb3JtLmNvbnRyb2xzWydzaG9ydEFucyddLnZhbGlkXCI+XHJcbiAgICAgICAgU2hvcnQgYW5zd2VyIGlzIHJlcXVpcmVkXHJcbiAgICAgIDwvbWF0LWhpbnQ+IC0tPlxyXG4gICAgICA8IS0tIDxkaXYgKm5nSWY9XCJwYXJlbnRGb3JtLmNvbnRyb2xzWydzaG9ydEFucyddLmVuYWJsZWQgPT09IHRydWUgJiYgIXBhcmVudEZvcm0uY29udHJvbHNbJ3Nob3J0QW5zJ10udmFsaWRcIiBjbGFzcz1cInZhbGlkYXRpb24tbWVzc2FnZVwiPlxyXG4gICAgICAgIG5vdCB2YWxpZFxyXG4gICAgPC9kaXY+IC0tPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuIl19
@@ -0,0 +1,48 @@
1
+ import { Component, forwardRef, Input } from '@angular/core';
2
+ import { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export class QuestionTypeUploadFileComponent {
5
+ constructor() {
6
+ this.fileToUpload = null;
7
+ this.formControl = new FormControl();
8
+ }
9
+ writeValue(value) {
10
+ this.formControl.setValue(value);
11
+ }
12
+ registerOnChange(fn) {
13
+ this.formControl.valueChanges.subscribe((val) => fn(val));
14
+ }
15
+ registerOnTouched(fn) {
16
+ this.formControl.valueChanges.subscribe((val) => fn(val));
17
+ }
18
+ handleFileInput(event) {
19
+ const files = event.dataTransfer ? event.dataTransfer.files : event.target.files;
20
+ if (files.length > 0) {
21
+ const file = files[0];
22
+ this.formControl.patchValue({
23
+ fileSource: file
24
+ });
25
+ }
26
+ }
27
+ }
28
+ QuestionTypeUploadFileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestionTypeUploadFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
+ QuestionTypeUploadFileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: QuestionTypeUploadFileComponent, selector: "lib-question-type-upload-file", inputs: { required: "required" }, providers: [
30
+ {
31
+ provide: NG_VALUE_ACCESSOR,
32
+ useExisting: forwardRef(() => QuestionTypeUploadFileComponent),
33
+ multi: true,
34
+ },
35
+ ], ngImport: i0, template: "<input \r\n[id]=\"'question_'\" type=\"file\" (change)=\"handleFileInput($event)\" class=\"input-tag\" placeholder=\"Upload File\" [required]=\"required\"/>\r\n<!-- \r\n<label for=\"formFile\" class=\"form-label\">Add file</label>\r\n <input class=\"form-control\" type=\"file\" id=\"formFile\">\r\n <button type=\"button\" class=\"btn btn-primary mt-3\"><mat-icon>file_upload</mat-icon></button> -->", styles: [""] });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestionTypeUploadFileComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'lib-question-type-upload-file', providers: [
39
+ {
40
+ provide: NG_VALUE_ACCESSOR,
41
+ useExisting: forwardRef(() => QuestionTypeUploadFileComponent),
42
+ multi: true,
43
+ },
44
+ ], template: "<input \r\n[id]=\"'question_'\" type=\"file\" (change)=\"handleFileInput($event)\" class=\"input-tag\" placeholder=\"Upload File\" [required]=\"required\"/>\r\n<!-- \r\n<label for=\"formFile\" class=\"form-label\">Add file</label>\r\n <input class=\"form-control\" type=\"file\" id=\"formFile\">\r\n <button type=\"button\" class=\"btn btn-primary mt-3\"><mat-icon>file_upload</mat-icon></button> -->", styles: [""] }]
45
+ }], ctorParameters: function () { return []; }, propDecorators: { required: [{
46
+ type: Input
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tdHlwZS11cGxvYWQtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Nlc3NtZW50LXRha2VyL3NyYy9saWIvc2hhcmVkL3NoYXJlZC1jb21wb25lbnRzL3F1ZXN0aW9uLXR5cGUtdXBsb2FkLWZpbGUvcXVlc3Rpb24tdHlwZS11cGxvYWQtZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Nlc3NtZW50LXRha2VyL3NyYy9saWIvc2hhcmVkL3NoYXJlZC1jb21wb25lbnRzL3F1ZXN0aW9uLXR5cGUtdXBsb2FkLWZpbGUvcXVlc3Rpb24tdHlwZS11cGxvYWQtZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFjdEYsTUFBTSxPQUFPLCtCQUErQjtJQUsxQztRQUhBLGlCQUFZLEdBQW1CLElBQUksQ0FBQztRQUM3QixnQkFBVyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO0lBRXBDLENBQUM7SUFFakIsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQVk7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBWTtRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFHRCxlQUFlLENBQUMsS0FBVTtRQUN4QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakYsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7Z0JBQzFCLFVBQVUsRUFBRSxJQUFJO2FBQ2pCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7NkhBNUJVLCtCQUErQjtpSEFBL0IsK0JBQStCLDBGQVIvQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLCtCQUErQixDQUFDO1lBQzlELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwwQkNiSCw4WkFLdUc7NEZEVTFGLCtCQUErQjtrQkFaM0MsU0FBUzsrQkFDRSwrQkFBK0IsYUFHOUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0NBQWdDLENBQUM7NEJBQzlELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzBFQUdRLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXF1ZXN0aW9uLXR5cGUtdXBsb2FkLWZpbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi10eXBlLXVwbG9hZC1maWxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9xdWVzdGlvbi10eXBlLXVwbG9hZC1maWxlLmNvbXBvbmVudC5jc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFF1ZXN0aW9uVHlwZVVwbG9hZEZpbGVDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uVHlwZVVwbG9hZEZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQ6YW55O1xyXG4gIGZpbGVUb1VwbG9hZDogRmlsZUxpc3QgfCBhbnkgPSBudWxsO1xyXG4gIHB1YmxpYyBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKSB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCkgPT4gZm4odmFsKSk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogRnVuY3Rpb24pIHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsKSA9PiBmbih2YWwpKTtcclxuICB9XHJcblxyXG5cclxuICBoYW5kbGVGaWxlSW5wdXQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXIgPyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMgOiBldmVudC50YXJnZXQuZmlsZXM7XHJcbiAgICBpZiAoZmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBmaWxlID0gZmlsZXNbMF07XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgZmlsZVNvdXJjZTogZmlsZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxpbnB1dCBcclxuW2lkXT1cIidxdWVzdGlvbl8nXCIgdHlwZT1cImZpbGVcIiAoY2hhbmdlKT1cImhhbmRsZUZpbGVJbnB1dCgkZXZlbnQpXCIgY2xhc3M9XCJpbnB1dC10YWdcIiBwbGFjZWhvbGRlcj1cIlVwbG9hZCBGaWxlXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIvPlxyXG48IS0tIFxyXG48bGFiZWwgZm9yPVwiZm9ybUZpbGVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5BZGQgZmlsZTwvbGFiZWw+XHJcbiAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiB0eXBlPVwiZmlsZVwiIGlkPVwiZm9ybUZpbGVcIj5cclxuICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTNcIj48bWF0LWljb24+ZmlsZV91cGxvYWQ8L21hdC1pY29uPjwvYnV0dG9uPiAtLT4iXX0=