survery-lib 0.1.11 → 0.1.12
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/assets/style.css.map +1 -1
- package/esm2022/lib/components/question-boolean-template/question-boolean-template.component.mjs +99 -0
- package/esm2022/lib/components/question-check-box-template/question-check-box-template.component.mjs +110 -0
- package/esm2022/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.mjs +95 -0
- package/esm2022/lib/components/question-dropdown-template/question-dropdown-template.component.mjs +83 -0
- package/esm2022/lib/components/question-matrix-template/question-matrix-template.component.mjs +101 -0
- package/esm2022/lib/components/question-radio-button-template/question-radio-button-template.component.mjs +99 -0
- package/esm2022/lib/components/question-text-template/question-text-template.component.mjs +99 -0
- package/esm2022/lib/pipes/default-question-answer.pipe.mjs +19 -0
- package/esm2022/lib/pipes/default-question-answers.pipe.mjs +19 -0
- package/esm2022/lib/pipes/filter-question.pipe.mjs +16 -0
- package/esm2022/lib/services/survey-lib.service.mjs +30 -0
- package/esm2022/lib/survery-lib.component.mjs +296 -0
- package/esm2022/lib/survery-lib.module.mjs +63 -0
- package/esm2022/lib/usecases/base/use-case.mjs +2 -0
- package/esm2022/lib/usecases/check-rule-exps.usecase.mjs +154 -0
- package/esm2022/public-api.mjs +8 -0
- package/esm2022/shared/dtos/default-question-answers.dto.mjs +3 -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-answers-subject.dto.mjs +3 -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/Logic-Property.enum.mjs +14 -0
- package/esm2022/shared/enums/logic-action.enum.mjs +9 -0
- package/esm2022/shared/enums/operator.enum.mjs +6 -0
- package/esm2022/shared/enums/question-type.enum.mjs +11 -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-multi-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/shared/models/survery-question-result.model.mjs +3 -0
- package/esm2022/survery-lib.mjs +5 -0
- package/fesm2022/survery-lib.mjs +1234 -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 +36 -0
- package/lib/components/question-check-box-template/question-check-box-template.component.d.ts +37 -0
- package/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.d.ts +35 -0
- package/lib/components/question-dropdown-template/question-dropdown-template.component.d.ts +33 -0
- package/lib/components/question-matrix-template/question-matrix-template.component.d.ts +33 -0
- package/lib/components/question-radio-button-template/question-radio-button-template.component.d.ts +36 -0
- package/lib/components/question-text-template/question-text-template.component.d.ts +35 -0
- package/lib/pipes/default-question-answer.pipe.d.ts +8 -0
- package/lib/pipes/default-question-answers.pipe.d.ts +8 -0
- package/lib/pipes/filter-question.pipe.d.ts +9 -0
- package/lib/services/survey-lib.service.d.ts +14 -0
- package/lib/survery-lib.component.d.ts +48 -0
- package/lib/survery-lib.module.d.ts +24 -0
- package/{src/lib/usecases/base/use-case.ts → lib/usecases/base/use-case.d.ts} +7 -9
- package/lib/usecases/check-rule-exps.usecase.d.ts +21 -0
- package/package.json +28 -15
- package/{src/public-api.ts → public-api.d.ts} +1 -5
- package/shared/dtos/default-question-answers.dto.d.ts +9 -0
- package/{src/shared/dtos/rule-exp-answer.dto.ts → shared/dtos/rule-exp-answer.dto.d.ts} +5 -5
- package/{src/shared/dtos/rule-exp.dto.ts → shared/dtos/rule-exp.dto.d.ts} +13 -14
- package/{src/shared/dtos/rule-result-question.dto.ts → shared/dtos/rule-result-question.dto.d.ts} +4 -5
- package/{src/shared/dtos/survey-answer.dto.ts → shared/dtos/survey-answer.dto.d.ts} +16 -16
- package/{src/shared/dtos/survey-answers-subject.dto.ts → shared/dtos/survey-answers-subject.dto.d.ts} +5 -6
- package/{src/shared/dtos/survey-page.dto.ts → shared/dtos/survey-page.dto.d.ts} +9 -10
- package/{src/shared/dtos/survey-question-group.dto.ts → shared/dtos/survey-question-group.dto.d.ts} +8 -9
- package/{src/shared/dtos/survey-question.dto.ts → shared/dtos/survey-question.dto.d.ts} +18 -19
- package/{src/shared/dtos/survey-rule.dto.ts → shared/dtos/survey-rule.dto.d.ts} +10 -11
- package/{src/shared/dtos/survey-sub-question.dto.ts → shared/dtos/survey-sub-question.dto.d.ts} +9 -9
- package/{src/shared/dtos/survey.dto.ts → shared/dtos/survey.dto.d.ts} +16 -17
- package/shared/enums/Logic-Property.enum.d.ts +12 -0
- package/{src/shared/enums/logic-action.enum.ts → shared/enums/logic-action.enum.d.ts} +7 -7
- package/shared/enums/operator.enum.d.ts +4 -0
- package/{src/shared/enums/question-type.enum.ts → shared/enums/question-type.enum.d.ts} +9 -9
- package/shared/form-interfaces/question-boolean-template.form-interface.d.ts +15 -0
- package/shared/form-interfaces/question-check-box-template.form-interface.d.ts +15 -0
- package/shared/form-interfaces/question-dropdown-multi-template.form-interface.d.ts +15 -0
- package/shared/form-interfaces/question-dropdown-template.form-interface.d.ts +9 -0
- package/{src/shared/form-interfaces/question-matrix-template.form-interface.ts → shared/form-interfaces/question-matrix-template.form-interface.d.ts} +11 -13
- package/shared/form-interfaces/question-radio-button-template.form-interface.d.ts +15 -0
- package/shared/form-interfaces/question-text-template.form-interface.d.ts +10 -0
- package/shared/form-interfaces/survery-lib.form-interface.d.ts +24 -0
- package/shared/models/question-answer.model.d.ts +6 -0
- package/shared/models/survery-question-result.model.d.ts +8 -0
- package/ng-package.json +0 -11
- package/scss/style.scss +0 -88
- package/src/lib/components/question-boolean-template/question-boolean-template.component.html +0 -13
- package/src/lib/components/question-boolean-template/question-boolean-template.component.scss +0 -0
- package/src/lib/components/question-boolean-template/question-boolean-template.component.spec.ts +0 -21
- package/src/lib/components/question-boolean-template/question-boolean-template.component.ts +0 -109
- package/src/lib/components/question-check-box-template/question-check-box-template.component.html +0 -13
- package/src/lib/components/question-check-box-template/question-check-box-template.component.scss +0 -0
- package/src/lib/components/question-check-box-template/question-check-box-template.component.spec.ts +0 -21
- package/src/lib/components/question-check-box-template/question-check-box-template.component.ts +0 -124
- package/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.html +0 -10
- package/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.scss +0 -3
- package/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.spec.ts +0 -21
- package/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.ts +0 -100
- package/src/lib/components/question-dropdown-template/question-dropdown-template.component.html +0 -10
- package/src/lib/components/question-dropdown-template/question-dropdown-template.component.scss +0 -0
- package/src/lib/components/question-dropdown-template/question-dropdown-template.component.spec.ts +0 -21
- package/src/lib/components/question-dropdown-template/question-dropdown-template.component.ts +0 -87
- package/src/lib/components/question-matrix-template/question-matrix-template.component.html +0 -36
- package/src/lib/components/question-matrix-template/question-matrix-template.component.scss +0 -0
- package/src/lib/components/question-matrix-template/question-matrix-template.component.spec.ts +0 -21
- package/src/lib/components/question-matrix-template/question-matrix-template.component.ts +0 -110
- package/src/lib/components/question-radio-button-template/question-radio-button-template.component.html +0 -13
- package/src/lib/components/question-radio-button-template/question-radio-button-template.component.scss +0 -0
- package/src/lib/components/question-radio-button-template/question-radio-button-template.component.spec.ts +0 -21
- package/src/lib/components/question-radio-button-template/question-radio-button-template.component.ts +0 -111
- package/src/lib/components/question-text-template/question-text-template.component.html +0 -13
- package/src/lib/components/question-text-template/question-text-template.component.scss +0 -0
- package/src/lib/components/question-text-template/question-text-template.component.spec.ts +0 -21
- package/src/lib/components/question-text-template/question-text-template.component.ts +0 -105
- package/src/lib/pipes/default-question-answer.pipe.spec.ts +0 -8
- package/src/lib/pipes/default-question-answer.pipe.ts +0 -18
- package/src/lib/pipes/default-question-answers.pipe.spec.ts +0 -8
- package/src/lib/pipes/default-question-answers.pipe.ts +0 -17
- package/src/lib/pipes/filter-question.pipe.spec.ts +0 -8
- package/src/lib/pipes/filter-question.pipe.ts +0 -14
- package/src/lib/services/survey-lib.service.spec.ts +0 -16
- package/src/lib/services/survey-lib.service.ts +0 -31
- package/src/lib/survery-lib.component.spec.ts +0 -21
- package/src/lib/survery-lib.component.ts +0 -308
- package/src/lib/survery-lib.module.ts +0 -47
- package/src/lib/survey-lib.component.html +0 -67
- package/src/lib/survey-lib.component.scss +0 -4
- package/src/lib/usecases/check-rule-exps.usecase.ts +0 -188
- package/src/shared/dtos/default-question-answers.dto.ts +0 -10
- package/src/shared/enums/logic-property.enum.ts +0 -12
- package/src/shared/enums/operator.enum.ts +0 -4
- package/src/shared/form-interfaces/question-boolean-template.form-interface.ts +0 -17
- package/src/shared/form-interfaces/question-check-box-template.form-interface.ts +0 -18
- package/src/shared/form-interfaces/question-dropdown-multi-template.form-interface.ts +0 -17
- package/src/shared/form-interfaces/question-dropdown-template.form-interface.ts +0 -10
- package/src/shared/form-interfaces/question-radio-button-template.form-interface.ts +0 -17
- package/src/shared/form-interfaces/question-text-template.form-interface.ts +0 -11
- package/src/shared/form-interfaces/survery-lib.form-interface.ts +0 -27
- package/src/shared/models/question-answer.model.ts +0 -6
- package/src/shared/models/survery-question-result.model.ts +0 -8
- package/tsconfig.lib.json +0 -14
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -14
package/assets/style.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../node_modules/@ng-select/ng-select/scss/default.theme.scss","../../../node_modules/@ng-select/ng-select/scss/_mixins.scss","../scss/style.scss"],"names":[],"mappings":"AAiCQ;EACI,YA3BG;EA4BH;;AACA;EACI;;AAEJ;EACI;EACA;EACA;;AACA;EACI;;AAKR;EACI;EACA;;AAIJ;EACI;EACA;;AAIJ;EACI;EACA;;AAIJ;EACI;EACA;;AAKR;EACI,cAzEU;EA0EV,YA9DW;;AAkEf;EACI,kBA7Ec;;AAgFtB;EACI;;AAEJ;EACI,OArFiB;EAsFjB,kBAlFO;EAmFP,eApFkB;EAqFlB;EACA,YA5EW;EA6EX;;AACA;EACI;;AAEJ;EACI;EACA,cAlFmB;;AChBlB;EDoGG,eApFe;EAqFf;;;AAEJ;EACI,OA1FQ;;AA+FhB;EACI,QA/FO;;AAiGH;EACI;EACA;EACA,cAnGW;EAoGX;;ACpHP;EDsHW,eAtGO;EAuGP;;;AAQZ;EACI,kBA7HU;EA8HV;;AACA;EACI;;AAKR;EACI;EACA;;AC1IH;ED4IO;EACA;;;AAEJ;EACI,WA/HQ;EAgIR;EACA,OAhJK;EAiJL,kBA5IC;EA6ID;EACA;;ACrJP;EDuJW;EACA;;;AAEJ;EACI,kBAxJE;;AAyJF;EACI;;AC7Jf;ED+JmB;EACA;;;AAIZ;EACI;EACA;;AAEJ;EACI;EACA;;AACA;EACI;;AAEJ;EACI;;AC/Kf;EDiLmB;EACA;;;AAGR;EACI;;ACtLf;EDwLmB;EACA;;;AAKhB;EACI;;AC/LP;EDiMW;;;AAEJ;EACI,OAxKD;;AA2KP;EACI;EACA;EACA;;AC1MP;ED4MW;EACA;;;AAMpB;EACI;;AACA;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAGR;EACI;;AChOK;EDmOD;;;AAGR;EACI;EACA;;ACxOK;ED0OD;EACA;;;AAGA;EACI;;AAGR;EACI;EACA;EACA;;;AAKZ;EACI,kBArPW;EAsPX;EACA;EACA;;AACA;EACI;EACA,yBA5PkB;EA6PlB,wBA7PkB;EA8PlB;EACA;;AAGQ;EACI,yBAnQM;EAoQN,wBApQM;;AAyQtB;EACI;EACA;EACA,yBA5QkB;EA6QlB,4BA7QkB;EA8QlB,2BA9QkB;EA+QlB;EACA;;AAGQ;EACI,yBApRM;;AAyRtB;EACI;EACA,4BA3RkB;EA4RlB,2BA5RkB;EA6RlB;EACA;;AAGQ;EACI,4BAlSM;EAmSN,2BAnSM;;AAwStB;EACI;EACA;EACA,wBA3SkB;EA4SlB,4BA5SkB;EA6SlB,2BA7SkB;EA8SlB;EACA;;AAGQ;EACI,wBAnTM;;AAwTtB;EACI;EACA;;AAEJ;EACI;EACA;;AAGA;EACI;EACA;EACA;EACA,OApTuB;EAqTvB;;AACA;EACI;;AAEJ;EACI,kBAtUG;;AAwUP;EACI,OA7TmB;EA8TnB,kBA7UK;EA8UL;;AAGR;EACI,kBAnVG;EAoVH,OAjUqB;EAkUrB;;AACA;EACI,OA3VS;EA4VT,kBAvVK;;AAwVL;EACI;;AAGR;EACI,kBA1VG;EA2VH,OAnWS;;AAqWb;EACI,OA9UqB;;AAgVzB;EACI;;AC3WH;ED6WO;EACA;;;AAGR;EACI;EACA;EACA;;ACpXH;EDsXO;EACA;;;ACvXP;ED8XL;EACA;;;
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../node_modules/@ng-select/ng-select/scss/default.theme.scss","../../../node_modules/@ng-select/ng-select/scss/_mixins.scss","../scss/style.scss"],"names":[],"mappings":"AAiCQ;EACI,YA3BG;EA4BH;;AACA;EACI;;AAEJ;EACI;EACA;EACA;;AACA;EACI;;AAKR;EACI;EACA;;AAIJ;EACI;EACA;;AAIJ;EACI;EACA;;AAIJ;EACI;EACA;;AAKR;EACI,cAzEU;EA0EV,YA9DW;;AAkEf;EACI,kBA7Ec;;AAgFtB;EACI;;AAEJ;EACI,OArFiB;EAsFjB,kBAlFO;EAmFP,eApFkB;EAqFlB;EACA,YA5EW;EA6EX;;AACA;EACI;;AAEJ;EACI;EACA,cAlFmB;;AChBlB;EDoGG,eApFe;EAqFf;;;AAEJ;EACI,OA1FQ;;AA+FhB;EACI,QA/FO;;AAiGH;EACI;EACA;EACA,cAnGW;EAoGX;;ACpHP;EDsHW,eAtGO;EAuGP;;;AAQZ;EACI,kBA7HU;EA8HV;;AACA;EACI;;AAKR;EACI;EACA;;AC1IH;ED4IO;EACA;;;AAEJ;EACI,WA/HQ;EAgIR;EACA,OAhJK;EAiJL,kBA5IC;EA6ID;EACA;;ACrJP;EDuJW;EACA;;;AAEJ;EACI,kBAxJE;;AAyJF;EACI;;AC7Jf;ED+JmB;EACA;;;AAIZ;EACI;EACA;;AAEJ;EACI;EACA;;AACA;EACI;;AAEJ;EACI;;AC/Kf;EDiLmB;EACA;;;AAGR;EACI;;ACtLf;EDwLmB;EACA;;;AAKhB;EACI;;AC/LP;EDiMW;;;AAEJ;EACI,OAxKD;;AA2KP;EACI;EACA;EACA;;AC1MP;ED4MW;EACA;;;AAMpB;EACI;;AACA;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAGR;EACI;;AChOK;EDmOD;;;AAGR;EACI;EACA;;ACxOK;ED0OD;EACA;;;AAGA;EACI;;AAGR;EACI;EACA;EACA;;;AAKZ;EACI,kBArPW;EAsPX;EACA;EACA;;AACA;EACI;EACA,yBA5PkB;EA6PlB,wBA7PkB;EA8PlB;EACA;;AAGQ;EACI,yBAnQM;EAoQN,wBApQM;;AAyQtB;EACI;EACA;EACA,yBA5QkB;EA6QlB,4BA7QkB;EA8QlB,2BA9QkB;EA+QlB;EACA;;AAGQ;EACI,yBApRM;;AAyRtB;EACI;EACA,4BA3RkB;EA4RlB,2BA5RkB;EA6RlB;EACA;;AAGQ;EACI,4BAlSM;EAmSN,2BAnSM;;AAwStB;EACI;EACA;EACA,wBA3SkB;EA4SlB,4BA5SkB;EA6SlB,2BA7SkB;EA8SlB;EACA;;AAGQ;EACI,wBAnTM;;AAwTtB;EACI;EACA;;AAEJ;EACI;EACA;;AAGA;EACI;EACA;EACA;EACA,OApTuB;EAqTvB;;AACA;EACI;;AAEJ;EACI,kBAtUG;;AAwUP;EACI,OA7TmB;EA8TnB,kBA7UK;EA8UL;;AAGR;EACI,kBAnVG;EAoVH,OAjUqB;EAkUrB;;AACA;EACI,OA3VS;EA4VT,kBAvVK;;AAwVL;EACI;;AAGR;EACI,kBA1VG;EA2VH,OAnWS;;AAqWb;EACI,OA9UqB;;AAgVzB;EACI;;AC3WH;ED6WO;EACA;;;AAGR;EACI;EACA;EACA;;ACpXH;EDsXO;EACA;;;ACvXP;ED8XL;EACA;;;AE3XI;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;;AAGJ;EACI","file":"style.css"}
|
package/esm2022/lib/components/question-boolean-template/question-boolean-template.component.mjs
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';
|
|
4
|
+
import { debounceTime, filter, map } 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/survey-lib.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
|
+
value.surveyAnswers.forEach(surveryAnswer => {
|
|
27
|
+
this.fCtrls.answerArray.push(this._formBuilder.group({
|
|
28
|
+
id: [surveryAnswer.answerId],
|
|
29
|
+
title: [surveryAnswer.answerTitle],
|
|
30
|
+
isSelected: [false]
|
|
31
|
+
}));
|
|
32
|
+
});
|
|
33
|
+
if (value.isRequired == true) {
|
|
34
|
+
this.fCtrls.answer.addValidators([Validators.required]);
|
|
35
|
+
this.fCtrls.answer.updateValueAndValidity();
|
|
36
|
+
}
|
|
37
|
+
this.isShow = value.isVisable;
|
|
38
|
+
this.isDisabled = value.isReadOnly;
|
|
39
|
+
}
|
|
40
|
+
constructor(_formBuilder, _surveyLibService) {
|
|
41
|
+
this._formBuilder = _formBuilder;
|
|
42
|
+
this._surveyLibService = _surveyLibService;
|
|
43
|
+
this.elemId = guidGenerator();
|
|
44
|
+
this.emitter = new EventEmitter();
|
|
45
|
+
this.isShow = true;
|
|
46
|
+
this.isDisabled = false;
|
|
47
|
+
this.rForm = this._formBuilder.group({
|
|
48
|
+
id: [null],
|
|
49
|
+
name: [null],
|
|
50
|
+
title: [null],
|
|
51
|
+
typeId: [null],
|
|
52
|
+
description: [null],
|
|
53
|
+
answer: [null],
|
|
54
|
+
answerArray: this._formBuilder.array([])
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
ngOnInit() {
|
|
58
|
+
this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {
|
|
59
|
+
const formValue = this.rForm.value;
|
|
60
|
+
this.emitter.emit({
|
|
61
|
+
QuestionId: formValue.id,
|
|
62
|
+
IsValid: this.fCtrls.answer.valid,
|
|
63
|
+
Answer: value
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
this.fCtrls.answer.setValue(null);
|
|
67
|
+
this._surveyLibService.surveyAnswersObsrv
|
|
68
|
+
.pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))
|
|
69
|
+
.pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))
|
|
70
|
+
.subscribe(answer => {
|
|
71
|
+
this.fCtrls.answer.setValue(answer.AnswerId);
|
|
72
|
+
const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answer.AnswerId);
|
|
73
|
+
if (groupIndex > -1) {
|
|
74
|
+
this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
onChangeAnswer(item) {
|
|
79
|
+
this.fCtrls.answer.setValue(item.id);
|
|
80
|
+
}
|
|
81
|
+
convertToFormControl(element) {
|
|
82
|
+
return element;
|
|
83
|
+
}
|
|
84
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionBooleanTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SurveyLibService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
85
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionBooleanTemplateComponent, selector: "lib-question-boolean-template", inputs: { isShow: "isShow", isDisabled: "isDisabled", setQuestion: "setQuestion" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\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 fCtrls.answerArray.controls ;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"isDisabled\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</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"] }] }); }
|
|
86
|
+
}
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionBooleanTemplateComponent, decorators: [{
|
|
88
|
+
type: Component,
|
|
89
|
+
args: [{ selector: 'lib-question-boolean-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\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 fCtrls.answerArray.controls ;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"isDisabled\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\n </div>\n </div>\n</div>\n" }]
|
|
90
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SurveyLibService }]; }, propDecorators: { emitter: [{
|
|
91
|
+
type: Output
|
|
92
|
+
}], isShow: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], isDisabled: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], setQuestion: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}] } });
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlL3F1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHNUUsT0FBTyxFQUFFLFlBQVksRUFBd0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2RSxPQUFPLEVBQUUsRUFBRSxJQUFJLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFVM0MsTUFBTSxPQUFPLGdDQUFnQztJQUszQyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFPRCxJQUFhLFdBQVcsQ0FBQyxLQUF3QjtRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUNwQixFQUFFLEVBQUUsS0FBSyxD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QixPQUFPO3NCQUFoQixNQUFNO2dCQUVFLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVPLFdBQVc7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi5kdG8nO1xyXG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uUmFkaW9CdXR0b25UZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uQW5zd2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFuc3dlckNoaWxkT2ZRdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZUZvcm1JbnRlcmZhY2UsIFF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlRm9ybUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mb3JtLWludGVyZmFjZXMvcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAbmctc3RhY2svZm9ybXMnO1xyXG5pbXBvcnQgeyB2NCBhcyBndWlkR2VuZXJhdG9yIH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IFN1cnZleUFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1hbnN3ZXIuZHRvJztcclxuaW1wb3J0IHsgRGVmYXVsdFF1ZXN0aW9uQW5zd2VyRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3MvZGVmYXVsdC1xdWVzdGlvbi1hbnN3ZXJzLmR0byc7XHJcbmltcG9ydCB7IFN1cnZleUxpYlNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdXJ2ZXktbGliLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Cb29sZWFuVGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGVsZW1JZCA9IGd1aWRHZW5lcmF0b3IoKSBhcyBzdHJpbmc7XHJcbiAgc3VydmV5UXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvO1xyXG4gIHJGb3JtOiBGb3JtR3JvdXA8UXVlc3Rpb25Cb29sZWFuVGVtcGxhdGVGb3JtSW50ZXJmYWNlPjtcclxuXHJcbiAgZ2V0IGZDdHJscygpIHtcclxuICAgIHJldHVybiB0aGlzLnJGb3JtLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHF1ZXN0aW9uVHlwZUVudW0oKSB7XHJcbiAgICByZXR1cm4gUXVlc3Rpb25UeXBlRW51bTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBlbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxRdWVzdGlvbkFuc3dlck1vZGVsPigpO1xyXG5cclxuICBASW5wdXQoKSBpc1Nob3c6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBTdXJ2ZXlRdWVzdGlvbkR0bykge1xyXG4gICAgdGhpcy5zdXJ2ZXlRdWVzdGlvbiA9IHZhbHVlO1xyXG4gICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgaWQ6IHZhbHVlLnF1ZXN0aW9uSWQsXHJcbiAgICAgIG5hbWU6IHZhbHVlLnF1ZXN0aW9uTmFtZSxcclxuICAgICAgdGl0bGU6IHZhbHVlLnF1ZXN0aW9uVGl0bGUsXHJcbiAgICAgIHR5cGVJZDogdmFsdWUucXVlc3Rpb25UeXBlSWQsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiB2YWx1ZS5xdWVzdGlvbkRlc2NyaXB0aW9uXHJcbiAgICB9KTtcclxuXHJcbiAgICB2YWx1ZS5zdXJ2ZXlBbnN3ZXJzLmZvckVhY2goc3VydmVyeUFuc3dlciA9PiB7XHJcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlckFycmF5LnB1c2godGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8QW5zd2VyQ2hpbGRPZlF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xyXG4gICAgICAgIGlkOiBbc3VydmVyeUFuc3dlci5hbnN3ZXJJZF0sXHJcbiAgICAgICAgdGl0bGU6IFtzdXJ2ZXJ5QW5zd2VyLmFuc3dlclRpdGxlXSxcclxuICAgICAgICBpc1NlbGVjdGVkOiBbZmFsc2VdXHJcbiAgICAgIH0pKVxyXG4gICAgfSlcclxuXHJcbiAgICBpZiAodmFsdWUuaXNSZXF1aXJlZCA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc1Nob3cgPSB2YWx1ZS5pc1Zpc2FibGU7XHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSB2YWx1ZS5pc1JlYWRPbmx5O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyICAsIHByaXZhdGUgX3N1cnZleUxpYlNlcnZpY2U6U3VydmV5TGliU2VydmljZSkge1xyXG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xyXG4gICAgICBpZDogW251bGxdLFxyXG4gICAgICBuYW1lOiBbbnVsbF0sXHJcbiAgICAgIHRpdGxlOiBbbnVsbF0sXHJcbiAgICAgIHR5cGVJZDogW251bGxdLFxyXG4gICAgICBkZXNjcmlwdGlvbjogW251bGxdLFxyXG4gICAgICBhbnN3ZXI6IFtudWxsXSxcclxuICAgICAgYW5zd2VyQXJyYXk6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PEFuc3dlckNoaWxkT2ZRdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KFtdKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZkN0cmxzLmFuc3dlci52YWx1ZUNoYW5nZXMucGlwZSgpLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XHJcbiAgICAgIHRoaXMuZW1pdHRlci5lbWl0KHtcclxuICAgICAgICBRdWVzdGlvbklkOiBmb3JtVmFsdWUuaWQsXHJcbiAgICAgICAgSXNWYWxpZDogdGhpcy5mQ3RybHMuYW5zd2VyLnZhbGlkLFxyXG4gICAgICAgIEFuc3dlcjogdmFsdWVcclxuICAgICAgfSlcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZkN0cmxzLmFuc3dlci5zZXRWYWx1ZShudWxsKTtcclxuXHJcbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnN1cnZleUFuc3dlcnNPYnNydlxyXG4gICAgLnBpcGUobWFwKHg9PiB4LmRlZmF1bHRBbnN3ZXJzLmZpbHRlcih4PT54LlF1ZXN0aW9uSWQgPT0gdGhpcy5mQ3RybHMuaWQudmFsdWUpKSlcclxuICAgIC5waXBlKGZpbHRlcih4PT54Lmxlbmd0aCAgPiAwKSkucGlwZShtYXAoeD0+IHguYXQoMCkpKVxyXG4gICAgLnN1YnNjcmliZShhbnN3ZXI9PntcclxuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKGFuc3dlci5BbnN3ZXJJZCk7XHJcblxyXG4gICAgICBjb25zdCBncm91cEluZGV4ID0gdGhpcy5mQ3RybHMuYW5zd2VyQXJyYXkudmFsdWUuZmluZEluZGV4KHggPT4geC5pZCA9PSBhbnN3ZXIuQW5zd2VySWQpO1xyXG4gICAgICBpZihncm91cEluZGV4ID4gLTEpe1xyXG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXJBcnJheS5hdChncm91cEluZGV4KS5jb250cm9scy5pc1NlbGVjdGVkLnNldFZhbHVlKHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VBbnN3ZXIoaXRlbTogQW5zd2VyQ2hpbGRPZlF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlRm9ybUludGVyZmFjZSkge1xyXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKGl0ZW0uaWQpO1xyXG4gIH1cclxuXHJcbiAgY29udmVydFRvRm9ybUNvbnRyb2woZWxlbWVudDogYW55KSB7XHJcbiAgICByZXR1cm4gZWxlbWVudCBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInF1YXN0aW9uXCIgW2F0dHIuaWRdPVwiJ3F1ZXN0aW9uXycrZkN0cmxzLmlkLnZhbHVlXCIgIFtuZ0NsYXNzXT1cInsnaW52YWxpZC1xdWVzdGlvbic6IGZDdHJscy5hbnN3ZXIuaW52YWxpZCAgLCAnZC1ub25lJzppc1Nob3cgIT0gdHJ1ZX1cIj5cbiAgICA8aDMgY2xhc3M9XCJxdWFzdGlvbi10aXRsZSBcIj5cbiAgICAgICAge3tmQ3RybHMudGl0bGUudmFsdWV9fVxuICAgIDwvaDM+XG4gICAgPGRpdiBjbGFzcz1cInJhZGlvLWJ1dHRvbi1xdWFzdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLXJhZGlvIGZvcm0tY2hlY2staW5saW5lXCIgXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZDdHJscy5hbnN3ZXJBcnJheS5jb250cm9scyA7bGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJyYWRpb1wiIChjaGFuZ2UpPVwib25DaGFuZ2VBbnN3ZXIoaXRlbS52YWx1ZSlcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInt7ZWxlbUlkfX1fX3JhZGlvLWJ0bi1vcHRpb25cIiBpZD1cInt7ZWxlbUlkfX1fX3JhZGlvLWJ0bl97e2l9fVwiIFtjaGVja2VkXT1cIml0ZW0udmFsdWUuaXNTZWxlY3RlZCA9PSB0cnVlPyB0cnVlIDogbnVsbFwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cInt7ZWxlbUlkfX1fX3JhZGlvLWJ0bl97e2l9fVwiPnt7aXRlbS52YWx1ZS50aXRsZX19PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
package/esm2022/lib/components/question-check-box-template/question-check-box-template.component.mjs
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';
|
|
4
|
+
import { debounceTime, filter, map } 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/survey-lib.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
|
+
value.surveyAnswers.forEach(surveryAnswer => {
|
|
27
|
+
this.fCtrls.answerArray.push(this._formBuilder.group({
|
|
28
|
+
id: [surveryAnswer.answerId],
|
|
29
|
+
title: [surveryAnswer.answerTitle],
|
|
30
|
+
isSelected: [false]
|
|
31
|
+
}));
|
|
32
|
+
});
|
|
33
|
+
if (value.isRequired == true) {
|
|
34
|
+
this.fCtrls.answer.addValidators([Validators.required]);
|
|
35
|
+
this.fCtrls.answer.updateValueAndValidity();
|
|
36
|
+
}
|
|
37
|
+
this.isShow = value.isVisable;
|
|
38
|
+
this.isDisabled = value.isReadOnly;
|
|
39
|
+
}
|
|
40
|
+
constructor(_formBuilder, _surveyLibService) {
|
|
41
|
+
this._formBuilder = _formBuilder;
|
|
42
|
+
this._surveyLibService = _surveyLibService;
|
|
43
|
+
this.elemId = guidGenerator();
|
|
44
|
+
this.emitter = new EventEmitter();
|
|
45
|
+
this.isShow = true;
|
|
46
|
+
this.isDisabled = false;
|
|
47
|
+
this.rForm = this._formBuilder.group({
|
|
48
|
+
id: [null],
|
|
49
|
+
name: [null],
|
|
50
|
+
title: [null],
|
|
51
|
+
typeId: [null],
|
|
52
|
+
description: [null],
|
|
53
|
+
answer: [null],
|
|
54
|
+
answerArray: this._formBuilder.array([])
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
ngOnInit() {
|
|
58
|
+
this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {
|
|
59
|
+
const formValue = this.rForm.value;
|
|
60
|
+
this.emitter.emit({
|
|
61
|
+
QuestionId: formValue.id,
|
|
62
|
+
IsValid: this.fCtrls.answer.valid,
|
|
63
|
+
Answer: value
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
this.fCtrls.answer.setValue(null);
|
|
67
|
+
this._surveyLibService.surveyAnswersObsrv
|
|
68
|
+
.pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))
|
|
69
|
+
.pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))
|
|
70
|
+
.subscribe(answer => {
|
|
71
|
+
const distinctArray = answer.AnswerIdArr.filter((n, i) => answer.AnswerIdArr.indexOf(n) === i);
|
|
72
|
+
this.fCtrls.answer.setValue(distinctArray);
|
|
73
|
+
answer.AnswerIdArr.forEach(answerId => {
|
|
74
|
+
const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answerId);
|
|
75
|
+
if (groupIndex > -1) {
|
|
76
|
+
this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
onChangeAnswer(item, event) {
|
|
82
|
+
var answerArr = this.fCtrls.answer.value || [];
|
|
83
|
+
if (event.target.checked == true) {
|
|
84
|
+
answerArr.push(item.id);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
answerArr = answerArr.filter(x => x != item.id);
|
|
88
|
+
}
|
|
89
|
+
answerArr = answerArr.length == 0 ? [] : answerArr;
|
|
90
|
+
this.fCtrls.answer.setValue(answerArr);
|
|
91
|
+
}
|
|
92
|
+
convertToFormControl(element) {
|
|
93
|
+
return element;
|
|
94
|
+
}
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionCheckBoxTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SurveyLibService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionCheckBoxTemplateComponent, selector: "lib-question-check-box-template", inputs: { isShow: "isShow", isDisabled: "isDisabled", setQuestion: "setQuestion" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\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 fCtrls.answerArray.controls ;let i = index\">\n <input type=\"checkbox\" class=\"form-check-input\" id=\"{{elemId}}__checkbox_{{i}}\" [disabled]=\"isDisabled\"\n (change)=\"onChangeAnswer(item.value ,$event)\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label \" for=\"{{elemId}}__checkbox_{{i}}\">{{item.value.title}}</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"] }] }); }
|
|
97
|
+
}
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionCheckBoxTemplateComponent, decorators: [{
|
|
99
|
+
type: Component,
|
|
100
|
+
args: [{ selector: 'lib-question-check-box-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\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 fCtrls.answerArray.controls ;let i = index\">\n <input type=\"checkbox\" class=\"form-check-input\" id=\"{{elemId}}__checkbox_{{i}}\" [disabled]=\"isDisabled\"\n (change)=\"onChangeAnswer(item.value ,$event)\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label \" for=\"{{elemId}}__checkbox_{{i}}\">{{item.value.title}}</label>\n </div>\n </div>\n</div>\n" }]
|
|
101
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SurveyLibService }]; }, propDecorators: { emitter: [{
|
|
102
|
+
type: Output
|
|
103
|
+
}], isShow: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}], isDisabled: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], setQuestion: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}] } });
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tY2hlY2stYm94LXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUvcXVlc3Rpb24tY2hlY2stYm94LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUvcXVlc3Rpb24tY2hlY2stYm94LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBTTVFLE9BQU8sRUFBRSxZQUFZLEVBQXdCLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLEVBQUUsSUFBSSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBVzNDLE1BQU0sT0FBTyxpQ0FBaUM7SUFLNUMsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBTUQsSUFBYSxXQUFXLENBQUMsS0FBd0I7UUFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDcEIsRUFBRSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQ3BCLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUN4QixLQUFLLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDMUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQzVCLFdBQVcsRUFBRSxLQUFLLENBQUMsbUJBQW1CO1NBQ3ZDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBcUQ7Z0JBQ3ZHLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7Z0JBQzVCLEtBQUssRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7Z0JBQ2xDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQzthQUNwQixDQUFDLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRTtZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQzdDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBb0IsWUFBeUIsRUFBVSxpQkFBbUM7UUFBdEUsaUJBQVksR0FBWixZQUFZLENBQWE7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBM0MxRixXQUFNLEdBQUcsYUFBYSxFQUFZLENBQUM7UUFZekIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBRW5ELFdBQU0sR0FBWSxJQUFJLENBQUM7UUFDdkIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQTZCbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBd0M7WUFDMUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ1YsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ1osS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2IsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2QsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ25CLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztZQUNkLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBcUQsRUFBRSxDQUFDO1NBQzdGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0UsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLFVBQVUsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUs7Z0JBQ2pDLE1BQU0sRUFBRSxLQUFLO2FBQ2QsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQjthQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDbEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZELFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsQixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQy9GLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUUzQyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksUUFBUSxDQUFDLENBQUM7Z0JBQ2xGLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzNFO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBdUQsRUFBRSxLQUFZO1FBQ2xGLElBQUksU0FBUyxHQUFhLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFFekQsSUFBSyxLQUFLLENBQUMsTUFBYyxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDekMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekI7YUFBTTtZQUNMLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNqRDtRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUFZO1FBQy9CLE9BQU8sT0FBc0IsQ0FBQztJQUNoQyxDQUFDOzhHQW5HVSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyw0TEN2QjlDLGt5QkFhQTs7MkZEVWEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNFLGlDQUFpQztpSUFpQmpDLE9BQU87c0JBQWhCLE1BQU07Z0JBRUUsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ08sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAbmctc3RhY2svZm9ybXMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlBbnN3ZXJEdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktYW5zd2VyLmR0byc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHtcclxuICBBbnN3ZXJDaGlsZE9mUXVlc3Rpb25DaGVja0JveFRlbXBsYXRlRm9ybUludGVyZmFjZSxcclxuICBRdWVzdGlvbkNoZWNrQm94VGVtcGxhdGVGb3JtSW50ZXJmYWNlXHJcbn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBRdWVzdGlvblJhZGlvQnV0dG9uVGVtcGxhdGVGb3JtSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB2NCBhcyBndWlkR2VuZXJhdG9yIH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uQW5zd2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XHJcbmltcG9ydCB7IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL2RlZmF1bHQtcXVlc3Rpb24tYW5zd2Vycy5kdG8nO1xyXG5pbXBvcnQgeyBBbnN3ZXJDaGlsZE9mUXVlc3Rpb25Cb29sZWFuVGVtcGxhdGVGb3JtSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlLmZvcm0taW50ZXJmYWNlJztcclxuaW1wb3J0IHsgU3VydmV5TGliU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N1cnZleS1saWIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkNoZWNrQm94VGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGVsZW1JZCA9IGd1aWRHZW5lcmF0b3IoKSBhcyBzdHJpbmc7XHJcbiAgc3VydmV5UXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvO1xyXG4gIHJGb3JtOiBGb3JtR3JvdXA8UXVlc3Rpb25DaGVja0JveFRlbXBsYXRlRm9ybUludGVyZmFjZT47XHJcblxyXG4gIGdldCBmQ3RybHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcclxuICB9XHJcblxyXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xyXG4gICAgcmV0dXJuIFF1ZXN0aW9uVHlwZUVudW07XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgZW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8UXVlc3Rpb25BbnN3ZXJNb2RlbD4oKTtcclxuXHJcbiAgQElucHV0KCkgaXNTaG93OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBTdXJ2ZXlRdWVzdGlvbkR0bykge1xyXG4gICAgdGhpcy5zdXJ2ZXlRdWVzdGlvbiA9IHZhbHVlO1xyXG4gICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgaWQ6IHZhbHVlLnF1ZXN0aW9uSWQsXHJcbiAgICAgIG5hbWU6IHZhbHVlLnF1ZXN0aW9uTmFtZSxcclxuICAgICAgdGl0bGU6IHZhbHVlLnF1ZXN0aW9uVGl0bGUsXHJcbiAgICAgIHR5cGVJZDogdmFsdWUucXVlc3Rpb25UeXBlSWQsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiB2YWx1ZS5xdWVzdGlvbkRlc2NyaXB0aW9uXHJcbiAgICB9KTtcclxuXHJcbiAgICB2YWx1ZS5zdXJ2ZXlBbnN3ZXJzLmZvckVhY2goc3VydmVyeUFuc3dlciA9PiB7XHJcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlckFycmF5LnB1c2godGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8QW5zd2VyQ2hpbGRPZlF1ZXN0aW9uQ2hlY2tCb3hUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcclxuICAgICAgICBpZDogW3N1cnZlcnlBbnN3ZXIuYW5zd2VySWRdLFxyXG4gICAgICAgIHRpdGxlOiBbc3VydmVyeUFuc3dlci5hbnN3ZXJUaXRsZV0sXHJcbiAgICAgICAgaXNTZWxlY3RlZDogW2ZhbHNlXVxyXG4gICAgICB9KSlcclxuICAgIH0pXHJcblxyXG4gICAgaWYgKHZhbHVlLmlzUmVxdWlyZWQgPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNTaG93ID0gdmFsdWUuaXNWaXNhYmxlO1xyXG4gICAgdGhpcy5pc0Rpc2FibGVkID0gdmFsdWUuaXNSZWFkT25seTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBfc3VydmV5TGliU2VydmljZTogU3VydmV5TGliU2VydmljZSkge1xyXG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uQ2hlY2tCb3hUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcclxuICAgICAgaWQ6IFtudWxsXSxcclxuICAgICAgbmFtZTogW251bGxdLFxyXG4gICAgICB0aXRsZTogW251bGxdLFxyXG4gICAgICB0eXBlSWQ6IFtudWxsXSxcclxuICAgICAgZGVzY3JpcHRpb246IFtudWxsXSxcclxuICAgICAgYW5zd2VyOiBbbnVsbF0sXHJcbiAgICAgIGFuc3dlckFycmF5OiB0aGlzLl9mb3JtQnVpbGRlci5hcnJheTxBbnN3ZXJDaGlsZE9mUXVlc3Rpb25DaGVja0JveFRlbXBsYXRlRm9ybUludGVyZmFjZT4oW10pXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnZhbHVlQ2hhbmdlcy5waXBlKCkucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcclxuICAgICAgdGhpcy5lbWl0dGVyLmVtaXQoe1xyXG4gICAgICAgIFF1ZXN0aW9uSWQ6IGZvcm1WYWx1ZS5pZCxcclxuICAgICAgICBJc1ZhbGlkOiB0aGlzLmZDdHJscy5hbnN3ZXIudmFsaWQsXHJcbiAgICAgICAgQW5zd2VyOiB2YWx1ZVxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKG51bGwpO1xyXG5cclxuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc3VydmV5QW5zd2Vyc09ic3J2XHJcbiAgICAgIC5waXBlKG1hcCh4ID0+IHguZGVmYXVsdEFuc3dlcnMuZmlsdGVyKHggPT4geC5RdWVzdGlvbklkID09IHRoaXMuZkN0cmxzLmlkLnZhbHVlKSkpXHJcbiAgICAgIC5waXBlKGZpbHRlcih4ID0+IHgubGVuZ3RoID4gMCkpLnBpcGUobWFwKHggPT4geC5hdCgwKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoYW5zd2VyID0+IHtcclxuICAgICAgICBjb25zdCBkaXN0aW5jdEFycmF5ID0gYW5zd2VyLkFuc3dlcklkQXJyLmZpbHRlcigobiwgaSkgPT4gYW5zd2VyLkFuc3dlcklkQXJyLmluZGV4T2YobikgPT09IGkpO1xyXG4gICAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5zZXRWYWx1ZShkaXN0aW5jdEFycmF5KTtcclxuXHJcbiAgICAgICAgYW5zd2VyLkFuc3dlcklkQXJyLmZvckVhY2goYW5zd2VySWQgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZ3JvdXBJbmRleCA9IHRoaXMuZkN0cmxzLmFuc3dlckFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHguaWQgPT0gYW5zd2VySWQpO1xyXG4gICAgICAgICAgaWYgKGdyb3VwSW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgICB0aGlzLmZDdHJscy5hbnN3ZXJBcnJheS5hdChncm91cEluZGV4KS5jb250cm9scy5pc1NlbGVjdGVkLnNldFZhbHVlKHRydWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VBbnN3ZXIoaXRlbTogQW5zd2VyQ2hpbGRPZlF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlRm9ybUludGVyZmFjZSwgZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB2YXIgYW5zd2VyQXJyOiBudW1iZXJbXSA9IHRoaXMuZkN0cmxzLmFuc3dlci52YWx1ZSB8fCBbXTtcclxuXHJcbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBhbnkpLmNoZWNrZWQgPT0gdHJ1ZSkge1xyXG4gICAgICBhbnN3ZXJBcnIucHVzaChpdGVtLmlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGFuc3dlckFyciA9IGFuc3dlckFyci5maWx0ZXIoeCA9PiB4ICE9IGl0ZW0uaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFuc3dlckFyciA9IGFuc3dlckFyci5sZW5ndGggPT0gMCA/IFtdIDogYW5zd2VyQXJyO1xyXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKGFuc3dlckFycik7XHJcbiAgfVxyXG5cclxuICBjb252ZXJ0VG9Gb3JtQ29udHJvbChlbGVtZW50OiBhbnkpIHtcclxuICAgIHJldHVybiBlbGVtZW50IGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicXVhc3Rpb25cIiBbYXR0ci5pZF09XCIncXVlc3Rpb25fJytmQ3RybHMuaWQudmFsdWVcIiAgW25nQ2xhc3NdPVwieydpbnZhbGlkLXF1ZXN0aW9uJzogZkN0cmxzLmFuc3dlci5pbnZhbGlkICAsICdkLW5vbmUnOmlzU2hvdyAhPSB0cnVlfVwiPlxuICAgIDxoMyBjbGFzcz1cInF1YXN0aW9uLXRpdGxlIFwiPlxuICAgICAgICB7e2ZDdHJscy50aXRsZS52YWx1ZX19XG4gICAgPC9oMz5cblxuICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1idXR0b24tcXVhc3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgY2hlY2stYm94LWZvcm0tY2hlY2tcIiAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZkN0cmxzLmFuc3dlckFycmF5LmNvbnRyb2xzIDtsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgaWQ9XCJ7e2VsZW1JZH19X19jaGVja2JveF97e2l9fVwiICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZUFuc3dlcihpdGVtLnZhbHVlICwkZXZlbnQpXCIgW2NoZWNrZWRdPVwiaXRlbS52YWx1ZS5pc1NlbGVjdGVkID09IHRydWU/IHRydWUgOiBudWxsXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsICBcIiBmb3I9XCJ7e2VsZW1JZH19X19jaGVja2JveF97e2l9fVwiPnt7aXRlbS52YWx1ZS50aXRsZX19PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@ng-stack/forms';
|
|
3
|
+
import { debounceTime, filter, map } from 'rxjs';
|
|
4
|
+
import { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';
|
|
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/survey-lib.service";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
import * as i4 from "@angular/forms";
|
|
11
|
+
import * as i5 from "@ng-select/ng-select";
|
|
12
|
+
export class QuestionDropdownMultiTemplateComponent {
|
|
13
|
+
get fCtrls() {
|
|
14
|
+
return this.rForm.controls;
|
|
15
|
+
}
|
|
16
|
+
get questionTypeEnum() {
|
|
17
|
+
return QuestionTypeEnum;
|
|
18
|
+
}
|
|
19
|
+
set setQuestion(value) {
|
|
20
|
+
this.surveyQuestion = value;
|
|
21
|
+
this.rForm.patchValue({
|
|
22
|
+
id: value.questionId,
|
|
23
|
+
name: value.questionName,
|
|
24
|
+
title: value.questionTitle,
|
|
25
|
+
typeId: value.questionTypeId,
|
|
26
|
+
description: value.questionDescription
|
|
27
|
+
});
|
|
28
|
+
value.surveyAnswers.forEach(surveryAnswer => {
|
|
29
|
+
this.fCtrls.answerArray.push(this._formBuilder.group({
|
|
30
|
+
id: [surveryAnswer.answerId],
|
|
31
|
+
title: [surveryAnswer.answerTitle],
|
|
32
|
+
isSelected: [false]
|
|
33
|
+
}));
|
|
34
|
+
});
|
|
35
|
+
if (value.isRequired == true) {
|
|
36
|
+
this.fCtrls.answer.addValidators([Validators.required]);
|
|
37
|
+
this.fCtrls.answer.updateValueAndValidity();
|
|
38
|
+
}
|
|
39
|
+
this.isShow = value.isVisable;
|
|
40
|
+
this.isDisabled = value.isReadOnly;
|
|
41
|
+
}
|
|
42
|
+
constructor(_formBuilder, _surveyLibService) {
|
|
43
|
+
this._formBuilder = _formBuilder;
|
|
44
|
+
this._surveyLibService = _surveyLibService;
|
|
45
|
+
this.elemId = guidGenerator();
|
|
46
|
+
this.emitter = new EventEmitter();
|
|
47
|
+
this.isShow = true;
|
|
48
|
+
this.isDisabled = false;
|
|
49
|
+
this.rForm = this._formBuilder.group({
|
|
50
|
+
id: [null],
|
|
51
|
+
name: [null],
|
|
52
|
+
title: [null],
|
|
53
|
+
typeId: [null],
|
|
54
|
+
description: [null],
|
|
55
|
+
answer: [null],
|
|
56
|
+
answerArray: this._formBuilder.array([])
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
ngOnInit() {
|
|
60
|
+
this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {
|
|
61
|
+
const formValue = this.rForm.value;
|
|
62
|
+
this.emitter.emit({
|
|
63
|
+
QuestionId: formValue.id,
|
|
64
|
+
IsValid: this.fCtrls.answer.valid,
|
|
65
|
+
Answer: value
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
this.fCtrls.answer.setValue(null);
|
|
69
|
+
this._surveyLibService.surveyAnswersObsrv
|
|
70
|
+
.pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))
|
|
71
|
+
.pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))
|
|
72
|
+
.subscribe(answer => {
|
|
73
|
+
const distinctArray = answer.AnswerIdArr.filter((n, i) => answer.AnswerIdArr.indexOf(n) === i);
|
|
74
|
+
this.fCtrls.answer.setValue(distinctArray);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
convertToFormControl(element) {
|
|
78
|
+
return element;
|
|
79
|
+
}
|
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionDropdownMultiTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SurveyLibService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
81
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionDropdownMultiTemplateComponent, selector: "lib-question-dropdown-multi-template", inputs: { isShow: "isShow", isDisabled: "isDisabled", setQuestion: "setQuestion" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"text-quastion\">\n <ng-select [items]=\"this.fCtrls.answerArray.value\" bindValue=\"id\" bindLabel=\"title\" class=\"form-control\"\n [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"isDisabled\" [multiple]=\"true\">\n </ng-select>\n </div>\n</div>\n", styles: [".text-quastion .form-control{padding:10px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }] }); }
|
|
82
|
+
}
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionDropdownMultiTemplateComponent, decorators: [{
|
|
84
|
+
type: Component,
|
|
85
|
+
args: [{ selector: 'lib-question-dropdown-multi-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"text-quastion\">\n <ng-select [items]=\"this.fCtrls.answerArray.value\" bindValue=\"id\" bindLabel=\"title\" class=\"form-control\"\n [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"isDisabled\" [multiple]=\"true\">\n </ng-select>\n </div>\n</div>\n", styles: [".text-quastion .form-control{padding:10px}\n"] }]
|
|
86
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SurveyLibService }]; }, propDecorators: { emitter: [{
|
|
87
|
+
type: Output
|
|
88
|
+
}], isShow: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], isDisabled: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], setQuestion: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}] } });
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tZHJvcGRvd24tbXVsdGktdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXN0aW9uLWRyb3Bkb3duLW11bHRpLXRlbXBsYXRlL3F1ZXN0aW9uLWRyb3Bkb3duLW11bHRpLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1kcm9wZG93bi1tdWx0aS10ZW1wbGF0ZS9xdWVzdGlvbi1kcm9wZG93bi1tdWx0aS10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBYSxVQUFVLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsWUFBWSxFQUF3QixNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxFQUFFLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBVTNDLE1BQU0sT0FBTyxzQ0FBc0M7SUFNakQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBTUQsSUFBYSxXQUFXLENBQUMsS0FBd0I7UUFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUss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QWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDbEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZELFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsQixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQy9GLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUFZO1FBQy9CLE9BQU8sT0FBc0IsQ0FBQztJQUNoQyxDQUFDOzhHQWhGVSxzQ0FBc0M7a0dBQXRDLHNDQUFzQyxpTUNsQm5ELG9pQkFVQTs7MkZEUWEsc0NBQXNDO2tCQUxsRCxTQUFTOytCQUNFLHNDQUFzQztpSUFrQnRDLE9BQU87c0JBQWhCLE1BQU07Z0JBRUUsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ08sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyAgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgLCBGb3JtQnVpbGRlcn0gZnJvbSAnQG5nLXN0YWNrL2Zvcm1zJztcbmltcG9ydCB7IFF1ZXN0aW9uQ2hlY2tCb3hUZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IFF1ZXN0aW9uQW5zd2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XG5pbXBvcnQgeyB2NCBhcyBndWlkR2VuZXJhdG9yIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBBbnN3ZXJDaGlsZE9mUXVlc3Rpb25Ecm9wRG93bk11bHRpVGVtcGxhdGVGb3JtSW50ZXJmYWNlLCBRdWVzdGlvbkRyb3BEb3duTXVsdGlUZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLWRyb3Bkb3duLW11bHRpLXRlbXBsYXRlLmZvcm0taW50ZXJmYWNlJztcbmltcG9ydCB7IFN1cnZleUxpYlNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdXJ2ZXktbGliLnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5zd2VyQ2hpbGRPZlF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlRm9ybUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mb3JtLWludGVyZmFjZXMvcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1kcm9wZG93bi1tdWx0aS10ZW1wbGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi1kcm9wZG93bi1tdWx0aS10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLWRyb3Bkb3duLW11bHRpLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Ecm9wZG93bk11bHRpVGVtcGxhdGVDb21wb25lbnQge1xuICBcbiAgZWxlbUlkID0gZ3VpZEdlbmVyYXRvcigpIGFzIHN0cmluZztcbiAgc3VydmV5UXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvO1xuICByRm9ybTogRm9ybUdyb3VwPFF1ZXN0aW9uRHJvcERvd25NdWx0aVRlbXBsYXRlRm9ybUludGVyZmFjZT47XG5cbiAgZ2V0IGZDdHJscygpIHtcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcbiAgfVxuXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xuICB9XG5cbiAgQE91dHB1dCgpIGVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFF1ZXN0aW9uQW5zd2VyTW9kZWw+KCk7XG5cbiAgQElucHV0KCkgaXNTaG93OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZXQgc2V0UXVlc3Rpb24odmFsdWU6IFN1cnZleVF1ZXN0aW9uRHRvKSB7XG4gICAgdGhpcy5zdXJ2ZXlRdWVzdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBpZDogdmFsdWUucXVlc3Rpb25JZCxcbiAgICAgIG5hbWU6IHZhbHVlLnF1ZXN0aW9uTmFtZSxcbiAgICAgIHRpdGxlOiB2YWx1ZS5xdWVzdGlvblRpdGxlLFxuICAgICAgdHlwZUlkOiB2YWx1ZS5xdWVzdGlvblR5cGVJZCxcbiAgICAgIGRlc2NyaXB0aW9uOiB2YWx1ZS5xdWVzdGlvbkRlc2NyaXB0aW9uXG4gICAgfSk7XG5cbiAgICB2YWx1ZS5zdXJ2ZXlBbnN3ZXJzLmZvckVhY2goc3VydmVyeUFuc3dlciA9PiB7XG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXJBcnJheS5wdXNoKHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPEFuc3dlckNoaWxkT2ZRdWVzdGlvbkRyb3BEb3duTXVsdGlUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgaWQ6IFtzdXJ2ZXJ5QW5zd2VyLmFuc3dlcklkXSxcbiAgICAgICAgdGl0bGU6IFtzdXJ2ZXJ5QW5zd2VyLmFuc3dlclRpdGxlXSxcbiAgICAgICAgaXNTZWxlY3RlZDogW2ZhbHNlXVxuICAgICAgfSkpXG4gICAgfSlcblxuICAgIGlmICh2YWx1ZS5pc1JlcXVpcmVkID09IHRydWUpIHtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIHRoaXMuaXNTaG93ID0gdmFsdWUuaXNWaXNhYmxlO1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IHZhbHVlLmlzUmVhZE9ubHk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgX3N1cnZleUxpYlNlcnZpY2U6IFN1cnZleUxpYlNlcnZpY2UpIHtcbiAgICB0aGlzLnJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25Ecm9wRG93bk11bHRpVGVtcGxhdGVGb3JtSW50ZXJmYWNlPih7XG4gICAgICBpZDogW251bGxdLFxuICAgICAgbmFtZTogW251bGxdLFxuICAgICAgdGl0bGU6IFtudWxsXSxcbiAgICAgIHR5cGVJZDogW251bGxdLFxuICAgICAgZGVzY3JpcHRpb246IFtudWxsXSxcbiAgICAgIGFuc3dlcjogW251bGxdLFxuICAgICAgYW5zd2VyQXJyYXk6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PEFuc3dlckNoaWxkT2ZRdWVzdGlvbkRyb3BEb3duTXVsdGlUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KFtdKVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnZhbHVlQ2hhbmdlcy5waXBlKCkucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XG4gICAgICB0aGlzLmVtaXR0ZXIuZW1pdCh7XG4gICAgICAgIFF1ZXN0aW9uSWQ6IGZvcm1WYWx1ZS5pZCxcbiAgICAgICAgSXNWYWxpZDogdGhpcy5mQ3RybHMuYW5zd2VyLnZhbGlkLFxuICAgICAgICBBbnN3ZXI6IHZhbHVlXG4gICAgICB9KVxuICAgIH0pO1xuXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKG51bGwpO1xuXG4gICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zdXJ2ZXlBbnN3ZXJzT2JzcnZcbiAgICAgIC5waXBlKG1hcCh4ID0+IHguZGVmYXVsdEFuc3dlcnMuZmlsdGVyKHggPT4geC5RdWVzdGlvbklkID09IHRoaXMuZkN0cmxzLmlkLnZhbHVlKSkpXG4gICAgICAucGlwZShmaWx0ZXIoeCA9PiB4Lmxlbmd0aCA+IDApKS5waXBlKG1hcCh4ID0+IHguYXQoMCkpKVxuICAgICAgLnN1YnNjcmliZShhbnN3ZXIgPT4ge1xuICAgICAgICBjb25zdCBkaXN0aW5jdEFycmF5ID0gYW5zd2VyLkFuc3dlcklkQXJyLmZpbHRlcigobiwgaSkgPT4gYW5zd2VyLkFuc3dlcklkQXJyLmluZGV4T2YobikgPT09IGkpO1xuICAgICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuc2V0VmFsdWUoZGlzdGluY3RBcnJheSk7XG4gICAgICB9KVxuICB9XG5cbiAgY29udmVydFRvRm9ybUNvbnRyb2woZWxlbWVudDogYW55KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgRm9ybUNvbnRyb2w7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJxdWFzdGlvblwiIFthdHRyLmlkXT1cIidxdWVzdGlvbl8nK2ZDdHJscy5pZC52YWx1ZVwiICBbbmdDbGFzc109XCJ7J2ludmFsaWQtcXVlc3Rpb24nOiBmQ3RybHMuYW5zd2VyLmludmFsaWQgICwgJ2Qtbm9uZSc6aXNTaG93ICE9IHRydWV9XCI+XG4gICAgPGgzIGNsYXNzPVwicXVhc3Rpb24tdGl0bGUgXCI+XG4gICAgICAgIHt7ZkN0cmxzLnRpdGxlLnZhbHVlfX1cbiAgICA8L2gzPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXF1YXN0aW9uXCI+XG4gICAgICAgIDxuZy1zZWxlY3QgW2l0ZW1zXT1cInRoaXMuZkN0cmxzLmFuc3dlckFycmF5LnZhbHVlXCIgYmluZFZhbHVlPVwiaWRcIiBiaW5kTGFiZWw9XCJ0aXRsZVwiICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udmVydFRvRm9ybUNvbnRyb2woZkN0cmxzLmFuc3dlcilcIiAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBbbXVsdGlwbGVdPVwidHJ1ZVwiPlxuICAgICAgICAgPC9uZy1zZWxlY3Q+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
package/esm2022/lib/components/question-dropdown-template/question-dropdown-template.component.mjs
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';
|
|
4
|
+
import { debounceTime, filter, map } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ng-stack/forms";
|
|
7
|
+
import * as i2 from "../../services/survey-lib.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
|
+
this.isShow = value.isVisable;
|
|
31
|
+
this.isDisabled = value.isReadOnly;
|
|
32
|
+
}
|
|
33
|
+
constructor(_formBuilder, _surveyLibService) {
|
|
34
|
+
this._formBuilder = _formBuilder;
|
|
35
|
+
this._surveyLibService = _surveyLibService;
|
|
36
|
+
this.emitter = new EventEmitter();
|
|
37
|
+
this.isShow = true;
|
|
38
|
+
this.isDisabled = false;
|
|
39
|
+
this.rForm = this._formBuilder.group({
|
|
40
|
+
id: [null],
|
|
41
|
+
name: [null],
|
|
42
|
+
title: [null],
|
|
43
|
+
typeId: [null],
|
|
44
|
+
description: [null],
|
|
45
|
+
answer: [null]
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
ngOnInit() {
|
|
49
|
+
this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {
|
|
50
|
+
const formValue = this.rForm.value;
|
|
51
|
+
this.emitter.emit({
|
|
52
|
+
QuestionId: formValue.id,
|
|
53
|
+
IsValid: this.fCtrls.answer.valid,
|
|
54
|
+
Answer: value
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
this.fCtrls.answer.setValue(null);
|
|
58
|
+
this._surveyLibService.surveyAnswersObsrv
|
|
59
|
+
.pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))
|
|
60
|
+
.pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))
|
|
61
|
+
.subscribe(answer => {
|
|
62
|
+
this.fCtrls.answer.setValue(answer.AnswerId);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
convertToFormControl(element) {
|
|
66
|
+
return element;
|
|
67
|
+
}
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionDropdownTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SurveyLibService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionDropdownTemplateComponent, selector: "lib-question-dropdown-template", inputs: { isShow: "isShow", isDisabled: "isDisabled", setQuestion: "setQuestion" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\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)\" [disabled]=\"isDisabled\">\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"] }] }); }
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionDropdownTemplateComponent, decorators: [{
|
|
72
|
+
type: Component,
|
|
73
|
+
args: [{ selector: 'lib-question-dropdown-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\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)\" [disabled]=\"isDisabled\">\n <option *ngFor=\"let item of surveyQuestion?.surveyAnswers\" [value]=\"item.answerId\">{{item.answerTitle}}</option>\n </select>\n </div>\n</div>\n" }]
|
|
74
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SurveyLibService }]; }, propDecorators: { emitter: [{
|
|
75
|
+
type: Output
|
|
76
|
+
}], isShow: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], isDisabled: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], setQuestion: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}] } });
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUc1RSxPQUFPLEVBQUUsWUFBWSxFQUF3QixNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFVdkUsTUFBTSxPQUFPLGlDQUFpQztJQUk1QyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFNRCxJQUFhLFdBQVcsQ0FBQyxLQUF3QjtRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUNwQixFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDcEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ3hC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aEMsQ0FBQzs4R0FwRVUsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsMkxDakI5QyxpakJBVUE7OzJGRE9hLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDRSxnQ0FBZ0M7aUlBZ0JoQyxPQUFPO3NCQUFoQixNQUFNO2dCQUVFLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNPLFdBQVc7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAbmctc3RhY2svZm9ybXMnO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IFF1ZXN0aW9uRHJvcGRvd25UZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlLmZvcm0taW50ZXJmYWNlJztcbmltcG9ydCB7IFF1ZXN0aW9uUmFkaW9CdXR0b25UZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvcXVlc3Rpb24tYW5zd2VyLm1vZGVsJztcbmltcG9ydCB7IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL2RlZmF1bHQtcXVlc3Rpb24tYW5zd2Vycy5kdG8nO1xuaW1wb3J0IHsgU3VydmV5TGliU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N1cnZleS1saWIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Ecm9wZG93blRlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc3VydmV5UXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvO1xuICByRm9ybTogRm9ybUdyb3VwPFF1ZXN0aW9uRHJvcGRvd25UZW1wbGF0ZUZvcm1JbnRlcmZhY2U+O1xuXG4gIGdldCBmQ3RybHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuckZvcm0uY29udHJvbHM7XG4gIH1cblxuICBnZXQgcXVlc3Rpb25UeXBlRW51bSgpIHtcbiAgICByZXR1cm4gUXVlc3Rpb25UeXBlRW51bTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBlbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxRdWVzdGlvbkFuc3dlck1vZGVsPigpO1xuXG4gIEBJbnB1dCgpIGlzU2hvdzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBTdXJ2ZXlRdWVzdGlvbkR0bykge1xuICAgIHRoaXMuc3VydmV5UXVlc3Rpb24gPSB2YWx1ZTtcbiAgICB0aGlzLnJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgaWQ6IHZhbHVlLnF1ZXN0aW9uSWQsXG4gICAgICBuYW1lOiB2YWx1ZS5xdWVzdGlvbk5hbWUsXG4gICAgICB0aXRsZTogdmFsdWUucXVlc3Rpb25UaXRsZSxcbiAgICAgIHR5cGVJZDogdmFsdWUucXVlc3Rpb25UeXBlSWQsXG4gICAgICBkZXNjcmlwdGlvbjogdmFsdWUucXVlc3Rpb25EZXNjcmlwdGlvblxuICAgIH0pO1xuXG4gICAgaWYgKHZhbHVlLmlzUmVxdWlyZWQgPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc1Nob3cgPSB2YWx1ZS5pc1Zpc2FibGU7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gdmFsdWUuaXNSZWFkT25seTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciAscHJpdmF0ZSAgX3N1cnZleUxpYlNlcnZpY2UgOlN1cnZleUxpYlNlcnZpY2UpIHtcbiAgICB0aGlzLnJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25Ecm9wZG93blRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xuICAgICAgaWQ6IFtudWxsXSxcbiAgICAgIG5hbWU6IFtudWxsXSxcbiAgICAgIHRpdGxlOiBbbnVsbF0sXG4gICAgICB0eXBlSWQ6IFtudWxsXSxcbiAgICAgIGRlc2NyaXB0aW9uOiBbbnVsbF0sXG4gICAgICBhbnN3ZXI6IFtudWxsXSBcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZkN0cmxzLmFuc3dlci52YWx1ZUNoYW5nZXMucGlwZSgpLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLnJGb3JtLnZhbHVlO1xuICAgICAgdGhpcy5lbWl0dGVyLmVtaXQoe1xuICAgICAgICBRdWVzdGlvbklkOiBmb3JtVmFsdWUuaWQsXG4gICAgICAgIElzVmFsaWQ6IHRoaXMuZkN0cmxzLmFuc3dlci52YWxpZCxcbiAgICAgICAgQW5zd2VyOiB2YWx1ZVxuICAgICAgfSlcbiAgICB9KTtcblxuICAgIHRoaXMuZkN0cmxzLmFuc3dlci5zZXRWYWx1ZShudWxsKTtcblxuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc3VydmV5QW5zd2Vyc09ic3J2XG4gICAgLnBpcGUobWFwKHg9PiB4LmRlZmF1bHRBbnN3ZXJzLmZpbHRlcih4PT54LlF1ZXN0aW9uSWQgPT0gdGhpcy5mQ3RybHMuaWQudmFsdWUpKSlcbiAgICAucGlwZShmaWx0ZXIoeD0+eC5sZW5ndGggID4gMCkpLnBpcGUobWFwKHg9PiB4LmF0KDApKSlcbiAgICAuc3Vic2NyaWJlKGFuc3dlcj0+e1xuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKGFuc3dlci5BbnN3ZXJJZCk7XG4gICAgfSlcbiAgfVxuXG4gIGNvbnZlcnRUb0Zvcm1Db250cm9sKGVsZW1lbnQ6IGFueSkge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEZvcm1Db250cm9sO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicXVhc3Rpb25cIiBbYXR0ci5pZF09XCIncXVlc3Rpb25fJytmQ3RybHMuaWQudmFsdWVcIiAgW25nQ2xhc3NdPVwieydpbnZhbGlkLXF1ZXN0aW9uJzogZkN0cmxzLmFuc3dlci5pbnZhbGlkICAsICdkLW5vbmUnOmlzU2hvdyAhPSB0cnVlfVwiPlxuICAgIDxoMyBjbGFzcz1cInF1YXN0aW9uLXRpdGxlIFwiPlxuICAgICAgICB7e2ZDdHJscy50aXRsZS52YWx1ZX19XG4gICAgPC9oMz5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1xdWFzdGlvblwiPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW2Zvcm1Db250cm9sXT1cImNvbnZlcnRUb0Zvcm1Db250cm9sKGZDdHJscy5hbnN3ZXIpXCIgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCI+XG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN1cnZleVF1ZXN0aW9uPy5zdXJ2ZXlBbnN3ZXJzXCIgW3ZhbHVlXT1cIml0ZW0uYW5zd2VySWRcIj57e2l0ZW0uYW5zd2VyVGl0bGV9fTwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|