@shikshalokam/sl-questionnaire
Version:
Library to integrate questionnaire in SL Projects
1 lines • 119 kB
Source Map (JSON)
{"version":3,"file":"shikshalokam-sl-questionnaire.mjs","sources":["../../../projects/sl-questionnaire/src/lib/interfaces/questionnaire.type.ts","../../../projects/sl-questionnaire/src/lib/services/sl-questionnaire.service.ts","../../../projects/sl-questionnaire/src/lib/services/translate.service.ts","../../../projects/sl-questionnaire/src/lib/text-input/text-input.component.ts","../../../projects/sl-questionnaire/src/lib/text-input/text-input.component.html","../../../projects/sl-questionnaire/src/lib/date-input/date-input.component.ts","../../../projects/sl-questionnaire/src/lib/date-input/date-input.component.html","../../../projects/sl-questionnaire/src/lib/number-input/number-input.component.ts","../../../projects/sl-questionnaire/src/lib/number-input/number-input.component.html","../../../projects/sl-questionnaire/src/lib/range-input/range-input.component.ts","../../../projects/sl-questionnaire/src/lib/range-input/range-input.component.html","../../../projects/sl-questionnaire/src/lib/shared/alert-modal/alert-modal.component.ts","../../../projects/sl-questionnaire/src/lib/shared/alert-modal/alert-modal.component.html","../../../projects/sl-questionnaire/src/lib/radio-input/radio-input.component.ts","../../../projects/sl-questionnaire/src/lib/radio-input/radio-input.component.html","../../../projects/sl-questionnaire/src/lib/checkbox-input/checkbox-input.component.ts","../../../projects/sl-questionnaire/src/lib/checkbox-input/checkbox-input.component.html","../../../projects/sl-questionnaire/src/lib/ques-remarks/ques-remarks.component.ts","../../../projects/sl-questionnaire/src/lib/ques-remarks/ques-remarks.component.html","../../../projects/sl-questionnaire/src/lib/services/utils.service.ts","../../../projects/sl-questionnaire/src/lib/attachment/attachment.component.ts","../../../projects/sl-questionnaire/src/lib/attachment/attachment.component.html","../../../projects/sl-questionnaire/src/lib/matrix-questions/matrix-questions.component.ts","../../../projects/sl-questionnaire/src/lib/matrix-questions/matrix-questions.component.html","../../../projects/sl-questionnaire/src/lib/input/input.component.ts","../../../projects/sl-questionnaire/src/lib/input/input.component.html","../../../projects/sl-questionnaire/src/lib/page-questions/page-questions.component.ts","../../../projects/sl-questionnaire/src/lib/page-questions/page-questions.component.html","../../../projects/sl-questionnaire/src/lib/sl-questionnaire.module.ts","../../../projects/sl-questionnaire/src/public-api.ts","../../../projects/sl-questionnaire/src/shikshalokam-sl-questionnaire.ts"],"sourcesContent":["export interface IAssessmentDetails {\n message?: string;\n status?: number;\n result: AssessmentInfo;\n responseCode: string;\n}\n\nexport interface AssessmentInfo {\n entityProfile: EntityProfile;\n solution: Solution;\n program: Program;\n assessment: Assessment;\n}\n\nexport interface EntityProfile {\n _id: string;\n entityTypeId: string;\n entityType: string;\n}\n\nexport interface Solution {\n _id: string;\n externalId: string;\n name: string;\n description: string;\n registry: any[];\n captureGpsLocationAtQuestionLevel: boolean;\n enableQuestionReadOut: boolean;\n scoringSystem: null;\n isRubricDriven: boolean;\n pageHeading: string;\n criteriaLevelReport?: boolean;\n}\n\nexport interface Program {\n _id: string;\n isAPrivateProgram: boolean;\n externalId: string;\n name: string;\n description: string;\n imageCompression: ImageCompression;\n}\n\nexport interface Assessment {\n name: string;\n description: string;\n externalId: string;\n pageHeading: string;\n submissionId: string;\n evidences: Evidence[];\n submissions: Submissions;\n}\n\nexport type Code = string;\n\nexport interface Evidence {\n code: Code;\n sections: Section[];\n externalId: Code;\n tip: null;\n name: string;\n description: null;\n modeOfCollection: string;\n canBeNotApplicable: boolean;\n notApplicable: boolean;\n canBeNotAllowed: boolean;\n remarks: null;\n startTime: number;\n endTime: string;\n isSubmitted: boolean;\n submissions: any[];\n}\n\nexport interface Section {\n code: string;\n questions: Question[];\n name: string;\n}\n\nexport interface Question {\n _id: string;\n question: string;\n isCompleted: boolean;\n showRemarks: string;\n options: string;\n option?:{hint:\"\",tip:\"\"}[]\n sliderOptions: string;\n children: string[];\n questionGroup: string;\n fileName: string;\n instanceQuestions: string;\n isAGeneralQuestion: string;\n autoCapture: string;\n allowAudioRecording: string;\n prefillFromEntityProfile: string;\n entityFieldName: string;\n isEditable: string;\n showQuestionInPreview: string;\n deleted: string;\n remarks: string;\n value: string | string[];\n usedForScoring: string;\n questionType: string;\n canBeNotApplicable: string;\n visibleIf: VisibleIfUnion;\n validation: string | Validation;\n dateFormat: string;\n externalId: string;\n tip: string;\n hint: string;\n responseType: ResponseType;\n modeOfCollection: string;\n accessibility: string;\n rubricLevel: string;\n sectionHeader: string;\n page: string;\n questionNumber: string;\n updatedAt: string;\n createdAt: string;\n __v: string;\n createdFromQuestionId: string;\n evidenceMethod: string;\n payload: Payload;\n startTime: number;\n endTime: number;\n gpsLocation: string;\n file: string;\n pageQuestions: Question[];\n}\n\ntype Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;\n\nexport interface PageQuestion\n extends Omit<Question, 'responseType' | 'pageQuestions'> {\n value: 'pageQuestions';\n pageQuestions: Question[];\n}\nexport interface MatrixQuestion\n extends Omit<Question, 'responseType' | 'instanceQuestions' | 'value'> {\n responseType: 'matix';\n value: Array<Question[]>;\n instanceQuestions: Question[];\n instanceIdentifier: string;\n}\n\nexport enum ResponseType {\n TEXT = 'text',\n NUMBER = 'number',\n RADIO = 'radio',\n MULTISELECT = 'multiselect',\n DATE = 'date',\n SLIDER = 'slider',\n PAGEQUESTIONS = 'pageQuestions',\n MATRIX = 'matrix',\n}\n\nexport type FileUnion = FileClass | string;\n\nexport interface FileClass {\n required: boolean;\n type: string[];\n minCount: number;\n maxCount: number;\n caption: string;\n}\n\nexport interface Payload {\n criteriaId: string;\n responseType: string;\n evidenceMethod: Code;\n rubricLevel: string;\n}\n\nexport interface Validation {\n required: boolean;\n max?: string;\n min?: string;\n IsNumber?: string;\n regex: RegExp;\n}\n\nexport interface Option {\n value: string;\n label: string;\n}\n\nexport type VisibleIfUnion = VisibleIfElement[] | string;\n\nexport interface VisibleIfElement {\n operator: string;\n value: string[];\n _id: string;\n}\n\nexport interface Submissions {}\n\nexport interface ImageCompression {\n quality: number;\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, ValidatorFn } from '@angular/forms';\nimport {\n Evidence,\n Question,\n ResponseType,\n} from '../interfaces/questionnaire.type';\nimport * as _ from 'lodash-es';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SlQuestionnaireService {\n private _submissionId: string;\n constructor() {}\n validate = (data: Question): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if (typeof data.validation == 'string') {\n return null;\n }\n if (!data.validation.required) {\n return null;\n }\n if (data.validation.regex) {\n const forbidden = this.testRegex(data.validation.regex, control.value);\n return forbidden ? null : { err: 'Invalid character found' };\n }\n\n if (data.validation.IsNumber) {\n if (!control.value) {\n return { err: 'Number not entered' };\n }\n const forbidden = !isNaN(control.value);\n return forbidden ? null : { err: 'Only numbers allowed' };\n }\n\n if (data.validation.required) {\n if (!control.value) {\n return { err: 'Required field' };\n }\n\n if (data.responseType == ResponseType.MULTISELECT) {\n return control.value.some((v) => v != '')\n ? null\n : { err: 'Select at least one option' };\n }\n\n if (data.responseType == ResponseType.SLIDER) {\n let min = data.validation.min;\n let max = data.validation.max;\n return min <= control.value && control.value <= max\n ? null\n : { err: 'Selected value not within range' };\n }\n }\n };\n };\n\n public testRegex(regexExpression: RegExp, value: string): boolean {\n const regex = new RegExp(regexExpression);\n return regex.test(value);\n }\n\n setSubmissionId(submissionId: any) {\n this._submissionId = submissionId;\n }\n getSubmissionId() {\n return this._submissionId;\n }\n\n mapSubmissionToAssessment(data) {\n const assessment = data.assessment;\n\n for (const evidence of assessment.evidences) {\n const validSubmission = assessment.submissions[evidence.externalId];\n if (validSubmission) {\n evidence.notApplicable = validSubmission.notApplicable;\n if (evidence.notApplicable) {\n continue;\n }\n\n for (const section of evidence.sections) {\n for (const question of section.questions) {\n if (question.responseType === 'pageQuestions') {\n for (const questions of question.pageQuestions) {\n questions.value =\n questions.responseType !== 'matrix'\n ? validSubmission.answers[questions._id].value\n : this.constructMatrixValue(\n validSubmission,\n questions,\n evidence.externalId\n );\n questions.remarks = validSubmission.answers[questions._id]\n ? validSubmission.answers[questions._id].remarks\n : '';\n questions.fileName = validSubmission.answers[questions._id]\n ? validSubmission.answers[questions._id].fileName\n : [];\n questions.endTime = validSubmission.answers[questions._id]\n ? validSubmission.answers[questions._id].endTime\n : '';\n }\n } else if (\n validSubmission.answers &&\n validSubmission.answers[question._id]\n ) {\n question.value =\n question.responseType !== 'matrix'\n ? validSubmission.answers[question._id].value\n : this.constructMatrixValue(\n validSubmission,\n question,\n evidence.externalId\n );\n question.remarks = validSubmission.answers[question._id]\n ? validSubmission.answers[question._id].remarks\n : '';\n question.fileName = validSubmission.answers[question._id]\n ? validSubmission.answers[question._id].fileName\n : [];\n question.endTime = validSubmission.answers[question._id]\n ? validSubmission.answers[question._id].endTime\n : ''\n }\n }\n }\n }\n }\n\n this.setSubmissionId(assessment.submissionId);\n return data;\n }\n\n constructMatrixValue(validSubmission, matrixQuestion, ecmId) {\n matrixQuestion.value = [];\n if (\n validSubmission.answers &&\n validSubmission.answers[matrixQuestion._id] &&\n validSubmission.answers[matrixQuestion._id].value\n ) {\n for (const answer of validSubmission.answers[matrixQuestion._id].value) {\n matrixQuestion.value.push(\n JSON.parse(JSON.stringify(matrixQuestion.instanceQuestions))\n );\n }\n matrixQuestion.value.forEach((instance, index) => {\n instance.forEach((question, instanceIndex) => {\n if (\n validSubmission.answers[matrixQuestion._id] &&\n validSubmission.answers[matrixQuestion._id].value[index][\n question._id\n ]\n ) {\n question.value =\n validSubmission.answers[matrixQuestion._id].value[index][\n question._id\n ].value;\n question.remarks =\n validSubmission.answers[matrixQuestion._id].value[index][\n question._id\n ].remarks;\n question.fileName =\n validSubmission.answers[matrixQuestion._id].value[index][\n question._id\n ].fileName;\n question.endTime =\n validSubmission.answers[matrixQuestion._id].value[index][\n question._id\n ].endTime;\n }\n });\n });\n return matrixQuestion.value;\n } else {\n return [];\n }\n }\n\n getEvidenceData(evidence: Evidence, formValues: object) {\n let sections = evidence.sections;\n let answers = this.getSectionData(sections, formValues);\n let payloadData = {\n externalId: evidence.externalId,\n answers: answers,\n startTime: evidence.startTime,\n endTime: Date.now(),\n };\n return payloadData;\n }\n\n getSectionData(sections, formValues) {\n let answers = {};\n for (let index = 0; index < sections.length; index++) {\n answers = {\n ...answers,\n ...this.createpayload(sections[index].questions, formValues),\n };\n }\n return answers;\n }\n\n createpayload(questions, formValues) {\n let answers = {};\n for (let index = 0; index < questions.length; index++) {\n let currentQuestion = questions[index];\n if (currentQuestion.responseType == 'pageQuestions') {\n answers = {\n ...answers,\n ...this.createpayload(currentQuestion.pageQuestions, formValues),\n };\n continue;\n }\n if (currentQuestion.responseType == 'matrix') {\n for (let index = 0; index < currentQuestion.value.length; index++) {\n formValues[currentQuestion._id][index] = this.createpayload(\n currentQuestion.value[index],\n formValues[currentQuestion._id][index]\n );\n }\n }\n\n let perQuestionData = this.formatToPayload(currentQuestion, formValues);\n answers[currentQuestion._id] = perQuestionData;\n }\n\n return answers;\n }\n\n formatToPayload(currentQuestion, formValues) {\n let value, labels;\n if (currentQuestion.responseType == 'matrix') {\n value = formValues[currentQuestion._id];\n labels = currentQuestion.value;\n } else {\n value = currentQuestion.value;\n labels = formValues[currentQuestion._id];\n if (currentQuestion.responseType == 'radio' && currentQuestion.value) {\n labels = currentQuestion.options.find(_ => _.value == currentQuestion.value).label\n } \n if (currentQuestion.responseType == 'multiselect' && currentQuestion.value) {\n labels = currentQuestion.options.filter(_=>currentQuestion.value.includes(_.value)).map(_=>_.label)\n }\n }\n\n return {\n qid: currentQuestion._id,\n value: value,\n remarks: currentQuestion.remarks,\n fileName: currentQuestion.fileName,\n gpsLocation: '',\n payload: {\n question: currentQuestion.question,\n labels: this.convertToArray(labels),\n responseType: currentQuestion.responseType,\n filesNotUploaded: [], //todo\n },\n startTime: currentQuestion.startTime,\n endTime: currentQuestion.endTime,\n criteriaId: currentQuestion.payload.criteriaId,\n responseType: currentQuestion.responseType,\n evidenceMethod: currentQuestion.evidenceMethod,\n rubricLevel: '',\n };\n }\n\n convertToArray(arr) {\n if (!arr) {\n return arr;\n }\n let clonedArr = _.cloneDeep(arr);\n if (Array.isArray(clonedArr)) {\n return arr;\n } else {\n return [clonedArr];\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class SlTranslateService {\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { Question } from '../interfaces/questionnaire.type';\nimport { SlTranslateService } from '../services/translate.service';\nimport { SlQuestionnaireService } from '../services/sl-questionnaire.service';\n\n@Component({\n selector: 'sl-text-input',\n templateUrl: './text-input.component.html',\n styleUrls: ['./text-input.component.scss'],\n})\nexport class TextInputComponent implements OnInit {\n text: string;\n @Input() questionnaireForm: UntypedFormGroup;\n @Input() question : Question;\n placeholder;\n\n constructor(\n private qService: SlQuestionnaireService,\n private translate: SlTranslateService\n ) {}\n\n ngOnInit() {\n this.placeholder = this.translate['frmelmnts'].lbl.enterResponse;\n setTimeout(() => {\n this.questionnaireForm.addControl(\n this.question._id,\n new UntypedFormControl(this.question.value || null, [\n this.qService.validate(this.question),\n ])\n );\n\n this.question.startTime = this.question.startTime\n ? this.question.startTime\n : Date.now();\n });\n }\n\n get isValid(): boolean {\n return this.questionnaireForm.controls[this.question._id].valid;\n }\n\n get isTouched(): boolean {\n return this.questionnaireForm.controls[this.question._id].touched;\n }\n onChange(e: Event) {\n let value = (e.target as HTMLInputElement).value;\n this.question.value = value;\n this.question.endTime = Date.now();\n }\n}\n","<div\n [formGroup]=\"questionnaireForm\"\n *ngIf=\"questionnaireForm?.contains(question._id)\"\n>\n <input\n type=\"text\"\n [formControlName]=\"question?._id\"\n [ngClass]=\"!isValid && isTouched ? 'is-invalid ' : 'is-valid'\"\n class=\"sb-form-control\"\n [placeholder]=\"placeholder\"\n (change)=\"onChange($event)\"\n [value]=\"question.value\"\n />\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { Question, Validation } from '../interfaces/questionnaire.type';\nimport { SlTranslateService } from '../services/translate.service';\nimport { SlQuestionnaireService } from '../services/sl-questionnaire.service';\n\n@Component({\n selector: 'sl-date-input',\n templateUrl: './date-input.component.html',\n styleUrls: ['./date-input.component.scss'],\n})\nexport class DateInputComponent implements OnInit {\n date: any;\n min: Date;\n max: Date;\n\n @Input() questionnaireForm: UntypedFormGroup;\n @Input() question: Question;\n @Input() autoCaptureText: String;\n\n constructor(\n private qService: SlQuestionnaireService,\n private translate: SlTranslateService\n ) {}\n\n ngOnInit() {\n this.autoCaptureText = this.translate['frmelmnts'].btn?.autoCapture;\n setTimeout(() => {\n this.questionnaireForm.addControl(\n this.question._id,\n new UntypedFormControl(\n this.question.value ? new Date(this.question.value as string) : null,\n [this.qService.validate(this.question)]\n )\n );\n\n this.question.startTime = this.question.startTime\n ? this.question.startTime\n : Date.now();\n });\n this.min = (this.question.validation as Validation).min\n ? new Date((this.question.validation as Validation).min)\n : null;\n this.max = (this.question.validation as Validation).max\n ? new Date((this.question.validation as Validation).max)\n : null;\n }\n\n onChange(e: string) {\n if(!e) return\n let value:any = this.dateTimeFormat(e);\n this.question.value = value;\n this.question.endTime = Date.now();\n }\n\n dateTimeFormat(e:any) {\n let x = new Date(e);\n let n = new Date();\n let h = n.getHours();\n let m = n.getMinutes();\n x.setHours(h);\n x.setMinutes(m);\n return x;\n }\n\n autoCapture() {\n this.questionnaireForm.controls[this.question._id].patchValue(\n new Date(Date.now())\n );\n }\n}\n","<div\n [formGroup]=\"questionnaireForm\"\n *ngIf=\"questionnaireForm?.contains(question._id)\"\n class=\"sb-g sb-g-col-xs-12\"\n>\n <div class=\"ui left icon input sb-g-col-xs-12 sb-g-col-md-8\">\n <i class=\"calendar icon\"></i>\n <input\n suiDatepicker\n [pickerMode]=\"'date'\"\n [pickerUseNativeOnMobile]=\"false\"\n [formControlName]=\"question?._id\"\n (pickerSelectedDateChange)=\"onChange($event)\"\n class=\"question-date-input\"\n [pickerMinDate]=\"min\"\n [pickerMaxDate]=\"max\"\n />\n </div>\n <div *ngIf=\"question?.autoCapture && !question?.value\" class=\"d-flex sb-g-col-xs-12 sb-g-col-md-4 margin\">\n <button class=\"sb-btn sb-btn-normal sb-btn-primary\" (click)=\"autoCapture()\">\n\t\t{{autoCaptureText}}\n </button>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { Question } from '../interfaces/questionnaire.type';\nimport { SlTranslateService } from '../services/translate.service';\nimport { SlQuestionnaireService } from '../services/sl-questionnaire.service';\n\n@Component({\n selector: 'sl-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss'],\n})\nexport class NumberInputComponent implements OnInit {\n placeholder;\n response: string;\n @Input() questionnaireForm: UntypedFormGroup;\n @Input() question: Question;\n constructor(\n private qService: SlQuestionnaireService,\n private translate: SlTranslateService\n ) {}\n\n ngOnInit() {\n this.placeholder = this.translate['frmelmnts']?.lbl?.enterResponse;\n setTimeout(() => {\n this.questionnaireForm.addControl(\n this.question._id,\n new UntypedFormControl(this.question.value || null, [\n this.qService.validate(this.question),\n ])\n );\n this.question.startTime = this.question.startTime\n ? this.question.startTime\n : Date.now();\n });\n }\n onChange(e: Event) {\n let value = (e.target as HTMLInputElement).value;\n this.question.value = value;\n\n this.question.endTime = Date.now();\n }\n\n get isValid(): boolean {\n return this.questionnaireForm.controls[this.question._id].valid;\n }\n\n get isTouched(): boolean {\n return this.questionnaireForm.controls[this.question._id].touched;\n }\n}\n","<div\n [formGroup]=\"questionnaireForm\"\n *ngIf=\"questionnaireForm?.contains(question._id)\"\n>\n <input\n type=\"number\"\n [formControlName]=\"question?._id\"\n class=\"sb-form-control\"\n [placeholder]=\"placeholder\"\n (change)=\"onChange($event)\"\n [value]=\"question.value\"\n />\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { Options } from '@angular-slider/ngx-slider';\nimport { Question, Validation } from '../interfaces/questionnaire.type';\nimport { SlQuestionnaireService } from '../services/sl-questionnaire.service';\n\n@Component({\n selector: 'sl-range-input',\n templateUrl: './range-input.component.html',\n styleUrls: ['./range-input.component.scss'],\n})\nexport class RangeInputComponent implements OnInit {\n @Input() questionnaireForm: UntypedFormGroup;\n @Input() question: Question;\n public options:Options={\n step:1,\n hidePointerLabels:true,\n hideLimitLabels:true,\n showSelectionBar:true\n };\n constructor(public qService: SlQuestionnaireService) {}\n\n ngOnInit() {\n setTimeout(() => {\n this.questionnaireForm.addControl(\n this.question._id,\n new UntypedFormControl(this.question.value || +this.min, [\n this.qService.validate(this.question),\n ])\n );\n this.question.startTime = this.question.startTime\n ? this.question.startTime\n : Date.now();\n this.question.value = this.question.value ? this.question.value : this.min;\n });\n this.max && (this.options['ceil'] = +this.max)\n this.min && (this.options['floor'] = +this.min)\n\n setTimeout(()=>{\n if(this.question.value){\n this.questionnaireForm.controls[this.question._id].reset(this.question.value);\n }else{\n if(((this.question.validation) as Validation).required){\n this.questionnaireForm.controls[this.question._id].reset(null);\n }\n }\n },100);\n }\n\n onChange(e) {\n let value = e.value;\n this.question.value = value;\n this.question.endTime = Date.now();\n }\n\n get isValid(): boolean {\n return this.questionnaireForm.controls[this.question._id].valid;\n }\n\n get isTouched(): boolean {\n return this.questionnaireForm.controls[this.question._id].touched;\n }\n\n get min() {\n if (typeof this.question.validation == 'string') {\n return null;\n }\n return this.question.validation.min;\n }\n\n get max() {\n if (typeof this.question.validation == 'string') {\n return null;\n }\n return this.question.validation.max;\n }\n}\n","<div\n class=\"\n d-flex\n flex-ai-center flex-dc\n mt-30\n ng-dirty ng-invalid ng-touched\n range-wrap\n \"\n [formGroup]=\"questionnaireForm\"\n *ngIf=\"questionnaireForm?.contains(question._id)\"\n>\n <div class=\"range-value\">{{ this.question.value }}</div>\n \n <ngx-slider\n [options]=\"options\"\n [formControlName]=\"question?._id\"\n (userChange)=\"onChange($event)\" \n [ngClass]=\"isValid && isTouched ? 'is-invalid' : 'is-valid'\" \n class=\"w-100\">\n</ngx-slider>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { SlTranslateService } from '../../services/translate.service';\nimport { LocationStrategy } from '@angular/common'\n\n@Component({\n selector: 'sl-alert-modal',\n templateUrl: './alert-modal.component.html',\n styleUrls: ['./alert-modal.component.scss']\n})\nexport class AlertModalComponent implements OnInit {\n @ViewChild('modal') modal;\n @Input() isDimmed;\n @Input() hint;\n @Output() closeHintEmitter = new EventEmitter();\n hintCloseText: string;\n hintModalNote:string\n constructor(\n public translate: SlTranslateService,\n public location:LocationStrategy\n ) {\n this.location.onPopState(()=>{\n this.isDimmed = false;\n this.closeHintEmitter.emit({})\n })\n }\n\n ngOnInit(){\n this.hintCloseText = this.translate['frmelmnts'].btn?.close;\n this.hintModalNote = this.translate['frmelmnts'].lbl?.hintModalNote;\n }\n\n closeHint(){\n this.isDimmed = false;\n this.closeHintEmitter.emit()\n }\n\n}\n","<sui-modal\n [mustScroll]=\"true\"\n [isClosable]=\"false\"\n [transitionDuration]=\"0\"\n [size]=\"'normal'\"\n class=\"sb-modal customModal\"\n appBodyScroll\n *ngIf=\"isDimmed\"\n #modal\n>\n <!--Header-->\n <div class=\"sb-modal-header d-flex flex-dir-row\">\n <div>\n <i class=\"info circle icon sb-color-primary\"></i>\n </div>\n <div class=\"font-weight-bold sb-color-primary modalNote\">\n {{ hintModalNote }}\n </div>\n </div>\n <!--/Header-->\n <!--Content-->\n <div class=\"sb-modal-content\">\n <h4 class=\"ui header\">{{ hint }}</h4>\n </div>\n <!--/Content-->\n\n <!--Actions-->\n <div class=\"sb-modal-actions\">\n <button\n type=\"button\"\n class=\"sb-btn sb-btn-sm sb-btn-primary\"\n type=\"submit\"\n (click)=\"closeHint()\"\n >\n {{ hintCloseText }}\n </button>\n </div>\n <!--/Actions-->\n</sui-modal>\n","import { Output } from '@angular/core';\nimport { Input } from '@angular/core';\nimport { Component, EventEmitter, OnInit } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { Question } from '../interfaces/questionnaire.type';\nimport { SlTranslateService } from '../services/translate.service';\nimport { SlQuestionnaireService } from '../services/sl-questionnaire.service';\n\n@Component({\n selector: 'sl-radio-input',\n templateUrl: './radio-input.component.html',\n styleUrls: ['./radio-input.component.scss'],\n})\nexport class RadioInputComponent implements OnInit {\n @Input() options: any;\n @Input() questionnaireForm: UntypedFormGroup;\n @Input() question: Question;\n hintCloseText: string;\n hintModalNote:string;\n @Output() dependentParent = new EventEmitter<Question>();\n isDimmed: any;\n hint: any;\n\n constructor(\n public qService: SlQuestionnaireService,\n public translate: SlTranslateService\n ) {}\n\n ngOnInit() {\n this.hintCloseText = this.translate['frmelmnts'].btn?.close;\n this.hintModalNote = this.translate['frmelmnts'].lbl?.hintModalNote;\n setTimeout(() => {\n this.questionnaireForm.addControl(\n this.question._id,\n new UntypedFormControl(\n this.question.value || null,\n this.qService.validate(this.question)\n )\n );\n\n this.question.startTime = this.question.startTime\n ? this.question.startTime\n : Date.now();\n if (this.question.value) {\n if (this.question.children.length) {\n this.dependentParent.emit(this.question);\n }\n }\n });\n }\n\n get isValid(): boolean {\n return this.questionnaireForm.controls[this.question._id].valid;\n }\n\n get isTouched(): boolean {\n return this.questionnaireForm.controls[this.question._id].touched;\n }\n\n onChange(value) {\n this.questionnaireForm.controls[this.question._id].setValue(value);\n this.question.value = value;\n this.question.endTime = Date.now();\n if (this.question.children.length) {\n this.dependentParent.emit(this.question);\n }\n }\n\n closeHint(){\n this.isDimmed = false;\n }\n}\n","<div *ngIf=\"questionnaireForm?.contains(question._id)\">\n <div\n *ngFor=\"let o of options; let optionIndex = index\"\n [formGroup]=\"questionnaireForm\"\n class=\"\n mb-15\n sb-radio-btn-checkbox sb-radio-btn-primary\n d-flex\n flex-ai-baseline\n \"\n >\n <input\n type=\"radio\"\n (change)=\"onChange(o.value)\"\n [name]=\"question._id\"\n [ngClass]=\"isValid && isTouched ? 'is-invalid' : 'is-valid'\"\n [value]=\"o.value\"\n [formControlName]=\"question._id\"\n id=\"{{question._id + o.value}}\"\n />\n <label for=\"{{question._id + o.value}}\">{{ o.label }}</label>\n <div *ngIf=\"options && options[optionIndex]?.hint\">\n <i\n class=\"icon large lightbulb\"\n (click)=\"\n isDimmed = !isDimmed; hint = options[optionIndex]?.hint\n \"\n ></i>\n </div>\n </div>\n</div>\n\n<sl-alert-modal [isDimmed]=\"isDimmed\" (closeHintEmitter)=\"closeHint()\" [hint]=\"hint\"></sl-alert-modal>\n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UntypedFormArray, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { Question } from '../interfaces/questionnaire.type';\nimport { SlTranslateService } from '../services/translate.service';\nimport { SlQuestionnaireService } from '../services/sl-questionnaire.service';\n\n@Component({\n selector: 'sl-checkbox-input',\n templateUrl: './checkbox-input.component.html',\n styleUrls: ['./checkbox-input.component.scss'],\n})\nexport class CheckboxInputComponent implements OnInit {\n @Input() options;\n @Input() questionnaireForm: UntypedFormGroup;\n @Input() question: Question;\n hintCloseText: string;\n hintModalNote:string\n @Output() dependentParent = new EventEmitter<Question>();\n isDimmed: any;\n hint: any;\n constructor(\n public qService: SlQuestionnaireService,\n public translate: SlTranslateService\n ) {}\n\n ngOnInit() {\n this.hintCloseText = this.translate['frmelmnts'].btn?.close;\n this.hintModalNote = this.translate['frmelmnts'].lbl?.hintModalNote;\n setTimeout(() => {\n const optionControl = this.options.map((v) => {\n if (\n this.question.value &&\n (this.question.value as Array<string>).find((_v) => _v == v.value)\n ) {\n return new UntypedFormControl(v.value);\n }\n return new UntypedFormControl('');\n });\n\n this.questionnaireForm.addControl(\n this.question._id,\n new UntypedFormArray(optionControl, this.qService.validate(this.question))\n );\n\n this.question.startTime = this.question.startTime\n ? this.question.startTime\n : Date.now();\n if (this.question.value.length) {\n if (this.question.children.length) {\n this.dependentParent.emit(this.question);\n }\n }\n });\n }\n\n onChange(oId: string, isChecked: boolean, oIndex: number) {\n const formArray: UntypedFormArray = this.questionnaireForm.get(\n this.question._id\n ) as UntypedFormArray;\n if (isChecked) {\n formArray.controls[oIndex].patchValue(oId);\n }\n this.question.value =\n this.questionnaireForm.controls[this.question._id].value;\n this.question.value = (this.question.value as Array<string>).filter(\n Boolean\n );\n this.question.endTime = Date.now();\n if (this.question.children.length) {\n this.dependentParent.emit(this.question);\n }\n }\n\n get isValid(): boolean {\n return this.questionnaireForm.controls[this.question._id].valid;\n }\n\n get isTouched(): boolean {\n return this.questionnaireForm.controls[this.question._id].touched;\n }\n\n closeHint(){\n this.isDimmed = false;\n }\n}\n","<div *ngIf=\"questionnaireForm?.contains(question._id)\">\n <div\n *ngFor=\"let o of options; let i = index\"\n [formGroup]=\"questionnaireForm\"\n class=\"mb-15 sb-checkbox sb-checkbox-secondary d-flex flex-ai-baseline\"\n >\n <div [formArrayName]=\"question._id\">\n <sui-checkbox\n (checkChange)=\"onChange(o.value, $event, i)\"\n [formControlName]=\"i\"\n >\n {{ o.label }}\n </sui-checkbox>\n </div>\n <div *ngIf=\"question?.option && question?.option[i]?.hint\">\n <i\n class=\"icon large lightbulb\"\n (click)=\"isDimmed = !isDimmed; hint = question?.option[i]?.hint\"\n ></i>\n </div>\n </div>\n</div>\n\n<sl-alert-modal [isDimmed]=\"isDimmed\" [hint]=\"hint\" (closeHintEmitter)=\"closeHint()\"></sl-alert-modal>\n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Question } from '../interfaces/questionnaire.type';\nimport { SlTranslateService } from '../services/translate.service';\n\n@Component({\n selector: 'sl-ques-remarks',\n templateUrl: './ques-remarks.component.html',\n styleUrls: ['./ques-remarks.component.scss'],\n})\nexport class QuesRemarksComponent implements OnInit {\n remark = '';\n showRemarks;\n\n @Output() saveClicked = new EventEmitter();\n @Input() question: Question;\n title: String;\n remarksAddText: String;\n constructor(private translate: SlTranslateService) {}\n\n ngOnInit() {\n this.title = this.translate['frmelmnts'].lbl?.remark_title;\n this.remarksAddText = this.translate['frmelmnts'].btn.addRemarks;\n this.remark = this.question.remarks;\n this.remark ? (this.showRemarks = true) : false;\n }\n saveRemark() {\n this.question.remarks = this.remark;\n this.saveClicked.emit({ value: this.remark });\n }\n\n deleteRemark() {\n this.remark = '';\n this.saveRemark();\n this.showRemarks = false;\n }\n}\n","<div class=\"d-flex flex-ai-center flex-jc-space-between my-10\">\n <h5 class=\"my-10\">{{ title }}</h5>\n <button\n class=\"sb-btn sb-btn-normal sb-btn-primary\"\n *ngIf=\"!remark.length\"\n (click)=\"showRemarks = true\"\n >\n {{ remarksAddText }}\n </button>\n <span *ngIf=\"remark.length\" (click)=\"deleteRemark()\"\n ><i class=\"trash large icon\"></i\n ></span>\n</div>\n\n<div class=\"d-flex flex-ai-end\" *ngIf=\"showRemarks\">\n <textarea\n rows=\"3\"\n class=\"w-100\"\n [(ngModel)]=\"remark\"\n (ngModelChange)=\"saveRemark()\"\n >\n </textarea>\n</div>\n","import { Injectable } from '@angular/core';\nimport { SuiModalService } from '@project-sunbird/ng2-semantic-ui';\nimport { Observable } from 'rxjs';\nimport { AlertMeta } from '../interfaces/alert.type';\n\nexport abstract class SlUtilsAbstract {\n abstract openAlert?(data): Promise<any>;\n\n abstract error?(msg);\n\n abstract getPreSingedUrls?(payload): Observable<any>;\n\n abstract cloudStorageUpload?(payload): Observable<any>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class SlUtilsService extends SlUtilsAbstract {\n constructor(public modalService: SuiModalService) {\n super();\n }\n\n /**\n * @param {AlertMeta} meta: Alert Meta Form Object\n * @param {String} meta.title Optional ! Display title of alert fields\n * @param {String} meta.size Provide size of alert.('tiny','mini)\n * @param {AlertBodyType} meta.bodyType Alert-content type to show in alert body\n * @param {String} meta.data content to show\n * @param {String} meta.buttonClass class to apply on button div\n * @param {String} meta.acceptText text to show in accept button\n * @param {String} meta.cancelText text to show in accept button\n * @param {String} meta.type Optional ! To set type of alert\n * @param {Boolean} meta.closeIcon Optional ! Show top right close icon , default = false\n */\n alert(meta: AlertMeta) {\n const button = [];\n meta.acceptText &&\n button.push({\n type: 'accept',\n returnValue: true,\n buttonText: meta.acceptText,\n });\n meta.cancelText &&\n button.push({\n type: 'cancel',\n returnValue: false,\n buttonText: meta.cancelText,\n });\n\n let alertMeta = {\n type: meta.type,\n size: meta.size,\n isClosed: meta.closeIcon,\n content: {\n title: meta.title,\n body: {\n type: meta.bodyType,\n data: meta.data,\n },\n },\n footer: {\n className: meta.buttonClass,\n buttons: button,\n },\n };\n\n return this.openAlert(alertMeta);\n }\n}\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { AlertMeta } from '../interfaces/alert.type';\nimport { SlTranslateService } from '../services/translate.service';\nimport { SlUtilsService } from '../services/utils.service';\n\n@Component({\n selector: 'sl-attachment',\n templateUrl: './attachment.component.html',\n styleUrls: ['./attachment.component.scss'],\n})\nexport class AttachmentComponent implements OnInit {\n @Input() data;\n files:string;\n formData;\n constructor(\n private translate: SlTranslateService,\n private utils: SlUtilsService\n ) {}\n\n ngOnInit(){\n this.files = this.translate['frmelmnts'].lbl?.files;\n }\n\n basicUpload(event) {\n const files: FileList = event.target.files;\n let sizeMB = +(files[0].size / 1000 / 1000).toFixed(4);\n if (sizeMB > 20) {\n this.fileLimitCross();\n return;\n }\n this.formData = new FormData();\n Array.from(files).forEach((f) => this.formData.append('file', f));\n event.target.value = null;\n this.preSignedUrl(this.getFileNames(this.formData));\n }\n\n fileLimitCross() {\n const alertMeta: AlertMeta = {\n size: 'tiny',\n bodyType: 'text',\n data: this.translate['frmelmnts'].lbl.fileLimitCross20,\n buttonClass: 'single-btn',\n acceptText: this.translate['frmelmnts'].btn.ok,\n cancelText: null,\n };\n this.utils.alert(alertMeta);\n }\n\n getFileNames(formData) {\n let files = [];\n formData.forEach((element) => {\n files.push(element.name);\n });\n return files;\n }\n\n preSignedUrl(files) {\n let payload = {};\n payload['ref'] = 'survey';\n payload['request'] = {};\n payload['request'][this.data.submissionId] = {\n files: files,\n };\n this.utils.getPreSingedUrls(payload).subscribe(\n (imageData) => {\n const presignedUrlData =\n imageData['result'][this.data.submissionId].files[0];\n this.formData.append('url', presignedUrlData.url);\n this.utils.cloudStorageUpload(this.formData).subscribe(\n (success: any) => {\n if (success.status === 200) {\n const obj = {\n name: this.getFileNames(this.formData)[0],\n url: presignedUrlData.url.split('?')[0],\n };\n for (const key of Object.keys(presignedUrlData.payload)) {\n obj[key] = presignedUrlData['payload'][key];\n }\n this.data.files.push(obj);\n const alertMeta: AlertMeta = {\n size: 'tiny',\n bodyType: 'text',\n data: this.translate['frmelmnts'].lbl.evidenceUploaded,\n buttonClass: 'single-btn',\n acceptText: this.translate['frmelmnts'].btn.ok,\n cancelText: null,\n type: 'uploaded',\n };\n this.utils.alert(alertMeta);\n } else {\n this.utils.error(\n this.translate['frmelmnts'].message.unableToUpload\n );\n }\n },\n (error) => {\n this.utils.error(\n this.translate['frmelmnts'].message.unableToUpload\n );\n }\n );\n },\n (error) => {\n console.log(error);\n }\n );\n }\n\n extension(name) {\n return name.split('.').pop();\n }\n openFile(file) {\n window.open(file.url, '_blank');\n }\n\n async deleteAttachment(fileIndex) {\n const alertMeta: AlertMeta = {\n size: 'mini',\n bodyType: 'text',\n data: this.translate['frmelmnts'].lbl.confirmEvidenceDelete,\n buttonClass: 'double-btn',\n acceptText: this.translate['frmelmnts'].btn.yes,\n cancelText: this.translate['frmelmnts'].btn.no,\n };\n const accepted = await this.utils.alert(alertMeta);\n\n if (!accepted) {\n return;\n }\n this.data.files.splice(fileIndex, 1);\n }\n\n async onAddApproval(file) {\n let html = `\n ${this.translate['frmelmnts'].lbl.evidence_content_policy}<a href='/term-of-use.html' target=\"_blank\">${this.translate['frmelmnts'].lbl.evidence_content_policy_label}</a> .${this.translate['frmelmnts'].lbl.uploadevidencecontent}\n `;\n const alertMeta: AlertMeta = {\n size: 'tiny',\n bodyType: 'checkbox',\n data: html,\n buttonClass: 'double-btn',\n acceptText: this.translate['frmelmnts'].btn.upload,\n cancelText: this.translate['frmelmnts'].btn.donotupload,\n };\n let returnData = await this.utils.alert(alertMeta);\n if (returnData == false) {\n this.notAccepted();\n return;\n }\n if (returnData == true) {\n file.click();\n }\n }\n\n notAccepted(): void {\n const alertMeta: AlertMeta = {\n size: 'tiny',\n bodyType: 'text',\n data: this.translate['frmelmnts'].lbl.uploadTermsRejected,\n buttonClass: 'single-btn',\n acceptText: this.translate['frmelmnts'].btn.ok,\n cancelText: null,\n type: 'notAccepted',\n };\n this.utils.alert(alertMeta);\n }\n}\n","<label for=\"file-upload\" class=\"custom-file-upload\"></label>\n<input\n id=\"file-upload\"\n type=\"file\"\n #file\n (change)=\"basicUpload($event)\"\n/>\n<div class=\"d-flex\">\n <div class=\"bs-1 attachment\" (click)=\"onAddApproval(file)\">\n <i class=\"plus icon\"></i>\n <div class=\"files\">{{files}}</div>\n </div>\n <div\n *ngFor=\"let item of data.files; let i = index\"\n (click)=\"openFile(item)\"\n class=\"area\"\n >\n <a\n class=\"remove-image\"\n (click)=\"$event.stopPropagation(); deleteAttachment(i)\"\n >×</a\n >\n <div [ngSwitch]=\"extension(item.name)\">\n <div *ngSwitchCase = \"'png'\" class=\"mx-10\">\n <i class=\"file image outline icon\"></i>\n </div>\n <div *ngSwitchCase = \"'jpg'\" class=\"mx-10\">\n <i class=\"file image outline icon\"></i>\n </div>\n <div *ngSwitchCase = \"'jpeg'\" class=\"mx-10\">\n <i class=\"file image outline icon\"></i>\n </div>\n <div *ngSwitchCase = \"'pdf'\" class=\"mx-10\">\n <i class=\"file pdf outline icon\"></i>\n </div>\n <div *ngSwitchCase = \"'mp4'\" class=\"mx-10\">\n <i class=\"file video outline icon\"></i>\n </div>\n <div *ngSwitchCase = \"'mp3'\" class=\"mx-10\">\n <i class=\"file audio outline icon\"></i>\n </div>\n <div *ngSwitchDefault class=\"mx-10\">\n <i class=\"file alternate outline icon\"></i>\n </div>\n </div>\n </div>\n</div>","import { Component, ContentChild, HostListener, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport {\n ModalTemplate,\n SuiModalService,\n TemplateModalConfig,\n} from '@project-sunbird/ng2-semantic-ui';\nimport { MatrixQuestion, Question } from '../interfaces/questionnaire.type';\nimport { SlTranslateService } from '../services/translate.service';\nimport * as _ from 'lodash-es';\nimport { AlertMeta } from '../interfaces/alert.type';\nimport { SlUtilsService } from '../services/utils.service';\n\nexport interface IContext {\n questions: Question[];\n heading: string;\n index: number;\n}\n@Component({\n selector: 'sl-matrix-questions',\n templateUrl: './matrix-questions.component.html',\n styleUrls: ['./matrix-questions.component.scss'],\n})\nexport class MatrixQuestionsComponent implements OnInit {\n @HostListener('window:popstate', ['$event'])\n onPopState(event) {\n this.showBadgeAssingModel = false;\n }\n @ContentChild('matrixTemplateRef', { static: false })\n matrixTemplateRef: TemplateRef<any>;\n addText: string;\n submitText: string;\n cancelText: string;\n @Input() questionnaireForm: UntypedFormGroup;\n @Input() question: MatrixQuestion;\n matrixForm: UntypedFormGroup;\n @ViewChild('modalTemplate')\n public modalTemplate: ModalTemplate<IContext, string, string>;\n context: IContext;\n showBadgeAssingModel: boolean;\n instanceLastUpdated:any[]=[];\n matrix:TemplateRef<any>;\n constructor(\n private translate: SlTranslateService,\n public modalService: SuiModalService,\n public fb: UntypedFormBuilder,\n private utils: SlUtilsService\n ) {}\n\n ngOnInit(): void {\n this.addText = this.translate['frmelmnts'].btn.add;\n this.submitText = this.translate['frmelmnts'].btn.submit;\n this.cancelText = this.translate['frmelmnts'].btn.cancel;\n setTimeout(() => {\n this.matrixForm = this.fb.group({}, Validators.required);\n this.questionnaireForm.addControl(\n this.question._id,\n new UntypedFormArray([], [Validators.required])\n );\n this.initializeMatrix();\n });\n }\n initializeMatrix() {\n // let valid = true;\n if (this.question.value.length) {\n this.question.value.map((v) => {\n let obj = {};\n let endTime = []\n v.forEach((ques) => {\n endTime.push(ques.endTime)\n if (!ques.value) return;\n obj[ques._id] = ques.value;\n });\n (this.questionnaireForm.controls[this.question._id] as UntypedFormArray).push(\n new UntypedFormControl(obj,[this.instanceValidation])\n );\n let instanceupdatedAt= endTime.reduce(function (x, y) {\n return x > y ? x : y;\n });\n this.instanceLastUpdated.push(instanceupdatedAt)\n // if (_.isEmpty(obj)) {\n // valid = false;\n // }\n });\n }\n\n // if (!valid)\n // this.questionnaireForm.controls[this.question._id].setErrors({\n // err: 'Matrix reposne not valid',\n // });\n }\n\n instanceValidation(control: UntypedFormControl) {\n let value = control.value;\n if (_.isEmpty(value)) {\n return { err: 'Instance not filled' }\n }\n return null;\n }\n\n addInstances(): void {\n this.question.value = this.question.value ? this.question.value : [];\n this.question.value.push(\n JSON.parse(JSON.stringify(this.question.instanceQuestions))\n );\n this.matrixForm.reset();\n this.formAsArray.push(new UntypedFormControl([], [Validators.required]));\n }\n\n viewInstance(i): void {\n this.matrixForm.reset();\n if (this.formAsArray.controls[i].value) {\n this.matrixForm.patchValue(this.formAsArray.controls[i].value);\n }\n const config = new TemplateModalConfig<IContext, string, string>(\n this.modalTemplate\n );\n config.closeResult = 'closed!';\n let deepClonedQuestion = _.cloneDeep(this.question.value[i]);\n config.context = {\n questions: deepClonedQuestion,\n heading: `${this.question.instanceIdentifier} ${i + 1}`,\n index: i,\n };\n this.context = config.context;\n this.showBadgeAssingModel = true;\n }\n\n get formAsArray() {\n return this.questionnaireForm.controls[this.question._id] as UntypedFormArray;\n }\n\n matrixSubmit(index) {\n this.showBadgeAssingModel = false;\n this.question.value[index] = this.context.questions;\n this.formAsArray.at(index).patchValue(this.matrixForm.value);\n if (this.matrixForm.invalid) {\n this.formAsArray.at(index).setErrors({ err: 'Matrix reposne not valid' });\n }\n this.instanceLastUpdated[index]=Date.now()\n }\n\n async deleteInstanceAlert(index) {\n // let metaData = await this.observationUtilService.getAlertMetaData();\n // metaData.content.body.data =\n // this.resourceService.frmelmnts.lbl.deleteSubmission;\n // metaData.content.body.type = 'text';\n // metaData.content.title = this.resourceService.frmelmnts.btn.delete;\n // metaData.size = 'mini';\n // metaData.footer.buttons.push({\n // type: 'cancel',\n // returnValue: false,\n // buttonText: this.resourceService.frmelmnts.btn.no,\n // });\n // metaData.footer.buttons.push({\n // type: 'accept',\n // returnValue: true,\n // buttonText: this.resourceService.frmelmnts.btn.yes,\n // });\n // metaData.footer.className = 'double-btn';\n // const accepted = await this.observationUtilService.showPopupAlert(metaData);\n const alertMeta: AlertMeta = {\n title: this.translate['frmelmnts'].btn.delete,\n size: 'mini',\n bodyType: 'text',\n data: this.translate['frmelmnts'].lbl.deleteSubmission,\n buttonClass: 'double-btn',\n acceptText: this.translate['frmelmnts'].btn.yes,\n cancelText: this.translate['frmelmnts'].btn.no,\n };\n const accepted = await this.utils.alert(alertMeta);\n if (!accepted) {\n return;\n }\n\n this.question.value.splice(index, 1);\n (this.questionnaireForm.controls[this.question._id] as UntypedFormArray).removeAt(\n index\n );\n this.instanceLastUpdated.splice(index,1)\n }\n}\n","<div class=\"d-flex flex-jc-flex-end\">\n <button class=\"sb-btn sb-btn-normal sb-btn-primary\" (click)=\"addInstances()\">\n {{ addText }}\n {{ question?.instanceIdentifier }}\n </button>\n</div>\n<div\n class=\"ui card student-card\"\n *ngFor=\"let instance of question?.value; let i = index\"\n>\n <div class=\"content flex-jc-space-between\">\n <div\n (click)=\"viewInstance(i)\"\n style=\"flex: 1\"\n class=\"d-flex flex-dc px-10\"\n [ngClass]=\"{\n 'valid-response':\n formAsArray?.controls[i].valid\n }\"\n >\n <span> {{ question?.instanceIdentifier }} {{ i + 1 }}</span>\n <span class=\"fs-0-785 modified\" *ngIf=\"instanceLastUpdated[i]\">Last Updated On : {{instanceLastUpdated[i] |date:'short'}}</span> \n </div>\n <div>\n <i class=\"trash large icon\" (click)=\"deleteInstanceAlert(i)\"></i>\n </div>\n </div>\n</div>\n\n<sui-modal\n [mustScroll]=\"true\"\n [isClosable]=\"true\"\n [transitionDuration]=\"0\"\n [size]=\"'normal'\"\n class=\"sb-modal\"\n appBodyScroll\n (dismissed)=\"showBadgeAssingModel = false\"\n *ngIf=\"showBadgeAssingModel\"\n #modal\n>\n <!--Header-->\n <div class=\"sb-modal-header\">\n {{ context?.heading }}\n </div>\n <!--/Header-->\n <!--Content-->\n <div class=\"sb-modal-content\">\n <ng-container *ngTemplateOutlet=\"matrixTemplateRef\"></ng-container>\n </div>\n <!--/Content-->\n\n <!--Actions-->\n <div class=\"sb-modal-actions\">\n <button\n [disabled]=\"!matrixForm?.valid\"\n type=\"button\"\n (click)=\"matrixSubmit(context.index)\"\n [ngClass]=\"{\n 'sb-btn sb-btn-normal': true,\n 'sb-btn-primary': matrixForm?.valid,\n 'sb-btn-disabled': !matrixForm?.valid\n }\"\n >\n {{ submitText }}\n </button>\n <button\n class=\"sb-btn sb-btn-normal sb-btn-outline-primary\"\n type=\"button\"\n (click)=\"showBadgeAssingModel = false\"\n >\n {{ cancelText }}\n </button>\n </div>\n <!--/Actions-->\n</sui-modal>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { Question, ResponseType } from '../interfaces/questionnaire.type';\nimport { SlTranslateService } from '../services/translate.service';\nimport { SlQuestionnaireService } from '../services/sl-questionnaire.service';\n\n@Component({\n selector: 'sl-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n})\nexport class InputComponent {\n @Input() questions: Array<Question>;\n @Input() questionnaireForm: UntypedFormGroup;\n selectedIndex: number;\n dimmerIndex;\n isDimmed;\n\n constructor(private translate: SlTranslateService,public qService:SlQuestionnaireService) {}\n\n public get reponseType(): typeof ResponseType {\n return ResponseType;\n }\n\n toggleQuestion(parent) {\n const { children } = parent;\n\n this.questions.map((q, i) => {\n if (children.includes(q._id)) {\n let child = this.questions[i];\n child['canDisplay'] = this.canDisplayChildQ(child, i);\n if (child['canDisplay'] == false) {\n child.value = '';\n this.questionnaireForm.removeControl(child._id);\n }\n }\n });\n }\n\n canDisplayChildQ(currentQuestion: Question, currentQuestionIndex: number) {\n let display = true;\n if (typeof currentQuestion.visibleIf == 'string' || null || undefined) {\n return false; //if condition not present\n }\n for (const question of this.questions) {\n for (const condition of currentQuestion.visibleIf) {\n if (condition._id === question._id) {\n let expression = [];\n if (condition.operator != '===') {\n if (question.responseType === 'multiselect') {\n for (const parentValue of question.value) {\n for (const value of condition.value) {\n expression.push(\n '(',\n \"'\" + parentValue + \"'\",\n '===',\n \"'\" + value + \"'\",\n ')',\n condition.operator\n );\n }\n }\n } else {\n for (const value of condition.value) {\n expression.push(\n '(',\n \"'\" + question.value + \"'\",\n '===',\n \"'\" + value + \"'\",\n ')',\n condition.operator\n );\n }\n }\n expression.pop();\n } else {\n if (question.responseType === 'multiselect') {\n for (const value of question.value) {\n expression.push(\n '(',\n \"'\" + condition.value + \"'\",\n '===',\n \"'\" + value + \"'\",\n ')',\n '||'\n );\n }\n expression.pop();\n } else {\n expression.push(\n '(',\n \"'\" + question.value + \"'\",\n condition.operator,\n \"'\" + condition.value + \"'\",\n ')'\n );\n }\n }\n if (!eval(expression.join(''))) {\n this.questions[currentQuestionIndex].isCompleted = true;\n return false;\n } else {\n // this.questions[currentQuestionIndex].isCompleted =\n // this.utils.isQuestionComplete(currentQuestion);\n }\n }\n }\n }\n return display;\n }\n\n closeHint(){\n this.isDimmed = false;\n }\n}\n","<div *ngFor=\"let question of questions; let qi = index\">\n <div *ngIf=\"question?.sectionHeader && (!question.visibleIf.length || question.canDisplay == true)\">\n <h4 class=\"section-header-style\">{{question?.sectionHeader}}</h4>\n </div>\n <div\n [ngClass]=\"{\n 'ui card question-card sb--card relative9':\n question.responseType != 'pageQuestions'\n }\"\n *ngIf=\"!question.visibleIf.length || question.canDisplay == true\"\n >\n <div [ngClass]=\"{ content: question.responseType != 'pageQuestions' }\">\n <div class=\"d-flex flex-ai-flex-start flex-jc-space-between\">\n <div\n *ngFor=\"let q of question.question; let qai = index\"\n [ngClass]=\"{\n 'mb-20': q.length,\n 'valid-response': questionnaireForm?.controls[question._id]?.valid\n }\"\n >\n <div class=\"sb-h5\" *ngIf=\"q!=''\">\n {{ question.questionNumber + \" . \"}} {{ q }}\n </div>\n </div>\n <div *ngIf=\"question?.hint\">\n <i\n class=\"icon large lightbulb\"\n (click)=\"dimmerIndex = qi; isDimmed = !isDimmed\"\n ></i>\n </div>\n </div>\n <div *ngIf=\"question?.tip\" class=\"mb-10\">\n <small class=\"mb-10\">{{ question?.tip }}</small>\n </div>\n <div class=\"sbt-page-content-questionnaireFormarea'\">\n <sl-text-input\n *ngIf=\"question.responseType == reponseType.TEXT\"\n [questionnaireForm]=\"questionnaireForm\"\n [question]=\"question\"\n ></sl-text-input>\n <sl-date-input\n *ngIf=\"question.responseType == reponseType.DATE\"\n [questionnaireForm]=\"questionnaireForm\"\n [question]=\"question\"\n ></sl-date-input>\n <sl-number-input\n *ngIf=\"question.responseType == reponseType.NUMBER\"\n [questionnaireForm]=\"questionnaireForm\"\n [question]=\"question\"\n ></sl-number-input>\n <sl-range-input\n *ngIf=\"question.responseType == reponseType.SLIDER\"\n [questionnaireForm]=\"questionnaireForm\"\n [question]=\"question\"\n ></sl-range-input>\n <sl-radio-input\n *ngIf=\"question.responseType == reponseType.RADIO\"\n [questionnaireForm]=\"questionnaireForm\"\n [question]=\"question\"\n [options]=\"question.options\"\n (dependentParent)=\"toggleQuestion($event)\"\n ></sl-radio-input>\n <sl-checkbox-input\n *ngIf=\"question.responseType == reponseType.MULTISELECT\"\n [questionnaireForm]=\"questionnaireForm\"\n [question]=\"question\"\n [options]=\"question.options\"\n (dependentParent)=\"toggleQuestion($event)\"\n ></sl-checkbox-input>\n <ng-container *ngIf=\"question.responseType == reponseType.PAGEQUESTIONS\">\n <sl-input\n [questionnaireForm]=\"questionnaireForm\"\n [questions]=\"question.pageQuestions\"\n ></sl-input>\n </ng-container>\n <sl-matrix-questions *ngIf=\"question.responseType == reponseType.MATRIX\"\n [questionnaireForm]=\"questionnaireForm\"\n [question]=\"question\"\n #matrixComponent>\n <ng-template #matrixTemplateRef>\n <sl-input\n [questions]=\"matrixComponent.context?.questions\"\n [questionnaireForm]=\"matrixComponent.matrixForm\"\n ></sl-input>\n </ng-template>\n </sl-matrix-questions>\n <sl-ques-remarks\n [question]=\"question\"\n *ngIf=\"question.showRemarks\"\n ></sl-ques-remarks>\n <sl-attachment\n [data]=\"{\n submissionId: qService.getSubmissionId(),\n files: question.fileName\n }\"\n *ngIf=\"question.file\"\n ></sl-attachment>\n <sl-alert-modal *ngIf=\"dimmerIndex == qi && question?.hint\" [isDimmed]=\"isDimmed\" [hint]=\"question?.hint\" (closeHintEmitter)=\"closeHint()\"></sl-alert-modal>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { PageQuestion } from '../interfaces/questionnaire.type';\n\n@Component({\n selector: 'sl-page-questions',\n templateUrl: './page-questions.component.html',\n styleUrls: ['./page-questions.component.css'],\n})\nexport class PageQuestionsComponent implements OnInit {\n @Input() questionnaireForm: UntypedFormGroup;\n @Input() question: PageQuestion;\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<sl-input\n [questions]=\"question.pageQuestions\"\n [questionnaireForm]=\"questionnaireForm\"\n></sl-input>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TextInputComponent } from './text-input/text-input.component';\nimport { DateInputComponent } from './date-input/date-input.component';\nimport { SuiModule } from '@project-sunbird/ng2-semantic-ui';\nimport { NumberInputComponent } from './number-input/number-input.component';\nimport { RangeInputComponent } from './range-input/range-input.component';\nimport { RadioInputComponent } from './radio-input/radio-input.component';\nimport { CheckboxInputComponent } from './checkbox-input/checkbox-input.component';\nimport { QuesRemarksComponent } from './ques-remarks/ques-remarks.component';\nimport { AttachmentComponent } from './attachment/attachment.component';\nimport { InputComponent } from './input/input.component';\nimport { PageQuestionsComponent } from './page-questions/page-questions.component';\nimport { MatrixQuestionsComponent } from './matrix-questions/matrix-questions.component';\nimport { NgxSliderModule } from '@angular-slider/ngx-slider';\nimport { AlertModalComponent } from './shared/alert-modal/alert-modal.component';\n\n@NgModule({\n declarations: [\n TextInputComponent,\n DateInputComponent,\n NumberInputComponent,\n RangeInputComponent,\n RadioInputComponent,\n CheckboxInputComponent,\n QuesRemarksComponent,\n AttachmentComponent,\n InputComponent,\n PageQuestionsComponent,\n MatrixQuestionsComponent,\n AlertModalComponent\n ],\n imports: [CommonModule, FormsModule, ReactiveFormsModule, SuiModule,NgxSliderModule],\n exports: [\n TextInputComponent,\n DateInputComponent,\n NumberInputComponent,\n RangeInputComponent,\n RadioInputComponent,\n CheckboxInputComponent,\n QuesRemarksComponent,\n AttachmentComponent,\n InputComponent,\n PageQuestionsComponent,\n MatrixQuestionsComponent\n ],\n})\nexport class SlQuestionnaireModule {}\n","/*\n * Public API Surface of sl-questionnaire\n */\n\nexport * from './lib/sl-questionnaire.module';\n\nexport * from './lib/text-input/text-input.component';\nexport * from './lib/date-input/date-input.component';\nexport * from './lib/number-input/number-input.component';\nexport * from './lib/range-input/range-input.component';\nexport * from './lib/radio-input/radio-input.component';\nexport * from './lib/checkbox-input/checkbox-input.component';\nexport * from './lib/ques-remarks/ques-remarks.component';\nexport * from './lib/attachment/attachment.component';\nexport * from './lib/input/input.component';\nexport * from './lib/matrix-questions/matrix-questions.component'\nexport * from './lib/page-questions/page-questions.component';\n\nexport * from './lib/interfaces/questionnaire.type';\nexport * from './lib/interfaces/alert.type';\n\nexport * from './lib/services/translate.service';\nexport * from './lib/services/utils.service';\nexport * from './lib/services/sl-questionnaire.service';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SlQuestionnaireService","i2.SlTranslateService","i2","i3","i4","i1.SlTranslateService","i5.AlertModalComponent","i6.AlertModalComponent","i1","i2.SlUtilsService","i4.SlUtilsService","i5","i2.SlQuestionnaireService","i4.TextInputComponent","i5.DateInputComponent","i6.NumberInputComponent","i7.RangeInputComponent","i8.RadioInputComponent","i9.CheckboxInputComponent","i10.QuesRemarksComponent","i11.AttachmentComponent","i12.MatrixQuestionsComponent","i13.AlertModalComponent","i1.InputComponent"],"mappings":"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"}