survery-lib 0.0.1
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.
- package/README.md +24 -0
- package/assets/style.css +58 -0
- package/assets/style.css.map +1 -0
- package/esm2022/lib/components/question-boolean-template/question-boolean-template.component.mjs +80 -0
- package/esm2022/lib/components/question-check-box-template/question-check-box-template.component.mjs +88 -0
- package/esm2022/lib/components/question-dropdown-template/question-dropdown-template.component.mjs +76 -0
- package/esm2022/lib/components/question-matrix-template/question-matrix-template.component.mjs +69 -0
- package/esm2022/lib/components/question-radio-button-template/question-radio-button-template.component.mjs +80 -0
- package/esm2022/lib/components/question-text-template/question-text-template.component.mjs +77 -0
- package/esm2022/lib/services/shared-data.service.mjs +23 -0
- package/esm2022/lib/services/survey-lib.service.mjs +23 -0
- package/esm2022/lib/survery-lib.component.mjs +124 -0
- package/esm2022/lib/survery-lib.module.mjs +50 -0
- package/esm2022/public-api.mjs +7 -0
- package/esm2022/shared/dtos/rule-exp-answer.dto.mjs +2 -0
- package/esm2022/shared/dtos/rule-exp.dto.mjs +2 -0
- package/esm2022/shared/dtos/rule-result-question.dto.mjs +2 -0
- package/esm2022/shared/dtos/survey-answer.dto.mjs +2 -0
- package/esm2022/shared/dtos/survey-page.dto.mjs +2 -0
- package/esm2022/shared/dtos/survey-question-group.dto.mjs +2 -0
- package/esm2022/shared/dtos/survey-question.dto.mjs +2 -0
- package/esm2022/shared/dtos/survey-rule.dto.mjs +2 -0
- package/esm2022/shared/dtos/survey-sub-question.dto.mjs +2 -0
- package/esm2022/shared/dtos/survey.dto.mjs +2 -0
- package/esm2022/shared/enums/question-type.enum.mjs +10 -0
- package/esm2022/shared/form-interfaces/question-boolean-template.form-interface.mjs +2 -0
- package/esm2022/shared/form-interfaces/question-check-box-template.form-interface.mjs +3 -0
- package/esm2022/shared/form-interfaces/question-dropdown-template.form-interface.mjs +3 -0
- package/esm2022/shared/form-interfaces/question-matrix-template.form-interface.mjs +2 -0
- package/esm2022/shared/form-interfaces/question-radio-button-template.form-interface.mjs +3 -0
- package/esm2022/shared/form-interfaces/question-text-template.form-interface.mjs +2 -0
- package/esm2022/shared/form-interfaces/survery-lib.form-interface.mjs +2 -0
- package/esm2022/shared/models/question-answer.model.mjs +3 -0
- package/esm2022/survery-lib.mjs +5 -0
- package/fesm2022/survery-lib.mjs +638 -0
- package/fesm2022/survery-lib.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/question-boolean-template/question-boolean-template.component.d.ts +34 -0
- package/lib/components/question-check-box-template/question-check-box-template.component.d.ts +34 -0
- package/lib/components/question-dropdown-template/question-dropdown-template.component.d.ts +31 -0
- package/lib/components/question-matrix-template/question-matrix-template.component.d.ts +28 -0
- package/lib/components/question-radio-button-template/question-radio-button-template.component.d.ts +34 -0
- package/lib/components/question-text-template/question-text-template.component.d.ts +31 -0
- package/lib/services/shared-data.service.d.ts +9 -0
- package/lib/services/survey-lib.service.d.ts +10 -0
- package/lib/survery-lib.component.d.ts +34 -0
- package/lib/survery-lib.module.d.ts +19 -0
- package/package.json +27 -0
- package/public-api.d.ts +3 -0
- package/shared/dtos/rule-exp-answer.dto.d.ts +5 -0
- package/shared/dtos/rule-exp.dto.d.ts +11 -0
- package/shared/dtos/rule-result-question.dto.d.ts +4 -0
- package/shared/dtos/survey-answer.dto.d.ts +16 -0
- package/shared/dtos/survey-page.dto.d.ts +9 -0
- package/shared/dtos/survey-question-group.dto.d.ts +8 -0
- package/shared/dtos/survey-question.dto.d.ts +18 -0
- package/shared/dtos/survey-rule.dto.d.ts +10 -0
- package/shared/dtos/survey-sub-question.dto.d.ts +9 -0
- package/shared/dtos/survey.dto.d.ts +16 -0
- package/shared/enums/question-type.enum.d.ts +8 -0
- package/shared/form-interfaces/question-boolean-template.form-interface.d.ts +9 -0
- package/shared/form-interfaces/question-check-box-template.form-interface.d.ts +9 -0
- package/shared/form-interfaces/question-dropdown-template.form-interface.d.ts +9 -0
- package/shared/form-interfaces/question-matrix-template.form-interface.d.ts +11 -0
- package/shared/form-interfaces/question-radio-button-template.form-interface.d.ts +9 -0
- package/shared/form-interfaces/question-text-template.form-interface.d.ts +9 -0
- package/shared/form-interfaces/survery-lib.form-interface.d.ts +11 -0
- package/shared/models/question-answer.model.d.ts +5 -0
package/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# SurveryLib
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.1.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project survery-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project survery-lib`.
|
|
8
|
+
> Note: Don't forget to add `--project survery-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build survery-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build survery-lib`, go to the dist folder `cd dist/survery-lib` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test survery-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
package/assets/style.css
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
lib-survery-lib .survay-pagination nav ul.pagination {
|
|
2
|
+
display: flex;
|
|
3
|
+
gap: 8px;
|
|
4
|
+
}
|
|
5
|
+
lib-survery-lib .survay-pagination nav ul.pagination li.page-item.next-page-item a::after {
|
|
6
|
+
content: " ";
|
|
7
|
+
background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxOCAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IkFycm93IC0gTGVmdCI+CjxwYXRoIGlkPSJGaWxsIDEiIG9wYWNpdHk9IjAuNCIgZD0iTTEyLjc5NzUgNC44MDk1N0wxNi40OTY3IDQuNDgyNDJDMTcuMzI2OSA0LjQ4MjQyIDE4IDUuMTYyMDYgMTggNi4wMDAzMkMxOCA2LjgzODU4IDE3LjMyNjkgNy41MTgyMiAxNi40OTY3IDcuNTE4MjJMMTIuNzk3NSA3LjE5MTA3QzEyLjE0NjMgNy4xOTEwNyAxMS42MTgzIDYuNjU3OTMgMTEuNjE4MyA2LjAwMDMyQzExLjYxODMgNS4zNDE2MSAxMi4xNDYzIDQuODA5NTcgMTIuNzk3NSA0LjgwOTU3WiIgZmlsbD0iIzRDM0Q4RiIvPgo8cGF0aCBpZD0iRmlsbCA0IiBkPSJNMC4zNzUzNCA0Ljg2OTg0QzAuNDMzMTU3IDQuODExNDYgMC42NDkxNTUgNC41NjQ3MSAwLjg1MjA2MSA0LjM1OTgzQzIuMDM1NjggMy4wNzY1NiA1LjEyNjE5IDAuOTc4MTUzIDYuNzQyOSAwLjMzNTk2NUM2Ljk4ODM1IDAuMjMzNTIzIDcuNjA5MDcgMC4wMTU0MjEzIDcuOTQxNzkgMEM4LjI1OTI0IDAgOC41NjI1MSAwLjA3MzgwMjEgOC44NTE2IDAuMjE5MjAzQzkuMjEyNjkgMC40MjI5ODUgOS41MDA2OCAwLjc0NDYzIDkuNjU5OTUgMS4xMjM1NUM5Ljc2MTQxIDEuMzg1NzIgOS45MjA2OCAyLjE3MzMxIDkuOTIwNjggMi4xODc2M0MxMC4wNzg5IDMuMDQ3OTIgMTAuMTY1IDQuNDQ2ODUgMTAuMTY1IDUuOTkzMzlDMTAuMTY1IDcuNDY1MDMgMTAuMDc4OSA4LjgwNjY4IDkuOTQ5MDQgOS42ODEyOUM5LjkzNDg2IDkuNjk2NzEgOS43NzU1OSAxMC42NzM4IDkuNjAyMTQgMTEuMDA4NkM5LjI4NDY5IDExLjYyMTEgOC42NjM5NyAxMiA3Ljk5OTYxIDEySDcuOTQxNzlDNy41MDg3MSAxMS45ODU3IDYuNTk4OSAxMS42MDU3IDYuNTk4OSAxMS41OTI0QzUuMDY4MzcgMTAuOTUwMiAyLjA1MDk2IDguOTUzMTkgMC44Mzc4NzkgNy42MjU4NUMwLjgzNzg3OSA3LjYyNTg1IDAuNDk1MzM4IDcuMjg0MzggMC4zNDY5NzYgNy4wNzE3OEMwLjExNTcwNiA2Ljc2NTU2IDcuMTUyNTZlLTA1IDYuMzg2NjMgNy4xNTI1NmUtMDUgNi4wMDc3MUM3LjE1MjU2ZS0wNSA1LjU4NDczIDAuMTI5ODg4IDUuMTkxNDggMC4zNzUzNCA0Ljg2OTg0WiIgZmlsbD0iIzRDM0Q4RiIvPgo8L2c+Cjwvc3ZnPgo=);
|
|
8
|
+
width: 20px;
|
|
9
|
+
height: 20px;
|
|
10
|
+
display: inline-block;
|
|
11
|
+
background-repeat: no-repeat;
|
|
12
|
+
background-position: center;
|
|
13
|
+
}
|
|
14
|
+
lib-survery-lib .survay-pagination nav ul.pagination li.page-item.previous-page-item a::before {
|
|
15
|
+
content: " ";
|
|
16
|
+
background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxOCAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IkFycm93IC0gTGVmdCI+CjxwYXRoIGlkPSJGaWxsIDEiIG9wYWNpdHk9IjAuNCIgZD0iTTUuMjAyNDggNC44MDk1N0wxLjUwMzI1IDQuNDgyNDJDMC42NzMwODMgNC40ODI0MiAwIDUuMTYyMDYgMCA2LjAwMDMyQzAgNi44Mzg1OCAwLjY3MzA4MyA3LjUxODIyIDEuNTAzMjUgNy41MTgyMkw1LjIwMjQ4IDcuMTkxMDdDNS44NTM3NSA3LjE5MTA3IDYuMzgxNzQgNi42NTc5MyA2LjM4MTc0IDYuMDAwMzJDNi4zODE3NCA1LjM0MTYxIDUuODUzNzUgNC44MDk1NyA1LjIwMjQ4IDQuODA5NTdaIiBmaWxsPSIjNEMzRDhGIi8+CjxwYXRoIGlkPSJGaWxsIDQiIGQ9Ik0xNy42MjQ3IDQuODY5ODRDMTcuNTY2OCA0LjgxMTQ2IDE3LjM1MDggNC41NjQ3MSAxNy4xNDc5IDQuMzU5ODNDMTUuOTY0MyAzLjA3NjU2IDEyLjg3MzggMC45NzgxNTMgMTEuMjU3MSAwLjMzNTk2NUMxMS4wMTE2IDAuMjMzNTIzIDEwLjM5MDkgMC4wMTU0MjEzIDEwLjA1ODIgMEM5Ljc0MDc2IDAgOS40Mzc0OSAwLjA3MzgwMjEgOS4xNDg0IDAuMjE5MjAzQzguNzg3MzEgMC40MjI5ODUgOC40OTkzMiAwLjc0NDYzIDguMzQwMDUgMS4xMjM1NUM4LjIzODU5IDEuMzg1NzIgOC4wNzkzMiAyLjE3MzMxIDguMDc5MzIgMi4xODc2M0M3LjkyMTE0IDMuMDQ3OTIgNy44MzQ5NiA0LjQ0Njg1IDcuODM0OTYgNS45OTMzOUM3LjgzNDk2IDcuNDY1MDMgNy45MjExNCA4LjgwNjY4IDguMDUwOTYgOS42ODEyOUM4LjA2NTE0IDkuNjk2NzEgOC4yMjQ0MSAxMC42NzM4IDguMzk3ODYgMTEuMDA4NkM4LjcxNTMxIDExLjYyMTEgOS4zMzYwMyAxMiAxMC4wMDA0IDEySDEwLjA1ODJDMTAuNDkxMyAxMS45ODU3IDExLjQwMTEgMTEuNjA1NyAxMS40MDExIDExLjU5MjRDMTIuOTMxNiAxMC45NTAyIDE1Ljk0OSA4Ljk1MzE5IDE3LjE2MjEgNy42MjU4NUMxNy4xNjIxIDcuNjI1ODUgMTcuNTA0NyA3LjI4NDM4IDE3LjY1MyA3LjA3MTc4QzE3Ljg4NDMgNi43NjU1NiAxNy45OTk5IDYuMzg2NjMgMTcuOTk5OSA2LjAwNzcxQzE3Ljk5OTkgNS41ODQ3MyAxNy44NzAxIDUuMTkxNDggMTcuNjI0NyA0Ljg2OTg0WiIgZmlsbD0iIzRDM0Q4RiIvPgo8L2c+Cjwvc3ZnPgo=);
|
|
17
|
+
width: 20px;
|
|
18
|
+
height: 20px;
|
|
19
|
+
display: inline-block;
|
|
20
|
+
background-repeat: no-repeat;
|
|
21
|
+
background-position: center;
|
|
22
|
+
}
|
|
23
|
+
lib-survery-lib .survay-pagination nav ul.pagination li.page-item.active a {
|
|
24
|
+
border-radius: 8px;
|
|
25
|
+
background: var(--primary-100, #4C3D8F);
|
|
26
|
+
color: #fff;
|
|
27
|
+
}
|
|
28
|
+
lib-survery-lib .survay-pagination nav ul.pagination li.page-item:hover a {
|
|
29
|
+
border-radius: 8px;
|
|
30
|
+
background: var(--primary-100, #4C3D8F);
|
|
31
|
+
color: #fff;
|
|
32
|
+
}
|
|
33
|
+
lib-survery-lib .survay-pagination nav ul.pagination li.page-item a {
|
|
34
|
+
color: var(--dark-100, #363636);
|
|
35
|
+
/* Body/Bold */
|
|
36
|
+
font-size: 16px;
|
|
37
|
+
font-style: normal;
|
|
38
|
+
font-weight: 700;
|
|
39
|
+
line-height: 24px;
|
|
40
|
+
/* 150% */
|
|
41
|
+
display: flex;
|
|
42
|
+
min-width: 50px;
|
|
43
|
+
height: 50px;
|
|
44
|
+
padding: 20px;
|
|
45
|
+
justify-content: center;
|
|
46
|
+
align-items: center;
|
|
47
|
+
gap: 10px;
|
|
48
|
+
border-radius: 8px;
|
|
49
|
+
background: var(--secondary-20, #F4F5FE);
|
|
50
|
+
border: none;
|
|
51
|
+
}
|
|
52
|
+
lib-survery-lib .survey-page_submitted .invalid-question {
|
|
53
|
+
border: 2px solid red;
|
|
54
|
+
border-radius: 5px;
|
|
55
|
+
border-bottom: 2px solid red !important;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/*# sourceMappingURL=style.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../scss/style.scss"],"names":[],"mappings":"AAGY;EACI;EACA;;AAIQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAOJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAOJ;EACI;EACA;EACA;;AAKJ;EACI;EACA;EACA;;AAIR;EACI;AACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOpB;EACI;EACA;EACA","file":"style.css"}
|
package/esm2022/lib/components/question-boolean-template/question-boolean-template.component.mjs
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { QuestionTypeEnum } from 'projects/survery-lib/src/shared/enums/question-type.enum';
|
|
4
|
+
import { debounceTime, distinctUntilChanged } from 'rxjs';
|
|
5
|
+
import { v4 as guidGenerator } from 'uuid';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@ng-stack/forms";
|
|
8
|
+
import * as i2 from "../../services/shared-data.service";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
export class QuestionBooleanTemplateComponent {
|
|
11
|
+
get fCtrls() {
|
|
12
|
+
return this.rForm.controls;
|
|
13
|
+
}
|
|
14
|
+
get questionTypeEnum() {
|
|
15
|
+
return QuestionTypeEnum;
|
|
16
|
+
}
|
|
17
|
+
set setQuestion(value) {
|
|
18
|
+
this.surveyQuestion = value;
|
|
19
|
+
this.rForm.patchValue({
|
|
20
|
+
id: value.questionId,
|
|
21
|
+
name: value.questionName,
|
|
22
|
+
title: value.questionTitle,
|
|
23
|
+
typeId: value.questionTypeId,
|
|
24
|
+
description: value.questionDescription
|
|
25
|
+
});
|
|
26
|
+
if (value.isRequired == true) {
|
|
27
|
+
this.fCtrls.answer.addValidators([Validators.required]);
|
|
28
|
+
this.fCtrls.answer.updateValueAndValidity();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
constructor(_formBuilder, _sharedDataService) {
|
|
32
|
+
this._formBuilder = _formBuilder;
|
|
33
|
+
this._sharedDataService = _sharedDataService;
|
|
34
|
+
this.elemId = guidGenerator();
|
|
35
|
+
this.emitter = new EventEmitter();
|
|
36
|
+
this.rForm = this._formBuilder.group({
|
|
37
|
+
id: [null],
|
|
38
|
+
name: [null],
|
|
39
|
+
title: [null],
|
|
40
|
+
typeId: [null],
|
|
41
|
+
description: [null],
|
|
42
|
+
answer: [null]
|
|
43
|
+
});
|
|
44
|
+
this._sharedDataService.submitIdObsrv.pipe(debounceTime(500), distinctUntilChanged()).subscribe(() => {
|
|
45
|
+
const formValue = this.rForm.value;
|
|
46
|
+
this.emitter.emit({
|
|
47
|
+
QuestionId: formValue.id,
|
|
48
|
+
IsValid: this.fCtrls.answer.valid,
|
|
49
|
+
Answer: formValue.answer
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
ngOnInit() {
|
|
54
|
+
this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value => {
|
|
55
|
+
const formValue = this.rForm.value;
|
|
56
|
+
this.emitter.emit({
|
|
57
|
+
QuestionId: formValue.id,
|
|
58
|
+
IsValid: this.fCtrls.answer.valid,
|
|
59
|
+
Answer: value
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
onChangeAnswer(answer) {
|
|
64
|
+
this.fCtrls.answer.setValue(answer);
|
|
65
|
+
}
|
|
66
|
+
convertToFormControl(element) {
|
|
67
|
+
return element;
|
|
68
|
+
}
|
|
69
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionBooleanTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SharedDataService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionBooleanTemplateComponent, selector: "lib-question-boolean-template", inputs: { setQuestion: "setQuestion" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\" \n *ngFor=\"let item of surveyQuestion?.surveyAnswers;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item)\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" value=\"{{item.answerId}}\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.answerTitle}}</label>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
71
|
+
}
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionBooleanTemplateComponent, decorators: [{
|
|
73
|
+
type: Component,
|
|
74
|
+
args: [{ selector: 'lib-question-boolean-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\" \n *ngFor=\"let item of surveyQuestion?.surveyAnswers;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item)\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" value=\"{{item.answerId}}\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.answerTitle}}</label>\n </div>\n </div>\n</div>\n" }]
|
|
75
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SharedDataService }]; }, propDecorators: { emitter: [{
|
|
76
|
+
type: Output
|
|
77
|
+
}], setQuestion: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}] } });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlL3F1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUcsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFHNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUkxRCxPQUFPLEVBQUUsRUFBRSxJQUFJLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFPM0MsTUFBTSxPQUFPLGdDQUFnQztJQUszQyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFJRCxJQUFhLFdBQVcsQ0FBQyxLQUF3QjtRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUNwQixFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVU7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IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3VydmV5QW5zd2VyRHRvIH0gZnJvbSAncHJvamVjdHMvc3VydmVyeS1saWIvc3JjL3NoYXJlZC9kdG9zL3N1cnZleS1hbnN3ZXIuZHRvJztcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAncHJvamVjdHMvc3VydmVyeS1saWIvc3JjL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi5kdG8nO1xuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJ3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IFF1ZXN0aW9uUmFkaW9CdXR0b25UZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICdwcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJ3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTaGFyZWREYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NoYXJlZC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25Cb29sZWFuVGVtcGxhdGVGb3JtSW50ZXJmYWNlIH0gZnJvbSAncHJvamVjdHMvc3VydmVyeS1saWIvc3JjL3NoYXJlZC9mb3JtLWludGVyZmFjZXMvcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQG5nLXN0YWNrL2Zvcm1zJztcbmltcG9ydCB7IHY0IGFzIGd1aWRHZW5lcmF0b3IgfSBmcm9tICd1dWlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXF1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGVsZW1JZCA9IGd1aWRHZW5lcmF0b3IoKSBhcyBzdHJpbmc7XG4gIHN1cnZleVF1ZXN0aW9uOiBTdXJ2ZXlRdWVzdGlvbkR0bztcbiAgckZvcm06IEZvcm1Hcm91cDxRdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZUZvcm1JbnRlcmZhY2U+O1xuXG4gIGdldCBmQ3RybHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuckZvcm0uY29udHJvbHM7XG4gIH1cblxuICBnZXQgcXVlc3Rpb25UeXBlRW51bSgpIHtcbiAgICByZXR1cm4gUXVlc3Rpb25UeXBlRW51bTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBlbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxRdWVzdGlvbkFuc3dlck1vZGVsPigpO1xuXG4gIEBJbnB1dCgpIHNldCBzZXRRdWVzdGlvbih2YWx1ZTogU3VydmV5UXVlc3Rpb25EdG8pIHtcbiAgICB0aGlzLnN1cnZleVF1ZXN0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIGlkOiB2YWx1ZS5xdWVzdGlvbklkLFxuICAgICAgbmFtZTogdmFsdWUucXVlc3Rpb25OYW1lLFxuICAgICAgdGl0bGU6IHZhbHVlLnF1ZXN0aW9uVGl0bGUsXG4gICAgICB0eXBlSWQ6IHZhbHVlLnF1ZXN0aW9uVHlwZUlkLFxuICAgICAgZGVzY3JpcHRpb246IHZhbHVlLnF1ZXN0aW9uRGVzY3JpcHRpb25cbiAgICB9KTtcblxuICAgIGlmICh2YWx1ZS5pc1JlcXVpcmVkID09IHRydWUpIHtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciAsIHByaXZhdGUgX3NoYXJlZERhdGFTZXJ2aWNlOlNoYXJlZERhdGFTZXJ2aWNlKSB7XG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xuICAgICAgaWQ6IFtudWxsXSxcbiAgICAgIG5hbWU6IFtudWxsXSxcbiAgICAgIHRpdGxlOiBbbnVsbF0sXG4gICAgICB0eXBlSWQ6IFtudWxsXSxcbiAgICAgIGRlc2NyaXB0aW9uOiBbbnVsbF0sXG4gICAgICBhbnN3ZXI6IFtudWxsXVxuICAgIH0pO1xuXG4gICAgdGhpcy5fc2hhcmVkRGF0YVNlcnZpY2Uuc3VibWl0SWRPYnNydi5waXBlKGRlYm91bmNlVGltZSg1MDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcbiAgICAgIHRoaXMuZW1pdHRlci5lbWl0KHtcbiAgICAgICAgUXVlc3Rpb25JZDogZm9ybVZhbHVlLmlkLFxuICAgICAgICBJc1ZhbGlkOiB0aGlzLmZDdHJscy5hbnN3ZXIudmFsaWQsXG4gICAgICAgIEFuc3dlcjogZm9ybVZhbHVlLmFuc3dlclxuICAgICAgfSlcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZkN0cmxzLmFuc3dlci52YWx1ZUNoYW5nZXMucGlwZSgpLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSh2YWx1ZT0+e1xuICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLnJGb3JtLnZhbHVlO1xuICAgICB0aGlzLmVtaXR0ZXIuZW1pdCh7XG4gICAgICAgUXVlc3Rpb25JZDogZm9ybVZhbHVlLmlkLFxuICAgICAgIElzVmFsaWQ6IHRoaXMuZkN0cmxzLmFuc3dlci52YWxpZCxcbiAgICAgICBBbnN3ZXI6IHZhbHVlXG4gICAgIH0pXG4gICAgfSlcbiAgIH1cblxuICBvbkNoYW5nZUFuc3dlcihhbnN3ZXI6IFN1cnZleUFuc3dlckR0bykge1xuICAgIHRoaXMuZkN0cmxzLmFuc3dlci5zZXRWYWx1ZShhbnN3ZXIpO1xuICB9XG5cbiAgY29udmVydFRvRm9ybUNvbnRyb2woZWxlbWVudDogYW55KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgRm9ybUNvbnRyb2w7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJxdWFzdGlvblwiIFthdHRyLmlkXT1cIidxdWVzdGlvbl8nK2ZDdHJscy5pZC52YWx1ZVwiICBbbmdDbGFzc109XCJ7J2ludmFsaWQtcXVlc3Rpb24nOiBmQ3RybHMuYW5zd2VyLmludmFsaWR9XCI+XG4gICAgPGgzIGNsYXNzPVwicXVhc3Rpb24tdGl0bGUgXCI+XG4gICAgICAgIHt7ZkN0cmxzLnRpdGxlLnZhbHVlfX1cbiAgICA8L2gzPlxuICAgIDxkaXYgY2xhc3M9XCJyYWRpby1idXR0b24tcXVhc3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1yYWRpbyBmb3JtLWNoZWNrLWlubGluZVwiIFxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzdXJ2ZXlRdWVzdGlvbj8uc3VydmV5QW5zd2VycztsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCIgKGNoYW5nZSk9XCJvbkNoYW5nZUFuc3dlcihpdGVtKVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInt7ZWxlbUlkfX1fX3JhZGlvLWJ0bi1vcHRpb25cIiBpZD1cInt7ZWxlbUlkfX1fX3JhZGlvLWJ0bl97e2l9fVwiIHZhbHVlPVwie3tpdGVtLmFuc3dlcklkfX1cIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJ7e2VsZW1JZH19X19yYWRpby1idG5fe3tpfX1cIj57e2l0ZW0uYW5zd2VyVGl0bGV9fTwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
package/esm2022/lib/components/question-check-box-template/question-check-box-template.component.mjs
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { QuestionTypeEnum } from 'projects/survery-lib/src/shared/enums/question-type.enum';
|
|
4
|
+
import { debounceTime, distinctUntilChanged } from 'rxjs';
|
|
5
|
+
import { v4 as guidGenerator } from 'uuid';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@ng-stack/forms";
|
|
8
|
+
import * as i2 from "../../services/shared-data.service";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
export class QuestionCheckBoxTemplateComponent {
|
|
11
|
+
get fCtrls() {
|
|
12
|
+
return this.rForm.controls;
|
|
13
|
+
}
|
|
14
|
+
get questionTypeEnum() {
|
|
15
|
+
return QuestionTypeEnum;
|
|
16
|
+
}
|
|
17
|
+
set setQuestion(value) {
|
|
18
|
+
this.surveyQuestion = value;
|
|
19
|
+
this.rForm.patchValue({
|
|
20
|
+
id: value.questionId,
|
|
21
|
+
name: value.questionName,
|
|
22
|
+
title: value.questionTitle,
|
|
23
|
+
typeId: value.questionTypeId,
|
|
24
|
+
description: value.questionDescription
|
|
25
|
+
});
|
|
26
|
+
if (value.isRequired == true) {
|
|
27
|
+
this.fCtrls.answer.addValidators([Validators.required]);
|
|
28
|
+
this.fCtrls.answer.updateValueAndValidity();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
constructor(_formBuilder, _sharedDataService) {
|
|
32
|
+
this._formBuilder = _formBuilder;
|
|
33
|
+
this._sharedDataService = _sharedDataService;
|
|
34
|
+
this.elemId = guidGenerator();
|
|
35
|
+
this.emitter = new EventEmitter();
|
|
36
|
+
this.rForm = this._formBuilder.group({
|
|
37
|
+
id: [null],
|
|
38
|
+
name: [null],
|
|
39
|
+
title: [null],
|
|
40
|
+
typeId: [null],
|
|
41
|
+
description: [null],
|
|
42
|
+
answer: [null]
|
|
43
|
+
});
|
|
44
|
+
this._sharedDataService.submitIdObsrv.pipe(debounceTime(500), distinctUntilChanged()).subscribe(() => {
|
|
45
|
+
const formValue = this.rForm.value;
|
|
46
|
+
this.emitter.emit({
|
|
47
|
+
QuestionId: formValue.id,
|
|
48
|
+
IsValid: this.fCtrls.answer.valid,
|
|
49
|
+
Answer: formValue.answer
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
ngOnInit() {
|
|
54
|
+
this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value => {
|
|
55
|
+
const formValue = this.rForm.value;
|
|
56
|
+
this.emitter.emit({
|
|
57
|
+
QuestionId: formValue.id,
|
|
58
|
+
IsValid: this.fCtrls.answer.valid,
|
|
59
|
+
Answer: value
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
onChangeAnswer(item, event) {
|
|
64
|
+
var answerArr = this.fCtrls.answer.value || [];
|
|
65
|
+
if (event.target.checked == true) {
|
|
66
|
+
answerArr.push(item.answerId);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
answerArr = answerArr.filter(x => x != item.answerId);
|
|
70
|
+
}
|
|
71
|
+
answerArr = answerArr.length == 0 ? null : answerArr;
|
|
72
|
+
this.fCtrls.answer.setValue(answerArr);
|
|
73
|
+
}
|
|
74
|
+
convertToFormControl(element) {
|
|
75
|
+
return element;
|
|
76
|
+
}
|
|
77
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionCheckBoxTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SharedDataService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
78
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionCheckBoxTemplateComponent, selector: "lib-question-check-box-template", inputs: { setQuestion: "setQuestion" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n\n <div class=\"checkbox-button-quastion\">\n <div class=\"form-check check-box-form-check\" *ngFor=\"let item of surveyQuestion?.surveyAnswers;let i = index\">\n <input type=\"checkbox\" class=\"form-check-input\" id=\"{{elemId}}__checkbox_{{i}}\" (change)=\"onChangeAnswer(item,$event)\">\n <label class=\"form-check-label \" for=\"{{elemId}}__checkbox_{{i}}\">{{item.answerTitle}}</label>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
79
|
+
}
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionCheckBoxTemplateComponent, decorators: [{
|
|
81
|
+
type: Component,
|
|
82
|
+
args: [{ selector: 'lib-question-check-box-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n\n <div class=\"checkbox-button-quastion\">\n <div class=\"form-check check-box-form-check\" *ngFor=\"let item of surveyQuestion?.surveyAnswers;let i = index\">\n <input type=\"checkbox\" class=\"form-check-input\" id=\"{{elemId}}__checkbox_{{i}}\" (change)=\"onChangeAnswer(item,$event)\">\n <label class=\"form-check-label \" for=\"{{elemId}}__checkbox_{{i}}\">{{item.answerTitle}}</label>\n </div>\n </div>\n</div>\n" }]
|
|
83
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SharedDataService }]; }, propDecorators: { emitter: [{
|
|
84
|
+
type: Output
|
|
85
|
+
}], setQuestion: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}] } });
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tY2hlY2stYm94LXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUvcXVlc3Rpb24tY2hlY2stYm94LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUvcXVlc3Rpb24tY2hlY2stYm94LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBRzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLEVBQUUsSUFBSSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBUzNDLE1BQU0sT0FBTyxpQ0FBaUM7SUFLNUMsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBSUQsSUFBYSxXQUFXLENBQUMsS0FBd0I7UUFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDcEIsRUFBRSxFQUFFLEtBQUss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LENBQUMsQ0FBQztTQUN2RDtRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxTQUFTLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUFZO1FBQy9CLE9BQU8sT0FBc0IsQ0FBQztJQUNoQyxDQUFDOzhHQTdFVSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyxnSkNsQjlDLCtwQkFZQTs7MkZETWEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNFLGlDQUFpQztrSUFpQmpDLE9BQU87c0JBQWhCLE1BQU07Z0JBRU0sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0BuZy1zdGFjay9mb3Jtcyc7XG5pbXBvcnQgeyBTdXJ2ZXlBbnN3ZXJEdG8gfSBmcm9tICdwcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvc2hhcmVkL2R0b3Mvc3VydmV5LWFuc3dlci5kdG8nO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICdwcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSAncHJvamVjdHMvc3VydmVyeS1saWIvc3JjL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgUXVlc3Rpb25DaGVja0JveFRlbXBsYXRlRm9ybUludGVyZmFjZSB9IGZyb20gJ3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XG5pbXBvcnQgeyBRdWVzdGlvblJhZGlvQnV0dG9uVGVtcGxhdGVGb3JtSW50ZXJmYWNlIH0gZnJvbSAncHJvamVjdHMvc3VydmVyeS1saWIvc3JjL3NoYXJlZC9mb3JtLWludGVyZmFjZXMvcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmZvcm0taW50ZXJmYWNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIGd1aWRHZW5lcmF0b3IgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFNoYXJlZERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2hhcmVkLWRhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAncHJvamVjdHMvc3VydmVyeS1saWIvc3JjL3NoYXJlZC9tb2RlbHMvcXVlc3Rpb24tYW5zd2VyLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXF1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkNoZWNrQm94VGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBlbGVtSWQgPSBndWlkR2VuZXJhdG9yKCkgYXMgc3RyaW5nO1xuICBzdXJ2ZXlRdWVzdGlvbjogU3VydmV5UXVlc3Rpb25EdG87XG4gIHJGb3JtOiBGb3JtR3JvdXA8UXVlc3Rpb25DaGVja0JveFRlbXBsYXRlRm9ybUludGVyZmFjZT47XG5cbiAgZ2V0IGZDdHJscygpIHtcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcbiAgfVxuXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xuICB9XG5cbiAgQE91dHB1dCgpIGVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFF1ZXN0aW9uQW5zd2VyTW9kZWw+KCk7XG5cbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBTdXJ2ZXlRdWVzdGlvbkR0bykge1xuICAgIHRoaXMuc3VydmV5UXVlc3Rpb24gPSB2YWx1ZTtcbiAgICB0aGlzLnJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgaWQ6IHZhbHVlLnF1ZXN0aW9uSWQsXG4gICAgICBuYW1lOiB2YWx1ZS5xdWVzdGlvbk5hbWUsXG4gICAgICB0aXRsZTogdmFsdWUucXVlc3Rpb25UaXRsZSxcbiAgICAgIHR5cGVJZDogdmFsdWUucXVlc3Rpb25UeXBlSWQsXG4gICAgICBkZXNjcmlwdGlvbjogdmFsdWUucXVlc3Rpb25EZXNjcmlwdGlvblxuICAgIH0pO1xuXG4gICAgaWYgKHZhbHVlLmlzUmVxdWlyZWQgPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyICwgcHJpdmF0ZSBfc2hhcmVkRGF0YVNlcnZpY2U6U2hhcmVkRGF0YVNlcnZpY2UpIHtcbiAgICB0aGlzLnJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25DaGVja0JveFRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xuICAgICAgaWQ6IFtudWxsXSxcbiAgICAgIG5hbWU6IFtudWxsXSxcbiAgICAgIHRpdGxlOiBbbnVsbF0sXG4gICAgICB0eXBlSWQ6IFtudWxsXSxcbiAgICAgIGRlc2NyaXB0aW9uOiBbbnVsbF0sXG4gICAgICBhbnN3ZXI6IFtudWxsXVxuICAgIH0pO1xuXG4gICAgdGhpcy5fc2hhcmVkRGF0YVNlcnZpY2Uuc3VibWl0SWRPYnNydi5waXBlKGRlYm91bmNlVGltZSg1MDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcbiAgICAgIHRoaXMuZW1pdHRlci5lbWl0KHtcbiAgICAgICAgUXVlc3Rpb25JZDogZm9ybVZhbHVlLmlkLFxuICAgICAgICBJc1ZhbGlkOiB0aGlzLmZDdHJscy5hbnN3ZXIudmFsaWQsXG4gICAgICAgIEFuc3dlcjogZm9ybVZhbHVlLmFuc3dlclxuICAgICAgfSlcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgdGhpcy5mQ3RybHMuYW5zd2VyLnZhbHVlQ2hhbmdlcy5waXBlKCkucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKHZhbHVlPT57XG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcbiAgICB0aGlzLmVtaXR0ZXIuZW1pdCh7XG4gICAgICBRdWVzdGlvbklkOiBmb3JtVmFsdWUuaWQsXG4gICAgICBJc1ZhbGlkOiB0aGlzLmZDdHJscy5hbnN3ZXIudmFsaWQsXG4gICAgICBBbnN3ZXI6IHZhbHVlXG4gICAgfSlcbiAgIH0pXG4gIH1cblxuICBvbkNoYW5nZUFuc3dlcihpdGVtOiBTdXJ2ZXlBbnN3ZXJEdG8sIGV2ZW50OiBFdmVudCkge1xuICAgIHZhciBhbnN3ZXJBcnI6IG51bWJlcltdID0gdGhpcy5mQ3RybHMuYW5zd2VyLnZhbHVlIHx8IFtdO1xuXG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgYW55KS5jaGVja2VkID09IHRydWUpIHtcbiAgICAgIGFuc3dlckFyci5wdXNoKGl0ZW0uYW5zd2VySWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhbnN3ZXJBcnIgPSBhbnN3ZXJBcnIuZmlsdGVyKHggPT4geCAhPSBpdGVtLmFuc3dlcklkKTtcbiAgICB9XG5cbiAgICBhbnN3ZXJBcnIgPSBhbnN3ZXJBcnIubGVuZ3RoID09IDAgPyBudWxsIDphbnN3ZXJBcnI7XG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKGFuc3dlckFycik7XG4gIH1cblxuICBjb252ZXJ0VG9Gb3JtQ29udHJvbChlbGVtZW50OiBhbnkpIHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBGb3JtQ29udHJvbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInF1YXN0aW9uXCIgW2F0dHIuaWRdPVwiJ3F1ZXN0aW9uXycrZkN0cmxzLmlkLnZhbHVlXCIgIFtuZ0NsYXNzXT1cInsnaW52YWxpZC1xdWVzdGlvbic6IGZDdHJscy5hbnN3ZXIuaW52YWxpZH1cIj5cbiAgICA8aDMgY2xhc3M9XCJxdWFzdGlvbi10aXRsZSBcIj5cbiAgICAgICAge3tmQ3RybHMudGl0bGUudmFsdWV9fVxuICAgIDwvaDM+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3gtYnV0dG9uLXF1YXN0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGNoZWNrLWJveC1mb3JtLWNoZWNrXCIgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN1cnZleVF1ZXN0aW9uPy5zdXJ2ZXlBbnN3ZXJzO2xldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiBpZD1cInt7ZWxlbUlkfX1fX2NoZWNrYm94X3t7aX19XCIgKGNoYW5nZSk9XCJvbkNoYW5nZUFuc3dlcihpdGVtLCRldmVudClcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgIFwiIGZvcj1cInt7ZWxlbUlkfX1fX2NoZWNrYm94X3t7aX19XCI+e3tpdGVtLmFuc3dlclRpdGxlfX08L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
package/esm2022/lib/components/question-dropdown-template/question-dropdown-template.component.mjs
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { QuestionTypeEnum } from 'projects/survery-lib/src/shared/enums/question-type.enum';
|
|
4
|
+
import { debounceTime, distinctUntilChanged } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ng-stack/forms";
|
|
7
|
+
import * as i2 from "../../services/shared-data.service";
|
|
8
|
+
import * as i3 from "@angular/common";
|
|
9
|
+
import * as i4 from "@angular/forms";
|
|
10
|
+
export class QuestionDropdownTemplateComponent {
|
|
11
|
+
get fCtrls() {
|
|
12
|
+
return this.rForm.controls;
|
|
13
|
+
}
|
|
14
|
+
get questionTypeEnum() {
|
|
15
|
+
return QuestionTypeEnum;
|
|
16
|
+
}
|
|
17
|
+
set setQuestion(value) {
|
|
18
|
+
this.surveyQuestion = value;
|
|
19
|
+
this.rForm.patchValue({
|
|
20
|
+
id: value.questionId,
|
|
21
|
+
name: value.questionName,
|
|
22
|
+
title: value.questionTitle,
|
|
23
|
+
typeId: value.questionTypeId,
|
|
24
|
+
description: value.questionDescription
|
|
25
|
+
});
|
|
26
|
+
if (value.isRequired == true) {
|
|
27
|
+
this.fCtrls.answer.addValidators([Validators.required]);
|
|
28
|
+
this.fCtrls.answer.updateValueAndValidity();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
constructor(_formBuilder, _sharedDataService) {
|
|
32
|
+
this._formBuilder = _formBuilder;
|
|
33
|
+
this._sharedDataService = _sharedDataService;
|
|
34
|
+
this.emitter = new EventEmitter();
|
|
35
|
+
this.rForm = this._formBuilder.group({
|
|
36
|
+
id: [null],
|
|
37
|
+
name: [null],
|
|
38
|
+
title: [null],
|
|
39
|
+
typeId: [null],
|
|
40
|
+
description: [null],
|
|
41
|
+
answer: [null]
|
|
42
|
+
});
|
|
43
|
+
this._sharedDataService.submitIdObsrv.pipe(debounceTime(500), distinctUntilChanged()).subscribe(() => {
|
|
44
|
+
const formValue = this.rForm.value;
|
|
45
|
+
this.emitter.emit({
|
|
46
|
+
QuestionId: formValue.id,
|
|
47
|
+
IsValid: this.fCtrls.answer.valid,
|
|
48
|
+
Answer: formValue.answer
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
ngOnInit() {
|
|
53
|
+
this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value => {
|
|
54
|
+
const formValue = this.rForm.value;
|
|
55
|
+
this.emitter.emit({
|
|
56
|
+
QuestionId: formValue.id,
|
|
57
|
+
IsValid: this.fCtrls.answer.valid,
|
|
58
|
+
Answer: value
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
convertToFormControl(element) {
|
|
63
|
+
return element;
|
|
64
|
+
}
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionDropdownTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SharedDataService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionDropdownTemplateComponent, selector: "lib-question-dropdown-template", inputs: { setQuestion: "setQuestion" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"text-quastion\">\n <select class=\"form-control\" [formControl]=\"convertToFormControl(fCtrls.answer)\">\n <option *ngFor=\"let item of surveyQuestion?.surveyAnswers\" [value]=\"item.answerId\">{{item.answerTitle}}</option>\n </select>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
|
|
67
|
+
}
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionDropdownTemplateComponent, decorators: [{
|
|
69
|
+
type: Component,
|
|
70
|
+
args: [{ selector: 'lib-question-dropdown-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"text-quastion\">\n <select class=\"form-control\" [formControl]=\"convertToFormControl(fCtrls.answer)\">\n <option *ngFor=\"let item of surveyQuestion?.surveyAnswers\" [value]=\"item.answerId\">{{item.answerTitle}}</option>\n </select>\n </div>\n</div>\n" }]
|
|
71
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SharedDataService }]; }, propDecorators: { emitter: [{
|
|
72
|
+
type: Output
|
|
73
|
+
}], setQuestion: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUc1RixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFTMUQsTUFBTSxPQUFPLGlDQUFpQztJQUk1QyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFJRCxJQUFhLFdBQVcsQ0FBQyxLQUF3QjtRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUNwQixFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDcEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ3hCLEtBQUssRUFBRSxLQUFLLENBQUMsYUFBYTtZQUMxQixNQUFNLEVBQUUsS0FBSyxDQUFDLGNBQWM7WUFDNUIsV0FBVyxFQUFFLEtBQUssQ0FBQyxtQkFBbUI7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRTtZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVELFlBQW9CLFlBQXlCLEVBQVUsa0JBQW9DO1FBQXZFLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFrQjtRQWxCakYsWUFBTyxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBbUIxRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUF3QztZQUMxRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDVixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDWixLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDYixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDZCxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDbkIsTUFBTSxFQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ25HLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNoQixVQUFVLEVBQUUsU0FBUyxDQUFDLEVBQUU7Z0JBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLO2dCQUNqQyxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07YUFDekIsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFBLEVBQUU7WUFDdkcsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLFVBQVUsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUs7Z0JBQ2pDLE1BQU0sRUFBRSxLQUFLO2FBQ2QsQ0FBQyxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSCxDQUFDO0lBRUYsb0JBQW9CLENBQUMsT0FBYTtRQUNoQyxPQUFPLE9BQXNCLENBQUM7SUFDaEMsQ0FBQzs4R0EvRFUsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsK0lDaEI5QywyZkFVQTs7MkZETWEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNFLGdDQUFnQztrSUFnQmhDLE9BQU87c0JBQWhCLE1BQU07Z0JBRU0sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0BuZy1zdGFjay9mb3Jtcyc7XG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkR0byB9IGZyb20gJ3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICdwcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBRdWVzdGlvbkRyb3Bkb3duVGVtcGxhdGVGb3JtSW50ZXJmYWNlIH0gZnJvbSAncHJvamVjdHMvc3VydmVyeS1saWIvc3JjL3NoYXJlZC9mb3JtLWludGVyZmFjZXMvcXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25SYWRpb0J1dHRvblRlbXBsYXRlRm9ybUludGVyZmFjZSB9IGZyb20gJ3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTaGFyZWREYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NoYXJlZC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJ3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Ecm9wZG93blRlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc3VydmV5UXVlc3Rpb246U3VydmV5UXVlc3Rpb25EdG87XG4gIHJGb3JtOiBGb3JtR3JvdXA8UXVlc3Rpb25Ecm9wZG93blRlbXBsYXRlRm9ybUludGVyZmFjZT47XG5cbiAgZ2V0IGZDdHJscygpIHtcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcbiAgfVxuXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xuICB9XG5cbiAgQE91dHB1dCgpIGVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFF1ZXN0aW9uQW5zd2VyTW9kZWw+KCk7XG5cbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBTdXJ2ZXlRdWVzdGlvbkR0bykge1xuICAgIHRoaXMuc3VydmV5UXVlc3Rpb24gPSB2YWx1ZTtcbiAgICB0aGlzLnJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgaWQ6IHZhbHVlLnF1ZXN0aW9uSWQsXG4gICAgICBuYW1lOiB2YWx1ZS5xdWVzdGlvbk5hbWUsXG4gICAgICB0aXRsZTogdmFsdWUucXVlc3Rpb25UaXRsZSxcbiAgICAgIHR5cGVJZDogdmFsdWUucXVlc3Rpb25UeXBlSWQsXG4gICAgICBkZXNjcmlwdGlvbjogdmFsdWUucXVlc3Rpb25EZXNjcmlwdGlvblxuICAgIH0pO1xuXG4gICAgaWYgKHZhbHVlLmlzUmVxdWlyZWQgPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIF9zaGFyZWREYXRhU2VydmljZTpTaGFyZWREYXRhU2VydmljZSkge1xuICAgIHRoaXMuckZvcm0gPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxRdWVzdGlvbkRyb3Bkb3duVGVtcGxhdGVGb3JtSW50ZXJmYWNlPih7XG4gICAgICBpZDogW251bGxdLFxuICAgICAgbmFtZTogW251bGxdLFxuICAgICAgdGl0bGU6IFtudWxsXSxcbiAgICAgIHR5cGVJZDogW251bGxdLFxuICAgICAgZGVzY3JpcHRpb246IFtudWxsXSxcbiAgICAgIGFuc3dlcjpbbnVsbF1cbiAgICB9KTtcblxuICAgIHRoaXMuX3NoYXJlZERhdGFTZXJ2aWNlLnN1Ym1pdElkT2JzcnYucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XG4gICAgICB0aGlzLmVtaXR0ZXIuZW1pdCh7XG4gICAgICAgIFF1ZXN0aW9uSWQ6IGZvcm1WYWx1ZS5pZCxcbiAgICAgICAgSXNWYWxpZDogdGhpcy5mQ3RybHMuYW5zd2VyLnZhbGlkLFxuICAgICAgICBBbnN3ZXI6IGZvcm1WYWx1ZS5hbnN3ZXJcbiAgICAgIH0pXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZDdHJscy5hbnN3ZXIudmFsdWVDaGFuZ2VzLnBpcGUoKS5waXBlKGRlYm91bmNlVGltZSg1MDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUodmFsdWU9PntcbiAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcbiAgICAgdGhpcy5lbWl0dGVyLmVtaXQoe1xuICAgICAgIFF1ZXN0aW9uSWQ6IGZvcm1WYWx1ZS5pZCxcbiAgICAgICBJc1ZhbGlkOiB0aGlzLmZDdHJscy5hbnN3ZXIudmFsaWQsXG4gICAgICAgQW5zd2VyOiB2YWx1ZVxuICAgICB9KVxuICAgIH0pXG4gICB9XG5cbiAgY29udmVydFRvRm9ybUNvbnRyb2woZWxlbWVudDogIGFueSl7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgRm9ybUNvbnRyb2w7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJxdWFzdGlvblwiIFthdHRyLmlkXT1cIidxdWVzdGlvbl8nK2ZDdHJscy5pZC52YWx1ZVwiICBbbmdDbGFzc109XCJ7J2ludmFsaWQtcXVlc3Rpb24nOiBmQ3RybHMuYW5zd2VyLmludmFsaWR9XCI+XG4gICAgPGgzIGNsYXNzPVwicXVhc3Rpb24tdGl0bGUgXCI+XG4gICAgICAgIHt7ZkN0cmxzLnRpdGxlLnZhbHVlfX1cbiAgICA8L2gzPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXF1YXN0aW9uXCI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbZm9ybUNvbnRyb2xdPVwiY29udmVydFRvRm9ybUNvbnRyb2woZkN0cmxzLmFuc3dlcilcIj5cbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3VydmV5UXVlc3Rpb24/LnN1cnZleUFuc3dlcnNcIiBbdmFsdWVdPVwiaXRlbS5hbnN3ZXJJZFwiPnt7aXRlbS5hbnN3ZXJUaXRsZX19PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
package/esm2022/lib/components/question-matrix-template/question-matrix-template.component.mjs
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { QuestionTypeEnum } from 'projects/survery-lib/src/shared/enums/question-type.enum';
|
|
4
|
+
import { v4 as guidGenerator } from 'uuid';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ng-stack/forms";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "@angular/forms";
|
|
9
|
+
export class QuestionMatrixTemplateComponent {
|
|
10
|
+
get fCtrls() {
|
|
11
|
+
return this.rForm.controls;
|
|
12
|
+
}
|
|
13
|
+
get questionTypeEnum() {
|
|
14
|
+
return QuestionTypeEnum;
|
|
15
|
+
}
|
|
16
|
+
set setQuestion(value) {
|
|
17
|
+
this.surveyQuestion = value;
|
|
18
|
+
this.rForm.patchValue({
|
|
19
|
+
id: value.questionId,
|
|
20
|
+
typeId: value.questionTypeId
|
|
21
|
+
});
|
|
22
|
+
value.surveySubQuestions.forEach(x => {
|
|
23
|
+
var group = this._formBuilder.group({
|
|
24
|
+
subQuestionId: [x.questionId],
|
|
25
|
+
questionTitle: [x.questionTitle],
|
|
26
|
+
answer: [null]
|
|
27
|
+
});
|
|
28
|
+
if (value.isRequired == true) {
|
|
29
|
+
group.controls.answer.addValidators([Validators.required]);
|
|
30
|
+
group.controls.answer.updateValueAndValidity();
|
|
31
|
+
}
|
|
32
|
+
this.fCtrls.subQuestionArray.push(group);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
constructor(_formBuilder) {
|
|
36
|
+
this._formBuilder = _formBuilder;
|
|
37
|
+
this.elemId = guidGenerator();
|
|
38
|
+
this.emitter = new EventEmitter();
|
|
39
|
+
this.rForm = this._formBuilder.group({
|
|
40
|
+
id: [null],
|
|
41
|
+
typeId: [null],
|
|
42
|
+
subQuestionArray: this._formBuilder.array([])
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
onChangeAnswer(question, answer) {
|
|
46
|
+
const index = this.fCtrls.subQuestionArray.value.findIndex(x => x.subQuestionId == question.subQuestionId);
|
|
47
|
+
this.fCtrls.subQuestionArray.controls[index].controls.answer.setValue(answer.answerId);
|
|
48
|
+
var model = this.fCtrls.subQuestionArray.value.map(x => {
|
|
49
|
+
return { QuestionId: x.subQuestionId,
|
|
50
|
+
Answer: x.answer,
|
|
51
|
+
IsValid: this.fCtrls.subQuestionArray.controls[index].controls.answer.valid };
|
|
52
|
+
});
|
|
53
|
+
this.emitter.emit(model);
|
|
54
|
+
}
|
|
55
|
+
convertToFormControl(element) {
|
|
56
|
+
return element;
|
|
57
|
+
}
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionMatrixTemplateComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionMatrixTemplateComponent, selector: "lib-question-matrix-template", inputs: { setQuestion: "setQuestion" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" style=\" border-collapse: collapse;\">\n <h3 class=\"quastion-title \">\n {{surveyQuestion?.questionTitle}}\n </h3>\n <div class=\"matrix-question\" [formGroup]=\"rForm\">\n <div class=\"matrix-table\" formArrayName=\"subQuestionArray\">\n <div class=\"matrix-head-row\">\n <div class=\"matrix-col\">\n </div>\n <div class=\"matrix-col\" *ngFor=\"let answers of surveyQuestion?.surveyAnswers\">\n {{answers.answerTitle}}\n </div>\n </div>\n\n <div class=\"matrix-row\"\n *ngFor=\"let questionGroup of fCtrls.subQuestionArray.controls ;let subQuestionIndex = index\"\n [ngClass]=\"{'invalid-question': questionGroup.controls.answer.invalid}\">\n <div class=\"matrix-col matrix-sub-quastion\">\n {{questionGroup.value.questionTitle}}\n </div>\n <div class=\"matrix-col\" *ngFor=\"let answer of surveyQuestion?.surveyAnswers;let answerIndex = index\">\n <div class=\"form-check form-check-radio form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" name=\"{{elemId}}__radio-btn-option_{{subQuestionIndex}}\"\n id=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\" (change)=\"onChangeAnswer(questionGroup.value ,answer)\"\n value=\"{{answer.answerId}}\">\n <label class=\"form-check-label d-md-inline d-lg-none\"\n for=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\"> {{answer.answerTitle}}</label>\n </div>\n </div>\n </div>\n\n </div>\n\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }] }); }
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionMatrixTemplateComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'lib-question-matrix-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" style=\" border-collapse: collapse;\">\n <h3 class=\"quastion-title \">\n {{surveyQuestion?.questionTitle}}\n </h3>\n <div class=\"matrix-question\" [formGroup]=\"rForm\">\n <div class=\"matrix-table\" formArrayName=\"subQuestionArray\">\n <div class=\"matrix-head-row\">\n <div class=\"matrix-col\">\n </div>\n <div class=\"matrix-col\" *ngFor=\"let answers of surveyQuestion?.surveyAnswers\">\n {{answers.answerTitle}}\n </div>\n </div>\n\n <div class=\"matrix-row\"\n *ngFor=\"let questionGroup of fCtrls.subQuestionArray.controls ;let subQuestionIndex = index\"\n [ngClass]=\"{'invalid-question': questionGroup.controls.answer.invalid}\">\n <div class=\"matrix-col matrix-sub-quastion\">\n {{questionGroup.value.questionTitle}}\n </div>\n <div class=\"matrix-col\" *ngFor=\"let answer of surveyQuestion?.surveyAnswers;let answerIndex = index\">\n <div class=\"form-check form-check-radio form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" name=\"{{elemId}}__radio-btn-option_{{subQuestionIndex}}\"\n id=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\" (change)=\"onChangeAnswer(questionGroup.value ,answer)\"\n value=\"{{answer.answerId}}\">\n <label class=\"form-check-label d-md-inline d-lg-none\"\n for=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\"> {{answer.answerTitle}}</label>\n </div>\n </div>\n </div>\n\n </div>\n\n </div>\n</div>" }]
|
|
64
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { emitter: [{
|
|
65
|
+
type: Output
|
|
66
|
+
}], setQuestion: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}] } });
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBRzVGLE9BQU8sRUFBRSxFQUFFLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQU8zQyxNQUFNLE9BQU8sK0JBQStCO0lBSzFDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUlELElBQWEsV0FBVyxDQUFDLEtBQXdCO1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQ3BCLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUNwQixNQUFNLEVBQUUsS0FBSyxDQUFDLGNBQWM7U0FDN0IsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBd0Q7Z0JBQ3pGLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7Z0JBQzdCLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7Z0JBQ2hDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQzthQUNmLENBQUMsQ0FBQztZQUVILElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJLEVBQUU7Z0JBQzVCLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUMzRCxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2FBQ2hEO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsWUFBb0IsWUFBeUI7UUFBekIsaUJBQVksR0FBWixZQUFZLENBQWE7UUFyQzdDLFdBQU0sR0FBRyxhQUFhLEVBQVksQ0FBQztRQVl6QixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUEwQjVELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQXNDO1lBQ3hFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQztZQUNWLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztZQUNkLGdCQUFnQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUF3RCxFQUFFLENBQUM7U0FDckcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUErRCxFQUFFLE1BQXVCO1FBQ3JHLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV2RixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsYUFBYTtnQkFDakMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNO2dCQUNoQixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQXlCLENBQUM7UUFDMUcsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsT0FBWTtRQUMvQixPQUFPLE9BQXNCLENBQUM7SUFDaEMsQ0FBQzs4R0E1RFUsK0JBQStCO2tHQUEvQiwrQkFBK0IsNklDakI1Qyxnb0RBa0NNOzsyRkRqQk8sK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLDhCQUE4QjtrR0FpQjlCLE9BQU87c0JBQWhCLE1BQU07Z0JBRU0sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAbmctc3RhY2svZm9ybXMnO1xuaW1wb3J0IHsgU3VydmV5QW5zd2VyRHRvIH0gZnJvbSAncHJvamVjdHMvc3VydmVyeS1saWIvc3JjL3NoYXJlZC9kdG9zL3N1cnZleS1hbnN3ZXIuZHRvJztcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uR3JvdXBEdG8gfSBmcm9tICdwcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLWdyb3VwLmR0byc7XG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkR0byB9IGZyb20gJ3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcbmltcG9ydCB7IFN1cnZleVN1YlF1ZXN0aW9uRHRvIH0gZnJvbSAncHJvamVjdHMvc3VydmVyeS1saWIvc3JjL3NoYXJlZC9kdG9zL3N1cnZleS1zdWItcXVlc3Rpb24uZHRvJztcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICdwcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZSwgU3ViUXVlc3Rpb25DaGlsZE9mUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICdwcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJ3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XG5pbXBvcnQgeyB2NCBhcyBndWlkR2VuZXJhdG9yIH0gZnJvbSAndXVpZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUNvbXBvbmVudCB7XG4gIGVsZW1JZCA9IGd1aWRHZW5lcmF0b3IoKSBhcyBzdHJpbmc7XG4gIHN1cnZleVF1ZXN0aW9uOiBTdXJ2ZXlRdWVzdGlvbkR0bztcbiAgckZvcm06IEZvcm1Hcm91cDxRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZT47XG5cbiAgZ2V0IGZDdHJscygpIHtcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcbiAgfVxuXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xuICB9XG5cbiAgQE91dHB1dCgpIGVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFF1ZXN0aW9uQW5zd2VyTW9kZWxbXT4oKTtcblxuICBASW5wdXQoKSBzZXQgc2V0UXVlc3Rpb24odmFsdWU6IFN1cnZleVF1ZXN0aW9uRHRvKSB7XG4gICAgdGhpcy5zdXJ2ZXlRdWVzdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBpZDogdmFsdWUucXVlc3Rpb25JZCxcbiAgICAgIHR5cGVJZDogdmFsdWUucXVlc3Rpb25UeXBlSWRcbiAgICB9KTtcblxuICAgIHZhbHVlLnN1cnZleVN1YlF1ZXN0aW9ucy5mb3JFYWNoKHggPT4ge1xuICAgICAgdmFyIGdyb3VwID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8U3ViUXVlc3Rpb25DaGlsZE9mUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgc3ViUXVlc3Rpb25JZDogW3gucXVlc3Rpb25JZF0sXG4gICAgICAgIHF1ZXN0aW9uVGl0bGU6IFt4LnF1ZXN0aW9uVGl0bGVdLFxuICAgICAgICBhbnN3ZXI6IFtudWxsXVxuICAgICAgfSk7XG5cbiAgICAgIGlmICh2YWx1ZS5pc1JlcXVpcmVkID09IHRydWUpIHtcbiAgICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5mQ3RybHMuc3ViUXVlc3Rpb25BcnJheS5wdXNoKGdyb3VwKTtcbiAgICB9KVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uTWF0cml4VGVtcGxhdGVGb3JtSW50ZXJmYWNlPih7XG4gICAgICBpZDogW251bGxdLFxuICAgICAgdHlwZUlkOiBbbnVsbF0sXG4gICAgICBzdWJRdWVzdGlvbkFycmF5OiB0aGlzLl9mb3JtQnVpbGRlci5hcnJheTxTdWJRdWVzdGlvbkNoaWxkT2ZRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZT4oW10pXG4gICAgfSk7XG4gIH1cblxuICBvbkNoYW5nZUFuc3dlcihxdWVzdGlvbjogU3ViUXVlc3Rpb25DaGlsZE9mUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2UsIGFuc3dlcjogU3VydmV5QW5zd2VyRHRvKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZDdHJscy5zdWJRdWVzdGlvbkFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHguc3ViUXVlc3Rpb25JZCA9PSBxdWVzdGlvbi5zdWJRdWVzdGlvbklkKTtcbiAgICB0aGlzLmZDdHJscy5zdWJRdWVzdGlvbkFycmF5LmNvbnRyb2xzW2luZGV4XS5jb250cm9scy5hbnN3ZXIuc2V0VmFsdWUoYW5zd2VyLmFuc3dlcklkKTtcblxuICAgIHZhciBtb2RlbCA9IHRoaXMuZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkudmFsdWUubWFwKHggPT4ge1xuICAgICAgcmV0dXJuIHsgUXVlc3Rpb25JZDogeC5zdWJRdWVzdGlvbklkLFxuICAgICAgICAgQW5zd2VyOiB4LmFuc3dlciwgXG4gICAgICAgICBJc1ZhbGlkOiB0aGlzLmZDdHJscy5zdWJRdWVzdGlvbkFycmF5LmNvbnRyb2xzW2luZGV4XS5jb250cm9scy5hbnN3ZXIudmFsaWQgfSBhcyBRdWVzdGlvbkFuc3dlck1vZGVsO1xuICAgIH0pO1xuICAgdGhpcy5lbWl0dGVyLmVtaXQobW9kZWwpO1xuICB9XG5cbiAgY29udmVydFRvRm9ybUNvbnRyb2woZWxlbWVudDogYW55KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgRm9ybUNvbnRyb2w7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJxdWFzdGlvblwiIFthdHRyLmlkXT1cIidxdWVzdGlvbl8nK2ZDdHJscy5pZC52YWx1ZVwiIHN0eWxlPVwiIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XCI+XG4gIDxoMyBjbGFzcz1cInF1YXN0aW9uLXRpdGxlIFwiPlxuICAgIHt7c3VydmV5UXVlc3Rpb24/LnF1ZXN0aW9uVGl0bGV9fVxuICA8L2gzPlxuICA8ZGl2IGNsYXNzPVwibWF0cml4LXF1ZXN0aW9uXCIgW2Zvcm1Hcm91cF09XCJyRm9ybVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtdGFibGVcIiBmb3JtQXJyYXlOYW1lPVwic3ViUXVlc3Rpb25BcnJheVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1oZWFkLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0cml4LWNvbFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1jb2xcIiAqbmdGb3I9XCJsZXQgYW5zd2VycyBvZiBzdXJ2ZXlRdWVzdGlvbj8uc3VydmV5QW5zd2Vyc1wiPlxuICAgICAgICAgIHt7YW5zd2Vycy5hbnN3ZXJUaXRsZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtcm93XCJcbiAgICAgICAgKm5nRm9yPVwibGV0IHF1ZXN0aW9uR3JvdXAgb2YgZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkuY29udHJvbHMgO2xldCBzdWJRdWVzdGlvbkluZGV4ID0gaW5kZXhcIlxuICAgICAgICBbbmdDbGFzc109XCJ7J2ludmFsaWQtcXVlc3Rpb24nOiBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlci5pbnZhbGlkfVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0cml4LWNvbCBtYXRyaXgtc3ViLXF1YXN0aW9uXCI+XG4gICAgICAgICAge3txdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uVGl0bGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1jb2xcIiAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIHN1cnZleVF1ZXN0aW9uPy5zdXJ2ZXlBbnN3ZXJzO2xldCBhbnN3ZXJJbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1yYWRpbyBmb3JtLWNoZWNrLWlubGluZVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJ7e2VsZW1JZH19X19yYWRpby1idG4tb3B0aW9uX3t7c3ViUXVlc3Rpb25JbmRleH19XCJcbiAgICAgICAgICAgICAgaWQ9XCJ7e2VsZW1JZH19X19yYWRpby1idG5fe3tzdWJRdWVzdGlvbkluZGV4fX1fe3thbnN3ZXJJbmRleH19XCIgKGNoYW5nZSk9XCJvbkNoYW5nZUFuc3dlcihxdWVzdGlvbkdyb3VwLnZhbHVlICxhbnN3ZXIpXCJcbiAgICAgICAgICAgICAgdmFsdWU9XCJ7e2Fuc3dlci5hbnN3ZXJJZH19XCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGQtbWQtaW5saW5lIGQtbGctbm9uZVwiXG4gICAgICAgICAgICAgIGZvcj1cInt7ZWxlbUlkfX1fX3JhZGlvLWJ0bl97e3N1YlF1ZXN0aW9uSW5kZXh9fV97e2Fuc3dlckluZGV4fX1cIj4ge3thbnN3ZXIuYW5zd2VyVGl0bGV9fTwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { QuestionTypeEnum } from 'projects/survery-lib/src/shared/enums/question-type.enum';
|
|
4
|
+
import { debounceTime, distinctUntilChanged } from 'rxjs';
|
|
5
|
+
import { v4 as guidGenerator } from 'uuid';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@ng-stack/forms";
|
|
8
|
+
import * as i2 from "../../services/shared-data.service";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
export class QuestionRadioButtonTemplateComponent {
|
|
11
|
+
get fCtrls() {
|
|
12
|
+
return this.rForm.controls;
|
|
13
|
+
}
|
|
14
|
+
get questionTypeEnum() {
|
|
15
|
+
return QuestionTypeEnum;
|
|
16
|
+
}
|
|
17
|
+
set setQuestion(value) {
|
|
18
|
+
this.surveyQuestion = value;
|
|
19
|
+
this.rForm.patchValue({
|
|
20
|
+
id: value.questionId,
|
|
21
|
+
name: value.questionName,
|
|
22
|
+
title: value.questionTitle,
|
|
23
|
+
typeId: value.questionTypeId,
|
|
24
|
+
description: value.questionDescription
|
|
25
|
+
});
|
|
26
|
+
if (value.isRequired == true) {
|
|
27
|
+
this.fCtrls.answer.addValidators([Validators.required]);
|
|
28
|
+
this.fCtrls.answer.updateValueAndValidity();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
constructor(_formBuilder, _sharedDataService) {
|
|
32
|
+
this._formBuilder = _formBuilder;
|
|
33
|
+
this._sharedDataService = _sharedDataService;
|
|
34
|
+
this.elemId = guidGenerator();
|
|
35
|
+
this.emitter = new EventEmitter();
|
|
36
|
+
this.rForm = this._formBuilder.group({
|
|
37
|
+
id: [null],
|
|
38
|
+
name: [null],
|
|
39
|
+
title: [null],
|
|
40
|
+
typeId: [null],
|
|
41
|
+
description: [null],
|
|
42
|
+
answer: [null]
|
|
43
|
+
});
|
|
44
|
+
this._sharedDataService.submitIdObsrv.pipe(debounceTime(500), distinctUntilChanged()).subscribe(() => {
|
|
45
|
+
const formValue = this.rForm.value;
|
|
46
|
+
this.emitter.emit({
|
|
47
|
+
QuestionId: formValue.id,
|
|
48
|
+
IsValid: this.fCtrls.answer.valid,
|
|
49
|
+
Answer: formValue.answer
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
ngOnInit() {
|
|
54
|
+
this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value => {
|
|
55
|
+
const formValue = this.rForm.value;
|
|
56
|
+
this.emitter.emit({
|
|
57
|
+
QuestionId: formValue.id,
|
|
58
|
+
IsValid: this.fCtrls.answer.valid,
|
|
59
|
+
Answer: value
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
onChangeAnswer(item) {
|
|
64
|
+
this.fCtrls.answer.setValue(item.answerId);
|
|
65
|
+
}
|
|
66
|
+
convertToFormControl(element) {
|
|
67
|
+
return element;
|
|
68
|
+
}
|
|
69
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionRadioButtonTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SharedDataService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionRadioButtonTemplateComponent, selector: "lib-question-radio-button-template", inputs: { setQuestion: "setQuestion" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\" \n *ngFor=\"let item of surveyQuestion?.surveyAnswers;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item)\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" value=\"{{item.answerId}}\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.answerTitle}}</label>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
71
|
+
}
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionRadioButtonTemplateComponent, decorators: [{
|
|
73
|
+
type: Component,
|
|
74
|
+
args: [{ selector: 'lib-question-radio-button-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\" \n *ngFor=\"let item of surveyQuestion?.surveyAnswers;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item)\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" value=\"{{item.answerId}}\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.answerTitle}}</label>\n </div>\n </div>\n</div>\n" }]
|
|
75
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SharedDataService }]; }, propDecorators: { emitter: [{
|
|
76
|
+
type: Output
|
|
77
|
+
}], setQuestion: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}] } });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUvcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUvcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBRzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLEVBQUUsSUFBSSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBUzNDLE1BQU0sT0FBTyxvQ0FBb0M7SUFLL0MsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBSUQsSUFBYSxXQUFXLENBQUMsS0FBd0I7UUFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDcEIs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QXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAbmctc3RhY2svZm9ybXMnO1xuaW1wb3J0IHsgU3VydmV5QW5zd2VyRHRvIH0gZnJvbSAncHJvamVjdHMvc3VydmVyeS1saWIvc3JjL3NoYXJlZC9kdG9zL3N1cnZleS1hbnN3ZXIuZHRvJztcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAncHJvamVjdHMvc3VydmVyeS1saWIvc3JjL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi5kdG8nO1xuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJ3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IFF1ZXN0aW9uUmFkaW9CdXR0b25UZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICdwcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25UZXh0VGVtcGxhdGVGb3JtSW50ZXJmYWNlIH0gZnJvbSAncHJvamVjdHMvc3VydmVyeS1saWIvc3JjL3NoYXJlZC9mb3JtLWludGVyZmFjZXMvcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyBndWlkR2VuZXJhdG9yIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBTaGFyZWREYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NoYXJlZC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJ3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25SYWRpb0J1dHRvblRlbXBsYXRlQ29tcG9uZW50ICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGVsZW1JZCA9IGd1aWRHZW5lcmF0b3IoKSBhcyBzdHJpbmc7XG4gIHN1cnZleVF1ZXN0aW9uOiBTdXJ2ZXlRdWVzdGlvbkR0bztcbiAgckZvcm06IEZvcm1Hcm91cDxRdWVzdGlvblJhZGlvQnV0dG9uVGVtcGxhdGVGb3JtSW50ZXJmYWNlPjtcblxuICBnZXQgZkN0cmxzKCkge1xuICAgIHJldHVybiB0aGlzLnJGb3JtLmNvbnRyb2xzO1xuICB9XG5cbiAgZ2V0IHF1ZXN0aW9uVHlwZUVudW0oKSB7XG4gICAgcmV0dXJuIFF1ZXN0aW9uVHlwZUVudW07XG4gIH1cblxuICBAT3V0cHV0KCkgZW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8UXVlc3Rpb25BbnN3ZXJNb2RlbD4oKTtcblxuICBASW5wdXQoKSBzZXQgc2V0UXVlc3Rpb24odmFsdWU6IFN1cnZleVF1ZXN0aW9uRHRvKSB7XG4gICAgdGhpcy5zdXJ2ZXlRdWVzdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBpZDogdmFsdWUucXVlc3Rpb25JZCxcbiAgICAgIG5hbWU6IHZhbHVlLnF1ZXN0aW9uTmFtZSxcbiAgICAgIHRpdGxlOiB2YWx1ZS5xdWVzdGlvblRpdGxlLFxuICAgICAgdHlwZUlkOiB2YWx1ZS5xdWVzdGlvblR5cGVJZCxcbiAgICAgIGRlc2NyaXB0aW9uOiB2YWx1ZS5xdWVzdGlvbkRlc2NyaXB0aW9uXG4gICAgfSk7XG5cbiAgICBpZiAodmFsdWUuaXNSZXF1aXJlZCA9PSB0cnVlKSB7XG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIgLCBwcml2YXRlIF9zaGFyZWREYXRhU2VydmljZTpTaGFyZWREYXRhU2VydmljZSkge1xuICAgIHRoaXMuckZvcm0gPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxRdWVzdGlvblJhZGlvQnV0dG9uVGVtcGxhdGVGb3JtSW50ZXJmYWNlPih7XG4gICAgICBpZDogW251bGxdLFxuICAgICAgbmFtZTogW251bGxdLFxuICAgICAgdGl0bGU6IFtudWxsXSxcbiAgICAgIHR5cGVJZDogW251bGxdLFxuICAgICAgZGVzY3JpcHRpb246IFtudWxsXSxcbiAgICAgIGFuc3dlcjogW251bGxdXG4gICAgfSk7XG5cbiAgICB0aGlzLl9zaGFyZWREYXRhU2VydmljZS5zdWJtaXRJZE9ic3J2LnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLnJGb3JtLnZhbHVlO1xuICAgICAgdGhpcy5lbWl0dGVyLmVtaXQoe1xuICAgICAgICBRdWVzdGlvbklkOiBmb3JtVmFsdWUuaWQsXG4gICAgICAgIElzVmFsaWQ6IHRoaXMuZkN0cmxzLmFuc3dlci52YWxpZCxcbiAgICAgICAgQW5zd2VyOiBmb3JtVmFsdWUuYW5zd2VyXG4gICAgICB9KVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnZhbHVlQ2hhbmdlcy5waXBlKCkucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKHZhbHVlPT57XG4gICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XG4gICAgIHRoaXMuZW1pdHRlci5lbWl0KHtcbiAgICAgICBRdWVzdGlvbklkOiBmb3JtVmFsdWUuaWQsXG4gICAgICAgSXNWYWxpZDogdGhpcy5mQ3RybHMuYW5zd2VyLnZhbGlkLFxuICAgICAgIEFuc3dlcjogdmFsdWVcbiAgICAgfSlcbiAgICB9KVxuICAgfVxuXG4gIG9uQ2hhbmdlQW5zd2VyKGl0ZW06IFN1cnZleUFuc3dlckR0bykge1xuICAgIHRoaXMuZkN0cmxzLmFuc3dlci5zZXRWYWx1ZShpdGVtLmFuc3dlcklkKTtcbiAgfVxuXG4gIGNvbnZlcnRUb0Zvcm1Db250cm9sKGVsZW1lbnQ6IGFueSkge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEZvcm1Db250cm9sO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicXVhc3Rpb25cIiBbYXR0ci5pZF09XCIncXVlc3Rpb25fJytmQ3RybHMuaWQudmFsdWVcIiAgW25nQ2xhc3NdPVwieydpbnZhbGlkLXF1ZXN0aW9uJzogZkN0cmxzLmFuc3dlci5pbnZhbGlkfVwiPlxuICAgIDxoMyBjbGFzcz1cInF1YXN0aW9uLXRpdGxlIFwiPlxuICAgICAgICB7e2ZDdHJscy50aXRsZS52YWx1ZX19XG4gICAgPC9oMz5cbiAgICA8ZGl2IGNsYXNzPVwicmFkaW8tYnV0dG9uLXF1YXN0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2stcmFkaW8gZm9ybS1jaGVjay1pbmxpbmVcIiBcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3VydmV5UXVlc3Rpb24/LnN1cnZleUFuc3dlcnM7bGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJyYWRpb1wiIChjaGFuZ2UpPVwib25DaGFuZ2VBbnN3ZXIoaXRlbSlcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJ7e2VsZW1JZH19X19yYWRpby1idG4tb3B0aW9uXCIgaWQ9XCJ7e2VsZW1JZH19X19yYWRpby1idG5fe3tpfX1cIiB2YWx1ZT1cInt7aXRlbS5hbnN3ZXJJZH19XCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuX3t7aX19XCI+e3tpdGVtLmFuc3dlclRpdGxlfX08L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|