survery-lib 2.1.35 → 2.1.36

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.
@@ -1 +1 @@
1
- {"version":3,"file":"survery-lib.mjs","sources":["../../../projects/survery-lib/src/shared/enums/question-type.enum.ts","../../../projects/survery-lib/src/shared/enums/input-type.enum.ts","../../../projects/survery-lib/src/lib/core/states/entites/question.entity.ts","../../../projects/survery-lib/src/lib/core/states/entites/rule.entity.ts","../../../projects/survery-lib/src/lib/core/states/survey-store/survey.selector.ts","../../../projects/survery-lib/src/lib/core/states/entites/question-group.entity.ts","../../../projects/survery-lib/src/lib/core/states/survey-store/question-group.selector.ts","../../../projects/survery-lib/src/lib/core/states/survey-store/question.selector.ts","../../../projects/survery-lib/src/lib/core/states/survey-store/survey.action.ts","../../../projects/survery-lib/src/shared/enums/evaluation-type.enum.ts","../../../projects/survery-lib/src/lib/services/survey-lib.service.ts","../../../projects/survery-lib/src/shared/enums/Logic-Property.enum.ts","../../../projects/survery-lib/src/shared/enums/operator.enum.ts","../../../projects/survery-lib/src/lib/usecases/check-rule-exps.usecase.ts","../../../projects/survery-lib/src/lib/validators/phone.validator.ts","../../../projects/survery-lib/src/lib/directives/masked-for-min-max.directive.ts","../../../projects/survery-lib/src/lib/directives/masked-for-max-length.directive.ts","../../../projects/survery-lib/src/lib/pipes/text-box-type-attr.pipe.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.html","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.ts","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.html","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.ts","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.html","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.ts","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.html","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.ts","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.html","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.ts","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.html","../../../projects/survery-lib/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.ts","../../../projects/survery-lib/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.html","../../../projects/survery-lib/src/lib/services/lib-config.service.ts","../../../projects/survery-lib/src/lib/services/api.service.ts","../../../projects/survery-lib/src/lib/pipes/find-question.pipe.ts","../../../projects/survery-lib/src/lib/components/question-cascade-template/question-cascade-template.component.ts","../../../projects/survery-lib/src/lib/components/question-cascade-template/question-cascade-template.component.html","../../../projects/survery-lib/src/lib/components/question-feedback-template/question-feedback-template.component.ts","../../../projects/survery-lib/src/lib/components/question-feedback-template/question-feedback-template.component.html","../../../projects/survery-lib/src/lib/components/question-institutions-template/question-institutions-template.component.ts","../../../projects/survery-lib/src/lib/components/question-institutions-template/question-institutions-template.component.html","../../../projects/survery-lib/src/lib/pipes/filter-question.pipe.ts","../../../projects/survery-lib/src/lib/survery-lib.component.ts","../../../projects/survery-lib/src/lib/survey-lib.component.html","../../../projects/survery-lib/src/lib/pipes/default-question-answer.pipe.ts","../../../projects/survery-lib/src/lib/pipes/default-question-answers.pipe.ts","../../../projects/survery-lib/src/lib/core/states/survey-store/survey.reducer.ts","../../../projects/survery-lib/src/shared/enums/logic-action.enum.ts","../../../projects/survery-lib/src/lib/core/states/survey-store/survey.effect.ts","../../../projects/survery-lib/src/lib/survery-lib.module.ts","../../../projects/survery-lib/src/shared/models/survery-question-result.model.ts","../../../projects/survery-lib/src/public-api.ts","../../../projects/survery-lib/src/survery-lib.ts"],"sourcesContent":["export enum QuestionTypeEnum {\r\n RadioButton = 1,\r\n CheckBox = 2,\r\n DropDown = 3,\r\n Boolean = 4,\r\n TextInput = 5,\r\n Matrix = 6,\r\n DropDownMulti = 7 ,\r\n Cascade = 8 ,\r\n FeedBack = 9 ,\r\n Institutions = 10,\r\n}","export enum InputTypeEnum {\r\n Color = 1,\r\n Date = 2,\r\n DateTime = 3,\r\n Email = 4,\r\n Number = 5,\r\n Password = 6,\r\n Text = 7,\r\n Phone = 8 ,\r\n Stars = 20 ,\r\n Pagination =21\r\n}","import { EntityAdapter, EntityState, createEntityAdapter } from \"@ngrx/entity\";\r\nimport { QuestionTypeEnum } from \"../../../../shared/enums/question-type.enum\";\r\nimport { InputTypeEnum } from \"../../../../shared/enums/input-type.enum\";\r\nimport { SurveyQuestionDto } from \"../../../../shared/dtos/survey-question.dto\";\r\n\r\nexport function selectQuestionId(a: QuestionNgrxModel) {\r\n return a.questionId;\r\n}\r\n\r\nexport const questionAdapter: EntityAdapter<QuestionNgrxModel> = createEntityAdapter<QuestionNgrxModel>({\r\n selectId: selectQuestionId\r\n});\r\n\r\nexport interface QuestionEntityState extends EntityState<QuestionNgrxModel> { }\r\n\r\nexport interface QuestionNgrxModel {\r\n surveyPageId:number;\r\n questionGroupId: number;\r\n questionId;\r\n questionType:QuestionTypeEnum;\r\n inputTypeId:InputTypeEnum;\r\n isQuestionGroup:boolean;\r\n answerId;\r\n answerIdArr;\r\n answerText;\r\n answerLevelId ?:number;\r\n isRequired:boolean;\r\n isValid:boolean;\r\n order: number;\r\n isDisabled :boolean;\r\n isShow:boolean;\r\n isDisabled_default :boolean;\r\n isShow_default:boolean;\r\n parentQuestionId;\r\n questionAllInfo : SurveyQuestionDto;\r\n maxLevelValue?: number;\r\n}","import { EntityAdapter, EntityState, createEntityAdapter } from \"@ngrx/entity\";\r\nimport { SurveyRuleDto } from \"../../../../shared/dtos/survey-rule.dto\";\r\n\r\nexport function selectRuleId(a: RuleNgrxModel) {\r\n return a.ruleId;\r\n}\r\n\r\nexport const ruleAdapter: EntityAdapter<RuleNgrxModel> = createEntityAdapter<RuleNgrxModel>({\r\n selectId: selectRuleId\r\n});\r\n\r\nexport interface RuleEntityState extends EntityState<RuleNgrxModel> { }\r\n\r\nexport interface RuleNgrxModel extends SurveyRuleDto {\r\n}","import { createFeatureSelector, createSelector } from \"@ngrx/store\";\r\nimport { SurveyState } from \"./survey.reducer\";\r\nimport { questionAdapter } from \"../entites/question.entity\";\r\nimport { questionGroupAdapter } from \"../entites/question-group.entity\";\r\nimport { ruleAdapter } from \"../entites/rule.entity\";\r\n\r\nconst { selectAll, selectIds } = questionAdapter.getSelectors();\r\n\r\nconst selectSurveyData = createFeatureSelector<SurveyState>('survey-lib');\r\n\r\nconst selectedPageId = createSelector(selectSurveyData, (state) => state.selectedPageId);\r\n\r\nconst showedSurveyPages = createSelector(selectSurveyData, (state) => {\r\n var pageArr = selectAll(state.questionArr).filter(x => x.isShow == true).map(x => x.surveyPageId);\r\n const distinctArray = pageArr.filter((n, i) => pageArr.indexOf(n) === i);\r\n return distinctArray.sort((a, b) => a - b);\r\n});\r\n\r\nconst selectedPageIndex = createSelector(showedSurveyPages, selectSurveyData, (pageArr: number[], state) => {\r\n return pageArr.findIndex(x => x == state.selectedPageId);\r\n});\r\n\r\nconst isFirstPage = createSelector(showedSurveyPages, selectSurveyData, (pageArr: number[], state) => {\r\n if (pageArr.length > 0) {\r\n return pageArr.findIndex(x => x == state.selectedPageId) == 0;\r\n }\r\n return true;\r\n});\r\n\r\nconst isLastPage = createSelector(showedSurveyPages, selectSurveyData, (pageArr: number[], state) => {\r\n return pageArr.findIndex(x => x == state.selectedPageId) == (pageArr.length - 1);\r\n});\r\n\r\n\r\nconst ruleArr = createSelector(selectSurveyData, (state) => ruleAdapter.getSelectors().selectAll(state.ruleArr));\r\n\r\nconst institutionArr = createSelector(selectSurveyData, (state) => state.InstitutionArr);\r\n\r\nexport const surveySelectors = {\r\n selectedPageId,\r\n selectedPageIndex,\r\n showedSurveyPages,\r\n isFirstPage,\r\n isLastPage,\r\n ruleArr ,\r\n institutionArr\r\n}\r\n\r\n","import { EntityAdapter, EntityState, createEntityAdapter } from \"@ngrx/entity\";\r\nimport { QuestionTypeEnum } from \"../../../../shared/enums/question-type.enum\";\r\nimport { InputTypeEnum } from \"../../../../shared/enums/input-type.enum\";\r\n\r\nexport function selectQuestionGroupId(a: QuestionGroupNgrxModel) {\r\n return a.questionGroupId;\r\n}\r\n\r\nexport const questionGroupAdapter: EntityAdapter<QuestionGroupNgrxModel> = createEntityAdapter<QuestionGroupNgrxModel>({\r\n selectId: selectQuestionGroupId\r\n});\r\n\r\nexport interface QuestionGroupEntityState extends EntityState<QuestionGroupNgrxModel> { }\r\n\r\nexport interface QuestionGroupNgrxModel {\r\n questionGroupId: number;\r\n questionGroupName: string;\r\n questionGroupDescription: string ;\r\n surveyPageId:number;\r\n}","import { createFeatureSelector, createSelector } from \"@ngrx/store\";\r\nimport { questionGroupAdapter } from \"../entites/question-group.entity\";\r\nimport { questionAdapter } from \"../entites/question.entity\";\r\nimport { SurveyState } from \"./survey.reducer\";\r\n\r\nconst { selectAll, selectIds } = questionGroupAdapter.getSelectors();\r\n\r\nconst selectSurveyData = createFeatureSelector<SurveyState>('survey-lib');\r\n\r\nconst pageQuestionGroups = createSelector(selectSurveyData, (state) => \r\n selectAll(state.questionGroupArr).filter(x => x.surveyPageId == state.selectedPageId));\r\n\r\nexport const questionGroupSelectors = {\r\n pageQuestionGroups \r\n}","import { createFeatureSelector, createSelector } from \"@ngrx/store\";\r\nimport { questionGroupAdapter } from \"../entites/question-group.entity\";\r\nimport { questionAdapter } from \"../entites/question.entity\";\r\nimport { SurveyState } from \"./survey.reducer\";\r\nimport { SurveyQuestionResult } from \"../../../../shared/models/survery-question-result.model\";\r\nimport { QuestionTypeEnum } from \"../../../../shared/enums/question-type.enum\";\r\n\r\nconst { selectAll, selectIds } = questionAdapter.getSelectors();\r\n\r\n\r\nconst selectSurveyData = createFeatureSelector<SurveyState>('survey-lib');\r\n\r\nconst allQuestions = createSelector(selectSurveyData, (state) => selectAll(state.questionArr));\r\n\r\nconst pageQuestions = createSelector(selectSurveyData, (state) => selectAll(state.questionArr).filter(x => x.surveyPageId == state.selectedPageId));\r\n\r\nconst questionAnswers = createSelector(selectSurveyData, (state) => selectAll(state.questionArr)\r\n.filter(x => x.isQuestionGroup != true).map(x => {\r\n if(x.questionType == QuestionTypeEnum.Institutions){\r\n return {\r\n SurveyPageIndex: x.surveyPageId,\r\n QuestionId: x.questionId,\r\n QuestionType: x.questionType,\r\n AnswerId:x.answerLevelId ,\r\n AnswerText: x.answerText,\r\n AnswerIdArr: x.answerIdArr ,\r\n AnswerLevelId: x.answerId \r\n } as SurveyQuestionResult\r\n }else{\r\n return {\r\n SurveyPageIndex: x.surveyPageId,\r\n QuestionId: x.questionId,\r\n QuestionType: x.questionType,\r\n AnswerId: x.answerId,\r\n AnswerText: x.answerText,\r\n AnswerIdArr: x.answerIdArr ,\r\n AnswerLevelId:x.answerLevelId \r\n } as SurveyQuestionResult\r\n }\r\n \r\n}))\r\n\r\nexport const questionSelectors = {\r\n allQuestions,\r\n pageQuestions ,\r\n questionAnswers\r\n}","import { createAction, props } from \"@ngrx/store\";\r\nimport { QuestionNgrxModel } from \"../entites/question.entity\";\r\nimport { RuleNgrxModel } from \"../entites/rule.entity\";\r\nimport { QuestionGroupNgrxModel } from \"../entites/question-group.entity\";\r\nimport { InstitutionDto } from \"../../../../shared/dtos/institution.dto\";\r\n\r\nconst loadSurvey = createAction('[Survey library] Load Survey', props<{ questionArr: QuestionNgrxModel[] , ruleArr:RuleNgrxModel[] ,\r\n questionGroupArr : QuestionGroupNgrxModel[] ,selectedPageId:number }>());\r\n\r\nconst addQuestion = createAction('[Survey library] Add Question',props<{question:QuestionNgrxModel}>())\r\nconst updateQuestionAnswer = createAction('[Survey library] Update Question Answer',props<{questionId:any , answer :any ,isValid : boolean}>());\r\nconst updateInstitutionQuestionAnswer = createAction('[Survey library] Update Institution Question Answer',\r\n props<{questionId:any , answer :any ,answerId:any ,answerLevelId:any ,isValid : boolean}>());\r\nconst updateQuestionShow = createAction('[Survey library] Update Question Show',props<{questionId:any ,isShow : boolean}>());\r\nconst updateQuestionsShow = createAction('[Survey library] Update Questions Show',props<{questionIds:any[], isShow : boolean}>());\r\nconst updateQuestionDisable = createAction('[Survey library] Update Question Disable',props<{questionId:any , isDisabled : boolean}>());\r\nconst updateQuestionsDisable = createAction('[Survey library] Update Questions Disable',props<{questionIds:any[] , isDisabled : boolean}>());\r\nconst updateQuestionRequired = createAction('[Survey library] Update Question Required',props<{questionId:any , isRequired : boolean}>());\r\nconst removeQuestion = createAction('[Survey library] Remove Question',props<{questionId:any}>())\r\n\r\nconst updatePageId = createAction('[Survey library] Update Page Id',props<{pageId:number}>());\r\n\r\nconst loadInstitutionArr = createAction('[Survey library] Load Institution Arr');\r\nconst loadInstitutionArrSuccess = createAction('[Survey library] Load Institution Arr Success',props<{institutionArr:InstitutionDto[]}>())\r\n\r\nexport const surveyActions ={\r\n loadSurvey ,\r\n addQuestion ,\r\n updateQuestionAnswer,\r\n updateInstitutionQuestionAnswer,\r\n updateQuestionShow,\r\n updateQuestionsShow,\r\n updateQuestionDisable,\r\n updateQuestionsDisable,\r\n updateQuestionRequired,\r\n removeQuestion ,\r\n updatePageId ,\r\n loadInstitutionArr,\r\n loadInstitutionArrSuccess\r\n}\r\n","export enum EvaluationTypeEnum {\r\n Stars = 1,\r\n Pagination = 2\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { SurveyDto } from '../../shared/dtos/survey.dto';\r\nimport { surveyAnswersSubjectDto } from '../../shared/dtos/survey-answers-subject.dto';\r\nimport { SurveyLanguageDto } from '../../shared/dtos/survey-language.dto';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\r\nimport { Store } from '@ngrx/store';\r\nimport { surveyActions } from '../core/states/survey-store/survey.action';\r\nimport { QuestionNgrxModel } from '../core/states/entites/question.entity';\r\nimport { QuestionTypeEnum } from '../../shared/enums/question-type.enum';\r\nimport { QuestionGroupNgrxModel } from '../core/states/entites/question-group.entity';\r\nimport { InputTypeEnum } from '../../shared/enums/input-type.enum';\r\nimport { EvaluationTypeEnum } from '../../shared/enums/evaluation-type.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SurveyLibService {\r\n\r\n private reloadSurveySubject: Subject<string> = new Subject<string>();\r\n\r\n get reloadSurveyObsrv() {\r\n return this.reloadSurveySubject.asObservable();\r\n }\r\n\r\n constructor(private _Store: Store) { }\r\n\r\n setSurveyData(survey: SurveyDto) {\r\n var questionArr: QuestionNgrxModel[] = [];\r\n var questionGroupArr: QuestionGroupNgrxModel[] = [];\r\n\r\n survey.surveyPages.forEach((page, pageIndex) => {\r\n page.surveyQuestionGroups.forEach(group => {\r\n questionGroupArr.push({\r\n questionGroupId: group.questionGroupId,\r\n questionGroupName: group.questionGroupName,\r\n questionGroupDescription: group.questionGroupDescription,\r\n surveyPageId: page.pageId\r\n });\r\n\r\n group.surveyQuestions.forEach(question => {\r\n var newQuestions = this.addQuestion(question, page.pageId, group.questionGroupId)\r\n questionArr.push(...newQuestions);\r\n });\r\n\r\n });\r\n });\r\n\r\n var pageIdArr = survey.surveyPages.map(x => x.pageId);\r\n\r\n this._Store.dispatch(surveyActions.loadSurvey({\r\n questionArr: questionArr,\r\n ruleArr: survey.surveyRules,\r\n questionGroupArr: questionGroupArr,\r\n selectedPageId: Math.min(...pageIdArr)\r\n }));\r\n }\r\n\r\n setsurveyAnswers(model: surveyAnswersSubjectDto) {\r\n\r\n model.defaultAnswers.forEach(answer => {\r\n\r\n if (answer.QuestionType == QuestionTypeEnum.TextInput ||\r\n answer.QuestionType == QuestionTypeEnum.FeedBack) {\r\n\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: answer.QuestionId,\r\n answer: answer.AnswerText,\r\n isValid: true\r\n }));\r\n }\r\n else if (answer.QuestionType == QuestionTypeEnum.CheckBox\r\n || answer.QuestionType == QuestionTypeEnum.DropDownMulti) {\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: answer.QuestionId,\r\n answer: answer.AnswerIdArr,\r\n isValid: true\r\n }));\r\n }\r\n else if (answer.QuestionType == QuestionTypeEnum.Institutions) {\r\n this._Store.dispatch(surveyActions.updateInstitutionQuestionAnswer({\r\n questionId: answer.QuestionId,\r\n answer: answer.AnswerText,\r\n answerId: answer.AnswerId,\r\n answerLevelId: answer.AnswerLevelId,\r\n isValid: true\r\n }));\r\n\r\n }\r\n else {\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: answer.QuestionId,\r\n answer: answer.AnswerId,\r\n isValid: true\r\n }));\r\n }\r\n })\r\n }\r\n\r\n setReloadSurvey() {\r\n this.reloadSurveySubject.next(guidGenerator());\r\n }\r\n\r\n private addQuestion(question: SurveyQuestionDto, pageIndex: number, questionGroupId: number): QuestionNgrxModel[] {\r\n var questionArr: QuestionNgrxModel[] = [];\r\n\r\n var questionNgrxModel: QuestionNgrxModel = {\r\n surveyPageId: pageIndex,\r\n questionId: question.questionId,\r\n questionType: question.questionTypeId,\r\n inputTypeId: question.surveyAnswers[0].inputTypeId,\r\n isQuestionGroup: question.questionTypeId == QuestionTypeEnum.Matrix || question.questionTypeId == QuestionTypeEnum.Institutions,\r\n answerId: null,\r\n answerIdArr: null,\r\n answerText: null,\r\n isRequired: question.isRequired,\r\n isValid: null,\r\n isDisabled: question.isReadOnly,\r\n isShow: question.isVisable,\r\n isDisabled_default: question.isReadOnly,\r\n isShow_default: question.isVisable,\r\n order: question.order,\r\n questionGroupId: questionGroupId,\r\n parentQuestionId: null,\r\n maxLevelValue: null,\r\n questionAllInfo: question,\r\n };\r\n\r\n if (question.questionTypeId == QuestionTypeEnum.FeedBack) {\r\n if (question.surveyAnswers[0].evaluationTypeId == EvaluationTypeEnum.Stars) {\r\n questionNgrxModel.inputTypeId = InputTypeEnum.Stars\r\n }\r\n else if (question.surveyAnswers[0].evaluationTypeId == EvaluationTypeEnum.Pagination) {\r\n questionNgrxModel.inputTypeId = InputTypeEnum.Pagination\r\n }\r\n }\r\n\r\n questionArr.push(questionNgrxModel);\r\n\r\n if (question.questionTypeId == QuestionTypeEnum.Matrix) {\r\n question.surveySubQuestions.forEach(subQuestion => {\r\n questionArr.push({\r\n surveyPageId: pageIndex,\r\n questionId: subQuestion.questionId,\r\n questionType: question.questionTypeId,\r\n inputTypeId: question.surveyAnswers[0].inputTypeId,\r\n isQuestionGroup: false,\r\n answerId: null,\r\n answerIdArr: null,\r\n answerText: null,\r\n isRequired: question.isRequired,\r\n isValid: null,\r\n order: question.order,\r\n isDisabled: question.isReadOnly,\r\n isShow: question.isVisable,\r\n isDisabled_default: question.isReadOnly,\r\n isShow_default: question.isVisable,\r\n parentQuestionId: question.questionId,\r\n questionGroupId: questionGroupId,\r\n questionAllInfo: question,\r\n maxLevelValue: null\r\n });\r\n });\r\n }\r\n\r\n if (question.questionTypeId == QuestionTypeEnum.Institutions) {\r\n questionNgrxModel.maxLevelValue = question.maxLevelValue;\r\n\r\n question.surveySubQuestionLevels.forEach(subQuestion => {\r\n questionArr.push({\r\n surveyPageId: pageIndex,\r\n questionId: subQuestion.questionId,\r\n questionType: question.questionTypeId,\r\n inputTypeId: question.surveyAnswers[0].inputTypeId,\r\n isQuestionGroup: false,\r\n answerId: null,\r\n answerIdArr: null,\r\n answerText: null,\r\n isRequired: subQuestion.level == 1 ? question.isRequired : false,\r\n isValid: null,\r\n isDisabled: question.isReadOnly,\r\n order: question.order,\r\n isShow: question.isVisable,\r\n isDisabled_default: question.isReadOnly,\r\n isShow_default: question.isVisable,\r\n parentQuestionId: question.questionId,\r\n questionGroupId: questionGroupId,\r\n questionAllInfo: question,\r\n maxLevelValue: null\r\n });\r\n });\r\n }\r\n\r\n return questionArr;\r\n }\r\n}\r\n","export enum LogicPropertyEnum{\r\n GreaterThan = 1 ,\r\n GreaterThanOrEqual = 2 ,\r\n LessThan = 3,\r\n LessThanOrEqual = 4 ,\r\n Equal = 5 ,\r\n NotEqual = 6,\r\n IsEmpty = 9 ,\r\n IsNotEmpty = 10 ,\r\n AnyOf =11,\r\n Then = 12\r\n}","export enum OperatorEnum {\r\n Or = 7,\r\n And =8\r\n}","import { Observable, of } from \"rxjs\";\r\nimport { UseCase } from \"./base/use-case\";\r\nimport { SurveyRuleDto } from \"../../shared/dtos/survey-rule.dto\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { QuestionChildOfSurveryLibFormInterface } from \"../../shared/form-interfaces/survery-lib.form-interface\";\r\nimport { RuleExpDto } from \"../../shared/dtos/rule-exp.dto\";\r\nimport { QuestionTypeEnum } from \"../../shared/enums/question-type.enum\";\r\nimport { LogicPropertyEnum } from \"../../shared/enums/Logic-Property.enum\";\r\nimport { OperatorEnum } from \"../../shared/enums/operator.enum\";\r\nimport { QuestionNgrxModel } from \"../core/states/entites/question.entity\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CheckRuleExpsUsecase implements UseCase<CheckRulesUsecaseModel, CheckRulesUsecaseResult>{\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n execute(params: CheckRulesUsecaseModel): Observable<CheckRulesUsecaseResult> {\r\n\r\n var useCaseResult: CheckRulesUsecaseResult = {\r\n exprestionResultArr: []\r\n };\r\n\r\n params.ruleExps.forEach(ruleExp => {\r\n const index = params.questions.findIndex(x => x.questionId == ruleExp.questionId);\r\n var questionGroupValue = params.questions.at(index);\r\n\r\n var result: boolean;\r\n\r\n if (questionGroupValue.questionType == QuestionTypeEnum.TextInput || questionGroupValue.questionType == QuestionTypeEnum.FeedBack) {\r\n result = this.checkRuleExpForAnswerText(ruleExp, questionGroupValue.answerText)\r\n }\r\n else if (questionGroupValue.questionType == QuestionTypeEnum.CheckBox || questionGroupValue.questionType == QuestionTypeEnum.DropDownMulti) {\r\n result = this.checkRuleExpForAnswerIdArr(ruleExp, questionGroupValue.answerIdArr);\r\n }\r\n else {\r\n result = this.checkRuleExpForAnswerId(ruleExp, questionGroupValue.answerId);\r\n }\r\n\r\n useCaseResult.exprestionResultArr.push(result);\r\n });\r\n\r\n // console.log(`Questions not passed ${useCaseResult.exprestionResultArr.filter(x => x == false).length}`);\r\n\r\n return of(useCaseResult);\r\n }\r\n\r\n private checkRuleExpForAnswerId(ruleExp: RuleExpDto, answerId: number) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId > answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId >= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId < answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId <= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Equal) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId == answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.NotEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId != answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answerId == null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answerId != null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.AnyOf) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) > -1\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Then) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) == -1\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerIdArr(ruleExp: RuleExpDto, answerIdArr: number[]) {\r\n var ruleExpResultArr: boolean[] = [];\r\n answerIdArr?.forEach(answer => {\r\n var isResult = this.checkRuleExpForAnswerId(ruleExp, answer);\r\n ruleExpResultArr.push(isResult);\r\n })\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerText(ruleExp: RuleExpDto, answer: string) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answer == null || answer == ''\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answer != null && answer != ''\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n\r\n if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n}\r\n\r\nexport class CheckRulesUsecaseModel {\r\n ruleExps: RuleExpDto[];\r\n questions: QuestionNgrxModel[];\r\n}\r\n\r\nexport class CheckRulesUsecaseResult {\r\n exprestionResultArr: boolean[];\r\n}","import { AbstractControl } from \"@angular/forms\";\r\n\r\nexport function PhoneValidator(control: AbstractControl) {\r\n if (control.value) {\r\n var phoneCode = control.value.trim().slice(0, 2);\r\n var phoneLength = control.value.trim().length;\r\n if (phoneCode != \"05\" || phoneLength != 10) {\r\n return { invalidPhone: true };\r\n }\r\n }\r\n return null;\r\n}","import { Directive, ElementRef, HostListener } from '@angular/core';\r\ndeclare var $: any;\r\n@Directive({\r\n selector: '[libMaskedForMinMax]'\r\n})\r\nexport class MaskedForMinMaxDirective {\r\n\r\n constructor(private el: ElementRef) { }\r\n\r\n @HostListener('keypress', ['$event'])\r\n onKeyUp(event: KeyboardEvent) {\r\n const input = event.target as HTMLInputElement;\r\n if (input.type === 'number' || input.type === 'text') {\r\n var min = null;\r\n var max = null;\r\n if (input.getAttribute('min') !== null) {\r\n min = parseInt(input.getAttribute('min'));\r\n }\r\n if (input.getAttribute('max') !== null) {\r\n max = parseInt(input.getAttribute('max'));\r\n }\r\n\r\n var inputVlaue: any = input.value;\r\n // allowed key array\r\n var keyArr = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'Backspace'];\r\n if (min != null || max != null) {\r\n if (keyArr.indexOf(event.key) == -1) {\r\n event.preventDefault();\r\n }\r\n\r\n if (input.selectionStart != null) {\r\n\r\n let firstPart = input.value.slice(0, input.selectionStart);\r\n let lastPart = input.value.slice(input.selectionEnd, input.value.length);\r\n\r\n inputVlaue = Number(firstPart + event.key + lastPart);\r\n }\r\n }\r\n\r\n if (min != null) {\r\n var allowed = min.length - 1;\r\n if (allowed > 0 && inputVlaue.length > allowed) {\r\n if (parseInt(inputVlaue) < min) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n if (max !== null) {\r\n if (parseInt(inputVlaue) > max) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[libMaskedForMaxLength]'\r\n})\r\nexport class MaskedForMaxLengthDirective {\r\n\r\n @HostListener('keypress', ['$event'])\r\n onKeyUp(event: KeyboardEvent) {\r\n const input = event.target as HTMLInputElement;\r\n var max = null;\r\n if (input.getAttribute('max') !== null) {\r\n max = parseInt(input.getAttribute('max'));\r\n }\r\n\r\n var inputVlaue: any = input.value;\r\n\r\n // allowed key array\r\n if (max !== null) {\r\n\r\n if (input.selectionStart != input.selectionEnd) {\r\n\r\n let firstPart = input.value.slice(0, input.selectionStart);\r\n let lastPart = input.value.slice(input.selectionEnd, input.value.length);\r\n inputVlaue = Number(firstPart + event.key + lastPart);\r\n }\r\n\r\n if (inputVlaue.length + 1 > max) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { InputTypeEnum } from '../../shared/enums/input-type.enum';\r\n\r\n@Pipe({\r\n name: 'textBoxTypeAttr'\r\n})\r\nexport class TextBoxTypeAttrPipe implements PipeTransform {\r\n\r\n transform(value: InputTypeEnum, ...args: unknown[]): string {\r\n if (value != null) {\r\n if (value == InputTypeEnum.Color) {\r\n return 'color';\r\n } else if (value == InputTypeEnum.Date) {\r\n return 'date';\r\n }\r\n else if (value == InputTypeEnum.DateTime) {\r\n return 'datetime-local';\r\n }\r\n else if (value == InputTypeEnum.Email) {\r\n return 'email';\r\n }\r\n else if (value == InputTypeEnum.Number) {\r\n return 'number';\r\n }\r\n else if (value == InputTypeEnum.Password) {\r\n return 'password';\r\n }\r\n else if (value == InputTypeEnum.Phone) {\r\n return 'Phone';\r\n }\r\n }\r\n\r\n return 'text';\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map, pairwise } from 'rxjs';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { InputTypeEnum } from '../../../shared/enums/input-type.enum';\r\nimport { PhoneValidator } from '../../validators/phone.validator';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { Store } from '@ngrx/store';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\n\r\n@Component({\r\n selector: 'lib-question-text-template',\r\n templateUrl: './question-text-template.component.html',\r\n styleUrls: ['./question-text-template.component.scss']\r\n})\r\nexport class QuestionTextTemplateComponent implements OnInit {\r\n\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionTextTemplateFormInterface>;\r\n customPatterns: null;\r\n isTextArea: boolean;\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n get inputTypeEnum() {\r\n return InputTypeEnum;\r\n }\r\n\r\n get questionMinMaxIndicator() {\r\n const formValue = this.rForm.value;\r\n if (formValue.inputMax != null || formValue.inputMin != null) {\r\n\r\n if (formValue.inputMax != null && formValue.inputMin != null) {\r\n return this.isArabicLang ? ` يجب أن تكون القيمة المدخلة من ` + formValue.inputMin + ' إلى ' + formValue.inputMax\r\n : `the value entered must be from ${formValue.inputMin} to ${formValue.inputMax}`;\r\n }\r\n else if (formValue.inputMin != null) {\r\n return this.isArabicLang ? `يجب أن تكون أقل قيمة للمدخل تساوي ${formValue.inputMin}`\r\n : `the minimum value of the input must be ${formValue.inputMin}`;\r\n }\r\n else if (formValue.inputMax != null) {\r\n return this.isArabicLang ? `يجب أن تكون أكبر قيمة للمدخل تساوي ${formValue.inputMax}`\r\n : `the maximum value of the input must be ${formValue.inputMax}`;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n\r\n @Input() isArabicLang: boolean = false;\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n\r\n this.isTextArea = value.questionAllInfo.isAdvanceTextArea;\r\n\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionAllInfo.questionName,\r\n title: value.questionAllInfo.questionTitle,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n description: value.questionAllInfo.questionDescription,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.questionAllInfo.surveyAnswers[0]?.answerId != null && value.questionAllInfo.surveyAnswers[0]?.answerId != undefined) {\r\n this.fCtrls.surveyAnswerId.setValue(value.questionAllInfo.surveyAnswers[0].answerId);\r\n this.fCtrls.inputTypeId.setValue(value.questionAllInfo.surveyAnswers[0].inputTypeId);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n\r\n if (value.questionAllInfo.surveyAnswers[0].inputTypeId == InputTypeEnum.Number) {\r\n if (value.questionAllInfo.surveyAnswers[0].inputMin != null) {\r\n this.fCtrls.inputMin.setValue(value.questionAllInfo.surveyAnswers[0].inputMin);\r\n this.fCtrls.answer.addValidators([Validators.min(value.questionAllInfo.surveyAnswers[0].inputMin)]);\r\n }\r\n\r\n if (value.questionAllInfo.surveyAnswers[0].inputMax != null) {\r\n this.fCtrls.inputMax.setValue(value.questionAllInfo.surveyAnswers[0].inputMax);\r\n this.fCtrls.answer.addValidators([Validators.max(value.questionAllInfo.surveyAnswers[0].inputMax)]);\r\n }\r\n\r\n if (value.questionAllInfo.surveyAnswers[0].inputMin != null || value.questionAllInfo.surveyAnswers[0].inputMax != null) {\r\n this.fCtrls.inputTypeId.setValue(InputTypeEnum.Text);\r\n }\r\n }\r\n else if (value.questionAllInfo.surveyAnswers[0].inputTypeId == InputTypeEnum.Text) {\r\n if (value.questionAllInfo.surveyAnswers[0].inputMin != null) {\r\n this.fCtrls.inputMin.setValue(value.questionAllInfo.surveyAnswers[0].inputMin);\r\n this.fCtrls.answer.addValidators([Validators.minLength(value.questionAllInfo.surveyAnswers[0].inputMin)]);\r\n }\r\n\r\n if (value.questionAllInfo.surveyAnswers[0].inputMax != null) {\r\n this.fCtrls.inputMax.setValue(value.questionAllInfo.surveyAnswers[0].inputMax);\r\n this.fCtrls.answer.addValidators([Validators.maxLength(value.questionAllInfo.surveyAnswers[0].inputMax)]);\r\n }\r\n }\r\n else if (value.questionAllInfo.surveyAnswers[0].inputTypeId == InputTypeEnum.Email) {\r\n this.fCtrls.answer.addValidators([Validators.email]);\r\n }\r\n else if (value.questionAllInfo.surveyAnswers[0].inputTypeId == InputTypeEnum.Phone) {\r\n this.fCtrls.answer.addValidators([PhoneValidator]);\r\n }\r\n\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n var question = this.questionArr().find(x => x.questionId == value.questionId);\r\n if (question?.answerText) {\r\n this.rForm.patchValue({\r\n answer: question.answerText,\r\n isDisabled: question.isDisabled,\r\n isShow: question.isShow\r\n }, { emitEvent: false });\r\n }\r\n\r\n this.toggleEnableAnswer(value.questionAllInfo.isReadOnly);\r\n }\r\n }\r\n\r\n @Input() set isDisabled(value: boolean) {\r\n this.toggleEnableAnswer(value);\r\n }\r\n\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\r\n private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionTextTemplateFormInterface>({\r\n id: new FormControl(null),\r\n name: new FormControl(null),\r\n title: new FormControl(null),\r\n typeId: new FormControl(null),\r\n description: new FormControl(null),\r\n surveyAnswerId: new FormControl(null),\r\n answer: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(true),\r\n inputTypeId: new FormControl(null),\r\n inputMin: new FormControl(null),\r\n inputMax: new FormControl(null),\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200), distinctUntilChanged()).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n if (formValue.inputTypeId == InputTypeEnum.Email) {\r\n const isRequired = this.fCtrls.answer.hasValidator(Validators.required);\r\n if (!isRequired) {\r\n if (value?.trim()) {\r\n this.fCtrls.answer.addValidators([Validators.email]);\r\n } else {\r\n this.fCtrls.answer.clearValidators();\r\n }\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: formValue.id,\r\n answer: value,\r\n isValid: this.fCtrls.answer.valid\r\n }))\r\n }, 100);\r\n\r\n });\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated answer\r\n if (oldValue?.answerText != newValue?.answerText && oldValue?.answerText == null) {\r\n this.fCtrls.answer.setValue(newValue?.answerText, { emitEvent: false });\r\n }\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n if (newValue?.isShow == false) {\r\n this.fCtrls.answer.setValue(null);\r\n }\r\n }\r\n });\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n\r\n private toggleEnableAnswer(isReadOnly: boolean) {\r\n if (isReadOnly == true) {\r\n this.fCtrls.answer.disable()\r\n } else {\r\n this.fCtrls.answer.enable()\r\n }\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n}\r\n","<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\r\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n <p *ngIf=\"questionMinMaxIndicator\" class=\"text-danger\">\r\n <small >{{questionMinMaxIndicator}}</small>\r\n </p> \r\n </h3>\r\n <div class=\"text-quastion\">\r\n <ng-container *ngIf=\"isTextArea == false else textAreaTemplate\">\r\n <input class=\"form-control\" libMaskedForMinMax\r\n *ngIf=\"fCtrls.inputTypeId.value == inputTypeEnum.Number else inputTextTypeNumberTemplate\"\r\n [attr.min]=\"fCtrls.inputMin.value\" [attr.max]=\"fCtrls.inputMax.value\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\r\n [disabled]=\"isDisabled\" [attr.type]=\"fCtrls.inputTypeId.value | textBoxTypeAttr\">\r\n </ng-container>\r\n <ng-template #textAreaTemplate>\r\n <textarea class=\"form-control\" rows=\"2\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\r\n [disabled]=\"isDisabled\"></textarea>\r\n </ng-template>\r\n </div>\r\n\r\n <ng-template #inputTextTypeNumberTemplate>\r\n <input class=\"form-control\" libMaskedForMaxLength \r\n [attr.max]=\"fCtrls.inputMax.value\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\r\n [disabled]=\"isDisabled\" [attr.type]=\"fCtrls.inputTypeId.value | textBoxTypeAttr\">\r\n </ng-template>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport {\r\n AnswerChildOfQuestionRadioButtonTemplateFormInterface,\r\n QuestionRadioButtonTemplateFormInterface\r\n} from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map, pairwise } from 'rxjs';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { Store } from '@ngrx/store';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\n\r\n@Component({\r\n selector: 'lib-question-radio-button-template',\r\n templateUrl: './question-radio-button-template.component.html',\r\n styleUrls: ['./question-radio-button-template.component.scss']\r\n})\r\nexport class QuestionRadioButtonTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionRadioButtonTemplateFormInterface>;\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionAllInfo.questionName,\r\n title: value.questionAllInfo.questionTitle,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n description: value.questionAllInfo.questionDescription,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n value.questionAllInfo.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionRadioButtonTemplateFormInterface>({\r\n id: new FormControl(surveryAnswer.answerId),\r\n title: new FormControl(surveryAnswer.answerTitle),\r\n isSelected: new FormControl(false)\r\n }))\r\n })\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n var question = this.questionArr().find(x => x.questionId == value.questionId);\r\n if (question?.answerId) {\r\n this.rForm.patchValue({answer : question.answerId,\r\n isDisabled: question.isDisabled,\r\n isShow: question.isShow\r\n },{emitEvent:false});\r\n this.fCtrls.answerArray.controls.find(x => x.value.id == question.answerId).controls.isSelected.setValue(true);\r\n }\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService ,\r\n private _Store:Store) {\r\n this.rForm = this._formBuilder.group<QuestionRadioButtonTemplateFormInterface>({\r\n id: new FormControl( null),\r\n name: new FormControl( null),\r\n title: new FormControl( null),\r\n typeId: new FormControl( null),\r\n description: new FormControl( null),\r\n answer: new FormControl( null),\r\n isDisabled: new FormControl( false),\r\n isShow: new FormControl( true),\r\n answerArray: this._formBuilder.array<FormGroup< AnswerChildOfQuestionRadioButtonTemplateFormInterface>>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200), distinctUntilChanged()).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: formValue.id,\r\n answer: value,\r\n isValid: this.fCtrls.answer.valid\r\n }))\r\n });\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated answer\r\n if (oldValue?.answerId != newValue?.answerId) {\r\n this.fCtrls.answer.setValue(newValue?.answerId,{emitEvent:false});\r\n\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == newValue?.answerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n }\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n if (newValue?.isShow == false) {\r\n this.fCtrls.answer.setValue(null);\r\n }\r\n }\r\n });\r\n }\r\n\r\n onChangeAnswer(item: FormGroup< AnswerChildOfQuestionRadioButtonTemplateFormInterface>) {\r\n this.fCtrls.answer.setValue(item.value.id);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n <div class=\"radio-button-quastion\">\r\n <div class=\"form-check form-check-radio form-check-inline\" \r\n *ngFor=\"let item of fCtrls.answerArray.controls;let i = index\">\r\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item)\" [disabled]=\"fCtrls.isDisabled.value\"\r\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\r\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\" [innerHTML]=\"item.value.title\"></label>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport {\r\n AnswerChildOfQuestionCheckBoxTemplateFormInterface,\r\n QuestionCheckBoxTemplateFormInterface\r\n} from '../../../shared/form-interfaces/question-check-box-template.form-interface';\r\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map, pairwise } from 'rxjs';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { Store } from '@ngrx/store';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\n\r\n@Component({\r\n selector: 'lib-question-check-box-template',\r\n templateUrl: './question-check-box-template.component.html',\r\n styleUrls: ['./question-check-box-template.component.scss']\r\n})\r\nexport class QuestionCheckBoxTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionCheckBoxTemplateFormInterface>;\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionAllInfo.questionName,\r\n title: value.questionAllInfo.questionTitle,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n description: value.questionAllInfo.questionDescription,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n value.questionAllInfo.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionCheckBoxTemplateFormInterface>({\r\n id: new FormControl(surveryAnswer.answerId),\r\n title: new FormControl(surveryAnswer.answerTitle),\r\n isSelected: new FormControl(false)\r\n }))\r\n })\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n var question = this.questionArr().find(x => x.questionId == value.questionId);\r\n if (question?.answerIdArr) {\r\n this.rForm.patchValue({\r\n answer: question.answerIdArr,\r\n isDisabled: question.isDisabled,\r\n isShow: question.isShow\r\n }, { emitEvent: false });\r\n\r\n question.answerIdArr.forEach(answerId => {\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService\r\n , private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionCheckBoxTemplateFormInterface>({\r\n id: new FormControl(null),\r\n name: new FormControl(null),\r\n title: new FormControl(null),\r\n typeId: new FormControl(null),\r\n description: new FormControl(null),\r\n answer: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(true),\r\n answerArray: this._formBuilder.array<FormGroup<AnswerChildOfQuestionCheckBoxTemplateFormInterface>>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: formValue.id,\r\n answer: value,\r\n isValid: this.fCtrls.answer.valid\r\n }))\r\n });\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated answer\r\n if (oldValue?.answerIdArr != newValue?.answerIdArr) {\r\n const distinctArray = newValue?.answerIdArr.filter((n, i) => newValue?.answerIdArr.indexOf(n) === i);\r\n this.fCtrls.answer.setValue(distinctArray, { emitEvent: false });\r\n\r\n newValue?.answerIdArr.forEach(answerId => {\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n }\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n if (newValue?.isShow == false) {\r\n this.fCtrls.answer.setValue(null);\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n onChangeAnswer(item: FormGroup<AnswerChildOfQuestionBooleanTemplateFormInterface>, event: Event) {\r\n var answerArr: number[] = this.fCtrls.answer.value || [];\r\n\r\n if ((event.target as any).checked == true) {\r\n answerArr.push(item.value.id);\r\n } else {\r\n answerArr = answerArr.filter(x => x != item.value.id);\r\n }\r\n\r\n answerArr = answerArr.length == 0 ? [] : answerArr;\r\n this.fCtrls.answer.setValue(answerArr);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" \r\n[ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"fCtrls.title.value\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n\r\n <div class=\"checkbox-button-quastion\">\r\n <div class=\"form-check check-box-form-check\" *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\r\n <input type=\"checkbox\" class=\"form-check-input\" id=\"{{elemId}}__checkbox_{{i}}\" [disabled]=\"fCtrls.isDisabled.value\"\r\n (change)=\"onChangeAnswer(item ,$event)\" [checked]=\"item.value.isSelected == true? true : null\">\r\n <label class=\"form-check-label \" for=\"{{elemId}}__checkbox_{{i}}\" [innerHTML]=\"item.value.title\"></label>\r\n </div>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionDropdownTemplateFormInterface } from '../../../shared/form-interfaces/question-dropdown-template.form-interface';\r\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map, pairwise } from 'rxjs';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { Store } from '@ngrx/store';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\nimport { SubSink } from 'subsink';\r\n\r\n@Component({\r\n selector: 'lib-question-dropdown-template',\r\n templateUrl: './question-dropdown-template.component.html',\r\n styleUrls: ['./question-dropdown-template.component.scss']\r\n})\r\nexport class QuestionDropdownTemplateComponent implements OnInit, OnDestroy {\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionDropdownTemplateFormInterface>;\r\n subs = new SubSink();\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionAllInfo.questionName,\r\n title: value.questionAllInfo.questionTitle,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n description: value.questionAllInfo.questionDescription,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n var question = this.questionArr().find(x => x.questionId == value.questionId);\r\n if (question?.answerId) {\r\n this.rForm.controls.answer.setValue(question.answerId, { emitEvent: false });\r\n }\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\r\n private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionDropdownTemplateFormInterface>({\r\n id: new FormControl(null),\r\n name: new FormControl(null),\r\n title: new FormControl(null),\r\n typeId: new FormControl(null),\r\n description: new FormControl(null),\r\n answer: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(true),\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subs.unsubscribe();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subs.sink = this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200), distinctUntilChanged()).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: formValue.id,\r\n answer: value,\r\n isValid: this.fCtrls.answer.valid,\r\n }));\r\n\r\n this.emitter.emit({\r\n QuestionId: formValue.id,\r\n IsValid: this.fCtrls.answer.valid,\r\n Answer: value,\r\n SurveyAnswerId: this.fCtrls.answer.value\r\n })\r\n });\r\n\r\n this.subs.sink = this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated answer\r\n if (oldValue?.answerId != newValue?.answerId) {\r\n this.fCtrls.answer.setValue(newValue?.answerId, { emitEvent: false });\r\n }\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n if (newValue?.isShow == false) {\r\n this.fCtrls.answer.setValue(null);\r\n }\r\n }\r\n });\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"fCtrls.title.value\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion?.isRequired\">*</span>\r\n </h3>\r\n <div class=\"text-quastion text-quastion__dropdown\">\r\n <ng-select [items]=\"surveyQuestion?.surveyAnswers\" bindValue=\"answerId\" bindLabel=\"answerTitle\" class=\"form-control\"\r\n [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"false\">\r\n </ng-select>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { SurveyQuestionGroupDto } from '../../../shared/dtos/survey-question-group.dto';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { SurveySubQuestionDto } from '../../../shared/dtos/survey-sub-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionMatrixTemplateFormInterface, SubQuestionChildOfQuestionMatrixTemplateFormInterface } from '../../../shared/form-interfaces/question-matrix-template.form-interface';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { debounceTime, distinctUntilChanged, filter, map, pairwise } from 'rxjs';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { Store } from '@ngrx/store';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\n\r\n@Component({\r\n selector: 'lib-question-matrix-template',\r\n templateUrl: './question-matrix-template.component.html',\r\n styleUrls: ['./question-matrix-template.component.scss']\r\n})\r\nexport class QuestionMatrixTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionMatrixTemplateFormInterface>;\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n value.questionAllInfo.surveySubQuestions.forEach(x => {\r\n var group = this._formBuilder.group<SubQuestionChildOfQuestionMatrixTemplateFormInterface>({\r\n subQuestionId: new FormControl(x.questionId),\r\n questionTitle: new FormControl(x.questionTitle),\r\n answer: new FormControl(null),\r\n });\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n group.controls.answer.addValidators([Validators.required]);\r\n group.controls.answer.updateValueAndValidity();\r\n }\r\n\r\n group.controls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: group.value.subQuestionId,\r\n answer: group.value.answer,\r\n isValid: group.controls.answer.valid\r\n }));\r\n });\r\n\r\n var question = this.questionArr().find(x => x.questionId == group.value.subQuestionId);\r\n if (question != null) {\r\n group.controls.answer.setValue(question.answerId, { emitEvent: false });\r\n }\r\n\r\n this.fCtrls.subQuestionArray.push(group);\r\n });\r\n\r\n var matrixQuestion = this.questionArr().find(x => x.parentQuestionId == this.fCtrls.id.value);\r\n if (matrixQuestion) {\r\n this.rForm.patchValue({\r\n isDisabled: matrixQuestion.isDisabled,\r\n isShow: matrixQuestion.isShow\r\n }, { emitEvent: false })\r\n }\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\r\n private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionMatrixTemplateFormInterface>({\r\n id: new FormControl(null),\r\n typeId: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(true),\r\n subQuestionArray: this._formBuilder.array<FormGroup<SubQuestionChildOfQuestionMatrixTemplateFormInterface>>([])\r\n });\r\n }\r\n ngOnInit(): void {\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n // if (newValue?.isShow == false) {\r\n // this.fCtrls.answer.setValue(null);\r\n // }\r\n }\r\n });\r\n\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.filter(x => x.parentQuestionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x.length > 0)).subscribe(questions => {\r\n\r\n //Update Answers\r\n this.fCtrls.subQuestionArray.controls.forEach(group => {\r\n var question = questions.find(x => x.questionId == group.value.subQuestionId);\r\n if (question != null) {\r\n group.controls.answer.setValue(question.answerId, { emitEvent: false });\r\n }\r\n })\r\n });\r\n\r\n }\r\n\r\n onChangeAnswer(question: FormGroup<SubQuestionChildOfQuestionMatrixTemplateFormInterface>, answer: SurveyAnswerDto) {\r\n const index = this.fCtrls.subQuestionArray.value.findIndex(x => x.subQuestionId == question.value.subQuestionId);\r\n var subQuestionGroup = this.fCtrls.subQuestionArray.controls[index];\r\n\r\n subQuestionGroup.controls.answer.setValue(answer.answerId);\r\n\r\n // this.emitter.emit({\r\n // QuestionId: subQuestionGroup.value.subQuestionId,\r\n // Answer: subQuestionGroup.value.answer,\r\n // IsValid: subQuestionGroup.controls.answer.valid\r\n // });\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" style=\" border-collapse: collapse;\"\r\n[ngClass]=\"{'d-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n <div class=\"matrix-question\" [formGroup]=\"rForm\">\r\n <div class=\"matrix-table\" formArrayName=\"subQuestionArray\">\r\n <div class=\"matrix-head-row\">\r\n <div class=\"matrix-col\">\r\n </div>\r\n <div class=\"matrix-col\" *ngFor=\"let answers of surveyQuestion?.surveyAnswers\" >\r\n <span [innerHTML]=\"answers.answerTitle\"></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"matrix-row\" [attr.id]=\"'question_'+questionGroup.value.subQuestionId\"\r\n *ngFor=\"let questionGroup of fCtrls.subQuestionArray.controls ;let subQuestionIndex = index\"\r\n [ngClass]=\"{'invalid-question': questionGroup.controls.answer.invalid}\">\r\n <div class=\"matrix-col matrix-sub-quastion\" [innerHTML]=\"questionGroup.value.questionTitle\">\r\n </div>\r\n <div class=\"matrix-col answer__container\" *ngFor=\"let answer of surveyQuestion?.surveyAnswers;let answerIndex = index\">\r\n <div class=\"form-check form-check-radio form-check-inline\">\r\n <input class=\"form-check-input\" type=\"radio\" name=\"{{elemId}}__radio-btn-option_{{subQuestionIndex}}\"\r\n id=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\" (change)=\"onChangeAnswer(questionGroup ,answer)\"\r\n value=\"{{answer.answerId}}\" [checked]=\"answer.answerId == questionGroup.value.answer\">\r\n <label class=\"form-check-label d-inline d-lg-none\" [innerHTML]=\"answer.answerTitle\"\r\n for=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\"> </label>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Validators, FormControl, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { debounceTime, distinctUntilChanged, filter, find, map, pairwise } from 'rxjs';\r\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface, QuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { Store } from '@ngrx/store';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\n\r\n@Component({\r\n selector: 'lib-question-boolean-template',\r\n templateUrl: './question-boolean-template.component.html',\r\n styleUrls: ['./question-boolean-template.component.scss']\r\n})\r\nexport class QuestionBooleanTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionBooleanTemplateFormInterface>;\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionAllInfo.questionName,\r\n title: value.questionAllInfo.questionTitle,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n description: value.questionAllInfo.questionDescription,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n value.questionAllInfo.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionBooleanTemplateFormInterface>({\r\n id: new FormControl(surveryAnswer.answerId),\r\n title: new FormControl(surveryAnswer.answerTitle),\r\n isSelected: new FormControl(false)\r\n }))\r\n })\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n var question = this.questionArr().find(x => x.questionId == value.questionId);\r\n if (question?.answerId) {\r\n this.rForm.patchValue({\r\n answer: question.answerId,\r\n isDisabled: question.isDisabled,\r\n isShow: question.isShow\r\n }, { emitEvent: false });\r\n this.fCtrls.answerArray.controls.find(x => x.value.id == question.answerId).controls.isSelected.setValue(true);\r\n }\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\r\n private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionBooleanTemplateFormInterface>({\r\n id: new FormControl(null),\r\n name: new FormControl(null),\r\n title: new FormControl(null),\r\n typeId: new FormControl(null),\r\n description: new FormControl(null),\r\n answer: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(true),\r\n answerArray: this._formBuilder.array<FormGroup<AnswerChildOfQuestionBooleanTemplateFormInterface>>([]),\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200), distinctUntilChanged()).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: formValue.id,\r\n answer: value,\r\n isValid: this.fCtrls.answer.valid\r\n }))\r\n });\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated answer\r\n if (oldValue?.answerId != newValue?.answerId) {\r\n this.fCtrls.answer.setValue(newValue?.answerId, { emitEvent: false });\r\n\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == newValue?.answerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n }\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n console.log(\"newValue?.isShow\", newValue?.isShow);\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n if (newValue?.isShow == false) {\r\n this.fCtrls.answer.setValue(null);\r\n }\r\n }\r\n })\r\n }\r\n\r\n onChangeAnswer(item: FormGroup<AnswerChildOfQuestionBooleanTemplateFormInterface>) {\r\n this.fCtrls.answer.setValue(item.value.id);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\"\r\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"fCtrls.title.value\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n <div class=\"radio-button-quastion\">\r\n <div class=\"form-check form-check-radio form-check-inline\"\r\n *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\r\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item)\"\r\n [disabled]=\"fCtrls.isDisabled.value\" name=\"{{elemId}}__radio-btn-option\"\r\n id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\r\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\r\n </div>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { QuestionCheckBoxTemplateFormInterface } from '../../../shared/form-interfaces/question-check-box-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map, pairwise } from 'rxjs';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { AnswerChildOfQuestionDropDownMultiTemplateFormInterface, QuestionDropDownMultiTemplateFormInterface } from '../../../shared/form-interfaces/question-dropdown-multi-template.form-interface';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { Store } from '@ngrx/store';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\n\r\n@Component({\r\n selector: 'lib-question-dropdown-multi-template',\r\n templateUrl: './question-dropdown-multi-template.component.html',\r\n styleUrls: ['./question-dropdown-multi-template.component.scss']\r\n})\r\nexport class QuestionDropdownMultiTemplateComponent {\r\n\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionDropDownMultiTemplateFormInterface>;\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionAllInfo.questionName,\r\n title: value.questionAllInfo.questionTitle,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n description: value.questionAllInfo.questionDescription,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n value.questionAllInfo.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionDropDownMultiTemplateFormInterface>({\r\n id: new FormControl(surveryAnswer.answerId),\r\n title: new FormControl(surveryAnswer.answerTitle),\r\n isSelected: new FormControl(false)\r\n }))\r\n })\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n var question = this.questionArr().find(x => x.questionId == value.questionId);\r\n if (question?.answerIdArr) {\r\n this.rForm.patchValue({\r\n answer: question.answerIdArr,\r\n isDisabled: question.isDisabled,\r\n isShow: question.isShow\r\n }, { emitEvent: false });\r\n }\r\n }\r\n\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\r\n private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionDropDownMultiTemplateFormInterface>({\r\n id: new FormControl(null),\r\n name: new FormControl(null),\r\n title: new FormControl(null),\r\n typeId: new FormControl(null),\r\n description: new FormControl(null),\r\n answer: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(true),\r\n answerArray: this._formBuilder.array<FormGroup<AnswerChildOfQuestionDropDownMultiTemplateFormInterface>>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: formValue.id,\r\n answer: value,\r\n isValid: this.fCtrls.answer.valid\r\n }))\r\n });\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated answer\r\n if (oldValue?.answerIdArr != newValue?.answerIdArr) {\r\n const distinctArray = newValue?.answerIdArr.filter((n, i) => newValue?.answerIdArr.indexOf(n) === i);\r\n this.fCtrls.answer.setValue(distinctArray, { emitEvent: false });\r\n }\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n if (newValue?.isShow == false) {\r\n this.fCtrls.answer.setValue(null);\r\n }\r\n }\r\n });\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"fCtrls.title.value\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n <div class=\"text-quastion text-quastion__dropdown\">\r\n <ng-select [items]=\"this.fCtrls.answerArray.value\" bindValue=\"id\" bindLabel=\"title\" class=\"form-control\"\r\n [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"true\">\r\n </ng-select>\r\n </div>\r\n</div>\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport interface LibConfigModel{\r\n apiUrl: string;\r\n}\r\n\r\nexport const LibConfigService = new InjectionToken<LibConfigModel>('LibConfig');","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { LibConfigService, LibConfigModel } from './lib-config.service';\r\nimport { Observable } from 'rxjs';\r\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\r\nimport { DtoBase } from '../../shared/dtos/base/dto.base';\r\nimport { GetIsOtherQuestionResult, GetNextQuestionResult } from '../../shared/results/api.result';\r\nimport { ResultDto } from '../../shared/dtos/base/result.dto';\r\nimport { InstitutionDto } from '../../shared/dtos/institution.dto';\r\nimport { InstitutionBranchDto } from '../../shared/dtos/institution-branch.dto';\r\nimport { InstitutionCollageDto } from '../../shared/dtos/institution-collage.dto';\r\nimport { InstitutionSectionDto } from '../../shared/dtos/institution-section.dto';\r\nimport { InstitutionProgramDto } from '../../shared/dtos/institution-program.dto';\r\nimport { ProgramsRelatedToInstitutionDto } from '../../shared/dtos/programs-related-to-institution.dto';\r\ndeclare var $: any;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiService {\r\n private url;\r\n\r\n constructor(private _HttpClient: HttpClient,\r\n @Inject(LibConfigService) private _LibConfigService: LibConfigModel) {\r\n this.url = _LibConfigService.apiUrl;\r\n }\r\n\r\n getNextQuestion(filter: { answerId, surveyLanguageId, applicantKey, isPre }): Observable<GetNextQuestionResult> {\r\n var queryString = $.param(filter);\r\n return this._HttpClient.get<GetNextQuestionResult>(`${this.url}/Survey/GetNextQuestion?${queryString}`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n\r\n getIsOtherQuestion (filter: { parentQId , groupId , surveyLanguageId , surveyKey }): Observable<GetIsOtherQuestionResult> {\r\n var queryString = $.param(filter);\r\n return this._HttpClient.get<GetIsOtherQuestionResult>(`${this.url}/Survey/GetIsOtherQuestion?${queryString}`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n\r\n getAllInstitutions( ) {\r\n return this._HttpClient.get<ResultDto<InstitutionDto>>(`${this.url}/Institutions/GetAllInstitutions`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n\r\n getAllProgramsRelatedToInstitutions(filter:{submissionId:string ,generatedId:string,requestTimestamp:string } ) {\r\n var queryString = $.param(filter);\r\n return this._HttpClient.get<ResultDto<ProgramsRelatedToInstitutionDto>>(`${this.url}/Institutions/GetProgramsForInstitution?${queryString}`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n\r\n getAllBranches(filter:{submissionId:string ,requestTimestamp:string} ) {\r\n var queryString = $.param(filter);\r\n return this._HttpClient.get<ResultDto<InstitutionBranchDto>>(`${this.url}/Institutions/GetBranches?${queryString}`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n\r\n getAllCollages( filter:{submissionId:string ,branchSubmissionId:string,requestTimestamp:string }) {\r\n var queryString = $.param(filter);\r\n return this._HttpClient.get<ResultDto<InstitutionCollageDto>>(`${this.url}/Institutions/GetCollages?${queryString}`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n\r\n getAllSections( filter:{submissionId:string ,collageSubmissionId:string,requestTimestamp:string }) {\r\n var queryString = $.param(filter);\r\n return this._HttpClient.get<ResultDto<InstitutionSectionDto>>(`${this.url}/Institutions/GetSections?${queryString}`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n\r\n getAllPrograms(filter:{submissionId:string ,sectionGeneratedKey:string,requestTimestamp:string } ) {\r\n var queryString = $.param(filter);\r\n return this._HttpClient.get<ResultDto<InstitutionProgramDto>>(`${this.url}/Institutions/GetPrograms?${queryString}`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { QuestionNgrxModel } from '../core/states/entites/question.entity';\r\n\r\n@Pipe({\r\n name: 'findQuestion'\r\n})\r\nexport class FindQuestionPipe implements PipeTransform {\r\n\r\n transform(arr: QuestionNgrxModel[], questionId: any): QuestionNgrxModel {\r\n if (arr) {\r\n return arr.find(x => x.questionId == questionId)\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { QuestionCascadeTemplateFormInterface, QuestionGroupChildOfQuestionCascadeTemplateFormInterface } from '../../../shared/form-interfaces/question-cascade.form-interface';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { ApiService } from '../../services/api.service';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { Store } from '@ngrx/store';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\nimport { InputTypeEnum } from '../../../shared/enums/input-type.enum';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\n\r\n@Component({\r\n selector: 'lib-question-cascade-template',\r\n templateUrl: './question-cascade-template.component.html',\r\n styleUrls: ['./question-cascade-template.component.scss']\r\n})\r\nexport class QuestionCascadeTemplateComponent {\r\n surveyQuestionArr: SurveyQuestionDto[] = [];\r\n rForm: FormGroup<QuestionCascadeTemplateFormInterface>;\r\n pageQuestions$ = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n get questionFormArray() {\r\n return this.fCtrls.questionArr\r\n }\r\n\r\n\r\n @Input() pageId: number = null;\r\n @Input() questionGroupId: number = null;\r\n @Input() isPre: boolean = false;\r\n @Input() surveyLanguageId: number = null;\r\n @Input() surveyKey: string = null;\r\n @Input() applicantKey: string = null;\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (this.surveyQuestionArr?.length == 0) {\r\n this.setQuestions(value.questionAllInfo);\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n var childQuestion1 = this.pageQuestions$().find(x => x.parentQuestionId == value.questionId);\r\n if (childQuestion1) {\r\n this.setQuestions(childQuestion1.questionAllInfo);\r\n\r\n var childQuestion2 = this.pageQuestions$().find(x => x.parentQuestionId == childQuestion1.questionId);\r\n if (childQuestion2) {\r\n this.setQuestions(childQuestion2.questionAllInfo);\r\n }\r\n }\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\r\n private _ApiService: ApiService, private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionCascadeTemplateFormInterface>({\r\n isShow: new FormControl(false),\r\n questionArr: this._formBuilder.array<FormGroup<QuestionGroupChildOfQuestionCascadeTemplateFormInterface>>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n // this.fCtrls.questionArr.statusChanges.subscribe(v => {\r\n // console.log(v);\r\n // })\r\n }\r\n\r\n onUpdateAnswer(model: QuestionAnswerModel) {\r\n if (this.surveyQuestionArr.length > 1) {\r\n const surveyQuestionIndex = this.surveyQuestionArr.findIndex(c => c.questionId == model.QuestionId);\r\n\r\n var deletedQuestions = []\r\n for (let index = surveyQuestionIndex + 1; index < this.surveyQuestionArr.length; index++) {\r\n deletedQuestions.push(index);\r\n }\r\n\r\n var sortDeletedArr = deletedQuestions.sort((a, b) => (a > b ? -1 : 1));\r\n for (let index = 0; index < sortDeletedArr.length; index++) {\r\n const elementIndex = sortDeletedArr[index];\r\n const questionId = this.surveyQuestionArr[elementIndex].questionId;\r\n\r\n this._Store.dispatch(surveyActions.removeQuestion({ questionId: questionId }));\r\n\r\n this.surveyQuestionArr = this.surveyQuestionArr.filter(x => x.questionId != questionId);\r\n this.questionFormArray.removeAt(elementIndex);\r\n }\r\n }\r\n\r\n if (model.Answer) {\r\n var selectedAnswerObj = this.surveyQuestionArr\r\n .find(x => x.questionId == model.QuestionId)?.surveyAnswers.find(x => x.answerId === model.SurveyAnswerId);\r\n if (selectedAnswerObj?.isOther == true) {\r\n this.isOtherQuestion(model);\r\n }\r\n else {\r\n this.getNextQuestion(model);\r\n }\r\n }\r\n }\r\n\r\n identify(index, item: FormGroup<QuestionGroupChildOfQuestionCascadeTemplateFormInterface>) {\r\n return item.value.id;\r\n }\r\n\r\n private setQuestions(value: SurveyQuestionDto) {\r\n this.surveyQuestionArr.push(value);\r\n\r\n var group = this._formBuilder.group<QuestionGroupChildOfQuestionCascadeTemplateFormInterface>({\r\n id: new FormControl(value.questionId),\r\n typeId: new FormControl(value.questionTypeId),\r\n answer: new FormControl(null)\r\n });\r\n\r\n if (value.isRequired == true) {\r\n group.controls.answer.addValidators([Validators.required]);\r\n group.controls.answer.updateValueAndValidity();\r\n }\r\n\r\n this.fCtrls.questionArr.push(group);\r\n }\r\n\r\n private isOtherQuestion(model: QuestionAnswerModel) {\r\n this._ApiService.getIsOtherQuestion({\r\n parentQId: model.QuestionId,\r\n groupId: this.questionGroupId,\r\n surveyKey: this.surveyKey,\r\n surveyLanguageId: this.surveyLanguageId\r\n }).subscribe(res => {\r\n if (res.errors.filter(x => x.code == 17).length == 0) {\r\n res.questionTypeId = QuestionTypeEnum.TextInput;\r\n\r\n this._Store.dispatch(surveyActions.addQuestion({\r\n question: {\r\n surveyPageId: this.pageId,\r\n questionId: res.questionId,\r\n questionType: res.questionTypeId,\r\n inputTypeId: InputTypeEnum.Text,\r\n isQuestionGroup: false,\r\n answerId: null,\r\n answerIdArr: null,\r\n answerText: null,\r\n isRequired: res.isRequired,\r\n isValid: null,\r\n order: res.order,\r\n isDisabled: res.isReadOnly,\r\n isShow: res.isVisable,\r\n isDisabled_default: res.isReadOnly,\r\n isShow_default: res.isVisable,\r\n questionGroupId: this.questionGroupId,\r\n parentQuestionId: model.QuestionId,\r\n questionAllInfo: {\r\n questionId: res.questionId,\r\n questionTypeId: res.questionTypeId,\r\n questionName: res.questionName,\r\n questionTitle: res.questionTitle,\r\n questionDescription: res.questionDescription,\r\n isRequired: res.isRequired,\r\n isVisable: res.isVisable,\r\n isEditable: res.isEditable,\r\n isOTPOption: res.isOtpOption,\r\n isAdvanceTextArea: res.isAdvanceTextArea,\r\n isReadOnly: res.isReadOnly,\r\n order: res.order,\r\n isPreDefine: res.isPreDefine,\r\n maxLevelValue: res.maxLevelValue,\r\n surveyAnswers: [\r\n {\r\n answerId: res.answerId,\r\n inputTypeId: InputTypeEnum.Text\r\n } as SurveyAnswerDto\r\n ],\r\n surveySubQuestions: res.surveySubQuestions,\r\n surveySubQuestionLevels: res.surveySubQuestionLevels\r\n }\r\n }\r\n }));\r\n\r\n this.setQuestions({\r\n questionId: res.questionId,\r\n questionTypeId: res.questionTypeId,\r\n questionName: res.questionName,\r\n questionTitle: res.questionTitle,\r\n questionDescription: res.questionDescription,\r\n isRequired: res.isRequired,\r\n isVisable: res.isVisable,\r\n isEditable: res.isEditable,\r\n isOTPOption: res.isOtpOption,\r\n order: res.order,\r\n isAdvanceTextArea: res.isAdvanceTextArea,\r\n isReadOnly: res.isReadOnly,\r\n isPreDefine: res.isPreDefine,\r\n maxLevelValue: res.maxLevelValue,\r\n surveyAnswers: [\r\n {\r\n answerId: res.answerId,\r\n inputTypeId: InputTypeEnum.Text\r\n } as SurveyAnswerDto\r\n ],\r\n surveySubQuestions: res.surveySubQuestions,\r\n surveySubQuestionLevels: res.surveySubQuestionLevels\r\n });\r\n\r\n this.getNextQuestion(model);\r\n }\r\n });\r\n }\r\n\r\n\r\n private getNextQuestion(model: QuestionAnswerModel) {\r\n this._ApiService.getNextQuestion({\r\n answerId: model.Answer,\r\n applicantKey: this.applicantKey,\r\n isPre: this.isPre,\r\n surveyLanguageId: this.surveyLanguageId\r\n }).subscribe(res => {\r\n if (res.errors.filter(x => x.code == 17).length == 0) {\r\n this._Store.dispatch(surveyActions.addQuestion({\r\n question: {\r\n surveyPageId: this.pageId,\r\n questionId: res.questionId,\r\n questionType: res.questionTypeId,\r\n inputTypeId: res.surveyAnswers[0].inputTypeId,\r\n isQuestionGroup: false,\r\n answerId: null,\r\n answerIdArr: null,\r\n answerText: null,\r\n isRequired: res.isRequired,\r\n order: res.order,\r\n isValid: null,\r\n isDisabled: res.isReadOnly,\r\n isShow: res.isVisable,\r\n isDisabled_default: res.isReadOnly,\r\n isShow_default: res.isVisable,\r\n questionGroupId: this.questionGroupId,\r\n parentQuestionId: model.QuestionId,\r\n questionAllInfo: res\r\n }\r\n }));\r\n\r\n this.setQuestions(res);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","<div [ngClass]=\"{'d-none':fCtrls.isShow.value != true}\">\r\n <ng-container *ngFor=\"let item of questionFormArray.controls; trackBy:identify ; let i = index\">\r\n <lib-question-dropdown-template #questionDropdownTemplate\r\n *ngIf=\"(pageQuestions$() |findQuestion :item.value.id)?.questionType != questionTypeEnum.TextInput\"\r\n [setQuestion]=\"pageQuestions$() |findQuestion :item.value.id \" (emitter)=\"onUpdateAnswer($event)\">\r\n </lib-question-dropdown-template>\r\n\r\n <lib-question-text-template #questionTextTemplate\r\n *ngIf=\"(pageQuestions$() |findQuestion :item.value.id)?.questionType == questionTypeEnum.TextInput\"\r\n [setQuestion]=\"pageQuestions$() |findQuestion :item.value.id \"\r\n [isArabicLang]=\"true\"></lib-question-text-template>\r\n\r\n </ng-container>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionFeedbackTemplateFormInterface } from '../../../shared/form-interfaces/question-feedback-template.form-interface';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { Store } from '@ngrx/store';\r\nimport { debounceTime, distinctUntilChanged, filter, map, pairwise } from 'rxjs';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\nimport { InputTypeEnum } from '../../../shared/enums/input-type.enum';\r\nimport { EvaluationTypeEnum } from '../../../shared/enums/evaluation-type.enum';\r\n\r\n@Component({\r\n selector: 'lib-question-feedback-template',\r\n templateUrl: './question-feedback-template.component.html',\r\n styleUrls: ['./question-feedback-template.component.scss']\r\n})\r\nexport class QuestionFeedbackTemplateComponent {\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionFeedbackTemplateFormInterface>;\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n get inputTypeEnum() {\r\n return InputTypeEnum\r\n }\r\n\r\n @Input() isArabicLang: boolean = false;\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionAllInfo.questionName,\r\n title: value.questionAllInfo.questionTitle,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n description: value.questionAllInfo.questionDescription,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n if (value.questionAllInfo.surveyAnswers[0]?.answerId != null && value.questionAllInfo.surveyAnswers[0]?.answerId != undefined) {\r\n this.fCtrls.surveyAnswerId.setValue(value.questionAllInfo.surveyAnswers[0].answerId);\r\n\r\n if (value.questionAllInfo.surveyAnswers[0].evaluationTypeId == EvaluationTypeEnum.Stars) {\r\n this.fCtrls.inputTypeId.setValue(InputTypeEnum.Stars);\r\n } else if (value.questionAllInfo.surveyAnswers[0].evaluationTypeId == EvaluationTypeEnum.Pagination) {\r\n this.fCtrls.inputTypeId.setValue(InputTypeEnum.Pagination);\r\n }\r\n\r\n }\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n var question = this.questionArr().find(x => x.questionId == value.questionId);\r\n if (question) {\r\n this.rForm.patchValue({\r\n answer: question.answerText,\r\n isDisabled: question.isDisabled,\r\n isShow: question.isShow\r\n }, { emitEvent: false });\r\n }\r\n\r\n this.toggleEnableAnswer(value.questionAllInfo.isReadOnly);\r\n }\r\n }\r\n\r\n @Input() set isDisabled(value: boolean) {\r\n this.toggleEnableAnswer(value);\r\n }\r\n\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\r\n private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionFeedbackTemplateFormInterface>({\r\n id: new FormControl(null),\r\n name: new FormControl(null),\r\n title: new FormControl(null),\r\n typeId: new FormControl(null),\r\n description: new FormControl(null),\r\n surveyAnswerId: new FormControl(null),\r\n answer: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(true),\r\n inputTypeId: new FormControl(null),\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200), distinctUntilChanged()).subscribe(value => {\r\n setTimeout(() => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: formValue.id,\r\n answer: value,\r\n isValid: this.fCtrls.answer.valid\r\n }))\r\n }, 100);\r\n\r\n });\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated answer\r\n if (oldValue?.answerText != newValue?.answerText) {\r\n this.fCtrls.answer.setValue(newValue?.answerText, { emitEvent: false });\r\n }\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n if (newValue?.isShow == false) {\r\n this.fCtrls.answer.setValue(null);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private toggleEnableAnswer(isReadOnly: boolean) {\r\n if (isReadOnly == true) {\r\n this.fCtrls.answer.disable()\r\n } else {\r\n this.fCtrls.answer.enable()\r\n }\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n}\r\n","<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\r\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n <div class=\"text-quastion \" >\r\n <ng-container *ngIf=\"fCtrls.inputTypeId.value == inputTypeEnum.Stars else paginationTemplate\">\r\n <rating [formControl]=\"fCtrls.answer\" [max]=\"surveyQuestion?.surveyAnswers[0].maxValue\"></rating>\r\n </ng-container>\r\n <ng-template #paginationTemplate>\r\n <div style=\"margin-top: 20px;\">\r\n <pagination nextText=\">\" previousText=\"<\" [formControl]=\"fCtrls.answer\"\r\n [itemsPerPage]=\"1\" [totalItems]=\"surveyQuestion?.surveyAnswers[0].maxValue\" [maxSize]=\"10\"></pagination>\r\n </div>\r\n </ng-template>\r\n </div>","import { Component, Input, OnInit, computed, effect } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\nimport { Store } from '@ngrx/store';\r\nimport {\r\n QuestionGroupChildOfQuestionInstitutionsTemplateFormInterface,\r\n QuestionInstitutionsTemplateFormInterface\r\n} from '../../../shared/form-interfaces/question-Institutions-template.form-interface';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { SurveySubQuestionLevelDto } from '../../../shared/dtos/survey-sub-question-level.dto';\r\nimport { ApiService } from '../../services/api.service';\r\nimport { distinctUntilChanged, pairwise, take } from 'rxjs';\r\nimport { SurveyLanguageEnum } from '../../../shared/enums/survey-language.enum';\r\nimport { surveySelectors } from '../../core/states/survey-store/survey.selector';\r\n\r\n@Component({\r\n selector: 'lib-question-institutions-template',\r\n templateUrl: './question-institutions-template.component.html',\r\n styleUrls: ['./question-institutions-template.component.css']\r\n})\r\nexport class QuestionInstitutionsTemplateComponent implements OnInit {\r\n institutionsQuestion: SurveyQuestionDto = null;\r\n rForm: FormGroup<QuestionInstitutionsTemplateFormInterface>;\r\n pageQuestions$ = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n institutionsArr$ = this._Store.selectSignal(surveySelectors.institutionArr);\r\n\r\n @Input() isArabicLang: boolean = false;\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n get questionFormArray() {\r\n return this.fCtrls.questionArr\r\n }\r\n\r\n institutionsQuestionArr = computed(() => {\r\n return this.institutionsArr$().map(x => {\r\n return {\r\n id: x.submissionId,\r\n name: this.isArabicLang == true ? x.institutionNameArabic : x.institutionNameEnglish,\r\n requestTimestamp: x.requestTimestamp,\r\n generatedId: x.generatedId\r\n }\r\n });\r\n });\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (this.institutionsQuestion == null) {\r\n this.institutionsQuestion = value.questionAllInfo;\r\n\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n title: value.questionAllInfo.questionTitle,\r\n maxLevelValue: value.questionAllInfo.maxLevelValue,\r\n isRequired: value.isRequired,\r\n isDisabled: value.isDisabled,\r\n isShow: value.isShow\r\n });\r\n\r\n value.questionAllInfo.surveySubQuestionLevels.forEach(surveySubQuestionLevel => {\r\n var question = this.pageQuestions$().find(x => x.questionId == value.questionId);\r\n this.setQuestionFormGroup(surveySubQuestionLevel, question?.isRequired, question?.answerId);\r\n });\r\n }\r\n }\r\n\r\n constructor(private _Store: Store, private _formBuilder: FormBuilder, private _ApiService: ApiService) {\r\n this.rForm = this._formBuilder.group<QuestionInstitutionsTemplateFormInterface>({\r\n id: new FormControl(null),\r\n title: new FormControl(null),\r\n maxLevelValue: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(false),\r\n isRequired: new FormControl(null),\r\n institutionId: new FormControl(null),\r\n institutionTimestamp: new FormControl(null),\r\n institutionGeneratedId: new FormControl(null),\r\n programRelatedToInstitutionId: new FormControl(null),\r\n branchId: new FormControl(null),\r\n collageId: new FormControl(null),\r\n sectionId: new FormControl(null),\r\n programId: new FormControl(null),\r\n questionArr: this._formBuilder.array<FormGroup<QuestionGroupChildOfQuestionInstitutionsTemplateFormInterface>>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this._Store.dispatch(surveyActions.loadInstitutionArr());\r\n }\r\n\r\n onUpdateAnswer(model: { id: string, name: string }, groupIndex: number) {\r\n var group = this.fCtrls.questionArr.at(groupIndex);\r\n group.patchValue({\r\n answerId: model.id,\r\n answerValue: model.name\r\n });\r\n\r\n this._Store.dispatch(surveyActions.updateInstitutionQuestionAnswer({\r\n questionId: group.value.id,\r\n answerId: group.value.answerId,\r\n answer: group.value.answerValue,\r\n isValid: group.controls.answerId.valid,\r\n answerLevelId: group.value.levelAnswerId,\r\n }));\r\n }\r\n\r\n identify(index, item: FormGroup<QuestionGroupChildOfQuestionInstitutionsTemplateFormInterface>) {\r\n return item.value.id;\r\n }\r\n\r\n private setQuestionFormGroup(value: SurveySubQuestionLevelDto, isRquired: boolean, answerId: string) {\r\n var group = this._formBuilder.group<QuestionGroupChildOfQuestionInstitutionsTemplateFormInterface>({\r\n id: new FormControl(value.questionId),\r\n typeId: new FormControl(value.questionTypeId),\r\n name: new FormControl(value.questionName),\r\n description: new FormControl(value.questionDescription),\r\n title: new FormControl(value.questionTitle),\r\n level: new FormControl(value.level),\r\n levelAnswerId: new FormControl(value.levelAnswer.answerId),\r\n answerId: new FormControl(null),\r\n answerValue: new FormControl(null),\r\n answers: new FormControl([]),\r\n });\r\n\r\n if (isRquired == true) {\r\n group.controls.answerId.addValidators([Validators.required]);\r\n group.controls.answerId.updateValueAndValidity();\r\n group.controls.answerValue.addValidators([Validators.required]);\r\n group.controls.answerValue.updateValueAndValidity();\r\n }\r\n\r\n group.controls.answerId.valueChanges.pipe(distinctUntilChanged()).subscribe(answerId => {\r\n if (answerId) {\r\n if (value.level == 1) {\r\n this.rForm.patchValue({\r\n institutionId: answerId,\r\n institutionTimestamp: this.institutionsQuestionArr().find(x => x.id == answerId)?.requestTimestamp,\r\n institutionGeneratedId: this.institutionsQuestionArr().find(x => x.id == answerId)?.generatedId,\r\n branchId: null,\r\n collageId: null,\r\n sectionId: null\r\n }, { emitEvent: false });\r\n }\r\n else if (value.level == 2) {\r\n this.rForm.patchValue({\r\n programId: answerId\r\n }, { emitEvent: false });\r\n }\r\n else if (value.level == 3) {\r\n this.rForm.patchValue({\r\n branchId: answerId,\r\n collageId: null,\r\n sectionId: null\r\n }, { emitEvent: false });\r\n }\r\n else if (value.level == 4) {\r\n this.rForm.patchValue({\r\n collageId: answerId,\r\n sectionId: null\r\n }, { emitEvent: false });\r\n }\r\n else if (value.level == 5) {\r\n this.rForm.patchValue({\r\n sectionId: answerId\r\n }, { emitEvent: false });\r\n }\r\n\r\n const level = group.value.level;\r\n\r\n if(level != 2){\r\n this.resetAnswersOfFormGroupinHigherLevel(level);\r\n }\r\n\r\n var nextGroupIndex = this.fCtrls.questionArr.controls.findIndex(x => x.value.level == level + 1);\r\n if (nextGroupIndex ) {\r\n this.fillQuestionAnswers(nextGroupIndex);\r\n }\r\n }\r\n });\r\n\r\n group.controls.answers.valueChanges.pipe(distinctUntilChanged()).subscribe(value => {\r\n const groupIndex = this.fCtrls.questionArr.controls.findIndex(x => x.value.level == group.value.level);\r\n var questionGroup = this.fCtrls.questionArr.at(groupIndex);\r\n\r\n if (questionGroup) {\r\n if (value.length > 0) {\r\n if (this.fCtrls.isRequired.value == true) {\r\n questionGroup.controls.answerId.addValidators([Validators.required]);\r\n questionGroup.controls.answerValue.addValidators([Validators.required]);\r\n\r\n this._Store.dispatch(surveyActions.updateQuestionRequired({ questionId: group.value.id, isRequired: true }));\r\n }\r\n } else {\r\n questionGroup.controls.answerId.clearValidators();\r\n questionGroup.controls.answerValue.clearValidators();\r\n\r\n this._Store.dispatch(surveyActions.updateQuestionRequired({ questionId: group.value.id, isRequired: false }));\r\n }\r\n\r\n questionGroup.controls.answerId.updateValueAndValidity();\r\n questionGroup.controls.answerValue.updateValueAndValidity();\r\n }\r\n\r\n });\r\n\r\n if (answerId) {\r\n group.controls.answerId.setValue(answerId);\r\n }\r\n\r\n this.fCtrls.questionArr.push(group);\r\n }\r\n\r\n private fillQuestionAnswers(nextGroupIndex: number) {\r\n const formValue = this.rForm.value;\r\n var group = this.fCtrls.questionArr.at(nextGroupIndex);\r\n if (group) {\r\n if (group.value.level == 2) {\r\n this._ApiService.getAllProgramsRelatedToInstitutions({\r\n submissionId: formValue.institutionId,\r\n generatedId: formValue.institutionGeneratedId, requestTimestamp: formValue.institutionTimestamp\r\n }).pipe(take(1)).subscribe(res => {\r\n group.controls.answers.setValue(res.responseDetails.map(x => {\r\n return {\r\n id: x.generatedKey,\r\n name: this.isArabicLang == true ? x.programNameArabic : x.programNameEnglish\r\n }\r\n }));\r\n });\r\n\r\n this._ApiService.getAllBranches({ submissionId: formValue.institutionId, requestTimestamp: formValue.institutionTimestamp }).pipe(take(1)).subscribe(res => {\r\n this.fCtrls.questionArr.at(nextGroupIndex + 1).controls.answers.setValue(res.responseDetails.map(x => {\r\n return {\r\n id: x.branchSubmissionId,\r\n name: this.isArabicLang == true ? x.branchNameInArabic : x.branchNameInEnglish\r\n }\r\n }));\r\n });\r\n }\r\n else if (group.value.level == 4) {\r\n this._ApiService.getAllCollages({ submissionId: formValue.institutionId, branchSubmissionId: formValue.branchId, requestTimestamp: formValue.institutionTimestamp }).pipe(take(1)).subscribe(res => {\r\n group.controls.answers.setValue(res.responseDetails.map(x => {\r\n return {\r\n id: x.collageSubmissionId,\r\n name: this.isArabicLang == true ? x.collageNameInArabic : x.collageNameInEnglish\r\n }\r\n }));\r\n });\r\n }\r\n else if (group.value.level == 5) {\r\n this._ApiService.getAllSections({ submissionId: formValue.institutionId, collageSubmissionId: formValue.collageId, requestTimestamp: formValue.institutionTimestamp }).pipe(take(1)).subscribe(res => {\r\n group.controls.answers.setValue(res.responseDetails.map(x => {\r\n return {\r\n id: x.generatedKey,\r\n name: this.isArabicLang == true ? x.sectionNameInArabic : x.sectionNameInEnglish\r\n }\r\n }));\r\n });\r\n }\r\n else if (group.value.level == 6) {\r\n this._ApiService.getAllPrograms({ submissionId: formValue.institutionId, sectionGeneratedKey: formValue.sectionId, requestTimestamp: formValue.institutionTimestamp }).pipe(take(1)).subscribe(res => {\r\n group.controls.answers.setValue(res.responseDetails.map(x => {\r\n return {\r\n id: x.generatedKey,\r\n name: this.isArabicLang == true ? x.programNameArabic : x.programNameEnglish\r\n }\r\n }));\r\n });\r\n }\r\n }\r\n }\r\n\r\n private resetAnswersOfFormGroupinHigherLevel(level: number) {\r\n this.fCtrls.questionArr.controls.forEach((group: FormGroup<QuestionGroupChildOfQuestionInstitutionsTemplateFormInterface>) => {\r\n if (group.value.level > level) {\r\n group.patchValue({\r\n answerId: null,\r\n answerValue: null,\r\n answers: []\r\n }, { emitEvent: false });\r\n }\r\n });\r\n\r\n }\r\n\r\n}\r\n","<div class=\"quastion\">\r\n <h3 class=\"quastion-title mb-2\">\r\n <span [innerHTML]=\"fCtrls.title.value\"></span>\r\n </h3>\r\n <ng-container *ngFor=\"let item of questionFormArray.controls; trackBy:identify ; let i = index\">\r\n <div class=\"quastion\" [attr.id]=\"'question_'+item.value.id\"\r\n *ngIf=\"item.value.level == 1 || ( item.value.level > 1 && item.value.answers.length > 0 )\"\r\n [ngClass]=\"{'invalid-question': item.controls.answerId.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"item.value.title\"></span>\r\n <span style=\"color: red;\" *ngIf=\"fCtrls.isRequired\">*</span>\r\n </h3>\r\n <div class=\"text-quastion text-quastion__dropdown\">\r\n <ng-select [items]=\"item.value.level ==1 ? institutionsQuestionArr() : item.value.answers\" bindValue=\"id\" bindLabel=\"name\" class=\"form-control\"\r\n [formControl]=\"item.controls.answerId\" [virtualScroll]=\"true\" [disabled]=\"fCtrls.isDisabled.value\" (change)=\"onUpdateAnswer($event,i)\"\r\n [multiple]=\"false\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n</div>\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\r\nimport { QuestionChildOfSurveryLibFormInterface } from '../../shared/form-interfaces/survery-lib.form-interface';\r\nimport { QuestionNgrxModel } from '../core/states/entites/question.entity';\r\n\r\n@Pipe({\r\n name: 'filterQuestion'\r\n})\r\nexport class FilterQuestionPipe implements PipeTransform {\r\n\r\n transform(arr: QuestionNgrxModel[], questionGroupId: any): QuestionNgrxModel[] {\r\n return arr.filter(x=>x.questionGroupId == questionGroupId && x.parentQuestionId == null)\r\n .sort((a, b) => a.order - b.order);\r\n }\r\n\r\n}\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core';\r\nimport { SurveyLibService } from './services/survey-lib.service';\r\nimport { SurveyDto } from '../shared/dtos/survey.dto';\r\nimport { QuestionChildOfSurveryLibFormInterface, RuleQuestionChildOfSurveryLibFormInterface, SurveryLibFormInterface } from '../shared/form-interfaces/survery-lib.form-interface';\r\nimport { QuestionTypeEnum } from '../shared/enums/question-type.enum';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { QuestionAnswerModel } from '../shared/models/question-answer.model';\r\nimport { Observable, debounceTime, distinctUntilChanged, map, of, take, withLatestFrom } from 'rxjs';\r\nimport { LogicPropertyEnum } from '../shared/enums/Logic-Property.enum';\r\nimport { RuleExpDto } from '../shared/dtos/rule-exp.dto';\r\nimport { OperatorEnum } from '../shared/enums/operator.enum';\r\nimport { LogicActionEnum } from '../shared/enums/logic-action.enum';\r\nimport { CheckRuleExpsUsecase } from './usecases/check-rule-exps.usecase';\r\nimport { SurveyQuestionResult } from '../shared/models/survery-question-result.model';\r\nimport { DefaultQuestionAnswerDto } from '../shared/dtos/default-question-answers.dto';\r\nimport { QuestionBooleanTemplateComponent } from './components/question-boolean-template/question-boolean-template.component';\r\nimport { QuestionTextTemplateComponent } from './components/question-text-template/question-text-template.component';\r\nimport { QuestionRadioButtonTemplateComponent } from './components/question-radio-button-template/question-radio-button-template.component';\r\nimport { QuestionDropdownTemplateComponent } from './components/question-dropdown-template/question-dropdown-template.component';\r\nimport { QuestionCheckBoxTemplateComponent } from './components/question-check-box-template/question-check-box-template.component';\r\nimport { QuestionMatrixTemplateComponent } from './components/question-matrix-template/question-matrix-template.component';\r\nimport { SurveyLanguageDto } from '../shared/dtos/survey-language.dto';\r\nimport { SurveySectionEnum } from '../shared/enums/survey-section.enum';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SurveyQuestionDto } from '../shared/dtos/survey-question.dto';\r\nimport { InputTypeEnum } from '../shared/enums/input-type.enum';\r\nimport { Store } from '@ngrx/store';\r\nimport { surveySelectors } from './core/states/survey-store/survey.selector';\r\nimport { questionGroupSelectors } from './core/states/survey-store/question-group.selector';\r\nimport { questionSelectors } from './core/states/survey-store/question.selector';\r\nimport { QuestionNgrxModel } from './core/states/entites/question.entity';\r\nimport { surveyActions } from './core/states/survey-store/survey.action';\r\nimport { QuestionGroupNgrxModel } from './core/states/entites/question-group.entity';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'lib-survery-lib',\r\n templateUrl: './survey-lib.component.html',\r\n styleUrls: ['./survey-lib.component.scss']\r\n})\r\nexport class SurveryLibComponent implements OnInit, AfterViewInit {\r\n\r\n surveryLibraryDivId = guidGenerator() as string;\r\n reloadDefaultAnswerId = guidGenerator() as string;\r\n rForm: FormGroup<SurveryLibFormInterface>;\r\n questionAnswerArr: SurveyQuestionResult[] = [];\r\n\r\n pageQuestionGroups$ = this._Store.selectSignal(questionGroupSelectors.pageQuestionGroups);\r\n pageQuestions$ = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n isFirstPage$ = this._Store.select(surveySelectors.isFirstPage);\r\n isLastPage$ = this._Store.select(surveySelectors.isLastPage);\r\n curruntShowedSurveyPages$ = this._Store.select(surveySelectors.selectedPageIndex).pipe(map(x => x + 1));\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get isFirstPage() {\r\n const formValue = this.rForm.value;\r\n return formValue.showedSurveyPages.findIndex(x => x == formValue.currentPageId) == 0;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n\r\n get surveyResult(): { answers: SurveyQuestionResult[], currentPageIndex: number } {\r\n return {\r\n currentPageIndex: this.fCtrls.currentPageId.value,\r\n answers: this.questionAnswerArr\r\n }\r\n }\r\n\r\n @Input() isPre: boolean = false;\r\n @Input() surveyLanguageId: number = null;\r\n @Input() surveyKey: string = null;\r\n @Input() applicantKey: string = null;\r\n @Input() isArabicLang: boolean = false;\r\n\r\n @Output() surveyResultEmit = new EventEmitter<SurveyQuestionResult[]>();\r\n @Output() selectLanguageEmit = new EventEmitter<string>();\r\n\r\n constructor(private _surveyLibService: SurveyLibService, private _Store: Store\r\n , private _formBuilder: FormBuilder, private _checkRuleExpsUsecase: CheckRuleExpsUsecase) {\r\n\r\n this.rForm = this._formBuilder.group<SurveryLibFormInterface>({\r\n currentPageId: new FormControl(null),\r\n showedSurveyPages: new FormControl([])\r\n });\r\n\r\n this._Store.select(questionSelectors.questionAnswers).subscribe(arr => {\r\n this.questionAnswerArr = arr;\r\n })\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n questionIdentify(index, item: QuestionNgrxModel) {\r\n return item.questionId;\r\n }\r\n\r\n questionGroupIdentify(index, item: QuestionGroupNgrxModel) {\r\n return item.questionGroupId;\r\n }\r\n\r\n ngOnInit(): void {\r\n this._Store.select(surveySelectors.selectedPageId).subscribe(value => {\r\n this.fCtrls.currentPageId.setValue(value);\r\n });\r\n\r\n this._Store.select(surveySelectors.showedSurveyPages).subscribe(value => {\r\n this.fCtrls.showedSurveyPages.setValue(value);\r\n });\r\n }\r\n\r\n onPaggingNext() {\r\n this._Store.select(questionSelectors.pageQuestions).pipe(take(1)).subscribe(arr => {\r\n var invalidRecords = this.haveInValidateQuestions(arr);\r\n\r\n if (invalidRecords.length == 0) {\r\n\r\n const nextPageId = this.getNextShowedPage();\r\n\r\n if (nextPageId != null) {\r\n this._Store.dispatch(surveyActions.updatePageId({ pageId: nextPageId }));\r\n\r\n $('html, body').animate({\r\n scrollTop: $(`#survery-card-${this.surveryLibraryDivId}`).offset().top - 30\r\n }, 300);\r\n\r\n } else {\r\n this.surveyResultEmit.emit(this.questionAnswerArr);\r\n }\r\n } else {\r\n var firstQuestion = $('.invalid-question')[0];\r\n $('html, body').animate({\r\n scrollTop: $(firstQuestion).offset().top - 250\r\n }, 300);\r\n }\r\n });\r\n }\r\n\r\n onPaggingBack() {\r\n const prevPageId = this.getPrevShowedPage();\r\n if (prevPageId != null) {\r\n this._Store.dispatch(surveyActions.updatePageId({ pageId: prevPageId }));\r\n }\r\n }\r\n\r\n private haveInValidateQuestions(questionArr: QuestionNgrxModel[]) {\r\n const formValue = this.rForm.value;\r\n var invalidRecords = [];\r\n\r\n var arr = questionArr.filter(x => x.isDisabled == false && x.isShow == true);\r\n arr.map(x => {\r\n if (x.isRequired == true && x.isValid != true && x.isQuestionGroup != true) {\r\n invalidRecords.push(x);\r\n }\r\n else {\r\n if (x.questionType == QuestionTypeEnum.TextInput && x.inputTypeId == InputTypeEnum.Email) {\r\n if (x.answerText?.trim() && x.isValid != true) {\r\n invalidRecords.push(x);\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (invalidRecords.length > 0) {\r\n $(`#survey-page_${formValue.currentPageId}`).addClass('survey-page_submitted');\r\n } else {\r\n $(`#survey-page_${formValue.currentPageId}`).removeClass('survey-page_submitted');\r\n }\r\n\r\n return invalidRecords;\r\n }\r\n\r\n\r\n private getNextShowedPage() {\r\n const formValue = this.rForm.value;\r\n var showedPages = formValue.showedSurveyPages;\r\n var nextShowedPages = showedPages.filter(x => x > formValue.currentPageId);\r\n if (nextShowedPages.length > 0) {\r\n return nextShowedPages[0];\r\n }\r\n return null;\r\n }\r\n\r\n private getPrevShowedPage() {\r\n const formValue = this.rForm.value;\r\n var showedPages = formValue.showedSurveyPages;\r\n var prevShowedPages = showedPages.filter(x => x < formValue.currentPageId);\r\n if (prevShowedPages.length > 0) {\r\n return prevShowedPages[prevShowedPages.length - 1];\r\n }\r\n return null;\r\n }\r\n}\r\n","<div id=\"survery-card-{{surveryLibraryDivId}}\" class=\"survay-card\">\r\n <div [attr.id]=\"'survey-page_'+fCtrls.currentPageId.value\">\r\n <ng-container *ngFor=\"let item of pageQuestionGroups$(); trackBy:questionGroupIdentify\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\" [innerHTML]=\"item.questionGroupName\">\r\n </h2>\r\n <span class=\"group-sub-title \" [innerHTML]=\"item.questionGroupDescription\">\r\n </span>\r\n </div>\r\n <ng-container\r\n *ngFor=\"let question of (pageQuestions$() |filterQuestion : item.questionGroupId); trackBy:questionIdentify\">\r\n <lib-question-boolean-template #questionBooleanTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.Boolean\">\r\n </lib-question-boolean-template>\r\n\r\n <lib-question-text-template #questionTextTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.TextInput\"\r\n [isArabicLang]=\"isArabicLang\"></lib-question-text-template>\r\n\r\n <lib-question-feedback-template #questionFeedTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.FeedBack\"\r\n [isArabicLang]=\"isArabicLang\"></lib-question-feedback-template>\r\n\r\n <lib-question-radio-button-template #questionRadioButtonTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.RadioButton\">\r\n </lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template #questionDropdownTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.DropDown\"></lib-question-dropdown-template>\r\n\r\n <lib-question-dropdown-multi-template [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.DropDownMulti\">\r\n </lib-question-dropdown-multi-template>\r\n\r\n <lib-question-check-box-template #questionCheckBoxTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.CheckBox\">\r\n </lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template #questionMatrixTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.Matrix\">\r\n </lib-question-matrix-template>\r\n\r\n <lib-question-cascade-template #questionCascadeTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.Cascade\" [applicantKey]=\"applicantKey\" [isPre]=\"isPre\"\r\n [surveyLanguageId]=\"surveyLanguageId\" [pageId]=\"question.surveyPageId\"\r\n [questionGroupId]=\"question.questionGroupId\" [surveyKey]=\"surveyKey\"\r\n [surveyLanguageId]=\"surveyLanguageId\"></lib-question-cascade-template>\r\n\r\n <lib-question-institutions-template #questionInstitutionsTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.Institutions\"\r\n [isArabicLang]=\"isArabicLang\"></lib-question-institutions-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"fCtrls.showedSurveyPages.value.length > 0\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\">\r\n <span>{{ curruntShowedSurveyPages$ | async}}</span>\r\n <span class=\"ms-2 me-2\">{{isArabicLang ? 'من' : 'of'}} </span>\r\n <span>{{fCtrls.showedSurveyPages.value.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DefaultQuestionAnswerDto } from '../../shared/dtos/default-question-answers.dto';\r\nimport { QuestionTypeEnum } from '../../shared/enums/question-type.enum';\r\n\r\n@Pipe({\r\n name: 'defaultQuestionAnswer'\r\n})\r\nexport class DefaultQuestionAnswerPipe implements PipeTransform {\r\n\r\n transform(value: DefaultQuestionAnswerDto[], questionId: number , reloadId): DefaultQuestionAnswerDto {\r\n if (value != null) {\r\n return value.find(x => x.QuestionId == questionId); \r\n }\r\n\r\n return null;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DefaultQuestionAnswerDto } from '../../shared/dtos/default-question-answers.dto';\r\n\r\n@Pipe({\r\n name: 'defaultQuestionAnswers'\r\n})\r\nexport class DefaultQuestionAnswersPipe implements PipeTransform {\r\n\r\n transform(value: DefaultQuestionAnswerDto[], questionId: any , reloadId): DefaultQuestionAnswerDto[] {\r\n if (value != null) {\r\n return value.filter(x => x.ParentQuestionId == questionId); \r\n }\r\n\r\n return [];\r\n }\r\n\r\n}\r\n","import { createReducer, on } from \"@ngrx/store\";\r\nimport { questionAdapter, QuestionEntityState, QuestionNgrxModel } from \"../entites/question.entity\";\r\nimport { surveyActions } from \"./survey.action\";\r\nimport { RuleEntityState, ruleAdapter } from \"../entites/rule.entity\";\r\nimport { QuestionGroupEntityState, questionGroupAdapter } from \"../entites/question-group.entity\";\r\nimport { QuestionTypeEnum } from \"../../../../shared/enums/question-type.enum\";\r\nimport { Update } from \"@ngrx/entity\";\r\nimport { InstitutionDto } from \"../../../../shared/dtos/institution.dto\";\r\n\r\nconst { selectAll, selectIds } = questionAdapter.getSelectors();\r\n\r\nexport interface SurveyState {\r\n selectedPageId: number,\r\n questionGroupArr: QuestionGroupEntityState,\r\n questionArr: QuestionEntityState,\r\n ruleArr: RuleEntityState,\r\n InstitutionArr: InstitutionDto[]\r\n}\r\n\r\nexport const initialSurveyState: SurveyState = {\r\n selectedPageId: null,\r\n questionGroupArr: questionGroupAdapter.getInitialState(),\r\n questionArr: questionAdapter.getInitialState(),\r\n ruleArr: ruleAdapter.getInitialState(),\r\n InstitutionArr: []\r\n}\r\n\r\nexport const _surveyReducer = createReducer(\r\n initialSurveyState,\r\n on(surveyActions.loadSurvey, (state, props) => {\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.setAll(props.questionArr, state.questionArr),\r\n questionGroupArr: questionGroupAdapter.setAll(props.questionGroupArr, state.questionGroupArr),\r\n ruleArr: ruleAdapter.setAll(props.ruleArr, state.ruleArr),\r\n selectedPageId: props.selectedPageId,\r\n InstitutionArr: []\r\n }\r\n }),\r\n on(surveyActions.addQuestion, (state, props) => {\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.addOne(props.question, state.questionArr)\r\n }\r\n }),\r\n on(surveyActions.updateQuestionAnswer, (state, props) => {\r\n const question = selectAll(state.questionArr).find(x => x.questionId == props.questionId);\r\n if (question) {\r\n var updateModel: Update<QuestionNgrxModel>;\r\n\r\n if (question.questionType == QuestionTypeEnum.TextInput || question.questionType == QuestionTypeEnum.FeedBack) {\r\n updateModel = {\r\n id: props.questionId,\r\n changes: {\r\n answerId: question.questionAllInfo.surveyAnswers[0].answerId,\r\n answerText: props.answer,\r\n isValid: props.isValid\r\n }\r\n };\r\n }\r\n else if (question.questionType == QuestionTypeEnum.CheckBox || question.questionType == QuestionTypeEnum.DropDownMulti) {\r\n updateModel = {\r\n id: props.questionId,\r\n changes: {\r\n answerIdArr: props.answer,\r\n isValid: props.isValid\r\n }\r\n };\r\n }\r\n else {\r\n updateModel = {\r\n id: props.questionId,\r\n changes: {\r\n answerId: props.answer,\r\n isValid: props.isValid\r\n }\r\n };\r\n }\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.updateOne(updateModel, state.questionArr)\r\n }\r\n }\r\n\r\n return {\r\n ...state\r\n }\r\n }),\r\n on(surveyActions.updateInstitutionQuestionAnswer, (state, props) => {\r\n const question = selectAll(state.questionArr).find(x => x.questionId == props.questionId);\r\n if (question) {\r\n var updateModel: Update<QuestionNgrxModel>;\r\n\r\n if (question.questionType == QuestionTypeEnum.Institutions) {\r\n updateModel = {\r\n id: props.questionId,\r\n changes: {\r\n answerId: props.answerId,\r\n answerText: props.answer,\r\n answerLevelId: props.answerLevelId,\r\n isValid: props.isValid\r\n }\r\n };\r\n\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.updateOne(updateModel, state.questionArr)\r\n }\r\n }\r\n }\r\n\r\n return {\r\n ...state\r\n }\r\n }),\r\n on(surveyActions.updateQuestionShow, (state, props) => {\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.updateOne({\r\n id: props.questionId,\r\n changes: {\r\n isShow: props.isShow\r\n }\r\n }, state.questionArr)\r\n }\r\n }),\r\n on(surveyActions.updateQuestionsShow, (state, props) => {\r\n const updates = props.questionIds.map(id => ({\r\n id,\r\n changes: { isShow: props.isShow }\r\n }));\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.updateMany(updates, state.questionArr)\r\n }\r\n }),\r\n on(surveyActions.updateQuestionDisable, (state, props) => {\r\n const question = selectAll(state.questionArr).find(x => x.questionId == props.questionId);\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.updateOne({\r\n id: props.questionId,\r\n changes: {\r\n isDisabled: props.isDisabled\r\n }\r\n }, state.questionArr)\r\n }\r\n }),\r\n on(surveyActions.updateQuestionsDisable, (state, props) => {\r\n const updates = props.questionIds.map(id => ({\r\n id,\r\n changes: { isDisabled: props.isDisabled }\r\n }));\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.updateMany(updates, state.questionArr)\r\n }\r\n }),\r\n on(surveyActions.updateQuestionRequired, (state, props) => {\r\n const question = selectAll(state.questionArr).find(x => x.questionId == props.questionId);\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.updateOne({\r\n id: props.questionId,\r\n changes: {\r\n isRequired: props.isRequired\r\n }\r\n }, state.questionArr)\r\n }\r\n }),\r\n on(surveyActions.removeQuestion, (state, props) => {\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.removeOne(props.questionId, state.questionArr)\r\n }\r\n }),\r\n on(surveyActions.updatePageId, (state, props) => {\r\n return {\r\n ...state,\r\n selectedPageId: props.pageId\r\n }\r\n }),\r\n on(surveyActions.loadInstitutionArrSuccess, (state, props) => {\r\n return {\r\n ...state,\r\n InstitutionArr: props.institutionArr\r\n }\r\n })\r\n);\r\n\r\nexport function surveyReducer(state, action) {\r\n return _surveyReducer(state, action);\r\n}\r\n","export enum LogicActionEnum {\r\n Show = 1,\r\n Hide = 2,\r\n Enable = 3,\r\n Disable = 4,\r\n SetAnswer = 5\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { Actions, createEffect, ofType } from \"@ngrx/effects\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { withLatestFrom, filter, switchMap, map, catchError, of } from \"rxjs\";\r\nimport { surveyActions } from \"./survey.action\";\r\nimport { CheckRuleExpsUsecase } from \"../../../usecases/check-rule-exps.usecase\";\r\nimport { surveySelectors } from \"./survey.selector\";\r\nimport { questionSelectors } from \"./question.selector\";\r\nimport { LogicActionEnum } from \"../../../../shared/enums/logic-action.enum\";\r\nimport { QuestionTypeEnum } from \"../../../../shared/enums/question-type.enum\";\r\nimport { ApiService } from \"../../../services/api.service\";\r\n\r\n@Injectable()\r\nexport class SurveyEffects {\r\n constructor(private _actions: Actions, private _store: Store,\r\n private _checkRuleExpsUsecase: CheckRuleExpsUsecase, private _apiService: ApiService) {\r\n }\r\n\r\n updateQuestionAnswer$ = createEffect(() =>\r\n this._actions.pipe(ofType(surveyActions.updateQuestionAnswer), withLatestFrom(this._store.select(surveySelectors.ruleArr)\r\n , this._store.select(questionSelectors.allQuestions)), switchMap(([action, ruleArr, questionArr]) => {\r\n var formatedRuleArr: { ruleId: any, questionId: any }[] = [];\r\n ruleArr.forEach(rule => {\r\n rule.ruleExps.forEach(ruleQuestion => {\r\n formatedRuleArr.push({\r\n ruleId: rule.ruleId,\r\n questionId: ruleQuestion.questionId\r\n })\r\n })\r\n })\r\n\r\n var selectedRuleIdArr = formatedRuleArr.filter(x => x.questionId == action.questionId).map(x => Number(x.ruleId));\r\n var arr = ruleArr.filter(x => selectedRuleIdArr.find(c => c == x.ruleId) != null);\r\n\r\n var toggleShowedQuestionIds: { questionId: any, isShow: boolean }[] = [];\r\n var toggleDisabledQuestionIds: { questionId: any, isDisabled: boolean }[] = [];\r\n arr.forEach(rule => {\r\n this._checkRuleExpsUsecase.execute({\r\n ruleExps: rule.ruleExps,\r\n questions: questionArr,\r\n }).subscribe(result => {\r\n\r\n var isPassed = result.exprestionResultArr.filter(x => x == false).length == 0;\r\n if (isPassed) {\r\n rule.ruleResultQuestions.forEach(resultQuestion => {\r\n if (rule.logicActionId == LogicActionEnum.Show) {\r\n toggleShowedQuestionIds.push({ questionId: resultQuestion.questionId, isShow: true });\r\n } else if (rule.logicActionId == LogicActionEnum.Hide) {\r\n toggleShowedQuestionIds.push({ questionId: resultQuestion.questionId, isShow: false });\r\n } else if (rule.logicActionId == LogicActionEnum.Enable) {\r\n toggleDisabledQuestionIds.push({ questionId: resultQuestion.questionId, isDisabled: false });\r\n } else if (rule.logicActionId == LogicActionEnum.Disable) {\r\n toggleDisabledQuestionIds.push({ questionId: resultQuestion.questionId, isDisabled: true });\r\n } else if (rule.logicActionId == LogicActionEnum.SetAnswer) {\r\n\r\n }\r\n\r\n const question = questionArr.find(x => x.questionId == resultQuestion.questionId);\r\n\r\n //update matrix sub questions\r\n if (question.questionType == QuestionTypeEnum.Matrix && question.isQuestionGroup == true) {\r\n var subQuestions = questionArr.filter(x => x.parentQuestionId == question.questionId);\r\n subQuestions.forEach(subQuestion => {\r\n if (rule.logicActionId == LogicActionEnum.Show) {\r\n toggleShowedQuestionIds.push({ questionId: subQuestion.questionId, isShow: true });\r\n } else if (rule.logicActionId == LogicActionEnum.Hide) {\r\n toggleShowedQuestionIds.push({ questionId: subQuestion.questionId, isShow: false });\r\n }\r\n else if (rule.logicActionId == LogicActionEnum.Enable) {\r\n toggleDisabledQuestionIds.push({ questionId: subQuestion.questionId, isDisabled: false });\r\n\r\n } else if (rule.logicActionId == LogicActionEnum.Disable) {\r\n toggleDisabledQuestionIds.push({ questionId: subQuestion.questionId, isDisabled: true });\r\n }\r\n });\r\n }\r\n\r\n });\r\n }\r\n else {\r\n rule.ruleResultQuestions.forEach(resultQuestion => {\r\n const question = questionArr.find(x => x.questionId == resultQuestion.questionId);\r\n if (question.isShow != question.isShow_default) {\r\n toggleShowedQuestionIds.push({ questionId: resultQuestion.questionId, isShow: question.isShow_default });\r\n }\r\n\r\n if (question.isDisabled != question.isDisabled_default) {\r\n toggleDisabledQuestionIds.push({ questionId: resultQuestion.questionId, isDisabled: question.isDisabled_default });\r\n }\r\n\r\n if (question.questionType == QuestionTypeEnum.Matrix && question.isQuestionGroup == true) {\r\n var subQuestions = questionArr.filter(x => x.parentQuestionId == question.questionId);\r\n subQuestions.forEach(subQuestion => {\r\n if (subQuestion.isShow != subQuestion.isShow_default) {\r\n toggleShowedQuestionIds.push({ questionId: subQuestion.questionId, isShow: subQuestion.isShow_default });\r\n }\r\n\r\n if (subQuestion.isDisabled != subQuestion.isDisabled_default) {\r\n toggleDisabledQuestionIds.push({ questionId: subQuestion.questionId, isDisabled: question.isDisabled_default });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n });\r\n });\r\n\r\n const hiddenQuestionIds = toggleShowedQuestionIds.filter(x => x.isShow == false).map(x => x.questionId);\r\n if (hiddenQuestionIds.length > 0) {\r\n console.log('hiddenQuestionIds', hiddenQuestionIds);\r\n this._store.dispatch(surveyActions.updateQuestionsShow({\r\n questionIds: hiddenQuestionIds,\r\n isShow: false\r\n }));\r\n }\r\n\r\n const showedQuestionIds = toggleShowedQuestionIds.filter(x => x.isShow == true).map(x => x.questionId);\r\n if (showedQuestionIds.length > 0) {\r\n console.log('showedQuestionIds', showedQuestionIds);\r\n this._store.dispatch(surveyActions.updateQuestionsShow({\r\n questionIds: showedQuestionIds,\r\n isShow: true\r\n }));\r\n }\r\n\r\n const disabledQuestionIds = toggleDisabledQuestionIds.filter(x => x.isDisabled == true).map(x => x.questionId);\r\n if (disabledQuestionIds.length > 0) {\r\n console.log('disabledQuestionIds', disabledQuestionIds);\r\n this._store.dispatch(surveyActions.updateQuestionsDisable({\r\n questionIds: disabledQuestionIds,\r\n isDisabled: true\r\n }));\r\n }\r\n\r\n const enabledQuestionIds = toggleDisabledQuestionIds.filter(x => x.isDisabled == false).map(x => x.questionId);\r\n if (enabledQuestionIds.length > 0) {\r\n console.log('enabledQuestionIds', enabledQuestionIds);\r\n this._store.dispatch(surveyActions.updateQuestionsDisable({\r\n questionIds: enabledQuestionIds,\r\n isDisabled: false\r\n }));\r\n }\r\n\r\n return of([])\r\n })), { dispatch: false });\r\n\r\n loadInstitutionArr$ = createEffect(() =>\r\n this._actions.pipe(ofType(surveyActions.loadInstitutionArr), withLatestFrom(this._store.select(surveySelectors.institutionArr))\r\n , filter(([action, institutionArr]) => institutionArr.length == 0), switchMap(() => {\r\n return this._apiService.getAllInstitutions().pipe(map((res) => {\r\n return surveyActions.loadInstitutionArrSuccess({ institutionArr: res.responseDetails });\r\n }))\r\n })));\r\n}\r\n\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { SurveryLibComponent } from './survery-lib.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { QuestionTextTemplateComponent } from './components/question-text-template/question-text-template.component';\r\nimport { QuestionRadioButtonTemplateComponent } from './components/question-radio-button-template/question-radio-button-template.component';\r\nimport { QuestionCheckBoxTemplateComponent } from './components/question-check-box-template/question-check-box-template.component';\r\nimport { QuestionDropdownTemplateComponent } from './components/question-dropdown-template/question-dropdown-template.component';\r\nimport { QuestionMatrixTemplateComponent } from './components/question-matrix-template/question-matrix-template.component';\r\nimport { QuestionBooleanTemplateComponent } from './components/question-boolean-template/question-boolean-template.component';\r\nimport { FilterQuestionPipe } from './pipes/filter-question.pipe';\r\nimport { DefaultQuestionAnswerPipe } from './pipes/default-question-answer.pipe';\r\nimport { DefaultQuestionAnswersPipe } from './pipes/default-question-answers.pipe';\r\nimport { QuestionDropdownMultiTemplateComponent } from './components/question-dropdown-multi-template/question-dropdown-multi-template.component';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { TextBoxTypeAttrPipe } from './pipes/text-box-type-attr.pipe';\r\nimport { QuestionCascadeTemplateComponent } from './components/question-cascade-template/question-cascade-template.component';\r\nimport { LibConfigModel, LibConfigService } from './services/lib-config.service';\r\nimport { MaskedForMinMaxDirective } from './directives/masked-for-min-max.directive';\r\nimport { Store, StoreModule } from '@ngrx/store';\r\nimport { surveyReducer } from './core/states/survey-store/survey.reducer';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { FindQuestionPipe } from './pipes/find-question.pipe';\r\nimport { QuestionFeedbackTemplateComponent } from './components/question-feedback-template/question-feedback-template.component';\r\nimport { RatingModule } from 'ngx-bootstrap/rating';\r\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\r\nimport { MaskedForMaxLengthDirective } from './directives/masked-for-max-length.directive';\r\nimport { SurveyEffects } from './core/states/survey-store/survey.effect';\r\nimport { QuestionInstitutionsTemplateComponent } from './components/question-institutions-template/question-institutions-template.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n SurveryLibComponent,\r\n QuestionTextTemplateComponent,\r\n QuestionRadioButtonTemplateComponent,\r\n QuestionCheckBoxTemplateComponent,\r\n QuestionDropdownTemplateComponent,\r\n QuestionMatrixTemplateComponent,\r\n QuestionBooleanTemplateComponent,\r\n QuestionDropdownMultiTemplateComponent,\r\n FilterQuestionPipe,\r\n DefaultQuestionAnswerPipe,\r\n DefaultQuestionAnswersPipe,\r\n TextBoxTypeAttrPipe,\r\n QuestionCascadeTemplateComponent,\r\n MaskedForMinMaxDirective,\r\n FindQuestionPipe,\r\n QuestionFeedbackTemplateComponent,\r\n MaskedForMaxLengthDirective,\r\n QuestionInstitutionsTemplateComponent\r\n ],\r\n imports: [\r\n CommonModule, HttpClientModule, ReactiveFormsModule, FormsModule, NgSelectModule,\r\n StoreModule.forFeature('survey-lib',surveyReducer),\r\n EffectsModule.forFeature([SurveyEffects]),RatingModule ,PaginationModule\r\n ],\r\n exports: [\r\n SurveryLibComponent ,\r\n StoreModule\r\n ]\r\n})\r\nexport class SurveryLibModule {\r\n\r\n public static forRoot(config: LibConfigModel): ModuleWithProviders<SurveryLibModule> {\r\n return {\r\n ngModule: SurveryLibModule,\r\n providers: [\r\n { provide: LibConfigService, useValue: config }\r\n ],\r\n }\r\n }\r\n\r\n public static forChild(): ModuleWithProviders<SurveryLibModule> {\r\n return {\r\n ngModule: SurveryLibModule\r\n }\r\n }\r\n}\r\n","export class SurveyQuestionResult{\r\n SurveyPageIndex:number;\r\n QuestionId;\r\n QuestionType;\r\n AnswerId;\r\n AnswerIdArr;\r\n AnswerText;\r\n AnswerLevelId ;\r\n}","/*\r\n * Public API Surface of survery-lib\r\n */\r\n\r\nexport * from './lib/survery-lib.component';\r\nexport * from './lib/services/survey-lib.service';\r\nexport * from './lib/survery-lib.module';\r\nexport * from './shared/models/survery-question-result.model'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["selectAll","selectIds","selectSurveyData","guidGenerator","i1","i2.SurveyLibService","i5.MaskedForMinMaxDirective","i6.MaskedForMaxLengthDirective","i7.TextBoxTypeAttrPipe","i3.ApiService","i4","i5","i6.QuestionTextTemplateComponent","i7.QuestionDropdownTemplateComponent","i8.FindQuestionPipe","i2","i1.SurveyLibService","i3","i4.CheckRuleExpsUsecase","i7.QuestionRadioButtonTemplateComponent","i8.QuestionCheckBoxTemplateComponent","i9.QuestionDropdownTemplateComponent","i10.QuestionMatrixTemplateComponent","i11.QuestionBooleanTemplateComponent","i12.QuestionDropdownMultiTemplateComponent","i13.QuestionCascadeTemplateComponent","i14.QuestionFeedbackTemplateComponent","i15.QuestionInstitutionsTemplateComponent","i16.FilterQuestionPipe","i3.CheckRuleExpsUsecase","i4.ApiService"],"mappings":"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"}
1
+ {"version":3,"file":"survery-lib.mjs","sources":["../../../projects/survery-lib/src/shared/enums/question-type.enum.ts","../../../projects/survery-lib/src/shared/enums/input-type.enum.ts","../../../projects/survery-lib/src/lib/core/states/entites/question.entity.ts","../../../projects/survery-lib/src/lib/core/states/entites/rule.entity.ts","../../../projects/survery-lib/src/lib/core/states/survey-store/survey.selector.ts","../../../projects/survery-lib/src/lib/core/states/entites/question-group.entity.ts","../../../projects/survery-lib/src/lib/core/states/survey-store/question-group.selector.ts","../../../projects/survery-lib/src/lib/core/states/survey-store/question.selector.ts","../../../projects/survery-lib/src/lib/core/states/survey-store/survey.action.ts","../../../projects/survery-lib/src/shared/enums/evaluation-type.enum.ts","../../../projects/survery-lib/src/lib/services/survey-lib.service.ts","../../../projects/survery-lib/src/shared/enums/Logic-Property.enum.ts","../../../projects/survery-lib/src/shared/enums/operator.enum.ts","../../../projects/survery-lib/src/lib/usecases/check-rule-exps.usecase.ts","../../../projects/survery-lib/src/lib/validators/phone.validator.ts","../../../projects/survery-lib/src/lib/directives/masked-for-min-max.directive.ts","../../../projects/survery-lib/src/lib/directives/masked-for-max-length.directive.ts","../../../projects/survery-lib/src/lib/pipes/text-box-type-attr.pipe.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.html","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.ts","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.html","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.ts","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.html","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.ts","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.html","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.ts","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.html","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.ts","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.html","../../../projects/survery-lib/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.ts","../../../projects/survery-lib/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.html","../../../projects/survery-lib/src/lib/services/lib-config.service.ts","../../../projects/survery-lib/src/lib/services/api.service.ts","../../../projects/survery-lib/src/lib/pipes/find-question.pipe.ts","../../../projects/survery-lib/src/lib/components/question-cascade-template/question-cascade-template.component.ts","../../../projects/survery-lib/src/lib/components/question-cascade-template/question-cascade-template.component.html","../../../projects/survery-lib/src/lib/components/question-feedback-template/question-feedback-template.component.ts","../../../projects/survery-lib/src/lib/components/question-feedback-template/question-feedback-template.component.html","../../../projects/survery-lib/src/lib/components/question-institutions-template/question-institutions-template.component.ts","../../../projects/survery-lib/src/lib/components/question-institutions-template/question-institutions-template.component.html","../../../projects/survery-lib/src/lib/pipes/filter-question.pipe.ts","../../../projects/survery-lib/src/lib/survery-lib.component.ts","../../../projects/survery-lib/src/lib/survey-lib.component.html","../../../projects/survery-lib/src/lib/pipes/default-question-answer.pipe.ts","../../../projects/survery-lib/src/lib/pipes/default-question-answers.pipe.ts","../../../projects/survery-lib/src/lib/core/states/survey-store/survey.reducer.ts","../../../projects/survery-lib/src/shared/enums/logic-action.enum.ts","../../../projects/survery-lib/src/lib/core/states/survey-store/survey.effect.ts","../../../projects/survery-lib/src/lib/survery-lib.module.ts","../../../projects/survery-lib/src/shared/models/survery-question-result.model.ts","../../../projects/survery-lib/src/public-api.ts","../../../projects/survery-lib/src/survery-lib.ts"],"sourcesContent":["export enum QuestionTypeEnum {\r\n RadioButton = 1,\r\n CheckBox = 2,\r\n DropDown = 3,\r\n Boolean = 4,\r\n TextInput = 5,\r\n Matrix = 6,\r\n DropDownMulti = 7 ,\r\n Cascade = 8 ,\r\n FeedBack = 9 ,\r\n Institutions = 10,\r\n}","export enum InputTypeEnum {\r\n Color = 1,\r\n Date = 2,\r\n DateTime = 3,\r\n Email = 4,\r\n Number = 5,\r\n Password = 6,\r\n Text = 7,\r\n Phone = 8 ,\r\n Stars = 20 ,\r\n Pagination =21\r\n}","import { EntityAdapter, EntityState, createEntityAdapter } from \"@ngrx/entity\";\r\nimport { QuestionTypeEnum } from \"../../../../shared/enums/question-type.enum\";\r\nimport { InputTypeEnum } from \"../../../../shared/enums/input-type.enum\";\r\nimport { SurveyQuestionDto } from \"../../../../shared/dtos/survey-question.dto\";\r\n\r\nexport function selectQuestionId(a: QuestionNgrxModel) {\r\n return a.questionId;\r\n}\r\n\r\nexport const questionAdapter: EntityAdapter<QuestionNgrxModel> = createEntityAdapter<QuestionNgrxModel>({\r\n selectId: selectQuestionId\r\n});\r\n\r\nexport interface QuestionEntityState extends EntityState<QuestionNgrxModel> { }\r\n\r\nexport interface QuestionNgrxModel {\r\n surveyPageId:number;\r\n questionGroupId: number;\r\n questionId;\r\n questionType:QuestionTypeEnum;\r\n inputTypeId:InputTypeEnum;\r\n isQuestionGroup:boolean;\r\n answerId;\r\n answerIdArr;\r\n answerText;\r\n answerLevelId ?:number;\r\n isRequired:boolean;\r\n isValid:boolean;\r\n order: number;\r\n isDisabled :boolean;\r\n isShow:boolean;\r\n isDisabled_default :boolean;\r\n isShow_default:boolean;\r\n parentQuestionId;\r\n questionAllInfo : SurveyQuestionDto;\r\n maxLevelValue?: number;\r\n}","import { EntityAdapter, EntityState, createEntityAdapter } from \"@ngrx/entity\";\r\nimport { SurveyRuleDto } from \"../../../../shared/dtos/survey-rule.dto\";\r\n\r\nexport function selectRuleId(a: RuleNgrxModel) {\r\n return a.ruleId;\r\n}\r\n\r\nexport const ruleAdapter: EntityAdapter<RuleNgrxModel> = createEntityAdapter<RuleNgrxModel>({\r\n selectId: selectRuleId\r\n});\r\n\r\nexport interface RuleEntityState extends EntityState<RuleNgrxModel> { }\r\n\r\nexport interface RuleNgrxModel extends SurveyRuleDto {\r\n}","import { createFeatureSelector, createSelector } from \"@ngrx/store\";\r\nimport { SurveyState } from \"./survey.reducer\";\r\nimport { questionAdapter } from \"../entites/question.entity\";\r\nimport { questionGroupAdapter } from \"../entites/question-group.entity\";\r\nimport { ruleAdapter } from \"../entites/rule.entity\";\r\n\r\nconst { selectAll, selectIds } = questionAdapter.getSelectors();\r\n\r\nconst selectSurveyData = createFeatureSelector<SurveyState>('survey-lib');\r\n\r\nconst selectedPageId = createSelector(selectSurveyData, (state) => state.selectedPageId);\r\n\r\nconst showedSurveyPages = createSelector(selectSurveyData, (state) => {\r\n var pageArr = selectAll(state.questionArr).filter(x => x.isShow == true).map(x => x.surveyPageId);\r\n const distinctArray = pageArr.filter((n, i) => pageArr.indexOf(n) === i);\r\n return distinctArray.sort((a, b) => a - b);\r\n});\r\n\r\nconst selectedPageIndex = createSelector(showedSurveyPages, selectSurveyData, (pageArr: number[], state) => {\r\n return pageArr.findIndex(x => x == state.selectedPageId);\r\n});\r\n\r\nconst isFirstPage = createSelector(showedSurveyPages, selectSurveyData, (pageArr: number[], state) => {\r\n if (pageArr.length > 0) {\r\n return pageArr.findIndex(x => x == state.selectedPageId) == 0;\r\n }\r\n return true;\r\n});\r\n\r\nconst isLastPage = createSelector(showedSurveyPages, selectSurveyData, (pageArr: number[], state) => {\r\n return pageArr.findIndex(x => x == state.selectedPageId) == (pageArr.length - 1);\r\n});\r\n\r\n\r\nconst ruleArr = createSelector(selectSurveyData, (state) => ruleAdapter.getSelectors().selectAll(state.ruleArr));\r\n\r\nconst institutionArr = createSelector(selectSurveyData, (state) => state.InstitutionArr);\r\n\r\nexport const surveySelectors = {\r\n selectedPageId,\r\n selectedPageIndex,\r\n showedSurveyPages,\r\n isFirstPage,\r\n isLastPage,\r\n ruleArr ,\r\n institutionArr\r\n}\r\n\r\n","import { EntityAdapter, EntityState, createEntityAdapter } from \"@ngrx/entity\";\r\nimport { QuestionTypeEnum } from \"../../../../shared/enums/question-type.enum\";\r\nimport { InputTypeEnum } from \"../../../../shared/enums/input-type.enum\";\r\n\r\nexport function selectQuestionGroupId(a: QuestionGroupNgrxModel) {\r\n return a.questionGroupId;\r\n}\r\n\r\nexport const questionGroupAdapter: EntityAdapter<QuestionGroupNgrxModel> = createEntityAdapter<QuestionGroupNgrxModel>({\r\n selectId: selectQuestionGroupId\r\n});\r\n\r\nexport interface QuestionGroupEntityState extends EntityState<QuestionGroupNgrxModel> { }\r\n\r\nexport interface QuestionGroupNgrxModel {\r\n questionGroupId: number;\r\n questionGroupName: string;\r\n questionGroupDescription: string ;\r\n surveyPageId:number;\r\n}","import { createFeatureSelector, createSelector } from \"@ngrx/store\";\r\nimport { questionGroupAdapter } from \"../entites/question-group.entity\";\r\nimport { questionAdapter } from \"../entites/question.entity\";\r\nimport { SurveyState } from \"./survey.reducer\";\r\n\r\nconst { selectAll, selectIds } = questionGroupAdapter.getSelectors();\r\n\r\nconst selectSurveyData = createFeatureSelector<SurveyState>('survey-lib');\r\n\r\nconst pageQuestionGroups = createSelector(selectSurveyData, (state) => \r\n selectAll(state.questionGroupArr).filter(x => x.surveyPageId == state.selectedPageId));\r\n\r\nexport const questionGroupSelectors = {\r\n pageQuestionGroups \r\n}","import { createFeatureSelector, createSelector } from \"@ngrx/store\";\r\nimport { questionGroupAdapter } from \"../entites/question-group.entity\";\r\nimport { questionAdapter } from \"../entites/question.entity\";\r\nimport { SurveyState } from \"./survey.reducer\";\r\nimport { SurveyQuestionResult } from \"../../../../shared/models/survery-question-result.model\";\r\nimport { QuestionTypeEnum } from \"../../../../shared/enums/question-type.enum\";\r\n\r\nconst { selectAll, selectIds } = questionAdapter.getSelectors();\r\n\r\n\r\nconst selectSurveyData = createFeatureSelector<SurveyState>('survey-lib');\r\n\r\nconst allQuestions = createSelector(selectSurveyData, (state) => selectAll(state.questionArr));\r\n\r\nconst pageQuestions = createSelector(selectSurveyData, (state) => selectAll(state.questionArr).filter(x => x.surveyPageId == state.selectedPageId));\r\n\r\nconst questionAnswers = createSelector(selectSurveyData, (state) => selectAll(state.questionArr)\r\n.filter(x => x.isQuestionGroup != true).map(x => {\r\n if(x.questionType == QuestionTypeEnum.Institutions){\r\n return {\r\n SurveyPageIndex: x.surveyPageId,\r\n QuestionId: x.questionId,\r\n QuestionType: x.questionType,\r\n AnswerId:x.answerLevelId ,\r\n AnswerText: x.answerText,\r\n AnswerIdArr: x.answerIdArr ,\r\n AnswerLevelId: x.answerId \r\n } as SurveyQuestionResult\r\n }else{\r\n return {\r\n SurveyPageIndex: x.surveyPageId,\r\n QuestionId: x.questionId,\r\n QuestionType: x.questionType,\r\n AnswerId: x.answerId,\r\n AnswerText: x.answerText,\r\n AnswerIdArr: x.answerIdArr ,\r\n AnswerLevelId:x.answerLevelId \r\n } as SurveyQuestionResult\r\n }\r\n \r\n}))\r\n\r\nexport const questionSelectors = {\r\n allQuestions,\r\n pageQuestions ,\r\n questionAnswers\r\n}","import { createAction, props } from \"@ngrx/store\";\r\nimport { QuestionNgrxModel } from \"../entites/question.entity\";\r\nimport { RuleNgrxModel } from \"../entites/rule.entity\";\r\nimport { QuestionGroupNgrxModel } from \"../entites/question-group.entity\";\r\nimport { InstitutionDto } from \"../../../../shared/dtos/institution.dto\";\r\n\r\nconst loadSurvey = createAction('[Survey library] Load Survey', props<{ questionArr: QuestionNgrxModel[] , ruleArr:RuleNgrxModel[] ,\r\n questionGroupArr : QuestionGroupNgrxModel[] ,selectedPageId:number }>());\r\n\r\nconst addQuestion = createAction('[Survey library] Add Question',props<{question:QuestionNgrxModel}>())\r\nconst updateQuestionAnswer = createAction('[Survey library] Update Question Answer',props<{questionId:any , answer :any ,isValid : boolean}>());\r\nconst updateInstitutionQuestionAnswer = createAction('[Survey library] Update Institution Question Answer',\r\n props<{questionId:any , answer :any ,answerId:any ,answerLevelId:any ,isValid : boolean}>());\r\nconst updateQuestionShow = createAction('[Survey library] Update Question Show',props<{questionId:any ,isShow : boolean}>());\r\nconst updateQuestionsShow = createAction('[Survey library] Update Questions Show',props<{questionIds:any[], isShow : boolean}>());\r\nconst updateQuestionDisable = createAction('[Survey library] Update Question Disable',props<{questionId:any , isDisabled : boolean}>());\r\nconst updateQuestionsDisable = createAction('[Survey library] Update Questions Disable',props<{questionIds:any[] , isDisabled : boolean}>());\r\nconst updateQuestionRequired = createAction('[Survey library] Update Question Required',props<{questionId:any , isRequired : boolean}>());\r\nconst removeQuestion = createAction('[Survey library] Remove Question',props<{questionId:any}>())\r\n\r\nconst updatePageId = createAction('[Survey library] Update Page Id',props<{pageId:number}>());\r\n\r\nconst loadInstitutionArr = createAction('[Survey library] Load Institution Arr');\r\nconst loadInstitutionArrSuccess = createAction('[Survey library] Load Institution Arr Success',props<{institutionArr:InstitutionDto[]}>())\r\n\r\nexport const surveyActions ={\r\n loadSurvey ,\r\n addQuestion ,\r\n updateQuestionAnswer,\r\n updateInstitutionQuestionAnswer,\r\n updateQuestionShow,\r\n updateQuestionsShow,\r\n updateQuestionDisable,\r\n updateQuestionsDisable,\r\n updateQuestionRequired,\r\n removeQuestion ,\r\n updatePageId ,\r\n loadInstitutionArr,\r\n loadInstitutionArrSuccess\r\n}\r\n","export enum EvaluationTypeEnum {\r\n Stars = 1,\r\n Pagination = 2\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { SurveyDto } from '../../shared/dtos/survey.dto';\r\nimport { surveyAnswersSubjectDto } from '../../shared/dtos/survey-answers-subject.dto';\r\nimport { SurveyLanguageDto } from '../../shared/dtos/survey-language.dto';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\r\nimport { Store } from '@ngrx/store';\r\nimport { surveyActions } from '../core/states/survey-store/survey.action';\r\nimport { QuestionNgrxModel } from '../core/states/entites/question.entity';\r\nimport { QuestionTypeEnum } from '../../shared/enums/question-type.enum';\r\nimport { QuestionGroupNgrxModel } from '../core/states/entites/question-group.entity';\r\nimport { InputTypeEnum } from '../../shared/enums/input-type.enum';\r\nimport { EvaluationTypeEnum } from '../../shared/enums/evaluation-type.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SurveyLibService {\r\n\r\n private reloadSurveySubject: Subject<string> = new Subject<string>();\r\n\r\n get reloadSurveyObsrv() {\r\n return this.reloadSurveySubject.asObservable();\r\n }\r\n\r\n constructor(private _Store: Store) { }\r\n\r\n setSurveyData(survey: SurveyDto) {\r\n var questionArr: QuestionNgrxModel[] = [];\r\n var questionGroupArr: QuestionGroupNgrxModel[] = [];\r\n\r\n survey.surveyPages.forEach((page, pageIndex) => {\r\n page.surveyQuestionGroups.forEach(group => {\r\n questionGroupArr.push({\r\n questionGroupId: group.questionGroupId,\r\n questionGroupName: group.questionGroupName,\r\n questionGroupDescription: group.questionGroupDescription,\r\n surveyPageId: page.pageId\r\n });\r\n\r\n group.surveyQuestions.forEach(question => {\r\n var newQuestions = this.addQuestion(question, page.pageId, group.questionGroupId)\r\n questionArr.push(...newQuestions);\r\n });\r\n\r\n });\r\n });\r\n\r\n var pageIdArr = survey.surveyPages.map(x => x.pageId);\r\n\r\n this._Store.dispatch(surveyActions.loadSurvey({\r\n questionArr: questionArr,\r\n ruleArr: survey.surveyRules,\r\n questionGroupArr: questionGroupArr,\r\n selectedPageId: Math.min(...pageIdArr)\r\n }));\r\n }\r\n\r\n setsurveyAnswers(model: surveyAnswersSubjectDto) {\r\n\r\n model.defaultAnswers.forEach(answer => {\r\n\r\n if (answer.QuestionType == QuestionTypeEnum.TextInput ||\r\n answer.QuestionType == QuestionTypeEnum.FeedBack) {\r\n\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: answer.QuestionId,\r\n answer: answer.AnswerText,\r\n isValid: true\r\n }));\r\n }\r\n else if (answer.QuestionType == QuestionTypeEnum.CheckBox\r\n || answer.QuestionType == QuestionTypeEnum.DropDownMulti) {\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: answer.QuestionId,\r\n answer: answer.AnswerIdArr,\r\n isValid: true\r\n }));\r\n }\r\n else if (answer.QuestionType == QuestionTypeEnum.Institutions) {\r\n this._Store.dispatch(surveyActions.updateInstitutionQuestionAnswer({\r\n questionId: answer.QuestionId,\r\n answer: answer.AnswerText,\r\n answerId: answer.AnswerId,\r\n answerLevelId: answer.AnswerLevelId,\r\n isValid: true\r\n }));\r\n\r\n }\r\n else {\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: answer.QuestionId,\r\n answer: answer.AnswerId,\r\n isValid: true\r\n }));\r\n }\r\n })\r\n }\r\n\r\n setReloadSurvey() {\r\n this.reloadSurveySubject.next(guidGenerator());\r\n }\r\n\r\n private addQuestion(question: SurveyQuestionDto, pageIndex: number, questionGroupId: number): QuestionNgrxModel[] {\r\n var questionArr: QuestionNgrxModel[] = [];\r\n\r\n var questionNgrxModel: QuestionNgrxModel = {\r\n surveyPageId: pageIndex,\r\n questionId: question.questionId,\r\n questionType: question.questionTypeId,\r\n inputTypeId: question.surveyAnswers[0].inputTypeId,\r\n isQuestionGroup: question.questionTypeId == QuestionTypeEnum.Matrix || question.questionTypeId == QuestionTypeEnum.Institutions,\r\n answerId: null,\r\n answerIdArr: null,\r\n answerText: null,\r\n isRequired: question.isRequired,\r\n isValid: null,\r\n isDisabled: question.isReadOnly,\r\n isShow: question.isVisable,\r\n isDisabled_default: question.isReadOnly,\r\n isShow_default: question.isVisable,\r\n order: question.order,\r\n questionGroupId: questionGroupId,\r\n parentQuestionId: null,\r\n maxLevelValue: null,\r\n questionAllInfo: question,\r\n };\r\n\r\n if (question.questionTypeId == QuestionTypeEnum.FeedBack) {\r\n if (question.surveyAnswers[0].evaluationTypeId == EvaluationTypeEnum.Stars) {\r\n questionNgrxModel.inputTypeId = InputTypeEnum.Stars\r\n }\r\n else if (question.surveyAnswers[0].evaluationTypeId == EvaluationTypeEnum.Pagination) {\r\n questionNgrxModel.inputTypeId = InputTypeEnum.Pagination\r\n }\r\n }\r\n\r\n questionArr.push(questionNgrxModel);\r\n\r\n if (question.questionTypeId == QuestionTypeEnum.Matrix) {\r\n question.surveySubQuestions.forEach(subQuestion => {\r\n questionArr.push({\r\n surveyPageId: pageIndex,\r\n questionId: subQuestion.questionId,\r\n questionType: question.questionTypeId,\r\n inputTypeId: question.surveyAnswers[0].inputTypeId,\r\n isQuestionGroup: false,\r\n answerId: null,\r\n answerIdArr: null,\r\n answerText: null,\r\n isRequired: question.isRequired,\r\n isValid: null,\r\n order: question.order,\r\n isDisabled: question.isReadOnly,\r\n isShow: question.isVisable,\r\n isDisabled_default: question.isReadOnly,\r\n isShow_default: question.isVisable,\r\n parentQuestionId: question.questionId,\r\n questionGroupId: questionGroupId,\r\n questionAllInfo: question,\r\n maxLevelValue: null\r\n });\r\n });\r\n }\r\n\r\n if (question.questionTypeId == QuestionTypeEnum.Institutions) {\r\n questionNgrxModel.maxLevelValue = question.maxLevelValue;\r\n\r\n question.surveySubQuestionLevels.forEach(subQuestion => {\r\n questionArr.push({\r\n surveyPageId: pageIndex,\r\n questionId: subQuestion.questionId,\r\n questionType: question.questionTypeId,\r\n inputTypeId: question.surveyAnswers[0].inputTypeId,\r\n isQuestionGroup: false,\r\n answerId: null,\r\n answerIdArr: null,\r\n answerText: null,\r\n isRequired: subQuestion.level == 1 ? question.isRequired : false,\r\n isValid: null,\r\n isDisabled: question.isReadOnly,\r\n order: question.order,\r\n isShow: question.isVisable,\r\n isDisabled_default: question.isReadOnly,\r\n isShow_default: question.isVisable,\r\n parentQuestionId: question.questionId,\r\n questionGroupId: questionGroupId,\r\n questionAllInfo: question,\r\n maxLevelValue: null\r\n });\r\n });\r\n }\r\n\r\n return questionArr;\r\n }\r\n}\r\n","export enum LogicPropertyEnum{\r\n GreaterThan = 1 ,\r\n GreaterThanOrEqual = 2 ,\r\n LessThan = 3,\r\n LessThanOrEqual = 4 ,\r\n Equal = 5 ,\r\n NotEqual = 6,\r\n IsEmpty = 9 ,\r\n IsNotEmpty = 10 ,\r\n AnyOf =11,\r\n Then = 12\r\n}","export enum OperatorEnum {\r\n Or = 7,\r\n And =8\r\n}","import { Observable, of } from \"rxjs\";\r\nimport { UseCase } from \"./base/use-case\";\r\nimport { SurveyRuleDto } from \"../../shared/dtos/survey-rule.dto\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { QuestionChildOfSurveryLibFormInterface } from \"../../shared/form-interfaces/survery-lib.form-interface\";\r\nimport { RuleExpDto } from \"../../shared/dtos/rule-exp.dto\";\r\nimport { QuestionTypeEnum } from \"../../shared/enums/question-type.enum\";\r\nimport { LogicPropertyEnum } from \"../../shared/enums/Logic-Property.enum\";\r\nimport { OperatorEnum } from \"../../shared/enums/operator.enum\";\r\nimport { QuestionNgrxModel } from \"../core/states/entites/question.entity\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CheckRuleExpsUsecase implements UseCase<CheckRulesUsecaseModel, CheckRulesUsecaseResult>{\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n execute(params: CheckRulesUsecaseModel): Observable<CheckRulesUsecaseResult> {\r\n\r\n var useCaseResult: CheckRulesUsecaseResult = {\r\n exprestionResultArr: []\r\n };\r\n\r\n params.ruleExps.forEach(ruleExp => {\r\n const index = params.questions.findIndex(x => x.questionId == ruleExp.questionId);\r\n var questionGroupValue = params.questions.at(index);\r\n\r\n var result: boolean;\r\n\r\n if (questionGroupValue.questionType == QuestionTypeEnum.TextInput || questionGroupValue.questionType == QuestionTypeEnum.FeedBack) {\r\n result = this.checkRuleExpForAnswerText(ruleExp, questionGroupValue.answerText)\r\n }\r\n else if (questionGroupValue.questionType == QuestionTypeEnum.CheckBox || questionGroupValue.questionType == QuestionTypeEnum.DropDownMulti) {\r\n result = this.checkRuleExpForAnswerIdArr(ruleExp, questionGroupValue.answerIdArr);\r\n }\r\n else {\r\n result = this.checkRuleExpForAnswerId(ruleExp, questionGroupValue.answerId);\r\n }\r\n\r\n useCaseResult.exprestionResultArr.push(result);\r\n });\r\n\r\n // console.log(`Questions not passed ${useCaseResult.exprestionResultArr.filter(x => x == false).length}`);\r\n\r\n return of(useCaseResult);\r\n }\r\n\r\n private checkRuleExpForAnswerId(ruleExp: RuleExpDto, answerId: number) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId > answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId >= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId < answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId <= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Equal) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId == answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.NotEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId != answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answerId == null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answerId != null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.AnyOf) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) > -1\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Then) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) == -1\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerIdArr(ruleExp: RuleExpDto, answerIdArr: number[]) {\r\n var ruleExpResultArr: boolean[] = [];\r\n answerIdArr?.forEach(answer => {\r\n var isResult = this.checkRuleExpForAnswerId(ruleExp, answer);\r\n ruleExpResultArr.push(isResult);\r\n })\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerText(ruleExp: RuleExpDto, answer: string) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answer == null || answer == ''\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answer != null && answer != ''\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n\r\n if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n}\r\n\r\nexport class CheckRulesUsecaseModel {\r\n ruleExps: RuleExpDto[];\r\n questions: QuestionNgrxModel[];\r\n}\r\n\r\nexport class CheckRulesUsecaseResult {\r\n exprestionResultArr: boolean[];\r\n}","import { AbstractControl } from \"@angular/forms\";\r\n\r\nexport function PhoneValidator(control: AbstractControl) {\r\n if (control.value) {\r\n var phoneCode = control.value.trim().slice(0, 2);\r\n var phoneLength = control.value.trim().length;\r\n if (phoneCode != \"05\" || phoneLength != 10) {\r\n return { invalidPhone: true };\r\n }\r\n }\r\n return null;\r\n}","import { Directive, ElementRef, HostListener } from '@angular/core';\r\ndeclare var $: any;\r\n@Directive({\r\n selector: '[libMaskedForMinMax]'\r\n})\r\nexport class MaskedForMinMaxDirective {\r\n\r\n constructor(private el: ElementRef) { }\r\n\r\n @HostListener('keypress', ['$event'])\r\n onKeyUp(event: KeyboardEvent) {\r\n const input = event.target as HTMLInputElement;\r\n if (input.type === 'number' || input.type === 'text') {\r\n var min = null;\r\n var max = null;\r\n if (input.getAttribute('min') !== null) {\r\n min = parseInt(input.getAttribute('min'));\r\n }\r\n if (input.getAttribute('max') !== null) {\r\n max = parseInt(input.getAttribute('max'));\r\n }\r\n\r\n var inputVlaue: any = input.value;\r\n // allowed key array\r\n var keyArr = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'Backspace'];\r\n if (min != null || max != null) {\r\n if (keyArr.indexOf(event.key) == -1) {\r\n event.preventDefault();\r\n }\r\n\r\n if (input.selectionStart != null) {\r\n\r\n let firstPart = input.value.slice(0, input.selectionStart);\r\n let lastPart = input.value.slice(input.selectionEnd, input.value.length);\r\n\r\n inputVlaue = Number(firstPart + event.key + lastPart);\r\n }\r\n }\r\n\r\n if (min != null) {\r\n var allowed = min.length - 1;\r\n if (allowed > 0 && inputVlaue.length > allowed) {\r\n if (parseInt(inputVlaue) < min) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n if (max !== null) {\r\n if (parseInt(inputVlaue) > max) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[libMaskedForMaxLength]'\r\n})\r\nexport class MaskedForMaxLengthDirective {\r\n\r\n @HostListener('keypress', ['$event'])\r\n onKeyUp(event: KeyboardEvent) {\r\n const input = event.target as HTMLInputElement;\r\n var max = null;\r\n if (input.getAttribute('max') !== null) {\r\n max = parseInt(input.getAttribute('max'));\r\n }\r\n\r\n var inputVlaue: any = input.value;\r\n\r\n // allowed key array\r\n if (max !== null) {\r\n\r\n if (input.selectionStart != input.selectionEnd) {\r\n\r\n let firstPart = input.value.slice(0, input.selectionStart);\r\n let lastPart = input.value.slice(input.selectionEnd, input.value.length);\r\n inputVlaue = Number(firstPart + event.key + lastPart);\r\n }\r\n\r\n if (inputVlaue.length + 1 > max) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { InputTypeEnum } from '../../shared/enums/input-type.enum';\r\n\r\n@Pipe({\r\n name: 'textBoxTypeAttr'\r\n})\r\nexport class TextBoxTypeAttrPipe implements PipeTransform {\r\n\r\n transform(value: InputTypeEnum, ...args: unknown[]): string {\r\n if (value != null) {\r\n if (value == InputTypeEnum.Color) {\r\n return 'color';\r\n } else if (value == InputTypeEnum.Date) {\r\n return 'date';\r\n }\r\n else if (value == InputTypeEnum.DateTime) {\r\n return 'datetime-local';\r\n }\r\n else if (value == InputTypeEnum.Email) {\r\n return 'email';\r\n }\r\n else if (value == InputTypeEnum.Number) {\r\n return 'number';\r\n }\r\n else if (value == InputTypeEnum.Password) {\r\n return 'password';\r\n }\r\n else if (value == InputTypeEnum.Phone) {\r\n return 'Phone';\r\n }\r\n }\r\n\r\n return 'text';\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map, pairwise } from 'rxjs';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { InputTypeEnum } from '../../../shared/enums/input-type.enum';\r\nimport { PhoneValidator } from '../../validators/phone.validator';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { Store } from '@ngrx/store';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\n\r\n@Component({\r\n selector: 'lib-question-text-template',\r\n templateUrl: './question-text-template.component.html',\r\n styleUrls: ['./question-text-template.component.scss']\r\n})\r\nexport class QuestionTextTemplateComponent implements OnInit {\r\n\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionTextTemplateFormInterface>;\r\n customPatterns: null;\r\n isTextArea: boolean;\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n get inputTypeEnum() {\r\n return InputTypeEnum;\r\n }\r\n\r\n get questionMinMaxIndicator() {\r\n const formValue = this.rForm.value;\r\n if (formValue.inputMax != null || formValue.inputMin != null) {\r\n\r\n if (formValue.inputMax != null && formValue.inputMin != null) {\r\n return this.isArabicLang ? ` يجب أن تكون القيمة المدخلة من ` + formValue.inputMin + ' إلى ' + formValue.inputMax\r\n : `the value entered must be from ${formValue.inputMin} to ${formValue.inputMax}`;\r\n }\r\n else if (formValue.inputMin != null) {\r\n return this.isArabicLang ? `يجب أن تكون أقل قيمة للمدخل تساوي ${formValue.inputMin}`\r\n : `the minimum value of the input must be ${formValue.inputMin}`;\r\n }\r\n else if (formValue.inputMax != null) {\r\n return this.isArabicLang ? `يجب أن تكون أكبر قيمة للمدخل تساوي ${formValue.inputMax}`\r\n : `the maximum value of the input must be ${formValue.inputMax}`;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n\r\n @Input() isArabicLang: boolean = false;\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n\r\n this.isTextArea = value.questionAllInfo.isAdvanceTextArea;\r\n\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionAllInfo.questionName,\r\n title: value.questionAllInfo.questionTitle,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n description: value.questionAllInfo.questionDescription,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.questionAllInfo.surveyAnswers[0]?.answerId != null && value.questionAllInfo.surveyAnswers[0]?.answerId != undefined) {\r\n this.fCtrls.surveyAnswerId.setValue(value.questionAllInfo.surveyAnswers[0].answerId);\r\n this.fCtrls.inputTypeId.setValue(value.questionAllInfo.surveyAnswers[0].inputTypeId);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n\r\n if (value.questionAllInfo.surveyAnswers[0].inputTypeId == InputTypeEnum.Number) {\r\n if (value.questionAllInfo.surveyAnswers[0].inputMin != null) {\r\n this.fCtrls.inputMin.setValue(value.questionAllInfo.surveyAnswers[0].inputMin);\r\n this.fCtrls.answer.addValidators([Validators.min(value.questionAllInfo.surveyAnswers[0].inputMin)]);\r\n }\r\n\r\n if (value.questionAllInfo.surveyAnswers[0].inputMax != null) {\r\n this.fCtrls.inputMax.setValue(value.questionAllInfo.surveyAnswers[0].inputMax);\r\n this.fCtrls.answer.addValidators([Validators.max(value.questionAllInfo.surveyAnswers[0].inputMax)]);\r\n }\r\n\r\n if (value.questionAllInfo.surveyAnswers[0].inputMin != null || value.questionAllInfo.surveyAnswers[0].inputMax != null) {\r\n this.fCtrls.inputTypeId.setValue(InputTypeEnum.Text);\r\n }\r\n }\r\n else if (value.questionAllInfo.surveyAnswers[0].inputTypeId == InputTypeEnum.Text) {\r\n if (value.questionAllInfo.surveyAnswers[0].inputMin != null) {\r\n this.fCtrls.inputMin.setValue(value.questionAllInfo.surveyAnswers[0].inputMin);\r\n this.fCtrls.answer.addValidators([Validators.minLength(value.questionAllInfo.surveyAnswers[0].inputMin)]);\r\n }\r\n\r\n if (value.questionAllInfo.surveyAnswers[0].inputMax != null) {\r\n this.fCtrls.inputMax.setValue(value.questionAllInfo.surveyAnswers[0].inputMax);\r\n this.fCtrls.answer.addValidators([Validators.maxLength(value.questionAllInfo.surveyAnswers[0].inputMax)]);\r\n }\r\n }\r\n else if (value.questionAllInfo.surveyAnswers[0].inputTypeId == InputTypeEnum.Email) {\r\n this.fCtrls.answer.addValidators([Validators.email]);\r\n }\r\n else if (value.questionAllInfo.surveyAnswers[0].inputTypeId == InputTypeEnum.Phone) {\r\n this.fCtrls.answer.addValidators([PhoneValidator]);\r\n }\r\n\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n var question = this.questionArr().find(x => x.questionId == value.questionId);\r\n if (question?.answerText) {\r\n this.rForm.patchValue({\r\n answer: question.answerText,\r\n isDisabled: question.isDisabled,\r\n isShow: question.isShow\r\n }, { emitEvent: false });\r\n }\r\n\r\n this.toggleEnableAnswer(value.questionAllInfo.isReadOnly);\r\n }\r\n }\r\n\r\n @Input() set isDisabled(value: boolean) {\r\n this.toggleEnableAnswer(value);\r\n }\r\n\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\r\n private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionTextTemplateFormInterface>({\r\n id: new FormControl(null),\r\n name: new FormControl(null),\r\n title: new FormControl(null),\r\n typeId: new FormControl(null),\r\n description: new FormControl(null),\r\n surveyAnswerId: new FormControl(null),\r\n answer: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(true),\r\n inputTypeId: new FormControl(null),\r\n inputMin: new FormControl(null),\r\n inputMax: new FormControl(null),\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200), distinctUntilChanged()).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n if (formValue.inputTypeId == InputTypeEnum.Email) {\r\n const isRequired = this.fCtrls.answer.hasValidator(Validators.required);\r\n if (!isRequired) {\r\n if (value?.trim()) {\r\n this.fCtrls.answer.addValidators([Validators.email]);\r\n } else {\r\n this.fCtrls.answer.clearValidators();\r\n }\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: formValue.id,\r\n answer: value,\r\n isValid: this.fCtrls.answer.valid\r\n }))\r\n }, 100);\r\n\r\n });\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated answer\r\n if (oldValue?.answerText != newValue?.answerText && oldValue?.answerText == null) {\r\n this.fCtrls.answer.setValue(newValue?.answerText, { emitEvent: false });\r\n }\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n if (newValue?.isShow == false) {\r\n this.fCtrls.answer.setValue(null);\r\n }\r\n }\r\n });\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n\r\n private toggleEnableAnswer(isReadOnly: boolean) {\r\n if (isReadOnly == true) {\r\n this.fCtrls.answer.disable()\r\n } else {\r\n this.fCtrls.answer.enable()\r\n }\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n}\r\n","<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\r\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n <p *ngIf=\"questionMinMaxIndicator\" class=\"text-danger\">\r\n <small >{{questionMinMaxIndicator}}</small>\r\n </p> \r\n </h3>\r\n <div class=\"text-quastion\">\r\n <ng-container *ngIf=\"isTextArea == false else textAreaTemplate\">\r\n <input class=\"form-control\" libMaskedForMinMax\r\n *ngIf=\"fCtrls.inputTypeId.value == inputTypeEnum.Number else inputTextTypeNumberTemplate\"\r\n [attr.min]=\"fCtrls.inputMin.value\" [attr.max]=\"fCtrls.inputMax.value\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\r\n [disabled]=\"isDisabled\" [attr.type]=\"fCtrls.inputTypeId.value | textBoxTypeAttr\">\r\n </ng-container>\r\n <ng-template #textAreaTemplate>\r\n <textarea class=\"form-control\" rows=\"2\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\r\n [disabled]=\"isDisabled\"></textarea>\r\n </ng-template>\r\n </div>\r\n\r\n <ng-template #inputTextTypeNumberTemplate>\r\n <input class=\"form-control\" libMaskedForMaxLength \r\n [attr.max]=\"fCtrls.inputMax.value\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\r\n [disabled]=\"isDisabled\" [attr.type]=\"fCtrls.inputTypeId.value | textBoxTypeAttr\">\r\n </ng-template>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport {\r\n AnswerChildOfQuestionRadioButtonTemplateFormInterface,\r\n QuestionRadioButtonTemplateFormInterface\r\n} from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map, pairwise } from 'rxjs';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { Store } from '@ngrx/store';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\n\r\n@Component({\r\n selector: 'lib-question-radio-button-template',\r\n templateUrl: './question-radio-button-template.component.html',\r\n styleUrls: ['./question-radio-button-template.component.scss']\r\n})\r\nexport class QuestionRadioButtonTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionRadioButtonTemplateFormInterface>;\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionAllInfo.questionName,\r\n title: value.questionAllInfo.questionTitle,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n description: value.questionAllInfo.questionDescription,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n value.questionAllInfo.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionRadioButtonTemplateFormInterface>({\r\n id: new FormControl(surveryAnswer.answerId),\r\n title: new FormControl(surveryAnswer.answerTitle),\r\n isSelected: new FormControl(false)\r\n }))\r\n })\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n var question = this.questionArr().find(x => x.questionId == value.questionId);\r\n if (question?.answerId) {\r\n this.rForm.patchValue({answer : question.answerId,\r\n isDisabled: question.isDisabled,\r\n isShow: question.isShow\r\n },{emitEvent:false});\r\n this.fCtrls.answerArray.controls.find(x => x.value.id == question.answerId).controls.isSelected.setValue(true);\r\n }\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService ,\r\n private _Store:Store) {\r\n this.rForm = this._formBuilder.group<QuestionRadioButtonTemplateFormInterface>({\r\n id: new FormControl( null),\r\n name: new FormControl( null),\r\n title: new FormControl( null),\r\n typeId: new FormControl( null),\r\n description: new FormControl( null),\r\n answer: new FormControl( null),\r\n isDisabled: new FormControl( false),\r\n isShow: new FormControl( true),\r\n answerArray: this._formBuilder.array<FormGroup< AnswerChildOfQuestionRadioButtonTemplateFormInterface>>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200), distinctUntilChanged()).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: formValue.id,\r\n answer: value,\r\n isValid: this.fCtrls.answer.valid\r\n }))\r\n });\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated answer\r\n if (oldValue?.answerId != newValue?.answerId) {\r\n this.fCtrls.answer.setValue(newValue?.answerId,{emitEvent:false});\r\n\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == newValue?.answerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n }\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n if (newValue?.isShow == false) {\r\n this.fCtrls.answer.setValue(null);\r\n }\r\n }\r\n });\r\n }\r\n\r\n onChangeAnswer(item: FormGroup< AnswerChildOfQuestionRadioButtonTemplateFormInterface>) {\r\n this.fCtrls.answer.setValue(item.value.id);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n <div class=\"radio-button-quastion\">\r\n <div class=\"form-check form-check-radio form-check-inline\" \r\n *ngFor=\"let item of fCtrls.answerArray.controls;let i = index\">\r\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item)\" [disabled]=\"fCtrls.isDisabled.value\"\r\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\r\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\" [innerHTML]=\"item.value.title\"></label>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport {\r\n AnswerChildOfQuestionCheckBoxTemplateFormInterface,\r\n QuestionCheckBoxTemplateFormInterface\r\n} from '../../../shared/form-interfaces/question-check-box-template.form-interface';\r\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map, pairwise } from 'rxjs';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { Store } from '@ngrx/store';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\n\r\n@Component({\r\n selector: 'lib-question-check-box-template',\r\n templateUrl: './question-check-box-template.component.html',\r\n styleUrls: ['./question-check-box-template.component.scss']\r\n})\r\nexport class QuestionCheckBoxTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionCheckBoxTemplateFormInterface>;\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionAllInfo.questionName,\r\n title: value.questionAllInfo.questionTitle,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n description: value.questionAllInfo.questionDescription,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n value.questionAllInfo.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionCheckBoxTemplateFormInterface>({\r\n id: new FormControl(surveryAnswer.answerId),\r\n title: new FormControl(surveryAnswer.answerTitle),\r\n isSelected: new FormControl(false)\r\n }))\r\n })\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n var question = this.questionArr().find(x => x.questionId == value.questionId);\r\n if (question?.answerIdArr) {\r\n this.rForm.patchValue({\r\n answer: question.answerIdArr,\r\n isDisabled: question.isDisabled,\r\n isShow: question.isShow\r\n }, { emitEvent: false });\r\n\r\n question.answerIdArr.forEach(answerId => {\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService\r\n , private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionCheckBoxTemplateFormInterface>({\r\n id: new FormControl(null),\r\n name: new FormControl(null),\r\n title: new FormControl(null),\r\n typeId: new FormControl(null),\r\n description: new FormControl(null),\r\n answer: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(true),\r\n answerArray: this._formBuilder.array<FormGroup<AnswerChildOfQuestionCheckBoxTemplateFormInterface>>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: formValue.id,\r\n answer: value,\r\n isValid: this.fCtrls.answer.valid\r\n }))\r\n });\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated answer\r\n if (oldValue?.answerIdArr != newValue?.answerIdArr) {\r\n const distinctArray = newValue?.answerIdArr.filter((n, i) => newValue?.answerIdArr.indexOf(n) === i);\r\n this.fCtrls.answer.setValue(distinctArray, { emitEvent: false });\r\n\r\n newValue?.answerIdArr.forEach(answerId => {\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n }\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n if (newValue?.isShow == false) {\r\n this.fCtrls.answer.setValue(null);\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n onChangeAnswer(item: FormGroup<AnswerChildOfQuestionBooleanTemplateFormInterface>, event: Event) {\r\n var answerArr: number[] = this.fCtrls.answer.value || [];\r\n\r\n if ((event.target as any).checked == true) {\r\n answerArr.push(item.value.id);\r\n } else {\r\n answerArr = answerArr.filter(x => x != item.value.id);\r\n }\r\n\r\n answerArr = answerArr.length == 0 ? [] : answerArr;\r\n this.fCtrls.answer.setValue(answerArr);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" \r\n[ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"fCtrls.title.value\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n\r\n <div class=\"checkbox-button-quastion\">\r\n <div class=\"form-check check-box-form-check\" *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\r\n <input type=\"checkbox\" class=\"form-check-input\" id=\"{{elemId}}__checkbox_{{i}}\" [disabled]=\"fCtrls.isDisabled.value\"\r\n (change)=\"onChangeAnswer(item ,$event)\" [checked]=\"item.value.isSelected == true? true : null\">\r\n <label class=\"form-check-label \" for=\"{{elemId}}__checkbox_{{i}}\" [innerHTML]=\"item.value.title\"></label>\r\n </div>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionDropdownTemplateFormInterface } from '../../../shared/form-interfaces/question-dropdown-template.form-interface';\r\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map, pairwise } from 'rxjs';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { Store } from '@ngrx/store';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\nimport { SubSink } from 'subsink';\r\n\r\n@Component({\r\n selector: 'lib-question-dropdown-template',\r\n templateUrl: './question-dropdown-template.component.html',\r\n styleUrls: ['./question-dropdown-template.component.scss']\r\n})\r\nexport class QuestionDropdownTemplateComponent implements OnInit, OnDestroy {\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionDropdownTemplateFormInterface>;\r\n subs = new SubSink();\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionAllInfo.questionName,\r\n title: value.questionAllInfo.questionTitle,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n description: value.questionAllInfo.questionDescription,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n var question = this.questionArr().find(x => x.questionId == value.questionId);\r\n if (question?.answerId) {\r\n this.rForm.controls.answer.setValue(question.answerId, { emitEvent: false });\r\n }\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\r\n private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionDropdownTemplateFormInterface>({\r\n id: new FormControl(null),\r\n name: new FormControl(null),\r\n title: new FormControl(null),\r\n typeId: new FormControl(null),\r\n description: new FormControl(null),\r\n answer: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(true),\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subs.unsubscribe();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subs.sink = this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200), distinctUntilChanged()).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: formValue.id,\r\n answer: value,\r\n isValid: this.fCtrls.answer.valid,\r\n }));\r\n\r\n this.emitter.emit({\r\n QuestionId: formValue.id,\r\n IsValid: this.fCtrls.answer.valid,\r\n Answer: value,\r\n SurveyAnswerId: this.fCtrls.answer.value\r\n })\r\n });\r\n\r\n this.subs.sink = this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated answer\r\n if (oldValue?.answerId != newValue?.answerId) {\r\n this.fCtrls.answer.setValue(newValue?.answerId, { emitEvent: false });\r\n }\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n if (newValue?.isShow == false) {\r\n this.fCtrls.answer.setValue(null);\r\n }\r\n }\r\n });\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"fCtrls.title.value\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion?.isRequired\">*</span>\r\n </h3>\r\n <div class=\"text-quastion text-quastion__dropdown\">\r\n <ng-select [items]=\"surveyQuestion?.surveyAnswers\" bindValue=\"answerId\" bindLabel=\"answerTitle\" class=\"form-control\"\r\n [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"false\">\r\n </ng-select>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { SurveyQuestionGroupDto } from '../../../shared/dtos/survey-question-group.dto';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { SurveySubQuestionDto } from '../../../shared/dtos/survey-sub-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionMatrixTemplateFormInterface, SubQuestionChildOfQuestionMatrixTemplateFormInterface } from '../../../shared/form-interfaces/question-matrix-template.form-interface';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { debounceTime, distinctUntilChanged, filter, map, pairwise } from 'rxjs';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { Store } from '@ngrx/store';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\n\r\n@Component({\r\n selector: 'lib-question-matrix-template',\r\n templateUrl: './question-matrix-template.component.html',\r\n styleUrls: ['./question-matrix-template.component.scss']\r\n})\r\nexport class QuestionMatrixTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionMatrixTemplateFormInterface>;\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n value.questionAllInfo.surveySubQuestions.forEach(x => {\r\n var group = this._formBuilder.group<SubQuestionChildOfQuestionMatrixTemplateFormInterface>({\r\n subQuestionId: new FormControl(x.questionId),\r\n questionTitle: new FormControl(x.questionTitle),\r\n answer: new FormControl(null),\r\n });\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n group.controls.answer.addValidators([Validators.required]);\r\n group.controls.answer.updateValueAndValidity();\r\n }\r\n\r\n group.controls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: group.value.subQuestionId,\r\n answer: group.value.answer,\r\n isValid: group.controls.answer.valid\r\n }));\r\n });\r\n\r\n var question = this.questionArr().find(x => x.questionId == group.value.subQuestionId);\r\n if (question != null) {\r\n group.controls.answer.setValue(question.answerId, { emitEvent: false });\r\n }\r\n\r\n this.fCtrls.subQuestionArray.push(group);\r\n });\r\n\r\n var matrixQuestion = this.questionArr().find(x => x.parentQuestionId == this.fCtrls.id.value);\r\n if (matrixQuestion) {\r\n this.rForm.patchValue({\r\n isDisabled: matrixQuestion.isDisabled,\r\n isShow: matrixQuestion.isShow\r\n }, { emitEvent: false })\r\n }\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\r\n private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionMatrixTemplateFormInterface>({\r\n id: new FormControl(null),\r\n typeId: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(true),\r\n subQuestionArray: this._formBuilder.array<FormGroup<SubQuestionChildOfQuestionMatrixTemplateFormInterface>>([])\r\n });\r\n }\r\n ngOnInit(): void {\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n // if (newValue?.isShow == false) {\r\n // this.fCtrls.answer.setValue(null);\r\n // }\r\n }\r\n });\r\n\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.filter(x => x.parentQuestionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x.length > 0)).subscribe(questions => {\r\n\r\n //Update Answers\r\n this.fCtrls.subQuestionArray.controls.forEach(group => {\r\n var question = questions.find(x => x.questionId == group.value.subQuestionId);\r\n if (question != null) {\r\n group.controls.answer.setValue(question.answerId, { emitEvent: false });\r\n }\r\n })\r\n });\r\n\r\n }\r\n\r\n onChangeAnswer(question: FormGroup<SubQuestionChildOfQuestionMatrixTemplateFormInterface>, answer: SurveyAnswerDto) {\r\n const index = this.fCtrls.subQuestionArray.value.findIndex(x => x.subQuestionId == question.value.subQuestionId);\r\n var subQuestionGroup = this.fCtrls.subQuestionArray.controls[index];\r\n\r\n subQuestionGroup.controls.answer.setValue(answer.answerId);\r\n\r\n // this.emitter.emit({\r\n // QuestionId: subQuestionGroup.value.subQuestionId,\r\n // Answer: subQuestionGroup.value.answer,\r\n // IsValid: subQuestionGroup.controls.answer.valid\r\n // });\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" style=\" border-collapse: collapse;\"\r\n[ngClass]=\"{'d-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n <div class=\"matrix-question\" [formGroup]=\"rForm\">\r\n <div class=\"matrix-table\" formArrayName=\"subQuestionArray\">\r\n <div class=\"matrix-head-row\">\r\n <div class=\"matrix-col\">\r\n </div>\r\n <div class=\"matrix-col\" *ngFor=\"let answers of surveyQuestion?.surveyAnswers\" >\r\n <span [innerHTML]=\"answers.answerTitle\"></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"matrix-row\" [attr.id]=\"'question_'+questionGroup.value.subQuestionId\"\r\n *ngFor=\"let questionGroup of fCtrls.subQuestionArray.controls ;let subQuestionIndex = index\"\r\n [ngClass]=\"{'invalid-question': questionGroup.controls.answer.invalid}\">\r\n <div class=\"matrix-col matrix-sub-quastion\" [innerHTML]=\"questionGroup.value.questionTitle\">\r\n </div>\r\n <div class=\"matrix-col answer__container\" *ngFor=\"let answer of surveyQuestion?.surveyAnswers;let answerIndex = index\">\r\n <div class=\"form-check form-check-radio form-check-inline\">\r\n <input class=\"form-check-input\" type=\"radio\" name=\"{{elemId}}__radio-btn-option_{{subQuestionIndex}}\"\r\n id=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\" (change)=\"onChangeAnswer(questionGroup ,answer)\"\r\n value=\"{{answer.answerId}}\" [checked]=\"answer.answerId == questionGroup.value.answer\">\r\n <label class=\"form-check-label d-inline d-lg-none\" [innerHTML]=\"answer.answerTitle\"\r\n for=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\"> </label>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Validators, FormControl, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { debounceTime, distinctUntilChanged, filter, find, map, pairwise } from 'rxjs';\r\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface, QuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { Store } from '@ngrx/store';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\n\r\n@Component({\r\n selector: 'lib-question-boolean-template',\r\n templateUrl: './question-boolean-template.component.html',\r\n styleUrls: ['./question-boolean-template.component.scss']\r\n})\r\nexport class QuestionBooleanTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionBooleanTemplateFormInterface>;\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionAllInfo.questionName,\r\n title: value.questionAllInfo.questionTitle,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n description: value.questionAllInfo.questionDescription,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n value.questionAllInfo.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionBooleanTemplateFormInterface>({\r\n id: new FormControl(surveryAnswer.answerId),\r\n title: new FormControl(surveryAnswer.answerTitle),\r\n isSelected: new FormControl(false)\r\n }))\r\n })\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n var question = this.questionArr().find(x => x.questionId == value.questionId);\r\n if (question?.answerId) {\r\n this.rForm.patchValue({\r\n answer: question.answerId,\r\n isDisabled: question.isDisabled,\r\n isShow: question.isShow\r\n }, { emitEvent: false });\r\n this.fCtrls.answerArray.controls.find(x => x.value.id == question.answerId).controls.isSelected.setValue(true);\r\n }\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\r\n private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionBooleanTemplateFormInterface>({\r\n id: new FormControl(null),\r\n name: new FormControl(null),\r\n title: new FormControl(null),\r\n typeId: new FormControl(null),\r\n description: new FormControl(null),\r\n answer: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(true),\r\n answerArray: this._formBuilder.array<FormGroup<AnswerChildOfQuestionBooleanTemplateFormInterface>>([]),\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200), distinctUntilChanged()).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: formValue.id,\r\n answer: value,\r\n isValid: this.fCtrls.answer.valid\r\n }))\r\n });\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated answer\r\n if (oldValue?.answerId != newValue?.answerId) {\r\n this.fCtrls.answer.setValue(newValue?.answerId, { emitEvent: false });\r\n\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == newValue?.answerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n }\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n if (newValue?.isShow == false) {\r\n this.fCtrls.answer.setValue(null);\r\n }\r\n }\r\n })\r\n }\r\n\r\n onChangeAnswer(item: FormGroup<AnswerChildOfQuestionBooleanTemplateFormInterface>) {\r\n this.fCtrls.answer.setValue(item.value.id);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\"\r\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"fCtrls.title.value\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n <div class=\"radio-button-quastion\">\r\n <div class=\"form-check form-check-radio form-check-inline\"\r\n *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\r\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item)\"\r\n [disabled]=\"fCtrls.isDisabled.value\" name=\"{{elemId}}__radio-btn-option\"\r\n id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\r\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\r\n </div>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { QuestionCheckBoxTemplateFormInterface } from '../../../shared/form-interfaces/question-check-box-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map, pairwise } from 'rxjs';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { AnswerChildOfQuestionDropDownMultiTemplateFormInterface, QuestionDropDownMultiTemplateFormInterface } from '../../../shared/form-interfaces/question-dropdown-multi-template.form-interface';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { Store } from '@ngrx/store';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\n\r\n@Component({\r\n selector: 'lib-question-dropdown-multi-template',\r\n templateUrl: './question-dropdown-multi-template.component.html',\r\n styleUrls: ['./question-dropdown-multi-template.component.scss']\r\n})\r\nexport class QuestionDropdownMultiTemplateComponent {\r\n\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionDropDownMultiTemplateFormInterface>;\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionAllInfo.questionName,\r\n title: value.questionAllInfo.questionTitle,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n description: value.questionAllInfo.questionDescription,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n value.questionAllInfo.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionDropDownMultiTemplateFormInterface>({\r\n id: new FormControl(surveryAnswer.answerId),\r\n title: new FormControl(surveryAnswer.answerTitle),\r\n isSelected: new FormControl(false)\r\n }))\r\n })\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n var question = this.questionArr().find(x => x.questionId == value.questionId);\r\n if (question?.answerIdArr) {\r\n this.rForm.patchValue({\r\n answer: question.answerIdArr,\r\n isDisabled: question.isDisabled,\r\n isShow: question.isShow\r\n }, { emitEvent: false });\r\n }\r\n }\r\n\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\r\n private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionDropDownMultiTemplateFormInterface>({\r\n id: new FormControl(null),\r\n name: new FormControl(null),\r\n title: new FormControl(null),\r\n typeId: new FormControl(null),\r\n description: new FormControl(null),\r\n answer: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(true),\r\n answerArray: this._formBuilder.array<FormGroup<AnswerChildOfQuestionDropDownMultiTemplateFormInterface>>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: formValue.id,\r\n answer: value,\r\n isValid: this.fCtrls.answer.valid\r\n }))\r\n });\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated answer\r\n if (oldValue?.answerIdArr != newValue?.answerIdArr) {\r\n const distinctArray = newValue?.answerIdArr.filter((n, i) => newValue?.answerIdArr.indexOf(n) === i);\r\n this.fCtrls.answer.setValue(distinctArray, { emitEvent: false });\r\n }\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n if (newValue?.isShow == false) {\r\n this.fCtrls.answer.setValue(null);\r\n }\r\n }\r\n });\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"fCtrls.title.value\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n <div class=\"text-quastion text-quastion__dropdown\">\r\n <ng-select [items]=\"this.fCtrls.answerArray.value\" bindValue=\"id\" bindLabel=\"title\" class=\"form-control\"\r\n [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"true\">\r\n </ng-select>\r\n </div>\r\n</div>\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport interface LibConfigModel{\r\n apiUrl: string;\r\n}\r\n\r\nexport const LibConfigService = new InjectionToken<LibConfigModel>('LibConfig');","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { LibConfigService, LibConfigModel } from './lib-config.service';\r\nimport { Observable } from 'rxjs';\r\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\r\nimport { DtoBase } from '../../shared/dtos/base/dto.base';\r\nimport { GetIsOtherQuestionResult, GetNextQuestionResult } from '../../shared/results/api.result';\r\nimport { ResultDto } from '../../shared/dtos/base/result.dto';\r\nimport { InstitutionDto } from '../../shared/dtos/institution.dto';\r\nimport { InstitutionBranchDto } from '../../shared/dtos/institution-branch.dto';\r\nimport { InstitutionCollageDto } from '../../shared/dtos/institution-collage.dto';\r\nimport { InstitutionSectionDto } from '../../shared/dtos/institution-section.dto';\r\nimport { InstitutionProgramDto } from '../../shared/dtos/institution-program.dto';\r\nimport { ProgramsRelatedToInstitutionDto } from '../../shared/dtos/programs-related-to-institution.dto';\r\ndeclare var $: any;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiService {\r\n private url;\r\n\r\n constructor(private _HttpClient: HttpClient,\r\n @Inject(LibConfigService) private _LibConfigService: LibConfigModel) {\r\n this.url = _LibConfigService.apiUrl;\r\n }\r\n\r\n getNextQuestion(filter: { answerId, surveyLanguageId, applicantKey, isPre }): Observable<GetNextQuestionResult> {\r\n var queryString = $.param(filter);\r\n return this._HttpClient.get<GetNextQuestionResult>(`${this.url}/Survey/GetNextQuestion?${queryString}`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n\r\n getIsOtherQuestion (filter: { parentQId , groupId , surveyLanguageId , surveyKey }): Observable<GetIsOtherQuestionResult> {\r\n var queryString = $.param(filter);\r\n return this._HttpClient.get<GetIsOtherQuestionResult>(`${this.url}/Survey/GetIsOtherQuestion?${queryString}`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n\r\n getAllInstitutions( ) {\r\n return this._HttpClient.get<ResultDto<InstitutionDto>>(`${this.url}/Institutions/GetAllInstitutions`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n\r\n getAllProgramsRelatedToInstitutions(filter:{submissionId:string ,generatedId:string,requestTimestamp:string } ) {\r\n var queryString = $.param(filter);\r\n return this._HttpClient.get<ResultDto<ProgramsRelatedToInstitutionDto>>(`${this.url}/Institutions/GetProgramsForInstitution?${queryString}`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n\r\n getAllBranches(filter:{submissionId:string ,requestTimestamp:string} ) {\r\n var queryString = $.param(filter);\r\n return this._HttpClient.get<ResultDto<InstitutionBranchDto>>(`${this.url}/Institutions/GetBranches?${queryString}`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n\r\n getAllCollages( filter:{submissionId:string ,branchSubmissionId:string,requestTimestamp:string }) {\r\n var queryString = $.param(filter);\r\n return this._HttpClient.get<ResultDto<InstitutionCollageDto>>(`${this.url}/Institutions/GetCollages?${queryString}`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n\r\n getAllSections( filter:{submissionId:string ,collageSubmissionId:string,requestTimestamp:string }) {\r\n var queryString = $.param(filter);\r\n return this._HttpClient.get<ResultDto<InstitutionSectionDto>>(`${this.url}/Institutions/GetSections?${queryString}`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n\r\n getAllPrograms(filter:{submissionId:string ,sectionGeneratedKey:string,requestTimestamp:string } ) {\r\n var queryString = $.param(filter);\r\n return this._HttpClient.get<ResultDto<InstitutionProgramDto>>(`${this.url}/Institutions/GetPrograms?${queryString}`,\r\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { QuestionNgrxModel } from '../core/states/entites/question.entity';\r\n\r\n@Pipe({\r\n name: 'findQuestion'\r\n})\r\nexport class FindQuestionPipe implements PipeTransform {\r\n\r\n transform(arr: QuestionNgrxModel[], questionId: any): QuestionNgrxModel {\r\n if (arr) {\r\n return arr.find(x => x.questionId == questionId)\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { QuestionCascadeTemplateFormInterface, QuestionGroupChildOfQuestionCascadeTemplateFormInterface } from '../../../shared/form-interfaces/question-cascade.form-interface';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { ApiService } from '../../services/api.service';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { Store } from '@ngrx/store';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\nimport { InputTypeEnum } from '../../../shared/enums/input-type.enum';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\n\r\n@Component({\r\n selector: 'lib-question-cascade-template',\r\n templateUrl: './question-cascade-template.component.html',\r\n styleUrls: ['./question-cascade-template.component.scss']\r\n})\r\nexport class QuestionCascadeTemplateComponent {\r\n surveyQuestionArr: SurveyQuestionDto[] = [];\r\n rForm: FormGroup<QuestionCascadeTemplateFormInterface>;\r\n pageQuestions$ = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n get questionFormArray() {\r\n return this.fCtrls.questionArr\r\n }\r\n\r\n\r\n @Input() pageId: number = null;\r\n @Input() questionGroupId: number = null;\r\n @Input() isPre: boolean = false;\r\n @Input() surveyLanguageId: number = null;\r\n @Input() surveyKey: string = null;\r\n @Input() applicantKey: string = null;\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (this.surveyQuestionArr?.length == 0) {\r\n this.setQuestions(value.questionAllInfo);\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n var childQuestion1 = this.pageQuestions$().find(x => x.parentQuestionId == value.questionId);\r\n if (childQuestion1) {\r\n this.setQuestions(childQuestion1.questionAllInfo);\r\n\r\n var childQuestion2 = this.pageQuestions$().find(x => x.parentQuestionId == childQuestion1.questionId);\r\n if (childQuestion2) {\r\n this.setQuestions(childQuestion2.questionAllInfo);\r\n }\r\n }\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\r\n private _ApiService: ApiService, private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionCascadeTemplateFormInterface>({\r\n isShow: new FormControl(false),\r\n questionArr: this._formBuilder.array<FormGroup<QuestionGroupChildOfQuestionCascadeTemplateFormInterface>>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n // this.fCtrls.questionArr.statusChanges.subscribe(v => {\r\n // console.log(v);\r\n // })\r\n }\r\n\r\n onUpdateAnswer(model: QuestionAnswerModel) {\r\n if (this.surveyQuestionArr.length > 1) {\r\n const surveyQuestionIndex = this.surveyQuestionArr.findIndex(c => c.questionId == model.QuestionId);\r\n\r\n var deletedQuestions = []\r\n for (let index = surveyQuestionIndex + 1; index < this.surveyQuestionArr.length; index++) {\r\n deletedQuestions.push(index);\r\n }\r\n\r\n var sortDeletedArr = deletedQuestions.sort((a, b) => (a > b ? -1 : 1));\r\n for (let index = 0; index < sortDeletedArr.length; index++) {\r\n const elementIndex = sortDeletedArr[index];\r\n const questionId = this.surveyQuestionArr[elementIndex].questionId;\r\n\r\n this._Store.dispatch(surveyActions.removeQuestion({ questionId: questionId }));\r\n\r\n this.surveyQuestionArr = this.surveyQuestionArr.filter(x => x.questionId != questionId);\r\n this.questionFormArray.removeAt(elementIndex);\r\n }\r\n }\r\n\r\n if (model.Answer) {\r\n var selectedAnswerObj = this.surveyQuestionArr\r\n .find(x => x.questionId == model.QuestionId)?.surveyAnswers.find(x => x.answerId === model.SurveyAnswerId);\r\n if (selectedAnswerObj?.isOther == true) {\r\n this.isOtherQuestion(model);\r\n }\r\n else {\r\n this.getNextQuestion(model);\r\n }\r\n }\r\n }\r\n\r\n identify(index, item: FormGroup<QuestionGroupChildOfQuestionCascadeTemplateFormInterface>) {\r\n return item.value.id;\r\n }\r\n\r\n private setQuestions(value: SurveyQuestionDto) {\r\n this.surveyQuestionArr.push(value);\r\n\r\n var group = this._formBuilder.group<QuestionGroupChildOfQuestionCascadeTemplateFormInterface>({\r\n id: new FormControl(value.questionId),\r\n typeId: new FormControl(value.questionTypeId),\r\n answer: new FormControl(null)\r\n });\r\n\r\n if (value.isRequired == true) {\r\n group.controls.answer.addValidators([Validators.required]);\r\n group.controls.answer.updateValueAndValidity();\r\n }\r\n\r\n this.fCtrls.questionArr.push(group);\r\n }\r\n\r\n private isOtherQuestion(model: QuestionAnswerModel) {\r\n this._ApiService.getIsOtherQuestion({\r\n parentQId: model.QuestionId,\r\n groupId: this.questionGroupId,\r\n surveyKey: this.surveyKey,\r\n surveyLanguageId: this.surveyLanguageId\r\n }).subscribe(res => {\r\n if (res.errors.filter(x => x.code == 17).length == 0) {\r\n res.questionTypeId = QuestionTypeEnum.TextInput;\r\n\r\n this._Store.dispatch(surveyActions.addQuestion({\r\n question: {\r\n surveyPageId: this.pageId,\r\n questionId: res.questionId,\r\n questionType: res.questionTypeId,\r\n inputTypeId: InputTypeEnum.Text,\r\n isQuestionGroup: false,\r\n answerId: null,\r\n answerIdArr: null,\r\n answerText: null,\r\n isRequired: res.isRequired,\r\n isValid: null,\r\n order: res.order,\r\n isDisabled: res.isReadOnly,\r\n isShow: res.isVisable,\r\n isDisabled_default: res.isReadOnly,\r\n isShow_default: res.isVisable,\r\n questionGroupId: this.questionGroupId,\r\n parentQuestionId: model.QuestionId,\r\n questionAllInfo: {\r\n questionId: res.questionId,\r\n questionTypeId: res.questionTypeId,\r\n questionName: res.questionName,\r\n questionTitle: res.questionTitle,\r\n questionDescription: res.questionDescription,\r\n isRequired: res.isRequired,\r\n isVisable: res.isVisable,\r\n isEditable: res.isEditable,\r\n isOTPOption: res.isOtpOption,\r\n isAdvanceTextArea: res.isAdvanceTextArea,\r\n isReadOnly: res.isReadOnly,\r\n order: res.order,\r\n isPreDefine: res.isPreDefine,\r\n maxLevelValue: res.maxLevelValue,\r\n surveyAnswers: [\r\n {\r\n answerId: res.answerId,\r\n inputTypeId: InputTypeEnum.Text\r\n } as SurveyAnswerDto\r\n ],\r\n surveySubQuestions: res.surveySubQuestions,\r\n surveySubQuestionLevels: res.surveySubQuestionLevels\r\n }\r\n }\r\n }));\r\n\r\n this.setQuestions({\r\n questionId: res.questionId,\r\n questionTypeId: res.questionTypeId,\r\n questionName: res.questionName,\r\n questionTitle: res.questionTitle,\r\n questionDescription: res.questionDescription,\r\n isRequired: res.isRequired,\r\n isVisable: res.isVisable,\r\n isEditable: res.isEditable,\r\n isOTPOption: res.isOtpOption,\r\n order: res.order,\r\n isAdvanceTextArea: res.isAdvanceTextArea,\r\n isReadOnly: res.isReadOnly,\r\n isPreDefine: res.isPreDefine,\r\n maxLevelValue: res.maxLevelValue,\r\n surveyAnswers: [\r\n {\r\n answerId: res.answerId,\r\n inputTypeId: InputTypeEnum.Text\r\n } as SurveyAnswerDto\r\n ],\r\n surveySubQuestions: res.surveySubQuestions,\r\n surveySubQuestionLevels: res.surveySubQuestionLevels\r\n });\r\n\r\n this.getNextQuestion(model);\r\n }\r\n });\r\n }\r\n\r\n\r\n private getNextQuestion(model: QuestionAnswerModel) {\r\n this._ApiService.getNextQuestion({\r\n answerId: model.Answer,\r\n applicantKey: this.applicantKey,\r\n isPre: this.isPre,\r\n surveyLanguageId: this.surveyLanguageId\r\n }).subscribe(res => {\r\n if (res.errors.filter(x => x.code == 17).length == 0) {\r\n this._Store.dispatch(surveyActions.addQuestion({\r\n question: {\r\n surveyPageId: this.pageId,\r\n questionId: res.questionId,\r\n questionType: res.questionTypeId,\r\n inputTypeId: res.surveyAnswers[0].inputTypeId,\r\n isQuestionGroup: false,\r\n answerId: null,\r\n answerIdArr: null,\r\n answerText: null,\r\n isRequired: res.isRequired,\r\n order: res.order,\r\n isValid: null,\r\n isDisabled: res.isReadOnly,\r\n isShow: res.isVisable,\r\n isDisabled_default: res.isReadOnly,\r\n isShow_default: res.isVisable,\r\n questionGroupId: this.questionGroupId,\r\n parentQuestionId: model.QuestionId,\r\n questionAllInfo: res\r\n }\r\n }));\r\n\r\n this.setQuestions(res);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","<div [ngClass]=\"{'d-none':fCtrls.isShow.value != true}\">\r\n <ng-container *ngFor=\"let item of questionFormArray.controls; trackBy:identify ; let i = index\">\r\n <lib-question-dropdown-template #questionDropdownTemplate\r\n *ngIf=\"(pageQuestions$() |findQuestion :item.value.id)?.questionType != questionTypeEnum.TextInput\"\r\n [setQuestion]=\"pageQuestions$() |findQuestion :item.value.id \" (emitter)=\"onUpdateAnswer($event)\">\r\n </lib-question-dropdown-template>\r\n\r\n <lib-question-text-template #questionTextTemplate\r\n *ngIf=\"(pageQuestions$() |findQuestion :item.value.id)?.questionType == questionTypeEnum.TextInput\"\r\n [setQuestion]=\"pageQuestions$() |findQuestion :item.value.id \"\r\n [isArabicLang]=\"true\"></lib-question-text-template>\r\n\r\n </ng-container>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionFeedbackTemplateFormInterface } from '../../../shared/form-interfaces/question-feedback-template.form-interface';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\nimport { Store } from '@ngrx/store';\r\nimport { debounceTime, distinctUntilChanged, filter, map, pairwise } from 'rxjs';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\nimport { InputTypeEnum } from '../../../shared/enums/input-type.enum';\r\nimport { EvaluationTypeEnum } from '../../../shared/enums/evaluation-type.enum';\r\n\r\n@Component({\r\n selector: 'lib-question-feedback-template',\r\n templateUrl: './question-feedback-template.component.html',\r\n styleUrls: ['./question-feedback-template.component.scss']\r\n})\r\nexport class QuestionFeedbackTemplateComponent {\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionFeedbackTemplateFormInterface>;\r\n questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n get inputTypeEnum() {\r\n return InputTypeEnum\r\n }\r\n\r\n @Input() isArabicLang: boolean = false;\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (!this.surveyQuestion) {\r\n this.surveyQuestion = value.questionAllInfo;\r\n\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionAllInfo.questionName,\r\n title: value.questionAllInfo.questionTitle,\r\n typeId: value.questionAllInfo.questionTypeId,\r\n description: value.questionAllInfo.questionDescription,\r\n isDisabled: value.questionAllInfo.isReadOnly,\r\n isShow: value.questionAllInfo.isVisable\r\n });\r\n\r\n if (value.questionAllInfo.surveyAnswers[0]?.answerId != null && value.questionAllInfo.surveyAnswers[0]?.answerId != undefined) {\r\n this.fCtrls.surveyAnswerId.setValue(value.questionAllInfo.surveyAnswers[0].answerId);\r\n\r\n if (value.questionAllInfo.surveyAnswers[0].evaluationTypeId == EvaluationTypeEnum.Stars) {\r\n this.fCtrls.inputTypeId.setValue(InputTypeEnum.Stars);\r\n } else if (value.questionAllInfo.surveyAnswers[0].evaluationTypeId == EvaluationTypeEnum.Pagination) {\r\n this.fCtrls.inputTypeId.setValue(InputTypeEnum.Pagination);\r\n }\r\n\r\n }\r\n\r\n if (value.isShow == true) {\r\n this.fCtrls.isShow.setValue(value.isShow);\r\n }\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n var question = this.questionArr().find(x => x.questionId == value.questionId);\r\n if (question) {\r\n this.rForm.patchValue({\r\n answer: question.answerText,\r\n isDisabled: question.isDisabled,\r\n isShow: question.isShow\r\n }, { emitEvent: false });\r\n }\r\n\r\n this.toggleEnableAnswer(value.questionAllInfo.isReadOnly);\r\n }\r\n }\r\n\r\n @Input() set isDisabled(value: boolean) {\r\n this.toggleEnableAnswer(value);\r\n }\r\n\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\r\n private _Store: Store) {\r\n this.rForm = this._formBuilder.group<QuestionFeedbackTemplateFormInterface>({\r\n id: new FormControl(null),\r\n name: new FormControl(null),\r\n title: new FormControl(null),\r\n typeId: new FormControl(null),\r\n description: new FormControl(null),\r\n surveyAnswerId: new FormControl(null),\r\n answer: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(true),\r\n inputTypeId: new FormControl(null),\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200), distinctUntilChanged()).subscribe(value => {\r\n setTimeout(() => {\r\n const formValue = this.rForm.value;\r\n this._Store.dispatch(surveyActions.updateQuestionAnswer({\r\n questionId: formValue.id,\r\n answer: value,\r\n isValid: this.fCtrls.answer.valid\r\n }))\r\n }, 100);\r\n\r\n });\r\n\r\n this._Store.select(questionSelectors.pageQuestions).pipe(map(arr => arr.find(x => x.questionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x != null), pairwise()).subscribe(value => {\r\n const oldValue = value[0];\r\n const newValue = value[1];\r\n\r\n //updated answer\r\n if (oldValue?.answerText != newValue?.answerText) {\r\n this.fCtrls.answer.setValue(newValue?.answerText, { emitEvent: false });\r\n }\r\n\r\n //updated isDisabled\r\n if (oldValue?.isDisabled != newValue?.isDisabled) {\r\n this.fCtrls.isDisabled.setValue(newValue?.isDisabled);\r\n }\r\n\r\n //updated isShow\r\n if (oldValue?.isShow != newValue?.isShow) {\r\n this.fCtrls.isShow.setValue(newValue?.isShow);\r\n\r\n if (newValue?.isShow == false) {\r\n this.fCtrls.answer.setValue(null);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private toggleEnableAnswer(isReadOnly: boolean) {\r\n if (isReadOnly == true) {\r\n this.fCtrls.answer.disable()\r\n } else {\r\n this.fCtrls.answer.enable()\r\n }\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n\r\n}\r\n","<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\r\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n <div class=\"text-quastion \" >\r\n <ng-container *ngIf=\"fCtrls.inputTypeId.value == inputTypeEnum.Stars else paginationTemplate\">\r\n <rating [formControl]=\"fCtrls.answer\" [max]=\"surveyQuestion?.surveyAnswers[0].maxValue\"></rating>\r\n </ng-container>\r\n <ng-template #paginationTemplate>\r\n <div style=\"margin-top: 20px;\">\r\n <pagination nextText=\">\" previousText=\"<\" [formControl]=\"fCtrls.answer\"\r\n [itemsPerPage]=\"1\" [totalItems]=\"surveyQuestion?.surveyAnswers[0].maxValue\" [maxSize]=\"10\"></pagination>\r\n </div>\r\n </ng-template>\r\n </div>","import { Component, Input, OnInit, computed, effect } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { questionSelectors } from '../../core/states/survey-store/question.selector';\r\nimport { Store } from '@ngrx/store';\r\nimport {\r\n QuestionGroupChildOfQuestionInstitutionsTemplateFormInterface,\r\n QuestionInstitutionsTemplateFormInterface\r\n} from '../../../shared/form-interfaces/question-Institutions-template.form-interface';\r\nimport { QuestionNgrxModel } from '../../core/states/entites/question.entity';\r\nimport { surveyActions } from '../../core/states/survey-store/survey.action';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { SurveySubQuestionLevelDto } from '../../../shared/dtos/survey-sub-question-level.dto';\r\nimport { ApiService } from '../../services/api.service';\r\nimport { distinctUntilChanged, pairwise, take } from 'rxjs';\r\nimport { SurveyLanguageEnum } from '../../../shared/enums/survey-language.enum';\r\nimport { surveySelectors } from '../../core/states/survey-store/survey.selector';\r\n\r\n@Component({\r\n selector: 'lib-question-institutions-template',\r\n templateUrl: './question-institutions-template.component.html',\r\n styleUrls: ['./question-institutions-template.component.css']\r\n})\r\nexport class QuestionInstitutionsTemplateComponent implements OnInit {\r\n institutionsQuestion: SurveyQuestionDto = null;\r\n rForm: FormGroup<QuestionInstitutionsTemplateFormInterface>;\r\n pageQuestions$ = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n institutionsArr$ = this._Store.selectSignal(surveySelectors.institutionArr);\r\n\r\n @Input() isArabicLang: boolean = false;\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n get questionFormArray() {\r\n return this.fCtrls.questionArr\r\n }\r\n\r\n institutionsQuestionArr = computed(() => {\r\n return this.institutionsArr$().map(x => {\r\n return {\r\n id: x.submissionId,\r\n name: this.isArabicLang == true ? x.institutionNameArabic : x.institutionNameEnglish,\r\n requestTimestamp: x.requestTimestamp,\r\n generatedId: x.generatedId\r\n }\r\n });\r\n });\r\n\r\n @Input() set setQuestion(value: QuestionNgrxModel) {\r\n if (this.institutionsQuestion == null) {\r\n this.institutionsQuestion = value.questionAllInfo;\r\n\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n title: value.questionAllInfo.questionTitle,\r\n maxLevelValue: value.questionAllInfo.maxLevelValue,\r\n isRequired: value.isRequired,\r\n isDisabled: value.isDisabled,\r\n isShow: value.isShow\r\n });\r\n\r\n value.questionAllInfo.surveySubQuestionLevels.forEach(surveySubQuestionLevel => {\r\n var question = this.pageQuestions$().find(x => x.questionId == value.questionId);\r\n this.setQuestionFormGroup(surveySubQuestionLevel, question?.isRequired, question?.answerId);\r\n });\r\n }\r\n }\r\n\r\n constructor(private _Store: Store, private _formBuilder: FormBuilder, private _ApiService: ApiService) {\r\n this.rForm = this._formBuilder.group<QuestionInstitutionsTemplateFormInterface>({\r\n id: new FormControl(null),\r\n title: new FormControl(null),\r\n maxLevelValue: new FormControl(null),\r\n isDisabled: new FormControl(false),\r\n isShow: new FormControl(false),\r\n isRequired: new FormControl(null),\r\n institutionId: new FormControl(null),\r\n institutionTimestamp: new FormControl(null),\r\n institutionGeneratedId: new FormControl(null),\r\n programRelatedToInstitutionId: new FormControl(null),\r\n branchId: new FormControl(null),\r\n collageId: new FormControl(null),\r\n sectionId: new FormControl(null),\r\n programId: new FormControl(null),\r\n questionArr: this._formBuilder.array<FormGroup<QuestionGroupChildOfQuestionInstitutionsTemplateFormInterface>>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this._Store.dispatch(surveyActions.loadInstitutionArr());\r\n }\r\n\r\n onUpdateAnswer(model: { id: string, name: string }, groupIndex: number) {\r\n var group = this.fCtrls.questionArr.at(groupIndex);\r\n group.patchValue({\r\n answerId: model.id,\r\n answerValue: model.name\r\n });\r\n\r\n this._Store.dispatch(surveyActions.updateInstitutionQuestionAnswer({\r\n questionId: group.value.id,\r\n answerId: group.value.answerId,\r\n answer: group.value.answerValue,\r\n isValid: group.controls.answerId.valid,\r\n answerLevelId: group.value.levelAnswerId,\r\n }));\r\n }\r\n\r\n identify(index, item: FormGroup<QuestionGroupChildOfQuestionInstitutionsTemplateFormInterface>) {\r\n return item.value.id;\r\n }\r\n\r\n private setQuestionFormGroup(value: SurveySubQuestionLevelDto, isRquired: boolean, answerId: string) {\r\n var group = this._formBuilder.group<QuestionGroupChildOfQuestionInstitutionsTemplateFormInterface>({\r\n id: new FormControl(value.questionId),\r\n typeId: new FormControl(value.questionTypeId),\r\n name: new FormControl(value.questionName),\r\n description: new FormControl(value.questionDescription),\r\n title: new FormControl(value.questionTitle),\r\n level: new FormControl(value.level),\r\n levelAnswerId: new FormControl(value.levelAnswer.answerId),\r\n answerId: new FormControl(null),\r\n answerValue: new FormControl(null),\r\n answers: new FormControl([]),\r\n });\r\n\r\n if (isRquired == true) {\r\n group.controls.answerId.addValidators([Validators.required]);\r\n group.controls.answerId.updateValueAndValidity();\r\n group.controls.answerValue.addValidators([Validators.required]);\r\n group.controls.answerValue.updateValueAndValidity();\r\n }\r\n\r\n group.controls.answerId.valueChanges.pipe(distinctUntilChanged()).subscribe(answerId => {\r\n if (answerId) {\r\n if (value.level == 1) {\r\n this.rForm.patchValue({\r\n institutionId: answerId,\r\n institutionTimestamp: this.institutionsQuestionArr().find(x => x.id == answerId)?.requestTimestamp,\r\n institutionGeneratedId: this.institutionsQuestionArr().find(x => x.id == answerId)?.generatedId,\r\n branchId: null,\r\n collageId: null,\r\n sectionId: null\r\n }, { emitEvent: false });\r\n }\r\n else if (value.level == 2) {\r\n this.rForm.patchValue({\r\n programId: answerId\r\n }, { emitEvent: false });\r\n }\r\n else if (value.level == 3) {\r\n this.rForm.patchValue({\r\n branchId: answerId,\r\n collageId: null,\r\n sectionId: null\r\n }, { emitEvent: false });\r\n }\r\n else if (value.level == 4) {\r\n this.rForm.patchValue({\r\n collageId: answerId,\r\n sectionId: null\r\n }, { emitEvent: false });\r\n }\r\n else if (value.level == 5) {\r\n this.rForm.patchValue({\r\n sectionId: answerId\r\n }, { emitEvent: false });\r\n }\r\n\r\n const level = group.value.level;\r\n\r\n if(level != 2){\r\n this.resetAnswersOfFormGroupinHigherLevel(level);\r\n }\r\n\r\n var nextGroupIndex = this.fCtrls.questionArr.controls.findIndex(x => x.value.level == level + 1);\r\n if (nextGroupIndex ) {\r\n this.fillQuestionAnswers(nextGroupIndex);\r\n }\r\n }\r\n });\r\n\r\n group.controls.answers.valueChanges.pipe(distinctUntilChanged()).subscribe(value => {\r\n const groupIndex = this.fCtrls.questionArr.controls.findIndex(x => x.value.level == group.value.level);\r\n var questionGroup = this.fCtrls.questionArr.at(groupIndex);\r\n\r\n if (questionGroup) {\r\n if (value.length > 0) {\r\n if (this.fCtrls.isRequired.value == true) {\r\n questionGroup.controls.answerId.addValidators([Validators.required]);\r\n questionGroup.controls.answerValue.addValidators([Validators.required]);\r\n\r\n this._Store.dispatch(surveyActions.updateQuestionRequired({ questionId: group.value.id, isRequired: true }));\r\n }\r\n } else {\r\n questionGroup.controls.answerId.clearValidators();\r\n questionGroup.controls.answerValue.clearValidators();\r\n\r\n this._Store.dispatch(surveyActions.updateQuestionRequired({ questionId: group.value.id, isRequired: false }));\r\n }\r\n\r\n questionGroup.controls.answerId.updateValueAndValidity();\r\n questionGroup.controls.answerValue.updateValueAndValidity();\r\n }\r\n\r\n });\r\n\r\n if (answerId) {\r\n group.controls.answerId.setValue(answerId);\r\n }\r\n\r\n this.fCtrls.questionArr.push(group);\r\n }\r\n\r\n private fillQuestionAnswers(nextGroupIndex: number) {\r\n const formValue = this.rForm.value;\r\n var group = this.fCtrls.questionArr.at(nextGroupIndex);\r\n if (group) {\r\n if (group.value.level == 2) {\r\n this._ApiService.getAllProgramsRelatedToInstitutions({\r\n submissionId: formValue.institutionId,\r\n generatedId: formValue.institutionGeneratedId, requestTimestamp: formValue.institutionTimestamp\r\n }).pipe(take(1)).subscribe(res => {\r\n group.controls.answers.setValue(res.responseDetails.map(x => {\r\n return {\r\n id: x.generatedKey,\r\n name: this.isArabicLang == true ? x.programNameArabic : x.programNameEnglish\r\n }\r\n }));\r\n });\r\n\r\n this._ApiService.getAllBranches({ submissionId: formValue.institutionId, requestTimestamp: formValue.institutionTimestamp }).pipe(take(1)).subscribe(res => {\r\n this.fCtrls.questionArr.at(nextGroupIndex + 1).controls.answers.setValue(res.responseDetails.map(x => {\r\n return {\r\n id: x.branchSubmissionId,\r\n name: this.isArabicLang == true ? x.branchNameInArabic : x.branchNameInEnglish\r\n }\r\n }));\r\n });\r\n }\r\n else if (group.value.level == 4) {\r\n this._ApiService.getAllCollages({ submissionId: formValue.institutionId, branchSubmissionId: formValue.branchId, requestTimestamp: formValue.institutionTimestamp }).pipe(take(1)).subscribe(res => {\r\n group.controls.answers.setValue(res.responseDetails.map(x => {\r\n return {\r\n id: x.collageSubmissionId,\r\n name: this.isArabicLang == true ? x.collageNameInArabic : x.collageNameInEnglish\r\n }\r\n }));\r\n });\r\n }\r\n else if (group.value.level == 5) {\r\n this._ApiService.getAllSections({ submissionId: formValue.institutionId, collageSubmissionId: formValue.collageId, requestTimestamp: formValue.institutionTimestamp }).pipe(take(1)).subscribe(res => {\r\n group.controls.answers.setValue(res.responseDetails.map(x => {\r\n return {\r\n id: x.generatedKey,\r\n name: this.isArabicLang == true ? x.sectionNameInArabic : x.sectionNameInEnglish\r\n }\r\n }));\r\n });\r\n }\r\n else if (group.value.level == 6) {\r\n this._ApiService.getAllPrograms({ submissionId: formValue.institutionId, sectionGeneratedKey: formValue.sectionId, requestTimestamp: formValue.institutionTimestamp }).pipe(take(1)).subscribe(res => {\r\n group.controls.answers.setValue(res.responseDetails.map(x => {\r\n return {\r\n id: x.generatedKey,\r\n name: this.isArabicLang == true ? x.programNameArabic : x.programNameEnglish\r\n }\r\n }));\r\n });\r\n }\r\n }\r\n }\r\n\r\n private resetAnswersOfFormGroupinHigherLevel(level: number) {\r\n this.fCtrls.questionArr.controls.forEach((group: FormGroup<QuestionGroupChildOfQuestionInstitutionsTemplateFormInterface>) => {\r\n if (group.value.level > level) {\r\n group.patchValue({\r\n answerId: null,\r\n answerValue: null,\r\n answers: []\r\n }, { emitEvent: false });\r\n }\r\n });\r\n\r\n }\r\n\r\n}\r\n","<div class=\"quastion\">\r\n <h3 class=\"quastion-title mb-2\">\r\n <span [innerHTML]=\"fCtrls.title.value\"></span>\r\n </h3>\r\n <ng-container *ngFor=\"let item of questionFormArray.controls; trackBy:identify ; let i = index\">\r\n <div class=\"quastion\" [attr.id]=\"'question_'+item.value.id\"\r\n *ngIf=\"item.value.level == 1 || ( item.value.level > 1 && item.value.answers.length > 0 )\"\r\n [ngClass]=\"{'invalid-question': item.controls.answerId.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"item.value.title\"></span>\r\n <span style=\"color: red;\" *ngIf=\"fCtrls.isRequired\">*</span>\r\n </h3>\r\n <div class=\"text-quastion text-quastion__dropdown\">\r\n <ng-select [items]=\"item.value.level ==1 ? institutionsQuestionArr() : item.value.answers\" bindValue=\"id\" bindLabel=\"name\" class=\"form-control\"\r\n [formControl]=\"item.controls.answerId\" [virtualScroll]=\"true\" [disabled]=\"fCtrls.isDisabled.value\" (change)=\"onUpdateAnswer($event,i)\"\r\n [multiple]=\"false\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n</div>\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\r\nimport { QuestionChildOfSurveryLibFormInterface } from '../../shared/form-interfaces/survery-lib.form-interface';\r\nimport { QuestionNgrxModel } from '../core/states/entites/question.entity';\r\n\r\n@Pipe({\r\n name: 'filterQuestion'\r\n})\r\nexport class FilterQuestionPipe implements PipeTransform {\r\n\r\n transform(arr: QuestionNgrxModel[], questionGroupId: any): QuestionNgrxModel[] {\r\n return arr.filter(x=>x.questionGroupId == questionGroupId && x.parentQuestionId == null)\r\n .sort((a, b) => a.order - b.order);\r\n }\r\n\r\n}\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core';\r\nimport { SurveyLibService } from './services/survey-lib.service';\r\nimport { SurveyDto } from '../shared/dtos/survey.dto';\r\nimport { QuestionChildOfSurveryLibFormInterface, RuleQuestionChildOfSurveryLibFormInterface, SurveryLibFormInterface } from '../shared/form-interfaces/survery-lib.form-interface';\r\nimport { QuestionTypeEnum } from '../shared/enums/question-type.enum';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { QuestionAnswerModel } from '../shared/models/question-answer.model';\r\nimport { Observable, debounceTime, distinctUntilChanged, map, of, take, withLatestFrom } from 'rxjs';\r\nimport { LogicPropertyEnum } from '../shared/enums/Logic-Property.enum';\r\nimport { RuleExpDto } from '../shared/dtos/rule-exp.dto';\r\nimport { OperatorEnum } from '../shared/enums/operator.enum';\r\nimport { LogicActionEnum } from '../shared/enums/logic-action.enum';\r\nimport { CheckRuleExpsUsecase } from './usecases/check-rule-exps.usecase';\r\nimport { SurveyQuestionResult } from '../shared/models/survery-question-result.model';\r\nimport { DefaultQuestionAnswerDto } from '../shared/dtos/default-question-answers.dto';\r\nimport { QuestionBooleanTemplateComponent } from './components/question-boolean-template/question-boolean-template.component';\r\nimport { QuestionTextTemplateComponent } from './components/question-text-template/question-text-template.component';\r\nimport { QuestionRadioButtonTemplateComponent } from './components/question-radio-button-template/question-radio-button-template.component';\r\nimport { QuestionDropdownTemplateComponent } from './components/question-dropdown-template/question-dropdown-template.component';\r\nimport { QuestionCheckBoxTemplateComponent } from './components/question-check-box-template/question-check-box-template.component';\r\nimport { QuestionMatrixTemplateComponent } from './components/question-matrix-template/question-matrix-template.component';\r\nimport { SurveyLanguageDto } from '../shared/dtos/survey-language.dto';\r\nimport { SurveySectionEnum } from '../shared/enums/survey-section.enum';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SurveyQuestionDto } from '../shared/dtos/survey-question.dto';\r\nimport { InputTypeEnum } from '../shared/enums/input-type.enum';\r\nimport { Store } from '@ngrx/store';\r\nimport { surveySelectors } from './core/states/survey-store/survey.selector';\r\nimport { questionGroupSelectors } from './core/states/survey-store/question-group.selector';\r\nimport { questionSelectors } from './core/states/survey-store/question.selector';\r\nimport { QuestionNgrxModel } from './core/states/entites/question.entity';\r\nimport { surveyActions } from './core/states/survey-store/survey.action';\r\nimport { QuestionGroupNgrxModel } from './core/states/entites/question-group.entity';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'lib-survery-lib',\r\n templateUrl: './survey-lib.component.html',\r\n styleUrls: ['./survey-lib.component.scss']\r\n})\r\nexport class SurveryLibComponent implements OnInit, AfterViewInit {\r\n\r\n surveryLibraryDivId = guidGenerator() as string;\r\n reloadDefaultAnswerId = guidGenerator() as string;\r\n rForm: FormGroup<SurveryLibFormInterface>;\r\n questionAnswerArr: SurveyQuestionResult[] = [];\r\n\r\n pageQuestionGroups$ = this._Store.selectSignal(questionGroupSelectors.pageQuestionGroups);\r\n pageQuestions$ = this._Store.selectSignal(questionSelectors.pageQuestions);\r\n\r\n isFirstPage$ = this._Store.select(surveySelectors.isFirstPage);\r\n isLastPage$ = this._Store.select(surveySelectors.isLastPage);\r\n curruntShowedSurveyPages$ = this._Store.select(surveySelectors.selectedPageIndex).pipe(map(x => x + 1));\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get isFirstPage() {\r\n const formValue = this.rForm.value;\r\n return formValue.showedSurveyPages.findIndex(x => x == formValue.currentPageId) == 0;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n\r\n get surveyResult(): { answers: SurveyQuestionResult[], currentPageIndex: number } {\r\n return {\r\n currentPageIndex: this.fCtrls.currentPageId.value,\r\n answers: this.questionAnswerArr\r\n }\r\n }\r\n\r\n @Input() isPre: boolean = false;\r\n @Input() surveyLanguageId: number = null;\r\n @Input() surveyKey: string = null;\r\n @Input() applicantKey: string = null;\r\n @Input() isArabicLang: boolean = false;\r\n\r\n @Output() surveyResultEmit = new EventEmitter<SurveyQuestionResult[]>();\r\n @Output() selectLanguageEmit = new EventEmitter<string>();\r\n\r\n constructor(private _surveyLibService: SurveyLibService, private _Store: Store\r\n , private _formBuilder: FormBuilder, private _checkRuleExpsUsecase: CheckRuleExpsUsecase) {\r\n\r\n this.rForm = this._formBuilder.group<SurveryLibFormInterface>({\r\n currentPageId: new FormControl(null),\r\n showedSurveyPages: new FormControl([])\r\n });\r\n\r\n this._Store.select(questionSelectors.questionAnswers).subscribe(arr => {\r\n this.questionAnswerArr = arr;\r\n })\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n questionIdentify(index, item: QuestionNgrxModel) {\r\n return item.questionId;\r\n }\r\n\r\n questionGroupIdentify(index, item: QuestionGroupNgrxModel) {\r\n return item.questionGroupId;\r\n }\r\n\r\n ngOnInit(): void {\r\n this._Store.select(surveySelectors.selectedPageId).subscribe(value => {\r\n this.fCtrls.currentPageId.setValue(value);\r\n });\r\n\r\n this._Store.select(surveySelectors.showedSurveyPages).subscribe(value => {\r\n this.fCtrls.showedSurveyPages.setValue(value);\r\n });\r\n }\r\n\r\n onPaggingNext() {\r\n this._Store.select(questionSelectors.pageQuestions).pipe(take(1)).subscribe(arr => {\r\n var invalidRecords = this.haveInValidateQuestions(arr);\r\n\r\n if (invalidRecords.length == 0) {\r\n\r\n const nextPageId = this.getNextShowedPage();\r\n\r\n if (nextPageId != null) {\r\n this._Store.dispatch(surveyActions.updatePageId({ pageId: nextPageId }));\r\n\r\n $('html, body').animate({\r\n scrollTop: $(`#survery-card-${this.surveryLibraryDivId}`).offset().top - 30\r\n }, 300);\r\n\r\n } else {\r\n this.surveyResultEmit.emit(this.questionAnswerArr);\r\n }\r\n } else {\r\n var firstQuestion = $('.invalid-question')[0];\r\n $('html, body').animate({\r\n scrollTop: $(firstQuestion).offset().top - 250\r\n }, 300);\r\n }\r\n });\r\n }\r\n\r\n onPaggingBack() {\r\n const prevPageId = this.getPrevShowedPage();\r\n if (prevPageId != null) {\r\n this._Store.dispatch(surveyActions.updatePageId({ pageId: prevPageId }));\r\n }\r\n }\r\n\r\n private haveInValidateQuestions(questionArr: QuestionNgrxModel[]) {\r\n const formValue = this.rForm.value;\r\n var invalidRecords = [];\r\n\r\n var arr = questionArr.filter(x => x.isDisabled == false && x.isShow == true);\r\n arr.map(x => {\r\n if (x.isRequired == true && x.isValid != true && x.isQuestionGroup != true) {\r\n invalidRecords.push(x);\r\n }\r\n else {\r\n if (x.questionType == QuestionTypeEnum.TextInput && x.inputTypeId == InputTypeEnum.Email) {\r\n if (x.answerText?.trim() && x.isValid != true) {\r\n invalidRecords.push(x);\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (invalidRecords.length > 0) {\r\n $(`#survey-page_${formValue.currentPageId}`).addClass('survey-page_submitted');\r\n } else {\r\n $(`#survey-page_${formValue.currentPageId}`).removeClass('survey-page_submitted');\r\n }\r\n\r\n return invalidRecords;\r\n }\r\n\r\n\r\n private getNextShowedPage() {\r\n const formValue = this.rForm.value;\r\n var showedPages = formValue.showedSurveyPages;\r\n var nextShowedPages = showedPages.filter(x => x > formValue.currentPageId);\r\n if (nextShowedPages.length > 0) {\r\n return nextShowedPages[0];\r\n }\r\n return null;\r\n }\r\n\r\n private getPrevShowedPage() {\r\n const formValue = this.rForm.value;\r\n var showedPages = formValue.showedSurveyPages;\r\n var prevShowedPages = showedPages.filter(x => x < formValue.currentPageId);\r\n if (prevShowedPages.length > 0) {\r\n return prevShowedPages[prevShowedPages.length - 1];\r\n }\r\n return null;\r\n }\r\n}\r\n","<div id=\"survery-card-{{surveryLibraryDivId}}\" class=\"survay-card\">\r\n <div [attr.id]=\"'survey-page_'+fCtrls.currentPageId.value\">\r\n <ng-container *ngFor=\"let item of pageQuestionGroups$(); trackBy:questionGroupIdentify\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\" [innerHTML]=\"item.questionGroupName\">\r\n </h2>\r\n <span class=\"group-sub-title \" [innerHTML]=\"item.questionGroupDescription\">\r\n </span>\r\n </div>\r\n <ng-container\r\n *ngFor=\"let question of (pageQuestions$() |filterQuestion : item.questionGroupId); trackBy:questionIdentify\">\r\n <lib-question-boolean-template #questionBooleanTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.Boolean\">\r\n </lib-question-boolean-template>\r\n\r\n <lib-question-text-template #questionTextTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.TextInput\"\r\n [isArabicLang]=\"isArabicLang\"></lib-question-text-template>\r\n\r\n <lib-question-feedback-template #questionFeedTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.FeedBack\"\r\n [isArabicLang]=\"isArabicLang\"></lib-question-feedback-template>\r\n\r\n <lib-question-radio-button-template #questionRadioButtonTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.RadioButton\">\r\n </lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template #questionDropdownTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.DropDown\"></lib-question-dropdown-template>\r\n\r\n <lib-question-dropdown-multi-template [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.DropDownMulti\">\r\n </lib-question-dropdown-multi-template>\r\n\r\n <lib-question-check-box-template #questionCheckBoxTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.CheckBox\">\r\n </lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template #questionMatrixTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.Matrix\">\r\n </lib-question-matrix-template>\r\n\r\n <lib-question-cascade-template #questionCascadeTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.Cascade\" [applicantKey]=\"applicantKey\" [isPre]=\"isPre\"\r\n [surveyLanguageId]=\"surveyLanguageId\" [pageId]=\"question.surveyPageId\"\r\n [questionGroupId]=\"question.questionGroupId\" [surveyKey]=\"surveyKey\"\r\n [surveyLanguageId]=\"surveyLanguageId\"></lib-question-cascade-template>\r\n\r\n <lib-question-institutions-template #questionInstitutionsTemplate [setQuestion]=\"question\"\r\n *ngIf=\"question.questionType == questionTypeEnum.Institutions\"\r\n [isArabicLang]=\"isArabicLang\"></lib-question-institutions-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"fCtrls.showedSurveyPages.value.length > 0\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\">\r\n <span>{{ curruntShowedSurveyPages$ | async}}</span>\r\n <span class=\"ms-2 me-2\">{{isArabicLang ? 'من' : 'of'}} </span>\r\n <span>{{fCtrls.showedSurveyPages.value.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DefaultQuestionAnswerDto } from '../../shared/dtos/default-question-answers.dto';\r\nimport { QuestionTypeEnum } from '../../shared/enums/question-type.enum';\r\n\r\n@Pipe({\r\n name: 'defaultQuestionAnswer'\r\n})\r\nexport class DefaultQuestionAnswerPipe implements PipeTransform {\r\n\r\n transform(value: DefaultQuestionAnswerDto[], questionId: number , reloadId): DefaultQuestionAnswerDto {\r\n if (value != null) {\r\n return value.find(x => x.QuestionId == questionId); \r\n }\r\n\r\n return null;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DefaultQuestionAnswerDto } from '../../shared/dtos/default-question-answers.dto';\r\n\r\n@Pipe({\r\n name: 'defaultQuestionAnswers'\r\n})\r\nexport class DefaultQuestionAnswersPipe implements PipeTransform {\r\n\r\n transform(value: DefaultQuestionAnswerDto[], questionId: any , reloadId): DefaultQuestionAnswerDto[] {\r\n if (value != null) {\r\n return value.filter(x => x.ParentQuestionId == questionId); \r\n }\r\n\r\n return [];\r\n }\r\n\r\n}\r\n","import { createReducer, on } from \"@ngrx/store\";\r\nimport { questionAdapter, QuestionEntityState, QuestionNgrxModel } from \"../entites/question.entity\";\r\nimport { surveyActions } from \"./survey.action\";\r\nimport { RuleEntityState, ruleAdapter } from \"../entites/rule.entity\";\r\nimport { QuestionGroupEntityState, questionGroupAdapter } from \"../entites/question-group.entity\";\r\nimport { QuestionTypeEnum } from \"../../../../shared/enums/question-type.enum\";\r\nimport { Update } from \"@ngrx/entity\";\r\nimport { InstitutionDto } from \"../../../../shared/dtos/institution.dto\";\r\n\r\nconst { selectAll, selectIds } = questionAdapter.getSelectors();\r\n\r\nexport interface SurveyState {\r\n selectedPageId: number,\r\n questionGroupArr: QuestionGroupEntityState,\r\n questionArr: QuestionEntityState,\r\n ruleArr: RuleEntityState,\r\n InstitutionArr: InstitutionDto[]\r\n}\r\n\r\nexport const initialSurveyState: SurveyState = {\r\n selectedPageId: null,\r\n questionGroupArr: questionGroupAdapter.getInitialState(),\r\n questionArr: questionAdapter.getInitialState(),\r\n ruleArr: ruleAdapter.getInitialState(),\r\n InstitutionArr: []\r\n}\r\n\r\nexport const _surveyReducer = createReducer(\r\n initialSurveyState,\r\n on(surveyActions.loadSurvey, (state, props) => {\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.setAll(props.questionArr, state.questionArr),\r\n questionGroupArr: questionGroupAdapter.setAll(props.questionGroupArr, state.questionGroupArr),\r\n ruleArr: ruleAdapter.setAll(props.ruleArr, state.ruleArr),\r\n selectedPageId: props.selectedPageId,\r\n InstitutionArr: []\r\n }\r\n }),\r\n on(surveyActions.addQuestion, (state, props) => {\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.addOne(props.question, state.questionArr)\r\n }\r\n }),\r\n on(surveyActions.updateQuestionAnswer, (state, props) => {\r\n const question = selectAll(state.questionArr).find(x => x.questionId == props.questionId);\r\n if (question) {\r\n var updateModel: Update<QuestionNgrxModel>;\r\n\r\n if (question.questionType == QuestionTypeEnum.TextInput || question.questionType == QuestionTypeEnum.FeedBack) {\r\n updateModel = {\r\n id: props.questionId,\r\n changes: {\r\n answerId: question.questionAllInfo.surveyAnswers[0].answerId,\r\n answerText: props.answer,\r\n isValid: props.isValid\r\n }\r\n };\r\n }\r\n else if (question.questionType == QuestionTypeEnum.CheckBox || question.questionType == QuestionTypeEnum.DropDownMulti) {\r\n updateModel = {\r\n id: props.questionId,\r\n changes: {\r\n answerIdArr: props.answer,\r\n isValid: props.isValid\r\n }\r\n };\r\n }\r\n else {\r\n updateModel = {\r\n id: props.questionId,\r\n changes: {\r\n answerId: props.answer,\r\n isValid: props.isValid\r\n }\r\n };\r\n }\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.updateOne(updateModel, state.questionArr)\r\n }\r\n }\r\n\r\n return {\r\n ...state\r\n }\r\n }),\r\n on(surveyActions.updateInstitutionQuestionAnswer, (state, props) => {\r\n const question = selectAll(state.questionArr).find(x => x.questionId == props.questionId);\r\n if (question) {\r\n var updateModel: Update<QuestionNgrxModel>;\r\n\r\n if (question.questionType == QuestionTypeEnum.Institutions) {\r\n updateModel = {\r\n id: props.questionId,\r\n changes: {\r\n answerId: props.answerId,\r\n answerText: props.answer,\r\n answerLevelId: props.answerLevelId,\r\n isValid: props.isValid\r\n }\r\n };\r\n\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.updateOne(updateModel, state.questionArr)\r\n }\r\n }\r\n }\r\n\r\n return {\r\n ...state\r\n }\r\n }),\r\n on(surveyActions.updateQuestionShow, (state, props) => {\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.updateOne({\r\n id: props.questionId,\r\n changes: {\r\n isShow: props.isShow\r\n }\r\n }, state.questionArr)\r\n }\r\n }),\r\n on(surveyActions.updateQuestionsShow, (state, props) => {\r\n const updates = props.questionIds.map(id => ({\r\n id,\r\n changes: { isShow: props.isShow }\r\n }));\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.updateMany(updates, state.questionArr)\r\n }\r\n }),\r\n on(surveyActions.updateQuestionDisable, (state, props) => {\r\n const question = selectAll(state.questionArr).find(x => x.questionId == props.questionId);\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.updateOne({\r\n id: props.questionId,\r\n changes: {\r\n isDisabled: props.isDisabled\r\n }\r\n }, state.questionArr)\r\n }\r\n }),\r\n on(surveyActions.updateQuestionsDisable, (state, props) => {\r\n const updates = props.questionIds.map(id => ({\r\n id,\r\n changes: { isDisabled: props.isDisabled }\r\n }));\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.updateMany(updates, state.questionArr)\r\n }\r\n }),\r\n on(surveyActions.updateQuestionRequired, (state, props) => {\r\n const question = selectAll(state.questionArr).find(x => x.questionId == props.questionId);\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.updateOne({\r\n id: props.questionId,\r\n changes: {\r\n isRequired: props.isRequired\r\n }\r\n }, state.questionArr)\r\n }\r\n }),\r\n on(surveyActions.removeQuestion, (state, props) => {\r\n return {\r\n ...state,\r\n questionArr: questionAdapter.removeOne(props.questionId, state.questionArr)\r\n }\r\n }),\r\n on(surveyActions.updatePageId, (state, props) => {\r\n return {\r\n ...state,\r\n selectedPageId: props.pageId\r\n }\r\n }),\r\n on(surveyActions.loadInstitutionArrSuccess, (state, props) => {\r\n return {\r\n ...state,\r\n InstitutionArr: props.institutionArr\r\n }\r\n })\r\n);\r\n\r\nexport function surveyReducer(state, action) {\r\n return _surveyReducer(state, action);\r\n}\r\n","export enum LogicActionEnum {\r\n Show = 1,\r\n Hide = 2,\r\n Enable = 3,\r\n Disable = 4,\r\n SetAnswer = 5\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { Actions, createEffect, ofType } from \"@ngrx/effects\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { withLatestFrom, filter, switchMap, map, catchError, of } from \"rxjs\";\r\nimport { surveyActions } from \"./survey.action\";\r\nimport { CheckRuleExpsUsecase } from \"../../../usecases/check-rule-exps.usecase\";\r\nimport { surveySelectors } from \"./survey.selector\";\r\nimport { questionSelectors } from \"./question.selector\";\r\nimport { LogicActionEnum } from \"../../../../shared/enums/logic-action.enum\";\r\nimport { QuestionTypeEnum } from \"../../../../shared/enums/question-type.enum\";\r\nimport { ApiService } from \"../../../services/api.service\";\r\n\r\n@Injectable()\r\nexport class SurveyEffects {\r\n constructor(private _actions: Actions, private _store: Store,\r\n private _checkRuleExpsUsecase: CheckRuleExpsUsecase, private _apiService: ApiService) {\r\n }\r\n\r\n updateQuestionAnswer$ = createEffect(() =>\r\n this._actions.pipe(ofType(surveyActions.updateQuestionAnswer), withLatestFrom(this._store.select(surveySelectors.ruleArr)\r\n , this._store.select(questionSelectors.allQuestions)), switchMap(([action, ruleArr, questionArr]) => {\r\n var formatedRuleArr: { ruleId: any, questionId: any }[] = [];\r\n ruleArr.forEach(rule => {\r\n rule.ruleExps.forEach(ruleQuestion => {\r\n formatedRuleArr.push({\r\n ruleId: rule.ruleId,\r\n questionId: ruleQuestion.questionId\r\n })\r\n })\r\n })\r\n\r\n var selectedRuleIdArr = formatedRuleArr.filter(x => x.questionId == action.questionId).map(x => Number(x.ruleId));\r\n var arr = ruleArr.filter(x => selectedRuleIdArr.find(c => c == x.ruleId) != null);\r\n\r\n var toggleShowedQuestionIds: { questionId: any, isShow: boolean }[] = [];\r\n var toggleDisabledQuestionIds: { questionId: any, isDisabled: boolean }[] = [];\r\n arr.forEach(rule => {\r\n this._checkRuleExpsUsecase.execute({\r\n ruleExps: rule.ruleExps,\r\n questions: questionArr,\r\n }).subscribe(result => {\r\n\r\n var isPassed = result.exprestionResultArr.filter(x => x == false).length == 0;\r\n if (isPassed) {\r\n rule.ruleResultQuestions.forEach(resultQuestion => {\r\n if (rule.logicActionId == LogicActionEnum.Show) {\r\n toggleShowedQuestionIds.push({ questionId: resultQuestion.questionId, isShow: true });\r\n } else if (rule.logicActionId == LogicActionEnum.Hide) {\r\n toggleShowedQuestionIds.push({ questionId: resultQuestion.questionId, isShow: false });\r\n } else if (rule.logicActionId == LogicActionEnum.Enable) {\r\n toggleDisabledQuestionIds.push({ questionId: resultQuestion.questionId, isDisabled: false });\r\n } else if (rule.logicActionId == LogicActionEnum.Disable) {\r\n toggleDisabledQuestionIds.push({ questionId: resultQuestion.questionId, isDisabled: true });\r\n } else if (rule.logicActionId == LogicActionEnum.SetAnswer) {\r\n\r\n }\r\n\r\n const question = questionArr.find(x => x.questionId == resultQuestion.questionId);\r\n\r\n //update matrix sub questions\r\n if (question.questionType == QuestionTypeEnum.Matrix && question.isQuestionGroup == true) {\r\n var subQuestions = questionArr.filter(x => x.parentQuestionId == question.questionId);\r\n subQuestions.forEach(subQuestion => {\r\n if (rule.logicActionId == LogicActionEnum.Show) {\r\n toggleShowedQuestionIds.push({ questionId: subQuestion.questionId, isShow: true });\r\n } else if (rule.logicActionId == LogicActionEnum.Hide) {\r\n toggleShowedQuestionIds.push({ questionId: subQuestion.questionId, isShow: false });\r\n }\r\n else if (rule.logicActionId == LogicActionEnum.Enable) {\r\n toggleDisabledQuestionIds.push({ questionId: subQuestion.questionId, isDisabled: false });\r\n\r\n } else if (rule.logicActionId == LogicActionEnum.Disable) {\r\n toggleDisabledQuestionIds.push({ questionId: subQuestion.questionId, isDisabled: true });\r\n }\r\n });\r\n }\r\n\r\n });\r\n }\r\n else {\r\n rule.ruleResultQuestions.forEach(resultQuestion => {\r\n const question = questionArr.find(x => x.questionId == resultQuestion.questionId);\r\n \r\n if (question) {\r\n if (question.isShow != question.isShow_default) {\r\n toggleShowedQuestionIds.push({ questionId: resultQuestion.questionId, isShow: question.isShow_default });\r\n }\r\n\r\n if (question.isDisabled != question.isDisabled_default) {\r\n toggleDisabledQuestionIds.push({ questionId: resultQuestion.questionId, isDisabled: question.isDisabled_default });\r\n }\r\n\r\n if (question.questionType == QuestionTypeEnum.Matrix && question.isQuestionGroup == true) {\r\n var subQuestions = questionArr.filter(x => x.parentQuestionId == question.questionId);\r\n subQuestions.forEach(subQuestion => {\r\n if (subQuestion.isShow != subQuestion.isShow_default) {\r\n toggleShowedQuestionIds.push({ questionId: subQuestion.questionId, isShow: subQuestion.isShow_default });\r\n }\r\n\r\n if (subQuestion.isDisabled != subQuestion.isDisabled_default) {\r\n toggleDisabledQuestionIds.push({ questionId: subQuestion.questionId, isDisabled: question.isDisabled_default });\r\n }\r\n });\r\n }\r\n }\r\n \r\n });\r\n }\r\n });\r\n });\r\n\r\n const hiddenQuestionIds = toggleShowedQuestionIds.filter(x => x.isShow == false).map(x => x.questionId);\r\n if (hiddenQuestionIds.length > 0) {\r\n this._store.dispatch(surveyActions.updateQuestionsShow({\r\n questionIds: hiddenQuestionIds,\r\n isShow: false\r\n }));\r\n }\r\n\r\n const showedQuestionIds = toggleShowedQuestionIds.filter(x => x.isShow == true).map(x => x.questionId);\r\n if (showedQuestionIds.length > 0) {\r\n this._store.dispatch(surveyActions.updateQuestionsShow({\r\n questionIds: showedQuestionIds,\r\n isShow: true\r\n }));\r\n }\r\n\r\n const disabledQuestionIds = toggleDisabledQuestionIds.filter(x => x.isDisabled == true).map(x => x.questionId);\r\n if (disabledQuestionIds.length > 0) {\r\n this._store.dispatch(surveyActions.updateQuestionsDisable({\r\n questionIds: disabledQuestionIds,\r\n isDisabled: true\r\n }));\r\n }\r\n\r\n const enabledQuestionIds = toggleDisabledQuestionIds.filter(x => x.isDisabled == false).map(x => x.questionId);\r\n if (enabledQuestionIds.length > 0) {\r\n this._store.dispatch(surveyActions.updateQuestionsDisable({\r\n questionIds: enabledQuestionIds,\r\n isDisabled: false\r\n }));\r\n }\r\n\r\n return of([])\r\n })), { dispatch: false });\r\n\r\n loadInstitutionArr$ = createEffect(() =>\r\n this._actions.pipe(ofType(surveyActions.loadInstitutionArr), withLatestFrom(this._store.select(surveySelectors.institutionArr))\r\n , filter(([action, institutionArr]) => institutionArr.length == 0), switchMap(() => {\r\n return this._apiService.getAllInstitutions().pipe(map((res) => {\r\n return surveyActions.loadInstitutionArrSuccess({ institutionArr: res.responseDetails });\r\n }))\r\n })));\r\n}\r\n\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { SurveryLibComponent } from './survery-lib.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { QuestionTextTemplateComponent } from './components/question-text-template/question-text-template.component';\r\nimport { QuestionRadioButtonTemplateComponent } from './components/question-radio-button-template/question-radio-button-template.component';\r\nimport { QuestionCheckBoxTemplateComponent } from './components/question-check-box-template/question-check-box-template.component';\r\nimport { QuestionDropdownTemplateComponent } from './components/question-dropdown-template/question-dropdown-template.component';\r\nimport { QuestionMatrixTemplateComponent } from './components/question-matrix-template/question-matrix-template.component';\r\nimport { QuestionBooleanTemplateComponent } from './components/question-boolean-template/question-boolean-template.component';\r\nimport { FilterQuestionPipe } from './pipes/filter-question.pipe';\r\nimport { DefaultQuestionAnswerPipe } from './pipes/default-question-answer.pipe';\r\nimport { DefaultQuestionAnswersPipe } from './pipes/default-question-answers.pipe';\r\nimport { QuestionDropdownMultiTemplateComponent } from './components/question-dropdown-multi-template/question-dropdown-multi-template.component';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { TextBoxTypeAttrPipe } from './pipes/text-box-type-attr.pipe';\r\nimport { QuestionCascadeTemplateComponent } from './components/question-cascade-template/question-cascade-template.component';\r\nimport { LibConfigModel, LibConfigService } from './services/lib-config.service';\r\nimport { MaskedForMinMaxDirective } from './directives/masked-for-min-max.directive';\r\nimport { Store, StoreModule } from '@ngrx/store';\r\nimport { surveyReducer } from './core/states/survey-store/survey.reducer';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { FindQuestionPipe } from './pipes/find-question.pipe';\r\nimport { QuestionFeedbackTemplateComponent } from './components/question-feedback-template/question-feedback-template.component';\r\nimport { RatingModule } from 'ngx-bootstrap/rating';\r\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\r\nimport { MaskedForMaxLengthDirective } from './directives/masked-for-max-length.directive';\r\nimport { SurveyEffects } from './core/states/survey-store/survey.effect';\r\nimport { QuestionInstitutionsTemplateComponent } from './components/question-institutions-template/question-institutions-template.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n SurveryLibComponent,\r\n QuestionTextTemplateComponent,\r\n QuestionRadioButtonTemplateComponent,\r\n QuestionCheckBoxTemplateComponent,\r\n QuestionDropdownTemplateComponent,\r\n QuestionMatrixTemplateComponent,\r\n QuestionBooleanTemplateComponent,\r\n QuestionDropdownMultiTemplateComponent,\r\n FilterQuestionPipe,\r\n DefaultQuestionAnswerPipe,\r\n DefaultQuestionAnswersPipe,\r\n TextBoxTypeAttrPipe,\r\n QuestionCascadeTemplateComponent,\r\n MaskedForMinMaxDirective,\r\n FindQuestionPipe,\r\n QuestionFeedbackTemplateComponent,\r\n MaskedForMaxLengthDirective,\r\n QuestionInstitutionsTemplateComponent\r\n ],\r\n imports: [\r\n CommonModule, HttpClientModule, ReactiveFormsModule, FormsModule, NgSelectModule,\r\n StoreModule.forFeature('survey-lib',surveyReducer),\r\n EffectsModule.forFeature([SurveyEffects]),RatingModule ,PaginationModule\r\n ],\r\n exports: [\r\n SurveryLibComponent ,\r\n StoreModule\r\n ]\r\n})\r\nexport class SurveryLibModule {\r\n\r\n public static forRoot(config: LibConfigModel): ModuleWithProviders<SurveryLibModule> {\r\n return {\r\n ngModule: SurveryLibModule,\r\n providers: [\r\n { provide: LibConfigService, useValue: config }\r\n ],\r\n }\r\n }\r\n\r\n public static forChild(): ModuleWithProviders<SurveryLibModule> {\r\n return {\r\n ngModule: SurveryLibModule\r\n }\r\n }\r\n}\r\n","export class SurveyQuestionResult{\r\n SurveyPageIndex:number;\r\n QuestionId;\r\n QuestionType;\r\n AnswerId;\r\n AnswerIdArr;\r\n AnswerText;\r\n AnswerLevelId ;\r\n}","/*\r\n * Public API Surface of survery-lib\r\n */\r\n\r\nexport * from './lib/survery-lib.component';\r\nexport * from './lib/services/survey-lib.service';\r\nexport * from './lib/survery-lib.module';\r\nexport * from './shared/models/survery-question-result.model'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["selectAll","selectIds","selectSurveyData","guidGenerator","i1","i2.SurveyLibService","i5.MaskedForMinMaxDirective","i6.MaskedForMaxLengthDirective","i7.TextBoxTypeAttrPipe","i3.ApiService","i4","i5","i6.QuestionTextTemplateComponent","i7.QuestionDropdownTemplateComponent","i8.FindQuestionPipe","i2","i1.SurveyLibService","i3","i4.CheckRuleExpsUsecase","i7.QuestionRadioButtonTemplateComponent","i8.QuestionCheckBoxTemplateComponent","i9.QuestionDropdownTemplateComponent","i10.QuestionMatrixTemplateComponent","i11.QuestionBooleanTemplateComponent","i12.QuestionDropdownMultiTemplateComponent","i13.QuestionCascadeTemplateComponent","i14.QuestionFeedbackTemplateComponent","i15.QuestionInstitutionsTemplateComponent","i16.FilterQuestionPipe","i3.CheckRuleExpsUsecase","i4.ApiService"],"mappings":"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"}